diff --git a/.github/workflows/autobuild_tgui.yml b/.github/workflows/autobuild_tgui.yml new file mode 100644 index 0000000000..b680139f74 --- /dev/null +++ b/.github/workflows/autobuild_tgui.yml @@ -0,0 +1,36 @@ +name: Autobuild TGUI + +on: + push: + branches: + - 'master' + paths: + - 'tgui-next/**.js' + - 'tgui-next/**.scss' + +jobs: + build: + name: Rebuild TGUI + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v1 + with: + fetch-depth: 25 + - name: Setup Node + uses: actions/setup-node@v1 + with: + node-version: '>=12.13' + - name: Build TGUI + run: bin/tgui --ci + working-directory: ./tgui-next + - name: Commit Artifacts + run: | + git config --local user.email "action@github.com" + git config --local user.name "TGUI" + git pull origin master + git commit -m "Automatic TGUI Rebuild [ci skip]" -a || true + - name: Push Artifacts + uses: ad-m/github-push-action@master + with: + github_token: ${{ secrets.GITHUB_MASTER_KEY }} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm index 2c6eda9f90..d01e4f8da1 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm @@ -18,6 +18,9 @@ /obj/item/mining_scanner, /obj/item/flashlight/lantern, /obj/item/card/id/mining, +/obj/item/gps/mining{ + tracking = 0 + }, /turf/open/floor/plating, /area/ruin/powered/golem_ship) "d" = ( @@ -31,6 +34,9 @@ /obj/item/mining_scanner, /obj/item/flashlight/lantern, /obj/item/card/id/mining, +/obj/item/gps/mining{ + tracking = 0 + }, /turf/open/floor/plating, /area/ruin/powered/golem_ship) "e" = ( @@ -150,6 +156,9 @@ "x" = ( /obj/structure/table/wood, /obj/machinery/reagentgrinder, +/obj/item/gps/mining{ + tracking = 0 + }, /turf/open/floor/mineral/titanium/purple, /area/ruin/powered/golem_ship) "z" = ( diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_wizard.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_wizard.dmm new file mode 100644 index 0000000000..05155ee2a8 --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_wizard.dmm @@ -0,0 +1,755 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"b" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"c" = ( +/turf/template_noop, +/area/template_noop) +"d" = ( +/obj/structure/stone_tile/slab, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"e" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/indestructible/boss/air, +/area/lavaland/surface/outdoors) +"f" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/indestructible/boss/air, +/area/lavaland/surface/outdoors) +"g" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood, +/turf/open/indestructible/boss/air, +/area/lavaland/surface/outdoors) +"h" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/indestructible/boss/air, +/area/lavaland/surface/outdoors) +"i" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/indestructible/boss/air, +/area/lavaland/surface/outdoors) +"j" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss/air, +/area/lavaland/surface/outdoors) +"k" = ( +/obj/structure/stone_tile/surrounding_tile/cracked, +/obj/structure/stone_tile/center, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/turf/open/indestructible/necropolis, +/area/lavaland/surface/outdoors) +"l" = ( +/obj/structure/stone_tile/block/cracked, +/turf/open/indestructible/necropolis, +/area/lavaland/surface/outdoors) +"m" = ( +/obj/structure/stone_tile/surrounding_tile/cracked, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/center, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/turf/open/indestructible/necropolis, +/area/lavaland/surface/outdoors) +"n" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile, +/turf/open/indestructible/boss/air, +/area/lavaland/surface/outdoors) +"o" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood, +/turf/open/indestructible/boss/air, +/area/lavaland/surface/outdoors) +"p" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/table/bronze, +/obj/item/disk/design_disk/adv/knight_gear, +/turf/open/indestructible/necropolis, +/area/lavaland/surface/outdoors) +"q" = ( +/obj/structure/table/bronze, +/obj/item/stack/sheet/mineral/runite{ + amount = 5 + }, +/turf/open/indestructible/necropolis, +/area/lavaland/surface/outdoors) +"r" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/table/bronze, +/obj/item/stack/sheet/mineral/runite{ + amount = 5 + }, +/turf/open/indestructible/necropolis, +/area/lavaland/surface/outdoors) +"s" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/indestructible/boss/air, +/area/lavaland/surface/outdoors) +"t" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/indestructible/boss/air, +/area/lavaland/surface/outdoors) +"u" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/center/cracked, +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/turf/open/indestructible/necropolis, +/area/lavaland/surface/outdoors) +"v" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/indestructible/necropolis, +/area/lavaland/surface/outdoors) +"w" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/center, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/turf/open/indestructible/necropolis, +/area/lavaland/surface/outdoors) +"x" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile, +/turf/open/indestructible/boss/air, +/area/lavaland/surface/outdoors) +"y" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/indestructible/boss/air, +/area/lavaland/surface/outdoors) +"z" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss/air, +/area/lavaland/surface/outdoors) +"A" = ( +/obj/structure/stone_tile/slab/cracked, +/turf/open/indestructible/boss/air, +/area/lavaland/surface/outdoors) +"B" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile, +/obj/effect/decal/cleanable/blood, +/turf/open/indestructible/boss/air, +/area/lavaland/surface/outdoors) +"C" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/indestructible/boss/air, +/area/lavaland/surface/outdoors) +"D" = ( +/turf/closed/indestructible/riveted/boss, +/area/lavaland/surface/outdoors) +"E" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/indestructible/boss/air, +/area/lavaland/surface/outdoors) +"F" = ( +/obj/structure/stone_tile/slab, +/obj/effect/mapping_helpers/no_lava, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"G" = ( +/turf/closed/indestructible/riveted/boss/see_through, +/area/lavaland/surface/outdoors) +"H" = ( +/obj/structure/necropolis_gate, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/fans/tiny/invisible, +/obj/effect/decal/cleanable/blood, +/turf/open/indestructible/boss/air, +/area/lavaland/surface/outdoors) +"I" = ( +/obj/structure/stone_tile/slab/cracked, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"J" = ( +/obj/structure/fluff/divine/convertaltar, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"K" = ( +/mob/living/simple_animal/hostile/dark_wizard, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) + +(1,1,1) = {" +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +"} +(2,1,1) = {" +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +"} +(3,1,1) = {" +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +"} +(4,1,1) = {" +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +"} +(5,1,1) = {" +c +c +a +a +a +c +c +c +c +c +c +c +c +c +a +a +a +a +a +a +"} +(6,1,1) = {" +c +c +a +a +a +c +c +a +a +c +c +a +a +a +a +a +b +b +a +a +"} +(7,1,1) = {" +c +c +c +a +d +a +a +a +a +a +a +a +F +a +b +b +b +b +b +a +"} +(8,1,1) = {" +c +c +a +a +a +a +a +a +a +a +a +a +D +b +b +b +b +b +b +a +"} +(9,1,1) = {" +c +c +a +a +a +a +e +j +o +t +y +D +D +b +K +b +b +b +K +a +"} +(10,1,1) = {" +c +c +a +a +a +a +f +k +p +u +z +D +G +b +b +b +b +b +b +a +"} +(11,1,1) = {" +c +c +a +a +a +a +g +l +q +v +A +E +H +b +b +b +J +b +b +a +"} +(12,1,1) = {" +c +c +a +a +a +a +h +m +r +w +B +D +G +b +b +b +b +b +b +a +"} +(13,1,1) = {" +c +c +a +a +a +a +i +n +s +x +C +D +D +b +K +b +b +b +K +a +"} +(14,1,1) = {" +c +c +c +a +a +a +a +a +a +a +a +a +D +b +b +b +b +b +b +a +"} +(15,1,1) = {" +c +c +c +a +d +a +a +a +a +a +a +a +I +a +b +b +b +b +b +a +"} +(16,1,1) = {" +c +c +a +a +a +a +c +c +c +a +a +a +a +a +a +a +b +b +a +a +"} +(17,1,1) = {" +c +c +a +a +a +c +c +c +c +c +c +c +c +a +a +a +a +a +a +c +"} +(18,1,1) = {" +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +"} +(19,1,1) = {" +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +"} +(20,1,1) = {" +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +"} diff --git a/_maps/RandomRuins/StationRuins/Lavaland/Mining_Station/Mining_Station_Public_01.dmm b/_maps/RandomRuins/LavaRuins/miningbase.dmm similarity index 61% rename from _maps/RandomRuins/StationRuins/Lavaland/Mining_Station/Mining_Station_Public_01.dmm rename to _maps/RandomRuins/LavaRuins/miningbase.dmm index fec45c7310..33d38be9ae 100644 --- a/_maps/RandomRuins/StationRuins/Lavaland/Mining_Station/Mining_Station_Public_01.dmm +++ b/_maps/RandomRuins/LavaRuins/miningbase.dmm @@ -1,2206 +1,5 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"al" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/mine/eva) -"ap" = ( -/obj/structure/ore_box, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/eva) -"at" = ( -/obj/structure/gulag_beacon, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"au" = ( -/obj/machinery/door/airlock/mining/glass{ - name = "Mining Station EVA"; - req_access_txt = "54" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/mine/eva) -"av" = ( -/obj/machinery/door/airlock{ - name = "Closet" - }, -/turf/open/floor/plating, -/area/mine/production) -"aG" = ( -/turf/open/floor/plating, -/area/mine/living_quarters) -"aJ" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/mine/production) -"aK" = ( -/obj/machinery/atmospherics/components/unary/tank/air{ - dir = 8 - }, -/turf/open/floor/plating, -/area/mine/living_quarters) -"aN" = ( -/turf/open/floor/plasteel/white, -/area/mine/laborcamp) -"aW" = ( -/obj/effect/turf_decal/tile/purple, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"aX" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock{ - name = "Labor Camp External Access" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"bg" = ( -/turf/closed/wall, -/area/mine/eva) -"bH" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/atmos_waste{ - dir = 4; - piping_layer = 3 - }, -/obj/structure/lattice/catwalk, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/mine/living_quarters) -"bI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"bX" = ( -/obj/machinery/door/window/southleft, -/obj/machinery/shower{ - pixel_y = 22 - }, -/turf/open/floor/plasteel/freezer, -/area/mine/living_quarters) -"cd" = ( -/turf/closed/wall, -/area/mine/laborcamp) -"cf" = ( -/obj/machinery/mineral/equipment_vendor, -/obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/mine/production) -"ci" = ( -/obj/machinery/door/airlock{ - name = "Vending" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"cn" = ( -/obj/machinery/door/airlock{ - id_tag = "miningdorm3"; - name = "Room 3" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"cr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"cz" = ( -/obj/machinery/door/poddoor/preopen{ - id = "labor"; - name = "labor camp blast door" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"cA" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/mine/eva) -"cD" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/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" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"di" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"dk" = ( -/obj/structure/table, -/obj/item/stack/packageWrap, -/obj/item/stack/packageWrap, -/obj/item/stack/packageWrap, -/obj/item/hand_labeler, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/eva) -"dC" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"dL" = ( -/obj/machinery/atmospherics/components/binary/pump/on, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/mine/living_quarters) -"dP" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/computer/shuttle/mining{ - req_access = null - }, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"dZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/door/airlock/glass{ - name = "Mining Station Bridge" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/mine/production) -"eh" = ( -/obj/structure/table, -/obj/item/storage/firstaid/regular, -/turf/open/floor/plasteel/white, -/area/mine/laborcamp) -"es" = ( -/turf/open/floor/plasteel, -/area/mine/production) -"ez" = ( -/obj/effect/turf_decal/loading_area{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"eE" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/button/door{ - id = "labor"; - name = "Labor Camp Lockdown"; - pixel_y = 28; - req_access_txt = "2" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"eL" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/effect/turf_decal/tile/purple, -/turf/open/floor/plasteel, -/area/mine/production) -"eP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/door/airlock/glass{ - name = "Mining Station Bridge" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"eS" = ( -/obj/structure/table, -/obj/item/gps/mining, -/obj/item/gps/mining, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"fm" = ( -/obj/structure/sign/warning/docking, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/mine/production) -"fs" = ( -/obj/item/radio/intercom{ - desc = "Talk through this. It looks like it has been modified to not broadcast."; - name = "Prison Intercom (General)"; - pixel_y = 24; - prison_radio = 1 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"fN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"fO" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Shuttle Docking Foyer"; - dir = 8; - network = list("mine") - }, -/obj/machinery/newscaster{ - pixel_x = 30; - pixel_y = 1 - }, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/structure/closet/secure_closet/miner, -/turf/open/floor/plasteel, -/area/mine/production) -"fU" = ( -/obj/item/radio/intercom{ - dir = 8; - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"gk" = ( -/obj/structure/closet/crate{ - icon_state = "crateopen" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/mine/production) -"gs" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"gP" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Mining Station Communications"; - req_access_txt = "48" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/mine/maintenance) -"gT" = ( -/obj/structure/bed, -/obj/item/bedsheet/medical, -/obj/machinery/camera{ - c_tag = "Labor Camp Medical"; - dir = 8; - network = list("labor") - }, -/turf/open/floor/plasteel/white, -/area/mine/laborcamp) -"hf" = ( -/obj/item/twohanded/required/kirbyplants/random, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"hm" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"hv" = ( -/obj/machinery/camera{ - c_tag = "Crew Area Hallway West"; - dir = 1; - network = list("mine") - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"hy" = ( -/obj/machinery/camera{ - c_tag = "Labor Camp External"; - dir = 4; - network = list("labor") - }, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"hH" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/structure/displaycase, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"hP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"hQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"ia" = ( -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"ig" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/red, -/obj/item/paper_bin, -/obj/item/pen, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"ik" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"iv" = ( -/obj/machinery/camera{ - c_tag = "Dormitories"; - dir = 4; - network = list("mine") - }, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"iG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"iQ" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"jf" = ( -/obj/structure/table, -/obj/item/storage/firstaid/regular, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/mine/living_quarters) -"jn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/mine/eva) -"jD" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/table, -/obj/item/restraints/handcuffs, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"jJ" = ( -/turf/closed/mineral/random/labormineral/volcanic, -/area/lavaland/surface/outdoors/explored) -"kb" = ( -/obj/machinery/mineral/processing_unit_console, -/turf/closed/wall, -/area/mine/laborcamp) -"kj" = ( -/obj/machinery/conveyor{ - id = "gulag" - }, -/turf/open/floor/plating, -/area/mine/laborcamp) -"kz" = ( -/obj/machinery/light/small, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"kB" = ( -/obj/machinery/computer/security/labor, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"kE" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - glass = 1; - name = "Mining External Airlock"; - opacity = 0; - req_access_txt = "54" - }, -/turf/open/floor/plasteel, -/area/mine/eva) -"kF" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"kH" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"kR" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"kS" = ( -/obj/structure/table, -/obj/item/storage/firstaid/toxin{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/mine/living_quarters) -"lj" = ( -/turf/open/floor/mech_bay_recharge_floor, -/area/mine/eva) -"lr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/mine/living_quarters) -"lu" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/machinery/computer/mech_bay_power_console{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/eva) -"ly" = ( -/obj/machinery/camera{ - c_tag = "Labor Camp Central"; - network = list("labor") - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"lI" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/effect/turf_decal/tile/brown, -/turf/open/floor/plasteel, -/area/mine/production) -"lS" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"me" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"mg" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"mi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/mine/production) -"mp" = ( -/obj/docking_port/stationary{ - area_type = /area/lavaland/surface/outdoors; - dir = 8; - dwidth = 2; - height = 5; - id = "laborcamp_away"; - name = "labor camp"; - width = 9 - }, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors/explored) -"mv" = ( -/obj/machinery/door/window/southright, -/obj/machinery/shower{ - pixel_y = 22 - }, -/turf/open/floor/plasteel/freezer, -/area/mine/living_quarters) -"mw" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/turf_decal/loading_area{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"my" = ( -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors/explored) -"mI" = ( -/obj/machinery/space_heater, -/turf/open/floor/plating, -/area/mine/production) -"mL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"mN" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/mine/production) -"nm" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"nv" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/mine/living_quarters) -"ny" = ( -/obj/machinery/computer/prisoner, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"nH" = ( -/obj/structure/displaycase, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"nI" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"nJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"nK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/mine/production) -"nN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/light/small, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/mine/living_quarters) -"nR" = ( -/obj/structure/ore_box, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/mine/production) -"oo" = ( -/obj/machinery/conveyor{ - id = "mining_internal" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/mine/production) -"ou" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/structure/closet/secure_closet/miner, -/turf/open/floor/plasteel, -/area/mine/production) -"ow" = ( -/obj/machinery/door/airlock/medical/glass{ - name = "Infirmary" - }, -/turf/open/floor/plasteel/white, -/area/mine/laborcamp) -"oy" = ( -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"oG" = ( -/obj/machinery/mineral/equipment_vendor, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"oM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"oY" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"pi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/mine/living_quarters) -"pr" = ( -/obj/structure/table, -/obj/item/pickaxe, -/obj/item/gps/mining, -/obj/item/gps/mining, -/obj/item/gps/mining, -/obj/item/gps/mining, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/eva) -"pK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/mine/production) -"qb" = ( -/obj/structure/tank_dispenser/oxygen, -/obj/effect/turf_decal/tile/purple, -/turf/open/floor/plasteel, -/area/mine/eva) -"qc" = ( -/obj/machinery/shower{ - dir = 8 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = 30 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"qg" = ( -/obj/structure/toilet{ - dir = 8 - }, -/turf/open/floor/plasteel/freezer, -/area/mine/living_quarters) -"qh" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"qm" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/closet/crate/secure/loot, -/obj/structure/sign/warning/electricshock{ - pixel_y = 32 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/mine/living_quarters) -"qH" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 30 - }, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"qM" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/drinks/beer{ - pixel_x = 7; - pixel_y = 5 - }, -/obj/item/reagent_containers/food/drinks/beer{ - pixel_x = -1; - pixel_y = 9 - }, -/obj/item/reagent_containers/food/drinks/beer{ - pixel_x = -8 - }, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"qR" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"qS" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/eva) -"qZ" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"re" = ( -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/obj/structure/closet/secure_closet/labor_camp_security, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"rf" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"rB" = ( -/obj/machinery/mineral/unloading_machine{ - dir = 1; - icon_state = "unloader-corner"; - input_dir = 1; - output_dir = 2 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating, -/area/mine/production) -"rK" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"rU" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/mine/living_quarters) -"sa" = ( -/obj/machinery/mineral/processing_unit{ - dir = 1 - }, -/turf/open/floor/plating, -/area/mine/laborcamp) -"se" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/mine/living_quarters) -"si" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"sj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/mine/production) -"sm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"sx" = ( -/obj/item/radio/intercom{ - dir = 8; - 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 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"sz" = ( -/obj/effect/turf_decal/loading_area, -/turf/open/floor/plasteel, -/area/mine/production) -"sE" = ( -/obj/structure/closet/crate, -/obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"sP" = ( -/obj/structure/table, -/obj/machinery/microwave{ - pixel_y = 6 - }, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"sR" = ( -/obj/machinery/light, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"sU" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"sW" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"tk" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"tr" = ( -/obj/structure/chair, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"tK" = ( -/obj/structure/closet/crate, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors/explored) -"tY" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"uh" = ( -/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/mine/living_quarters) -"uG" = ( -/obj/structure/table, -/obj/item/clothing/glasses/meson, -/obj/item/storage/bag/ore, -/obj/item/pickaxe, -/obj/item/mining_scanner, -/obj/item/flashlight, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"uI" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Mining Station Maintenance"; - req_access_txt = "48" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/mine/living_quarters) -"uJ" = ( -/obj/item/bikehorn{ - color = "#000"; - desc = "A horn off of a bicycle. This one has been charred to hell and back, yet somehow it still honks."; - name = "charred bike horn" - }, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors/explored) -"uR" = ( -/obj/effect/turf_decal/loading_area{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"va" = ( -/obj/machinery/button/door{ - id = "miningbathroom"; - name = "Door Bolt Control"; - normaldoorcontrol = 1; - pixel_y = -25; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/mine/living_quarters) -"vo" = ( -/obj/machinery/flasher{ - id = "labor" - }, -/turf/closed/wall, -/area/mine/laborcamp) -"vy" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock{ - name = "Labor Camp External Access" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"vE" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/eva) -"vJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/mine/eva) -"wd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/mine/production) -"wg" = ( -/obj/structure/closet/crate, -/obj/item/dice/d4, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"wj" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/mine/production) -"wt" = ( -/obj/structure/toilet{ - dir = 8 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/mine/laborcamp/security) -"wz" = ( -/turf/closed/mineral/random/volcanic, -/area/lavaland/surface/outdoors) -"wB" = ( -/obj/structure/table, -/turf/open/floor/plasteel/white, -/area/mine/laborcamp) -"wC" = ( -/turf/open/floor/circuit, -/area/mine/maintenance) -"wE" = ( -/obj/machinery/vending/cigarette, -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"wV" = ( -/turf/closed/mineral/random/volcanic, -/area/lavaland/surface/outdoors/explored) -"wX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"xd" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"xh" = ( -/obj/machinery/vending/sustenance, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"xv" = ( -/obj/machinery/mech_bay_recharge_port, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/mine/eva) -"xA" = ( -/obj/machinery/camera{ - c_tag = "Communications Relay"; - dir = 8; - network = list("mine") - }, -/turf/open/floor/circuit, -/area/mine/maintenance) -"xH" = ( -/obj/structure/table, -/obj/item/cigbutt, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"xP" = ( -/obj/machinery/suit_storage_unit/mining, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/eva) -"xS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"yt" = ( -/obj/structure/closet/crate{ - icon_state = "crateopen" - }, -/obj/machinery/light, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"yF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/mine/production) -"yR" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel, -/area/mine/production) -"yT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/mine/living_quarters) -"zh" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/mine/living_quarters) -"zo" = ( -/obj/structure/table, -/turf/open/floor/carpet, -/area/mine/living_quarters) -"zx" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/mine/laborcamp) -"zy" = ( -/obj/item/twohanded/required/kirbyplants/random, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"zI" = ( -/turf/open/lava/smooth/lava_land_surface, -/area/lavaland/surface/outdoors/explored) -"zN" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"zY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"zZ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"Ab" = ( -/obj/structure/ore_box, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors/explored) -"Ad" = ( -/obj/machinery/light_switch{ - pixel_y = -25 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/circuit, -/area/mine/maintenance) -"Ag" = ( -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"Ah" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"Aj" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"Al" = ( -/turf/closed/wall/r_wall, -/area/mine/maintenance) -"At" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/mine/production) -"AH" = ( -/obj/machinery/cryopod{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"AJ" = ( -/obj/machinery/door/airlock/glass{ - name = "Break Room" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"AQ" = ( -/obj/machinery/door/airlock{ - id_tag = "miningdorm2"; - name = "Room 2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"AS" = ( -/obj/machinery/door/airlock/external{ - glass = 1; - name = "Mining External Airlock"; - opacity = 0 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plasteel, -/area/mine/production) -"AZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"Bc" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/mine/production) -"Be" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/mine/eva) -"Bh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/mine/production) -"Bo" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/mine/living_quarters) -"BO" = ( -/obj/machinery/door/airlock{ - name = "Labor Camp Storage" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Ca" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Mining Station Port Wing APC"; - pixel_x = 1; - pixel_y = 23 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"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 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"Cm" = ( -/obj/machinery/vending/snack, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"Cy" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/security/glass{ - name = "Labor Camp Shuttle Security Airlock"; - req_access_txt = "2" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"CA" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"CH" = ( -/obj/structure/rack, -/obj/item/storage/bag/ore, -/obj/item/pickaxe, -/obj/item/flashlight, -/obj/item/clothing/glasses/meson, -/obj/item/mining_scanner, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"CJ" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"CR" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"CV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel, -/area/mine/eva) -"Dd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"Dr" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/chair, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"Dv" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-4" - }, -/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, -/area/mine/production) -"Eg" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/mine/production) -"Em" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"Ev" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/button/door{ - id = "miningdorm2"; - name = "Door Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 25; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/turf/open/floor/carpet, -/area/mine/living_quarters) -"Ex" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/mine/eva) -"EB" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/vending/security, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"EH" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"Fx" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"FC" = ( -/obj/machinery/airalarm{ - pixel_y = 24 - }, -/turf/open/floor/circuit, -/area/mine/maintenance) -"FE" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"Ga" = ( -/obj/machinery/status_display/evac{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Ge" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/mine/living_quarters) -"Gt" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"GM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/mine/production) -"GN" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Mining Station Starboard Wing APC"; - pixel_x = -25; - pixel_y = 2 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plasteel, -/area/mine/production) -"Hd" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/mine/eva) -"Hg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Hh" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "gulag" - }, -/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" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"Hq" = ( -/obj/structure/rack, -/obj/item/storage/bag/ore, -/obj/item/flashlight, -/obj/item/pickaxe, -/obj/item/clothing/glasses/meson, -/obj/item/mining_scanner, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Hx" = ( -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"HE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 - }, -/obj/machinery/bluespace_beacon, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel/dark, -/area/mine/maintenance) -"HO" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/security/glass{ - name = "Labor Camp Shuttle Prisoner Airlock" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"HR" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/turf/open/floor/plating, -/area/mine/living_quarters) -"HS" = ( -/obj/machinery/conveyor{ - dir = 10; - id = "gulag" - }, -/turf/open/floor/plating, -/area/mine/laborcamp) -"HU" = ( -/obj/machinery/computer/shuttle/labor/one_way{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"HY" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/iv_drip, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/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, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"Ik" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/obj/machinery/shower{ - dir = 8 - }, -/obj/effect/turf_decal/tile/purple, -/turf/open/floor/plasteel, -/area/mine/eva) -"ID" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/machinery/meter, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/mine/living_quarters) -"IG" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"II" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"IK" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/red, -/obj/machinery/recharger, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"IS" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/mine/living_quarters) -"IY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/turf/open/floor/carpet, -/area/mine/living_quarters) -"Jc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/mine/living_quarters) -"Jl" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"Jo" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"Jr" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"JH" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"JJ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"JP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"JV" = ( -/obj/machinery/mineral/processing_unit{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating, -/area/mine/production) -"JW" = ( -/obj/machinery/power/apc{ - name = "Mining EVA APC"; - pixel_x = 1; - pixel_y = -23 - }, -/obj/machinery/recharge_station, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/mine/eva) -"JY" = ( -/turf/closed/mineral/random/labormineral/volcanic, -/area/lavaland/surface/outdoors) -"Kb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"Kk" = ( -/obj/machinery/conveyor_switch/oneway{ - id = "mining_internal"; - name = "mining conveyor" - }, -/obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"Kl" = ( -/turf/open/floor/plasteel, -/area/mine/eva) -"Kt" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "mining_internal" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/mine/production) -"Kx" = ( +"aa" = ( /obj/machinery/camera{ c_tag = "EVA"; dir = 4; @@ -2226,72 +25,276 @@ }, /turf/open/floor/plasteel, /area/mine/eva) -"KG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "1-2" +"ab" = ( +/turf/template_noop, +/area/template_noop) +"ac" = ( +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"ad" = ( +/obj/machinery/light_switch{ + pixel_x = 27 }, -/obj/item/beacon, -/turf/open/floor/plasteel, -/area/mine/production) -"KO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"KP" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - glass = 1; - name = "Mining External Airlock"; - opacity = 0; - req_access_txt = "54" - }, -/turf/open/floor/plasteel, -/area/mine/eva) -"KQ" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - glass = 1; - name = "Mining Shuttle Airlock"; - opacity = 0 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"KR" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"KS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/mine/production) -"KU" = ( /obj/effect/turf_decal/tile/brown, /obj/effect/turf_decal/tile/brown{ dir = 4 }, /turf/open/floor/plasteel, /area/mine/eva) -"KV" = ( +"ae" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/computer/shuttle/mining{ + req_access = null + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"af" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/mine/eva) +"ag" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/mine/eva) +"ah" = ( +/obj/machinery/telecomms/relay/preset/mining, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/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/dark, +/area/mine/maintenance) +"ai" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"aj" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, +/area/mine/eva) +"ak" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"al" = ( +/obj/structure/table, +/obj/item/pickaxe, +/obj/item/gps/mining, +/obj/item/gps/mining, +/obj/item/gps/mining, +/obj/item/gps/mining, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"am" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/obj/machinery/bluespace_beacon, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/dark, +/area/mine/maintenance) +"an" = ( +/obj/machinery/suit_storage_unit/mining, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"ao" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/mine/eva) +"ap" = ( +/obj/structure/closet/crate, +/obj/item/dice/d4, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"aq" = ( +/obj/machinery/suit_storage_unit/mining, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"ar" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, /area/mine/living_quarters) -"Lb" = ( +"as" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"at" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"au" = ( +/obj/machinery/door/airlock/mining/glass{ + name = "Mining Station EVA"; + req_access_txt = "54" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"av" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"aw" = ( +/turf/closed/wall, +/area/mine/production) +"ax" = ( +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"ay" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/hand_labeler, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"az" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/turf/open/floor/plasteel, +/area/mine/eva) +"aA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"aB" = ( +/turf/open/floor/plasteel, +/area/mine/eva) +"aC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"aD" = ( +/obj/structure/tank_dispenser/oxygen, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/mine/eva) +"aE" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"aF" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/obj/machinery/shower{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/mine/eva) +"aG" = ( /obj/docking_port/stationary{ area_type = /area/lavaland/surface/outdoors; dir = 8; @@ -2303,77 +306,436 @@ }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) -"Lc" = ( +"aH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/item/beacon, +/turf/open/floor/plasteel, +/area/mine/production) +"aI" = ( +/obj/structure/sign/warning/docking, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/mine/production) +"aJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"aK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"aL" = ( +/obj/machinery/power/apc{ + name = "Mining EVA APC"; + pixel_x = 1; + pixel_y = -23 + }, +/obj/machinery/recharge_station, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"aM" = ( +/obj/machinery/mech_bay_recharge_port, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/mine/eva) +"aN" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/mine/production) +"aO" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/computer/mech_bay_power_console{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"aP" = ( +/turf/template_noop, +/area/space) +"aQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"aR" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"aS" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Mining External Airlock"; + opacity = 0; + req_access_txt = "54" + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"aT" = ( +/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) +"aU" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"aV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"aW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"aX" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Mining External Airlock"; + opacity = 0; + req_access_txt = "54" + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"aY" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"aZ" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 30 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"ba" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Mining Station Starboard Wing APC"; + pixel_x = -25; + pixel_y = 2 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"bb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"bc" = ( +/obj/machinery/mineral/mint, +/turf/open/floor/plasteel, +/area/mine/production) +"bd" = ( +/obj/structure/closet/crate, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/mine/production) +"be" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/structure/closet/secure_closet/miner, +/turf/open/floor/plasteel, +/area/mine/production) +"bf" = ( +/turf/open/floor/mech_bay_recharge_floor, +/area/mine/eva) +"bg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"bh" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"bi" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"bj" = ( +/obj/structure/ore_box, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"bk" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"bl" = ( +/obj/machinery/mineral/equipment_vendor, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"bm" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/mine/production) +"bn" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/closet/secure_closet/miner, +/turf/open/floor/plasteel, +/area/mine/production) +"bo" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Shuttle Docking Foyer"; + dir = 8; + network = list("mine") + }, +/obj/machinery/newscaster{ + pixel_x = 30; + pixel_y = 1 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/structure/closet/secure_closet/miner, +/turf/open/floor/plasteel, +/area/mine/production) +"bp" = ( +/obj/machinery/door/airlock{ + name = "Closet" + }, +/turf/open/floor/plating, +/area/mine/production) +"bq" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/mine/production) +"br" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Mining Shuttle Airlock"; + opacity = 0 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"bs" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/mine/production) +"bt" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Mining Shuttle Airlock"; + opacity = 0 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"bu" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"bv" = ( /obj/structure/cable{ icon_state = "0-4" }, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/mine/production) -"Le" = ( -/obj/structure/closet/crate/internals, -/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, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Lj" = ( -/obj/machinery/power/port_gen/pacman{ - anchored = 1 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/mine/living_quarters) -"Lm" = ( -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"LC" = ( -/obj/structure/table, -/obj/item/storage/fancy/donut_box, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, +"bw" = ( /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"LG" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"LL" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/power/apc{ - dir = 1; - name = "Labor Camp Security APC"; - pixel_y = 23 - }, /obj/structure/cable{ icon_state = "0-4" }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"LZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/mine/production) +"bx" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/mine/eva) +"by" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/mine/production) +"bz" = ( +/turf/closed/mineral/random/high_chance/volcanic, +/area/lavaland/surface/outdoors) +"bA" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/explored) +"bB" = ( +/turf/open/floor/circuit, +/area/mine/maintenance) +"bC" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Mining Communications APC"; + pixel_x = 1; + pixel_y = 23 + }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/turf/open/floor/plasteel, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/dark, +/area/mine/maintenance) +"bD" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/iv_drip, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, /area/mine/living_quarters) -"Mc" = ( +"bE" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/machinery/door/airlock/mining/glass{ @@ -2392,26 +754,7 @@ }, /turf/open/floor/plasteel, /area/mine/production) -"Mj" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, -/obj/structure/mirror{ - pixel_x = -28 - }, -/turf/open/floor/plasteel/freezer, -/area/mine/living_quarters) -"Mk" = ( -/obj/machinery/conveyor_switch/oneway{ - id = "gulag" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Mn" = ( -/turf/closed/wall/r_wall, -/area/mine/laborcamp/security) -"Ms" = ( +"bF" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 }, @@ -2421,21 +764,170 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, /turf/open/floor/plasteel/white, /area/mine/living_quarters) -"Mw" = ( -/obj/machinery/door/airlock/external{ - glass = 1; - name = "Mining External Airlock"; - opacity = 0 +"bG" = ( +/turf/open/lava/smooth/lava_land_surface, +/area/template_noop) +"bH" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/mine/production) +"bI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/mine/production) +"bJ" = ( +/obj/machinery/conveyor{ + id = "mining_internal" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/mine/production) +"bK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"bL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/circuit, +/area/mine/maintenance) +"bM" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/obj/effect/turf_decal/tile/purple{ dir = 1 }, /turf/open/floor/plasteel, /area/mine/production) -"MD" = ( -/turf/closed/mineral/random/volcanic, -/area/lavaland/surface/outdoors/unexplored) -"ME" = ( +"bN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"bO" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"bP" = ( +/obj/machinery/mineral/processing_unit{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating, +/area/mine/production) +"bQ" = ( +/turf/closed/wall, +/area/mine/living_quarters) +"bR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"bS" = ( +/obj/item/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"bT" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"bU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/door/airlock/glass{ + name = "Mining Station Bridge" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"bV" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"bW" = ( /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, /obj/structure/cable{ @@ -2443,7 +935,39 @@ }, /turf/open/floor/plasteel, /area/mine/production) -"MF" = ( +"bX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/mine/production) +"bY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"bZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"ca" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"cb" = ( /obj/structure/closet/crate/freezer, /obj/item/reagent_containers/blood, /obj/item/reagent_containers/blood{ @@ -2474,252 +998,274 @@ }, /turf/open/floor/plasteel/white, /area/mine/living_quarters) -"MG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, +"cc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"cd" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"ce" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/mineral/equipment_vendor, +/turf/open/floor/plasteel, +/area/mine/production) +"cf" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown, +/turf/open/floor/plasteel, +/area/mine/production) +"cg" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Mining External Airlock"; + opacity = 0 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plasteel, +/area/mine/production) +"ch" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"ci" = ( +/obj/machinery/mineral/equipment_vendor, /obj/effect/turf_decal/tile/brown{ dir = 1 }, +/obj/effect/turf_decal/tile/brown, /obj/effect/turf_decal/tile/brown{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/plasteel, +/area/mine/production) +"cj" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"ck" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, /area/mine/living_quarters) -"MH" = ( +"cl" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/closet/crate/secure/loot, +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"cm" = ( /obj/machinery/portable_atmospherics/canister/oxygen, /obj/structure/cable{ icon_state = "2-8" }, /turf/open/floor/plating, /area/mine/living_quarters) -"ML" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"MM" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/closet/secure_closet/freezer/gulag_fridge, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"MV" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"Nf" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/structure/closet/secure_closet/miner, -/turf/open/floor/plasteel, -/area/mine/production) -"Nk" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"NB" = ( +"cn" = ( /obj/machinery/light/small{ dir = 4 }, -/obj/machinery/button/door{ - id = "miningdorm3"; - name = "Door Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 25; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/turf/open/floor/carpet, -/area/mine/living_quarters) -"NH" = ( -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"NI" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/mine/production) -"Oh" = ( -/obj/structure/chair/office{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"Oj" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "mining_internal" - }, -/obj/structure/plasticflaps, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating, -/area/mine/production) -"Op" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/security/glass{ - name = "Labor Camp Shuttle Prisoner Airlock" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Os" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"Ov" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"OI" = ( -/obj/machinery/mineral/mint, -/turf/open/floor/plasteel, -/area/mine/production) -"ON" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"Pp" = ( -/obj/machinery/camera{ - c_tag = "Public Shuttle Lobby"; - network = list("mine") - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown, -/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" = ( /obj/effect/turf_decal/tile/purple{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"PN" = ( -/obj/machinery/light_switch{ - pixel_x = 27 - }, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/eva) -"PO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, /turf/open/floor/plasteel, /area/mine/production) -"PY" = ( +"co" = ( /obj/machinery/shower{ dir = 8 }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/white, -/area/mine/laborcamp) -"Qi" = ( -/obj/structure/table, -/obj/machinery/reagentgrinder, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 +/obj/structure/extinguisher_cabinet{ + pixel_x = 30 }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"Qr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/door/airlock/security/glass{ - name = "Labor Camp Monitoring"; - req_access_txt = "2" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"Qx" = ( -/obj/structure/chair{ +/obj/effect/turf_decal/tile/purple{ dir = 8 }, /turf/open/floor/plasteel, -/area/mine/laborcamp) -"Qy" = ( +/area/mine/production) +"cp" = ( +/turf/open/floor/plating, +/area/mine/living_quarters) +"cq" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Mining External Airlock"; + opacity = 0 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"cr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/mine/living_quarters) +"cs" = ( +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/circuit, +/area/mine/maintenance) +"ct" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"cu" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/mine/production) +"cv" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/mine/living_quarters) +"cx" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"cB" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/obj/structure/table, +/obj/item/paper/fluff/stations/lavaland/orm_notice, +/turf/open/floor/plasteel, +/area/mine/production) +"cC" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/structure/sign/poster/official/random{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"cD" = ( +/obj/structure/ore_box, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/mine/production) +"cE" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/mine/production) +"cJ" = ( +/obj/machinery/camera{ + c_tag = "Communications Relay"; + dir = 8; + network = list("mine") + }, +/turf/open/floor/circuit, +/area/mine/maintenance) +"cM" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"cN" = ( +/turf/open/floor/plasteel, +/area/mine/production) +"cP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/dark, +/area/mine/maintenance) +"cQ" = ( +/obj/structure/table, +/obj/item/storage/firstaid/toxin{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/mine/living_quarters) +"cX" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/machinery/power/port_gen/pacman{ + anchored = 1 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"cY" = ( +/turf/closed/wall/r_wall, +/area/mine/maintenance) +"cZ" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/atmos_waste{ + dir = 4; + piping_layer = 3 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/mine/living_quarters) +"da" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/meter, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"de" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, /obj/structure/cable{ @@ -2727,93 +1273,112 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"QD" = ( -/obj/machinery/suit_storage_unit/mining, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, +"dg" = ( /obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, /turf/open/floor/plasteel, -/area/mine/eva) -"Rf" = ( -/obj/machinery/mineral/unloading_machine{ - dir = 1; - icon_state = "unloader-corner"; - input_dir = 1; - output_dir = 2 - }, -/turf/open/floor/plating, -/area/mine/laborcamp) -"Ro" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/door/airlock/highsecurity{ - name = "Labor Camp Monitoring"; - req_access_txt = "2"; - security_level = 6 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Ru" = ( -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/obj/structure/chair, +/area/mine/production) +"di" = ( /turf/open/floor/plasteel, /area/mine/living_quarters) -"Rv" = ( -/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/mine/production) -"RC" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"RF" = ( -/turf/closed/wall, -/area/mine/laborcamp/security) -"RH" = ( -/obj/machinery/camera{ - c_tag = "Crew Area"; - dir = 1; - network = list("mine") - }, -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_y = -32 - }, -/obj/machinery/light, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"RI" = ( -/obj/structure/closet/crate, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/mine/production) -"RP" = ( +"dj" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/mine/living_quarters) +"dk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"Sd" = ( +"dl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"dn" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"dq" = ( +/obj/machinery/camera{ + c_tag = "Crew Area Hallway"; + network = list("mine") + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"dr" = ( +/obj/item/twohanded/required/kirbyplants/random, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"dt" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"du" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"dv" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"dx" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"dy" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, @@ -2825,135 +1390,170 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"Sj" = ( +"dD" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, /obj/structure/cable{ icon_state = "4-8" }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"Sp" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/mine/laborcamp/security) -"Sq" = ( -/obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"Ss" = ( -/obj/machinery/conveyor{ - dir = 10; - id = "mining_internal" - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plating, -/area/mine/production) -"SO" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ +"dK" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ dir = 8 }, -/turf/open/floor/plasteel/freezer, +/turf/open/floor/plating, /area/mine/living_quarters) -"SW" = ( +"dL" = ( +/turf/closed/mineral/random/volcanic, +/area/lavaland/surface/outdoors) +"dM" = ( +/obj/effect/turf_decal/loading_area, +/turf/open/floor/plasteel, +/area/mine/production) +"dN" = ( +/obj/structure/cable, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/mine/living_quarters) +"dO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"dQ" = ( /obj/effect/turf_decal/loading_area{ dir = 4 }, /turf/open/floor/plasteel, /area/mine/production) -"SY" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/turf/open/floor/plasteel, -/area/mine/eva) -"Te" = ( -/obj/structure/table, -/obj/item/trash/plate, -/obj/item/kitchen/fork, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Tm" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ +"dR" = ( +/obj/machinery/light/small{ dir = 4 }, -/obj/machinery/door/airlock/external{ - glass = 1; - name = "Mining Shuttle Airlock"; - opacity = 0 - }, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/mine/production) -"TC" = ( -/obj/structure/chair/comfy/brown{ - dir = 8 +"dS" = ( +/obj/machinery/light_switch{ + pixel_y = -25 }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"TG" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/obj/machinery/mineral/equipment_vendor, -/turf/open/floor/plasteel, -/area/mine/production) -"TI" = ( -/obj/machinery/door/airlock/medical/glass{ - name = "Infirmary" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel/white, -/area/mine/living_quarters) -"TJ" = ( -/obj/structure/bed, -/obj/item/bedsheet/brown, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/carpet, -/area/mine/living_quarters) -"Ue" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-4" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 }, /turf/open/floor/circuit, /area/mine/maintenance) -"Uk" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/tile/red{ +"dT" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/mine/living_quarters) +"dU" = ( +/obj/item/twohanded/required/kirbyplants/random, +/obj/effect/turf_decal/tile/brown{ dir = 1 }, -/mob/living/simple_animal/bot/secbot/beepsky{ - desc = "Powered by the tears and sweat of laborers."; - name = "Prison Ofitser" +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 }, /turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"Un" = ( +/area/mine/living_quarters) +"dV" = ( +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/structure/chair, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"dW" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/chair, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"dX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"dY" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"ea" = ( +/obj/structure/table, +/obj/item/storage/firstaid/regular, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/mine/living_quarters) +"eb" = ( +/obj/machinery/power/port_gen/pacman{ + anchored = 1 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/mine/living_quarters) +"ec" = ( +/obj/machinery/atmospherics/components/binary/pump/on, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"ed" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"ee" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"ef" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"eg" = ( /obj/machinery/light/small{ dir = 4 }, @@ -2969,169 +1569,14 @@ }, /turf/open/floor/carpet, /area/mine/living_quarters) -"Uz" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Mining Communications APC"; - pixel_x = 1; - pixel_y = 23 +"ei" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel/dark, -/area/mine/maintenance) -"UE" = ( -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/machinery/power/port_gen/pacman{ - anchored = 1 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/mine/living_quarters) -"UI" = ( -/obj/machinery/camera{ - c_tag = "Crew Area Hallway East"; - network = list("mine") - }, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"UJ" = ( -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"Vj" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/obj/structure/table, -/obj/item/paper/fluff/stations/lavaland/orm_notice, +/obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/mine/production) -"Vo" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/mine/production) -"Vs" = ( -/obj/effect/turf_decal/tile/purple, -/turf/open/floor/plasteel, -/area/mine/production) -"VN" = ( -/turf/closed/wall, -/area/mine/living_quarters) -"VP" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/mine/production) -"VR" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/security/glass{ - name = "Labor Camp Shuttle Security Airlock"; - req_access_txt = "2" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"VT" = ( -/turf/open/lava/smooth/lava_land_surface, -/area/lavaland/surface/outdoors) -"VY" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/eva) -"Wf" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"Wt" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Ww" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/mine/production) -"WL" = ( -/obj/machinery/computer/secure_data, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"WN" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/dark, -/area/mine/maintenance) -"WX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"WY" = ( -/obj/machinery/door/airlock{ - id_tag = "miningdorm1"; - name = "Room 1" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"Xo" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/mine/laborcamp) -"Xr" = ( +"el" = ( /obj/machinery/camera{ c_tag = "Processing Area Room"; dir = 8; @@ -3148,11 +1593,98 @@ }, /turf/open/floor/plasteel, /area/mine/production) -"XG" = ( -/obj/effect/turf_decal/bot, +"en" = ( +/obj/structure/table, +/obj/item/clothing/glasses/meson, +/obj/item/storage/bag/ore, +/obj/item/pickaxe, +/obj/item/mining_scanner, +/obj/item/flashlight, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"eo" = ( +/obj/machinery/mineral/unloading_machine{ + dir = 1; + icon_state = "unloader-corner"; + input_dir = 1; + output_dir = 2 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating, +/area/mine/production) +"ep" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Mining Station Communications"; + req_access_txt = "48" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/maintenance) +"eq" = ( +/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/mine/production) -"XN" = ( +"er" = ( +/obj/machinery/door/airlock/medical/glass{ + name = "Infirmary" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel/white, +/area/mine/living_quarters) +"es" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Mining Station Maintenance"; + req_access_txt = "48" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"et" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"eu" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/mine/living_quarters) +"ev" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/mine/production) +"ex" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "mining_internal"; + name = "mining conveyor" + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"eC" = ( +/obj/machinery/door/airlock{ + id_tag = "miningdorm3"; + name = "Room 3" + }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -3160,8 +1692,134 @@ dir = 4 }, /turf/open/floor/plasteel, +/area/mine/living_quarters) +"eF" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/mine/living_quarters) +"eI" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/mine/living_quarters) +"eJ" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"eK" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Mining Station Port Wing APC"; + pixel_x = 1; + pixel_y = 23 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"eL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"eM" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, /area/mine/production) -"XP" = ( +"eO" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/machinery/light, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"eZ" = ( +/obj/machinery/camera{ + c_tag = "Crew Area Hallway East"; + network = list("mine") + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fb" = ( +/obj/structure/bed, +/obj/item/bedsheet/brown, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/carpet, +/area/mine/living_quarters) +"fd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fA" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fB" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/turf/open/floor/carpet, +/area/mine/living_quarters) +"fC" = ( +/obj/machinery/door/airlock{ + id_tag = "miningdorm2"; + name = "Room 2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"fD" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, @@ -3170,72 +1828,366 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"XR" = ( -/obj/structure/sign/poster/official/random{ +"gJ" = ( +/obj/machinery/vending/cigarette, +/obj/machinery/newscaster{ pixel_y = 32 }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"XU" = ( -/obj/machinery/power/smes{ - charge = 5e+006 +"hE" = ( +/obj/structure/chair, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 }, -/obj/structure/cable{ - icon_state = "0-4" +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"ib" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/turf/open/floor/plating, +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, /area/mine/living_quarters) -"XX" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/closed/wall, -/area/mine/living_quarters) -"Ya" = ( -/turf/closed/wall/r_wall, -/area/mine/laborcamp) -"Ye" = ( -/turf/closed/mineral/random/high_chance/volcanic, -/area/lavaland/surface/outdoors) -"Yf" = ( -/obj/machinery/light/small{ +"jx" = ( +/obj/machinery/door/airlock{ + id_tag = "miningdorm1"; + name = "Room 1" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, /turf/open/floor/plasteel, -/area/mine/laborcamp) -"Yg" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ +/area/mine/living_quarters) +"jz" = ( +/obj/structure/table, +/obj/item/cigbutt, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"jQ" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 8 }, -/obj/machinery/camera{ - c_tag = "Labor Camp Security Office"; - dir = 1; - network = list("labor") +/turf/open/floor/plasteel/freezer, +/area/mine/living_quarters) +"mh" = ( +/obj/machinery/door/airlock/glass{ + name = "Break Room" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"np" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"nx" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"nP" = ( +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"pI" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"pN" = ( +/obj/machinery/button/door{ + id = "miningbathroom"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_y = -25; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/mine/living_quarters) +"qw" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"rb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"rp" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 }, /obj/structure/cable{ icon_state = "4-8" }, /turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"Yi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/door/airlock/glass, +/area/mine/living_quarters) +"rT" = ( +/obj/structure/table, +/obj/item/storage/box/donkpockets, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"Yp" = ( +"se" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "miningdorm2"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/mine/living_quarters) +"st" = ( +/obj/machinery/door/window/southleft, +/obj/machinery/shower{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/freezer, +/area/mine/living_quarters) +"sC" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"sP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/mine/living_quarters) +"vp" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "miningdorm3"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/mine/living_quarters) +"vr" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, /obj/effect/turf_decal/tile/brown{ dir = 1 }, /turf/open/floor/plasteel, -/area/mine/production) -"Yr" = ( -/obj/machinery/light/small, -/obj/effect/turf_decal/loading_area{ - dir = 4 +/area/mine/living_quarters) +"vx" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" }, /turf/open/floor/plasteel, -/area/mine/laborcamp) -"Yy" = ( +/area/mine/living_quarters) +"vH" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"wd" = ( +/obj/machinery/vending/snack, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"wQ" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/structure/displaycase, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"xv" = ( +/obj/item/radio/intercom{ + dir = 8; + 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 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"xK" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "mining_internal" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/mine/production) +"zE" = ( +/obj/structure/closet/crate, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"Az" = ( +/obj/structure/table, +/obj/item/gps/mining, +/obj/item/gps/mining, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"BT" = ( +/obj/structure/displaycase, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"BZ" = ( +/obj/machinery/door/window/southright, +/obj/machinery/shower{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/freezer, +/area/mine/living_quarters) +"Cu" = ( +/turf/closed/wall, +/area/mine/eva) +"Cv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"CJ" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/beer{ + pixel_x = 7; + pixel_y = 5 + }, +/obj/item/reagent_containers/food/drinks/beer{ + pixel_x = -1; + pixel_y = 9 + }, +/obj/item/reagent_containers/food/drinks/beer{ + pixel_x = -8 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"CO" = ( +/obj/machinery/conveyor{ + dir = 10; + id = "mining_internal" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plating, +/area/mine/production) +"De" = ( /obj/machinery/door/airlock{ id_tag = "miningbathroom"; name = "Restroom" @@ -3248,7 +2200,219 @@ }, /turf/open/floor/plasteel/freezer, /area/mine/living_quarters) -"YH" = ( +"Dg" = ( +/obj/item/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"Dj" = ( +/obj/machinery/camera{ + c_tag = "Dormitories"; + dir = 4; + network = list("mine") + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"Em" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "mining_internal" + }, +/obj/structure/plasticflaps, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating, +/area/mine/production) +"Fp" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"Fu" = ( +/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) +"FI" = ( +/obj/structure/toilet{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/mine/living_quarters) +"Hb" = ( +/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) +"He" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/door/airlock/glass{ + name = "Mining Station Bridge" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"Iq" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"Iz" = ( +/obj/machinery/camera{ + c_tag = "Crew Area"; + dir = 1; + network = list("mine") + }, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = -32 + }, +/obj/machinery/light, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"Ji" = ( +/obj/machinery/light/small, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"Kd" = ( +/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) +"LK" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = -12 + }, +/obj/structure/mirror{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/freezer, +/area/mine/living_quarters) +"Mi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/door/airlock/glass, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"Nn" = ( +/obj/structure/table, +/turf/open/floor/carpet, +/area/mine/living_quarters) +"Oe" = ( +/obj/machinery/mineral/processing_unit_console, +/turf/closed/wall, +/area/mine/production) +"Ou" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"Qh" = ( +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"Qn" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = 11 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"QR" = ( +/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) +"Rq" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/closed/wall, +/area/mine/living_quarters) +"Rt" = ( +/obj/machinery/camera{ + c_tag = "Public Shuttle Lobby"; + network = list("mine") + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown, +/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) +"Ru" = ( +/obj/machinery/computer/shuttle/mining/common{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"TO" = ( /obj/machinery/door/airlock{ name = "Restroom" }, @@ -3260,4301 +2424,2015 @@ }, /turf/open/floor/plasteel/freezer, /area/mine/living_quarters) -"YM" = ( -/obj/item/radio/intercom{ - dir = 8; - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/obj/effect/turf_decal/tile/brown{ +"Uj" = ( +/obj/effect/turf_decal/tile/purple{ dir = 1 }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 4 }, /turf/open/floor/plasteel, -/area/mine/production) -"YV" = ( -/obj/machinery/airalarm{ - pixel_y = 23 +/area/mine/living_quarters) +"WS" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_y = 6 }, -/obj/effect/turf_decal/tile/purple{ +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ dir = 1 }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"Zp" = ( -/obj/machinery/camera{ - c_tag = "Crew Area Hallway"; - network = list("mine") +"Xa" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"Xi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"Xm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"Yg" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"Za" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, /turf/open/floor/plasteel, /area/mine/living_quarters) "Zu" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, -/obj/structure/lattice/catwalk, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/chair, +/turf/open/floor/plasteel, /area/mine/living_quarters) -"Zw" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ +"Zy" = ( +/obj/structure/chair{ dir = 4 }, -/obj/machinery/door/airlock/external{ - name = "Lavaland Shuttle Airlock" +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"ZF" = ( -/obj/machinery/telecomms/relay/preset/mining, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/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/dark, -/area/mine/maintenance) -"ZK" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Labor Camp APC"; - pixel_y = 23 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/mine/laborcamp) -"ZN" = ( -/obj/machinery/mineral/processing_unit_console, -/turf/closed/wall, -/area/mine/production) (1,1,1) = {" -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +aP +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ak +ak +ak +ak +ac +ac +ac +ac +ac +ac "} (2,1,1) = {" -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +aP +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ak +ak +ak +ak +ak +ak +ak +ak +ac +ac +ac "} (3,1,1) = {" -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +aP +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ac +ac "} (4,1,1) = {" -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -Lm -wz -wz -VT -VT -VT -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +aP +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak "} (5,1,1) = {" -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -Lm -wz -wz -wz -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +aP +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ac "} (6,1,1) = {" -VT -VT -VT -Lm -Lm -VT -VT -VT -VT -VT -VT -VT -VT -Lm -wz -my -Lm -VT -VT -VT -VT -VT -Lm -Lm -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +aP +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ac "} (7,1,1) = {" -VT -VT -VT -VT -VT -VT -VT -Lm -VT -VT -zI -zI -Lm -my -Lm -VT -VT -VT -VT -VT -VT -VT -Lm -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -Lm -VT -VT -VT -VT +aP +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ac +ac "} (8,1,1) = {" -VT -Lm -VT -VT -VT -Lm -VT -VT -VT -zI -zI -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -Lm -VT -VT -VT -VT -VT -VT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ac +ac "} (9,1,1) = {" -Lm -Lm -VT -Lm -Lm -VT -VT -VT -VT -zI -zI -VT -VT -zI -zI -VT -VT -zI -VT -Lm -VT -VT -VT -VT -VT -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -Lm -Lm -VT -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ab +ak +ak +ab +dL +ak +ak +ak +ak +ak +ak +aT +ak +ak +ak +ak +ac +ac "} (10,1,1) = {" -VT -VT -VT -Lm -Lm -VT -VT -VT -zI -zI -zI -zI -zI -zI -zI -zI -zI -zI -zI -zI -zI -VT -VT -VT -VT -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -Lm -VT -VT -VT -VT -VT -Lm -VT -VT -VT -VT -VT -VT -VT +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +bA +ac +ac +ac +ac +dL +ak +ak +ak +ak +ak +eu +Hb +eu +ak +ak +ak +ac +ac "} (11,1,1) = {" -VT -VT -VT -VT -VT -VT -zI -zI -my -zI -zI -zI -zI -zI -zI -zI -zI -zI -zI -zI -zI -zI -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -Lm -VT -Lm -VT -VT -VT -VT -VT -VT -VT +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ak +ak +ak +ak +ak +ak +ak +eu +di +eu +ak +ak +ac +ac +ac "} (12,1,1) = {" -VT -VT -VT -VT -VT -VT -VT -zI -zI -zI -my -zI -zI -zI -zI -zI -my -zI -zI -my -zI -zI -zI -VT -zI -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +bA +bA +ac +ak +cZ +ak +bQ +bQ +bQ +Rq +bQ +eu +Fu +eu +ac +ac +ac +ab +ab "} (13,1,1) = {" -VT -VT -VT -VT -VT -VT -Lm -VT -zI -zI -zI -my -my -my -my -my -my -my -my -my -zI -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -Lm -Lm -VT -VT -VT -VT -VT -VT -VT +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +cY +cY +cY +cY +eI +dj +dN +bQ +dU +ed +Ru +ed +et +vr +eu +ac +ab +ab +ab +ab "} (14,1,1) = {" -VT -VT -VT -VT -VT -VT -VT -zI -zI -zI -zI -my -my -my -my -my -my -my -my -my -zI -zI -Lm -VT -VT -VT -VT -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -Lm -Lm -Lm -VT -Lm -VT -VT -VT -VT -VT +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +cY +bB +bB +cY +dr +Zu +jz +bQ +dV +di +di +di +di +di +eu +ac +ab +ab +ab +ab "} (15,1,1) = {" -VT -VT -Lm -VT -VT -VT -VT -zI -zI -zI -zI -my -my -my -my -my -my -my -my -my -zI -zI -zI -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -Lm -Lm -Lm -VT -VT -VT -VT -VT -VT -VT +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +cY +bC +bL +cY +cC +dk +ax +bQ +dW +di +en +en +di +Kd +eu +ac +ab +ab +ab +ab "} (16,1,1) = {" -VT -VT -VT -VT -VT -VT -VT -VT -zI -zI -zI -my -my -my -my -my -my -my -my -my -zI -VT -VT -VT -VT -VT -Lm -VT -VT -VT -VT -VT -VT -Lm -Lm -Lm -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -Lm -Lm -VT -VT -VT -VT -VT -VT -VT +ab +ab +ab +ab +ab +ab +ab +ac +ac +ak +cY +ah +am +ep +dl +Za +Cv +Mi +dX +ef +en +en +di +di +eu +ac +ab +ab +ab +ab "} (17,1,1) = {" -VT -VT -VT -VT -VT -VT -VT -VT -zI -zI -my -my -my -my -my -my -my -mp -my -my -my -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -VT -VT -VT -VT -VT -VT -Lm -Lm -VT -VT -Lm -VT -VT -VT -VT +ab +ab +ab +ab +ab +ab +ab +ac +ak +bz +cY +cP +dS +cY +ca +dD +et +bQ +dY +Xm +di +di +di +nP +bQ +ac +ab +ab +ab +ab "} (18,1,1) = {" -VT -VT -VT -VT -VT -VT -VT -VT -cd -cd -cd -cd -cd -Cy -cd -cd -cd -HO -cd -zI -zI -VT -VT -VT -VT -VT -Lm -wz -VT -VT -VT -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +ab +ab +ab +ab +ab +ab +ac +ac +ak +dL +cY +cs +cJ +cY +dq +Xi +nP +bQ +Rt +xv +Az +QR +BT +wQ +bQ +dL +ak +ab +ab +ab "} (19,1,1) = {" -JY -Lm -VT -VT -VT -VT -VT -Lm -cd -Te -CR -xh -cd -eE -cd -HU -cd -Jr -cd -my -wV -VT -VT -uJ -VT -Lm -Lm -wz -wz -VT -VT -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +ab +ab +ab +ab +ab +ab +ac +ac +ak +ak +cY +cY +cY +cY +eJ +dD +di +bQ +bQ +bQ +bQ +bQ +bQ +bQ +bQ +bQ +bQ +ak +ak +ab "} (20,1,1) = {" -JY -JY -Lm -VT -VT -VT -Lm -Lm -cd -Qx -NH -Yf -cd -VR -cd -at -cd -Op -cd -wV -wV -wV -VT -VT -VT -Lm -Lm -wz -wz -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +ab +ab +ab +ab +ab +ab +ab +ac +ac +ak +bQ +bD +cb +bQ +di +du +dO +bQ +fb +Nn +bQ +fb +Nn +bQ +fb +Nn +bQ +ak +ab +ab "} (21,1,1) = {" -JY -JY -JY -JY -zx -zx -zx -cd -cd -cd -ci -cd -cd -cz -cd -Ga -NH -NH -Ya -Mn -Mn -Mn -Dv -Mn -nv -Ge -HR -VN -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +ab +ab +ab +ab +ab +ab +ab +ac +ac +ak +eu +bF +cr +ar +dt +dD +di +bQ +fB +eg +bQ +fB +se +bQ +fB +vp +bQ +ab +ab +ab "} (22,1,1) = {" -JY -JY -JY -JY -zx -wB -wB -cd -AH -NH -NH -NH -NH -NH -NH -kR -NH -NH -Ya -jD -EB -MM -LC -Mn -xH -dC -hf -VN -bH -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +ab +ab +ab +ab +ab +ab +ab +ac +ac +ak +eu +eF +dT +er +dX +de +di +bQ +jx +bQ +bQ +fC +bQ +bQ +eC +bQ +bQ +ab +ab +ab "} (23,1,1) = {" -JY -JY -JY -JY -cd -eh -aN -ow -NH -NH -NH -NH -vo -ly -xd -Hg -gs -gs -Ro -Uk -si -fN -TC -Mn -ML -dC -oy -VN -Zu -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +ab +ab +ab +ab +ab +ab +ac +ac +dL +ak +bQ +cQ +ea +ar +ca +dD +di +et +fd +Dj +et +fd +Uj +et +fd +ca +eu +ab +ab +ab "} (24,1,1) = {" -JY -JY -JY -JY -cd -gT -Xo -cd -fs -NH -Wt -xd -xd -Fx -Yf -uR -NH -NH -Ya -nm -Hx -mL -Yg -Mn -XR -dC -Ag -VN -Jc -HR -VN -Lm -Lm -Lm -Lm -Lm -Hk -Lm -Lm -Lm -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +ab +ab +ab +ab +ab +ab +ab +ac +dL +bQ +bQ +bQ +bQ +bQ +eK +vx +fy +fy +fD +fy +fy +fD +rb +fy +Ou +dO +eu +ak +ab +ab "} (25,1,1) = {" -JY -JY -JY -JY -cd -cd -cd -cd -cd -NH -NH -PY -NH -Mk -cd -Hh -Ya -Ya -Ya -LL -Hx -xS -Gt -Sp -FE -Em -cD -Ag -sm -uh -VN -Lm -Lm -Lm -Lm -KV -Zw -KV -Lm -Lm -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +ab +ab +ab +ab +ab +ab +ab +ac +ac +bQ +ck +cX +eb +bQ +dv +du +dO +bQ +bQ +ar +ar +bQ +bQ +bQ +TO +bQ +bQ +dL +ak +ak "} (26,1,1) = {" -JY -JY -JY -JY -cd -CH -CH -CH -cd -NH -Yr -cd -cd -kb -cd -Hh -Ya -ZK -Ho -oY -JJ -nJ -Ah -Qr -hQ -bI -hQ -hQ -WX -hv -VN -Lm -Lm -Lm -Lm -KV -Ag -KV -Lm -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +ab +ab +ab +ab +ab +ab +ab +ac +ac +bQ +cl +cp +cp +bQ +dt +dD +nP +bQ +wd +qw +Xa +Dg +bQ +st +sP +bQ +dL +bz +dL +dL "} (27,1,1) = {" -JY -JY -JY -JY -cd -Hq -NH -NH -BO -NH -ia -Rf -kj -sa -kj -HS -Ya -wt -RF -WL -Hx -IG -UJ -Sp -Ag -Ag -di -KR -hP -Ag -VN -VN -VN -XX -VN -KV -Hm -KV -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +ab +ab +ab +ab +ab +ab +ab +ac +ac +bQ +cm +da +ec +es +eL +dx +ax +ar +qw +qw +Zy +qw +bQ +BZ +ib +bQ +ak +dL +dL +ak "} (28,1,1) = {" -JY -JY -JY -JY -cd -cd -sW -Le -cd -vy -cd -cd -cd -cd -cd -cd -Ya -Ya -Mn -kB -Oh -Hx -sR -Al -Al -Al -Al -LG -hP -Ag -VN -zy -If -DN -If -FE -qZ -KV -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +ab +ab +ab +ab +ab +ac +ac +ac +ak +bQ +cp +dn +ee +bQ +eZ +dy +Yg +mh +pI +hE +CJ +Iz +bQ +bQ +De +bQ +ac +ab +ab +ab "} (29,1,1) = {" -JY -JY -JY -JY -JY -cd -cd -cd -cd -NH -cd -Ab -tK -tK -my -my -my -zI -Sp -ny -ig -IK -re -Al -wC -wC -Al -Ag -hP -Ag -VN -Ru -Ag -Ag -Ag -Ag -Ag -KV -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +ab +ab +ab +ab +ac +ac +ac +ac +ak +bQ +cv +dK +dK +bQ +fA +Xi +et +ar +qw +qw +Iq +Fp +bQ +LK +pN +bQ +ac +ab +ab +ab "} (30,1,1) = {" -JY -JY -JY -JY -JY -JY -JY -JY -cd -Jr -cd -Ab -my -my -my -my -my -zI -Sp -Sp -Sp -Sp -Sp -Al -Uz -Ue -Al -EH -hP -aW -VN -Dr -Ag -uG -uG -Ag -cX -KV -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +ab +ab +ab +ac +ac +ac +ac +ac +ac +bQ +bQ +bQ +bQ +bQ +di +dD +di +bQ +gJ +qw +vH +qw +bQ +FI +jQ +bQ +ac +ab +ab +ab "} (31,1,1) = {" -JY -JY -JY -JY -JY -JY -JY -JY -cd -aX -cd -Ab -my -my -my -my -my -VT -VT -VT -VT -VT -Lm -Al -ZF -HE -gP -ON -tk -zY -Yi -MG -KO -uG -uG -Ag -Ag -KV -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ak +ac +ac +eu +di +dD +di +bQ +WS +sC +rT +Qn +bQ +bQ +bQ +bQ +ac +ab +ab +ab "} (32,1,1) = {" -JY -JY -JY -JY -JY -JY -JY -JY -my -my -hy -my -my -my -my -my -VT -VT -VT -VT -VT -Lm -Ye -Al -WN -Ad -Al -cD -JP -FE -VN -YV -RP -Ag -Ag -Ag -oy -VN -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +ab +ab +ab +ac +ac +ak +ac +ac +ac +ac +ak +ak +ac +eu +ax +rp +Ji +bQ +eu +eu +eu +eu +bQ +dL +dL +dL +ac +ab +ab +ab "} (33,1,1) = {" -JY -JY -JY -JY -JY -JY -JY -JY -my -my -my -my -my -my -my -my -my -VT -VT -VT -VT -Lm -wz -Al -FC -xA -Al -Zp -Sj -oy -VN -Pp -sx -eS -Cg -nH -hH -VN -wz -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +ab +ab +ac +ac +ac +ak +ac +ak +ac +ac +ak +ak +ac +eu +eu +He +eu +eu +ak +ak +ak +ak +dL +dL +dL +ac +ac +ab +ab +ab "} (34,1,1) = {" -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -my -my -my -my -my -my -my -VT -VT -VT -VT -Lm -Lm -Al -Al -Al -Al -Ov -JP -Ag -VN -VN -VN -VN -VN -VN -VN -VN -VN -VN -Lm -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +ab +ac +ac +ak +ak +ak +ak +ak +ak +ak +ac +ac +ac +ac +eu +aJ +eu +ak +ak +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +ab "} (35,1,1) = {" -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -my -my -my -my -my -my -my -VT -VT -VT -VT -VT -Lm -VN -HY -MF -VN -Ag -JH -cr -VN -TJ -zo -VN -TJ -zo -VN -TJ -zo -VN -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +ac +ac +ak +ak +ak +ak +ak +ak +ak +ak +ak +ac +ac +ac +eu +aK +eu +ak +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +ab "} (36,1,1) = {" -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -my -my -my -my -my -my -my -my -VT -VT -VT -VT -Lm -KV -Ms -rU -se -EH -JP -Ag -VN -IY -Un -VN -IY -Ev -VN -IY -NB -VN -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +ac +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ac +ac +ac +eu +aK +eu +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +ab "} (37,1,1) = {" -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -my -my -Ab -JY -my -jJ -VT -VT -VT -VT -Lm -KV -IS -lr -TI -MG -Qy -Ag -VN -WY -VN -VN -AQ -VN -VN -cn -VN -VN -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +ac +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ac +ac +eu +aK +eu +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +ab "} (38,1,1) = {" -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -jJ -jJ -VT -VT -VT -wz -Ye -VN -kS -jf -se -cD -JP -Ag -FE -Os -iv -FE -Os -Pq -FE -Os -cD -KV -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +ac +ac +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ac +ac +eM +bR +eM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +ab "} (39,1,1) = {" -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -VT -VT -VT -VT -wz -VN -VN -VN -VN -VN -Ca -ik -oM -oM -XP -oM -oM -XP -AZ -oM -CA -cr -KV -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +ac +ac +ak +ak +ak +ak +aG +ak +ak +ak +ak +ac +ac +ac +eM +bR +eM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +ab "} (40,1,1) = {" -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -VT -VT -VT -VT -VT -VT -VT -VN -XU -UE -Lj -VN -mg -JH -cr -VN -VN -se -se -VN -VN -VN -YH -VN -VN -wz -Lm -Lm -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +ac +ac +ac +ak +ak +aI +br +eM +ak +ak +ac +ac +ac +ak +eM +bR +eM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +ab "} (41,1,1) = {" -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -VT -VT -VT -VT -VT -VT -VT -VT -VN -qm -aG -aG -VN -EH -JP -oy -VN -Cm -hm -zZ -fU -VN -bX -yT -VN -wz -Ye -wz -wz -Lm -Lm -Lm -Lm -VT -VT -VT -VT -VT -VT -VT -VT +ac +ac +ac +ac +ak +eM +cN +eM +ak +ac +ac +ac +ac +ak +eM +bT +eM +ak +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +ab "} (42,1,1) = {" -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -VT -VT -VT -VT -VT -VT -VT -VT -VT -VN -MH -ID -dL -uI -Dd -nI -aW -se -hm -hm -Nk -hm -VN -mv -nN -VN -Lm -wz -wz -Lm -Lm -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +ac +ac +ac +ac +eM +eM +bt +eM +eM +ak +ac +ac +ak +eM +eM +bU +eM +eM +ak +ak +ac +ac +ac +ac +ac +ac +ac +ab +ab +ab "} (43,1,1) = {" -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -VT -VT -VT -VT -VT -VT -Lm -Lm -VT -Lm -VN -aG -zh -pi -VN -UI -Sd -kF -AJ -sU -tr -qM -RH -VN -VN -Yy -VN -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +ac +ac +ac +aw +eM +cM +bu +bk +eM +aw +aw +aw +aw +bv +cM +bV +bk +eM +aw +ak +ak +ac +ac +ac +ac +ac +ac +ab +ab +ab "} (44,1,1) = {" -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -JY -VT -VT -VT -VT -VT -Lm -Lm -Lm -Lm -Lm -Lm -VN -Bo -aK -aK -VN -LZ -Sj -FE -se -hm -hm -rK -MV -VN -Mj -va -VN -VT -VT -VT -VT -Lm -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +ac +ac +ak +aw +ae +ai +cN +aQ +cM +bS +ba +be +bn +bw +np +bR +cN +ce +aw +ak +ak +ak +ac +ac +ac +ac +ac +ab +ab +ab "} (45,1,1) = {" -JY -JY -JY -JY -JY -JY -Lm -VT -VT -VT -VT -VT -VT -VT -VT -Lm -Lm -Lm -Lm -Lm -Lm -Lm -VN -VN -VN -VN -VN -Ag -JP -Ag -VN -wE -hm -rf -hm -VN -qg -SO -VN -VT -VT -VT -VT -VT -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +ac +ac +ak +eM +ap +as +aH +aV +aW +aW +bb +bg +aW +bE +bK +bW +cd +eO +aw +ak +ak +ak +ak +ac +ac +ac +ac +ab +ab +ab "} (46,1,1) = {" -JY -JY -JY -JY -JY -VT -VT -VT -VT -VT -VT -VT -VT -VT -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -VT -VT -KV -Ag -JP -Ag -VN -sP -Qi -Ii -qh -VN -VN -VN -VN -VT -VT -VT -VT -VT -VT -VT -VT -Lm -VT -VT -VT -VT -VT -VT -VT +ac +ak +ak +eM +aN +at +np +nx +aY +aZ +np +bh +cN +bH +bM +bX +cN +zE +aw +aw +aw +aw +cu +ak +ak +ac +ac +ab +ab +ab "} (47,1,1) = {" -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -VT -KV -aW -kH -kz -VN -KV -KV -KV -KV -VN -wz -wz -wz -VT -Lm -VT -VT -Lm -Lm -VT -Lm -Lm -Lm -VT -VT -VT -VT -VT -VT +ak +Cu +Cu +Cu +bx +au +bx +Cu +bp +aw +ci +bl +bo +bH +cN +bY +cN +dg +eM +ch +dg +eM +ak +ak +dL +ac +ac +ab +ab +ab "} (48,1,1) = {" -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -VT -KV -KV -eP -KV -KV -Lm -Lm -Lm -Lm -wz -wz -wz -Lm -VT -VT -VT -VT -Lm -Lm -Lm -wz -Ye -Ye -Lm -Lm -VT -VT -VT -VT +ak +Cu +al +aa +ay +av +aL +Cu +bq +aw +aw +bm +aw +bm +cN +bY +cN +cf +cg +cj +cf +cq +ak +ak +dL +dL +ac +ab +ab +ab "} (49,1,1) = {" -VT -VT -VT -VT -VT -VT -VT -wz -wz -wz -VT -VT -VT -VT -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -VT -Lm -KV -CJ -KV -Lm -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -Lm -Ye -Ye -Ye -Ye -Ye -wz -wz -VT -VT -VT +ak +aj +an +az +af +aA +aM +Cu +by +aw +bc +dM +ei +cM +ct +bY +cN +cM +eM +cn +co +eM +ak +ak +ak +dL +ac +ab +ab +ab "} (50,1,1) = {" -wz -wz -wz -wz -wz -wz -wz -MD -wz -Lm -VT -VT -VT -VT -VT -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -VT -VT -VT -KV -JP -KV -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -Lm -VT -Lm -Lm -Ye -Ye -Ye -Ye -Ye -Ye -Ye -Ye -Lm -VT -VT +ak +aj +an +aB +ag +aC +bf +Cu +aw +aw +cx +cN +cN +cN +cN +bZ +nx +Qh +aw +aw +aw +aw +cu +ak +ak +ak +ac +ab +ab +ab "} (51,1,1) = {" -MD -MD -MD -MD -MD -MD -MD -wz -Lm -VT -VT -VT -VT -VT -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -VT -VT -VT -KV -JP -KV -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -Lm -Lm -Ye -Ye -Ye -Ye -Ye -Ye -Ye -Lm -VT -VT +ak +Cu +aq +ad +aD +aR +aO +Cu +bz +aw +bd +cN +bs +bI +bN +cc +aw +Em +aw +ak +ak +ak +ak +ak +ak +ak +ac +ab +ab +ab "} (52,1,1) = {" -MD -MD -MD -MD -MD -MD -MD -wz -Lm -VT -VT -Lm -Lm -VT -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -VT -VT -KV -JP -KV -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -Lm -Ye -Ye -Ye -Ye -Ye -Ye -Ye -Lm -VT -VT +ak +Cu +Cu +Cu +aj +aS +aj +Cu +dL +aw +cB +cN +el +ex +bO +eq +ev +xK +aw +ak +ak +ak +ak +ak +ak +ak +ac +ab +ab +ab "} (53,1,1) = {" -MD -MD -MD -MD -MD -MD -MD -wz -Lm -VT -Lm -Lm -VT -VT -VT -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -VT -VT -Ed -wd -Ed -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -Lm -Lm -Ye -Ye -wz -Ye -Lm -Lm -VT -VT +ak +ak +ak +Cu +aE +aU +bi +Cu +dL +aw +cD +dQ +aw +ev +Oe +ev +ev +xK +aw +ak +ak +ak +ak +ak +ak +ac +ac +ab +ab +ab "} (54,1,1) = {" -MD -MD -MD -MD -MD -MD -MD -wz -VT -VT -VT -VT -VT -VT -VT -Lm -Lm -Lm -Lm -Lb -Lm -Lm -Lm -Lm -VT -VT -VT -Ed -wd -Ed -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -Lm -Lm -Lm -Lm -Lm -VT -VT -VT -VT +ac +ak +ak +Cu +aF +aR +bj +Cu +dL +aw +cE +dR +eo +bJ +bP +bJ +bJ +CO +aw +ak +ak +ak +ak +ak +ak +ak +ac +ab +ab +ab "} (55,1,1) = {" -MD -MD -MD -MD -MD -MD -MD -MD -wz -VT -Lm -VT -VT -VT -VT -VT -Lm -Lm -fm -Tm -Ed -Lm -Lm -VT -VT -VT -Lm -Ed -wd -Ed -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -Lm -Lm -Lm -VT -VT -VT -VT -VT +ac +ac +ak +Cu +aj +aX +aj +Cu +dL +aw +aw +aw +aw +aw +aw +aw +aw +aw +aw +ak +ak +ak +ak +ak +ak +ak +ak +ab +ab +ab "} (56,1,1) = {" -MD -MD -MD -MD -MD -MD -MD -MD -wz -Lm -Lm -VT -VT -VT -VT -VT -VT -Lm -Ed -es -Ed -Lm -VT -VT -VT -VT -Lm -Ed -aJ -Ed -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -Lm -VT -VT -VT -VT -VT +ak +ak +ak +ao +ak +ak +ak +ao +dL +dL +ak +ak +bG +bG +bG +bG +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ac +ab +ab +ab "} (57,1,1) = {" -MD -MD -MD -MD -MD -MD -MD -MD -MD -wz -Lm -VT -VT -VT -VT -VT -VT -Ed -Ed -KQ -Ed -Ed -Lm -VT -VT -Lm -Ed -Ed -dZ -Ed -Ed -Lm -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -Lm -VT -VT -VT -VT -VT +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +bG +bG +bG +bG +bG +bG +bG +ak +ak +ak +ak +ak +ak +ak +ak +ac +ac +ab +ab +ab "} (58,1,1) = {" -MD -MD -MD -MD -MD -MD -MD -MD -MD -MD -wz -wz -wz -VT -VT -VT -Cd -Ed -Wf -II -Jo -Ed -Cd -Cd -Cd -Cd -Lc -Wf -Ww -Jo -Ed -Cd -Lm -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +bG +bG +bG +bG +bG +bG +bG +bG +ak +ak +ak +ak +ak +ak +ak +ac +ac +ab +ab +ab "} (59,1,1) = {" -MD -MD -MD -MD -MD -MD -MD -MD -MD -MD -MD -wz -VT -VT -VT -Lm -Cd -dP -RC -es -wX -Wf -YM -GN -ou -Nf -mN -Aj -wd -es -TG -Cd -Lm -Lm -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -Lm -VT -VT -VT -VT -VT +ak +ak +ak +ak +ak +ak +ak +ak +ak +bG +bG +bG +ab +ab +ab +bG +bG +bG +bG +ak +ak +ak +ak +ak +ak +ac +ac +ab +ab +ab "} (60,1,1) = {" -MD -MD -MD -MD -MD -MD -MD -MD -MD -MD -wz -VT -VT -VT -VT -Lm -Ed -wg -Bh -KG -nK -sj -sj -mi -GM -sj -Mc -pK -ME -Cj -yt -Cd -Lm -Lm -Lm -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -"} -(61,1,1) = {" -MD -MD -MD -MD -MD -MD -MD -MD -MD -wz -VT -VT -VT -VT -Lm -Lm -Ed -eL -PO -Aj -zN -Sq -qH -Aj -Eg -es -Vo -Jl -KS -es -sE -Cd -Cd -Cd -Cd -At -Lm -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -"} -(62,1,1) = {" -MD -MD -MD -MD -MD -MD -MD -MD -MD -wz -VT -VT -wz -Lm -bg -bg -bg -Hd -au -Hd -bg -av -Cd -oG -cf -fO -Vo -es -XN -es -Vs -Ed -tY -Vs -Ed -Lm -Lm -wz -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -"} -(63,1,1) = {" -MD -MD -MD -MD -MD -MD -MD -MD -MD -MD -wz -wz -wz -Lm -bg -pr -Kx -dk -vJ -JW -bg -VP -Cd -Cd -Bc -Cd -Bc -es -XN -es -lI -AS -qR -lI -Mw -Lm -Lm -wz -wz -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -"} -(64,1,1) = {" -MD -MD -MD -MD -MD -MD -MD -MD -MD -MD -MD -wz -Lm -Lm -cA -xP -SY -jn -Ex -xv -bg -mI -Cd -OI -sz -gk -Wf -Yp -XN -es -Wf -Ed -lS -qc -Ed -Lm -Lm -Lm -wz -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -"} -(65,1,1) = {" -MD -MD -MD -MD -MD -MD -MD -MD -MD -MD -wz -VT -VT -Lm -cA -xP -Kl -CV -al -lj -bg -Cd -Cd -mw -es -es -es -es -iG -zN -ez -Cd -Cd -Cd -Cd -At -Lm -Lm -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -"} -(66,1,1) = {" -MD -MD -MD -MD -MD -MD -MD -MD -MD -MD -wz -VT -VT -Lm -bg -QD -PN -qb -KU -lu -bg -Ye -Cd -RI -es -yR -yF -me -Kb -Cd -Oj -Cd -Lm -Lm -Lm -Lm -Lm -Lm -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -Lm -VT -VT -VT -VT -VT -"} -(67,1,1) = {" -MD -MD -MD -MD -MD -MD -MD -MD -MD -MD -wz -VT -VT -Lm -bg -bg -bg -cA -kE -cA -bg -wz -Cd -Vj -es -Xr -Kk -iQ -Rv -NI -Kt -Cd -Lm -Lm -Lm -Lm -Lm -Lm -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -Lm -VT -VT -VT -VT -VT -"} -(68,1,1) = {" -MD -MD -MD -MD -MD -MD -MD -MD -MD -MD -wz -VT -VT -Lm -Lm -Lm -bg -qS -vE -VY -bg -wz -Cd -nR -SW -Cd -NI -ZN -NI -NI -Kt -Cd -Lm -Lm -Lm -Lm -Lm -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -Lm -VT -VT -VT -VT -VT -"} -(69,1,1) = {" -MD -MD -MD -MD -MD -MD -MD -MD -MD -MD -wz -wz -VT -VT -Lm -Lm -bg -Ik -KU -ap -bg -wz -Cd -XG -wj -rB -oo -JV -oo -oo -Ss -Cd -Lm -Lm -Lm -Lm -Lm -Lm -Lm -VT -VT -VT -VT -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -"} -(70,1,1) = {" -MD -MD -MD -MD -MD -MD -MD -MD -MD -wz -Lm -wz -wz -VT -VT -Lm -bg -cA -KP -cA -bg -wz -Cd -Cd -Cd -Cd -Cd -Cd -Cd -Cd -Cd -Cd -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -VT -VT -VT -Lm -VT -VT -VT -VT -VT -Lm -VT -VT -VT -VT -VT -"} -(71,1,1) = {" -MD -MD -MD -MD -MD -MD -MD -MD -wz -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Be -Lm -Lm -Lm -Be -wz -wz -Lm -Lm -VT -VT -VT -VT -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -VT -VT -VT -Lm -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -"} -(72,1,1) = {" -MD -MD -wz -wz -MD -MD -MD -wz -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -VT -VT -VT -VT -VT -VT -VT -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -VT -VT -VT -VT -Lm -Lm -VT -VT -VT -VT -VT -Lm -VT -VT -VT -VT -VT -"} -(73,1,1) = {" -MD -wz -Lm -Lm -wz -wz -MD -wz -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -VT -VT -VT -VT -VT -VT -VT -VT -Lm -Lm -Lm -Lm -Lm -Lm -Lm -VT -VT -VT -VT -Lm -Lm -VT -VT -VT -VT -Lm -Lm -Lm -VT -VT -VT -VT -"} -(74,1,1) = {" -wz -Lm -Lm -Lm -wz -Lm -wz -MD -wz -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -VT -VT -VT -VT -VT -VT -VT -VT -VT -VT -Lm -Lm -Lm -Lm -Lm -Lm -VT -VT -VT -VT -Lm -Lm -VT -VT -VT -VT -Lm -Lm -Lm -VT -VT -VT -VT +ak +ak +ak +ak +ak +ak +ak +ak +bG +bG +ab +ab +ab +ab +ab +ab +bG +dL +dL +ak +ak +ak +ak +ak +ak +ak +ac +ab +ab +ab "} diff --git a/_maps/RandomRuins/SpaceRuins/clericden.dmm b/_maps/RandomRuins/SpaceRuins/clericden.dmm new file mode 100644 index 0000000000..0b6ca24dd3 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/clericden.dmm @@ -0,0 +1,579 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"b" = ( +/turf/closed/mineral/random/no_caves, +/area/ruin/unpowered/no_grav) +"c" = ( +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"d" = ( +/turf/closed/wall, +/area/ruin/unpowered/no_grav) +"e" = ( +/turf/closed/wall/rust, +/area/ruin/unpowered/no_grav) +"f" = ( +/obj/item/stack/rods{ + amount = 2 + }, +/obj/item/shard, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"g" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/ruin/unpowered/no_grav) +"h" = ( +/obj/structure/grille/broken, +/obj/structure/barricade/wooden/crude, +/obj/structure/trap/cult, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"i" = ( +/obj/structure/light_prism, +/turf/open/floor/plasteel/airless/dark, +/area/ruin/unpowered/no_grav) +"j" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"k" = ( +/obj/item/ectoplasm, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"l" = ( +/obj/structure/closet/crate/coffin, +/turf/open/floor/plasteel/airless/dark, +/area/ruin/unpowered/no_grav) +"m" = ( +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"n" = ( +/turf/open/floor/carpet/royalblack/airless, +/area/ruin/unpowered/no_grav) +"o" = ( +/obj/structure/table/wood/fancy, +/obj/item/reagent_containers/food/drinks/bottle/holywater, +/turf/open/floor/carpet/airless, +/area/ruin/unpowered/no_grav) +"p" = ( +/obj/structure/table/wood/fancy, +/obj/item/melee/cleric_mace, +/turf/open/floor/carpet/airless, +/area/ruin/unpowered/no_grav) +"q" = ( +/obj/effect/decal/cleanable/shreds, +/turf/open/floor/carpet/airless, +/area/ruin/unpowered/no_grav) +"r" = ( +/obj/effect/decal/cleanable/shreds, +/obj/effect/decal/remains/human, +/obj/item/disk/design_disk/adv/cleric_mace, +/obj/structure/trap/cult, +/turf/open/floor/carpet/airless, +/area/ruin/unpowered/no_grav) +"s" = ( +/obj/effect/decal/cleanable/shreds, +/turf/open/floor/carpet/royalblack/airless, +/area/ruin/unpowered/no_grav) +"t" = ( +/turf/open/floor/carpet/royalblue/airless, +/area/ruin/unpowered/no_grav) +"u" = ( +/turf/open/floor/carpet/airless, +/area/ruin/unpowered/no_grav) +"v" = ( +/obj/effect/decal/cleanable/blood/splatter, +/obj/effect/decal/cleanable/blood/footprints, +/obj/effect/decal/cleanable/shreds, +/turf/open/floor/carpet/airless, +/area/ruin/unpowered/no_grav) +"w" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/carpet/royalblack/airless, +/area/ruin/unpowered/no_grav) +"x" = ( +/obj/structure/bonfire, +/turf/open/floor/plasteel/airless/dark, +/area/ruin/unpowered/no_grav) +"y" = ( +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/carpet/airless, +/area/ruin/unpowered/no_grav) +"z" = ( +/obj/item/paper/fluff/ruins/clericsden/contact, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"A" = ( +/obj/structure/table/wood{ + layer = 3.3 + }, +/turf/open/floor/carpet/royalblack/airless, +/area/ruin/unpowered/no_grav) +"B" = ( +/obj/effect/decal/cleanable/blood/footprints, +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/carpet/airless, +/area/ruin/unpowered/no_grav) +"C" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/turf/open/floor/carpet/royalblue/airless, +/area/ruin/unpowered/no_grav) +"D" = ( +/obj/effect/decal/remains/human, +/obj/structure/trap/cult, +/turf/open/floor/carpet/airless, +/area/ruin/unpowered/no_grav) +"E" = ( +/obj/effect/decal/cleanable/blood/tracks, +/mob/living/simple_animal/hostile/construct/proteon/hostile, +/turf/open/floor/carpet/airless, +/area/ruin/unpowered/no_grav) +"F" = ( +/obj/item/flashlight/flare/torch, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"G" = ( +/obj/effect/decal/cleanable/blood/tracks, +/obj/structure/trap/cult, +/turf/open/floor/carpet/airless, +/area/ruin/unpowered/no_grav) +"H" = ( +/obj/structure/light_prism, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"I" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/carpet/airless, +/area/ruin/unpowered/no_grav) +"J" = ( +/obj/structure/rack, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/clothing/mask/breath, +/turf/open/floor/plasteel/airless/dark, +/area/ruin/unpowered/no_grav) +"K" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"L" = ( +/obj/machinery/door/airlock/wood, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"M" = ( +/obj/effect/decal/cleanable/blood/tracks, +/obj/machinery/door/airlock/wood, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"N" = ( +/mob/living/simple_animal/hostile/construct/proteon, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"O" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/obj/structure/barricade/wooden/crude, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"Q" = ( +/obj/item/storage/book/bible, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"S" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"U" = ( +/obj/effect/decal/remains/human, +/obj/item/paper/fluff/ruins/clericsden/warning, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +c +b +c +c +c +c +a +a +a +a +"} +(2,1,1) = {" +a +a +a +c +c +c +c +c +c +c +c +b +c +c +b +c +c +a +"} +(3,1,1) = {" +a +c +b +c +c +b +c +b +c +c +b +b +b +c +b +b +b +a +"} +(4,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +c +a +"} +(5,1,1) = {" +a +b +d +d +e +d +e +K +d +d +d +d +d +d +e +c +c +a +"} +(6,1,1) = {" +a +b +e +i +l +e +x +m +e +x +m +e +m +J +d +e +b +a +"} +(7,1,1) = {" +a +a +e +j +n +n +t +w +A +C +n +A +C +n +H +e +d +a +"} +(8,1,1) = {" +a +f +h +m +o +q +u +u +u +D +u +u +u +u +I +L +c +c +"} +(9,1,1) = {" +a +b +g +m +p +r +v +y +B +E +B +y +B +G +B +M +U +S +"} +(10,1,1) = {" +a +b +d +m +n +s +t +n +A +C +n +A +C +n +H +d +e +c +"} +(11,1,1) = {" +a +c +e +i +l +d +x +z +e +x +F +e +m +J +e +d +b +b +"} +(12,1,1) = {" +a +a +e +e +d +d +e +O +d +d +d +e +e +d +d +b +b +c +"} +(13,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +c +c +"} +(14,1,1) = {" +a +c +b +b +b +c +b +b +c +b +c +Q +b +b +b +c +S +a +"} +(15,1,1) = {" +a +a +c +c +c +c +c +c +N +c +c +c +c +S +c +c +a +a +"} +(16,1,1) = {" +a +a +k +c +b +b +c +c +b +c +c +b +c +b +b +b +a +a +"} +(17,1,1) = {" +a +b +c +b +c +b +b +b +b +b +b +b +b +b +c +a +a +a +"} +(18,1,1) = {" +b +b +b +a +a +c +c +c +c +c +c +c +c +a +a +a +a +a +"} +(19,1,1) = {" +a +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} diff --git a/_maps/RandomRuins/StationRuins/Box/Engine/engine_am.dmm b/_maps/RandomRuins/StationRuins/Box/Engine/engine_am.dmm index 96e28fbc6f..0c83691bd7 100644 --- a/_maps/RandomRuins/StationRuins/Box/Engine/engine_am.dmm +++ b/_maps/RandomRuins/StationRuins/Box/Engine/engine_am.dmm @@ -118,13 +118,6 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) -"nR" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/box/red, -/turf/open/floor/engine, -/area/engine/engineering) "nW" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -180,13 +173,6 @@ }, /turf/open/floor/plating, /area/engine/engineering) -"xg" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) "xx" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -266,13 +252,6 @@ }, /turf/open/floor/plating, /area/engine/engineering) -"Bh" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) "BG" = ( /obj/structure/closet/emcloset/anchored, /obj/machinery/light/small{ @@ -427,13 +406,6 @@ }, /turf/open/floor/engine, /area/engine/engineering) -"Mn" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/box/red, -/turf/open/floor/engine, -/area/engine/engineering) "MD" = ( /obj/structure/reagent_dispensers/fueltank, /obj/effect/turf_decal/stripes/line{ @@ -503,10 +475,6 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) -"SD" = ( -/obj/effect/turf_decal/box/red, -/turf/open/floor/engine, -/area/engine/engineering) "Tr" = ( /obj/structure/sign/warning/radiation/rad_area, /obj/machinery/atmospherics/pipe/simple/orange/visible{ @@ -1117,8 +1085,8 @@ MJ wt eJ Zx -Mn -Mn +nW +nW WQ lY Og @@ -1401,7 +1369,7 @@ fh JZ kK Ch -dz +Ch MJ MJ MJ diff --git a/_maps/RandomRuins/StationRuins/Box/Engine/engine_singulo.dmm b/_maps/RandomRuins/StationRuins/Box/Engine/engine_singulo.dmm index 76cb8bb9db..402cfc73cf 100644 --- a/_maps/RandomRuins/StationRuins/Box/Engine/engine_singulo.dmm +++ b/_maps/RandomRuins/StationRuins/Box/Engine/engine_singulo.dmm @@ -735,7 +735,7 @@ /obj/machinery/atmospherics/components/unary/outlet_injector{ dir = 1 }, -/turf/open/space/basic, +/turf/open/floor/plating/airless, /area/engine/engineering) "Si" = ( /obj/structure/cable/yellow{ diff --git a/_maps/RandomRuins/StationRuins/Box/Engine/engine_teg.dmm b/_maps/RandomRuins/StationRuins/Box/Engine/engine_teg.dmm index 42ed0035ce..6a134fca70 100644 --- a/_maps/RandomRuins/StationRuins/Box/Engine/engine_teg.dmm +++ b/_maps/RandomRuins/StationRuins/Box/Engine/engine_teg.dmm @@ -189,8 +189,10 @@ /turf/open/floor/plasteel, /area/engine/engineering) "gA" = ( -/obj/machinery/igniter{ - id = "TEG_igniter" +/obj/machinery/atmospherics/components/unary/outlet_injector{ + dir = 1; + injecting = 50; + on = 1 }, /turf/open/floor/engine/vacuum, /area/engine/engineering) @@ -390,21 +392,23 @@ /turf/open/floor/plating, /area/engine/engineering) "nc" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector{ - dir = 1 - }, +/obj/machinery/atmospherics/pipe/simple/dark/visible, +/obj/effect/spawner/structure/window/plasma/reinforced, /turf/open/floor/engine/vacuum, /area/engine/engineering) "nk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 +/obj/machinery/atmospherics/components/binary/pump{ + name = "Hot to Burn Chamber" }, -/turf/closed/wall/r_wall, +/turf/open/floor/plasteel, /area/engine/engineering) "nD" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 9 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/engine/vacuum, /area/engine/engineering) "nL" = ( @@ -461,10 +465,11 @@ /turf/open/floor/plasteel, /area/engine/engineering) "oQ" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, /obj/structure/sign/warning/securearea{ pixel_x = -32 }, +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/heat_exchanging/junction, /turf/open/floor/engine/vacuum, /area/engine/engineering) "oS" = ( @@ -728,16 +733,16 @@ /area/engine/engineering) "vq" = ( /obj/structure/table/reinforced, -/obj/item/storage/box/lights/mixed, -/obj/item/storage/box/lights/mixed{ - pixel_x = 3; - pixel_y = 3 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/camera{ c_tag = "TEG - South West"; dir = 4 }, +/obj/item/analyzer, +/obj/item/analyzer{ + pixel_x = 7; + pixel_y = 3 + }, /turf/open/floor/plasteel, /area/engine/engineering) "vG" = ( @@ -798,17 +803,10 @@ /turf/open/floor/plasteel, /area/engine/engineering) "xD" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, /obj/machinery/atmospherics/components/binary/pump{ dir = 8; name = "Mix to Engine" }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Atmos to Loop" - }, /turf/open/floor/plasteel, /area/engine/engineering) "yf" = ( @@ -837,11 +835,7 @@ /area/engine/engineering) "zx" = ( /obj/structure/table/wood, -/obj/item/electronics/apc, -/obj/item/electronics/apc{ - pixel_x = 3; - pixel_y = 3 - }, +/obj/item/analyzer, /turf/open/floor/plasteel, /area/engine/engineering) "zG" = ( @@ -855,8 +849,8 @@ /turf/open/space/basic, /area/space) "Am" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 +/obj/machinery/igniter{ + id = "TEG_igniter" }, /turf/open/floor/engine/vacuum, /area/engine/engineering) @@ -962,10 +956,11 @@ /turf/open/floor/plasteel, /area/engine/engineering) "BY" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, /obj/structure/sign/warning/securearea{ pixel_x = 32 }, +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/heat_exchanging/junction, /turf/open/floor/engine/vacuum, /area/engine/engineering) "CH" = ( @@ -1099,7 +1094,8 @@ /area/engine/engineering) "FW" = ( /obj/machinery/atmospherics/components/binary/pump{ - dir = 1 + dir = 1; + name = "Burn Chamber to Hot" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/light{ @@ -1177,7 +1173,9 @@ /turf/open/floor/plating/airless, /area/engine/engineering) "Hp" = ( -/obj/machinery/atmospherics/components/binary/pump, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Space Loop Bypass" + }, /turf/open/floor/plasteel, /area/engine/engineering) "HF" = ( @@ -1204,11 +1202,10 @@ /turf/open/floor/plasteel, /area/engine/engineering) "IA" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 }, -/turf/open/floor/engine/vacuum, +/turf/closed/wall/r_wall, /area/engine/engineering) "IP" = ( /obj/machinery/portable_atmospherics/canister/oxygen, @@ -1290,11 +1287,6 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) -"Kx" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/heat_exchanging/junction, -/turf/open/floor/plasteel, -/area/engine/engineering) "KA" = ( /obj/structure/reagent_dispensers/watertank, /obj/effect/turf_decal/bot, @@ -1441,6 +1433,7 @@ }, /obj/machinery/airalarm{ dir = 1; + locked = 0; pixel_y = -22 }, /obj/machinery/light, @@ -1593,7 +1586,9 @@ /turf/open/floor/plasteel, /area/engine/engineering) "SE" = ( -/obj/machinery/atmospherics/components/binary/pump/on, +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Mix To Burn Chamber" + }, /turf/open/floor/plasteel, /area/engine/engineering) "ST" = ( @@ -1715,7 +1710,7 @@ "Vs" = ( /obj/machinery/atmospherics/components/binary/valve/digital/on{ dir = 4; - name = "Output Release" + name = "Cold to Space Loop" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, @@ -1780,7 +1775,7 @@ "XD" = ( /obj/machinery/atmospherics/components/binary/valve/digital/on{ dir = 4; - name = "Output Release" + name = "Space Loop to Cold" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/camera{ @@ -1799,6 +1794,9 @@ /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 4 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, /turf/open/floor/engine/vacuum, /area/engine/engineering) "XP" = ( @@ -1857,8 +1855,8 @@ /area/engine/engineering) "YP" = ( /obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/item/pipe_dispenser, /turf/open/floor/plasteel, /area/engine/engineering) "YQ" = ( @@ -1917,7 +1915,7 @@ /area/engine/engineering) "ZC" = ( /obj/machinery/atmospherics/pipe/simple/dark/visible, -/turf/open/floor/engine/vacuum, +/turf/open/space/basic, /area/engine/engineering) "ZT" = ( /turf/template_noop, @@ -2531,9 +2529,9 @@ Xe aR ZY QH -Hp -Kx -kS +nk +le +ZC oQ kS kS @@ -2588,11 +2586,11 @@ sH sH gq FW -Kx -kS +le +ZC BY kS -IA +kS nD ek Le @@ -2620,8 +2618,8 @@ yN yN yN yN -nk -MP +yN +IA fO Rh Rh diff --git a/_maps/RandomRuins/StationRuins/Box/Engine/engine_tesla.dmm b/_maps/RandomRuins/StationRuins/Box/Engine/engine_tesla.dmm index 7f55d69b17..af2ba1ffd7 100644 --- a/_maps/RandomRuins/StationRuins/Box/Engine/engine_tesla.dmm +++ b/_maps/RandomRuins/StationRuins/Box/Engine/engine_tesla.dmm @@ -240,7 +240,7 @@ /obj/machinery/atmospherics/components/unary/outlet_injector{ dir = 1 }, -/turf/open/space/basic, +/turf/open/floor/plating/airless, /area/engine/engineering) "nR" = ( /obj/structure/cable{ @@ -905,14 +905,6 @@ }, /turf/open/space/basic, /area/space/nearstation) -"VR" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/camera/emp_proof{ - c_tag = "Tesla Engine Northeast"; - network = list("ss13","engine") - }, -/turf/open/space/basic, -/area/space/nearstation) "Wf" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -1728,7 +1720,7 @@ dz dz FP FP -VR +FP dz dz Yl diff --git a/_maps/kilostation.dm b/_maps/kilostation.dm new file mode 100644 index 0000000000..d784be6e8f --- /dev/null +++ b/_maps/kilostation.dm @@ -0,0 +1 @@ +#define FORCE_MAP "_maps/kilostation.json" \ No newline at end of file diff --git a/_maps/kilostation.json b/_maps/kilostation.json new file mode 100644 index 0000000000..388f07ef1a --- /dev/null +++ b/_maps/kilostation.json @@ -0,0 +1,11 @@ +{ + "map_name": "Kilo Station", + "map_path": "map_files/KiloStation", + "map_file": "KiloStation.dmm", + "shuttles": { + "emergency": "emergency_kilo", + "ferry": "ferry_kilo", + "cargo": "cargo_kilo", + "whiteship": "whiteship_delta" + } +} \ No newline at end of file diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index a630c54b6e..45301329d3 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -3984,7 +3984,12 @@ /turf/open/floor/plasteel, /area/security/brig) "aiA" = ( -/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, /turf/open/floor/plating, /area/maintenance/fore/secondary) "aiB" = ( @@ -6145,11 +6150,8 @@ /turf/open/floor/plating, /area/maintenance/fore/secondary) "anE" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - req_access_txt = "13" +/obj/structure/cable{ + icon_state = "4-8" }, /turf/open/floor/plating, /area/maintenance/fore/secondary) @@ -6157,11 +6159,16 @@ /turf/open/floor/plating, /area/maintenance/fore/secondary) "anG" = ( -/obj/structure/sign/warning/vacuum/external{ - pixel_y = 32 +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/fitness/pool"; + name = "Pool APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-8" }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/crew_quarters/fitness/pool) "anH" = ( /obj/structure/sign/warning/electricshock, /turf/closed/wall/r_wall, @@ -6317,7 +6324,7 @@ dir = 10 }, /turf/closed/wall, -/area/maintenance/fore/secondary) +/area/crew_quarters/fitness/pool) "aof" = ( /turf/closed/wall/r_wall, /area/maintenance/solars/starboard/fore) @@ -7145,14 +7152,16 @@ /turf/open/floor/plating, /area/maintenance/fore/secondary) "aqs" = ( -/obj/machinery/door/airlock{ - id_tag = "Room Two"; - name = "Room Seven - Luxury Suite" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, /obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/dorms) +/obj/machinery/door/airlock/public/glass{ + name = "Pool" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "aqu" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -9307,8 +9316,8 @@ /obj/item/clothing/under/trek/medsci/next, /obj/item/clothing/under/trek/medsci/next, /obj/item/clothing/under/trek/medsci/next, -/obj/item/clothing/under/mw2_russian_para, -/obj/item/clothing/under/mw2_russian_para, +/obj/item/clothing/under/russobluecamooutfit, +/obj/item/clothing/under/russobluecamooutfit, /obj/item/clothing/under/gladiator, /obj/item/clothing/under/gladiator, /obj/machinery/firealarm{ @@ -10298,6 +10307,11 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/crew_quarters/dorms) +"azm" = ( +/obj/structure/closet/secure_closet/personal, +/obj/item/toy/poolnoodle/blue, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "azo" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 @@ -21911,7 +21925,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/computer/arcade/minesweeper, +/obj/machinery/vending/wardrobe/cap_wardrobe, /turf/open/floor/wood, /area/crew_quarters/heads/captain) "bdj" = ( @@ -31375,6 +31389,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, +/obj/effect/landmark/start/paramedic, /turf/open/floor/plasteel/white, /area/medical/sleeper) "bzg" = ( @@ -48182,6 +48197,9 @@ /obj/machinery/atmospherics/pipe/manifold4w/scrubbers, /turf/open/floor/plasteel, /area/security/brig) +"con" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) "cop" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/atmos/incinerator_input{ dir = 1 @@ -53297,13 +53315,8 @@ /turf/open/floor/plasteel/dark, /area/hallway/primary/central) "dqb" = ( -/obj/structure/bed, -/obj/item/bedsheet/random, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "dqu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall/r_wall, @@ -53368,6 +53381,12 @@ /obj/machinery/portable_atmospherics/scrubber, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"dCr" = ( +/obj/structure/pool/Rboard, +/turf/open/floor/plasteel/yellowsiding{ + dir = 8 + }, +/area/crew_quarters/fitness/pool) "dCV" = ( /obj/structure/table, /obj/structure/cable{ @@ -53384,6 +53403,9 @@ /obj/item/gun/energy/laser/practice, /turf/open/floor/plasteel, /area/security/prison) +"dFX" = ( +/turf/closed/wall, +/area/crew_quarters/fitness/pool) "dKP" = ( /turf/closed/wall, /area/maintenance/bar) @@ -53413,14 +53435,14 @@ }, /obj/item/clothing/head/russobluecamohat, /obj/item/clothing/head/russobluecamohat, -/obj/item/clothing/head/helmet/rus_ushanka, -/obj/item/clothing/head/helmet/rus_ushanka, -/obj/item/clothing/head/helmet/rus_ushanka, -/obj/item/clothing/head/helmet/rus_ushanka, -/obj/item/clothing/under/mw2_russian_para, -/obj/item/clothing/under/mw2_russian_para, -/obj/item/clothing/under/mw2_russian_para, -/obj/item/clothing/under/mw2_russian_para, +/obj/item/clothing/head/ushanka, +/obj/item/clothing/head/ushanka, +/obj/item/clothing/head/ushanka, +/obj/item/clothing/head/ushanka, +/obj/item/clothing/under/russobluecamooutfit, +/obj/item/clothing/under/russobluecamooutfit, +/obj/item/clothing/under/russobluecamooutfit, +/obj/item/clothing/under/russobluecamooutfit, /obj/item/clothing/shoes/jackboots, /obj/item/clothing/shoes/jackboots, /obj/item/clothing/shoes/jackboots, @@ -53462,6 +53484,11 @@ }, /turf/open/space, /area/solar/starboard/fore) +"ecg" = ( +/turf/open/floor/plasteel/yellowsiding/corner{ + dir = 4 + }, +/area/crew_quarters/fitness/pool) "edA" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -53657,6 +53684,17 @@ }, /turf/open/floor/wood, /area/crew_quarters/bar) +"eMs" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) "eQb" = ( /turf/open/floor/carpet, /area/crew_quarters/dorms) @@ -53678,6 +53716,11 @@ /obj/machinery/door/firedoor, /turf/open/floor/plating, /area/crew_quarters/cryopod) +"eVJ" = ( +/turf/open/floor/plasteel/yellowsiding{ + dir = 1 + }, +/area/crew_quarters/fitness/pool) "eVL" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/light_switch{ @@ -53792,6 +53835,17 @@ }, /turf/open/floor/plating, /area/crew_quarters/fitness) +"fpz" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) "fpI" = ( /obj/machinery/light{ dir = 1 @@ -53861,6 +53915,13 @@ "fxV" = ( /turf/closed/wall/r_wall, /area/hallway/primary/central) +"fyS" = ( +/obj/structure/pool/ladder{ + dir = 1; + pixel_y = -24 + }, +/turf/open/pool, +/area/crew_quarters/fitness/pool) "fzd" = ( /obj/effect/turf_decal/stripes/corner, /turf/open/floor/plasteel, @@ -53922,14 +53983,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, /area/science/circuit) -"fMZ" = ( -/obj/item/radio/intercom{ - dir = 4; - name = "Station Intercom (General)"; - pixel_x = 27 - }, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) "fOA" = ( /obj/machinery/door/airlock{ name = "Theatre Backstage"; @@ -54072,6 +54125,14 @@ }, /turf/open/floor/circuit, /area/ai_monitored/nuke_storage) +"grc" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) "grA" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -54082,6 +54143,9 @@ }, /turf/open/floor/plasteel/dark, /area/crew_quarters/fitness) +"gvX" = ( +/turf/open/floor/plasteel/yellowsiding, +/area/crew_quarters/fitness/pool) "gwd" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -54320,6 +54384,11 @@ }, /turf/open/floor/plating, /area/space/nearstation) +"hzK" = ( +/turf/open/floor/plasteel/yellowsiding/corner{ + dir = 1 + }, +/area/crew_quarters/fitness/pool) "hBA" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/table, @@ -54473,9 +54542,13 @@ }, /area/crew_quarters/theatre) "iou" = ( -/obj/machinery/light/small, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/dorms) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "ipA" = ( /turf/open/floor/plating, /area/maintenance/department/medical/morgue) @@ -54536,6 +54609,12 @@ }, /turf/open/floor/wood, /area/maintenance/bar) +"iBv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "iDo" = ( /obj/structure/grille, /turf/open/space/basic, @@ -54567,6 +54646,21 @@ }, /turf/closed/wall/r_wall, /area/engine/gravity_generator) +"iMv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/table/glass, +/obj/structure/bedsheetbin/towel, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "iNn" = ( /obj/machinery/camera{ c_tag = "Kitchen Cold Room" @@ -54604,6 +54698,14 @@ /obj/item/coin/silver, /turf/open/floor/plating, /area/maintenance/starboard/fore) +"iYE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/table/glass, +/obj/item/storage/firstaid/regular, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "jaF" = ( /obj/machinery/light/small, /obj/machinery/atmospherics/components/unary/tank/air{ @@ -54878,19 +54980,22 @@ /turf/open/floor/plasteel, /area/engine/engine_smes) "jLT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"jMW" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, /obj/machinery/button/door{ - id = "Room Two"; - name = "Door Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 7; - pixel_y = -24; - specialfunctions = 4 + id = "PoolShut"; + name = "Pool Shutters"; + pixel_y = 24 }, -/obj/structure/chair/comfy/brown{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "jRw" = ( /obj/machinery/computer/arcade/minesweeper{ dir = 4 @@ -54906,6 +55011,10 @@ }, /turf/open/floor/plasteel, /area/science/circuit) +"jUN" = ( +/obj/effect/landmark/start/paramedic, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) "jVl" = ( /obj/structure/cable{ icon_state = "4-8" @@ -54927,6 +55036,10 @@ "kaq" = ( /turf/closed/wall/mineral/titanium, /area/space/nearstation) +"kdO" = ( +/obj/machinery/pool/controller, +/turf/open/floor/plasteel/yellowsiding, +/area/crew_quarters/fitness/pool) "kdP" = ( /obj/structure/cable{ icon_state = "2-8" @@ -54991,11 +55104,9 @@ /turf/open/floor/plasteel, /area/hallway/secondary/service) "khB" = ( -/obj/machinery/door/airlock/external{ - req_access_txt = "13" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 +/obj/machinery/door/airlock/maintenance{ + name = "Pool Maintenance"; + req_access_txt = "12" }, /turf/open/floor/plating, /area/maintenance/fore/secondary) @@ -55267,6 +55378,12 @@ /obj/item/clothing/under/lawyer/red, /turf/open/floor/plasteel, /area/crew_quarters/locker) +"lnk" = ( +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "lnu" = ( /obj/structure/chair/wood/normal{ dir = 4 @@ -55312,6 +55429,12 @@ }, /turf/open/floor/plating, /area/construction/mining/aux_base) +"lCo" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "lGV" = ( /obj/machinery/button/door{ id = "maintdiy"; @@ -55327,12 +55450,6 @@ }, /turf/open/floor/plasteel, /area/science/circuit) -"lOe" = ( -/obj/machinery/shower{ - dir = 8 - }, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/dorms) "lPr" = ( /obj/item/twohanded/required/kirbyplants{ icon_state = "applebush" @@ -55356,13 +55473,6 @@ /turf/open/floor/carpet, /area/crew_quarters/dorms) "lXE" = ( -/obj/structure/sign/warning/fire{ - desc = "A sign that states the labeled room's number."; - dir = 5; - icon_state = "roomnum"; - name = "Room Number 7"; - pixel_y = 24 - }, /obj/structure/chair/sofa/right, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -55377,6 +55487,12 @@ /obj/item/coin/gold, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"lZK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/crew_quarters/fitness/pool) "mbU" = ( /obj/machinery/vr_sleeper{ dir = 8 @@ -55397,6 +55513,15 @@ /obj/item/target/syndicate, /turf/open/floor/plating, /area/security/prison) +"meb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/bed, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"mgF" = ( +/obj/structure/bed, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "mjr" = ( /obj/structure/reagent_dispensers/keg/milk, /turf/open/floor/wood, @@ -55459,13 +55584,6 @@ /obj/effect/spawner/lootdrop/keg, /turf/open/floor/wood, /area/maintenance/bar) -"mse" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/structure/chair/sofa/left, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) "mvt" = ( /obj/machinery/airalarm{ dir = 1; @@ -55854,6 +55972,10 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/dorms) +"nZL" = ( +/obj/machinery/computer/arcade/minesweeper, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) "oax" = ( /obj/structure/table/wood/fancy, /obj/machinery/light, @@ -55872,10 +55994,6 @@ }, /turf/open/floor/wood, /area/crew_quarters/bar) -"obc" = ( -/obj/structure/chair/sofa/right, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) "oce" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -55902,6 +56020,13 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/dorms) +"ohq" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "old" = ( /obj/effect/turf_decal/tile/red{ dir = 8 @@ -56073,17 +56198,6 @@ }, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) -"oLn" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) "oTW" = ( /obj/structure/chair/stool{ pixel_y = 8 @@ -56102,6 +56216,10 @@ /obj/machinery/disposal/bin, /turf/open/floor/plasteel/white, /area/science/circuit) +"oVo" = ( +/obj/structure/pool/ladder, +/turf/open/pool, +/area/crew_quarters/fitness/pool) "oZl" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/closet/wardrobe/pjs, @@ -56144,6 +56262,14 @@ }, /turf/open/floor/plating, /area/security/prison) +"pkF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "plm" = ( /obj/structure/reagent_dispensers/watertank/high, /obj/effect/turf_decal/tile/yellow{ @@ -56371,6 +56497,16 @@ }, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) +"qeA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Pool" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "qeQ" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -56442,13 +56578,6 @@ /obj/structure/grille/broken, /turf/open/space/basic, /area/space/nearstation) -"qAm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/light/small, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) "qBi" = ( /obj/structure/lattice, /turf/closed/wall/r_wall, @@ -56518,6 +56647,12 @@ }, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) +"qWV" = ( +/obj/machinery/pool/filter{ + pixel_y = 24 + }, +/turf/open/pool, +/area/crew_quarters/fitness/pool) "qXg" = ( /obj/structure/chair/sofa/left, /turf/open/floor/plasteel, @@ -56887,6 +57022,21 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) +"sth" = ( +/obj/structure/table/glass, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"str" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/crew_quarters/fitness/pool) +"stF" = ( +/obj/structure/closet/secure_closet/personal, +/obj/item/toy/poolnoodle/yellow, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "sxs" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/table, @@ -57068,7 +57218,7 @@ /turf/open/floor/plating, /area/space) "sRH" = ( -/obj/machinery/autolathe{ +/obj/machinery/autolathe/secure{ name = "public autolathe" }, /turf/open/floor/plasteel, @@ -57232,6 +57382,22 @@ /obj/item/soap, /turf/open/floor/mineral/titanium/blue, /area/crew_quarters/dorms) +"tAC" = ( +/obj/structure/closet/athletic_mixed, +/obj/item/toy/poolnoodle/red, +/obj/item/toy/poolnoodle/blue, +/obj/item/toy/poolnoodle/yellow, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"tAH" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) "tCa" = ( /obj/structure/table/wood, /obj/item/instrument/guitar{ @@ -57413,6 +57579,12 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) +"uei" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) "ufD" = ( /obj/machinery/vr_sleeper{ dir = 4 @@ -57453,16 +57625,26 @@ /area/crew_quarters/cryopod) "ujS" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 + dir = 10 }, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"ulM" = ( +/obj/structure/closet/secure_closet/personal, +/obj/item/toy/poolnoodle/red, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "unA" = ( /obj/machinery/light{ dir = 8 }, /turf/open/floor/wood, /area/crew_quarters/bar) +"unR" = ( +/turf/open/floor/plasteel/yellowsiding{ + dir = 8 + }, +/area/crew_quarters/fitness/pool) "unW" = ( /obj/effect/landmark/event_spawn, /obj/structure/cable{ @@ -57534,6 +57716,16 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/dorms) +"uzs" = ( +/turf/open/floor/plasteel/yellowsiding{ + dir = 4 + }, +/area/crew_quarters/fitness/pool) +"uAH" = ( +/turf/open/floor/plasteel/yellowsiding/corner{ + dir = 8 + }, +/area/crew_quarters/fitness/pool) "uBa" = ( /obj/structure/table, /obj/item/reagent_containers/food/drinks/soda_cans/starkist{ @@ -57553,6 +57745,14 @@ }, /turf/open/space, /area/solar/port/fore) +"uEx" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "PoolShut"; + name = "Pool Shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/fitness/pool) "uEI" = ( /obj/structure/chair/comfy/brown{ dir = 8 @@ -57654,6 +57854,10 @@ icon_state = "carpetsymbol" }, /area/crew_quarters/theatre) +"uSC" = ( +/obj/machinery/pool/drain, +/turf/open/pool, +/area/crew_quarters/fitness/pool) "uVS" = ( /obj/structure/cable{ icon_state = "4-8" @@ -57725,6 +57929,12 @@ }, /turf/open/floor/wood, /area/security/vacantoffice) +"veS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/fitness/pool) "vhb" = ( /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -57784,6 +57994,10 @@ }, /turf/open/floor/plasteel, /area/engine/gravity_generator) +"voW" = ( +/obj/structure/pool/Lboard, +/turf/open/pool, +/area/crew_quarters/fitness/pool) "vpY" = ( /obj/structure/closet/lasertag/blue, /obj/item/clothing/under/pj/blue, @@ -57850,6 +58064,14 @@ }, /turf/open/floor/wood, /area/maintenance/bar) +"vAl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/camera{ + c_tag = "Pool East"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "vBa" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 @@ -57997,6 +58219,12 @@ }, /turf/open/floor/wood, /area/library) +"wag" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "wbE" = ( /obj/effect/turf_decal/tile/blue{ alpha = 255 @@ -58022,6 +58250,9 @@ }, /turf/open/floor/carpet, /area/crew_quarters/heads/captain) +"wcR" = ( +/turf/open/floor/plasteel/yellowsiding/corner, +/area/crew_quarters/fitness/pool) "wdv" = ( /obj/structure/fans/tiny/invisible, /turf/open/space/basic, @@ -58036,15 +58267,11 @@ /turf/open/floor/plating, /area/maintenance/bar) "wig" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp/green{ - on = 0; - pixel_x = -7; - pixel_y = 12 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "wkN" = ( /turf/closed/wall, /area/science/circuit) @@ -58117,6 +58344,12 @@ }, /turf/closed/wall, /area/hallway/secondary/service) +"wHk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "wHz" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 @@ -58141,6 +58374,13 @@ }, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) +"wQg" = ( +/obj/structure/pool/ladder{ + dir = 2; + pixel_y = 24 + }, +/turf/open/pool, +/area/crew_quarters/fitness/pool) "wTf" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 @@ -58181,19 +58421,24 @@ /obj/effect/landmark/start/roboticist, /turf/open/floor/plasteel/white, /area/science/robotics/lab) +"wWW" = ( +/obj/structure/closet/secure_closet/personal, +/obj/item/toy/poolnoodle/yellow, +/obj/machinery/button/door{ + id = "PoolShut"; + name = "Pool Shutters"; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "wXl" = ( -/obj/structure/mirror{ - pixel_y = 32 - }, -/obj/structure/sink{ - dir = 1; - pixel_y = 25 - }, -/obj/structure/toilet{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/machinery/camera{ + c_tag = "Pool West"; dir = 4 }, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/dorms) +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "wYc" = ( /obj/machinery/vr_sleeper{ dir = 8 @@ -58209,6 +58454,22 @@ }, /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/captain) +"xaB" = ( +/obj/structure/closet/athletic_mixed, +/obj/item/toy/poolnoodle/red, +/obj/item/toy/poolnoodle/blue, +/obj/item/toy/poolnoodle/yellow, +/obj/machinery/button/door{ + id = "PoolShut"; + name = "Pool Shutters"; + pixel_y = 24 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "xbn" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 @@ -58561,6 +58822,13 @@ /obj/item/clothing/under/pj/red, /turf/open/floor/plasteel, /area/crew_quarters/fitness) +"xZL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "ybj" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -90865,7 +91133,7 @@ aVv aXg aYF aZV -bbw +nZL bcn tgH ben @@ -93141,7 +93409,7 @@ aif aif aif aif -aif +fpz bkV jKP alK @@ -93393,12 +93661,12 @@ abp abp uhm ahn -aiA -aiA +ahn aiA ahn -oLn -anF +ahn +grc +anE aod ahn apx @@ -93650,11 +93918,11 @@ wdv abp nQi ahn -aaa -aaf -aaf +ahn +uei ahn ahn +grc anE aod aoK @@ -93907,11 +94175,11 @@ aaa adR ahn ahn -aaa -aaa -aaa -aaf ahn +tAH +ahn +ahn +eMs anG aoe aoL @@ -94164,13 +94432,13 @@ aaa gXs aaa aaa -aaa -aaa -aaa -aaa +gJi +gJi +gJi +ahn ahn khB -ahn +dFX ahn ahn ahn @@ -94424,17 +94692,17 @@ aaa aaa aaa aaa -aaa -aag -aag -aag -arf +dFX +wWW +dqb +lCo +ohq wXl iou -arf -eSe +pkF +xZL wig -vyp +str rrM clO asZ @@ -94681,17 +94949,17 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -arf -lOe -pgf -gzf -eQb +uEx +ulM +wcR +uzs +uzs +uzs +uzs +uzs +ecg jLT -arf +veS arm fHG aya @@ -94938,15 +95206,15 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -arf -arf -arf -arf -oAB +uEx +azm +gvX +qWV +con +oVo +con +con +eVJ ujS aqs coh @@ -95195,17 +95463,17 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -arf -obc -eQb -qAm -arf +uEx +stF +gvX +con +con +con +con +con +eVJ +dqb +qeA lXE pFX mOO @@ -95452,17 +95720,17 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -arf -mse -fMZ +dFX +lnk +gvX +wQg +con +con +con +fyS +eVJ dqb -arf +veS xzd sJI jJg @@ -95709,17 +95977,17 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aae -aaa -aaa -arf -arf -arf -arf -arf +uEx +dqb +gvX +con +con +con +con +con +eVJ +iBv +lZK fZm jmV epD @@ -95966,16 +96234,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -gXs +uEx +dqb +kdO +con +con +uSC +con +con +eVJ +wHk ewu pQp pQp @@ -96028,7 +96296,7 @@ bAv bvj bCO bDR -bDR +jUN bDR bIn bJC @@ -96223,16 +96491,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -gXs -gXs +uEx +dqb +gvX +con +con +con +con +con +eVJ +wHk aqu aro aro @@ -96480,16 +96748,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -gXs -gXs -aaa +dFX +jMW +gvX +wQg +con +con +con +fyS +eVJ +wHk aqu aro aro @@ -96737,16 +97005,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -gXs -gXs -aaa -aaa +uEx +sth +gvX +con +con +con +con +con +eVJ +wHk aqu aro aro @@ -96994,16 +97262,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -gXs -gXs -aaa -aaa -aaa +uEx +wag +gvX +con +con +voW +con +con +eVJ +wHk aqu aro aro @@ -97251,16 +97519,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -gXs -gXs -aaa -aaa -aaa -aaa +uEx +tAC +uAH +unR +unR +dCr +unR +unR +hzK +iYE aqu aro aro @@ -97508,16 +97776,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaf -aaf -aaa -aaa -aaa -aaa -aaa +dFX +xaB +mgF +mgF +mgF +vAl +meb +meb +meb +iMv vmQ pQp pQp @@ -97764,18 +98032,18 @@ aaS aaS aaS aaS -aaS -aaS -aaS -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa aaa +dFX +dFX +uEx +uEx +uEx +dFX +uEx +uEx +uEx +dFX +dFX aaa aaa arj @@ -98021,10 +98289,10 @@ aaf aaa aaf aaa -aaf aaa -aaS -aaf +aaa +aaa +aaa aaa aaa aaa @@ -98280,7 +98548,7 @@ ads adS aeG aaa -aaS +gXs aaa aaa aaa diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index fd0f0a1742..1d738b7382 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -34904,7 +34904,7 @@ /obj/effect/turf_decal/tile/brown{ dir = 8 }, -/obj/machinery/autolathe{ +/obj/machinery/autolathe/secure{ name = "public autolathe" }, /turf/open/floor/plasteel, @@ -62353,7 +62353,7 @@ /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) "cbd" = ( -/obj/effect/landmark/event_spawn, +/obj/machinery/vending/wardrobe/cap_wardrobe, /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) "cbe" = ( @@ -86375,6 +86375,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 4 }, +/obj/effect/landmark/start/paramedic, /turf/open/floor/plasteel/white, /area/medical/storage) "cPF" = ( @@ -127169,6 +127170,13 @@ dir = 9 }, /area/science/circuit) +"rjr" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain/private) "rqh" = ( /obj/structure/lattice, /turf/open/space/basic, @@ -127454,6 +127462,22 @@ /obj/machinery/light/small, /turf/open/floor/plasteel, /area/security/prison) +"vEq" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/landmark/start/paramedic, +/turf/open/floor/plasteel/white, +/area/medical/storage) "wei" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, @@ -169426,7 +169450,7 @@ bUO bXf bUQ cbe -ccP +rjr ceH cgu cij @@ -174848,7 +174872,7 @@ cAm cKO cMm cNO -cPF +vEq cRi cSV cUN diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm new file mode 100644 index 0000000000..a645dabd18 --- /dev/null +++ b/_maps/map_files/KiloStation/KiloStation.dmm @@ -0,0 +1,154021 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aaa" = ( +/turf/open/space/basic, +/area/space) +"aab" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"aac" = ( +/obj/machinery/computer/atmos_alert{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/power/apc{ + areastring = "/area/ai_monitored/turret_protected/aisat/atmos"; + dir = 8; + name = "MiniSat Atmospherics APC"; + pixel_x = -27 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/atmos) +"aad" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen, +/obj/item/mmi/posibrain{ + pixel_x = 5; + pixel_y = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"aae" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/security/brig) +"aaf" = ( +/turf/closed/wall/r_wall, +/area/security/brig) +"aah" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "brigcelldoor"; + name = "Cell Blast door" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/security/warden) +"aai" = ( +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"aaj" = ( +/turf/closed/wall, +/area/security/brig) +"aak" = ( +/obj/structure/table, +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, +/obj/item/storage/toolbox/mechanical, +/obj/item/multitool, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai) +"aal" = ( +/obj/structure/table, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/obj/item/storage/toolbox/electrical, +/obj/item/assembly/flash/handheld, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai) +"aam" = ( +/obj/machinery/flasher{ + id = "AI"; + name = "Meatbag Pacifier"; + pixel_y = 24 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai) +"aan" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai) +"aao" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/courtroom) +"aap" = ( +/turf/closed/mineral/random/low_chance, +/area/space/nearstation) +"aaq" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/shieldwallgen, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"aar" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/fore) +"aas" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai) +"aau" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/security/prison) +"aav" = ( +/turf/closed/wall/r_wall, +/area/security/prison) +"aaw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai) +"aax" = ( +/obj/item/beacon, +/turf/open/floor/engine, +/area/science/xenobiology) +"aay" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/sign/poster/contraband/random{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/fore) +"aaz" = ( +/obj/structure/table/wood, +/obj/item/clipboard, +/obj/item/folder, +/obj/item/pen, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/courtroom) +"aaA" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aaB" = ( +/obj/effect/landmark/carpspawn, +/turf/open/space/basic, +/area/space) +"aaC" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/blood/gibs/limb, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aaD" = ( +/obj/machinery/flasher{ + id = "AI"; + name = "Meatbag Pacifier"; + pixel_y = 24 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/camera{ + c_tag = "AI Chamber SMES"; + name = "core camera"; + network = list("aicore") + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai) +"aaE" = ( +/obj/structure/chair, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel/dark, +/area/medical/medbay/central) +"aaF" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/remains/human, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai) +"aaG" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall, +/area/security/prison) +"aaH" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai) +"aaI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"aaJ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/fore) +"aaK" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/courtroom) +"aaL" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/folder, +/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 = -4 + }, +/obj/item/reagent_containers/glass/beaker{ + pixel_x = 4 + }, +/obj/item/reagent_containers/dropper, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"aaM" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/central/secondary"; + dir = 8; + name = "Central Maintenance APC"; + pixel_x = -25 + }, +/obj/structure/cable, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"aaN" = ( +/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/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/item/radio/intercom{ + pixel_x = -28; + pixel_y = 22 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/heads/cmo) +"aaO" = ( +/obj/structure/flora/grass/jungle, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/space/nearstation) +"aaP" = ( +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/effect/turf_decal/box, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai) +"aaQ" = ( +/obj/structure/lattice, +/obj/structure/grille/broken, +/turf/open/space/basic, +/area/space/nearstation) +"aaR" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aaS" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aaT" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/warden) +"aaU" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai) +"aaV" = ( +/obj/structure/table/wood, +/obj/item/radio/intercom, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/courtroom) +"aaW" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/window/brigdoor/northright{ + id = "Cell 4"; + name = "Cell 4"; + req_access_txt = "1" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aaX" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 8 + }, +/area/hallway/primary/fore) +"aaY" = ( +/turf/closed/wall, +/area/security/detectives_office) +"aaZ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 4 + }, +/area/hallway/primary/fore) +"aba" = ( +/obj/machinery/vending/snack/random, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"abb" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/fore) +"abc" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/window/brigdoor/northright{ + id = "Cell 3"; + name = "Cell 3"; + req_access_txt = "1" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"abd" = ( +/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/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"abe" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai) +"abf" = ( +/obj/machinery/photocopier, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/requests_console{ + department = "Law office"; + name = "Lawyer RC"; + pixel_y = -30 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/lawoffice) +"abg" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/courtroom) +"abi" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/reagent_dispensers/watertank, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/maintenance/starboard) +"abj" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai) +"abk" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "Bridge Blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"abl" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "cmoprivacy"; + name = "Office Privacy Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/cmo) +"abm" = ( +/obj/structure/bed/dogbed/runtime, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/mob/living/simple_animal/pet/cat/Runtime, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/cmo) +"abn" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/stool, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"abo" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/folder/white, +/obj/item/wrench/medical, +/obj/item/toy/figure/cmo, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/cmo) +"abp" = ( +/turf/closed/wall, +/area/security/prison) +"abq" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen, +/obj/item/stamp/captain{ + pixel_x = 8; + pixel_y = 6 + }, +/obj/item/pen/fountain/captain, +/obj/item/radio/intercom{ + dir = 8; + freerange = 1; + name = "Station Intercom (Command)"; + pixel_y = -28 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"abr" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/window/brigdoor/northright{ + id = "Cell 1"; + name = "Cell 1"; + req_access_txt = "1" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"abs" = ( +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai) +"abt" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/tank/internals/oxygen, +/obj/item/pickaxe, +/turf/open/floor/plating, +/area/maintenance/starboard) +"abu" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot_white, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/rack, +/obj/item/storage/toolbox/emergency{ + pixel_y = 5 + }, +/obj/item/clothing/under/color/grey, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"abv" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai) +"abw" = ( +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/effect/turf_decal/box, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai) +"abx" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard) +"aby" = ( +/obj/machinery/requests_console{ + department = "AI"; + departmentType = 5; + name = "AI RC"; + pixel_x = 30; + pixel_y = -30 + }, +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/effect/turf_decal/box, +/obj/machinery/flasher{ + id = "AI"; + name = "Meatbag Pacifier"; + pixel_x = 24; + pixel_y = 24 + }, +/obj/machinery/camera{ + c_tag = "AI Chamber Core"; + dir = 1; + name = "core camera"; + network = list("aicore") + }, +/obj/machinery/light/floor, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai) +"abz" = ( +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/effect/turf_decal/box, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai) +"abA" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/table/optable{ + name = "Forensics Operating Table" + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/dark, +/area/security/detectives_office) +"abB" = ( +/obj/machinery/flasher{ + id = "AI"; + name = "Meatbag Pacifier"; + pixel_x = -24 + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai) +"abC" = ( +/obj/machinery/flasher{ + id = "AI"; + name = "Meatbag Pacifier"; + pixel_x = 24 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/remains/human, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai) +"abD" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/decal/cleanable/dirt, +/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/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard) +"abE" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard) +"abF" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/bridge) +"abG" = ( +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/stool, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"abH" = ( +/obj/structure/table, +/obj/item/flashlight/lamp, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"abI" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"abJ" = ( +/obj/structure/flora/ausbushes/palebush, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/space/nearstation) +"abK" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai) +"abL" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/obj/machinery/newscaster/security_unit{ + pixel_x = 30 + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai) +"abM" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"abN" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/maintenance/fore) +"abO" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/security/warden) +"abP" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall/rust, +/area/chapel/office) +"abQ" = ( +/obj/machinery/light, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai) +"abR" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/status_display/ai{ + pixel_x = -32; + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai) +"abS" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai) +"abT" = ( +/obj/structure/sign/departments/security, +/turf/closed/wall, +/area/security/detectives_office) +"abU" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/filingcabinet/security, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/detectives_office) +"abV" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai) +"abW" = ( +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/effect/turf_decal/box, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai) +"abX" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/decal/cleanable/dirt, +/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" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"abY" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/warden) +"abZ" = ( +/obj/machinery/status_display/ai{ + pixel_x = 32; + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai) +"aca" = ( +/obj/machinery/light, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai) +"acb" = ( +/obj/machinery/camera{ + c_tag = "AI Chamber Door"; + dir = 1; + name = "core camera"; + network = list("aicore") + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai) +"acc" = ( +/obj/machinery/door/airlock/maintenance{ + name = "security maintenance"; + req_one_access_txt = "4;63" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"acd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai) +"ace" = ( +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/aisat_interior) +"acf" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/security/warden) +"acg" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/aisat_interior) +"ach" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/clothing/gloves/color/latex, +/obj/item/storage/backpack/duffelbag/sec/surgery{ + pixel_y = 5 + }, +/obj/item/clothing/mask/surgical, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/turf/open/floor/plasteel/dark, +/area/security/detectives_office) +"aci" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/table, +/obj/item/storage/box/evidence{ + pixel_y = 5 + }, +/obj/item/restraints/handcuffs/cable/zipties, +/turf/open/floor/plasteel/dark, +/area/security/detectives_office) +"acj" = ( +/obj/machinery/power/port_gen/pacman, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/ai_monitored/storage/satellite) +"ack" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/wood, +/area/security/detectives_office) +"acl" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/wood, +/area/security/detectives_office) +"acm" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"acn" = ( +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/aisat/atmos) +"aco" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/aisat/atmos) +"acp" = ( +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/effect/turf_decal/box, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/aisat_interior) +"acq" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/obj/structure/noticeboard{ + dir = 8; + pixel_x = 32 + }, +/obj/machinery/camera{ + c_tag = "Detective's Office"; + dir = 8; + name = "detective camera" + }, +/turf/open/floor/wood, +/area/security/detectives_office) +"acr" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/aisat_interior) +"acs" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/wood, +/area/security/detectives_office) +"act" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/carpet, +/area/security/detectives_office) +"acu" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/hatch{ + name = "Satellite Storage"; + req_one_access_txt = "32;19" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/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" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"acv" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/toy/figure/scientist{ + pixel_x = 8; + pixel_y = 6 + }, +/obj/item/pen, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"acw" = ( +/obj/machinery/computer/camera_advanced/xenobio{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/window/reinforced, +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + name = "Science RC"; + pixel_x = -30; + pixel_y = 30; + receive_ore_updates = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"acx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/wood, +/area/security/detectives_office) +"acy" = ( +/obj/docking_port/stationary/random{ + id = "pod_lavaland3"; + name = "lavaland" + }, +/turf/open/space, +/area/space/nearstation) +"acz" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/aisat_interior) +"acA" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, +/turf/open/floor/engine, +/area/ai_monitored/storage/satellite) +"acB" = ( +/obj/structure/cable, +/turf/open/floor/engine, +/area/ai_monitored/storage/satellite) +"acC" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/vending/cola/random, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -26 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/port) +"acD" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/sign/departments/holy{ + pixel_y = 32 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 4 + }, +/area/hallway/primary/fore) +"acE" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral, +/obj/item/storage/box/bodybags{ + pixel_y = 5 + }, +/obj/item/shovel, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"acF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/chair/office{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/aisat/atmos) +"acG" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/medical/glass{ + name = "Genetics"; + req_access_txt = "5; 9; 68" + }, +/turf/open/floor/plasteel/dark, +/area/medical/genetics) +"acH" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/security/warden) +"acI" = ( +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/effect/turf_decal/box, +/obj/machinery/camera{ + c_tag = "Satellite Atmospherics"; + dir = 8; + name = "satellite camera"; + network = list("minisat") + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/aisat/atmos) +"acJ" = ( +/obj/structure/table, +/obj/item/crowbar/red, +/obj/item/radio{ + pixel_y = 5 + }, +/obj/machinery/light_switch{ + pixel_x = 24 + }, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/atmos) +"acK" = ( +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/space/nearstation) +"acL" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/maintenance/fore) +"acM" = ( +/obj/item/radio/intercom{ + pixel_x = -28 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 4 + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/aisat_interior) +"acN" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/landmark/event_spawn, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"acO" = ( +/obj/structure/chair{ + dir = 4 + }, +/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/dark, +/area/security/warden) +"acP" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/storage/toolbox/electrical{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/item/storage/toolbox/mechanical, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/satellite) +"acQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/stock_parts/cell/high, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"acR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/space/nearstation) +"acS" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"acT" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/pen, +/obj/item/toy/figure/md{ + pixel_x = 8; + pixel_y = 6 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "emmd"; + name = "Emergency Medical Lockdown Shutters" + }, +/turf/open/floor/plating, +/area/medical/medbay/central) +"acU" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/research{ + name = "Xenobiology Lab"; + req_access_txt = "47" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"acV" = ( +/obj/machinery/door/firedoor/heavy, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xeno_blastdoor"; + name = "Xenobiology Containment Blast Door" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"acW" = ( +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/light/small, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/aisat_interior) +"acX" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/aisat_interior) +"acY" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/camera{ + c_tag = "Satellite Antechamber"; + dir = 1; + name = "satellite camera"; + network = list("minisat") + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/aisat_interior) +"acZ" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/ausbushes/fernybush, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/space/nearstation) +"ada" = ( +/obj/machinery/power/apc{ + areastring = "/area/ai_monitored/turret_protected/aisat_interior"; + dir = 4; + name = "MiniSat Antechamber APC"; + pixel_x = 26 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/aisat_interior) +"adb" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/clipboard{ + pixel_x = -6; + pixel_y = 2 + }, +/obj/item/aicard{ + pixel_x = 4 + }, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Bridge Control Pit"; + name = "command camera" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"adc" = ( +/obj/structure/filingcabinet/employment, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/obj/machinery/button/door{ + id = "lawyer_shutters"; + name = "Law Office Shutters Toggle"; + pixel_x = 24; + req_access_txt = "38" + }, +/turf/open/floor/plasteel/dark, +/area/lawoffice) +"add" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/obj/structure/flora/ausbushes/lavendergrass, +/obj/structure/flora/ausbushes/fernybush, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/space/nearstation) +"ade" = ( +/obj/structure/sign/warning/nosmoking{ + pixel_x = -30 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/maintenance/port/fore) +"adf" = ( +/obj/structure/flora/grass/jungle/b, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/space/nearstation) +"adg" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat_interior) +"adh" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"adi" = ( +/obj/structure/chair{ + dir = 8 + }, +/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/decal/cleanable/blood/old, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"adj" = ( +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/effect/turf_decal/box, +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/engine, +/area/ai_monitored/storage/satellite) +"adk" = ( +/turf/closed/wall/r_wall, +/area/maintenance/port) +"adl" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/machinery/door/poddoor/preopen{ + id = "prisonblast"; + name = "Prison Blast Door" + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"adm" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/floor/engine, +/area/ai_monitored/storage/satellite) +"adn" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/security/warden) +"ado" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/security/warden) +"adp" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/security/warden) +"adq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai) +"adr" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/status_display/evac{ + pixel_x = -32 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/atmos) +"ads" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/poddoor/preopen{ + id = "xeno_blastdoor"; + name = "Xenobiology Containment Blast Door" + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"adt" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/aisat/atmos) +"adu" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/closet/secure_closet/courtroom, +/obj/item/gavelhammer, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/camera{ + c_tag = "Courtroom Judge"; + name = "command camera" + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"adv" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/blood/gibs/limb, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"adw" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/aisat/atmos) +"adx" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/door/airlock/research{ + glass = 1; + name = "Slime Euthanization Chamber"; + opacity = 0; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"ady" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/camera{ + c_tag = "Satellite Maintenance"; + dir = 4; + name = "satellite camera"; + network = list("minisat") + }, +/turf/open/floor/engine, +/area/ai_monitored/storage/satellite) +"adz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/engine, +/area/ai_monitored/storage/satellite) +"adA" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/sign/warning/fire{ + pixel_x = -32 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/atmos) +"adB" = ( +/obj/machinery/computer/telecomms/monitor, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"adC" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/light, +/obj/structure/extinguisher_cabinet{ + pixel_y = -28 + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/fore) +"adD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/aisat/atmos) +"adE" = ( +/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" + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/aisat/atmos) +"adF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/ai_monitored/turret_protected/aisat/foyer"; + dir = 1; + name = "MiniSat Foyer APC"; + pixel_y = 26 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/aisat/foyer) +"adG" = ( +/obj/machinery/turretid{ + control_area = "/area/ai_monitored/turret_protected/aisat_interior"; + name = "Antechamber Turret Control"; + pixel_y = 28; + req_access_txt = "65" + }, +/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" + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/aisat/foyer) +"adH" = ( +/turf/closed/wall, +/area/maintenance/fore) +"adI" = ( +/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" + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/aisat/foyer) +"adJ" = ( +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/engine, +/area/ai_monitored/storage/satellite) +"adK" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/landmark/start/chief_medical_officer, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/heads/cmo) +"adL" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/barricade/wooden/crude, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"adM" = ( +/obj/machinery/door/airlock/external{ + name = "Abandoned External Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"adN" = ( +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/obj/structure/sign/warning/nosmoking{ + pixel_x = 30; + pixel_y = -32 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/engine, +/area/ai_monitored/storage/satellite) +"adO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/aisat/atmos) +"adP" = ( +/obj/machinery/status_display/ai, +/turf/closed/wall, +/area/hallway/primary/fore) +"adQ" = ( +/turf/closed/wall/rust, +/area/maintenance/fore) +"adR" = ( +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/aisat/foyer) +"adS" = ( +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/aisat/foyer) +"adT" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall/r_wall/rust, +/area/ai_monitored/turret_protected/aisat_interior) +"adU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/aisat/foyer) +"adV" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "prisonblast"; + name = "Prison Blast Door" + }, +/obj/machinery/button/door{ + id = "prisonblast"; + name = "Prison Lockdown"; + pixel_y = 24; + req_one_access_txt = "2" + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"adW" = ( +/obj/machinery/door/airlock/external{ + name = "Prison External Airlock"; + req_access_txt = "2" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"adX" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/server) +"adY" = ( +/obj/item/beacon, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/aisat/foyer) +"adZ" = ( +/obj/machinery/door/airlock/external{ + name = "Prison External Airlock"; + req_access_txt = "2" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"aea" = ( +/obj/structure/bed, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/sign/poster/contraband/random{ + pixel_y = 32 + }, +/obj/item/bedsheet/brown, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"aeb" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/fore) +"aec" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/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/poddoor/preopen{ + id = "prisonblast"; + name = "Prison Blast Door" + }, +/obj/machinery/button/door{ + id = "prisonblast"; + name = "Prison Lockdown"; + pixel_y = -24; + req_one_access_txt = "2" + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"aed" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/atmos) +"aee" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/closet/emcloset/anchored, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/atmos) +"aef" = ( +/turf/closed/wall, +/area/security/warden) +"aeh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/aisat/foyer) +"aei" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/security/warden) +"aej" = ( +/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/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/security/warden) +"aek" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Satellite Foyer"; + dir = 8; + name = "satellite camera"; + network = list("minisat") + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/aisat/foyer) +"ael" = ( +/obj/structure/sign/departments/medbay/alt, +/turf/closed/wall/rust, +/area/security/warden) +"aem" = ( +/obj/structure/disposalpipe/trunk, +/obj/structure/disposaloutlet{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"aen" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/medical/cryo) +"aeo" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space/basic, +/area/space/nearstation) +"aep" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/rack, +/obj/item/storage/backpack/satchel/tox, +/obj/item/analyzer, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aeq" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/open/floor/engine, +/area/science/xenobiology) +"aer" = ( +/turf/closed/wall/rust, +/area/maintenance/port/aft) +"aes" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"aet" = ( +/obj/item/storage/box/bodybags, +/obj/item/pen, +/obj/structure/table, +/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/bot, +/obj/item/radio/intercom{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"aeu" = ( +/turf/closed/mineral/random/labormineral, +/area/space/nearstation) +"aev" = ( +/obj/structure/transit_tube/curved/flipped{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/foyer) +"aew" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/door/airlock/research{ + name = "Xenobiology Closet"; + req_access_txt = "47" + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"aex" = ( +/obj/structure/transit_tube/station{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/foyer) +"aey" = ( +/turf/closed/wall/rust, +/area/security/main) +"aez" = ( +/turf/closed/wall, +/area/security/execution/education) +"aeA" = ( +/obj/structure/transit_tube/curved{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/foyer) +"aeB" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/security/execution/education) +"aeD" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"aeE" = ( +/obj/structure/flora/rock/pile, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/space/nearstation) +"aeF" = ( +/obj/structure/flora/ausbushes/lavendergrass, +/obj/structure/flora/ausbushes/sparsegrass, +/obj/structure/flora/ausbushes/ywflowers, +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/palebush, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/space/nearstation) +"aeG" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/server) +"aeH" = ( +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"aeI" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aeJ" = ( +/obj/structure/rack, +/obj/item/wirecutters{ + pixel_y = 5 + }, +/obj/item/wirerod, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"aeK" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/light/small, +/turf/open/floor/plating/airless, +/area/maintenance/starboard/fore) +"aeL" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/airless, +/area/maintenance/starboard/fore) +"aeM" = ( +/obj/machinery/photocopier, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"aeN" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/closet/firecloset, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aeO" = ( +/obj/structure/bonfire, +/obj/item/reagent_containers/food/drinks/bottle/orangejuice{ + desc = "For the weary spacemen on their quest to rekindle the first plasma fire."; + name = "Carton of Estus" + }, +/obj/effect/decal/remains/human, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/obj/item/melee/baseball_bat{ + desc = "Don't tell anyone you put any points into dex, though."; + icon_state = "swordon"; + item_state = "swordon"; + name = "moonlight greatsword" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/fore) +"aeP" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/medical/cryo) +"aeQ" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/security/warden) +"aeR" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"aeS" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "bridge blast"; + name = "Bridge Lockdown Toggle"; + pixel_x = 6; + pixel_y = 8; + req_access_txt = "19" + }, +/obj/machinery/button/door{ + id = "transittube"; + name = "Transit Tube Lockdown Toggle"; + pixel_x = 6; + pixel_y = -2; + req_access_txt = "19" + }, +/obj/machinery/button/door{ + id = "teleshutter"; + name = "Teleporter Shutter Toggle"; + pixel_x = -6; + pixel_y = 8; + req_access_txt = "19" + }, +/obj/machinery/button/door{ + id = "evashutter"; + name = "E.V.A. Storage Shutter Toggle"; + pixel_x = -6; + pixel_y = -2; + req_access_txt = "19" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aeT" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aeU" = ( +/turf/open/floor/plating/asteroid/airless, +/area/space/nearstation) +"aeV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"aeW" = ( +/obj/structure/table/reinforced, +/obj/item/crowbar/red, +/obj/item/wrench, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"aeX" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/security/warden) +"aeY" = ( +/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/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/security/warden) +"aeZ" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "Xenolab"; + name = "Containment Chamber Toggle"; + pixel_y = 4; + req_access_txt = "55" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"afa" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"afb" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/closet/emcloset/anchored, +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/fore) +"afc" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall, +/area/security/brig) +"afd" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/closet/secure_closet/injection{ + name = "Justice Injections" + }, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/button/door{ + id = "SecJusticeChamber"; + layer = 4; + name = "Justice Vent Toggle"; + pixel_x = -24; + pixel_y = 8; + req_access_txt = "3" + }, +/obj/machinery/light_switch{ + pixel_x = -40; + pixel_y = -8 + }, +/obj/machinery/button/door{ + id = "executionfireblast"; + name = "Justice Shutter Control"; + pixel_x = -24; + pixel_y = -8; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) +"afe" = ( +/turf/closed/wall/r_wall, +/area/medical/virology) +"aff" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"afg" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/table, +/obj/machinery/computer/med_data/laptop, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) +"afh" = ( +/obj/structure/flora/ausbushes/lavendergrass, +/obj/structure/flora/ausbushes/sparsegrass, +/obj/structure/flora/ausbushes/ywflowers, +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/palebush, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/space/nearstation) +"afi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/sign/warning/vacuum/external{ + pixel_x = 32 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard/fore) +"afj" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/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/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/security/warden) +"afk" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/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/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/security/warden) +"afl" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/security/warden) +"afm" = ( +/obj/structure/sign/warning/vacuum/external, +/turf/closed/wall, +/area/maintenance/port/aft) +"afn" = ( +/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/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/warden) +"afo" = ( +/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/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Gas to Chamber" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"afp" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/fore) +"afq" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"afr" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/decal/cleanable/dirt, +/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" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"afs" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/item/folder/red, +/obj/machinery/door/window/brigdoor/northleft{ + dir = 2; + name = "Brig Control Desk"; + req_access_txt = "3" + }, +/turf/open/floor/plating, +/area/security/warden) +"aft" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/security/warden) +"afu" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"afv" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/fore) +"afw" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/chair/office/light{ + dir = 1; + pixel_y = 3 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"afx" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/fore) +"afy" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/start/scientist, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"afz" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall, +/area/maintenance/port/aft) +"afA" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Gas to Chamber" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"afB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/aft) +"afC" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/security/warden) +"afD" = ( +/turf/closed/wall, +/area/crew_quarters/heads/cmo) +"afE" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/security/warden) +"afF" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"afG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"afH" = ( +/obj/structure/table, +/obj/item/storage/toolbox/emergency, +/obj/item/taperecorder, +/obj/effect/turf_decal/bot, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"afI" = ( +/obj/structure/flora/rock/pile, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/space/nearstation) +"afJ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard) +"afK" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/table, +/obj/item/stack/sheet/metal/ten, +/obj/item/stack/cable_coil, +/obj/item/storage/backpack/duffelbag/sec/surgery{ + pixel_y = 5 + }, +/obj/item/wirecutters, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) +"afL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/sign/warning/xeno_mining{ + pixel_x = -32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"afM" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/machinery/camera{ + c_tag = "Xenobiology Labs"; + dir = 4; + name = "xenobiology camera"; + network = list("ss13","rd","xeno") + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"afN" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"afO" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/space/nearstation) +"afP" = ( +/obj/machinery/computer/message_monitor, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"afQ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel/dark, +/area/library) +"afR" = ( +/obj/structure/closet/secure_closet/evidence, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"afS" = ( +/obj/structure/closet/secure_closet/evidence, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"afT" = ( +/obj/structure/table, +/obj/effect/turf_decal/bot, +/obj/item/folder/white{ + pixel_x = 6 + }, +/obj/item/storage/firstaid/regular, +/obj/machinery/door/window/northleft{ + name = "Emergency Storage"; + req_access_txt = "19" + }, +/obj/machinery/camera{ + c_tag = "Bridge Emergency Supplies"; + dir = 1; + name = "command camera" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"afU" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"afV" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/science/xenobiology"; + dir = 4; + name = "Xenobiology APC"; + pixel_x = 26 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-10" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"afW" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"afX" = ( +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard/fore) +"afY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/item/flashlight/lantern, +/obj/structure/sign/poster/official/bless_this_spess{ + pixel_y = 32 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"afZ" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/decal/cleanable/dirt, +/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/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"aga" = ( +/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/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"agb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"agc" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen, +/obj/effect/turf_decal/bot, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"agd" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"age" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "AI Chamber"; + req_access_txt = "16" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "AI Chamber entrance shutters"; + name = "AI Chamber Lockdown Shutter" + }, +/obj/machinery/flasher{ + id = "AI"; + pixel_x = -26; + pixel_y = 3 + }, +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1447; + listening = 0; + name = "Station Intercom (AI Private)"; + pixel_x = 28 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"agf" = ( +/obj/machinery/camera{ + c_tag = "Xenobiology Euthanization Chamber"; + name = "xenobiology camera"; + network = list("ss13","rd","xeno") + }, +/turf/open/floor/circuit/telecomms, +/area/science/xenobiology) +"agg" = ( +/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/effect/decal/cleanable/dirt, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"agh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ + external_pressure_bound = 120; + name = "server vent" + }, +/turf/open/floor/circuit/telecomms, +/area/science/xenobiology) +"agi" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"agj" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/heads/cmo) +"agk" = ( +/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 = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/heads/cmo) +"agl" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/cmo) +"agm" = ( +/obj/machinery/smartfridge/chemistry/virology/preloaded, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/virology) +"agn" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/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/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/fore) +"ago" = ( +/turf/closed/wall, +/area/hallway/primary/fore) +"agp" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/emergency{ + pixel_y = 5 + }, +/obj/item/stack/cable_coil, +/obj/item/wirecutters, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 28 + }, +/obj/machinery/camera{ + c_tag = "Recreation VR Sleepers"; + name = "recreation camera" + }, +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"agq" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/window/brigdoor/northright{ + id = "Cell 6"; + name = "Cell 6"; + req_access_txt = "1" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"agr" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"ags" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/window/brigdoor/northright{ + id = "Cell 5"; + name = "Cell 5"; + req_access_txt = "1" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"agt" = ( +/turf/closed/wall/rust, +/area/space/nearstation) +"agu" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"agv" = ( +/obj/machinery/atmospherics/components/unary/tank/air, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/structure/sign/warning/nosmoking{ + pixel_y = 30 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"agw" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/emcloset, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/maintenance/starboard) +"agx" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"agy" = ( +/obj/structure/fans/tiny/invisible, +/turf/open/space/basic, +/area/space) +"agz" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/door/window/southleft{ + dir = 1; + name = "Maximum Security Test Chamber"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"agA" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/item/tank/internals/oxygen/red, +/obj/item/clothing/mask/breath, +/turf/open/floor/plating, +/area/maintenance/fore) +"agB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard/fore) +"agC" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet, +/obj/item/cardboard_cutout{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/cardboard_cutout, +/turf/open/floor/plating, +/area/maintenance/fore) +"agD" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/decal/cleanable/dirt, +/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" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/fore) +"agE" = ( +/obj/structure/grille/broken, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"agF" = ( +/obj/structure/grille, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"agG" = ( +/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 + }, +/obj/structure/fans/tiny/invisible, +/turf/open/space/basic, +/area/space) +"agH" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Chief Medical Officer's Office"; + req_access_txt = "40" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/cmo) +"agI" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/heads/cmo) +"agJ" = ( +/obj/structure/flora/grass/jungle/b, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/space/nearstation) +"agK" = ( +/obj/structure/flora/ausbushes/palebush, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/sign/warning/electricshock{ + pixel_y = -32 + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/space/nearstation) +"agL" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/landmark/start/chief_medical_officer, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/heads/cmo) +"agM" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4; + external_pressure_bound = 140; + name = "server vent"; + pressure_checks = 0 + }, +/turf/open/floor/circuit/telecomms, +/area/science/xenobiology) +"agN" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/turf/closed/wall, +/area/engine/break_room) +"agO" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/rust, +/area/crew_quarters/heads/hos) +"agP" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/main) +"agQ" = ( +/obj/machinery/atmospherics/pipe/manifold/general/hidden, +/turf/open/floor/circuit/telecomms, +/area/science/xenobiology) +"agR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/medical/virology"; + dir = 1; + name = "Virology APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/virology) +"agS" = ( +/turf/closed/wall, +/area/security/main) +"agT" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"agU" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/security/main) +"agV" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/security/warden) +"agW" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "Bridge Blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"agX" = ( +/turf/closed/wall/r_wall, +/area/security/warden) +"agY" = ( +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"agZ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/hatch{ + name = "Upload Access"; + req_one_access_txt = "16" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aha" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/fore) +"ahb" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "justiceshutter"; + name = "Justice Shutter" + }, +/turf/open/floor/plating, +/area/security/execution/education) +"ahc" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "cmoprivacy"; + name = "Office Privacy Shutters" + }, +/turf/open/floor/plating, +/area/medical/storage) +"ahd" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/table, +/obj/item/clipboard, +/obj/item/folder/red, +/obj/item/restraints/handcuffs, +/obj/item/melee/baseball_bat{ + desc = "A staple of security force interrogations."; + icon_state = "baseball_bat_metal"; + name = "kneecapper" + }, +/obj/machinery/status_display/ai{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) +"ahe" = ( +/obj/effect/landmark/secequipment, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"ahf" = ( +/obj/effect/landmark/secequipment, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"ahg" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/security/glass{ + name = "Security Office"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"ahh" = ( +/turf/closed/wall/r_wall, +/area/tcommsat/server) +"ahi" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"ahj" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/structure/table, +/obj/machinery/microwave{ + pixel_y = 5 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"ahk" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/security/main) +"ahl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/grille/broken, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/fore) +"ahm" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "Bridge Blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"ahn" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/security/warden) +"aho" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/machinery/camera{ + c_tag = "Xenobiology Closet"; + dir = 1; + name = "xenobiology camera"; + network = list("ss13","rd","xeno") + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"ahp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"ahq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/light/small, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"ahr" = ( +/obj/machinery/computer/crew{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/button/door{ + id = "brigcelldoor"; + name = "Cell Blast Door Toggle"; + pixel_x = -24; + pixel_y = -6 + }, +/obj/machinery/button/door{ + id = "brigfrontdoor"; + name = "Front Blast Door Toggle"; + pixel_x = -24; + pixel_y = 6 + }, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + name = "Security RC"; + pixel_x = -30; + pixel_y = -30 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"ahs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"aht" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"ahu" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/security/warden) +"ahv" = ( +/obj/machinery/door/poddoor/preopen{ + id = "transittube"; + name = "Transit Tube Blast door" + }, +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/bridge) +"ahw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"ahx" = ( +/obj/structure/sign/poster/official/random, +/turf/closed/wall, +/area/hallway/primary/fore) +"ahy" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Transit Access"; + req_access_txt = "19" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"ahz" = ( +/obj/machinery/door/airlock/maintenance/external{ + name = "construction zone"; + req_access_txt = "12" + }, +/turf/open/floor/plasteel/dark, +/area/construction/mining/aux_base) +"ahA" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"ahB" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"ahC" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/safe{ + pixel_x = 3 + }, +/obj/item/book{ + desc = "An undeniably handy book."; + icon_state = "bookknock"; + name = "A Simpleton's Guide to Safe-cracking with Stethoscopes" + }, +/obj/item/stack/spacecash/c500{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/stack/spacecash/c1000, +/obj/item/gun/ballistic/automatic/pistol/deagle/gold, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/nuke_storage) +"ahD" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"ahE" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/fore) +"ahF" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 4 + }, +/area/hallway/primary/fore) +"ahG" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel, +/area/maintenance/starboard/fore) +"ahH" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -26 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"ahI" = ( +/obj/structure/grille/broken, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"ahJ" = ( +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken3" + }, +/area/maintenance/port/fore) +"ahK" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/door/window/southleft{ + name = "Maximum Security Test Chamber"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"ahL" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/wood, +/area/maintenance/port/fore) +"ahM" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/maintenance/port/fore) +"ahN" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/status_display/evac{ + pixel_x = 32; + pixel_y = 32 + }, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/wood, +/area/maintenance/port/fore) +"ahO" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"ahP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/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" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ahQ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/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/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ahR" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/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/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"ahS" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/hallway/primary/central) +"ahT" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"ahU" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/security/brig) +"ahV" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/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" + }, +/turf/open/floor/plasteel, +/area/maintenance/starboard/fore) +"ahW" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/sign/poster/contraband/random{ + pixel_x = 32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"ahX" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/security/brig) +"ahY" = ( +/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" + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/turf/open/floor/plasteel, +/area/security/main) +"ahZ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"aia" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/security/main) +"aib" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/main) +"aic" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/security/main) +"aid" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aie" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aif" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/security/main) +"aig" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/chair/office/light{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"aih" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/landmark/blobstart, +/obj/effect/landmark/xeno_spawn, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/central) +"aii" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/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 = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aij" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/ausbushes/ppflowers, +/obj/structure/flora/ausbushes/leafybush, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/turf/open/floor/grass, +/area/chapel/main) +"aik" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/science/server) +"ail" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aim" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"ain" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Evidence Closet"; + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"aio" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/structure/closet/cardboard, +/turf/open/floor/plating, +/area/maintenance/starboard) +"aip" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/effect/spawner/lootdrop/costume, +/obj/effect/spawner/lootdrop/costume, +/turf/open/floor/plating, +/area/maintenance/starboard) +"aiq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"air" = ( +/obj/effect/turf_decal/loading_area, +/obj/structure/barricade/wooden/crude, +/obj/machinery/door/window/southleft{ + name = "cage door" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"ais" = ( +/obj/machinery/door/airlock/medical{ + id_tag = "Shower_2"; + name = "Shower 2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/toilet/restrooms) +"ait" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard/fore) +"aiu" = ( +/obj/item/trash/chips, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/wood, +/area/maintenance/port/fore) +"aiv" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"aiw" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Auxiliary Base Construction"; + dir = 8; + name = "cargo camera"; + network = list("ss13","qm") + }, +/obj/effect/landmark/blobstart, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"aix" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/security/main) +"aiy" = ( +/obj/structure/table/reinforced, +/obj/item/folder/red{ + pixel_x = -2; + pixel_y = -2 + }, +/obj/item/folder/blue{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/lighter, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/security/main) +"aiz" = ( +/obj/machinery/computer/secure_data, +/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, +/area/security/main) +"aiA" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aiB" = ( +/obj/machinery/door/airlock/medical{ + id_tag = "Shower_1"; + name = "Shower 1" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/toilet/restrooms) +"aiC" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/research{ + name = "Xenobiology Lab"; + req_access_txt = "47" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/science/explab) +"aiD" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/security/brig) +"aiE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aiF" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/costume, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/central) +"aiG" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/plasteel, +/area/security/main) +"aiH" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/item/crowbar/red, +/obj/item/radio/headset/headset_sec, +/turf/open/floor/plasteel, +/area/security/main) +"aiI" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/item/storage/fancy/donut_box, +/turf/open/floor/plasteel, +/area/security/main) +"aiJ" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/head/helmet/justice/escape{ + name = "justice helmet" + }, +/turf/open/floor/plasteel, +/area/security/main) +"aiK" = ( +/obj/structure/table/reinforced, +/obj/item/clipboard, +/obj/item/clothing/accessory/armband/deputy, +/obj/item/clothing/accessory/armband/deputy, +/obj/item/clothing/accessory/armband/deputy, +/obj/item/clothing/accessory/armband/deputy, +/obj/item/clothing/accessory/armband/deputy, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/security/main) +"aiL" = ( +/obj/structure/chair{ + dir = 4 + }, +/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/effect/landmark/start/security_officer, +/turf/open/floor/plasteel, +/area/security/main) +"aiM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/structure/closet{ + name = "chapel locker" + }, +/obj/item/clothing/shoes/sandal, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aiN" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/starboard/fore) +"aiO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard/fore) +"aiP" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple, +/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/showroomfloor, +/area/science/xenobiology) +"aiQ" = ( +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"aiR" = ( +/obj/effect/turf_decal/tile/neutral, +/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/hallway/primary/fore) +"aiS" = ( +/obj/machinery/vending/cola/random, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"aiT" = ( +/obj/structure/table, +/obj/item/storage/briefcase{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/secure/briefcase, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"aiU" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/caution/stand_clear, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"aiV" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/box/corners, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"aiW" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"aiX" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/mob/living/simple_animal/bot/secbot/pingsky, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/aisat_interior) +"aiY" = ( +/obj/structure/chair, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 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/plasteel, +/area/security/main) +"aiZ" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/window/brigdoor/northright{ + id = "Cell 2"; + name = "Cell 2"; + req_access_txt = "1" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aja" = ( +/obj/machinery/door/airlock/maintenance{ + name = "morgue maintenance"; + req_access_txt = "6" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"ajb" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/pen, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/item/toy/figure/borg{ + pixel_x = 8; + pixel_y = 6 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"ajc" = ( +/obj/structure/chair, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/landmark/start/security_officer, +/turf/open/floor/plasteel, +/area/security/main) +"ajd" = ( +/turf/closed/wall, +/area/maintenance/port/aft) +"aje" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/wood, +/area/chapel/office) +"ajf" = ( +/obj/structure/table/reinforced, +/obj/item/book/manual/wiki/security_space_law, +/obj/item/taperecorder, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/security/main) +"ajg" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/gibs/limb, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"ajh" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"aji" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/port/fore) +"ajj" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/remains/human, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"ajk" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"ajl" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"ajm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/door/window/eastleft{ + name = "Monkey Pen"; + req_access_txt = "39" + }, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 8; + name = "virology sorting disposal pipe"; + sortType = 27 + }, +/turf/open/floor/plasteel/dark, +/area/medical/virology) +"ajn" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/maintenance/starboard/fore) +"ajo" = ( +/obj/structure/chair/comfy/brown{ + buildstackamount = 0; + color = "#c45c57"; + dir = 8 + }, +/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/effect/landmark/start/head_of_security, +/turf/open/floor/plasteel, +/area/security/main) +"ajp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"ajq" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"ajr" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"ajs" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"ajt" = ( +/turf/closed/wall, +/area/crew_quarters/kitchen) +"aju" = ( +/obj/structure/closet{ + name = "Evidence Closet" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"ajv" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"ajw" = ( +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/taperecorder{ + pixel_x = 4; + pixel_y = 2 + }, +/obj/effect/turf_decal/bot, +/obj/item/pen, +/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/dark, +/area/security/warden) +"ajx" = ( +/turf/closed/wall/r_wall, +/area/maintenance/port/aft) +"ajy" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/wood, +/area/maintenance/port/fore) +"ajz" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/item/restraints/legcuffs/beartrap, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"ajA" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"ajB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = -28 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"ajD" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/structure/chair/office{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"ajE" = ( +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/obj/structure/sign/warning/securearea{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/turf_decal/box/red, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai) +"ajG" = ( +/obj/structure/table/optable, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/surgical_drapes, +/obj/item/clothing/mask/surgical, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"ajH" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/door/airlock/security{ + name = "Council Chamber"; + req_one_access_txt = "38;63" + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"ajI" = ( +/obj/machinery/door/airlock/external{ + name = "Abandoned External Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/fore) +"ajJ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"ajK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/door/airlock/command{ + name = "Council Chamber"; + req_access_txt = "19" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"ajL" = ( +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "Emergency Research Blast Door" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/science/research) +"ajM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/shard, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"ajN" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"ajO" = ( +/obj/structure/rack, +/obj/item/storage/bag/ore, +/obj/item/tank/internals/emergency_oxygen, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/structure/grille/broken, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"ajP" = ( +/obj/machinery/telecomms/processor/preset_two, +/turf/open/floor/circuit/green/telecomms/mainframe, +/area/tcommsat/server) +"ajQ" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/item/storage/box/evidence, +/obj/item/taperecorder{ + pixel_x = 5 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"ajR" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/table, +/obj/item/flashlight/lamp, +/turf/open/floor/plasteel/dark, +/area/security/main) +"ajS" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/security/main) +"ajT" = ( +/obj/structure/sign/poster/contraband/random, +/turf/closed/wall, +/area/maintenance/port/aft) +"ajU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery, +/obj/structure/closet/emcloset, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"ajV" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/computer/security{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"ajW" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"ajX" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"ajY" = ( +/obj/machinery/door/airlock/maintenance{ + name = "genetics maintenance"; + req_access_txt = "5; 9; 68" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"ajZ" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"aka" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/security/armory) +"akb" = ( +/obj/machinery/door/poddoor/preopen{ + id = "transittube"; + name = "Transit Tube Blast door" + }, +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/dark, +/area/bridge) +"akc" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) +"akd" = ( +/obj/structure/flora/tree/jungle/small, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/grass, +/area/medical/genetics) +"ake" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel, +/area/maintenance/starboard/fore) +"akf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/sign/poster/contraband/random{ + pixel_x = 32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"akg" = ( +/obj/structure/flora/grass/jungle/b, +/obj/structure/flora/ausbushes/ppflowers, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/grass, +/area/medical/genetics) +"akh" = ( +/obj/structure/sign/departments/security, +/turf/closed/wall, +/area/maintenance/port/aft) +"aki" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/ore_box, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"akj" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"akk" = ( +/obj/structure/plasticflaps/opaque, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=2"; + freq = 1400; + location = "Research Division" + }, +/obj/machinery/door/window/westleft{ + dir = 2; + name = "Research Division Delivery Access"; + req_access_txt = "47" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/science/mixing) +"akm" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ako" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/sink{ + dir = 8; + pixel_x = -12 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"akp" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple, +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/camera{ + c_tag = "Xenobiology Computers"; + dir = 8; + name = "xenobiology camera"; + network = list("ss13","rd","xeno") + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"akq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/port_gen/pacman, +/obj/structure/sign/warning/nosmoking{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/spider/stickyweb, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"akr" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/department/electrical"; + dir = 1; + name = "Electrical Maintenance APC"; + pixel_y = 23 + }, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/obj/structure/spider/stickyweb, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"aks" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/engine/atmos) +"akt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Air to Room" + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"aku" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"akv" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/crew_quarters/locker) +"akw" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/costume, +/obj/structure/sign/poster/contraband/random{ + pixel_x = -32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/central) +"akx" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/hos) +"aky" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/medical/surgery) +"akz" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/hos) +"akA" = ( +/turf/closed/wall/mineral/plastitanium, +/area/maintenance/starboard) +"akB" = ( +/obj/structure/plasticflaps/opaque, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=1"; + dir = 1; + freq = 1400; + location = "Robotics" + }, +/obj/machinery/door/window/eastleft{ + name = "Robotics Delivery Access"; + req_access_txt = "29" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/science/robotics/mechbay) +"akC" = ( +/obj/structure/closet/secure_closet/lethalshots, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"akD" = ( +/obj/machinery/power/smes, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/spider/stickyweb, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"akE" = ( +/turf/open/floor/plating/airless, +/area/solar/port/fore) +"akF" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/medical/surgery) +"akG" = ( +/obj/machinery/flasher/portable, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"akH" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/grunge{ + name = "Chapel Office"; + req_access_txt = "22" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"akI" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"akJ" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/item/trash/popcorn, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/wood, +/area/maintenance/port/fore) +"akK" = ( +/turf/closed/wall, +/area/security/processing) +"akL" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Courtroom"; + req_access_txt = "38" + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"akM" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/central) +"akN" = ( +/obj/machinery/portable_atmospherics/scrubber/huge, +/obj/effect/turf_decal/delivery, +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/atmos) +"akO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/fore) +"akP" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/medical/surgery) +"akQ" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/item/folder/red, +/obj/item/restraints/handcuffs, +/obj/item/assembly/flash/handheld, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/item/key/security, +/obj/item/key/security, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"akR" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"akS" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"akT" = ( +/obj/structure/bed, +/obj/machinery/iv_drip, +/obj/item/bedsheet/medical, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"akU" = ( +/obj/structure/closet/crate/coffin, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"akV" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/mask/gas/sechailer{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/mask/gas/sechailer, +/obj/item/clothing/mask/gas/sechailer{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/flashlight/seclite, +/obj/item/flashlight/seclite, +/obj/item/flashlight/seclite, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"akW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/fore) +"akX" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/box, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/science/xenobiology) +"akY" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/chapel/office) +"akZ" = ( +/obj/structure/closet/crate/coffin, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"ala" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/button/door{ + id = "Abandoned Cell"; + name = "Abandoned Door Lock"; + normaldoorcontrol = 1; + pixel_x = -24; + pixel_y = 8; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/landmark/xeno_spawn, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"alb" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"alc" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"ald" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/table, +/obj/item/book/manual/wiki/detective{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/item/taperecorder, +/obj/item/flashlight/seclite, +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel/dark, +/area/security/detectives_office) +"ale" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fore) +"alf" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/starboard/fore"; + dir = 1; + name = "Starboard Bow Maintenance APC"; + pixel_y = 26 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"alg" = ( +/obj/structure/frame/computer{ + anchored = 1; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"alh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/circuitboard/computer/operating, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"ali" = ( +/obj/machinery/button/door{ + id = "aux_base_shutters"; + name = "Auxiliary Base Shutters Toggle"; + pixel_x = -24; + pixel_y = 6; + req_one_access_txt = "32;47;48" + }, +/obj/structure/girder/displaced, +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"alj" = ( +/obj/machinery/door/poddoor/preopen{ + id = "transittube"; + name = "Transit Tube Blast door" + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/dark, +/area/bridge) +"alk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"all" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/sign/departments/security{ + pixel_x = -32 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"alm" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall, +/area/space/nearstation) +"aln" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard/fore) +"alo" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/heads/hos"; + dir = 1; + name = "Head of Security's Office APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/camera{ + c_tag = "Head of Security's Office" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"alp" = ( +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"alq" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/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/showroomfloor, +/area/science/xenobiology) +"alr" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/chair/office/light{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"als" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/item/stack/cable_coil{ + pixel_y = 8 + }, +/obj/item/stack/rods/ten{ + pixel_y = 4 + }, +/obj/item/stack/sheet/mineral/plasma{ + amount = 10 + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"alt" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"alu" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"alv" = ( +/obj/structure/rack, +/obj/item/clothing/suit/armor/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/suit/armor/riot, +/obj/item/clothing/suit/armor/riot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/clothing/head/helmet/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/head/helmet/riot, +/obj/item/clothing/head/helmet/riot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/shield/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/shield/riot, +/obj/item/shield/riot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"alw" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"alx" = ( +/obj/structure/rack, +/obj/item/gun/energy/e_gun{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/gun/energy/e_gun, +/obj/item/gun/energy/e_gun{ + pixel_x = 3; + pixel_y = -3 + }, +/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/effect/turf_decal/bot, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ai_monitored/security/armory) +"aly" = ( +/obj/structure/rack, +/obj/item/gun/energy/laser{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/gun/energy/laser, +/obj/item/gun/energy/laser{ + pixel_x = 3; + pixel_y = -3 + }, +/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/bot, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ai_monitored/security/armory) +"alz" = ( +/obj/structure/closet/secure_closet/security/sec, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/obj/item/gun/energy/e_gun/advtaser, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"alA" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"alB" = ( +/turf/closed/wall/r_wall, +/area/science/xenobiology) +"alC" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"alD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/clothing/gloves/color/brown, +/obj/item/clothing/under/overalls, +/obj/item/clothing/mask/gas{ + pixel_x = 4; + pixel_y = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"alE" = ( +/obj/structure/rack, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/item/wrench, +/obj/item/crowbar/red, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"alF" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"alG" = ( +/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/structure/sign/departments/security{ + pixel_y = -32 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/box, +/obj/vehicle/ridden/secway, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"alH" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"alI" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/fore) +"alJ" = ( +/obj/machinery/computer/crew{ + dir = 4 + }, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Head of Security's Desk"; + departmentType = 5; + name = "Head of Security RC"; + pixel_x = -30 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/hos) +"alK" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + pixel_x = -5; + pixel_y = 7 + }, +/obj/item/pen{ + pixel_x = 8; + pixel_y = 5 + }, +/obj/item/pen/red{ + pixel_x = 5; + pixel_y = 1 + }, +/obj/item/toy/figure/hos, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"alL" = ( +/obj/structure/table/wood, +/obj/machinery/computer/med_data/laptop, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"alM" = ( +/obj/structure/table/wood, +/obj/item/clipboard, +/obj/item/folder/red, +/obj/item/stamp/denied{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/stamp/hos, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"alN" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/closet/emcloset/anchored, +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"alO" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_x = 32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"alP" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"alQ" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/random{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"alR" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"alS" = ( +/obj/structure/rack, +/obj/item/gun/energy/disabler{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/gun/energy/disabler, +/obj/item/gun/energy/disabler{ + pixel_x = 3; + pixel_y = -3 + }, +/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/bot, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ai_monitored/security/armory) +"alT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"alU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/shard, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"alV" = ( +/turf/closed/wall/r_wall/rust, +/area/ai_monitored/turret_protected/aisat_interior) +"alW" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fore) +"alX" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"alY" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/box, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"alZ" = ( +/obj/machinery/door/airlock/medical{ + id_tag = "Unit_3"; + name = "Unit 3" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/toilet/restrooms) +"ama" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/brig) +"amb" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/space/nearstation) +"amc" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Equipment Room"; + req_access_txt = "1" + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"amd" = ( +/obj/machinery/suit_storage_unit/security, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"ame" = ( +/obj/machinery/computer/prisoner{ + dir = 4 + }, +/obj/machinery/newscaster/security_unit{ + pixel_x = -28 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/hos) +"amf" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"amg" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/start/scientist, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"amh" = ( +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/obj/machinery/power/apc{ + areastring = "/area/tcommsat/computer"; + name = "Telecomms Monitoring APC"; + pixel_y = -24 + }, +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/structure/filingcabinet, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"ami" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Research Division Server Room"; + req_access_txt = "30" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/server) +"amj" = ( +/obj/machinery/announcement_system, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"amk" = ( +/obj/machinery/gateway{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"aml" = ( +/obj/machinery/door/airlock/external{ + name = "Abandoned External Airlock" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/fore) +"amm" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"amn" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"amo" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"amp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/spider/stickyweb, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"amq" = ( +/mob/living/simple_animal/hostile/asteroid/basilisk{ + environment_smash = 0 + }, +/turf/open/floor/plating/asteroid/airless, +/area/space/nearstation) +"amr" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/blood/gibs/limb, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"ams" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/clothing/gloves/color/fyellow{ + pixel_y = 6 + }, +/obj/item/storage/toolbox/electrical, +/obj/structure/spider/stickyweb, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"amt" = ( +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/obj/structure/barricade/wooden/crude, +/obj/machinery/door/window/northleft{ + name = "cage door" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"amu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/port/fore) +"amv" = ( +/obj/structure/flora/ausbushes/palebush, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/space/nearstation) +"amw" = ( +/obj/machinery/vending/security, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"amx" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/fore) +"amz" = ( +/turf/closed/wall/r_wall/rust, +/area/maintenance/port) +"amA" = ( +/turf/closed/wall, +/area/maintenance/port) +"amB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/fore) +"amC" = ( +/obj/machinery/status_display/evac{ + pixel_x = -32; + pixel_y = -32 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"amD" = ( +/obj/machinery/computer/card/minor/hos{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/hos) +"amE" = ( +/obj/machinery/computer/security/hos{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/hos) +"amF" = ( +/obj/machinery/computer/secure_data{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/hos) +"amG" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/photocopier, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"amH" = ( +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = -26 + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = 30 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"amI" = ( +/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/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/camera{ + c_tag = "Security Secways"; + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/box, +/obj/vehicle/ridden/secway, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"amJ" = ( +/obj/item/storage/box/chemimp{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/storage/box/trackimp{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/storage/lockbox/loyalty, +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/light, +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = -30 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"amK" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/heads/hor) +"amL" = ( +/obj/machinery/door/airlock/external{ + name = "Abandoned External Airlock" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"amM" = ( +/obj/structure/rack, +/obj/item/gun/energy/ionrifle{ + pixel_y = 4 + }, +/obj/item/gun/energy/temperature/security, +/obj/item/clothing/suit/armor/laserproof, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"amN" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall/r_wall, +/area/ai_monitored/security/armory) +"amO" = ( +/turf/closed/wall/r_wall, +/area/security/processing) +"amP" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/maintenance/aft) +"amQ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/processing) +"amR" = ( +/turf/closed/wall/rust, +/area/maintenance/port) +"amS" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/landmark/start/security_officer, +/turf/open/floor/plasteel, +/area/security/main) +"amT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/fore) +"amU" = ( +/obj/effect/turf_decal/bot, +/obj/structure/safe{ + pixel_x = 3 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/stack/spacecash/c500{ + pixel_x = -2; + pixel_y = -2 + }, +/obj/item/lazarus_injector, +/obj/effect/decal/cleanable/dirt, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"amV" = ( +/turf/closed/wall, +/area/crew_quarters/heads/hor) +"amW" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"amY" = ( +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 4 + }, +/obj/structure/sign/warning/fire, +/turf/closed/wall, +/area/maintenance/disposal/incinerator) +"amZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/chair/office{ + dir = 8 + }, +/mob/living/simple_animal/hostile/russian, +/turf/open/floor/wood, +/area/maintenance/port) +"ana" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"anb" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/box/lights/mixed{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/storage/belt/janitor, +/obj/item/storage/bag/trash, +/obj/structure/sign/poster/contraband/busty_backdoor_xeno_babes_6{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"anc" = ( +/obj/structure/falsewall{ + name = "suspicious wall" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/fore) +"and" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/cardboard, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"ane" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "atmos"; + name = "Atmospherics Blast Door" + }, +/turf/open/floor/plating, +/area/engine/break_room) +"anf" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/heads/hor) +"ang" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"anh" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/processing) +"ani" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"anj" = ( +/obj/structure/closet/secure_closet/evidence, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"ank" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"anl" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/holopad, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"anm" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"ann" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/landmark/start/assistant, +/obj/structure/chair/office, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"ano" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"anp" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"anq" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/stock_parts/cell/high, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"anr" = ( +/turf/open/floor/plating/airless, +/area/solar/starboard/fore) +"ans" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/fore) +"ant" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/wood, +/area/maintenance/port/fore) +"anu" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/port/fore) +"anv" = ( +/obj/machinery/computer/secure_data{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"anw" = ( +/obj/structure/sign/departments/medbay/alt, +/turf/closed/wall, +/area/security/main) +"anx" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall, +/area/crew_quarters/heads/hor) +"any" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/item/clipboard{ + pixel_x = 4 + }, +/obj/item/stack/spacecash/c50{ + pixel_y = 8 + }, +/obj/item/stack/spacecash/c50, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"anz" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/fore) +"anA" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "hosspace"; + name = "Space Blast door" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/hos) +"anB" = ( +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 9 + }, +/turf/closed/wall, +/area/maintenance/disposal/incinerator) +"anC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/fore) +"anD" = ( +/obj/structure/table, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/clothing/gloves/color/black, +/obj/item/crowbar/red, +/obj/item/flashlight/seclite, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"anE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/fore) +"anF" = ( +/obj/item/storage/box/teargas{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/box/handcuffs, +/obj/item/storage/box/flashbangs{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"anG" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/r_wall, +/area/ai_monitored/security/armory) +"anH" = ( +/turf/closed/wall, +/area/space/nearstation) +"anI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/structure/closet{ + name = "bible locker" + }, +/obj/item/storage/book/bible{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/storage/book/bible, +/obj/item/storage/book/bible{ + pixel_x = -2; + pixel_y = -2 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"anJ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"anK" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/decal/cleanable/dirt, +/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/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard/fore) +"anL" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/table, +/obj/machinery/recharger, +/obj/machinery/camera{ + c_tag = "Brig Prison Access"; + dir = 4 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"anM" = ( +/obj/structure/table/glass, +/obj/item/clothing/gloves/color/latex, +/obj/item/healthanalyzer, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = 5; + pixel_y = -1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"anN" = ( +/obj/machinery/vending/snack/random, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/security/brig"; + dir = 1; + name = "Brig APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"anO" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/central) +"anP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/fore) +"anQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/starboard"; + name = "Starboard Maintenance APC"; + pixel_y = -23 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard) +"anR" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"anS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"anT" = ( +/obj/structure/table/wood, +/obj/item/clipboard, +/obj/item/camera, +/turf/open/floor/wood, +/area/maintenance/starboard/fore) +"anU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"anV" = ( +/obj/item/storage/box/firingpins, +/obj/item/storage/box/firingpins, +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/power/apc{ + areastring = "/area/ai_monitored/security/armory"; + name = "Armoury APC"; + pixel_y = -24 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"anW" = ( +/obj/machinery/door/airlock/maintenance/external{ + name = "mass driver intersection"; + req_access_txt = "12" + }, +/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/maintenance/starboard) +"anX" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"anY" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"anZ" = ( +/obj/structure/sign/warning/docking, +/turf/closed/wall, +/area/maintenance/port/aft) +"aoa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plating, +/area/maintenance/fore) +"aob" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aoc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"aod" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"aoe" = ( +/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/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"aof" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall, +/area/space/nearstation) +"aog" = ( +/obj/effect/landmark/secequipment, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Security Office Lockers" + }, +/obj/structure/noticeboard{ + pixel_y = 30 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"aoh" = ( +/turf/closed/wall, +/area/lawoffice) +"aoi" = ( +/obj/machinery/door/airlock/maintenance/external{ + name = "transit intersection"; + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/sign/warning/vacuum/external{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"aoj" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aok" = ( +/obj/structure/rack, +/obj/item/storage/briefcase{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/storage/briefcase, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/dark, +/area/lawoffice) +"aol" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/easel, +/obj/structure/sign/poster/contraband/random{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"aom" = ( +/obj/structure/table/wood, +/obj/machinery/recharger, +/obj/item/toy/figure/hop{ + pixel_x = -8 + }, +/obj/item/toy/figure/ian{ + pixel_x = 8 + }, +/obj/machinery/newscaster/security_unit{ + pixel_x = -28 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"aon" = ( +/obj/machinery/door/airlock/medical{ + id_tag = "Unit_2"; + name = "Unit 2" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/toilet/restrooms) +"aoo" = ( +/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/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/newscaster{ + pixel_y = 30 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"aop" = ( +/obj/structure/displaycase/captain, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -26 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"aoq" = ( +/obj/machinery/vending/wardrobe/law_wardrobe, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/lawoffice) +"aor" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/book/manual/wiki/security_space_law, +/obj/item/taperecorder{ + pixel_x = 5 + }, +/obj/structure/table, +/obj/item/cartridge/lawyer, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/power/apc{ + areastring = "/area/lawoffice"; + dir = 1; + name = "Law Office APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/dark, +/area/lawoffice) +"aos" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/paper_bin, +/obj/item/pen, +/obj/structure/table, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"aot" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/fore) +"aou" = ( +/obj/effect/decal/cleanable/dirt, +/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" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"aov" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/sign/directions/evac{ + dir = 4; + pixel_y = -24 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 8 + }, +/area/hallway/primary/port) +"aow" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/book/manual/wiki/security_space_law, +/obj/item/taperecorder{ + pixel_x = 5 + }, +/obj/structure/table, +/obj/machinery/newscaster{ + pixel_y = 30 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"aox" = ( +/turf/closed/wall, +/area/maintenance/central) +"aoy" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen, +/obj/item/stamp/law{ + pixel_x = 8; + pixel_y = 6 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/lawoffice) +"aoz" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"aoA" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "lawyer_shutters"; + name = "Law Office Shutters" + }, +/turf/open/floor/plating, +/area/lawoffice) +"aoB" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + pixel_x = -5; + pixel_y = 7 + }, +/obj/item/pen{ + pixel_x = 8; + pixel_y = 5 + }, +/obj/item/pen/red{ + pixel_x = 5; + pixel_y = 1 + }, +/obj/item/toy/figure/lawyer, +/turf/open/floor/carpet, +/area/lawoffice) +"aoC" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard/fore) +"aoD" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall, +/area/tcommsat/computer) +"aoE" = ( +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small, +/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" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"aoF" = ( +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 1 + }, +/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" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"aoG" = ( +/obj/machinery/door/airlock/medical{ + id_tag = "Unit_1"; + name = "Unit 1" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/toilet/restrooms) +"aoI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/start/lawyer, +/turf/open/floor/wood, +/area/lawoffice) +"aoJ" = ( +/obj/effect/decal/cleanable/dirt, +/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/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/maintenance/fore) +"aoK" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/sign/departments/science{ + name = "ROBOTICS"; + pixel_y = 32 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aoL" = ( +/obj/machinery/door/airlock/grunge{ + id_tag = "Cabin_4"; + name = "Cabin 3" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/locker) +"aoM" = ( +/obj/machinery/door/airlock/maintenance/external{ + name = "transit intersection"; + req_access_txt = "12" + }, +/obj/structure/sign/warning/vacuum/external{ + pixel_y = -32 + }, +/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" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"aoN" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/table, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/item/storage/toolbox/mechanical, +/obj/item/multitool, +/obj/machinery/camera{ + c_tag = "Telecomms Monitoring"; + dir = 4; + name = "telecomms camera"; + network = list("ss13","tcomms") + }, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Telecomms Admin"; + departmentType = 5; + name = "Telecomms RC"; + pixel_x = -32 + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"aoO" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"aoP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/wood, +/area/lawoffice) +"aoQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/virology) +"aoR" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-10" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -26 + }, +/turf/open/floor/wood, +/area/lawoffice) +"aoS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/wood, +/area/lawoffice) +"aoT" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"aoU" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/chair/office, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"aoV" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/medical/virology) +"aoW" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aoX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/newscaster{ + pixel_x = 30 + }, +/obj/machinery/camera{ + c_tag = "Law Office"; + dir = 8 + }, +/turf/open/floor/wood, +/area/lawoffice) +"aoY" = ( +/obj/structure/table/wood, +/obj/item/clipboard, +/obj/item/folder/yellow, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"aoZ" = ( +/obj/structure/girder/displaced, +/obj/structure/grille/broken, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"apa" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"apb" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"apc" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"apd" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"ape" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/hop) +"apf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/hop) +"apg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/heads/hop) +"aph" = ( +/obj/structure/chair, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"api" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/twohanded/required/kirbyplants, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"apj" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/obj/structure/chair/stool, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"apk" = ( +/obj/machinery/power/apc{ + areastring = "/area/security/courtroom"; + dir = 4; + name = "Courtroom APC"; + pixel_x = 26; + pixel_y = 3 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"apm" = ( +/obj/structure/table/wood, +/obj/item/folder/blue{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/folder/red, +/obj/item/clothing/glasses/sunglasses/big{ + pixel_x = 4; + pixel_y = 8 + }, +/obj/item/clothing/glasses/sunglasses/big, +/turf/open/floor/carpet, +/area/lawoffice) +"apn" = ( +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/obj/structure/sign/warning/securearea{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/turf_decal/box/red, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai) +"apo" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet{ + name = "science locker" + }, +/obj/item/clothing/under/rank/scientist{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/clothing/suit/toggle/labcoat/science, +/obj/item/clothing/shoes/sneakers/white, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"app" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/light_switch{ + pixel_x = -24; + pixel_y = 6 + }, +/obj/item/assembly/prox_sensor{ + desc = "Used for scanning and alerting when someone enters a certain proximity. This one is slightly shifted to the left."; + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/wallframe/camera, +/obj/item/screwdriver, +/obj/structure/spider/stickyweb, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"apq" = ( +/obj/machinery/power/terminal, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/sign/poster/contraband/missing_gloves{ + pixel_x = 32 + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"apr" = ( +/obj/structure/closet{ + name = "Evidence Closet" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"aps" = ( +/obj/machinery/power/solar_control{ + dir = 4; + id = "aftport"; + name = "Port Quarter Solar Control" + }, +/obj/effect/turf_decal/bot, +/obj/structure/sign/warning/vacuum/external{ + pixel_x = -32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/solars/port/fore) +"apu" = ( +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/obj/structure/chair/office{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/solars/port/fore) +"apv" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/closet/crate/engineering, +/obj/item/hand_tele, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"apw" = ( +/obj/item/twohanded/required/kirbyplants, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/status_display/evac{ + pixel_x = -32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"apx" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/teleport/hub, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"apy" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "Bridge Blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"apz" = ( +/obj/machinery/power/apc{ + areastring = "/area/maintenance/solars/port/fore"; + dir = 4; + name = "Port Bow Solar APC"; + pixel_x = 26 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/camera{ + c_tag = "Port Bow Solar"; + name = "engineering camera"; + network = list("ss13","engine") + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/solars/port/fore) +"apB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"apC" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/costume{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"apD" = ( +/obj/effect/turf_decal/bot, +/obj/structure/table, +/obj/item/storage/belt/utility, +/obj/item/gps{ + gpstag = "TP0" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/teleporter) +"apE" = ( +/obj/structure/chair/comfy/brown{ + buildstackamount = 0; + color = "#c45c57"; + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"apF" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/clothing/neck/tie/red, +/obj/item/clothing/head/bowler{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"apG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/item/reagent_containers/glass/bucket, +/obj/item/mop, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"apH" = ( +/obj/structure/closet/secure_closet/security/sec, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/item/gun/energy/e_gun/advtaser, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"apI" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/cardboard, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/maintenance/fore) +"apJ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"apK" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/rack, +/obj/item/storage/toolbox/emergency, +/obj/item/wrench, +/obj/item/stack/packageWrap, +/obj/item/hand_labeler, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"apL" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/teleporter) +"apM" = ( +/obj/structure/table/wood, +/obj/item/stack/packageWrap, +/obj/item/storage/lockbox/loyalty, +/obj/item/hand_labeler, +/obj/machinery/keycard_auth{ + pixel_y = 24 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"apN" = ( +/obj/structure/bed/dogbed/ian, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/heads/hop"; + dir = 1; + name = "Head of Personnel's Office APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/mob/living/simple_animal/pet/dog/corgi/Ian{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/hop) +"apO" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/bot, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/obj/structure/sign/warning/fire{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"apP" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/storage/fancy/donut_box, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"apQ" = ( +/obj/effect/turf_decal/bot, +/obj/structure/tank_dispenser/oxygen{ + pixel_x = -1; + pixel_y = 2 + }, +/turf/open/floor/plasteel, +/area/teleporter) +"apR" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"apS" = ( +/obj/structure/chair/sofa/left{ + color = "#c45c57"; + dir = 8 + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/starboard/fore) +"apT" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "Bridge Blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"apU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"apV" = ( +/obj/machinery/door/airlock/grunge{ + id_tag = "Cabin_3"; + name = "Cabin 2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/locker) +"apW" = ( +/obj/structure/rack, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/obj/item/circuitboard/machine/telecomms/bus{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/circuitboard/machine/telecomms/broadcaster, +/obj/item/stock_parts/subspace/treatment, +/obj/item/stock_parts/subspace/treatment, +/obj/item/stock_parts/subspace/treatment, +/obj/machinery/camera{ + c_tag = "Telecomms Storage"; + name = "engineering camera"; + network = list("ss13","engine") + }, +/turf/open/floor/plasteel/dark, +/area/storage/tcom) +"apX" = ( +/turf/closed/wall/rust, +/area/maintenance/central) +"apY" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8; + icon_state = "intact" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"apZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "Bridge Blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"aqa" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/fore) +"aqb" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "Bridge Blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"aqc" = ( +/turf/open/floor/plasteel/dark, +/area/bridge) +"aqd" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plasteel/dark, +/area/maintenance/aft) +"aqe" = ( +/obj/machinery/computer/prisoner{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aqf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/radio/intercom{ + pixel_x = -28 + }, +/obj/item/wallframe/apc, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"aqg" = ( +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aqh" = ( +/obj/machinery/computer/atmos_alert{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Bridge"; + departmentType = 5; + name = "Bridge RC"; + pixel_x = 30 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aqi" = ( +/obj/machinery/computer/security{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aqj" = ( +/obj/structure/table, +/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/cell_charger, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/item/stock_parts/cell/high, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aqk" = ( +/obj/machinery/computer/station_alert{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aql" = ( +/obj/structure/cable, +/obj/machinery/computer/monitor{ + dir = 1; + name = "backup power monitoring console" + }, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/noticeboard{ + dir = 1; + pixel_y = -27 + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"aqm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"aqn" = ( +/obj/machinery/power/smes, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/electricshock{ + pixel_y = -32 + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"aqo" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/genetics) +"aqp" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/port/fore) +"aqq" = ( +/obj/machinery/status_display/ai{ + pixel_x = -32 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/item/beacon, +/turf/open/floor/engine, +/area/science/explab) +"aqr" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/solars/port/fore) +"aqs" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"aqt" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/flask/gold{ + pixel_x = 3; + pixel_y = 8 + }, +/obj/item/reagent_containers/food/drinks/bottle/rum{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ + pixel_x = 7; + pixel_y = 4 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"aqu" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/air, +/obj/structure/sign/warning/electricshock{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"aqv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/landmark/start/librarian, +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"aqw" = ( +/obj/machinery/computer/security/mining, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aqx" = ( +/obj/machinery/computer/communications{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aqy" = ( +/obj/machinery/computer/crew{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aqz" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/folder/red, +/obj/item/restraints/handcuffs, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aqA" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/obj/effect/landmark/event_spawn, +/obj/effect/landmark/start/geneticist, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/genetics) +"aqB" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aqC" = ( +/obj/machinery/computer/cargo/request, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aqD" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/radio/intercom{ + dir = 8; + freerange = 1; + name = "Station Intercom (Command)"; + pixel_x = 1 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aqE" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/keycard_auth, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aqF" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"aqG" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aqH" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/landmark/start/quartermaster, +/obj/structure/chair/office, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"aqI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/fore) +"aqJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/fore) +"aqK" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/fore) +"aqL" = ( +/obj/machinery/computer/monitor{ + dir = 4; + name = "Bridge Power Monitoring Console" + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aqM" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aqN" = ( +/obj/machinery/computer/med_data{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aqO" = ( +/obj/machinery/computer/shuttle/mining, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aqP" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/dirt, +/obj/item/clipboard, +/obj/item/clothing/mask/fakemoustache, +/obj/item/clothing/mask/cigarette/pipe, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"aqQ" = ( +/obj/effect/turf_decal/tile/neutral, +/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/bridge) +"aqR" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/item/folder/blue, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hop"; + name = "Privacy Shutters" + }, +/obj/machinery/door/window/brigdoor{ + base_state = "rightsecure"; + dir = 1; + icon_state = "rightsecure"; + name = "Head of Personnel's Desk"; + req_access_txt = "57" + }, +/obj/machinery/door/window/southright{ + name = "Reception Desk" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"aqS" = ( +/obj/machinery/computer/secure_data{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/status_display/evac{ + pixel_x = -32; + pixel_y = 32 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aqT" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/fore) +"aqU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/fore) +"aqV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"aqW" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/fore) +"aqX" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/ore_silo, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/security/nuke_storage) +"aqY" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aqZ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/fore) +"ara" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/window/northright{ + name = "Emergency Storage"; + req_access_txt = "19" + }, +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/plasteel/dark, +/area/bridge) +"arb" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/decal/cleanable/dirt, +/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/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/fore) +"arc" = ( +/obj/machinery/rnd/destructive_analyzer, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/lab) +"ard" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/item/storage/toolbox/emergency, +/obj/item/crowbar/red, +/obj/item/flashlight, +/obj/item/flashlight, +/obj/structure/fireaxecabinet{ + pixel_y = -30 + }, +/obj/machinery/door/window/northright{ + name = "Emergency Storage"; + req_access_txt = "19" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"are" = ( +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/turf/open/floor/plating, +/area/chapel/office) +"arf" = ( +/obj/machinery/door/airlock/grunge{ + id_tag = "Cabin_2"; + name = "Cabin 1" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/locker) +"arg" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"arh" = ( +/obj/structure/table/wood, +/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/security/courtroom) +"ari" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/vending/wardrobe/chap_wardrobe, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"arj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Cryosleepers" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/locker) +"ark" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"arl" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"arm" = ( +/obj/structure/table/wood/fancy, +/obj/item/storage/crayons, +/obj/item/storage/fancy/candle_box{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/storage/fancy/candle_box{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/obj/machinery/camera{ + c_tag = "Chapel Office"; + name = "chapel camera" + }, +/turf/open/floor/wood, +/area/chapel/office) +"arn" = ( +/turf/closed/wall/r_wall, +/area/security/courtroom) +"aro" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/chapel/office) +"arp" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"arq" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Aft Hallway Security Doors"; + dir = 4; + name = "aft camera" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"arr" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/plasteel/dark, +/area/security/detectives_office) +"ars" = ( +/obj/structure/flora/ausbushes/palebush, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/fore) +"art" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/maintenance/starboard/fore) +"aru" = ( +/obj/machinery/computer/card{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Captain's Desk"; + departmentType = 5; + name = "Captain RC"; + pixel_y = -30 + }, +/obj/machinery/keycard_auth{ + pixel_x = -24; + pixel_y = -8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/captain) +"arv" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"arw" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high, +/obj/machinery/camera{ + c_tag = "Teleporter Access"; + dir = 4; + name = "command camera" + }, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"arx" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"ary" = ( +/obj/machinery/door/poddoor/preopen{ + id = "Xenolab"; + name = "Containment Chamber Blast Door" + }, +/obj/structure/sign/warning/electricshock{ + pixel_x = -32 + }, +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/door/firedoor, +/turf/open/floor/engine, +/area/science/xenobiology) +"arz" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"arA" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/central) +"arB" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/security/courtroom) +"arC" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge"; + req_access_txt = "19" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plasteel/dark, +/area/bridge) +"arD" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"arE" = ( +/obj/structure/table, +/obj/item/clipboard, +/obj/item/stock_parts/subspace/transmitter, +/obj/item/stock_parts/subspace/transmitter, +/obj/item/stock_parts/subspace/amplifier, +/obj/item/stock_parts/subspace/amplifier, +/obj/item/stock_parts/subspace/amplifier, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/power/apc{ + areastring = "/area/storage/tcom"; + dir = 8; + name = "Telecomms Storage APC"; + pixel_x = -26 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/dark, +/area/storage/tcom) +"arF" = ( +/obj/machinery/computer/communications{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/sign/plaques/golden/captain{ + pixel_y = -32 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/captain) +"arG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/storage/tcom) +"arH" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/stock_parts/subspace/filter, +/obj/item/stock_parts/subspace/filter, +/obj/item/stock_parts/subspace/filter, +/obj/item/stock_parts/subspace/filter, +/obj/item/stock_parts/subspace/filter, +/obj/item/stock_parts/subspace/analyzer{ + desc = "A sophisticated analyzer capable of analyzing cryptic subspace wavelengths. Shifted slightly right."; + pixel_x = 6; + pixel_y = 4 + }, +/obj/item/stock_parts/subspace/analyzer{ + desc = "A sophisticated analyzer capable of analyzing cryptic subspace wavelengths. Shifted slightly right."; + pixel_x = 6; + pixel_y = 4 + }, +/obj/item/stock_parts/subspace/analyzer{ + desc = "A sophisticated analyzer capable of analyzing cryptic subspace wavelengths. Shifted slightly right."; + pixel_x = 6; + pixel_y = 4 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/storage/tcom) +"arI" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 4; + name = "xenobiology sorting disposal pipe"; + sortType = 28 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"arJ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"arK" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"arL" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"arM" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/camera{ + c_tag = "Xenobiology Entrance"; + dir = 1; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"arN" = ( +/obj/machinery/computer/shuttle/labor, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/item/radio/intercom{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"arO" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/storage/box/PDAs{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/storage/box/ids, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"arP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/grille/broken, +/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" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"arQ" = ( +/obj/machinery/light/small, +/obj/item/stack/cable_coil, +/obj/structure/sign/warning/xeno_mining{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/landmark/xeno_spawn, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/solars/port/fore) +"arR" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"arS" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/solars/port/fore) +"arT" = ( +/obj/machinery/power/smes, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/solars/port/fore) +"arU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/fore) +"arV" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/item/storage/fancy/cigarettes/cigars/havana{ + pixel_y = 5 + }, +/obj/item/crowbar/red, +/obj/item/lighter{ + pixel_x = -8; + pixel_y = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/item/storage/secure/safe{ + pixel_x = 34 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/captain) +"arW" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/bridge) +"arX" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/bridge) +"arY" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/bridge) +"arZ" = ( +/obj/machinery/vending/medical, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/turf/open/floor/plasteel/dark, +/area/medical/virology) +"asa" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"asb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/fore) +"asc" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/fore) +"asd" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/bridge) +"ase" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/storage/fancy/candle_box, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"asf" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/aisat/foyer) +"asg" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"ash" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"asi" = ( +/turf/closed/wall/r_wall, +/area/medical/morgue) +"asj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/fore) +"ask" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"asl" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"asm" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"asn" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"aso" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/door/airlock/medical/glass{ + id_tag = "CloningDoor"; + name = "Cloning Lab"; + req_access_txt = "5;68" + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/medical/genetics/cloning) +"asp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"asq" = ( +/obj/machinery/vending/snack/random, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"asr" = ( +/obj/machinery/mass_driver{ + dir = 1; + id = "chapelgun" + }, +/obj/item/gps, +/obj/structure/sign/warning/vacuum/external{ + pixel_x = -32 + }, +/turf/open/floor/plating, +/area/chapel/office) +"ass" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "Bridge Blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"ast" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"asu" = ( +/obj/structure/chair{ + name = "Judge" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/noticeboard{ + pixel_y = 28 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"asv" = ( +/obj/structure/closet/secure_closet/security/sec, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/item/gun/energy/e_gun/advtaser, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"asw" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/chair/stool, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"asx" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/captain) +"asy" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge"; + req_access_txt = "19" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plasteel/dark, +/area/bridge) +"asz" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/door/window{ + dir = 8; + name = "Mass Driver"; + req_access_txt = "22" + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/button/massdriver{ + id = "chapelgun"; + name = "Chapel Mass Driver"; + pixel_x = -24; + pixel_y = -24 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"asA" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/hop) +"asB" = ( +/obj/structure/chair/comfy/brown{ + color = "#596479"; + dir = 1 + }, +/obj/effect/landmark/start/captain, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"asC" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"asD" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/closet/crate, +/obj/item/storage/crayons, +/obj/item/hand_labeler, +/turf/open/floor/plating, +/area/maintenance/fore) +"asE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/hop) +"asF" = ( +/turf/closed/wall, +/area/security/courtroom) +"asH" = ( +/obj/structure/grille/broken, +/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/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/fore) +"asI" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/table, +/obj/item/clipboard, +/obj/item/folder/yellow, +/obj/item/destTagger, +/obj/item/destTagger, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/sorting) +"asJ" = ( +/obj/structure/chair/comfy/brown, +/obj/effect/landmark/start/detective, +/turf/open/floor/carpet, +/area/security/detectives_office) +"asK" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/computer/teleporter{ + dir = 8 + }, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"asL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"asM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/chapel/main) +"asN" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/chair/stool, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"asO" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall, +/area/security/prison) +"asP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"asQ" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/chair/stool, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"asR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/structure/closet/cardboard, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"asS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/starboard) +"asT" = ( +/obj/machinery/power/apc{ + areastring = "/area/maintenance/solars/starboard/fore"; + dir = 1; + name = "Starboard Bow Solar APC"; + pixel_y = 26 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/obj/item/stack/cable_coil, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/solars/starboard/fore) +"asU" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/filingcabinet/chestdrawer, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hop) +"asV" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"asW" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/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/dark, +/area/security/courtroom) +"asX" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"asY" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/filingcabinet/chestdrawer, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"asZ" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"ata" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/flasher{ + id = "hopflash"; + name = "Crowd Pacifier"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hop) +"atb" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/solars/starboard/fore) +"atc" = ( +/obj/structure/chair, +/turf/open/floor/plasteel, +/area/security/courtroom) +"atd" = ( +/obj/structure/table/wood, +/obj/item/book/manual/wiki/security_space_law, +/obj/item/hand_tele, +/obj/structure/mirror{ + pixel_x = -26 + }, +/obj/machinery/light, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"ate" = ( +/obj/machinery/power/solar_control{ + dir = 8; + id = "forestarboard"; + name = "Starboard Bow Solar Control" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/sign/warning/vacuum/external{ + pixel_x = 32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/solars/starboard/fore) +"atf" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/security/courtroom) +"atg" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/photocopier, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hop) +"ath" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/hop) +"ati" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/item/tank/internals/oxygen/red, +/obj/item/stack/packageWrap, +/obj/item/clothing/mask/gas, +/turf/open/floor/plating, +/area/maintenance/fore) +"atj" = ( +/turf/closed/wall, +/area/bridge) +"atk" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"atl" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"atm" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/gloves/color/latex, +/obj/item/storage/box/disks{ + pixel_y = 5 + }, +/obj/item/radio/headset/headset_medsci, +/obj/structure/noticeboard{ + pixel_y = 30 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/medical/genetics) +"ato" = ( +/obj/item/storage/box/rxglasses{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/box/bodybags, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/table, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/medical/genetics"; + dir = 1; + name = "Genetics Lab APC"; + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/medical/genetics) +"atp" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/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/item/radio/intercom{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"atq" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "telelab"; + name = "Test Chamber Blast Door" + }, +/turf/open/floor/plating, +/area/science/robotics/lab) +"atr" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 6 + }, +/obj/item/pen/fourcolor, +/obj/item/stamp/hop{ + pixel_x = 8; + pixel_y = 6 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hop) +"ats" = ( +/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/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/landmark/start/cargo_technician, +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"att" = ( +/obj/machinery/modular_computer/console/preset/engineering{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/status_display/evac{ + pixel_x = 32; + pixel_y = 32 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"atu" = ( +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hopqueue"; + name = "Queue Shutters" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"atv" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hop"; + name = "Privacy Shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/heads/hop) +"atw" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/machinery/camera{ + c_tag = "Chapel"; + dir = 4; + name = "chapel camera" + }, +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/chapel/main) +"atx" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "Bridge Blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"aty" = ( +/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/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/sorting/mail{ + dir = 4; + name = "robotics sorting disposal pipe"; + sortType = 14 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"atz" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/chair/comfy/brown{ + buildstackamount = 0; + color = "#c45c57"; + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = -32 + }, +/obj/effect/landmark/start/chaplain, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"atB" = ( +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/obj/effect/turf_decal/box/red, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai) +"atC" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/hop) +"atD" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/item/healthanalyzer, +/obj/item/hand_labeler, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"atE" = ( +/obj/effect/turf_decal/loading_area, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hopqueue"; + name = "Queue Shutters" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"atF" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/plaque{ + icon_state = "L14" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"atG" = ( +/obj/structure/sign/poster/official/pda_ad, +/turf/closed/wall/rust, +/area/crew_quarters/heads/hop) +"atH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"atI" = ( +/obj/machinery/computer/card{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "hopqueue"; + name = "Queue Shutters Toggle"; + pixel_x = 24; + pixel_y = -6; + req_access_txt = "57" + }, +/obj/machinery/button/door{ + id = "hop"; + name = "Privacy Shutters Toggle"; + pixel_x = 24; + pixel_y = 6; + req_access_txt = "57" + }, +/obj/machinery/button/flasher{ + id = "hopflash"; + pixel_x = 36; + pixel_y = 6 + }, +/obj/machinery/light_switch{ + pixel_x = 36; + pixel_y = -6 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hop) +"atJ" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"atK" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall/r_wall, +/area/medical/virology) +"atL" = ( +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/box/bodybags{ + pixel_y = 4 + }, +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"atM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"atN" = ( +/obj/effect/decal/cleanable/dirt, +/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" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"atO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"atQ" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"atR" = ( +/obj/structure/flora/rock/pile, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/fore) +"atS" = ( +/obj/machinery/telecomms/receiver/preset_right, +/obj/machinery/camera{ + c_tag = "Telecomms Server SMES"; + name = "telecomms camera"; + network = list("ss13","tcomms") + }, +/turf/open/floor/circuit/green/telecomms/mainframe, +/area/tcommsat/server) +"atT" = ( +/turf/closed/wall/r_wall, +/area/bridge) +"atU" = ( +/obj/machinery/telecomms/receiver/preset_left, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/circuit/green/telecomms/mainframe, +/area/tcommsat/server) +"atV" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-05" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/fore) +"atW" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/mob/living/simple_animal/hostile/retaliate/ghost, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/maintenance/starboard/fore) +"atX" = ( +/obj/structure/table/wood, +/obj/machinery/newscaster{ + pixel_x = 30 + }, +/obj/item/paper_bin{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/pen, +/turf/open/floor/wood, +/area/maintenance/starboard/fore) +"atY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard/fore) +"atZ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard/fore) +"aua" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aub" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/explab) +"auc" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/bridge) +"aud" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/central) +"aue" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/pen, +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + name = "Science RC"; + pixel_y = 30; + receive_ore_updates = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/explab) +"auf" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/effect/turf_decal/delivery, +/obj/machinery/power/apc{ + areastring = "/area/science/explab"; + dir = 1; + name = "Experimentation Lab APC"; + pixel_y = 26 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/explab) +"aug" = ( +/obj/machinery/door/firedoor, +/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/airlock/command{ + name = "Teleport Access"; + req_one_access_txt = "17;19" + }, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"auh" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/junction/flip, +/turf/open/floor/plasteel/showroomfloor, +/area/science/explab) +"aui" = ( +/turf/closed/wall/r_wall, +/area/teleporter) +"auj" = ( +/obj/machinery/door/airlock/maintenance{ + name = "hydroponics maintenance"; + req_access_txt = "35" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/central) +"auk" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/explab) +"aul" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/wood, +/area/lawoffice) +"aum" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light_switch{ + pixel_x = -24; + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"aun" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/shieldwallgen, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"auo" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"auq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"aur" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Head of Personnel's Office"; + req_access_txt = "57" + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"aus" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/teleporter) +"aut" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/fore) +"auu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Connector to Science" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"auv" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/meter, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"auw" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall, +/area/bridge) +"aux" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"auy" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall, +/area/bridge) +"auz" = ( +/obj/structure/sign/warning/vacuum/external, +/turf/closed/wall/rust, +/area/maintenance/starboard) +"auA" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/solars/starboard/fore) +"auB" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/solars/starboard/fore) +"auC" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall, +/area/maintenance/starboard/fore) +"auD" = ( +/obj/item/radio{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/radio{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/item/radio, +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/obj/machinery/camera{ + c_tag = "Security Equipment Room"; + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"auE" = ( +/turf/closed/wall, +/area/storage/primary) +"auG" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hop"; + name = "Privacy Shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/heads/hop) +"auH" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/maintenance/fore) +"auI" = ( +/obj/structure/table/wood, +/obj/item/gavelblock, +/turf/open/floor/plasteel, +/area/security/courtroom) +"auJ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/light/small, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/solars/starboard/fore) +"auK" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"auL" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plasteel/dark, +/area/science/mixing) +"auM" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"auN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/starboard/fore) +"auO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/fore) +"auP" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/security/courtroom) +"auQ" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"auR" = ( +/obj/structure/flora/junglebush, +/obj/structure/flora/ausbushes/brflowers, +/obj/structure/flora/ausbushes/sunnybush, +/obj/item/reagent_containers/food/snacks/grown/banana, +/obj/machinery/light{ + dir = 8 + }, +/mob/living/carbon/monkey, +/turf/open/floor/grass, +/area/medical/genetics) +"auS" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/break_room) +"auT" = ( +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"auU" = ( +/obj/machinery/modular_computer/console/preset/command, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"auV" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/junction/yjunction{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"auW" = ( +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/security{ + name = "Prison Wing"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"auX" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"auY" = ( +/obj/machinery/vending/cart{ + req_access_txt = "57" + }, +/obj/structure/noticeboard{ + pixel_y = 30 + }, +/obj/machinery/camera{ + c_tag = "Head of Personnel's Office"; + name = "command camera" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/hop) +"ava" = ( +/turf/closed/wall/rust, +/area/maintenance/starboard) +"avb" = ( +/obj/machinery/door/airlock/maintenance{ + name = "command maintenance"; + req_access_txt = "17;19" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/central) +"avc" = ( +/obj/structure/sign/departments/security, +/turf/closed/wall, +/area/security/courtroom) +"avd" = ( +/obj/structure/table/wood, +/obj/item/clipboard, +/obj/item/folder/red{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/folder/blue, +/obj/item/melee/chainofcommand, +/obj/item/toy/figure/captain, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"ave" = ( +/obj/structure/table/wood, +/obj/machinery/computer/security/wooden_tv, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"avf" = ( +/obj/structure/flora/junglebush/b, +/obj/structure/flora/ausbushes/ppflowers, +/turf/open/floor/grass, +/area/medical/genetics) +"avg" = ( +/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/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/item/radio/intercom{ + pixel_x = -28; + pixel_y = 22 + }, +/obj/effect/landmark/start/geneticist, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/genetics) +"avh" = ( +/obj/structure/chair/comfy/brown{ + buildstackamount = 0; + color = "#c45c57"; + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"avi" = ( +/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 = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/newscaster{ + pixel_x = 30; + pixel_y = 32 + }, +/obj/effect/landmark/start/geneticist, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/genetics) +"avj" = ( +/obj/structure/table/wood, +/obj/item/storage/fancy/donut_box, +/obj/item/card/id/captains_spare, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"avk" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"avl" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/item/clothing/suit/suspenders, +/obj/item/clothing/head/papersack/smiley, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"avm" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"avn" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen, +/obj/machinery/status_display/evac{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"avo" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/plaque{ + icon_state = "L10" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"avp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"avq" = ( +/obj/structure/sign/warning/nosmoking, +/turf/closed/wall, +/area/maintenance/aft) +"avr" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/box/corners, +/turf/open/floor/plasteel, +/area/security/courtroom) +"avs" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/landmark/xeno_spawn, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"avt" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger{ + pixel_x = -7 + }, +/obj/machinery/recharger{ + pixel_x = 7 + }, +/obj/effect/turf_decal/bot, +/obj/item/radio/intercom{ + pixel_x = 32; + pixel_y = 22 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "sidearmory"; + name = "Armoury Shutter Toggle"; + pixel_x = -8; + pixel_y = 24; + req_access_txt = "3" + }, +/obj/machinery/button/door{ + id = "prisonblast"; + name = "Prison Lockdown"; + pixel_x = 8; + pixel_y = 24; + req_one_access_txt = "2" + }, +/obj/item/toy/figure/warden, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"avu" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/power/apc{ + areastring = "/area/medical/morgue"; + dir = 1; + name = "Morgue APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"avv" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/storage/briefcase, +/obj/item/book/manual/wiki/security_space_law, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"avw" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/hallway/primary/fore"; + dir = 1; + name = "Fore Primary Hallway APC"; + pixel_y = 26 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/primary/fore) +"avx" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"avy" = ( +/obj/structure/table/wood, +/obj/item/clipboard, +/obj/item/folder/red, +/turf/open/floor/plasteel, +/area/security/courtroom) +"avz" = ( +/obj/structure/table/wood, +/obj/item/clipboard, +/obj/item/folder/blue, +/turf/open/floor/plasteel, +/area/security/courtroom) +"avA" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/starboard) +"avB" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"avC" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/public/glass{ + name = "Courtroom" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"avD" = ( +/obj/structure/table/wood/fancy, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/reagent_containers/food/drinks/bottle/whiskey{ + pixel_x = 8; + pixel_y = 6 + }, +/obj/item/pen, +/obj/machinery/requests_console{ + department = "Chapel"; + departmentType = 2; + name = "Chapel RC"; + pixel_y = -30 + }, +/turf/open/floor/wood, +/area/chapel/office) +"avE" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/chapel/office) +"avF" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -26 + }, +/obj/machinery/shieldwallgen, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"avG" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/power/apc{ + areastring = "/area/chapel/office"; + name = "Chapel Office APC"; + pixel_y = -25 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"avH" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/item/folder/white, +/obj/item/reagent_containers/hypospray/medipen{ + pixel_y = 5 + }, +/obj/item/reagent_containers/hypospray/medipen, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "emmd"; + name = "Emergency Medical Lockdown Shutters" + }, +/turf/open/floor/plating, +/area/medical/medbay/central) +"avI" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/primary/fore) +"avJ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"avK" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"avL" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/caution, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/camera{ + c_tag = "Crematorium"; + dir = 1; + name = "chapel camera" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"avM" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/computer/secure_data{ + dir = 4 + }, +/obj/machinery/newscaster/security_unit{ + pixel_x = -26 + }, +/obj/machinery/camera{ + c_tag = "Security Office Computers"; + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"avN" = ( +/obj/machinery/holopad, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"avO" = ( +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = -5; + pixel_y = 6 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 5; + pixel_y = -4 + }, +/obj/item/clothing/mask/gas{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/clothing/mask/gas, +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"avP" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/iv_drip, +/obj/effect/turf_decal/bot_white/right, +/turf/open/floor/plasteel/dark, +/area/medical/virology) +"avQ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"avR" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/bridge) +"avS" = ( +/obj/machinery/computer/bounty{ + dir = 4 + }, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Head of Personnel's Desk"; + departmentType = 5; + name = "Head of Personnel RC"; + pixel_x = -30 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"avT" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"avU" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/turf/open/floor/plasteel, +/area/security/courtroom) +"avV" = ( +/obj/machinery/pdapainter, +/obj/structure/sign/poster/official/ian{ + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/hop) +"avW" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/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/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel, +/area/security/courtroom) +"avX" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"avY" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/grunge{ + name = "Crematorium"; + req_access_txt = "22" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"avZ" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/solars/port/fore) +"awa" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"awb" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"awc" = ( +/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/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/fore) +"awd" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Courtroom" + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"awe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/structure/closet/crate, +/obj/item/stack/packageWrap, +/obj/item/storage/box/lights/mixed, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"awf" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/backpack/cultpack{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/clothing/under/color/black, +/obj/structure/closet{ + name = "chapel locker" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"awg" = ( +/obj/structure/chair/office, +/turf/open/floor/plasteel/dark, +/area/bridge) +"awh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fore) +"awi" = ( +/turf/closed/wall/r_wall, +/area/science/mixing) +"awj" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/wood, +/area/crew_quarters/heads/hop) +"awk" = ( +/obj/structure/closet/secure_closet/security/sec, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/item/gun/energy/e_gun/advtaser, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"awl" = ( +/obj/structure/table/wood/fancy, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/flashlight/lantern, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"awm" = ( +/obj/structure/chair/comfy/brown{ + buildstackamount = 0; + color = "#c45c57"; + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/start/head_of_security, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"awn" = ( +/obj/machinery/vending/sustenance, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"awo" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/engine{ + initial_gas_mix = "n2=100;TEMP=80"; + name = "mainframe floor" + }, +/area/tcommsat/server) +"awp" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/machinery/keycard_auth{ + pixel_x = -6; + pixel_y = 24 + }, +/obj/machinery/light_switch{ + pixel_x = 6; + pixel_y = 24 + }, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/mob/living/simple_animal/parrot/Poly, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"awq" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/storage/primary) +"awr" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aws" = ( +/obj/machinery/status_display/ai{ + pixel_x = -32; + pixel_y = 32 + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine{ + initial_gas_mix = "n2=100;TEMP=80"; + name = "mainframe floor" + }, +/area/tcommsat/server) +"awt" = ( +/obj/machinery/atmospherics/pipe/layer_manifold, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"awu" = ( +/turf/closed/wall/r_wall, +/area/engine/atmos) +"awv" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"aww" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge Access"; + req_access_txt = "19" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"awx" = ( +/obj/machinery/computer/apc_control, +/obj/effect/turf_decal/bot, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Chief Engineer's Desk"; + departmentType = 3; + name = "Chief Engineer RC"; + pixel_x = -32 + }, +/obj/machinery/button/door{ + id = "ceprivate"; + name = "Privacy Shutters Toggle"; + pixel_x = -6; + pixel_y = 24; + req_one_access_txt = "56" + }, +/obj/machinery/button/door{ + desc = "A remote control-switch for secure storage."; + id = "Secure Storage"; + name = "Secure Storage Toggle"; + pixel_x = 6; + pixel_y = 24; + req_access_txt = "11" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"awy" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/chief) +"awz" = ( +/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/cartridge/engineering{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/cartridge/engineering{ + pixel_x = 8 + }, +/obj/item/cartridge/atmos{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/folder, +/obj/item/stamp/ce, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"awA" = ( +/obj/structure/table/wood/fancy, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/storage/book/bible{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/item/storage/book/bible{ + pixel_y = 2 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"awB" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine{ + initial_gas_mix = "n2=100;TEMP=80"; + name = "mainframe floor" + }, +/area/tcommsat/server) +"awC" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/stack/sheet/plasteel/fifty{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/stack/sheet/rglass{ + amount = 50; + pixel_x = 2; + pixel_y = -2 + }, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/obj/machinery/camera{ + c_tag = "Engineering Storage"; + dir = 1; + name = "engineering camera"; + network = list("ss13","engine") + }, +/obj/machinery/light_switch{ + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"awD" = ( +/turf/closed/wall, +/area/crew_quarters/fitness/recreation) +"awE" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/gateway{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"awF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + name = "Engineering Checkpoint RC"; + pixel_x = -30 + }, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/machinery/computer/security/telescreen/engine, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/engineering) +"awG" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"awH" = ( +/turf/closed/wall/r_wall, +/area/security/checkpoint/engineering) +"awI" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine{ + initial_gas_mix = "n2=100;TEMP=80"; + name = "mainframe floor" + }, +/area/tcommsat/server) +"awJ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine{ + initial_gas_mix = "n2=100;TEMP=80"; + name = "mainframe floor" + }, +/area/tcommsat/server) +"awK" = ( +/obj/machinery/status_display/ai{ + pixel_x = 32; + pixel_y = 32 + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine{ + initial_gas_mix = "n2=100;TEMP=80"; + name = "mainframe floor" + }, +/area/tcommsat/server) +"awM" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/engine{ + initial_gas_mix = "n2=100;TEMP=80"; + name = "mainframe floor" + }, +/area/tcommsat/server) +"awN" = ( +/turf/closed/wall/r_wall, +/area/engine/break_room) +"awO" = ( +/obj/machinery/computer/card/minor/ce, +/obj/effect/turf_decal/bot, +/obj/machinery/computer/security/telescreen/ce{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"awP" = ( +/obj/machinery/computer/station_alert, +/obj/effect/turf_decal/bot, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/newscaster{ + pixel_y = 30 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"awQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/storage/backpack/satchel/med, +/obj/item/assembly/health, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"awR" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard/fore) +"awS" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall, +/area/security/processing) +"awT" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/clipboard, +/obj/item/reagent_containers/pill/patch/silver_sulf, +/obj/item/reagent_containers/pill/patch/silver_sulf, +/obj/item/clothing/glasses/meson/engine, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"awU" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Research Director's Office"; + req_access_txt = "30" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) +"awW" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall, +/area/engine/break_room) +"awX" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/chief) +"awY" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard/fore) +"axa" = ( +/turf/closed/wall/r_wall, +/area/engine/engineering) +"axb" = ( +/turf/closed/wall, +/area/engine/engineering) +"axc" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/landmark/start/station_engineer, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"axd" = ( +/obj/machinery/atmospherics/components/binary/pump{ + desc = "A pump that moves gas by pressure. Shower not included."; + dir = 8; + name = "Gas to Chamber" + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel/showroomfloor, +/area/science/explab) +"axe" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/computer/atmos_control, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/newscaster{ + pixel_y = 30 + }, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"axf" = ( +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"axg" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/shower{ + dir = 8; + name = "emergency shower" + }, +/obj/structure/mirror{ + pixel_x = 26 + }, +/turf/open/floor/plasteel/dark, +/area/science/explab) +"axh" = ( +/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/folder/blue{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/folder/yellow, +/obj/item/lighter, +/obj/item/clothing/mask/cigarette/cigar/cohiba, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"axi" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/holopad, +/obj/effect/turf_decal/bot_white, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"axj" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "Engineering"; + name = "Engineering Blast Doors" + }, +/turf/open/floor/plating, +/area/engine/break_room) +"axk" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/sign/warning/electricshock{ + pixel_x = -32 + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"axl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard) +"axm" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "Teleport Access"; + req_access_txt = "17;19" + }, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"axn" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Tool Storage" + }, +/turf/open/floor/plasteel/dark, +/area/storage/primary) +"axo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "Distro to Connector" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"axp" = ( +/obj/machinery/rnd/production/circuit_imprinter, +/obj/effect/turf_decal/delivery, +/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, +/area/engine/break_room) +"axq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"axr" = ( +/obj/machinery/power/smes, +/obj/structure/cable, +/obj/machinery/status_display/shuttle{ + pixel_y = -32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"axs" = ( +/obj/machinery/computer/rdconsole/production{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/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, +/area/engine/break_room) +"axt" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Starboard Bow Solar"; + dir = 1; + name = "engineering camera"; + network = list("ss13","engine") + }, +/obj/structure/cable, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/solars/starboard/fore) +"axu" = ( +/obj/machinery/door/airlock/maintenance{ + name = "mech bay maintenance"; + req_access_txt = "29" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/fore) +"axv" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/science/explab) +"axw" = ( +/obj/machinery/modular_computer/console/preset/engineering{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"axx" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/landmark/xeno_spawn, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/sign/warning/xeno_mining{ + pixel_x = 32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/solars/starboard/fore) +"axy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/disposalpipe/sorting/mail{ + dir = 1; + name = "genetics sorting disposal pipe"; + sortType = 23 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"axz" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"axA" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/fernybush, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/grass, +/area/medical/genetics) +"axB" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/tank/internals/air{ + pixel_x = 5 + }, +/obj/item/tank/internals/air{ + pixel_x = -5 + }, +/obj/item/wrench, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/atmos) +"axC" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/ausbushes/fernybush, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/mob/living/carbon/monkey, +/turf/open/floor/grass, +/area/medical/genetics) +"axD" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet{ + name = "skirt closet" + }, +/obj/item/clothing/under/skirt/red{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/clothing/under/skirt/blue, +/obj/item/clothing/under/skirt/black{ + pixel_x = -4; + pixel_y = -4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"axE" = ( +/obj/structure/table, +/obj/effect/turf_decal/bot, +/obj/machinery/recharger, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/heads/chief"; + dir = 4; + name = "Chief Engineer's Office APC"; + pixel_x = 28 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"axF" = ( +/turf/closed/wall, +/area/hallway/primary/aft) +"axG" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/genetics) +"axH" = ( +/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/engine/break_room) +"axI" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/crew_quarters/heads/chief) +"axJ" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/hyper, +/obj/item/stack/cable_coil, +/obj/item/twohanded/rcl/pre_loaded, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"axK" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/genetics) +"axL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard/fore) +"axM" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Engineering"; + name = "Engineering Blast Doors" + }, +/turf/open/floor/plating, +/area/engine/break_room) +"axN" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"axO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/sign/warning/vacuum/external{ + pixel_x = 32; + pixel_y = -32 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"axP" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/stack/sheet/metal/fifty, +/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/glass/fifty, +/obj/item/crowbar, +/obj/item/grenade/chem_grenade/smart_metal_foam{ + pixel_x = 6 + }, +/obj/item/grenade/chem_grenade/smart_metal_foam{ + pixel_x = -2 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"axQ" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/stack/cable_coil{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/item/stack/cable_coil, +/obj/item/electronics/apc, +/obj/item/electronics/apc, +/obj/item/twohanded/rcl/pre_loaded, +/obj/item/twohanded/rcl/pre_loaded, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"axR" = ( +/obj/machinery/door/poddoor/preopen{ + id = "Xenolab"; + name = "Containment Chamber Blast Door" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/door/firedoor, +/turf/open/floor/engine, +/area/science/xenobiology) +"axU" = ( +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"axW" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"axX" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/supermatter) +"axY" = ( +/obj/structure/tank_dispenser, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"axZ" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"aya" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"ayb" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"ayc" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/grunge{ + name = "Morgue"; + req_access_txt = "5" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"ayd" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/landmark/blobstart, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"aye" = ( +/obj/machinery/flasher/portable, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"ayf" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"ayg" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "ceprivate"; + name = "Chief Engineer's Privacy Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/chief) +"ayh" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"ayi" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"ayj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/item/tank/internals/oxygen, +/obj/item/clothing/mask/gas, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/maintenance/starboard) +"ayk" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/engine/break_room) +"ayl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/structure/closet/l3closet/virology, +/turf/open/floor/plating, +/area/maintenance/starboard) +"aym" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"ayn" = ( +/turf/open/floor/engine, +/area/engine/supermatter) +"ayo" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/obj/structure/flora/ausbushes/lavendergrass, +/obj/structure/flora/ausbushes/fernybush, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/fore) +"ayp" = ( +/obj/effect/decal/cleanable/dirt, +/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" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard/fore) +"ayq" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/bridge) +"ayr" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"ays" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"ayt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard/fore) +"ayu" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard/fore) +"ayv" = ( +/obj/effect/turf_decal/box, +/turf/open/floor/engine, +/area/science/xenobiology) +"ayw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/science/explab) +"ayx" = ( +/obj/machinery/computer/rdconsole/experiment{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/explab) +"ayy" = ( +/obj/machinery/door/airlock/external{ + name = "Prison External Airlock"; + req_access_txt = "2" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"ayz" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"ayA" = ( +/obj/machinery/door/airlock/engineering{ + name = "Emergency Storage" + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"ayB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/explab) +"ayC" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/telecomms, +/area/science/server) +"ayD" = ( +/obj/effect/landmark/blobstart, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/airalarm/server{ + dir = 8; + pixel_x = 22 + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/telecomms, +/area/science/server) +"ayE" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"ayF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/fore) +"ayG" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"ayH" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/brflowers, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/turf/open/floor/grass, +/area/medical/genetics) +"ayI" = ( +/obj/item/reagent_containers/food/snacks/grown/banana, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/grass, +/area/medical/genetics) +"ayJ" = ( +/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/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/landmark/start/geneticist, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/genetics) +"ayK" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor{ + id = "Secure Storage"; + name = "Secure Storage" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"ayL" = ( +/obj/machinery/door/poddoor/preopen{ + id = "Xenolab"; + name = "Containment Chamber Blast Door" + }, +/obj/structure/sign/warning/biohazard{ + pixel_x = 32 + }, +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/door/firedoor, +/turf/open/floor/engine, +/area/science/xenobiology) +"ayM" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/genetics) +"ayN" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/genetics) +"ayO" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Docking Hallway" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/sign/directions/evac{ + dir = 4; + pixel_y = 24 + }, +/obj/structure/sign/directions/science{ + dir = 1; + pixel_y = 40 + }, +/obj/structure/sign/directions/supply{ + dir = 1; + pixel_y = 32 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/starboard) +"ayP" = ( +/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 = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/genetics) +"ayQ" = ( +/obj/machinery/power/port_gen/pacman, +/obj/item/stack/sheet/mineral/plasma{ + amount = 5 + }, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -26 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"ayR" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"ayS" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/item/pickaxe, +/obj/item/shovel, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"ayT" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"ayU" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/stack/packageWrap, +/obj/item/crowbar, +/obj/item/hand_labeler, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"ayV" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/obj/machinery/holopad, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/bot, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"ayW" = ( +/obj/machinery/vending/wardrobe/engi_wardrobe, +/obj/effect/turf_decal/bot, +/obj/machinery/camera{ + c_tag = "Engineering Lockers"; + name = "engineering camera"; + network = list("ss13","engine") + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"ayX" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/landmark/start/medical_doctor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"ayY" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/rods/fifty, +/obj/item/stack/rods/fifty, +/obj/item/grenade/chem_grenade/smart_metal_foam, +/obj/item/grenade/chem_grenade/smart_metal_foam, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"ayZ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"aza" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/delivery, +/obj/item/folder/white, +/obj/item/pen, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chemistry_shutters"; + name = "Chemistry Lobby Shutters" + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/window/northleft{ + dir = 2; + name = "Chemistry Desk"; + req_access_txt = "5; 33" + }, +/turf/open/floor/plating, +/area/medical/chemistry) +"azb" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/sign/departments/evac{ + pixel_y = 32 + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/starboard) +"azc" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet/radiation, +/obj/item/clothing/glasses/meson, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"azd" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/engine/break_room) +"aze" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/closet/crate, +/obj/item/vending_refill/snack{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/vending_refill/cola, +/obj/item/screwdriver, +/turf/open/floor/plating, +/area/maintenance/starboard) +"azf" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 6 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 6 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 6 + }, +/obj/item/clothing/glasses/meson/engine, +/obj/item/clothing/glasses/meson/engine, +/obj/item/clothing/glasses/meson/engine, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"azg" = ( +/obj/structure/table, +/obj/item/clipboard, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/pipe_dispenser, +/obj/item/pipe_dispenser, +/obj/item/pipe_dispenser, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"azh" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/checkpoint/engineering) +"azi" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/fore) +"azj" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/junction/yjunction, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"azk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics"; + req_access_txt = "24" + }, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"azl" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"azm" = ( +/obj/machinery/power/supermatter_crystal/engine, +/turf/open/floor/engine, +/area/engine/supermatter) +"azn" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light_switch{ + pixel_x = 24 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"azo" = ( +/obj/structure/rack, +/obj/item/clothing/suit/armor/bulletproof{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/suit/armor/bulletproof, +/obj/item/clothing/suit/armor/bulletproof{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/clothing/head/helmet/alt{ + layer = 3.00001; + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/head/helmet/alt{ + layer = 3.00001 + }, +/obj/item/clothing/head/helmet/alt{ + layer = 3.00001; + pixel_x = 3; + pixel_y = -3 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"azp" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"azq" = ( +/obj/effect/turf_decal/tile/neutral, +/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/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"azr" = ( +/obj/structure/chair/wood/normal, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/effect/landmark/start/chaplain, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"azs" = ( +/obj/structure/table, +/obj/item/candle/infinite{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/kitchen/fork, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"azt" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/landmark/start/scientist, +/turf/open/floor/plasteel/showroomfloor, +/area/science/explab) +"azu" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/delivery, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/reagent_dispensers/watertank/high, +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/glass/bucket, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"azv" = ( +/turf/closed/wall, +/area/ai_monitored/turret_protected/aisat_interior) +"azw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/fore) +"azx" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 2; + name = "rd sorting disposal pipe"; + sortType = 13 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/explab) +"azy" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/power/emitter, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"azz" = ( +/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/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard/fore) +"azA" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/stack/packageWrap, +/obj/item/stack/sheet/glass/fifty, +/obj/item/hand_labeler, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/explab) +"azB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard) +"azC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard) +"azD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/sign/departments/security{ + pixel_y = 32 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"azE" = ( +/obj/effect/turf_decal/loading_area, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"azF" = ( +/obj/structure/flora/junglebush/c, +/mob/living/carbon/monkey{ + name = "curious george" + }, +/turf/open/floor/grass, +/area/medical/genetics) +"azG" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/ppflowers, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/grass, +/area/medical/genetics) +"azH" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible/layer3{ + dir = 10 + }, +/obj/machinery/power/smes/engineering, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/turf/open/floor/circuit/red, +/area/engine/engineering) +"azI" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/engine/engineering) +"azJ" = ( +/obj/machinery/vending/wardrobe/gene_wardrobe, +/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 = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/genetics) +"azK" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/genetics) +"azL" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/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/showroomfloor, +/area/medical/genetics) +"azM" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer3{ + dir = 1 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/showroomfloor, +/area/engine/break_room) +"azN" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer3{ + dir = 1 + }, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/showroomfloor, +/area/engine/break_room) +"azO" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/pen, +/obj/item/toy/figure/geneticist{ + pixel_x = 8; + pixel_y = 6 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/genetics) +"azP" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/obj/structure/noticeboard{ + dir = 1; + pixel_y = -27 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"azQ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"azR" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 4; + name = "chapel sorting disposal pipe"; + sortType = 17 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"azS" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"azT" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Port to Filter" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"azU" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/atmospherics/pipe/simple/general/visible/layer3, +/obj/machinery/power/smes/engineering, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/sign/warning/electricshock{ + pixel_x = 32 + }, +/turf/open/floor/circuit/red, +/area/engine/engineering) +"azV" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/light_switch{ + pixel_x = -24; + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"azW" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"azX" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"azY" = ( +/obj/structure/flora/ausbushes/ywflowers, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/mob/living/simple_animal/butterfly, +/turf/open/floor/grass, +/area/chapel/main) +"azZ" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/potato, +/turf/open/floor/grass, +/area/chapel/main) +"aAa" = ( +/obj/machinery/vending/engivend, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"aAb" = ( +/obj/structure/flora/grass/jungle/b, +/obj/structure/window/reinforced, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/fore) +"aAc" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/delivery, +/obj/item/folder/yellow, +/obj/item/pen, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chemistry_shutters_2"; + name = "Chemistry Hall Shutters" + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/window/northleft{ + dir = 8; + name = "Chemistry Desk"; + req_access_txt = "5; 33" + }, +/turf/open/floor/plating, +/area/medical/chemistry) +"aAd" = ( +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "External Gas to Loop" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"aAe" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/glass{ + name = "Engineering Storage"; + req_access_txt = "32" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"aAf" = ( +/obj/machinery/airalarm/server{ + dir = 4; + pixel_x = -22 + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine{ + initial_gas_mix = "n2=100;TEMP=80"; + name = "mainframe floor" + }, +/area/tcommsat/server) +"aAg" = ( +/turf/closed/wall/r_wall/rust, +/area/ai_monitored/turret_protected/ai) +"aAh" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine{ + initial_gas_mix = "n2=100;TEMP=80"; + name = "mainframe floor" + }, +/area/tcommsat/server) +"aAi" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/engine{ + initial_gas_mix = "n2=100;TEMP=80"; + name = "mainframe floor" + }, +/area/tcommsat/server) +"aAj" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine{ + initial_gas_mix = "n2=100;TEMP=80"; + name = "mainframe floor" + }, +/area/tcommsat/server) +"aAk" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine{ + initial_gas_mix = "n2=100;TEMP=80"; + name = "mainframe floor" + }, +/area/tcommsat/server) +"aAl" = ( +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/tcommsat/server"; + dir = 4; + name = "Telecomms Server Room APC"; + pixel_x = 25 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine{ + initial_gas_mix = "n2=100;TEMP=80"; + name = "mainframe floor" + }, +/area/tcommsat/server) +"aAm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aAn" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aAo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/fore) +"aAp" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"aAq" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"aAr" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"aAs" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/storage/box/bodybags{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/item/storage/box/bodybags{ + pixel_y = 2 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"aAt" = ( +/obj/machinery/power/apc{ + areastring = "/area/chapel/main"; + dir = 8; + name = "Chapel APC"; + pixel_x = -25 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/chapel/main) +"aAu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/chapel/main) +"aAv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/landmark/event_spawn, +/turf/open/floor/grass, +/area/chapel/main) +"aAw" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"aAx" = ( +/obj/structure/flora/grass/jungle/b, +/obj/structure/beebox, +/turf/open/floor/grass, +/area/chapel/main) +"aAz" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/status_display/ai{ + pixel_x = -32; + pixel_y = 32 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/security/nuke_storage) +"aAB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/security/nuke_storage) +"aAC" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/science/robotics/lab) +"aAD" = ( +/obj/structure/flora/tree/jungle/small, +/turf/open/floor/grass, +/area/chapel/main) +"aAE" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "Air to Satellite" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/hallway/primary/fore) +"aAF" = ( +/obj/machinery/aug_manipulator, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"aAG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/structure/closet, +/obj/item/storage/backpack/duffelbag{ + pixel_y = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"aAH" = ( +/obj/structure/transit_tube/curved/flipped, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/hallway/primary/fore) +"aAI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/gateway"; + dir = 1; + name = "Gateway APC"; + pixel_y = 26 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel, +/area/gateway) +"aAJ" = ( +/obj/effect/decal/cleanable/vomit/old, +/obj/structure/chair/stool/bar, +/turf/open/floor/wood, +/area/maintenance/port/fore) +"aAK" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/showroomfloor, +/area/science/robotics/lab) +"aAL" = ( +/obj/effect/turf_decal/loading_area, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/robotics/lab) +"aAM" = ( +/turf/open/floor/engine, +/area/engine/engineering) +"aAN" = ( +/obj/structure/table, +/obj/item/clipboard, +/obj/item/folder/red, +/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/pen/blue, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"aAO" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=N CPH"; + dir = 8; + location = "NW CPH"; + name = "Patrol navbeacon NW" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aAP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/showroomfloor, +/area/science/robotics/lab) +"aAQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"aAR" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aAS" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/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/showroomfloor, +/area/science/explab) +"aAT" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/showroomfloor, +/area/science/robotics/lab) +"aAU" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Docking Hallway" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/starboard) +"aAV" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/door/airlock/atmos/glass{ + name = "Atmospherics"; + req_access_txt = "24" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aAW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Apiary"; + req_one_access_txt = "22;35" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aAX" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/effect/turf_decal/loading_area, +/turf/open/floor/plasteel/showroomfloor, +/area/science/robotics/lab) +"aAY" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/obj/effect/landmark/start/roboticist, +/turf/open/floor/plasteel/showroomfloor, +/area/science/robotics/lab) +"aAZ" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/stock_parts/cell/high, +/turf/open/floor/plasteel/dark, +/area/science/explab) +"aBa" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/explab) +"aBb" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/science/explab) +"aBc" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/icecream_vat, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"aBd" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/grenade/chem_grenade, +/obj/item/grenade/chem_grenade, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/dark, +/area/science/explab) +"aBe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/showroomfloor, +/area/science/robotics/lab) +"aBf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/reflector/box/anchored{ + dir = 1 + }, +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"aBg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"aBh" = ( +/obj/structure/closet/secure_closet/RD, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/gun/energy/e_gun/mini, +/obj/structure/extinguisher_cabinet{ + pixel_y = 28 + }, +/obj/machinery/camera{ + c_tag = "Research Director's Office"; + name = "science camera"; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) +"aBi" = ( +/obj/machinery/suit_storage_unit/rd, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/newscaster{ + pixel_y = 30 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) +"aBj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/starboard) +"aBk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/item/shard, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aBl" = ( +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/fore) +"aBm" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "E.V.A. Storage"; + req_access_txt = "18" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/eva) +"aBn" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aBo" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/fore) +"aBp" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/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/showroomfloor, +/area/medical/cryo) +"aBq" = ( +/obj/structure/table, +/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 = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/item/clipboard{ + pixel_x = -6 + }, +/obj/item/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = 6; + pixel_y = 10 + }, +/obj/item/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = 6 + }, +/obj/item/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = -6; + pixel_y = 10 + }, +/obj/item/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = -6 + }, +/obj/item/reagent_containers/dropper, +/obj/item/reagent_containers/syringe, +/obj/machinery/camera{ + c_tag = "Cryogenics"; + dir = 8; + name = "medical camera"; + network = list("ss13","medical") + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/cryo) +"aBr" = ( +/obj/machinery/rnd/production/circuit_imprinter/department/science, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/status_display/evac{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"aBs" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/disposal/bin, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/cmo) +"aBt" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/computer/cloning, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/dark, +/area/medical/genetics/cloning) +"aBu" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance{ + name = "supermatter maintenance"; + req_one_access_txt = "10" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/aft) +"aBv" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aBw" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/starboard) +"aBx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"aBy" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/ywflowers, +/obj/structure/flora/ausbushes/fernybush, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/turf/open/floor/grass, +/area/chapel/main) +"aBz" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/tower, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/turf/open/floor/grass, +/area/chapel/main) +"aBA" = ( +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/random{ + pixel_x = -32 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aBB" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/beebox, +/turf/open/floor/grass, +/area/chapel/main) +"aBC" = ( +/obj/machinery/door/airlock/maintenance{ + name = "kitchen maintenance"; + req_access_txt = "28" + }, +/obj/structure/fans/tiny/invisible, +/turf/open/floor/plasteel/dark, +/area/maintenance/central) +"aBD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/security/nuke_storage) +"aBE" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/head/welding{ + pixel_y = 4 + }, +/obj/machinery/power/apc{ + areastring = "/area/storage/primary"; + dir = 1; + name = "Tool Storage APC"; + pixel_y = 26 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/camera{ + c_tag = "Tool Storage"; + name = "engineering camera"; + network = list("ss13","engine") + }, +/turf/open/floor/plasteel/dark, +/area/storage/primary) +"aBF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/engine, +/area/security/nuke_storage) +"aBH" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/security{ + name = "Interrogation"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"aBI" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aBJ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Autopsy"; + req_access_txt = "4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/dark, +/area/security/detectives_office) +"aBK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/door/airlock/atmos/glass{ + name = "Distribution Loop"; + req_access_txt = "24" + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aBL" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/item/wrench, +/obj/item/crowbar, +/obj/item/analyzer, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"aBM" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/door/airlock/public/glass{ + name = "Security Hallway" + }, +/obj/structure/sign/departments/security{ + pixel_x = -32 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"aBN" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aBO" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"aBP" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/turf/open/floor/engine, +/area/security/nuke_storage) +"aBQ" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/plasteel, +/area/engine/break_room) +"aBR" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/computer/atmos_alert, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"aBS" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/computer/station_alert, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/requests_console{ + department = "Atmospherics"; + departmentType = 4; + name = "Atmospherics RC"; + pixel_x = 30 + }, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"aBT" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 6 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = -6 + }, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"aBU" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/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/primary/fore) +"aBV" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/break_room) +"aBW" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/break_room) +"aBX" = ( +/obj/structure/transit_tube/station/reverse{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/transit_tube_pod{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/hallway/primary/fore) +"aBZ" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/pen, +/obj/item/toy/figure/atmos{ + pixel_x = 8; + pixel_y = 6 + }, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"aCa" = ( +/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/engine/engineering) +"aCb" = ( +/turf/closed/wall, +/area/quartermaster/qm) +"aCc" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/engine/break_room) +"aCd" = ( +/obj/item/radio/intercom{ + pixel_x = -28 + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine{ + initial_gas_mix = "n2=100;TEMP=80"; + name = "mainframe floor" + }, +/area/tcommsat/server) +"aCe" = ( +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine{ + initial_gas_mix = "n2=100;TEMP=80"; + name = "mainframe floor" + }, +/area/tcommsat/server) +"aCf" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"aCg" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "atmos"; + name = "Atmospherics Blast Door" + }, +/turf/open/floor/plating, +/area/engine/break_room) +"aCh" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine"; + req_access_txt = "10" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"aCi" = ( +/obj/effect/turf_decal/bot, +/obj/structure/tank_dispenser, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"aCj" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/engine/break_room) +"aCk" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/camera{ + c_tag = "Telecomms Server Room"; + dir = 8; + name = "telecomms camera"; + network = list("ss13","tcomms") + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine{ + initial_gas_mix = "n2=100;TEMP=80"; + name = "mainframe floor" + }, +/area/tcommsat/server) +"aCl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/gateway) +"aCm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard/fore) +"aCn" = ( +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/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/dark, +/area/engine/break_room) +"aCo" = ( +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"aCp" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aCq" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Security Hallway" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"aCr" = ( +/obj/machinery/mech_bay_recharge_port, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/sign/warning/nosmoking{ + pixel_x = -28 + }, +/obj/machinery/camera{ + c_tag = "Mech Bay"; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/science/robotics/mechbay) +"aCs" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/radio{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/item/pen, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/newscaster/security_unit{ + pixel_x = -30 + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/medical) +"aCt" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"aCu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/science/robotics/lab) +"aCv" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/medical/glass{ + name = "Infirmary" + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"aCw" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"aCx" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"aCy" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/engine/break_room) +"aCz" = ( +/obj/structure/rack, +/obj/item/gun/ballistic/shotgun/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/gun/ballistic/shotgun/riot, +/obj/item/gun/ballistic/shotgun/riot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/showroomfloor, +/area/ai_monitored/security/armory) +"aCA" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"aCB" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel/showroomfloor, +/area/science/robotics/lab) +"aCC" = ( +/obj/machinery/door/airlock/command{ + name = "Gateway"; + req_access_txt = "62" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/dark, +/area/gateway) +"aCD" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/heads/hor) +"aCE" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/heads/hor) +"aCF" = ( +/obj/item/grenade/barrier{ + pixel_x = 4 + }, +/obj/item/grenade/barrier, +/obj/item/grenade/barrier{ + pixel_x = -4 + }, +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"aCG" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/button/door{ + id = "Biohazard"; + name = "Emergency Research Lockdown"; + pixel_x = 24; + pixel_y = 24; + req_access_txt = "47" + }, +/obj/machinery/light_switch{ + pixel_x = 38; + pixel_y = 24 + }, +/obj/machinery/button/door{ + id = "rdprivacy"; + name = "Director's Privacy Toggle"; + pixel_x = 24; + pixel_y = 38 + }, +/obj/effect/landmark/start/research_director, +/obj/machinery/button/door{ + id = "xeno_blastdoor"; + name = "Xenobiology Containment Lockdown"; + pixel_x = 38; + pixel_y = 38; + req_access_txt = "47" + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/heads/hor) +"aCH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/item/shard, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/fore) +"aCI" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/fore) +"aCJ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/door/airlock/research/glass{ + name = "Robotics Lab"; + req_access_txt = "29" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"aCK" = ( +/obj/machinery/meter, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold4w/general/visible, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/cryo) +"aCL" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/landmark/start/medical_doctor, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/cryo) +"aCM" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/cryo) +"aCN" = ( +/obj/structure/flora/grass/jungle/b, +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/leafybush, +/obj/structure/flora/ausbushes/ywflowers, +/obj/structure/flora/ausbushes/leafybush, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/turf/open/floor/grass, +/area/chapel/main) +"aCO" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/start/roboticist, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/science/robotics/mechbay) +"aCP" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-10" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/cryo) +"aCQ" = ( +/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/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/shower{ + dir = 4; + name = "emergency shower" + }, +/obj/effect/turf_decal/box/corners, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/genetics/cloning) +"aCR" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine"; + req_access_txt = "10" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"aCS" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"aCT" = ( +/obj/structure/closet/secure_closet/atmospherics, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aCU" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/sign/plaques/atmos, +/turf/closed/wall, +/area/engine/break_room) +"aCV" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall/r_wall, +/area/tcommsat/computer) +"aCW" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/genetics/cloning) +"aCX" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/genetics/cloning) +"aCY" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/clothing/head/welding{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/clothing/head/welding, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aCZ" = ( +/obj/structure/table, +/obj/item/clipboard{ + pixel_x = -4 + }, +/obj/item/book/manual/wiki/atmospherics, +/obj/item/storage/belt/utility, +/obj/item/t_scanner, +/obj/item/t_scanner, +/obj/item/t_scanner, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aDa" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/mirror{ + pixel_y = 32 + }, +/obj/structure/sink{ + pixel_y = 26 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/genetics/cloning) +"aDb" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/genetics/cloning) +"aDc" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/portable_atmospherics/pump, +/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer1{ + dir = 1 + }, +/obj/machinery/power/apc{ + area = "/area/engine/break_room"; + name = "Engineering Foyer APC"; + pixel_y = -26 + }, +/obj/structure/cable, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/showroomfloor, +/area/engine/break_room) +"aDd" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Brig Control"; + req_access_txt = "3" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"aDe" = ( +/obj/machinery/vending/wardrobe/atmos_wardrobe, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot, +/obj/machinery/newscaster{ + pixel_y = -28 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aDf" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/closet/secure_closet/personal/patient, +/obj/machinery/power/apc/unlocked{ + areastring = "/area/medical/genetics/cloning"; + dir = 4; + name = "Cloning Lab APC"; + pixel_x = 24 + }, +/obj/machinery/camera{ + c_tag = "Cloning Lab"; + name = "medical camera"; + network = list("ss13","medical") + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/dark, +/area/medical/genetics/cloning) +"aDg" = ( +/obj/structure/reagent_dispensers/fueltank, +/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/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aDh" = ( +/obj/structure/flora/grass/jungle/b, +/obj/structure/flora/ausbushes/ppflowers, +/obj/structure/flora/ausbushes/sunnybush, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/grass, +/area/chapel/main) +"aDi" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aDj" = ( +/turf/closed/wall, +/area/security/checkpoint/engineering) +"aDk" = ( +/turf/closed/wall, +/area/engine/atmos) +"aDm" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aDn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/security/nuke_storage) +"aDo" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/turf/open/floor/engine, +/area/security/nuke_storage) +"aDp" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plating, +/area/engine/atmos) +"aDq" = ( +/obj/machinery/atmospherics/pipe/layer_manifold, +/obj/structure/sign/poster/contraband/missing_gloves{ + pixel_x = 32 + }, +/obj/machinery/power/smes/engineering, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/circuit/red, +/area/engine/engineering) +"aDr" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"aDs" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/engine, +/area/security/nuke_storage) +"aDt" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Pure to Mix" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"aDu" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "transittube_ai"; + name = "Transit Tube Lockdown Toggle"; + pixel_x = -24; + pixel_y = -8; + req_access_txt = "19" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/camera{ + c_tag = "Satellite Transit Access"; + dir = 4; + name = "satellite camera"; + network = list("minisat") + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aDv" = ( +/obj/structure/table, +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1447; + name = "Private AI Channel"; + pixel_y = -2 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen/minisat{ + dir = 1; + pixel_y = -28 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/hallway/primary/fore) +"aDw" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/science/explab) +"aDx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel, +/area/gateway) +"aDy" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/radio{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/radio{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/radio{ + pixel_y = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/gateway) +"aDz" = ( +/turf/open/floor/engine/n2{ + initial_gas_mix = "n2=1000;TEMP=293.15" + }, +/area/engine/atmos) +"aDA" = ( +/obj/machinery/atmospherics/miner/nitrogen{ + max_ext_kpa = 2500 + }, +/turf/open/floor/engine/n2{ + initial_gas_mix = "n2=1000;TEMP=293.15" + }, +/area/engine/atmos) +"aDB" = ( +/turf/closed/wall/r_wall, +/area/medical/genetics) +"aDC" = ( +/turf/open/floor/engine/o2{ + initial_gas_mix = "o2=1000;TEMP=293.15" + }, +/area/engine/atmos) +"aDD" = ( +/obj/machinery/atmospherics/miner/oxygen{ + max_ext_kpa = 2500 + }, +/turf/open/floor/engine/o2{ + initial_gas_mix = "o2=1000;TEMP=293.15" + }, +/area/engine/atmos) +"aDE" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics Tank - Air"; + name = "atmospherics camera"; + network = list("ss13","engine") + }, +/turf/open/floor/engine/air, +/area/engine/atmos) +"aDF" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen/auxbase{ + dir = 4; + pixel_x = -28 + }, +/obj/item/radio{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/assault_pod/mining, +/turf/open/floor/plasteel/dark, +/area/construction/mining/aux_base) +"aDG" = ( +/obj/structure/sign/departments/security, +/turf/closed/wall, +/area/security/processing) +"aDH" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Tech Storage"; + req_one_access_txt = "23;30" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/storage/tech) +"aDI" = ( +/turf/closed/wall, +/area/science/lab) +"aDJ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/central) +"aDK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Tech Storage"; + req_one_access_txt = "23;30" + }, +/turf/open/floor/plasteel/dark, +/area/storage/tech) +"aDL" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/science/robotics/mechbay) +"aDM" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"aDN" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aDO" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/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/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"aDP" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/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/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/robotics/lab) +"aDQ" = ( +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/space/nearstation) +"aDR" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/robotics/lab) +"aDS" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/robotics/lab) +"aDT" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/robotics/lab) +"aDU" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/research) +"aDV" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/structure/disposalpipe/junction, +/turf/open/floor/plasteel/showroomfloor, +/area/science/research) +"aDW" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/command{ + name = "E.V.A. Storage"; + req_access_txt = "18" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/eva) +"aDX" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/dark, +/area/science/mixing) +"aDY" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space/nearstation) +"aDZ" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/turf/open/space, +/area/space/nearstation) +"aEa" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/turf/open/space, +/area/space/nearstation) +"aEb" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/suit_storage_unit/cmo, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/cmo) +"aEc" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/heads/cmo) +"aEd" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"aEe" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"aEf" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"aEg" = ( +/obj/structure/girder, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"aEh" = ( +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"aEi" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space/nearstation) +"aEj" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/turf/open/space, +/area/space/nearstation) +"aEk" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space/nearstation) +"aEl" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/cryo) +"aEm" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"aEn" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"aEo" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/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" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/cryo) +"aEp" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/turf/open/space, +/area/space/nearstation) +"aEq" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/turf/open/space, +/area/space/nearstation) +"aEr" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space/nearstation) +"aEs" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/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/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/genetics/cloning) +"aEt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/genetics/cloning) +"aEu" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aEv" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aEw" = ( +/obj/structure/sign/poster/contraband/random, +/turf/closed/wall/rust, +/area/maintenance/port) +"aEx" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aEy" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/aft) +"aEz" = ( +/obj/structure/table, +/obj/item/storage/box/deputy, +/obj/item/stack/packageWrap, +/obj/item/hand_labeler, +/obj/effect/turf_decal/bot, +/obj/machinery/camera{ + c_tag = "Warden's Office"; + dir = 4 + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -30 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"aEA" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aEB" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/hallway/primary/fore) +"aEC" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aED" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/security/nuke_storage) +"aEE" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/research) +"aEF" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aEG" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/security/nuke_storage) +"aEH" = ( +/obj/machinery/light_switch{ + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/machinery/camera/motion{ + c_tag = "Vault"; + dir = 1; + name = "vault camera"; + network = list("vault") + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/security/nuke_storage) +"aEI" = ( +/obj/effect/turf_decal/box, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/tcommsat/computer) +"aEJ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aEK" = ( +/obj/structure/sign/poster/contraband/random, +/turf/closed/wall/rust, +/area/hallway/secondary/entry) +"aEL" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"aEM" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/door/airlock/public/glass{ + name = "Tool Storage" + }, +/turf/open/floor/plasteel/dark, +/area/storage/primary) +"aEN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/landmark/event_spawn, +/obj/item/radio/intercom{ + pixel_x = -28 + }, +/turf/open/floor/plasteel, +/area/gateway) +"aEO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/gateway) +"aEP" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/robotics/lab) +"aEQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/gateway) +"aER" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/gateway) +"aES" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/gateway) +"aET" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/fore) +"aEU" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/maintenance/aft) +"aEV" = ( +/obj/machinery/mech_bay_recharge_port, +/obj/structure/cable, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plating, +/area/science/robotics/mechbay) +"aEW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/security{ + name = "Evidence"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"aEX" = ( +/obj/item/storage/box/rubbershot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/storage/box/rubbershot{ + pixel_x = -3; + pixel_y = 3 + }, +/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/structure/closet/secure_closet{ + name = "shotgun rubber rounds"; + req_access_txt = "1" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"aEY" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"aEZ" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/aft) +"aFa" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/vending/wardrobe/robo_wardrobe, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"aFb" = ( +/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/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/science/robotics/lab) +"aFc" = ( +/turf/open/floor/engine/co2{ + initial_gas_mix = "co2=1000;TEMP=293.15" + }, +/area/engine/atmos) +"aFd" = ( +/turf/open/floor/engine/plasma{ + initial_gas_mix = "plasma=1000;TEMP=293.15" + }, +/area/engine/atmos) +"aFe" = ( +/turf/open/floor/engine/n2o{ + initial_gas_mix = "n2o=1000;TEMP=293.15" + }, +/area/engine/atmos) +"aFf" = ( +/turf/open/floor/engine/vacuum, +/area/engine/atmos) +"aFg" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet/radiation, +/obj/item/clothing/glasses/meson, +/obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/engine/engineering"; + name = "Engine Room APC"; + pixel_y = -26 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"aFh" = ( +/obj/machinery/recharger{ + pixel_x = -7 + }, +/obj/machinery/recharger{ + pixel_x = 7 + }, +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light_switch{ + pixel_x = 24; + pixel_y = -6 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"aFi" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/highsecurity{ + name = "Secure Tech Storage"; + req_access_txt = "19;23" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/storage/tech) +"aFj" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/security/glass{ + name = "Equipment Room"; + req_access_txt = "1" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aFk" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/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" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/robotics/lab) +"aFl" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Security Office"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"aFm" = ( +/obj/machinery/atmospherics/miner/carbon_dioxide{ + max_ext_kpa = 2500 + }, +/turf/open/floor/engine/co2{ + initial_gas_mix = "co2=1000;TEMP=293.15" + }, +/area/engine/atmos) +"aFn" = ( +/obj/machinery/atmospherics/miner/toxins{ + max_ext_kpa = 2500 + }, +/turf/open/floor/engine/plasma{ + initial_gas_mix = "plasma=1000;TEMP=293.15" + }, +/area/engine/atmos) +"aFo" = ( +/obj/machinery/atmospherics/miner/n2o{ + max_ext_kpa = 2500 + }, +/turf/open/floor/engine/n2o{ + initial_gas_mix = "n2o=1000;TEMP=293.15" + }, +/area/engine/atmos) +"aFp" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/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" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/research) +"aFq" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/research) +"aFr" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/science/research) +"aFs" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/explab) +"aFt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/start/medical_doctor, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/genetics/cloning) +"aFu" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical/glass{ + name = "Infirmary"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"aFv" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Brig Control"; + req_access_txt = "3" + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"aFw" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing) +"aFx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/genetics/cloning) +"aFy" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/security/processing"; + dir = 8; + name = "Labor Shuttle Dock APC"; + pixel_x = -26 + }, +/obj/effect/turf_decal/bot, +/obj/structure/closet/secure_closet/evidence, +/turf/open/floor/plasteel/dark, +/area/security/processing) +"aFz" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/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, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing) +"aFA" = ( +/obj/structure/sign/warning/fire, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"aFB" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine"; + req_access_txt = "10" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"aFC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"aFD" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/door/airlock/security/glass{ + name = "Brig"; + req_access_txt = "63" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"aFE" = ( +/obj/effect/decal/cleanable/dirt, +/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/plating, +/area/maintenance/starboard) +"aFF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/starboard) +"aFG" = ( +/obj/machinery/computer/slot_machine{ + pixel_y = 2 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/fore) +"aFH" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plating, +/area/maintenance/disposal/incinerator) +"aFI" = ( +/turf/closed/wall, +/area/maintenance/disposal/incinerator) +"aFK" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_atmos{ + pixel_x = -37; + pixel_y = -6 + }, +/turf/open/floor/engine, +/area/maintenance/disposal/incinerator) +"aFL" = ( +/obj/machinery/atmospherics/pipe/layer_manifold, +/turf/closed/wall, +/area/maintenance/disposal/incinerator) +"aFM" = ( +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"aFN" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/space/basic, +/area/maintenance/disposal/incinerator) +"aFO" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/closed/wall, +/area/maintenance/disposal/incinerator) +"aFP" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/atmos{ + name = "Incinerator"; + req_access_txt = "24" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/disposal/incinerator) +"aFQ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_atmos{ + dir = 8 + }, +/turf/open/floor/engine, +/area/maintenance/disposal/incinerator) +"aFR" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/landmark/start/research_director, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/heads/hor) +"aFT" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/port/fore) +"aFU" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/meter, +/turf/closed/wall, +/area/maintenance/disposal/incinerator) +"aFV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/public/glass/incinerator/atmos_exterior, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/turf/open/floor/engine, +/area/maintenance/disposal/incinerator) +"aFW" = ( +/obj/machinery/door/poddoor/incinerator_atmos_aux, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"aFX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/grille, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/fore) +"aFY" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/igniter{ + id = "Incinerator" + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"aFZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/fore) +"aGa" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/heads/hor) +"aGb" = ( +/obj/machinery/power/turbine{ + luminosity = 2 + }, +/obj/structure/cable, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"aGc" = ( +/obj/machinery/door/poddoor/incinerator_atmos_main, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"aGd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/fore) +"aGe" = ( +/obj/machinery/door/airlock/engineering{ + name = "Emergency Storage" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"aGf" = ( +/obj/machinery/suit_storage_unit/atmos, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/camera{ + c_tag = "Atmospherics Lockers"; + name = "atmospherics camera"; + network = list("ss13","engine") + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aGg" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aGh" = ( +/turf/closed/wall, +/area/crew_quarters/theatre) +"aGi" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/fore) +"aGj" = ( +/obj/structure/plasticflaps/opaque, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=1"; + dir = 1; + freq = 1400; + location = "Research and Development" + }, +/obj/machinery/door/window/eastleft{ + dir = 1; + name = "Research and Development Delivery Access"; + req_one_access_txt = "7;29" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/science/lab) +"aGk" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics Tank - N2"; + name = "atmospherics camera"; + network = list("ss13","engine") + }, +/turf/open/floor/engine/n2{ + initial_gas_mix = "n2=1000;TEMP=293.15" + }, +/area/engine/atmos) +"aGl" = ( +/obj/structure/table, +/obj/item/clipboard, +/obj/item/folder/yellow, +/obj/item/pipe_dispenser, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aGm" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/heads/cmo) +"aGn" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/cryo) +"aGo" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aGp" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/cryo) +"aGq" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/layer_manifold, +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine"; + req_access_txt = "10" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"aGr" = ( +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/cryo) +"aGs" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/obj/item/wrench, +/turf/open/floor/plasteel, +/area/engine/atmos) +"aGt" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/item/wrench/medical, +/obj/item/reagent_containers/pill/mannitol, +/obj/item/reagent_containers/pill/mannitol, +/obj/item/clothing/neck/stethoscope, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/machinery/power/apc{ + areastring = "/area/medical/cryo"; + dir = 4; + name = "Cryogenics APC"; + pixel_x = 26 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/cryo) +"aGu" = ( +/obj/structure/table, +/obj/item/radio{ + pixel_x = -4; + pixel_y = 6 + }, +/obj/item/radio{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/item/stack/packageWrap, +/obj/item/hand_labeler, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aGv" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/portable_atmospherics/pump, +/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer1{ + dir = 1 + }, +/obj/machinery/light, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/showroomfloor, +/area/engine/break_room) +"aGw" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/showroomfloor, +/area/engine/atmos) +"aGx" = ( +/obj/structure/table, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/item/storage/toolbox/emergency, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aGy" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/door/window/northleft{ + name = "Inner Pipe Access"; + req_access_txt = "24" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aGz" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/pipedispenser, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aGA" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/pipedispenser/disposal, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aGB" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/pipedispenser/disposal/transit_tube, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aGC" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/vending/clothing, +/turf/open/floor/plasteel/dark, +/area/medical/genetics/cloning) +"aGD" = ( +/obj/machinery/door/airlock/engineering/glass/critical{ + heat_proof = 1; + name = "Supermatter Chamber"; + req_access_txt = "10" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/turf_decal/delivery, +/turf/open/floor/engine, +/area/engine/supermatter) +"aGE" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + id_tag = "innerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aGF" = ( +/obj/structure/closet/wardrobe/pjs, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/medical/genetics/cloning) +"aGG" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aGH" = ( +/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, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/genetics/cloning) +"aGI" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/genetics/cloning) +"aGJ" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/storage/fancy/candle_box{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/storage/fancy/candle_box{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/pen, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aGK" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/dark/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"aGL" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aGM" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aGN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"aGO" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/fore) +"aGP" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall, +/area/hallway/primary/fore) +"aGQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-16" + }, +/turf/open/floor/plasteel, +/area/gateway) +"aGR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel, +/area/gateway) +"aGS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/twohanded/required/kirbyplants{ + desc = "After his promotion, he was transferred to Kilo Station to serve as the gateway's protector."; + icon_state = "plant-21"; + name = "rodger" + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/gateway) +"aGT" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/components/trinary/filter/atmos/co2{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aGU" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrogen_input{ + dir = 4 + }, +/turf/open/floor/engine/n2{ + initial_gas_mix = "n2=1000;TEMP=293.15" + }, +/area/engine/atmos) +"aGV" = ( +/obj/machinery/air_sensor/atmos/nitrogen_tank, +/turf/open/floor/engine/n2{ + initial_gas_mix = "n2=1000;TEMP=293.15" + }, +/area/engine/atmos) +"aGW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrogen_output{ + dir = 4 + }, +/turf/open/floor/engine/n2{ + initial_gas_mix = "n2=1000;TEMP=293.15" + }, +/area/engine/atmos) +"aGX" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/oxygen_input{ + dir = 4 + }, +/turf/open/floor/engine/o2{ + initial_gas_mix = "o2=1000;TEMP=293.15" + }, +/area/engine/atmos) +"aGY" = ( +/obj/machinery/air_sensor/atmos/oxygen_tank, +/turf/open/floor/engine/o2{ + initial_gas_mix = "o2=1000;TEMP=293.15" + }, +/area/engine/atmos) +"aGZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/oxygen_output{ + dir = 4 + }, +/turf/open/floor/engine/o2{ + initial_gas_mix = "o2=1000;TEMP=293.15" + }, +/area/engine/atmos) +"aHa" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/air_input{ + dir = 4 + }, +/turf/open/floor/engine/air, +/area/engine/atmos) +"aHb" = ( +/obj/machinery/air_sensor/atmos/air_tank, +/turf/open/floor/engine/air, +/area/engine/atmos) +"aHc" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/atmos/air_output{ + dir = 4 + }, +/turf/open/floor/engine/air, +/area/engine/atmos) +"aHd" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/carbon_input{ + dir = 1 + }, +/turf/open/floor/engine/co2{ + initial_gas_mix = "co2=1000;TEMP=293.15" + }, +/area/engine/atmos) +"aHe" = ( +/obj/machinery/air_sensor/atmos/carbon_tank, +/turf/open/floor/engine/co2{ + initial_gas_mix = "co2=1000;TEMP=293.15" + }, +/area/engine/atmos) +"aHf" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/carbon_output{ + dir = 1 + }, +/turf/open/floor/engine/co2{ + initial_gas_mix = "co2=1000;TEMP=293.15" + }, +/area/engine/atmos) +"aHg" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxin_input{ + dir = 1 + }, +/turf/open/floor/engine/plasma{ + initial_gas_mix = "plasma=1000;TEMP=293.15" + }, +/area/engine/atmos) +"aHh" = ( +/obj/machinery/air_sensor/atmos/toxin_tank, +/turf/open/floor/engine/plasma{ + initial_gas_mix = "plasma=1000;TEMP=293.15" + }, +/area/engine/atmos) +"aHi" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxin_output{ + dir = 1 + }, +/turf/open/floor/engine/plasma{ + initial_gas_mix = "plasma=1000;TEMP=293.15" + }, +/area/engine/atmos) +"aHj" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrous_input{ + dir = 1 + }, +/turf/open/floor/engine/n2o{ + initial_gas_mix = "n2o=1000;TEMP=293.15" + }, +/area/engine/atmos) +"aHk" = ( +/obj/machinery/air_sensor/atmos/nitrous_tank, +/turf/open/floor/engine/n2o{ + initial_gas_mix = "n2o=1000;TEMP=293.15" + }, +/area/engine/atmos) +"aHl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrous_output{ + dir = 1 + }, +/turf/open/floor/engine/n2o{ + initial_gas_mix = "n2o=1000;TEMP=293.15" + }, +/area/engine/atmos) +"aHm" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/mix_input{ + dir = 1 + }, +/turf/open/floor/engine/vacuum, +/area/engine/atmos) +"aHn" = ( +/obj/machinery/air_sensor/atmos/mix_tank, +/turf/open/floor/engine/vacuum, +/area/engine/atmos) +"aHo" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/mix_output{ + dir = 1 + }, +/turf/open/floor/engine/vacuum, +/area/engine/atmos) +"aHp" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + id_tag = "outerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aHq" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"aHr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/gateway) +"aHs" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/computer/atmos_control/tank/carbon_tank{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aHt" = ( +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics Connector"; + req_one_access_txt = "10;24;5" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"aHu" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "CO2 to Pure" + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aHv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/secure_closet/exile, +/obj/effect/turf_decal/bot, +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"aHw" = ( +/obj/machinery/porta_turret/ai, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/turf_decal/box/red, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"aHx" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/closed/wall, +/area/engine/atmos) +"aHy" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_y = 5 + }, +/obj/item/flashlight, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/button/door{ + id = "Skynet_launch"; + name = "Mech Bay Door Control"; + pixel_x = 6; + pixel_y = -24 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/mechbay) +"aHz" = ( +/obj/structure/flora/ausbushes/lavendergrass, +/obj/structure/flora/ausbushes/sparsegrass, +/obj/structure/flora/ausbushes/ywflowers, +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/palebush, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"aHA" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"aHB" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"aHC" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"aHD" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/multitool, +/obj/item/storage/toolbox/electrical, +/obj/item/multitool{ + pixel_x = 4 + }, +/obj/item/reagent_containers/glass/beaker/large, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"aHE" = ( +/obj/structure/chair/office/light, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/landmark/start/roboticist, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"aHF" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/robotics/lab) +"aHG" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aHH" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold4w/general/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"aHI" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/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/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/machinery/button/door{ + id = "robotics_shutters"; + name = "Robotics Shutter Toggle"; + pixel_x = 24; + pixel_y = -24; + req_access_txt = "29" + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"aHJ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/table, +/obj/item/wrench, +/obj/item/crowbar, +/obj/item/analyzer, +/obj/item/analyzer, +/turf/open/floor/plasteel/dark, +/area/science/research) +"aHK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6; + icon_state = "intact" + }, +/turf/closed/wall, +/area/maintenance/disposal/incinerator) +"aHL" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/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" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing) +"aHM" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/robotics/lab) +"aHN" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing) +"aHO" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"aHP" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing) +"aHQ" = ( +/obj/structure/flora/grass/jungle/b, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"aHR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aHS" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/purple/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"aHT" = ( +/obj/machinery/suit_storage_unit/atmos, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aHU" = ( +/obj/machinery/door/firedoor, +/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/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aHV" = ( +/obj/structure/girder, +/obj/structure/grille/broken, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/aft) +"aHW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/grille, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/fore) +"aHX" = ( +/obj/structure/girder, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/fore) +"aHY" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/fore) +"aHZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/fore) +"aIb" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/door/airlock/public/glass{ + name = "Engineering Foyer" + }, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"aIc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aId" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet/secure_closet/CMO, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/item/gun/energy/e_gun/mini, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/cmo) +"aIe" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/security, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/structure/extinguisher_cabinet{ + pixel_y = 28 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/storage/tech) +"aIf" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aIg" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/closed/wall, +/area/engine/break_room) +"aIh" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aIi" = ( +/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 = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/heads/cmo) +"aIj" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/engine/break_room) +"aIk" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-10" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/heads/cmo) +"aIl" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/chair, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"aIm" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"aIn" = ( +/obj/machinery/door/airlock/engineering/glass/critical{ + heat_proof = 1; + name = "Supermatter Chamber"; + req_access_txt = "10" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/engine, +/area/engine/supermatter) +"aIo" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"aIp" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aIq" = ( +/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/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-16" + }, +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aIr" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/turf_decal/caution, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aIs" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/obj/item/beacon, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aIt" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/components/unary/thermomachine/heater/on, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aIu" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Mix to Engine" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"aIv" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8; + icon_state = "intact" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/disposal/incinerator) +"aIw" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/service, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/storage/tech) +"aIx" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aIy" = ( +/obj/structure/table, +/obj/item/storage/box/lights/mixed{ + pixel_y = 5 + }, +/obj/item/stack/cable_coil{ + pixel_y = -2 + }, +/obj/item/analyzer{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/analyzer, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aIz" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-10" + }, +/obj/machinery/button/door{ + id = "transittube_ai"; + name = "Transit Tube Lockdown Toggle"; + pixel_x = 8; + pixel_y = 24; + req_access_txt = "19" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aIA" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/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/primary/fore) +"aIB" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/pen, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"aIC" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"aID" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"aIE" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"aIF" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/shieldgen, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"aIH" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/engine, +/area/tcommsat/computer) +"aII" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/engine, +/area/tcommsat/computer) +"aIJ" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/tcommsat/computer) +"aIK" = ( +/obj/structure/sign/warning/nosmoking, +/turf/closed/wall, +/area/engine/atmos) +"aIL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall, +/area/maintenance/disposal/incinerator) +"aIM" = ( +/obj/effect/turf_decal/bot, +/obj/structure/tank_dispenser, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/newscaster{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aIN" = ( +/obj/structure/sign/departments/botany, +/turf/closed/wall, +/area/maintenance/central) +"aIO" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/closed/wall, +/area/engine/atmos) +"aIP" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aIQ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Medbay" + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"aIR" = ( +/obj/machinery/status_display/ai{ + pixel_x = 32; + pixel_y = -32 + }, +/turf/open/floor/engine, +/area/tcommsat/computer) +"aIS" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/turf/open/floor/engine, +/area/tcommsat/computer) +"aIT" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/science/research) +"aIU" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"aIV" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/sign/warning/vacuum{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 8 + }, +/area/hallway/primary/fore) +"aIW" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"aIX" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/aft) +"aIY" = ( +/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/light{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"aIZ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/aft) +"aJa" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"aJb" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/port/fore) +"aJc" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"aJd" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing) +"aJf" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing) +"aJg" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/space_heater, +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "External Waste Ports to Filter" + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aJh" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/space_heater, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "Air to External Air Ports" + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aJi" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/fore) +"aJj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/engine/break_room) +"aJk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1, +/turf/closed/wall/r_wall, +/area/engine/break_room) +"aJl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/maintenance/disposal/incinerator) +"aJm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/starboard) +"aJn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"aJo" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plating, +/area/engine/atmos) +"aJp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/closed/wall, +/area/engine/atmos) +"aJq" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"aJr" = ( +/obj/machinery/door/firedoor, +/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/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aJs" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"aJt" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"aJu" = ( +/obj/machinery/computer/med_data, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Medbay Sleepers"; + name = "medical camera"; + network = list("ss13","medical") + }, +/turf/open/floor/plasteel/dark, +/area/medical/medbay/central) +"aJv" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aJw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aJx" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, +/turf/open/floor/plating, +/area/engine/atmos) +"aJy" = ( +/obj/effect/turf_decal/loading_area, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/engine/atmos) +"aJz" = ( +/obj/machinery/computer/atmos_control/tank/mix_tank{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/engine/atmos) +"aJA" = ( +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/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/neutral, +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/engine/atmos) +"aJB" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aJC" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aJD" = ( +/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/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aJE" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"aJF" = ( +/obj/structure/chair/office/light, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/landmark/start/research_director, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/heads/hor) +"aJG" = ( +/obj/machinery/status_display/evac, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/turf/closed/wall, +/area/engine/atmos) +"aJH" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"aJI" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/closed/wall, +/area/engine/atmos) +"aJJ" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall, +/area/science/lab) +"aJK" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/suit_storage_unit/standard_unit, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "E.V.A. Storage"; + dir = 8; + name = "command camera" + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/eva) +"aJL" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"aJM" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/visible, +/obj/machinery/meter/atmos/distro_loop, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aJN" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aJO" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aJP" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/green/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"aJQ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/pen, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"aJR" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark/corner{ + dir = 4 + }, +/area/hallway/primary/fore) +"aJS" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 4 + }, +/area/hallway/primary/fore) +"aJT" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/primary/fore) +"aJU" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/medical/genetics/cloning) +"aJV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/engine, +/area/tcommsat/computer) +"aJW" = ( +/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/engine, +/area/tcommsat/computer) +"aJX" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/turf/open/floor/engine, +/area/tcommsat/computer) +"aJY" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "applebush" + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/primary/fore) +"aKa" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/storage/box/lights/mixed{ + pixel_y = 5 + }, +/obj/item/stack/packageWrap, +/obj/item/hand_labeler, +/turf/open/floor/plasteel/dark, +/area/storage/primary) +"aKb" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/fore) +"aKc" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = -5; + pixel_y = 6 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 5; + pixel_y = -4 + }, +/obj/item/clothing/mask/gas{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/clothing/mask/gas, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/storage/primary) +"aKd" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/storage/toolbox/electrical{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/storage/toolbox/electrical, +/obj/item/multitool, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -26 + }, +/obj/item/multitool, +/turf/open/floor/plasteel/dark, +/area/storage/primary) +"aKe" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/fore) +"aKf" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/stock_parts/cell/high, +/obj/item/screwdriver{ + pixel_y = 18 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/storage/primary) +"aKg" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aKh" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/storage/backpack/duffelbag/engineering{ + pixel_y = 5 + }, +/obj/item/assembly/signaler{ + desc = "Used to remotely activate devices. Allows for syncing when using a secure signaler on another. Slightly scooted."; + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/assembly/signaler{ + desc = "Used to remotely activate devices. Allows for syncing when using a secure signaler on another. Slightly scooted."; + pixel_x = 4; + pixel_y = 4 + }, +/turf/open/floor/plasteel/dark, +/area/storage/primary) +"aKi" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aKj" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aKk" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"aKl" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/primary/fore) +"aKm" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/closed/wall, +/area/engine/atmos) +"aKn" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/primary/fore) +"aKo" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/storage/belt/utility, +/obj/item/weldingtool/largetank, +/obj/item/clothing/head/welding, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"aKp" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/primary/fore) +"aKq" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "Skynet_launch"; + name = "Mech Bay Door Control"; + pixel_x = 6; + pixel_y = 24; + req_one_access_txt = "29" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aKr" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aKs" = ( +/obj/machinery/computer/security/telescreen/turbine{ + dir = 1 + }, +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/disposal/incinerator) +"aKt" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/dark, +/area/security/processing) +"aKu" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/heads/hor) +"aKv" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aKw" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/security/checkpoint/engineering) +"aKx" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aKy" = ( +/obj/machinery/computer/crew, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + name = "Medbay Checkpoint RC"; + pixel_y = 30 + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/medical) +"aKz" = ( +/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 = 1 + }, +/obj/effect/turf_decal/tile/purple, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aKA" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/start/cargo_technician, +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"aKB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/turf/closed/wall, +/area/security/checkpoint/engineering) +"aKC" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"aKD" = ( +/obj/machinery/atmospherics/pipe/layer_manifold, +/turf/closed/wall, +/area/security/checkpoint/engineering) +"aKE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/security/checkpoint/engineering) +"aKF" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/meter/atmos/atmos_waste_loop, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aKG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"aKH" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"aKI" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/pen, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"aKJ" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -26 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/research) +"aKK" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/start/scientist, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing) +"aKL" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing) +"aKM" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/photocopier, +/obj/item/newspaper{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/newspaper, +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/maintenance/port) +"aKN" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/box, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"aKO" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-03" + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/wood, +/area/maintenance/port) +"aKP" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/extinguisher_cabinet{ + pixel_y = -28 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aKQ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/chair/stool, +/obj/effect/landmark/start/atmospheric_technician, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"aKR" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-05" + }, +/turf/open/floor/wood, +/area/maintenance/port) +"aKS" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood{ + icon_state = "wood-broken3" + }, +/area/maintenance/port) +"aKT" = ( +/obj/structure/dresser, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/theatre) +"aKU" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/vending/autodrobe, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/theatre"; + dir = 1; + name = "Theatre APC"; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/theatre) +"aKV" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/food/drinks/bottle/vodka{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ + pixel_x = -5; + pixel_y = 6 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"aKW" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"aKX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port) +"aKY" = ( +/obj/structure/table/glass, +/obj/item/storage/box/rxglasses{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/storage/box/beakers, +/obj/item/gun/syringe{ + pixel_y = 5 + }, +/obj/item/reagent_containers/spray/cleaner, +/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/dark, +/area/medical/storage) +"aKZ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Brig"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aLa" = ( +/obj/effect/turf_decal/tile/neutral, +/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/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/medical/storage) +"aLb" = ( +/obj/structure/table/glass, +/obj/item/storage/box/bodybags{ + pixel_y = 5 + }, +/obj/item/storage/belt/medical, +/obj/item/crowbar, +/obj/item/clothing/neck/stethoscope, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/medical/storage) +"aLc" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/stack/packageWrap, +/obj/item/storage/secure/briefcase, +/obj/item/hand_labeler, +/obj/item/reagent_containers/spray/cleaner, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/heads/cmo"; + dir = 1; + name = "CMO's Office APC"; + pixel_y = 26 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/cmo) +"aLd" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/security/checkpoint/medical"; + dir = 8; + name = "Medical Security Checkpoint APC"; + pixel_x = -24 + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/medical) +"aLe" = ( +/turf/open/floor/plasteel, +/area/engine/break_room) +"aLf" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/delivery, +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"aLg" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1447; + name = "Private AI Channel"; + pixel_y = -28 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aLh" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/door/airlock/virology{ + name = "Virology Access"; + req_access_txt = "39" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/medical/virology) +"aLi" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/sleeper{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/medbay/central) +"aLj" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/medical/medbay/central) +"aLk" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/fore) +"aLl" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/rack, +/obj/item/storage/crayons, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/central) +"aLm" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/medical/medbay/central) +"aLn" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aLo" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aLp" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"aLq" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/vending/tool, +/obj/effect/turf_decal/bot, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"aLr" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/engineering{ + name = "Gravity Generator Access"; + req_one_access_txt = "19;23" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"aLs" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"aLt" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"aLu" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"aLv" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/obj/machinery/meter, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"aLw" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/obj/machinery/meter, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"aLx" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"aLy" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/rad_collector/anchored, +/obj/structure/window/plasma/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/engine/supermatter) +"aLz" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/rad_collector/anchored, +/obj/structure/window/plasma/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/engine/supermatter) +"aLA" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aLB" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/rad_collector/anchored, +/obj/structure/window/plasma/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/engine/supermatter) +"aLC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "Bridge Blast door" + }, +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aLD" = ( +/obj/effect/turf_decal/bot, +/obj/structure/easel, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/central) +"aLE" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/structure/sign/warning/vacuum{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/fore) +"aLF" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"aLH" = ( +/obj/structure/sign/warning/fire, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"aLJ" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/circuit/red, +/area/ai_monitored/turret_protected/ai) +"aLK" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall, +/area/engine/engineering) +"aLL" = ( +/obj/structure/sign/warning/enginesafety, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"aLM" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/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/showroomfloor, +/area/science/research) +"aLN" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"aLO" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/poddoor/preopen{ + id = "telelab"; + name = "Test Chamber Blast Door" + }, +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/door/airlock/research/glass{ + name = "Experimentor Lab"; + req_one_access_txt = "7;29" + }, +/turf/open/floor/engine, +/area/science/explab) +"aLP" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing) +"aLQ" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/storage/box/drinkingglasses{ + pixel_y = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/central) +"aLS" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing) +"aLT" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet, +/obj/item/clothing/under/rank/bartender/purple{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/clothing/suit/apron/purple_bartender, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/central) +"aLU" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Bar" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"aLV" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/fore) +"aLW" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/obj/structure/flora/ausbushes/lavendergrass, +/obj/structure/flora/ausbushes/fernybush, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"aLX" = ( +/obj/structure/flora/rock/pile, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"aLY" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/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 = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2, +/turf/open/floor/plasteel/showroomfloor, +/area/engine/atmos) +"aLZ" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing) +"aMa" = ( +/obj/effect/turf_decal/loading_area, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"aMb" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"aMc" = ( +/obj/structure/sign/warning/nosmoking{ + pixel_x = 28; + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/central) +"aMd" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/genetics) +"aMe" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/heads/hor) +"aMf" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing) +"aMg" = ( +/obj/machinery/atmospherics/components/binary/valve, +/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_toxmix{ + pixel_y = 26 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing/chamber) +"aMh" = ( +/obj/structure/closet/secure_closet/security/engine, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light, +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = -30 + }, +/obj/item/crowbar, +/obj/item/book/manual/wiki/security_space_law, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/engineering) +"aMi" = ( +/obj/structure/table, +/obj/item/extinguisher/mini, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/clothing/mask/breath, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/dark, +/area/maintenance/central) +"aMj" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Distro to Waste" + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aMk" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall, +/area/engine/atmos) +"aMl" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing/chamber) +"aMm" = ( +/obj/structure/table, +/obj/item/storage/toolbox/mechanical, +/obj/item/crowbar, +/obj/item/flashlight, +/obj/item/flashlight, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aMn" = ( +/obj/structure/rack, +/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, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aMo" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plating, +/area/engine/atmos) +"aMp" = ( +/obj/machinery/atmospherics/components/binary/valve, +/obj/machinery/button/ignition/incinerator/toxmix{ + pixel_x = -6; + pixel_y = 30 + }, +/obj/machinery/button/door/incinerator_vent_toxmix{ + pixel_x = 8; + pixel_y = 30 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/power/apc{ + areastring = "/area/science/mixing/chamber"; + dir = 4; + name = "Toxins Chamber APC"; + pixel_x = 26 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing/chamber) +"aMq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plating, +/area/maintenance/starboard) +"aMr" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"aMs" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"aMt" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/closed/wall, +/area/engine/atmos) +"aMu" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"aMv" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/port) +"aMw" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/power/emitter, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"aMx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/maintenance/port) +"aMy" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/visible{ + dir = 4 + }, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aMz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port) +"aMA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/door/airlock/security/glass{ + name = "Security Checkpoint"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"aMB" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, +/obj/item/storage/toolbox/emergency, +/obj/item/extinguisher/mini, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/disposal/incinerator) +"aMC" = ( +/obj/item/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/storage/firstaid/brute{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/brute, +/obj/item/storage/firstaid/brute{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/window/reinforced, +/obj/machinery/door/window/eastleft{ + name = "First-Aid Supplies"; + req_access_txt = "5" + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/medical/storage) +"aMD" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/medical/medbay/central) +"aME" = ( +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/obj/machinery/door/airlock/medical{ + name = "Cloning Lab"; + req_access_txt = "5;68" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/medical/genetics/cloning) +"aMF" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/vending/kink, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/locker) +"aMG" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/engine/atmos) +"aMH" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -26 + }, +/obj/machinery/camera{ + c_tag = "Medbay Lobby"; + dir = 4; + name = "medical camera"; + network = list("ss13","medical") + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aMI" = ( +/obj/structure/table, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/dark/visible, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/pen, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aMJ" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/mmi, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil, +/obj/item/bodypart/chest/robot{ + pixel_y = 4 + }, +/obj/item/bodypart/r_leg/robot{ + pixel_x = 6 + }, +/obj/item/bodypart/r_arm/robot{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/bodypart/l_leg/robot{ + pixel_x = -6 + }, +/obj/item/bodypart/l_arm/robot{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/bodypart/head/robot, +/obj/machinery/light, +/turf/open/floor/plasteel/dark, +/area/storage/tech) +"aMK" = ( +/obj/effect/landmark/secequipment, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/status_display/evac{ + pixel_y = 30 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"aML" = ( +/obj/machinery/light/floor, +/turf/open/floor/engine/n2{ + initial_gas_mix = "n2=1000;TEMP=293.15" + }, +/area/engine/atmos) +"aMM" = ( +/obj/machinery/door/airlock/maintenance{ + name = "security maintenance"; + req_access_txt = "12;63" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/aft) +"aMN" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aMO" = ( +/obj/machinery/light/floor, +/turf/open/floor/engine/o2{ + initial_gas_mix = "o2=1000;TEMP=293.15" + }, +/area/engine/atmos) +"aMP" = ( +/obj/machinery/computer/turbine_computer{ + dir = 1; + id = "incineratorturbine" + }, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/dark, +/area/maintenance/disposal/incinerator) +"aMQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aMR" = ( +/obj/structure/sign/poster/official/wtf_is_co2, +/turf/closed/wall, +/area/engine/atmos) +"aMS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aMT" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"aMU" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 8 + }, +/area/hallway/primary/fore) +"aMV" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/portable_atmospherics/pump, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/showroomfloor, +/area/engine/atmos) +"aMW" = ( +/obj/structure/reflector/single/anchored{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"aMX" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Chapel" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aMY" = ( +/turf/open/floor/engine/air, +/area/engine/atmos) +"aMZ" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics Tank - CO2"; + dir = 4; + name = "atmospherics camera"; + network = list("ss13","engine") + }, +/turf/open/floor/engine/co2{ + initial_gas_mix = "co2=1000;TEMP=293.15" + }, +/area/engine/atmos) +"aNa" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics Tank - Plasma"; + dir = 4; + name = "atmospherics camera"; + network = list("ss13","engine") + }, +/turf/open/floor/engine/plasma{ + initial_gas_mix = "plasma=1000;TEMP=293.15" + }, +/area/engine/atmos) +"aNb" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics Tank - N2O"; + dir = 4; + name = "atmospherics camera"; + network = list("ss13","engine") + }, +/turf/open/floor/engine/n2o{ + initial_gas_mix = "n2o=1000;TEMP=293.15" + }, +/area/engine/atmos) +"aNc" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics Tank - Mix"; + dir = 4; + name = "atmospherics camera"; + network = list("ss13","engine") + }, +/turf/open/floor/engine/vacuum, +/area/engine/atmos) +"aNd" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L5" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aNe" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L7" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aNf" = ( +/obj/structure/reflector/single/anchored{ + dir = 5 + }, +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"aNg" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9; + icon_state = "intact" + }, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"aNh" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aNi" = ( +/obj/machinery/power/compressor{ + comp_id = "incineratorturbine"; + dir = 1; + luminosity = 2 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable, +/obj/machinery/camera{ + c_tag = "Turbine Chamber"; + dir = 4; + name = "turbine camera"; + network = list("turbine") + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"aNj" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L9" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/camera{ + c_tag = "Fore Hallway Centre"; + name = "fore camera" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=NE CPH"; + dir = 8; + location = "N CPH"; + name = "Patrol navbeacon N" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aNk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/fore) +"aNl" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/fore) +"aNm" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/medical/glass{ + name = "Medbay Desk"; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/dark, +/area/medical/medbay/central) +"aNn" = ( +/turf/closed/wall, +/area/medical/medbay/central) +"aNo" = ( +/obj/machinery/door/airlock/engineering{ + name = "Emergency Storage" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/central) +"aNp" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Fore Hallway Robotics Bay"; + dir = 1; + name = "fore camera" + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/fore) +"aNq" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"aNr" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/door/airlock/medical/glass{ + name = "Medbay Storage"; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/dark, +/area/medical/storage) +"aNs" = ( +/obj/structure/closet/cardboard, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"aNu" = ( +/turf/closed/wall, +/area/medical/morgue) +"aNv" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/clonepod, +/turf/open/floor/plasteel/dark, +/area/medical/genetics/cloning) +"aNw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aNx" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/genetics) +"aNy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aNz" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/research) +"aNA" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/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/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/heads/hor) +"aNB" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"aND" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/door/airlock/command{ + name = "Chief Medical Officer's Office"; + req_access_txt = "40" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/medical/storage) +"aNE" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/science/research) +"aNF" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/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" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/research) +"aNG" = ( +/turf/closed/wall, +/area/medical/genetics) +"aNH" = ( +/turf/closed/wall/r_wall, +/area/medical/genetics/cloning) +"aNI" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/table/glass, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/book/manual/wiki/medical_cloning{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/item/crowbar, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/item/paper/guides/jobs/medical/cloning, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/genetics/cloning) +"aNJ" = ( +/obj/structure/table, +/obj/item/storage/box/monkeycubes{ + pixel_y = 3 + }, +/obj/item/reagent_containers/dropper{ + pixel_y = 5 + }, +/obj/item/reagent_containers/syringe, +/obj/item/flashlight/pen, +/obj/machinery/requests_console{ + department = "Genetics"; + name = "Genetics Requests Console"; + pixel_y = 28 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/medical/genetics) +"aNK" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/research) +"aNL" = ( +/turf/closed/wall, +/area/medical/genetics/cloning) +"aNM" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/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/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/research) +"aNO" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/genetics/cloning) +"aNQ" = ( +/turf/closed/wall, +/area/medical/cryo) +"aNR" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer, +/turf/open/floor/plasteel/dark, +/area/medical/cryo) +"aNS" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/item/clipboard, +/obj/item/folder/white, +/obj/item/storage/pill_bottle/mutadone{ + pixel_x = 4 + }, +/obj/item/storage/pill_bottle/mannitol{ + pixel_x = -3 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/genetics) +"aNT" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/research) +"aNU" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/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" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing) +"aNV" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing) +"aNW" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/medical/cryo) +"aNX" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing) +"aNY" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing) +"aNZ" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chemistry_shutters"; + name = "Chemistry Lobby Shutters" + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/medical/glass{ + name = "Chemistry Lab"; + req_access_txt = "5; 33" + }, +/turf/open/floor/plasteel/dark, +/area/medical/chemistry) +"aOa" = ( +/obj/structure/flora/junglebush/b, +/turf/open/floor/grass, +/area/medical/genetics) +"aOb" = ( +/obj/structure/flora/junglebush/large, +/turf/open/floor/grass, +/area/medical/genetics) +"aOc" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing) +"aOd" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/cryo_cell, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/medical/cryo) +"aOe" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/components/unary/cryo_cell, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/medical/cryo) +"aOf" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/box/corners, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing) +"aOg" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/shieldgen, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"aOh" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing/chamber) +"aOi" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) +"aOj" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/cryo) +"aOk" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/central) +"aOl" = ( +/obj/machinery/computer/scan_consolenew{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/camera{ + c_tag = "Genetics"; + name = "medical camera"; + network = list("ss13","medical") + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/genetics) +"aOm" = ( +/obj/item/toy/beach_ball{ + pixel_y = 6 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/grass, +/area/medical/genetics) +"aOn" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/components/binary/valve{ + dir = 8 + }, +/obj/effect/landmark/start/scientist, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing/chamber) +"aOo" = ( +/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, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/obj/machinery/meter, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing/chamber) +"aOp" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/cryo) +"aOq" = ( +/obj/structure/flora/grass/jungle/b, +/obj/structure/flora/ausbushes/brflowers, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/mob/living/carbon/monkey, +/turf/open/floor/grass, +/area/medical/genetics) +"aOr" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/healthanalyzer, +/obj/item/storage/firstaid/regular{ + empty = 1; + name = "First-Aid (empty)" + }, +/turf/open/floor/wood, +/area/maintenance/port) +"aOs" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/radio{ + desc = "An old handheld radio. You could use it, if you really wanted to."; + icon_state = "radio"; + name = "old radio" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"aOt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port) +"aOu" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/mob/living/simple_animal/bot/cleanbot{ + name = "Scrubs, MD"; + on = 0 + }, +/turf/open/floor/plasteel/dark, +/area/medical/storage) +"aOv" = ( +/obj/machinery/rnd/production/techfab/department/medical, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/medical/storage) +"aOw" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/box, +/obj/machinery/shower{ + dir = 4; + name = "emergency shower" + }, +/turf/open/floor/plasteel, +/area/medical/medbay/central) +"aOx" = ( +/obj/machinery/computer/scan_consolenew{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_x = 24; + pixel_y = 24 + }, +/obj/structure/mirror{ + pixel_x = 26 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/medical/genetics) +"aOy" = ( +/obj/machinery/door/airlock/maintenance{ + name = "bar maintenance"; + req_access_txt = "25" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/central) +"aOz" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/storage/box/masks{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/item/storage/box/gloves{ + pixel_y = 2 + }, +/turf/open/floor/plasteel/dark, +/area/medical/medbay/central) +"aOA" = ( +/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/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-10" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aOB" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aOC" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/ausbushes/lavendergrass, +/mob/living/carbon/monkey, +/turf/open/floor/grass, +/area/medical/genetics) +"aOD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aOE" = ( +/obj/structure/sink/puddle, +/obj/structure/flora/ausbushes/reedbush{ + pixel_y = 5 + }, +/turf/open/floor/grass, +/area/medical/genetics) +"aOF" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/fore) +"aOG" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/fore) +"aOH" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Bar" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"aOI" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/structure/sign/warning/securearea{ + name = "EMERGENCY STORAGE"; + pixel_y = -32 + }, +/obj/machinery/light/small, +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"aOJ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"aOK" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/fore) +"aOM" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/machinery/vending/snack/random, +/turf/open/floor/plasteel/dark, +/area/science/research) +"aON" = ( +/obj/item/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/storage/firstaid/fire{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/fire, +/obj/item/storage/firstaid/fire{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/status_display/evac{ + pixel_x = -32 + }, +/obj/structure/sign/warning/nosmoking{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/medical/storage) +"aOO" = ( +/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/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/storage) +"aOP" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aOQ" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/storage) +"aOR" = ( +/obj/machinery/computer/card/minor/cmo{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/computer/security/telescreen/cmo{ + dir = 8; + network = list("medical"); + pixel_x = 28 + }, +/obj/machinery/button/door{ + id = "cmoprivacy"; + name = "Privacy Shutters Toggle"; + pixel_x = 24; + pixel_y = -24 + }, +/obj/machinery/button/door{ + id = "emmd"; + name = "Medical Lockdown Toggle"; + pixel_x = 40; + pixel_y = -24 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/cmo) +"aOS" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aOT" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aOU" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, +/obj/effect/turf_decal/box, +/obj/structure/disposalpipe/sorting/mail{ + dir = 4; + name = "library sorting disposal pipe"; + sortType = 16 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aOV" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aOW" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall, +/area/medical/storage) +"aOX" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/heads/cmo) +"aOY" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/sorting/mail{ + dir = 4; + name = "bar sorting disposal pipe"; + sortType = 19 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aOZ" = ( +/turf/closed/wall, +/area/medical/storage) +"aPb" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/item/cartridge/medical{ + pixel_x = 6; + pixel_y = 2 + }, +/obj/item/cartridge/medical{ + pixel_x = 5; + pixel_y = 1 + }, +/obj/item/cartridge/medical{ + pixel_x = 4 + }, +/obj/item/cartridge/chemistry{ + pixel_x = -6; + pixel_y = 8 + }, +/obj/item/clothing/neck/stethoscope{ + pixel_y = 5 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/heads/cmo) +"aPc" = ( +/turf/closed/wall/r_wall, +/area/medical/storage) +"aPd" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aPe" = ( +/obj/machinery/dna_scannernew, +/obj/effect/turf_decal/delivery, +/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/dark, +/area/medical/genetics) +"aPf" = ( +/turf/closed/wall/rust, +/area/medical/virology) +"aPg" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aPh" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/cryo) +"aPi" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/cryo) +"aPj" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-10" + }, +/obj/machinery/button/door{ + id = "Biohazard"; + name = "Emergency Research Lockdown"; + pixel_x = -24; + pixel_y = 6; + req_access_txt = "47" + }, +/obj/machinery/light_switch{ + pixel_x = -24; + pixel_y = -6 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/research) +"aPk" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aPl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 2; + name = "toxins sorting disposal pipe"; + sortType = 25 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/research) +"aPm" = ( +/obj/machinery/door/firedoor/heavy, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/science/mixing/chamber) +"aPn" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/genetics/cloning) +"aPo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/research) +"aPp" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/chair/office/light{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/heads/cmo) +"aPq" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/blue, +/obj/item/clipboard, +/obj/item/folder/white{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/folder/blue, +/obj/item/clothing/glasses/hud/health, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/heads/cmo) +"aPr" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing) +"aPs" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/pen, +/obj/item/toy/figure/engineer{ + pixel_x = 8; + pixel_y = 6 + }, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"aPt" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing) +"aPu" = ( +/obj/machinery/dna_scannernew, +/obj/effect/turf_decal/delivery, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/medical/genetics) +"aPv" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aPw" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing) +"aPx" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/storage) +"aPz" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/turf_decal/box, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aPA" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/cmo) +"aPB" = ( +/obj/effect/turf_decal/bot, +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/recharger, +/obj/machinery/status_display/evac{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/cmo) +"aPC" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/medical/storage) +"aPD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing) +"aPE" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/medical/cryo) +"aPF" = ( +/obj/item/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/storage/firstaid/toxin{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/toxin, +/obj/item/storage/firstaid/toxin{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/medical/storage) +"aPG" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/light, +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + name = "Science RC"; + pixel_y = -30; + receive_ore_updates = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing) +"aPH" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aPI" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/dark, +/area/medical/storage) +"aPJ" = ( +/obj/machinery/power/emitter, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/fire{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"aPK" = ( +/obj/machinery/door/firedoor, +/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/airlock/public/glass{ + name = "Bar" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"aPL" = ( +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot_white, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"aPM" = ( +/turf/open/floor/wood, +/area/maintenance/port) +"aPN" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/sign/poster/official/cohiba_robusto_ad{ + pixel_y = -32 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/box/matches{ + pixel_x = -4; + pixel_y = 6 + }, +/obj/item/lighter{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/lighter, +/obj/item/stack/medical/bruise_pack, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"aPO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port) +"aPP" = ( +/obj/structure/closet/secure_closet/medical3, +/obj/item/storage/belt/medical, +/obj/item/clothing/neck/stethoscope, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/machinery/camera{ + c_tag = "Medbay Storage"; + dir = 4; + name = "medical camera"; + network = list("ss13","medical") + }, +/turf/open/floor/plasteel/dark, +/area/medical/storage) +"aPQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/central) +"aPR" = ( +/obj/item/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/storage/firstaid/o2{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/o2, +/obj/item/storage/firstaid/o2{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/machinery/door/window/eastleft{ + dir = 8; + name = "First-Aid Supplies"; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/dark, +/area/medical/storage) +"aPS" = ( +/obj/structure/grille, +/obj/structure/barricade/wooden, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"aPT" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/grunge{ + name = "Bar Storage"; + req_access_txt = "25" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"aPU" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/storage) +"aPV" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/pen, +/obj/item/stamp/cmo{ + pixel_x = 8; + pixel_y = 6 + }, +/obj/machinery/light_switch{ + pixel_x = -6; + pixel_y = -24 + }, +/obj/machinery/keycard_auth{ + pixel_x = 6; + pixel_y = -24 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/heads/cmo) +"aPW" = ( +/obj/machinery/microwave{ + pixel_y = 5 + }, +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/sign/poster/official/no_erp{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/dark, +/area/medical/storage) +"aPX" = ( +/obj/structure/plasticflaps/opaque, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/window/northleft{ + name = "Cloning Delivery Access"; + req_access_txt = "50" + }, +/turf/open/floor/plasteel/dark, +/area/medical/genetics/cloning) +"aPY" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"aPZ" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/clothing/gloves/color/black, +/obj/item/crowbar/red, +/turf/open/floor/plasteel/dark, +/area/maintenance/central) +"aQa" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aQb" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/medical/medbay/central) +"aQc" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/medbay/central) +"aQd" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aQe" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aQf" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/door/airlock/security/glass{ + name = "Medbay Security Post"; + req_access_txt = "63" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/medical) +"aQg" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel/dark, +/area/medical/medbay/central) +"aQh" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aQi" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/turf_decal/caution{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aQj" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aQk" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aQl" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aQm" = ( +/obj/structure/closet/crate/wooden/toy, +/obj/effect/turf_decal/bot, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/machinery/newscaster{ + pixel_y = 30 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/theatre) +"aQn" = ( +/obj/structure/closet/secure_closet/medical3, +/obj/item/storage/belt/medical, +/obj/item/clothing/neck/stethoscope, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/radio/intercom{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/dark, +/area/medical/storage) +"aQo" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aQp" = ( +/obj/structure/chair/sofa/left{ + color = "#c45c57" + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar/atrium) +"aQq" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/landmark/start/medical_doctor, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/storage) +"aQr" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aQs" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aQt" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aQu" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/virology{ + name = "Virology Access"; + req_access_txt = "39" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plasteel/dark, +/area/medical/virology) +"aQv" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/storage) +"aQw" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/bar/atrium) +"aQx" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Atrium Vendors"; + dir = 8; + name = "diner camera" + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar/atrium) +"aQy" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aQz" = ( +/obj/machinery/shieldgen, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"aQA" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/storage/firstaid/regular{ + pixel_x = 2 + }, +/obj/item/healthanalyzer, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Chief Medical Officer's Desk"; + departmentType = 5; + name = "Chief Medical Officer RC"; + pixel_y = 28 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/cmo) +"aQB" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aQC" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aQD" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aQE" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple, +/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/showroomfloor, +/area/science/mixing) +"aQF" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/landmark/start/medical_doctor, +/turf/open/floor/plasteel, +/area/medical/medbay/central) +"aQG" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/storage) +"aQH" = ( +/obj/machinery/vending/medical, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/medical/storage) +"aQI" = ( +/turf/closed/wall, +/area/security/checkpoint/medical) +"aQJ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/checkpoint/medical) +"aQK" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aQM" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/power/apc{ + areastring = "/area/medical/medbay/central"; + name = "Medbay Central APC"; + pixel_y = -24 + }, +/obj/structure/cable, +/obj/machinery/light, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aQN" = ( +/turf/closed/wall, +/area/medical/surgery) +"aQO" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/central) +"aQQ" = ( +/obj/machinery/computer/secure_data, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/medical) +"aQR" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/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/showroomfloor, +/area/medical/medbay/central) +"aQS" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aQT" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/storage) +"aQU" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/fitness/recreation) +"aQV" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/chemistry) +"aQW" = ( +/turf/closed/wall, +/area/medical/chemistry) +"aQX" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/vending/medical, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/medical/medbay/central) +"aQY" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/vault{ + name = "Vault"; + req_access_txt = "53" + }, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/plasteel/dark, +/area/security/nuke_storage) +"aQZ" = ( +/obj/machinery/computer/crew{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/medbay/central) +"aRa" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/delivery, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/central) +"aRb" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/central) +"aRc" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/central) +"aRd" = ( +/obj/machinery/computer/med_data{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/cmo) +"aRe" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aRf" = ( +/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/showroomfloor, +/area/medical/medbay/central) +"aRg" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 8; + name = "medical sorting disposal pipe"; + sortType = 9 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/storage) +"aRh" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aRi" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/theatre) +"aRj" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aRk" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aRl" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L1" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/sign/directions/security{ + dir = 8; + pixel_y = 32 + }, +/obj/structure/sign/directions/medical{ + dir = 8; + pixel_y = 40 + }, +/obj/structure/sign/directions/command{ + dir = 8; + pixel_y = 24 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aRm" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L3" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aRn" = ( +/obj/machinery/smartfridge/chemistry/preloaded, +/turf/closed/wall, +/area/medical/chemistry) +"aRo" = ( +/obj/structure/table/wood, +/obj/structure/mirror{ + pixel_x = 26 + }, +/obj/item/clipboard, +/obj/item/toy/figure/mime{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/toy/dummy{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/toy/figure/clown, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/theatre) +"aRp" = ( +/obj/structure/chair/sofa/right{ + color = "#c45c57"; + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar/atrium) +"aRq" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/vending/snack/random, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/crew_quarters/bar/atrium"; + dir = 1; + name = "Atrium APC"; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar/atrium) +"aRr" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -26 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aRs" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/pen, +/obj/machinery/camera{ + c_tag = "Starboard Hallway Research Desk"; + name = "starboard camera" + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/starboard) +"aRt" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/medical/medbay/central) +"aRu" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L11" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aRv" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L13" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/sign/directions/evac{ + dir = 4; + pixel_y = 24 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aRw" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/sign/directions/science{ + dir = 4; + pixel_y = 40 + }, +/obj/structure/sign/directions/supply{ + dir = 4; + pixel_y = 32 + }, +/obj/structure/sign/directions/engineering{ + dir = 4; + pixel_y = 24 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aRx" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 2; + name = "science sorting disposal pipe"; + sortType = 12 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/lab) +"aRy" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aRz" = ( +/obj/structure/closet/secure_closet/security/science, +/obj/item/crowbar, +/obj/item/book/manual/wiki/security_space_law, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/power/apc{ + areastring = "/area/security/checkpoint/science/research"; + dir = 8; + name = "Research Security APC"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/light_switch{ + pixel_x = -24; + pixel_y = 24 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/science/research) +"aRA" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/checkpoint/science/research) +"aRB" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aRC" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aRD" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/storage) +"aRE" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aRF" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Library" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/library) +"aRG" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/assembly/timer{ + desc = "Used to time things. Works well with contraptions which has to count down. Tick tock. But slightly shifted to the left."; + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/assembly/timer{ + desc = "Used to time things. Works well with contraptions which has to count down. Tick tock. But slightly shifted to the left."; + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/assembly/timer{ + desc = "Used to time things. Works well with contraptions which has to count down. Tick tock. But slightly shifted to the left."; + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/stack/cable_coil{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/cable_coil, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/screwdriver{ + pixel_y = 5 + }, +/turf/open/floor/plasteel/dark, +/area/medical/chemistry) +"aRH" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/chair/office/light, +/obj/effect/landmark/start/medical_doctor, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aRI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/showroomfloor, +/area/security/checkpoint/science/research) +"aRJ" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/science/research) +"aRK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port) +"aRL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/girder/displaced, +/obj/structure/grille/broken, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port) +"aRM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aRN" = ( +/obj/machinery/chem_heater, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/medical/chemistry) +"aRO" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/medical/chemistry) +"aRP" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet{ + name = "medical locker" + }, +/obj/structure/grille/broken, +/obj/item/clothing/under/skirt/blue{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/clothing/under/rank/medical, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/mask/surgical, +/turf/open/floor/plating, +/area/maintenance/port) +"aRQ" = ( +/obj/structure/girder, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/aft) +"aRR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port) +"aRS" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aRT" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port) +"aRU" = ( +/obj/machinery/vending/wardrobe/medi_wardrobe, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/dark, +/area/medical/storage) +"aRV" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/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/medical/storage) +"aRW" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/medical/storage) +"aRX" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/disposalpipe/sorting/mail{ + dir = 4; + name = "theatre sorting disposal pipe"; + sortType = 18 + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/fore) +"aRY" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"aRZ" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-18" + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aSa" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/folder/white{ + pixel_x = -6 + }, +/obj/item/book/manual/wiki/medicine, +/obj/item/clothing/neck/stethoscope, +/obj/item/pen, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/medical/medbay/central) +"aSb" = ( +/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 = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/sign/departments/chemistry{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aSc" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aSd" = ( +/obj/machinery/computer/med_data{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/light, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/medbay/central) +"aSe" = ( +/obj/structure/sign/departments/medbay/alt{ + pixel_x = -32 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aSf" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall, +/area/maintenance/port/fore) +"aSg" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chemistry_shutters_2"; + name = "Chemistry Hall Shutters" + }, +/turf/open/floor/plating, +/area/medical/chemistry) +"aSh" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/storage/fancy/cigarettes/cigars{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/item/storage/fancy/cigarettes/cigars/havana{ + pixel_x = 2; + pixel_y = 8 + }, +/obj/item/storage/fancy/cigarettes/cigars/cohiba{ + pixel_x = 2; + pixel_y = 10 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"aSi" = ( +/obj/structure/table/glass, +/obj/item/clipboard{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/item/book/manual/wiki/chemistry{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/book/manual/wiki/grenades, +/obj/item/toy/figure/chemist, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/medical/chemistry) +"aSj" = ( +/obj/structure/closet/secure_closet/atmospherics, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aSk" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/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 = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/computer/atmos_control/tank/nitrogen_tank{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/engine/atmos) +"aSl" = ( +/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, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aSm" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai_upload) +"aSn" = ( +/obj/structure/table/wood, +/obj/structure/mirror{ + pixel_x = -26 + }, +/obj/item/reagent_containers/food/snacks/pie/cream, +/obj/item/clothing/under/lobster, +/obj/item/clothing/head/lobsterhat, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/theatre) +"aSo" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + dir = 4; + freq = 1400; + location = "Medbay" + }, +/obj/structure/plasticflaps/opaque, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Medical Delivery Access"; + req_access_txt = "50" + }, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/storage) +"aSp" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/theatre) +"aSq" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/random{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/central) +"aSr" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/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 = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4; + name = "Nitrogen Outlet" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/engine/atmos) +"aSs" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/item/folder/yellow, +/obj/machinery/door/poddoor/preopen{ + id = "atmos"; + name = "Atmospherics Blast Door" + }, +/obj/machinery/door/window/westright{ + name = "Atmospherics Desk"; + req_access_txt = "24" + }, +/turf/open/floor/plating, +/area/engine/break_room) +"aSt" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/item/folder/yellow, +/obj/machinery/door/poddoor/preopen{ + id = "Engineering"; + name = "Engineering Blast Doors" + }, +/obj/machinery/door/window/eastleft{ + name = "Engineering Desk"; + req_access_txt = "10" + }, +/turf/open/floor/plating, +/area/engine/break_room) +"aSu" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/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/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/bar/atrium) +"aSv" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aSw" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/obj/effect/landmark/start/chemist, +/turf/open/floor/plasteel/dark, +/area/medical/chemistry) +"aSx" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/clipboard, +/obj/item/storage/firstaid/regular, +/turf/open/floor/plasteel/dark, +/area/medical/medbay/central) +"aSy" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/stack/medical/gauze, +/obj/item/stack/medical/ointment, +/obj/item/stack/medical/bruise_pack{ + pixel_x = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/medbay/central) +"aSz" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/medical/medbay/central) +"aSA" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/vending/cola/random, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/dark, +/area/medical/storage) +"aSB" = ( +/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 = 1 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aSC" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/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/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/landmark/start/scientist, +/turf/open/floor/plasteel/showroomfloor, +/area/science/lab) +"aSD" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/science/lab) +"aSE" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aSF" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/lab) +"aSG" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/surgery) +"aSH" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/checkpoint/science/research) +"aSI" = ( +/obj/structure/filingcabinet, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/science/research) +"aSJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/storage) +"aSK" = ( +/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/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -26 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing) +"aSM" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing) +"aSN" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/storage/box/bodybags{ + pixel_y = 5 + }, +/obj/item/pen, +/obj/machinery/light, +/turf/open/floor/plasteel/dark, +/area/medical/medbay/central) +"aSO" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/storage) +"aSP" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Library" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/library) +"aSQ" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/landmark/start/medical_doctor, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/storage) +"aSR" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/folder/white, +/obj/item/reagent_containers/glass/beaker, +/obj/item/reagent_containers/glass/beaker, +/obj/item/reagent_containers/dropper, +/obj/item/reagent_containers/dropper, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/medical/medbay/central) +"aSS" = ( +/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 = 1 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing) +"aST" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aSU" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/storage) +"aSV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard) +"aSW" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/item/crowbar/red, +/obj/item/healthanalyzer, +/turf/open/floor/plasteel/dark, +/area/medical/medbay/central) +"aSX" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall, +/area/medical/medbay/central) +"aSY" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aSZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"aTa" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/light, +/obj/machinery/newscaster{ + pixel_y = -30 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/storage) +"aTb" = ( +/obj/machinery/door/airlock/grunge{ + name = "Mass Driver"; + req_access_txt = "22" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"aTc" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/computer/security/telescreen{ + desc = "Used for monitoring medbay to ensure patient safety."; + name = "Medbay Monitor"; + network = list("medical") + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/medical) +"aTd" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/space/nearstation) +"aTe" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"aTf" = ( +/obj/machinery/door/airlock/maintenance{ + name = "crematorium maintenance"; + req_one_access_txt = "27" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"aTg" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/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/showroomfloor, +/area/medical/medbay/central) +"aTh" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/fernybush, +/turf/open/floor/grass, +/area/medical/virology) +"aTi" = ( +/obj/structure/flora/junglebush/large, +/obj/structure/flora/ausbushes/ywflowers, +/turf/open/floor/grass, +/area/medical/virology) +"aTj" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/disposalpipe/junction{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aTk" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/port) +"aTl" = ( +/obj/structure/closet/crate/freezer, +/obj/item/reagent_containers/blood, +/obj/item/reagent_containers/blood{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/reagent_containers/blood/AMinus, +/obj/item/reagent_containers/blood/BMinus{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/reagent_containers/blood/BPlus{ + pixel_x = 1; + pixel_y = 2 + }, +/obj/item/reagent_containers/blood/OMinus, +/obj/item/reagent_containers/blood/OPlus{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/reagent_containers/blood/random, +/obj/item/reagent_containers/blood/random, +/obj/item/reagent_containers/blood/random, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/medical/virology) +"aTm" = ( +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aTn" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/explab) +"aTo" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/machinery/camera{ + c_tag = "Medbay Central"; + name = "medical camera"; + network = list("ss13","medical") + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/medical/medbay/central) +"aTp" = ( +/obj/structure/table/glass, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/glasses/science{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/clothing/glasses/science, +/obj/item/storage/pill_bottle/epinephrine, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/medical/chemistry) +"aTq" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/science/explab) +"aTr" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/port) +"aTs" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/checkpoint/medical) +"aTt" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"aTu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/central) +"aTv" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/central) +"aTw" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/chemistry) +"aTx" = ( +/turf/closed/wall/r_wall, +/area/medical/surgery) +"aTz" = ( +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/central) +"aTA" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aTB" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/computer/libraryconsole{ + pixel_y = 5 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"aTC" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/kitchenspike, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"aTD" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet/l3closet/virology, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/tank/internals/emergency_oxygen, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Virology Airlock"; + name = "medical camera"; + network = list("ss13","medical") + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/turf/open/floor/plasteel/dark, +/area/medical/virology) +"aTE" = ( +/obj/machinery/light, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"aTF" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/chemistry) +"aTG" = ( +/obj/structure/flora/ausbushes/palebush, +/obj/machinery/light, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"aTH" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/machinery/light_switch{ + pixel_x = 24 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/theatre) +"aTI" = ( +/obj/structure/chair/office/light{ + dir = 1; + pixel_y = 3 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/start/depsec/medical, +/turf/open/floor/plasteel/showroomfloor, +/area/security/checkpoint/medical) +"aTJ" = ( +/obj/structure/chair/sofa/right{ + color = "#c45c57" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar/atrium) +"aTK" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aTL" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=1"; + dir = 8; + freq = 1400; + location = "Bar" + }, +/obj/structure/plasticflaps/opaque, +/obj/machinery/door/window/southleft{ + dir = 8; + name = "Bar Delivery Access"; + req_access_txt = "25" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"aTM" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aTN" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/port) +"aTO" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/storage/box/bodybags{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/storage/box/beakers, +/turf/open/floor/plasteel/dark, +/area/medical/medbay/central) +"aTP" = ( +/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, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aTQ" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/lab) +"aTR" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/lab) +"aTS" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/lab) +"aTT" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/lab) +"aTU" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/research{ + name = "Toxins Lab"; + req_access_txt = "8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/mixing) +"aTV" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/start/chemist, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/chemistry) +"aTW" = ( +/obj/structure/table/glass, +/obj/item/folder/white, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/reagent_containers/glass/bottle/charcoal{ + pixel_x = 6 + }, +/obj/item/reagent_containers/glass/bottle/epinephrine{ + pixel_x = -6 + }, +/obj/item/reagent_containers/syringe, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/medical/chemistry) +"aTX" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/chemistry) +"aTY" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/checkpoint/science/research) +"aTZ" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/checkpoint/science/research) +"aUa" = ( +/turf/closed/wall, +/area/gateway) +"aUb" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/structure/noticeboard{ + pixel_y = 32 + }, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/under/syndicate/tacticool, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"aUc" = ( +/obj/effect/turf_decal/loading_area, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/storage) +"aUd" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/storage) +"aUe" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Head of Security's Office"; + req_access_txt = "58" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"aUf" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -26 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"aUg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/obj/effect/landmark/start/scientist, +/turf/open/floor/plasteel/showroomfloor, +/area/science/storage) +"aUh" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Chief Engineer's Office"; + req_access_txt = "56" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"aUi" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/storage) +"aUj" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/shieldwallgen, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"aUk" = ( +/obj/effect/turf_decal/loading_area, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/storage) +"aUl" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing) +"aUm" = ( +/obj/machinery/rnd/production/protolathe/department/science, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Research Lab"; + dir = 8; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/lab) +"aUn" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing) +"aUo" = ( +/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, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/mixing) +"aUp" = ( +/obj/structure/chair, +/turf/open/floor/engine/vacuum, +/area/science/test_area) +"aUq" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Distro to Connector" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port) +"aUr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port) +"aUs" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/turf/open/floor/plating, +/area/maintenance/port) +"aUt" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/obj/structure/cable, +/obj/machinery/power/apc{ + areastring = "/area/medical/storage"; + name = "Medbay Storage APC"; + pixel_y = -24 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/storage) +"aUu" = ( +/obj/structure/table/optable, +/obj/effect/turf_decal/bot, +/obj/structure/sign/warning/nosmoking{ + pixel_y = -32 + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/surgery) +"aUv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port) +"aUw" = ( +/obj/structure/table/glass, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/pen, +/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/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/storage) +"aUx" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/landmark/start/chemist, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/medical/chemistry) +"aUy" = ( +/obj/structure/table/glass, +/obj/item/clothing/gloves/color/latex, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/storage/box/monkeycubes, +/obj/item/reagent_containers/syringe/antiviral, +/obj/item/reagent_containers/dropper, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/reagent_dispensers/virusfood{ + pixel_y = -30 + }, +/turf/open/floor/plasteel/dark, +/area/medical/virology) +"aUz" = ( +/obj/structure/flora/rock/pile, +/turf/open/floor/plating/asteroid/airless, +/area/space/nearstation) +"aUA" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-18" + }, +/obj/machinery/camera{ + c_tag = "Recovery Room"; + dir = 1; + name = "medical camera"; + network = list("ss13","medical") + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/surgery) +"aUB" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/surgery) +"aUC" = ( +/obj/machinery/vending/wardrobe/viro_wardrobe, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/turf/open/floor/plasteel/dark, +/area/medical/virology) +"aUD" = ( +/obj/machinery/computer/pandemic, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/dark, +/area/medical/virology) +"aUE" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/storage) +"aUF" = ( +/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 = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-18" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/storage) +"aUG" = ( +/turf/closed/wall/mineral/plastitanium, +/area/maintenance/port) +"aUH" = ( +/obj/structure/displaycase/trophy, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/grimy, +/area/library) +"aUI" = ( +/obj/machinery/camera{ + c_tag = "Xenobiology Cell 1"; + dir = 4; + name = "xenobiology camera"; + network = list("ss13","rd","xeno") + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"aUJ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/medical/virology) +"aUK" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/surgery) +"aUL" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/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" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/checkpoint/medical) +"aUM" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/gibber, +/obj/machinery/camera{ + c_tag = "Kitchen Cold Room"; + name = "diner camera" + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/obj/effect/decal/cleanable/blood/gibs/old, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"aUN" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aUO" = ( +/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 = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/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/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aUP" = ( +/obj/structure/sign/warning/biohazard, +/turf/closed/wall/r_wall, +/area/medical/virology) +"aUQ" = ( +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/security{ + name = "Prison Wing"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"aUR" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/landmark/start/medical_doctor, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/surgery) +"aUS" = ( +/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/turf_decal/tile/yellow{ + dir = 1 + }, +/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/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/chemistry) +"aUT" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + pixel_x = -5; + pixel_y = 7 + }, +/obj/item/pen{ + pixel_x = 8; + pixel_y = 5 + }, +/obj/item/pen/red{ + pixel_x = 5; + pixel_y = 1 + }, +/obj/item/toy/figure/curator, +/turf/open/floor/plasteel/grimy, +/area/library) +"aUU" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/landmark/start/medical_doctor, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/storage) +"aUV" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-10" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/chemistry) +"aUW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/newscaster{ + pixel_x = 30; + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/maintenance/port/fore) +"aUX" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/medical/virology) +"aUY" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/chemistry) +"aUZ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aVa" = ( +/obj/machinery/chem_dispenser/drinks/beer{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/table, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/obj/machinery/camera{ + c_tag = "Bar Counter"; + dir = 8; + name = "bar camera" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"aVb" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-05" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/fitness/recreation"; + dir = 1; + name = "Recreation Area APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"aVc" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai_upload) +"aVd" = ( +/obj/structure/chair/sofa/left{ + color = "#c45c57" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar/atrium) +"aVe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"aVf" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-18" + }, +/obj/machinery/light_switch{ + pixel_x = -24; + pixel_y = -6 + }, +/obj/machinery/button/door{ + id = "research_shutters"; + name = "Research Shutter Toggle"; + pixel_x = -24; + pixel_y = 6; + req_access_txt = "7" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/lab) +"aVg" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/virology) +"aVh" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/light/small, +/obj/machinery/iv_drip, +/obj/effect/turf_decal/bot_white/right, +/turf/open/floor/plasteel/dark, +/area/medical/virology) +"aVi" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/lab) +"aVj" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/grunge{ + name = "Morgue"; + req_access_txt = "9" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"aVk" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/radio{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/item/pen, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = -30 + }, +/obj/machinery/button/door{ + id = "Biohazard"; + name = "Emergency Research Lockdown"; + pixel_x = 24; + pixel_y = -24; + req_access_txt = "47" + }, +/obj/machinery/camera{ + c_tag = "Science Security Post"; + dir = 8; + name = "science camera"; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/science/research) +"aVl" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/storage) +"aVm" = ( +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/landmark/blobstart, +/turf/open/floor/plasteel/showroomfloor, +/area/science/storage) +"aVn" = ( +/obj/machinery/door/airlock/grunge{ + name = "Morgue"; + req_one_access_txt = "5;6;22" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aVo" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/obj/machinery/camera{ + c_tag = "Toxins Storage"; + dir = 8; + name = "science camera"; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/storage) +"aVp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"aVq" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/kitchenspike, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"aVr" = ( +/obj/structure/flora/grass/jungle/b, +/obj/structure/flora/ausbushes/fullgrass, +/obj/structure/flora/ausbushes/brflowers, +/obj/structure/flora/ausbushes/leafybush, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/grass, +/area/chapel/main) +"aVs" = ( +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/obj/effect/turf_decal/bot_white/left, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/turf/open/floor/plasteel/dark, +/area/medical/surgery) +"aVt" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"aVu" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aVv" = ( +/obj/machinery/chem_master, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "chemistry_shutters"; + name = "Lobby Shutters Toggle"; + pixel_x = 24; + pixel_y = 24; + req_access_txt = "5; 33" + }, +/turf/open/floor/plasteel/dark, +/area/medical/chemistry) +"aVw" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/taperecorder{ + pixel_x = 4; + pixel_y = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"aVx" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aVy" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/sorting/mail{ + dir = 8; + name = "cmo sorting disposal pipe"; + sortType = 10 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/storage) +"aVz" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port) +"aVA" = ( +/obj/structure/table/glass, +/obj/item/book/manual/wiki/infections{ + pixel_y = 6 + }, +/obj/item/healthanalyzer, +/obj/item/reagent_containers/spray/cleaner, +/obj/item/clothing/glasses/hud/health, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/requests_console{ + department = "Virology"; + name = "Virology RC"; + pixel_x = 29; + receive_ore_updates = 1 + }, +/obj/machinery/camera{ + c_tag = "Virology"; + dir = 8; + name = "medical camera"; + network = list("ss13","medical") + }, +/turf/open/floor/plasteel/dark, +/area/medical/virology) +"aVB" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/structure/closet/crate/freezer/surplus_limbs, +/obj/item/reagent_containers/glass/beaker/synthflesh, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/dark, +/area/medical/surgery) +"aVC" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/engine/vacuum, +/area/science/test_area) +"aVD" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet/l3closet/virology, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/tank/internals/emergency_oxygen, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/medical/virology) +"aVE" = ( +/obj/structure/table, +/obj/item/folder/white, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/item/toy/figure/virologist{ + pixel_x = -6; + pixel_y = 8 + }, +/obj/item/restraints/handcuffs, +/obj/item/pen, +/turf/open/floor/plasteel/dark, +/area/medical/virology) +"aVF" = ( +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/engine/o2{ + initial_gas_mix = "o2=1000;TEMP=293.15" + }, +/area/engine/atmos) +"aVG" = ( +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/engine/n2o{ + initial_gas_mix = "n2o=1000;TEMP=293.15" + }, +/area/engine/atmos) +"aVH" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall, +/area/medical/genetics/cloning) +"aVI" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/remains/human, +/turf/open/floor/engine/vacuum, +/area/science/test_area) +"aVJ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "rdprivacy"; + name = "Director's Privacy Blast Door" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/hor) +"aVK" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/dna_scannernew, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/medical/genetics/cloning) +"aVL" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/obj/machinery/camera{ + c_tag = "Medical Security Post"; + dir = 1; + name = "medical camera"; + network = list("ss13","medical") + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/checkpoint/medical) +"aVM" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/closed/wall/rust, +/area/janitor) +"aVN" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/engine/vacuum, +/area/science/test_area) +"aVO" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/light/small, +/turf/open/floor/plating/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/port) +"aVP" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"aVQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aVR" = ( +/obj/structure/table/glass, +/obj/machinery/reagentgrinder{ + pixel_y = 5 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/newscaster{ + pixel_y = -30 + }, +/turf/open/floor/plasteel/dark, +/area/medical/virology) +"aVS" = ( +/obj/machinery/door/window/southleft{ + name = "Mass Driver Door"; + req_access_txt = "7" + }, +/obj/effect/turf_decal/loading_area, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/mixing) +"aVT" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/table/glass, +/obj/item/storage/box/bodybags{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/item/storage/box/bodybags{ + pixel_y = 2 + }, +/obj/item/pen, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/medical/genetics/cloning) +"aVU" = ( +/obj/structure/sign/departments/medbay/alt, +/turf/closed/wall, +/area/medical/genetics/cloning) +"aVV" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/machinery/light, +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/checkpoint/medical) +"aVW" = ( +/obj/structure/table/glass, +/obj/item/folder/white, +/obj/item/folder/white, +/obj/item/crowbar/red, +/obj/item/wrench, +/obj/item/storage/box/syringes{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/item/storage/box/beakers{ + pixel_y = 2 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/structure/noticeboard{ + dir = 1; + pixel_y = -28 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/virology) +"aVX" = ( +/obj/machinery/modular_computer/console/preset/research{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/computer/security/telescreen/rd{ + dir = 8; + pixel_x = 28 + }, +/obj/machinery/keycard_auth{ + pixel_x = 24; + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) +"aVY" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot_white, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"aVZ" = ( +/obj/structure/bodycontainer/morgue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot_white, +/obj/machinery/camera{ + c_tag = "Morgue"; + name = "medical camera"; + network = list("ss13","medical") + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"aWa" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/port) +"aWb" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot_white, +/obj/structure/extinguisher_cabinet{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"aWc" = ( +/obj/structure/bodycontainer/morgue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot_white, +/obj/structure/sign/poster/contraband/random{ + pixel_x = 32 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"aWd" = ( +/turf/open/floor/plating/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/port) +"aWe" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot_white, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"aWf" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/meter, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port) +"aWg" = ( +/obj/structure/bodycontainer/morgue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"aWh" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/bot_white, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"aWi" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4; + name = "Connector to Medical" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port) +"aWj" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/newscaster{ + pixel_y = 30 + }, +/obj/machinery/camera{ + c_tag = "Chief Medical Officer's Office"; + name = "medical camera"; + network = list("ss13","medical") + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/cmo) +"aWk" = ( +/obj/structure/bodycontainer/morgue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot_white, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"aWl" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "emmd"; + name = "Emergency Medical Lockdown Shutters" + }, +/turf/open/floor/plating, +/area/medical/medbay/central) +"aWm" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/warning/securearea{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/medical/genetics) +"aWn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port) +"aWo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aWp" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/medical/glass{ + name = "Medbay Storage"; + req_access_txt = "5" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/storage) +"aWq" = ( +/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 = 1 + }, +/obj/effect/turf_decal/tile/blue, +/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" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/storage) +"aWr" = ( +/obj/structure/filingcabinet, +/obj/effect/turf_decal/bot, +/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, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/machinery/button/door{ + id = "emmd"; + name = "Medical Lockdown Toggle"; + pixel_x = 24; + pixel_y = -24 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/checkpoint/medical) +"aWs" = ( +/obj/structure/flora/grass/jungle/b, +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/genericbush, +/obj/structure/flora/ausbushes/ppflowers, +/obj/structure/flora/ausbushes/sunnybush, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/grass, +/area/hallway/secondary/exit/departure_lounge) +"aWt" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aWu" = ( +/obj/effect/turf_decal/tile/blue, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aWv" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"aWw" = ( +/obj/structure/table, +/obj/machinery/computer/med_data/laptop, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"aWx" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chemistry_shutters"; + name = "Chemistry Lobby Shutters" + }, +/turf/open/floor/plating, +/area/medical/chemistry) +"aWy" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/chemistry) +"aWz" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/latex, +/obj/item/paper/guides/jobs/medical/morgue, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/pen, +/obj/machinery/light/small, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"aWA" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aWB" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"aWC" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"aWD" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/crew_quarters/bar) +"aWE" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aWF" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-18" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/chemistry) +"aWG" = ( +/turf/closed/wall, +/area/chapel/office) +"aWH" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/chemistry) +"aWI" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"aWJ" = ( +/turf/open/floor/engine, +/area/science/xenobiology) +"aWK" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/item/folder/red, +/obj/item/pen, +/obj/machinery/door/window/brigdoor/westright{ + name = "Armoury Desk"; + req_access_txt = "3" + }, +/turf/open/floor/plating, +/area/ai_monitored/security/armory) +"aWL" = ( +/obj/structure/chair/wood/normal{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/sign/barsign{ + pixel_y = 32; + req_access = null; + req_access_txt = "25" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"aWM" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"aWN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aWO" = ( +/obj/structure/table/wood, +/obj/item/paper/guides/jobs/security/courtroom, +/turf/open/floor/plasteel, +/area/security/courtroom) +"aWP" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/science/xenobiology) +"aWQ" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/quartermaster/storage) +"aWR" = ( +/turf/closed/wall, +/area/science/xenobiology) +"aWS" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"aWT" = ( +/obj/structure/closet/secure_closet/chemical, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/item/storage/box/pillbottles, +/obj/item/storage/box/pillbottles, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/medical/chemistry) +"aWU" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/science/server) +"aWV" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, +/turf/open/floor/engine, +/area/science/explab) +"aWW" = ( +/obj/machinery/chem_dispenser/drinks{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/table, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"aWX" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/heads/hor) +"aWY" = ( +/turf/closed/wall/r_wall, +/area/science/explab) +"aWZ" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/dark, +/area/science/server) +"aXa" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/central) +"aXb" = ( +/obj/effect/landmark/blobstart, +/obj/effect/landmark/xeno_spawn, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/engine, +/area/science/explab) +"aXc" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "telelab"; + name = "Test Chamber Blast Door" + }, +/turf/open/floor/plating, +/area/science/explab) +"aXd" = ( +/obj/structure/flora/grass/jungle, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"aXf" = ( +/obj/machinery/computer/rdservercontrol, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/apc{ + areastring = "/area/science/server"; + dir = 1; + name = "Research Division Server Room APC"; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/dark, +/area/science/server) +"aXg" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/storage/box/bodybags{ + pixel_y = 5 + }, +/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/stack/packageWrap, +/obj/item/healthanalyzer, +/obj/item/healthanalyzer, +/obj/item/healthanalyzer, +/obj/machinery/camera{ + c_tag = "Robotics Lab"; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"aXh" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/quartermaster/storage) +"aXi" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/storage/belt/utility, +/obj/item/clothing/head/welding, +/obj/item/clothing/glasses/welding, +/obj/structure/noticeboard{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"aXm" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/radio{ + desc = "An old handheld radio. You could use it, if you really wanted to."; + icon_state = "radio"; + name = "old radio" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"aXn" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/stock_parts/cell/high, +/turf/open/floor/plasteel/dark, +/area/science/lab) +"aXo" = ( +/obj/machinery/rnd/experimentor, +/obj/effect/landmark/event_spawn, +/turf/open/floor/engine, +/area/science/explab) +"aXp" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/clipboard, +/obj/item/reagent_containers/food/drinks/shaker{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/toy/figure/bartender{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"aXq" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/taperecorder{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/aicard, +/obj/item/paicard{ + pixel_x = 6 + }, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) +"aXr" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot_white, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"aXs" = ( +/obj/machinery/door/poddoor/incinerator_toxmix, +/turf/open/floor/engine/vacuum, +/area/science/mixing/chamber) +"aXt" = ( +/obj/machinery/mecha_part_fabricator, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"aXu" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/machinery/newscaster{ + pixel_y = -30 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 8 + }, +/area/hallway/primary/fore) +"aXv" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/maintenance/central) +"aXw" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/folder, +/obj/item/nanite_scanner{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/nanite_remote, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/research) +"aXx" = ( +/obj/structure/flora/ausbushes/palebush, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"aXy" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai_upload) +"aXz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai_upload) +"aXA" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/tank_dispenser, +/turf/open/floor/plasteel/dark, +/area/science/mixing) +"aXB" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/closet/bombcloset, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/science/mixing) +"aXC" = ( +/obj/machinery/power/apc{ + areastring = "/area/science/robotics/mechbay"; + dir = 1; + name = "Mech Bay APC"; + pixel_y = 26 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/mech_bay_recharge_floor, +/area/science/robotics/mechbay) +"aXD" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/machinery/ai_slipper{ + uses = 8 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai_upload) +"aXE" = ( +/obj/machinery/nanite_chamber, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/research) +"aXF" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/computer/nanite_chamber_control, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Nanite Lab"; + name = "science camera"; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel/dark, +/area/science/research) +"aXG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai_upload) +"aXH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/machinery/status_display/ai{ + pixel_x = 32; + pixel_y = 32 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai_upload) +"aXI" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/research) +"aXJ" = ( +/obj/structure/window/reinforced, +/obj/structure/flora/ausbushes/palebush, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"aXK" = ( +/obj/effect/decal/remains/human, +/obj/machinery/sparker/toxmix{ + name = "chamber igniter"; + pixel_x = -16 + }, +/turf/open/floor/engine/vacuum, +/area/science/mixing/chamber) +"aXL" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aXM" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/glass{ + name = "Server Room"; + req_access_txt = "61" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plasteel/dark, +/area/tcommsat/server) +"aXN" = ( +/obj/machinery/igniter/incinerator_toxmix, +/mob/living/simple_animal/chicken{ + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0); + desc = "A timeless classic."; + name = "Kentucky" + }, +/turf/open/floor/engine/vacuum, +/area/science/mixing/chamber) +"aXO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/explab) +"aXP" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/door/airlock/research/glass{ + name = "Robotics Lab"; + req_access_txt = "29" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"aXQ" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/stack/sheet/glass/fifty{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/item/stock_parts/matter_bin{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/stock_parts/matter_bin, +/obj/item/stock_parts/scanning_module{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/stock_parts/scanning_module, +/turf/open/floor/plasteel/dark, +/area/science/lab) +"aXR" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/warning/securearea{ + desc = "A warning sign which reads 'SERVER ROOM'."; + name = "SERVER ROOM"; + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/science/server) +"aXS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/turf/open/floor/engine, +/area/science/explab) +"aXT" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/obj/structure/flora/ausbushes/lavendergrass, +/obj/structure/flora/ausbushes/fernybush, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"aXU" = ( +/obj/machinery/button/door{ + id = "telelab"; + name = "Test Chamber Toggle"; + pixel_y = 25 + }, +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/turf/open/floor/engine, +/area/science/explab) +"aXV" = ( +/obj/structure/sink{ + pixel_y = 26 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"aXW" = ( +/turf/closed/wall/rust, +/area/maintenance/starboard/fore) +"aXX" = ( +/obj/structure/chair/office/light{ + dir = 1; + pixel_y = 3 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/research) +"aXY" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/obj/machinery/camera{ + c_tag = "Atrium Booths"; + dir = 4; + name = "diner camera" + }, +/obj/structure/chair/sofa/left{ + color = "#c45c57"; + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar/atrium) +"aXZ" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/lab) +"aYa" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/lab) +"aYb" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/storage) +"aYc" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/mixing) +"aYd" = ( +/turf/closed/wall/r_wall, +/area/science/lab) +"aYe" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/science/lab) +"aYg" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/science/lab) +"aYh" = ( +/obj/machinery/camera{ + c_tag = "Xenobiology Cell 3"; + dir = 8; + name = "xenobiology camera"; + network = list("ss13","rd","xeno") + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"aYi" = ( +/obj/machinery/computer/mech_bay_power_console{ + dir = 4 + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/science/robotics/mechbay) +"aYj" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/door/poddoor/preopen{ + id = "telelab"; + name = "Test Chamber Blast Door" + }, +/turf/open/floor/plating, +/area/science/explab) +"aYk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/hatch{ + name = "Satellite Access"; + req_one_access_txt = "32;19" + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/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/primary/fore) +"aYl" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/mechbay) +"aYm" = ( +/obj/machinery/mecha_part_fabricator, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/power/apc{ + areastring = "/area/science/robotics/lab"; + dir = 1; + name = "Robotics Lab APC"; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"aYn" = ( +/obj/machinery/mass_driver{ + dir = 4; + id = "toxinsdriver" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/science/mixing) +"aYo" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/storage) +"aYp" = ( +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/science/mixing) +"aYq" = ( +/obj/machinery/recharge_station, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/mechbay) +"aYr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/science/mixing) +"aYs" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"aYt" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"aYu" = ( +/obj/machinery/chem_dispenser{ + layer = 2.7 + }, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/chemistry) +"aYv" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"aYw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/status_display/ai{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/turf_decal/box, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/nuke_storage) +"aYx" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aYy" = ( +/obj/item/target/clown, +/obj/machinery/camera/preset/toxins{ + dir = 8 + }, +/turf/open/floor/engine/vacuum, +/area/science/test_area) +"aYz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port) +"aYA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/grille/broken, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port) +"aYB" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "emmd"; + name = "Emergency Medical Lockdown Shutters" + }, +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/dark, +/area/medical/medbay/central) +"aYC" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aYD" = ( +/obj/effect/decal/cleanable/dirt, +/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/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port) +"aYE" = ( +/obj/item/storage/box/donkpockets{ + pixel_x = 3; + pixel_y = 5 + }, +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/mirror{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/dark, +/area/medical/storage) +"aYF" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"aYG" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/vault{ + name = "Vault"; + req_access_txt = "53" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/plasteel/dark, +/area/security/nuke_storage) +"aYH" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics_shutters"; + name = "Robotics Privacy Shutters" + }, +/turf/open/floor/plating, +/area/science/robotics/lab) +"aYI" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/chemistry) +"aYJ" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/obj/effect/landmark/start/chemist, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/chemistry) +"aYK" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "research_shutters"; + name = "Research Privacy Shutter" + }, +/turf/open/floor/plating, +/area/science/lab) +"aYL" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/chemistry) +"aYM" = ( +/obj/effect/turf_decal/tile/neutral, +/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/hallway/primary/port) +"aYN" = ( +/obj/machinery/nanite_program_hub, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/research) +"aYO" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/central) +"aYP" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/pen, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/port) +"aYQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"aYR" = ( +/obj/machinery/computer/nanite_cloud_controller, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/research) +"aYS" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/research) +"aYT" = ( +/obj/machinery/nanite_programmer, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/research) +"aYV" = ( +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"aYW" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/crew_quarters/bar) +"aYX" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"aYY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai_upload) +"aYZ" = ( +/obj/effect/turf_decal/box, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai_upload) +"aZa" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/folder{ + pixel_x = -4 + }, +/obj/item/disk/tech_disk{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/disk/tech_disk{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/disk/design_disk, +/obj/item/disk/design_disk, +/obj/item/stock_parts/manipulator, +/obj/item/stock_parts/manipulator, +/obj/item/stock_parts/micro_laser, +/obj/item/stock_parts/micro_laser, +/obj/item/stock_parts/capacitor{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/stock_parts/capacitor{ + pixel_x = -6; + pixel_y = 6 + }, +/turf/open/floor/plasteel/dark, +/area/science/lab) +"aZb" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai_upload) +"aZc" = ( +/obj/effect/turf_decal/box, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai_upload) +"aZd" = ( +/turf/closed/wall, +/area/hydroponics) +"aZe" = ( +/obj/effect/turf_decal/loading_area, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/lab) +"aZf" = ( +/obj/machinery/door/airlock/maintenance{ + name = "backstage maintenance"; + req_access_txt = "46" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/central) +"aZg" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/lab) +"aZh" = ( +/obj/machinery/porta_turret/ai, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/turf_decal/box/red, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"aZi" = ( +/obj/structure/sign/departments/science, +/turf/closed/wall, +/area/science/lab) +"aZj" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/clipboard, +/obj/item/reagent_containers/glass/beaker/large{ + pixel_x = -6 + }, +/obj/item/reagent_containers/glass/beaker{ + pixel_x = 6 + }, +/obj/item/clothing/glasses/science, +/obj/item/clothing/glasses/science, +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/turf/open/floor/plasteel/dark, +/area/science/lab) +"aZk" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/clothing/glasses/welding, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/dark, +/area/science/lab) +"aZl" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai_upload) +"aZm" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/theatre) +"aZn" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/obj/machinery/door/window/westleft{ + dir = 4; + name = "Upload Access"; + pixel_x = 6; + req_access_txt = "16" + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai_upload) +"aZo" = ( +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/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/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/turretid{ + control_area = "/area/ai_monitored/turret_protected/ai_upload"; + icon_state = "control_stun"; + name = "AI Upload turret control"; + pixel_y = 26 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai_upload) +"aZp" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/stack/cable_coil{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/item/stack/cable_coil, +/obj/item/stack/packageWrap{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/storage/toolbox/mechanical, +/obj/item/hand_labeler, +/turf/open/floor/plasteel/dark, +/area/science/lab) +"aZq" = ( +/obj/machinery/door/poddoor/shutters{ + id = "coldroom"; + name = "Coldroom Shutters" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/kitchen) +"aZr" = ( +/turf/closed/wall/r_wall, +/area/science/research) +"aZs" = ( +/obj/structure/transit_tube/station/reverse/flipped{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai_upload) +"aZt" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/dark, +/area/science/research) +"aZu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/landmark/blobstart, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"aZv" = ( +/turf/closed/wall, +/area/science/explab) +"aZx" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/chair/stool/bar{ + pixel_x = 4; + pixel_y = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/landmark/start/mime, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/theatre) +"aZy" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/item/folder, +/obj/item/pen, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics_shutters"; + name = "Robotics Privacy Shutters" + }, +/obj/machinery/door/window/northleft{ + name = "Robotics Desk"; + req_access_txt = "29" + }, +/turf/open/floor/plating, +/area/science/robotics/lab) +"aZz" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/bar/atrium) +"aZA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/grille, +/obj/structure/sign/warning/electricshock{ + pixel_x = -32 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/fore) +"aZB" = ( +/mob/living/simple_animal/hostile/retaliate/goat{ + name = "Pete" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"aZC" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/cell_charger, +/obj/item/assembly/prox_sensor{ + desc = "Used for scanning and alerting when someone enters a certain proximity. This one is slightly shifted to the left."; + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/assembly/prox_sensor{ + desc = "Used for scanning and alerting when someone enters a certain proximity. This one is slightly shifted to the left."; + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/assembly/prox_sensor{ + desc = "Used for scanning and alerting when someone enters a certain proximity. This one is slightly shifted to the left."; + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/assembly/prox_sensor{ + desc = "Used for scanning and alerting when someone enters a certain proximity. This one is slightly shifted to the left."; + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/stock_parts/cell/high/plus, +/obj/item/stock_parts/cell/high/plus, +/obj/item/stock_parts/cell/high/plus, +/obj/item/crowbar/red, +/obj/item/toy/figure/roboticist{ + pixel_x = 6 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"aZD" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"aZE" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/lab) +"aZF" = ( +/turf/closed/wall/r_wall, +/area/science/server) +"aZG" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/start/scientist, +/turf/open/floor/plasteel/showroomfloor, +/area/science/research) +"aZH" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/bar/atrium) +"aZI" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/goldcrate, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -26 + }, +/obj/item/crowbar/power, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/nuke_storage) +"aZJ" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/mech_bay_recharge_floor, +/area/science/robotics/mechbay) +"aZK" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/science/robotics/mechbay) +"aZL" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/item/folder, +/obj/item/pen, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "research_shutters"; + name = "Research Privacy Shutter" + }, +/obj/machinery/door/window/eastright{ + name = "Research Lab Desk"; + req_one_access_txt = "7;29" + }, +/turf/open/floor/plating, +/area/science/lab) +"aZM" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/glass{ + name = "Server Room"; + req_access_txt = "61" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"aZN" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/bar/atrium) +"aZO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"aZP" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/bar/atrium) +"aZQ" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/light, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/lab) +"aZR" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/door/airlock/security/glass{ + name = "Transferring Centre"; + req_access_txt = "63" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/unres, +/turf/open/floor/plasteel/dark, +/area/security/processing) +"aZS" = ( +/turf/closed/wall/r_wall, +/area/science/robotics/lab) +"aZT" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/sink{ + dir = 8; + pixel_x = -12 + }, +/obj/effect/landmark/start/roboticist, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"aZU" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/surgical_drapes, +/obj/item/retractor, +/obj/item/cautery, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"aZV" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/central) +"aZW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"aZX" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/science/research) +"aZY" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/heads/hor) +"aZZ" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/lab) +"baa" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/delivery, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/lab) +"bab" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/power/apc{ + areastring = "/area/science/lab"; + name = "Research Lab APC"; + pixel_y = -26 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/lab) +"bac" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/theatre) +"bad" = ( +/obj/machinery/computer/rdconsole/robotics{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/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) +"bae" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/chemistry) +"baf" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/closet/emcloset/anchored, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"bag" = ( +/obj/machinery/door/window/northright{ + base_state = "left"; + dir = 8; + icon_state = "left"; + name = "Library Desk Door"; + req_access_txt = "37" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"bah" = ( +/turf/closed/wall, +/area/science/robotics/lab) +"bai" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/science/robotics/lab) +"baj" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/circular_saw, +/obj/item/scalpel{ + pixel_y = 16 + }, +/obj/item/hemostat, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"bak" = ( +/obj/machinery/computer/operating{ + dir = 1; + name = "Robotics Operating Computer" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/light, +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"bal" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/bar/atrium) +"ban" = ( +/turf/closed/wall, +/area/science/robotics/mechbay) +"bap" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/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/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/bar/atrium) +"baq" = ( +/obj/structure/sign/warning/vacuum{ + pixel_x = 32 + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/engine/vacuum, +/area/science/mixing/chamber) +"bar" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_x = 32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port) +"bas" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/table, +/obj/machinery/computer/med_data/laptop, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/dark, +/area/medical/surgery) +"bat" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/table, +/obj/item/folder/white, +/obj/item/retractor, +/obj/item/hemostat, +/obj/machinery/vending/wallmed{ + pixel_y = 30 + }, +/obj/machinery/camera{ + c_tag = "Operating Theatre"; + name = "medical camera"; + network = list("ss13","medical") + }, +/turf/open/floor/plasteel/dark, +/area/medical/surgery) +"bau" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/table, +/obj/item/circular_saw, +/obj/item/surgicaldrill{ + pixel_y = 5 + }, +/obj/item/healthanalyzer, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/medical/surgery) +"bav" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "Control Room"; + req_access_txt = "19; 61" + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"baw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"bax" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/research) +"bay" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/table, +/obj/item/surgical_drapes, +/obj/item/scalpel{ + pixel_y = 5 + }, +/obj/item/cautery, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/medical/surgery) +"baz" = ( +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel/showroomfloor, +/area/science/storage) +"baA" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/table, +/obj/item/clipboard{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/book/manual/wiki/surgery, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/mask/surgical, +/obj/item/clothing/suit/apron/surgical, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28 + }, +/turf/open/floor/plasteel/dark, +/area/medical/surgery) +"baB" = ( +/obj/machinery/computer/med_data{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/dark, +/area/medical/surgery) +"baC" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/science/mixing) +"baD" = ( +/obj/structure/table/reinforced, +/obj/item/wrench, +/obj/item/transfer_valve{ + pixel_x = -4 + }, +/obj/item/transfer_valve{ + pixel_x = -4 + }, +/obj/item/transfer_valve, +/obj/item/transfer_valve, +/obj/item/transfer_valve{ + pixel_x = 4 + }, +/obj/item/transfer_valve{ + pixel_x = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/mixing) +"baE" = ( +/obj/structure/table/reinforced, +/obj/item/wirecutters{ + pixel_y = 5 + }, +/obj/item/assembly/prox_sensor{ + desc = "Used for scanning and alerting when someone enters a certain proximity. This one is slightly shifted to the left."; + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/assembly/prox_sensor{ + desc = "Used for scanning and alerting when someone enters a certain proximity. This one is slightly shifted to the left."; + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/assembly/prox_sensor{ + desc = "Used for scanning and alerting when someone enters a certain proximity. This one is slightly shifted to the left."; + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/assembly/prox_sensor{ + desc = "Used for scanning and alerting when someone enters a certain proximity. This one is slightly shifted to the left."; + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/assembly/igniter{ + desc = "A small electronic device able to ignite combustible substances. This one goes slightly to the right."; + pixel_x = 6 + }, +/obj/item/assembly/igniter{ + desc = "A small electronic device able to ignite combustible substances. This one goes slightly to the right."; + pixel_x = 6 + }, +/obj/item/assembly/igniter{ + desc = "A small electronic device able to ignite combustible substances. This one goes slightly to the right."; + pixel_x = 6 + }, +/obj/item/assembly/igniter{ + desc = "A small electronic device able to ignite combustible substances. This one goes slightly to the right."; + pixel_x = 6 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/mixing) +"baF" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Transferring Centre"; + req_access_txt = "63" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/mapping_helpers/airlock/unres, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/security/processing) +"baG" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/science/storage) +"baH" = ( +/turf/closed/wall, +/area/maintenance/starboard/fore) +"baI" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/surgery) +"baJ" = ( +/obj/machinery/rnd/server, +/turf/open/floor/circuit/green/telecomms/mainframe, +/area/science/server) +"baK" = ( +/obj/structure/table/reinforced, +/obj/item/clipboard, +/obj/item/pipe_dispenser, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/mixing) +"baM" = ( +/obj/machinery/door/firedoor, +/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/airlock/public/glass{ + name = "Atrium" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar/atrium) +"baN" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/surgery) +"baO" = ( +/obj/structure/bed, +/obj/machinery/iv_drip, +/obj/effect/turf_decal/bot_white/right, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/bedsheet/medical, +/turf/open/floor/plasteel/dark, +/area/medical/surgery) +"baP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + external_pressure_bound = 140; + name = "server vent"; + pressure_checks = 0 + }, +/turf/open/floor/circuit/green/telecomms/mainframe, +/area/science/server) +"baQ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"baR" = ( +/obj/machinery/vending/wardrobe/chem_wardrobe, +/obj/structure/window/reinforced, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/power/apc{ + areastring = "/area/medical/chemistry"; + dir = 8; + name = "Chemistry APC"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/medical/chemistry) +"baS" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/portable_atmospherics/pump, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/science/mixing) +"baT" = ( +/obj/structure/closet/secure_closet/security/med, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = -30 + }, +/obj/item/crowbar, +/obj/item/book/manual/wiki/security_space_law, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/medical) +"baU" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/checkpoint/science/research) +"baW" = ( +/obj/machinery/door/poddoor/shutters{ + id = "Skynet_launch"; + name = "Mech Bay" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/science/robotics/mechbay) +"baX" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxins_mixing_input, +/obj/machinery/sparker/toxmix{ + name = "chamber igniter"; + pixel_x = -16 + }, +/turf/open/floor/engine/vacuum, +/area/science/mixing/chamber) +"baY" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/science/storage) +"baZ" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/chemistry) +"bba" = ( +/turf/closed/wall, +/area/science/storage) +"bbb" = ( +/turf/closed/wall, +/area/security/checkpoint/science/research) +"bbc" = ( +/turf/closed/wall/r_wall, +/area/science/storage) +"bbe" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/item/reagent_containers/glass/beaker/large{ + pixel_x = -7 + }, +/obj/item/reagent_containers/glass/beaker/large{ + pixel_x = -7 + }, +/obj/item/reagent_containers/glass/beaker{ + pixel_x = 7 + }, +/obj/item/reagent_containers/glass/beaker{ + pixel_x = 7 + }, +/obj/item/reagent_containers/dropper{ + pixel_y = 6 + }, +/obj/item/reagent_containers/dropper, +/obj/item/grenade/chem_grenade, +/obj/item/grenade/chem_grenade, +/obj/item/grenade/chem_grenade, +/obj/item/grenade/chem_grenade, +/obj/machinery/camera{ + c_tag = "Chemistry"; + dir = 1; + name = "medical camera"; + network = list("ss13","medical") + }, +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/chemistry) +"bbf" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/chemistry) +"bbg" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"bbh" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Library" + }, +/turf/open/floor/plasteel/dark, +/area/library) +"bbi" = ( +/turf/closed/wall/r_wall, +/area/science/mixing/chamber) +"bbj" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/storage/box/disks_nanite{ + pixel_y = 4 + }, +/obj/item/hand_labeler, +/turf/open/floor/plasteel/dark, +/area/science/research) +"bbk" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/table/wood, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/vending_refill/cigarette, +/obj/item/hand_labeler, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bbl" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/research) +"bbm" = ( +/obj/structure/table/reinforced, +/obj/item/assembly/timer{ + desc = "Used to time things. Works well with contraptions which has to count down. Tick tock. But slightly shifted to the left."; + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/assembly/timer{ + desc = "Used to time things. Works well with contraptions which has to count down. Tick tock. But slightly shifted to the left."; + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/assembly/timer{ + desc = "Used to time things. Works well with contraptions which has to count down. Tick tock. But slightly shifted to the left."; + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/assembly/timer{ + desc = "Used to time things. Works well with contraptions which has to count down. Tick tock. But slightly shifted to the left."; + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/assembly/signaler{ + desc = "Used to remotely activate devices. Allows for syncing when using a secure signaler on another. Slightly scooted."; + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/assembly/signaler{ + desc = "Used to remotely activate devices. Allows for syncing when using a secure signaler on another. Slightly scooted."; + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/assembly/signaler{ + desc = "Used to remotely activate devices. Allows for syncing when using a secure signaler on another. Slightly scooted."; + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/assembly/signaler{ + desc = "Used to remotely activate devices. Allows for syncing when using a secure signaler on another. Slightly scooted."; + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/screwdriver{ + pixel_y = 6 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/mixing) +"bbn" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Toxins Mixers"; + dir = 8; + name = "science camera"; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel/dark, +/area/science/mixing) +"bbo" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bbp" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bbq" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/chem_master/condimaster{ + desc = "Used to separate out liquids - useful for purifying botanical extracts. Also dispenses condiments."; + name = "BrewMaster 2199" + }, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bbr" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/table, +/obj/machinery/reagentgrinder{ + pixel_y = 5 + }, +/obj/machinery/newscaster{ + pixel_x = 30 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bbs" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/mixing) +"bbt" = ( +/obj/machinery/air_sensor/atmos/toxins_mixing_tank, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/engine/vacuum, +/area/science/mixing/chamber) +"bbv" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/power/apc{ + areastring = "/area/science/mixing"; + dir = 4; + name = "Toxins Lab APC"; + pixel_x = 26 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/mixing) +"bbw" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/engine/vacuum, +/area/science/mixing/chamber) +"bbx" = ( +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"bby" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/closed/wall/r_wall, +/area/science/mixing/chamber) +"bbz" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/turf_decal/box, +/obj/structure/disposalpipe/junction/flip, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bbA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/science/mixing/chamber) +"bbB" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/meter, +/obj/machinery/light_switch{ + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/science/mixing) +"bbC" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1 + }, +/obj/machinery/airlock_sensor/incinerator_toxmix{ + pixel_x = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/mixing/chamber) +"bbD" = ( +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_toxmix{ + dir = 8 + }, +/obj/effect/landmark/blobstart, +/turf/open/floor/engine, +/area/science/mixing/chamber) +"bbE" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/science/mixing) +"bbF" = ( +/obj/machinery/atmospherics/components/binary/pump, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/mixing/chamber) +"bbG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai_upload) +"bbH" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bbI" = ( +/obj/machinery/doppler_array/research/science{ + dir = 4 + }, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/mixing) +"bbJ" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/item/multitool, +/turf/open/floor/plasteel/dark, +/area/science/research) +"bbK" = ( +/obj/machinery/door/airlock/research/glass/incinerator/toxmix_interior, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/engine, +/area/science/mixing/chamber) +"bbL" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger{ + pixel_y = 5 + }, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/integrated_electronics/analyzer, +/obj/machinery/computer/security/telescreen/circuitry{ + pixel_y = 30 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/science/research) +"bbM" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/clipboard, +/obj/item/nanite_remote{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/nanite_scanner{ + pixel_x = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/dark, +/area/science/research) +"bbN" = ( +/turf/closed/wall, +/area/science/mixing) +"bbO" = ( +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light_switch{ + pixel_x = -24; + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/science/storage) +"bbP" = ( +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/storage) +"bbQ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research/glass{ + name = "Robotics Lab"; + req_access_txt = "29" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics_shutters"; + name = "Robotics Privacy Shutters" + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"bbR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/grille, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/fore) +"bbS" = ( +/obj/machinery/atmospherics/components/trinary/mixer/flipped{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/science/mixing) +"bbT" = ( +/obj/machinery/portable_atmospherics/scrubber/huge, +/obj/effect/turf_decal/delivery, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/storage) +"bbU" = ( +/obj/machinery/computer/upload/borg, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/door/window/westleft{ + dir = 1; + layer = 3.1; + name = "Cyborg Upload Console Window"; + req_access_txt = "16" + }, +/obj/structure/window/reinforced, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bbV" = ( +/obj/machinery/computer/upload/ai, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/door/window/westleft{ + base_state = "right"; + dir = 1; + icon_state = "right"; + layer = 3.1; + name = "Upload Console Window"; + req_access_txt = "16" + }, +/obj/structure/window/reinforced, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bbW" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/dark, +/area/science/mixing) +"bbX" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/structure/sign/warning/fire, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/science/mixing/chamber) +"bbY" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai_upload) +"bbZ" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/door/window/westright{ + dir = 4; + name = "Upload Access"; + pixel_x = 6; + req_access_txt = "16" + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai_upload) +"bca" = ( +/obj/machinery/door/airlock/research/glass/incinerator/toxmix_exterior, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/mixing/chamber) +"bcb" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the test chamber."; + dir = 8; + layer = 4; + name = "Test Chamber Telescreen"; + network = list("toxins"); + pixel_x = 30 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/mixing) +"bcc" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/science/mixing) +"bcd" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/turf/open/floor/plasteel/dark, +/area/science/mixing) +"bce" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/mixing) +"bcf" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/science/mixing/chamber) +"bcg" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/science/mixing/chamber) +"bch" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "research_shutters"; + name = "Research Privacy Shutter" + }, +/obj/machinery/door/airlock/research/glass{ + name = "Research Lab"; + req_one_access_txt = "7;29" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/lab) +"bci" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/clothing/gloves/color/latex{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/glasses/science{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/clothing/glasses/science, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Toxins Launch Site"; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/dark, +/area/science/mixing) +"bcj" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/science/mixing/chamber) +"bck" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/storage) +"bcl" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/storage) +"bcm" = ( +/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 = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai_upload) +"bcn" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/scrubber{ + name = "scrubber ducky" + }, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/science/storage"; + dir = 1; + name = "Toxins Storage APC"; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/dark, +/area/science/storage) +"bco" = ( +/obj/structure/transit_tube/horizontal{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai_upload) +"bcp" = ( +/obj/machinery/portable_atmospherics/scrubber/huge, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/science/storage) +"bcq" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/camera{ + c_tag = "AI Upload Transit Exterior"; + dir = 8; + name = "upload camera"; + network = list("aiupload") + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"bcr" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/storage) +"bcs" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/pump, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Toxins Pumps"; + dir = 1; + name = "science camera"; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel/dark, +/area/science/mixing) +"bct" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/storage) +"bcu" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/science/storage) +"bcv" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/central) +"bcw" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/machinery/light_switch{ + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"bcx" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "Server Access"; + req_access_txt = "30" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/server) +"bcy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"bcz" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/engine/vacuum, +/area/science/test_area) +"bcA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/science/mixing/chamber) +"bcB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/grey_tide{ + pixel_y = 32 + }, +/obj/machinery/vending/kink, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port) +"bcC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/button/door{ + id = "greylair"; + name = "Lair Privacy Toggle"; + pixel_y = 24 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port) +"bcD" = ( +/turf/closed/wall/rust, +/area/science/mixing) +"bcE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port) +"bcF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port) +"bcG" = ( +/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/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/surgery) +"bcH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ + dir = 1; + external_pressure_bound = 120; + name = "server vent" + }, +/turf/open/floor/circuit/green/telecomms/mainframe, +/area/science/server) +"bcI" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/science/mixing) +"bcJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/science/mixing/chamber) +"bcK" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/surgery) +"bcL" = ( +/obj/structure/table/reinforced, +/obj/item/wrench, +/obj/item/book/manual/wiki/toxins{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/clothing/mask/gas{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/clothing/mask/gas, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/science/mixing) +"bcM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/science/mixing/chamber) +"bcN" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/landmark/event_spawn, +/obj/effect/landmark/start/medical_doctor, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/surgery) +"bcO" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/surgery) +"bcP" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/surgery) +"bcQ" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/button/massdriver{ + id = "toxinsdriver"; + pixel_x = 24; + pixel_y = -24 + }, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the test chamber."; + dir = 8; + layer = 4; + name = "Test Chamber Telescreen"; + network = list("toxins"); + pixel_x = 30 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light/small, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/dark, +/area/science/mixing) +"bcR" = ( +/obj/item/target, +/obj/item/target/syndicate, +/obj/item/target/alien, +/obj/item/target/clown, +/obj/structure/closet/crate/secure{ + desc = "A secure crate containing various materials for building a customised test-site."; + name = "Test Site Materials Crate"; + req_access_txt = "8" + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/science/mixing) +"bcS" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/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" + }, +/turf/open/floor/plasteel/dark, +/area/medical/surgery) +"bcT" = ( +/obj/structure/bed, +/obj/machinery/iv_drip, +/obj/effect/turf_decal/bot_white/right, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/bedsheet/medical, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/sign/warning/biohazard{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/dark, +/area/medical/surgery) +"bcU" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/neutral, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-10" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"bcV" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/camera{ + c_tag = "Port Hallway Chemistry Desk"; + dir = 8; + name = "port camera" + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/port) +"bcW" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/rack, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/wrench, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil, +/obj/item/crowbar/red, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bcX" = ( +/obj/structure/table/glass, +/obj/machinery/smartfridge/disks{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/item/seeds/random{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/seeds/wheat{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/item/seeds/sugarcane{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/seeds/potato{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/item/reagent_containers/spray/cleaner, +/obj/item/toy/figure/botanist{ + pixel_x = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Hydroponics"; + name = "hydroponics camera" + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"bcY" = ( +/obj/structure/grille/broken, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "coldroom"; + name = "Coldroom Shutter Toggle"; + pixel_x = 24; + pixel_y = 6; + req_access_txt = "28" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/central) +"bcZ" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/machinery/button/door{ + id = "coldroom"; + name = "Coldroom Shutter Toggle"; + pixel_x = -24; + pixel_y = 6; + req_access_txt = "28" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"bda" = ( +/obj/machinery/door/firedoor/heavy, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/science/mixing/chamber) +"bdb" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/explab) +"bdc" = ( +/obj/structure/table, +/obj/item/storage/box/beakers{ + pixel_y = 5 + }, +/obj/item/stack/cable_coil, +/obj/machinery/button/door{ + id = "telelab"; + name = "Test Chamber Toggle"; + pixel_x = -24 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/explab) +"bdd" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/structure/table/optable{ + name = "Robotics Operating Table" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"bde" = ( +/obj/structure/sign/warning/fire{ + pixel_y = 32 + }, +/obj/machinery/camera{ + c_tag = "Experimenter Chamber"; + name = "science camera"; + network = list("ss13","rd") + }, +/turf/open/floor/engine, +/area/science/explab) +"bdf" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"bdg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"bdh" = ( +/obj/machinery/atmospherics/pipe/layer_manifold, +/turf/closed/wall/r_wall, +/area/science/mixing/chamber) +"bdi" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/hor) +"bdj" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/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/effect/landmark/event_spawn, +/obj/structure/disposalpipe/sorting/mail{ + dir = 1; + name = "chemistry sorting disposal pipe"; + sortType = 11 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"bdk" = ( +/obj/effect/turf_decal/tile/blue, +/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/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/components/trinary/filter/atmos/o2, +/turf/open/floor/plasteel/showroomfloor, +/area/engine/atmos) +"bdl" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Telecommunications"; + req_access_txt = "61" + }, +/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/tcommsat/computer) +"bdm" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/table, +/obj/item/clipboard, +/obj/item/cartridge/roboticist{ + pixel_x = -3 + }, +/obj/item/cartridge/signal/toxins{ + pixel_x = 6 + }, +/obj/item/cartridge/signal/toxins, +/obj/item/cartridge/signal/toxins, +/obj/item/circuitboard/aicore{ + pixel_y = 5 + }, +/obj/item/hand_labeler, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) +"bdn" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/lipstick/random{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/lipstick/random{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/item/lipstick/random{ + pixel_x = 6 + }, +/obj/item/pen, +/obj/structure/sign/poster/official/do_not_question{ + pixel_x = 30 + }, +/obj/machinery/camera{ + c_tag = "Backstage"; + name = "diner camera" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/theatre) +"bdo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"bdp" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/science/xenobiology) +"bdq" = ( +/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/heavy, +/obj/machinery/door/airlock/medical/glass{ + name = "Chemistry Lab"; + req_access_txt = "5; 33" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/chemistry) +"bdr" = ( +/obj/machinery/chem_heater{ + pixel_x = 6 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/requests_console{ + department = "Chemistry"; + departmentType = 2; + name = "Chemistry RC"; + pixel_x = 30; + pixel_y = 28; + receive_ore_updates = 1 + }, +/turf/open/floor/plasteel/dark, +/area/medical/chemistry) +"bds" = ( +/obj/machinery/computer/aifixer{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) +"bdt" = ( +/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/science/xenobiology) +"bdu" = ( +/obj/effect/turf_decal/tile/blue, +/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/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/computer/atmos_control/tank/oxygen_tank{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/engine/atmos) +"bdv" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/toy/figure/rd{ + pixel_x = 8; + pixel_y = 8 + }, +/obj/item/stamp/rd{ + pixel_x = 8 + }, +/obj/item/pen, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) +"bdw" = ( +/obj/machinery/computer/card/minor/rd{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Research Director's Desk"; + departmentType = 5; + name = "Research Director RC"; + pixel_x = 30; + receive_ore_updates = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) +"bdx" = ( +/obj/machinery/computer/robotics{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) +"bdy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/sign/poster/official/cleanliness{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"bdz" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/item/clothing/head/chefhat{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/kitchen/rollingpin{ + pixel_x = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bdA" = ( +/obj/item/radio/intercom{ + pixel_x = -28 + }, +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/turf/open/floor/engine, +/area/science/explab) +"bdB" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/kitchen"; + dir = 1; + name = "Kitchen APC"; + pixel_y = 26 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"bdC" = ( +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "Bridge Blast door" + }, +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bdD" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on, +/turf/open/floor/engine, +/area/science/xenobiology) +"bdE" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet{ + name = "kitchen closet" + }, +/obj/item/clothing/under/rank/chef{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/clothing/suit/toggle/chef, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bdF" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"bdG" = ( +/obj/machinery/computer/rdconsole/core{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/dark, +/area/science/lab) +"bdH" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the RD's goons from the safety of his office."; + dir = 1; + name = "Research Monitor"; + network = list("rd") + }, +/obj/machinery/newscaster/security_unit{ + pixel_y = -30 + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/science/research) +"bdI" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/suit/apron/surgical, +/obj/item/clothing/mask/surgical, +/obj/item/mmi, +/obj/item/mmi, +/obj/item/mmi, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"bdJ" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/research{ + id_tag = "ResearchInt"; + name = "Research Division"; + req_one_access_txt = "47" + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/research) +"bdK" = ( +/obj/structure/rack, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/item/gun/energy/e_gun/dragnet{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/gun/energy/e_gun/dragnet, +/obj/item/gun/energy/e_gun/advtaser, +/obj/item/gun/energy/e_gun/advtaser, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"bdL" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/landmark/start/cook, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"bdM" = ( +/obj/machinery/rnd/production/circuit_imprinter/department/science, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + name = "Science RC"; + pixel_x = 30; + receive_ore_updates = 1 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/dark, +/area/science/lab) +"bdN" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bdO" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/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/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/starboard) +"bdP" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/directions/evac{ + dir = 4; + pixel_y = 24 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bdQ" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"bdR" = ( +/obj/structure/table, +/obj/item/folder{ + pixel_x = -6 + }, +/obj/item/book/manual/wiki/experimentor, +/obj/item/pen, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/explab) +"bdS" = ( +/obj/effect/turf_decal/box/corners, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/turf/open/floor/engine, +/area/science/explab) +"bdT" = ( +/obj/effect/decal/cleanable/dirt, +/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/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"bdU" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/sign/directions/medical{ + dir = 8; + pixel_x = 32; + pixel_y = 8 + }, +/obj/structure/sign/directions/security{ + pixel_x = 32 + }, +/obj/structure/sign/directions/command{ + pixel_x = 32; + pixel_y = -8 + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"bdV" = ( +/obj/effect/decal/cleanable/dirt, +/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/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bdW" = ( +/obj/effect/decal/cleanable/dirt, +/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" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard) +"bdX" = ( +/obj/effect/decal/cleanable/dirt, +/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" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"bdY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bdZ" = ( +/obj/effect/turf_decal/bot, +/obj/structure/ore_box, +/turf/open/floor/plating, +/area/maintenance/port) +"bea" = ( +/obj/structure/chair/office/light, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/effect/landmark/start/depsec/science, +/turf/open/floor/plasteel/showroomfloor, +/area/security/checkpoint/science/research) +"beb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bec" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port) +"bed" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/chair/office, +/turf/open/floor/plating, +/area/maintenance/port) +"bee" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port) +"bef" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/structure/closet/secure_closet/medical2, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/surgery) +"beg" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/computer/operating{ + dir = 1 + }, +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/surgery) +"beh" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/dark, +/area/science/storage) +"bei" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/surgery) +"bej" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/mirror{ + pixel_x = 28 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/surgery) +"bek" = ( +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/obj/effect/turf_decal/bot_white/left, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/medical/surgery) +"bel" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/surgery) +"bem" = ( +/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/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/sink{ + pixel_y = 26 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/virology) +"ben" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/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/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/storage) +"beo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/grille, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/fore) +"bep" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/research) +"beq" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/virology) +"ber" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/bot, +/obj/structure/sign/warning/fire{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/dark, +/area/science/storage) +"bes" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"bet" = ( +/obj/machinery/recharge_station, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/mechbay) +"beu" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/sign/directions/science{ + dir = 4; + pixel_x = -32; + pixel_y = 8 + }, +/obj/structure/sign/directions/supply{ + pixel_x = -32 + }, +/obj/structure/sign/directions/engineering{ + pixel_x = -32; + pixel_y = -8 + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"bev" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"bew" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + dir = 8; + freq = 1400; + location = "Hydroponics" + }, +/obj/structure/plasticflaps/opaque, +/obj/machinery/door/window/eastright{ + name = "Hydroponics Delivery Access"; + req_access_txt = "35" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"bex" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/door/airlock/research{ + name = "Toxins Lab"; + req_access_txt = "8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/science/mixing) +"bey" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/grunge{ + name = "Bar Storage"; + req_access_txt = "25" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bez" = ( +/obj/machinery/status_display/ai, +/turf/closed/wall/r_wall, +/area/science/robotics/lab) +"beA" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"beB" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/medical/medbay/central) +"beC" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/central) +"beD" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/science/research) +"beE" = ( +/obj/structure/table/reinforced, +/obj/item/integrated_electronics/debugger, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/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/glasses/science, +/obj/item/clothing/glasses/science, +/obj/item/stack/sheet/metal/ten, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/science/research) +"beF" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/medical/medbay/central) +"beG" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/noticeboard{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"beH" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/science/mixing) +"beI" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/effect/turf_decal/bot, +/obj/structure/sign/warning/nosmoking{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/dark, +/area/science/storage) +"beJ" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/sink{ + dir = 8; + pixel_x = -12 + }, +/obj/machinery/camera{ + c_tag = "Kitchen"; + dir = 4; + name = "diner camera" + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -26 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"beK" = ( +/obj/structure/sign/warning/docking, +/turf/closed/wall/rust, +/area/maintenance/starboard) +"beL" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Atrium" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar/atrium) +"beM" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Transit Access"; + req_access_txt = "19" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"beN" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/crew_quarters/bar"; + name = "Bar APC"; + pixel_y = -26 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"beO" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/starboard) +"beP" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate, +/obj/structure/grille/broken, +/obj/item/clothing/gloves/color/fyellow, +/obj/item/flashlight, +/obj/item/flashlight/flare, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"beQ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/maintenance/starboard) +"beR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/starboard) +"beS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/cardboard, +/obj/structure/sign/warning/nosmoking{ + pixel_x = 30 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"beT" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port) +"beU" = ( +/obj/effect/turf_decal/tile/blue, +/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/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4; + name = "O2 to Airmix" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/engine/atmos) +"beV" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/security{ + name = "Prison Wing"; + req_access_txt = "2" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"beW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"beX" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/storage/firstaid/o2, +/obj/item/tank/internals/emergency_oxygen, +/turf/open/floor/plating, +/area/maintenance/port) +"beY" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/science/xenobiology) +"beZ" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"bfa" = ( +/obj/machinery/computer/secure_data{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + name = "Science Checkpoint RC"; + pixel_y = -30 + }, +/obj/machinery/light, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/science/research) +"bfb" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port) +"bfc" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/turf_decal/bot, +/obj/structure/closet/l3closet, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"bfd" = ( +/obj/machinery/processor/slime, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"bfe" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/engine/engineering) +"bff" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"bfg" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/table, +/obj/item/soap/nanotrasen, +/obj/item/clothing/neck/stethoscope, +/obj/item/hand_labeler, +/turf/open/floor/plasteel/dark, +/area/medical/surgery) +"bfh" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/shower{ + dir = 4; + name = "emergency shower" + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/virology) +"bfi" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/virology) +"bfj" = ( +/obj/structure/flora/junglebush, +/obj/structure/flora/ausbushes/sunnybush, +/obj/item/reagent_containers/food/snacks/grown/banana, +/obj/structure/flora/ausbushes/ywflowers, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/mob/living/carbon/monkey, +/turf/open/floor/grass, +/area/medical/virology) +"bfk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"bfl" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"bfm" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"bfn" = ( +/obj/machinery/computer/mech_bay_power_console{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/science/robotics/mechbay) +"bfo" = ( +/obj/machinery/light/floor, +/obj/effect/turf_decal/box, +/turf/open/floor/engine, +/area/science/xenobiology) +"bfp" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/box, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/science/xenobiology) +"bfq" = ( +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"bfr" = ( +/obj/structure/sign/warning/biohazard, +/turf/closed/wall, +/area/science/mixing) +"bfs" = ( +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"bft" = ( +/obj/effect/turf_decal/box/corners, +/turf/open/floor/engine, +/area/science/xenobiology) +"bfu" = ( +/obj/structure/table, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/recharger, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/heads/hor"; + dir = 1; + name = "RD Office APC"; + pixel_y = 26 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) +"bfv" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/library) +"bfw" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/vending/wardrobe/bar_wardrobe, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bfx" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/landmark/start/scientist, +/turf/open/floor/plasteel/dark, +/area/science/lab) +"bfy" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/closet/secure_closet/bar{ + req_access_txt = "25" + }, +/obj/item/flashlight/lantern, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28 + }, +/obj/machinery/camera{ + c_tag = "Bar Storage"; + dir = 1; + name = "bar camera" + }, +/obj/structure/mirror{ + pixel_y = -32 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bfz" = ( +/obj/machinery/door/firedoor/heavy, +/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/airlock/command{ + name = "Research Director's Office"; + req_access_txt = "30" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) +"bfA" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"bfB" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/displaycase/labcage, +/obj/effect/turf_decal/box, +/obj/machinery/light, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) +"bfC" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/machinery/newscaster/security_unit{ + pixel_x = -30 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bfD" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/surgery) +"bfE" = ( +/obj/structure/table, +/obj/item/crowbar/red, +/obj/item/wrench, +/obj/item/restraints/handcuffs, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/obj/machinery/camera{ + c_tag = "Departures Holding Area"; + name = "shuttle camera" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bfF" = ( +/obj/structure/chair, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bfG" = ( +/obj/structure/chair, +/obj/effect/turf_decal/bot, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bfH" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Starboard Hallway Kitchen Counter"; + dir = 4; + name = "starboard camera" + }, +/obj/structure/sign/directions/evac{ + pixel_y = 24 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/starboard) +"bfI" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bfJ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"bfK" = ( +/obj/structure/table/reinforced, +/obj/machinery/computer/security/telescreen{ + name = "Test Chamber Monitor"; + network = list("xeno"); + pixel_y = 2 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"bfL" = ( +/obj/structure/flora/ausbushes/lavendergrass, +/obj/structure/flora/ausbushes/sparsegrass, +/obj/structure/flora/ausbushes/ywflowers, +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/palebush, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"bfM" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xeno5"; + name = "Creature Cell 5" + }, +/turf/open/floor/plating, +/area/science/xenobiology) +"bfN" = ( +/obj/structure/flora/grass/jungle/b, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"bfO" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/research/glass{ + name = "Research Lab"; + req_one_access_txt = "7;29" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/science/lab) +"bfP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"bfQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xeno6"; + name = "Creature Cell 6" + }, +/turf/open/floor/plating, +/area/science/xenobiology) +"bfR" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bfS" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/port) +"bfT" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/obj/structure/flora/ausbushes/lavendergrass, +/obj/structure/flora/ausbushes/fernybush, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"bfU" = ( +/obj/effect/landmark/blobstart, +/turf/open/floor/engine, +/area/science/xenobiology) +"bfV" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/bz, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/button/door{ + id = "xeno5"; + name = "Creature Cell 5 Toggle"; + pixel_x = -24; + pixel_y = -24; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"bfW" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"bfX" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/port) +"bfY" = ( +/obj/machinery/camera{ + c_tag = "Xenobiology Test Chamber"; + name = "xenobiology camera"; + network = list("ss13","rd","xeno") + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"bfZ" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ + name = "euthanization chamber freezer" + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"bga" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"bgb" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/central"; + dir = 4; + name = "Central Maintenance APC"; + pixel_x = 26 + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/central) +"bgc" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/computer/prisoner/gulag_teleporter_computer{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/processing) +"bgd" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"bge" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/central) +"bgf" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"bgg" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bgh" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/sign/directions/medical{ + dir = 1; + pixel_x = 32; + pixel_y = 8 + }, +/obj/structure/sign/directions/command{ + pixel_x = 32 + }, +/obj/structure/sign/directions/security{ + pixel_x = 32; + pixel_y = -8 + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/port) +"bgi" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"bgj" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/research) +"bgk" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/obj/machinery/vending/wardrobe/science_wardrobe, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Experimenter Lab"; + dir = 8; + name = "science camera"; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel/dark, +/area/science/explab) +"bgl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"bgm" = ( +/obj/machinery/door/poddoor/preopen{ + id = "xeno2"; + name = "Creature Cell 2" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Creature Cell"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"bgn" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Creature Cell"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"bgo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"bgp" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/central) +"bgq" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Creature Cell"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"bgr" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/vending/dinnerware, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/requests_console{ + department = "Kitchen"; + departmentType = 2; + name = "Kitchen RC"; + pixel_x = -30 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/kitchen) +"bgs" = ( +/obj/machinery/door/poddoor/preopen{ + id = "xeno4"; + name = "Creature Cell 4" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Creature Cell"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"bgt" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bgu" = ( +/obj/effect/turf_decal/bot, +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/button/door{ + id = "xeno6"; + name = "Creature Cell 6 Toggle"; + pixel_x = 24; + pixel_y = -24; + req_access_txt = "55" + }, +/obj/item/extinguisher{ + pixel_y = 4 + }, +/obj/item/extinguisher{ + pixel_x = -4 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"bgv" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/security/glass{ + name = "Research Security Post"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/science/research) +"bgw" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/delivery, +/obj/structure/closet/l3closet/scientist, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/extinguisher, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"bgx" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/storage/toolbox/mechanical, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"bgy" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/research{ + name = "Toxins Launch Room"; + req_access_txt = "8" + }, +/turf/open/floor/plasteel/dark, +/area/science/mixing) +"bgz" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"bgA" = ( +/obj/effect/turf_decal/bot, +/obj/structure/table, +/obj/item/hand_labeler, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/maintenance/port) +"bgB" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/clipboard{ + pixel_x = -4 + }, +/obj/item/storage/box/syringes{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/item/storage/box/beakers{ + pixel_y = 2 + }, +/obj/item/reagent_containers/spray/cleaner, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/button/door{ + id = "xeno2"; + name = "Creature Cell 2 Toggle"; + pixel_x = -24; + pixel_y = -24; + req_access_txt = "55" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"bgC" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xeno2"; + name = "Creature Cell 2" + }, +/turf/open/floor/plating, +/area/science/xenobiology) +"bgD" = ( +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"bgE" = ( +/obj/structure/table/glass, +/obj/machinery/reagentgrinder{ + pixel_y = 5 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/medical/chemistry) +"bgF" = ( +/obj/machinery/smartfridge/extract/preloaded, +/turf/closed/wall, +/area/science/xenobiology) +"bgG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"bgH" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/rack, +/obj/item/storage/box/masks{ + pixel_y = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"bgI" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xeno4"; + name = "Creature Cell 4" + }, +/turf/open/floor/plating, +/area/science/xenobiology) +"bgJ" = ( +/obj/machinery/monkey_recycler, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/button/door{ + id = "xeno4"; + name = "Creature Cell 4 Toggle"; + pixel_x = 24; + pixel_y = -24; + req_access_txt = "55" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"bgK" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 2; + name = "qm sorting disposal pipe"; + sortType = 3 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bgL" = ( +/obj/structure/flora/junglebush/b, +/obj/structure/flora/ausbushes/ppflowers, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera{ + c_tag = "Virology Monkey Pen"; + dir = 4; + name = "medical camera"; + network = list("ss13","medical") + }, +/mob/living/carbon/monkey, +/turf/open/floor/grass, +/area/medical/virology) +"bgM" = ( +/obj/machinery/chem_heater, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/button/door{ + id = "xeno1"; + name = "Creature Cell 1 Toggle"; + pixel_x = -24; + pixel_y = 24; + req_access_txt = "55" + }, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"bgN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot_white, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/rack, +/obj/item/storage/toolbox/emergency{ + pixel_y = 5 + }, +/obj/item/clothing/under/color/grey, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/fore) +"bgO" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/ausbushes/lavendergrass, +/obj/structure/flora/ausbushes/ywflowers, +/obj/machinery/light{ + dir = 4 + }, +/mob/living/carbon/monkey{ + name = "mankey" + }, +/turf/open/floor/grass, +/area/medical/virology) +"bgP" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/starboard) +"bgQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"bgS" = ( +/obj/structure/sign/warning/electricshock{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/fore) +"bgT" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/port) +"bgU" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"bgV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/central) +"bgW" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/power/apc{ + areastring = "/area/science/research"; + name = "Research Division APC"; + pixel_y = -26 + }, +/obj/machinery/camera{ + c_tag = "Research Division"; + dir = 1; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/research) +"bgX" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/button/door{ + id = "xeno3"; + name = "Creature Cell 3 Toggle"; + pixel_x = 24; + pixel_y = 24; + req_access_txt = "55" + }, +/obj/structure/window/reinforced, +/obj/machinery/computer/camera_advanced/xenobio{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"bgY" = ( +/obj/machinery/door/poddoor/preopen{ + id = "xeno1"; + name = "Creature Cell 1" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Creature Cell"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"bgZ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/highsecurity{ + name = "AI Upload"; + req_access_txt = "16" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"bhb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/central) +"bhc" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xeno1"; + name = "Creature Cell 1" + }, +/turf/open/floor/plating, +/area/science/xenobiology) +"bhd" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"bhe" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/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/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard) +"bhf" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xeno3"; + name = "Creature Cell 3" + }, +/turf/open/floor/plating, +/area/science/xenobiology) +"bhg" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/closet/l3closet/scientist, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/tank/internals/emergency_oxygen, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/item/extinguisher, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"bhh" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"bhi" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"bhk" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/research{ + name = "Toxins Storage"; + req_access_txt = "8" + }, +/turf/open/floor/plasteel/dark, +/area/science/storage) +"bhl" = ( +/obj/structure/sign/departments/xenobio, +/turf/closed/wall/r_wall, +/area/science/xenobiology) +"bhm" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"bhn" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall, +/area/science/xenobiology) +"bho" = ( +/obj/effect/landmark/xeno_spawn, +/obj/effect/spawner/lootdrop/two_percent_xeno_egg_spawner, +/turf/open/floor/engine, +/area/science/xenobiology) +"bhp" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/landmark/start/cook, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"bhq" = ( +/obj/structure/sign/warning/docking, +/turf/closed/wall, +/area/maintenance/starboard) +"bhr" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"bhs" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/item/folder/yellow, +/obj/item/flashlight, +/obj/machinery/door/window/westleft{ + dir = 4; + name = "Cargo Desk"; + req_access_txt = "50" + }, +/turf/open/floor/plating, +/area/quartermaster/office) +"bht" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"bhu" = ( +/mob/living/simple_animal/slime, +/turf/open/floor/engine, +/area/science/xenobiology) +"bhv" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/starboard) +"bhw" = ( +/obj/machinery/door/poddoor/preopen{ + id = "xeno3"; + name = "Creature Cell 3" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Creature Cell"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"bhx" = ( +/obj/structure/table, +/obj/item/clipboard, +/obj/item/wrench, +/obj/item/crowbar/red, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/obj/machinery/camera{ + c_tag = "Server Room"; + dir = 1; + name = "science camera"; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel/showroomfloor, +/area/science/server) +"bhy" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/computer/cargo, +/obj/machinery/requests_console{ + department = "Cargo Bay"; + departmentType = 2; + name = "Cargo RC"; + pixel_y = 30 + }, +/obj/item/radio/intercom{ + pixel_x = -28; + pixel_y = 22 + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/office) +"bhz" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bhA" = ( +/turf/open/space/basic, +/area/space/nearstation) +"bhB" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/stack/sheet/plasteel{ + amount = 10; + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/book/manual/wiki/robotics_cyborgs, +/obj/item/stack/cable_coil, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"bhC" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/structure/bodycontainer/morgue, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"bhD" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bhE" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/clipboard, +/obj/item/folder, +/obj/item/multitool, +/obj/item/pen/red, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/obj/item/toy/figure/cargotech{ + pixel_x = 8; + pixel_y = 6 + }, +/obj/item/toy/figure/miner{ + pixel_x = 8 + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/office) +"bhF" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/stamp/qm{ + pixel_x = 8; + pixel_y = 10 + }, +/obj/item/stamp/denied{ + pixel_x = 8; + pixel_y = 6 + }, +/obj/item/stamp{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/pen, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/qm) +"bhH" = ( +/turf/closed/wall, +/area/quartermaster/miningoffice) +"bhI" = ( +/turf/closed/wall, +/area/quartermaster/office) +"bhK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/grunge{ + name = "Entertainment Backstage"; + req_access_txt = "46" + }, +/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" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/theatre) +"bhL" = ( +/obj/structure/plasticflaps/opaque, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/quartermaster/sorting) +"bhM" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/item/folder/yellow, +/obj/item/stack/packageWrap, +/obj/item/gps{ + gpstag = "QM0"; + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/hand_labeler, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/qm) +"bhN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bhO" = ( +/obj/machinery/computer/bounty, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/newscaster{ + pixel_y = 30 + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/qm) +"bhP" = ( +/obj/machinery/computer/cargo, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/requests_console{ + department = "Cargo Bay"; + departmentType = 2; + name = "Quartermaster RC"; + pixel_y = 30 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24; + pixel_y = 28 + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/qm) +"bhQ" = ( +/turf/closed/wall, +/area/quartermaster/storage) +"bhS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bhT" = ( +/obj/machinery/chem_dispenser{ + layer = 2.7 + }, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/medical/chemistry) +"bhU" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port) +"bhV" = ( +/obj/machinery/computer/security/mining{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/status_display/evac{ + pixel_x = 32 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/miningoffice) +"bhW" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/quartermaster/miningoffice) +"bhX" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/quartermaster/office) +"bhY" = ( +/obj/effect/turf_decal/tile/neutral, +/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/hallway/primary/starboard) +"bhZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/emcloset{ + name = "plasmaperson emergency closet" + }, +/obj/item/clothing/under/plasmaman, +/obj/item/clothing/under/plasmaman, +/obj/item/clothing/head/helmet/space/plasmaman, +/obj/item/clothing/head/helmet/space/plasmaman, +/obj/item/tank/internals/plasmaman/belt/full, +/obj/item/tank/internals/plasmaman/belt/full, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port) +"bia" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/port) +"bib" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/l3closet, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"bic" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/surgery) +"bid" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Air to Room" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port) +"bie" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"bif" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Connector to Room" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port) +"big" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/quartermaster/qm) +"bih" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/virology) +"bii" = ( +/obj/item/reagent_containers/food/snacks/grown/banana, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/grass, +/area/medical/virology) +"bij" = ( +/obj/structure/flora/junglebush/b, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/mob/living/carbon/monkey, +/turf/open/floor/grass, +/area/medical/virology) +"bik" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bil" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/sign/departments/chemistry{ + pixel_x = -32 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"bim" = ( +/obj/item/flashlight/lamp/green{ + pixel_x = -5; + pixel_y = 7 + }, +/obj/item/pen{ + pixel_x = 8; + pixel_y = 5 + }, +/obj/item/pen/red{ + pixel_x = 5; + pixel_y = 1 + }, +/obj/structure/table, +/obj/item/toy/figure/qm, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bio" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + dir = 8; + freq = 1400; + location = "QM #1" + }, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/the_griffin{ + pixel_y = 32 + }, +/mob/living/simple_animal/bot/mulebot{ + beacon_freq = 1400; + home_destination = "QM #1"; + suffix = "#1" + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/storage) +"bip" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/virology{ + name = "Virology Access"; + req_access_txt = "39" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/virology) +"biq" = ( +/obj/structure/closet/wardrobe/miner, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/clothing/suit/hooded/wintercoat/miner, +/obj/item/clothing/suit/hooded/wintercoat/miner, +/obj/item/clothing/suit/hooded/wintercoat/miner, +/obj/machinery/power/apc{ + areastring = "/area/quartermaster/miningoffice"; + dir = 1; + name = "Mining Dock APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/miningoffice) +"bir" = ( +/obj/structure/displaycase/trophy, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/sign/poster/official/pda_ad{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"bis" = ( +/obj/machinery/computer/shuttle/mining{ + dir = 8; + req_access = null + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/miningoffice) +"bit" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/ore_box, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/miningoffice) +"biu" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/dark, +/area/quartermaster/miningoffice) +"biv" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"biw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"bix" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"biy" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/central) +"biz" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"biA" = ( +/obj/structure/window/reinforced, +/obj/structure/flora/ausbushes/palebush, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"biB" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Research Security Post"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/science/research) +"biC" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/junction, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"biD" = ( +/obj/machinery/rnd/production/techfab/department/service, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/central) +"biE" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/highsecurity{ + name = "AI Upload"; + req_access_txt = "16" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"biF" = ( +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/central) +"biG" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/port) +"biH" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/emergency{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/storage/toolbox/emergency, +/obj/item/shovel, +/obj/item/shovel, +/obj/item/pickaxe, +/obj/item/pickaxe, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/miningoffice) +"biI" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/clipboard, +/obj/item/folder/yellow, +/obj/item/cartridge/quartermaster, +/obj/item/cartridge/quartermaster, +/obj/item/cartridge/quartermaster, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"biJ" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/vending/wardrobe/chef_wardrobe, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/kitchen) +"biK" = ( +/obj/machinery/chem_master, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "chemistry_shutters_2"; + name = "Hall Shutters Toggle"; + pixel_x = 24; + pixel_y = -24; + req_access_txt = "5; 33" + }, +/obj/machinery/newscaster{ + pixel_y = -30 + }, +/obj/machinery/light_switch{ + pixel_x = 24; + pixel_y = -40 + }, +/turf/open/floor/plasteel/dark, +/area/medical/chemistry) +"biL" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/kitchen) +"biM" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/item/storage/box/lights/mixed{ + pixel_y = 6 + }, +/obj/machinery/door/window/westright{ + dir = 4; + name = "Cargo Desk"; + req_access_txt = "50" + }, +/turf/open/floor/plating, +/area/quartermaster/office) +"biN" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "kitchen_2"; + name = "Hallway Hatch Toggle"; + pixel_x = 24; + pixel_y = -24; + req_access_txt = "28" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"biO" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"biP" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/starboard) +"biQ" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/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/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"biR" = ( +/obj/machinery/door/window/northleft{ + dir = 2; + name = "Cargo Delivery Access"; + req_access_txt = "50" + }, +/obj/structure/plasticflaps/opaque, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/quartermaster/office) +"biS" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "Mining Dock Airlock"; + req_access_txt = "48" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/miningoffice) +"biT" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/qm) +"biU" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/door/airlock/research{ + name = "Experimentation Lab"; + req_access_txt = "47" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/science/explab) +"biV" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"biW" = ( +/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/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/landmark/start/depsec/supply, +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"biX" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"biY" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/door/airlock/research{ + name = "Toxins Storage"; + req_access_txt = "8" + }, +/turf/open/floor/plasteel/dark, +/area/science/storage) +"biZ" = ( +/obj/machinery/computer/security/qm{ + dir = 8; + network = list("mine","auxbase","vault","qm") + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bja" = ( +/obj/structure/closet/secure_closet/quartermaster, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_x = -24; + pixel_y = -24 + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/qm) +"bjb" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/loading_area, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bjc" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/loading_area, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bjd" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bje" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/event_spawn, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bjf" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bjg" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/central) +"bjh" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bji" = ( +/obj/structure/table/wood, +/obj/item/clipboard, +/obj/item/folder/red, +/obj/item/clothing/glasses/sunglasses, +/turf/open/floor/carpet, +/area/security/detectives_office) +"bjj" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bjk" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + pixel_x = -5; + pixel_y = 7 + }, +/obj/item/pen{ + pixel_x = 8; + pixel_y = 5 + }, +/obj/item/pen/red{ + pixel_x = 5; + pixel_y = 1 + }, +/obj/item/toy/figure/detective, +/obj/machinery/light{ + dir = 4 + }, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/turf/open/floor/carpet, +/area/security/detectives_office) +"bjl" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/closet/crate, +/obj/item/flashlight, +/obj/item/flashlight, +/obj/item/flashlight/flare, +/obj/item/flashlight/flare, +/obj/item/stock_parts/cell/high, +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/quartermaster/miningoffice) +"bjm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bjn" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hydroponics) +"bjo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bjp" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bjq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bjr" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/storage/toolbox/emergency{ + pixel_y = 5 + }, +/obj/item/flashlight, +/turf/open/floor/plating, +/area/maintenance/port) +"bjs" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/structure/closet/crate/freezer/blood, +/obj/machinery/power/apc{ + areastring = "/area/medical/surgery"; + dir = 4; + name = "Surgery APC"; + pixel_x = 26 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/surgery) +"bjt" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bju" = ( +/obj/structure/closet/secure_closet/miner, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/tank/internals/oxygen/yellow, +/turf/open/floor/plasteel/dark, +/area/quartermaster/miningoffice) +"bjv" = ( +/obj/structure/closet/secure_closet/miner, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/tank/internals/oxygen/yellow, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/miningoffice) +"bjw" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port) +"bjx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port) +"bjy" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bjz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port) +"bjA" = ( +/obj/structure/chair/office/light{ + dir = 1; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/virology) +"bjB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/virology) +"bjC" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/obj/effect/landmark/start/virologist, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/virology) +"bjD" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/virology) +"bjE" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/virology) +"bjG" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/ywflowers, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/grass, +/area/medical/virology) +"bjH" = ( +/obj/machinery/door/airlock/grunge{ + name = "Art Cabinet" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/library) +"bjI" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/door/airlock/medical{ + name = "Kitchen"; + req_access_txt = "28" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/kitchen) +"bjJ" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/apc{ + areastring = "/area/quartermaster/qm"; + dir = 1; + name = "Quartermaster's Office APC"; + pixel_y = 26 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/camera{ + c_tag = "Quartermaster's Office"; + name = "cargo camera"; + network = list("ss13","qm") + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/dark, +/area/quartermaster/qm) +"bjK" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/disposal/bin, +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/port) +"bjL" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/primary/port) +"bjM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"bjN" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"bjO" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/vending/wardrobe/cap_wardrobe, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/captain) +"bjP" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/closet/emcloset/anchored, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/central) +"bjQ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bjR" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bjS" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/flora/grass/jungle/b, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"bjT" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/transit_tube/curved{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/bridge) +"bjU" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/transit_tube/horizontal, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/bridge) +"bjV" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28 + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/storage) +"bjW" = ( +/turf/closed/wall, +/area/quartermaster/sorting) +"bjX" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"bjY" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"bjZ" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/transit_tube/station/reverse, +/obj/structure/transit_tube_pod{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/bridge) +"bka" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/reinforced, +/turf/open/floor/plating, +/area/bridge) +"bkb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/central) +"bkc" = ( +/obj/structure/sign/warning/docking, +/turf/closed/wall, +/area/quartermaster/miningoffice) +"bkd" = ( +/turf/closed/wall, +/area/maintenance/starboard) +"bke" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bkf" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bkg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/loading_area, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bkh" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/storage) +"bki" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bkj" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/vending/cola/red, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/central) +"bkk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/central) +"bkl" = ( +/obj/effect/turf_decal/bot, +/obj/effect/landmark/event_spawn, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bkm" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/computer/security/labor, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + name = "Cargo Checkpoint RC"; + pixel_y = 30 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/newscaster/security_unit{ + pixel_x = -30 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/supply) +"bkn" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bko" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bkp" = ( +/obj/effect/landmark/start/lawyer, +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/lawoffice) +"bkq" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bkr" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/computer/bounty{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/office) +"bks" = ( +/obj/effect/turf_decal/tile/neutral, +/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/quartermaster/storage) +"bkt" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet/crate/silvercrate, +/obj/item/wrench/power, +/obj/machinery/light/small{ + dir = 4 + }, +/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/dark, +/area/security/nuke_storage) +"bku" = ( +/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/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/effect/landmark/start/quartermaster, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bkv" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/conveyor{ + dir = 1; + id = "QMLoad"; + name = "off ramp" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/storage) +"bkw" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bkx" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bky" = ( +/mob/living/simple_animal/butterfly, +/turf/open/floor/grass, +/area/chapel/main) +"bkz" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/item/folder/yellow, +/obj/item/pen, +/obj/structure/window/reinforced, +/obj/machinery/door/window/westleft{ + dir = 4; + name = "Delivery Desk"; + req_access_txt = "50" + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"bkA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bkB" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bkC" = ( +/obj/effect/turf_decal/arrows, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bkD" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/arrows, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bkE" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/status_display/ai{ + pixel_x = -32; + pixel_y = -32 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bkF" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/start/shaft_miner, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bkG" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bkH" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/landmark/start/shaft_miner, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bkI" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/effect/landmark/start/shaft_miner, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bkJ" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/radio{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/item/pen, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/supply) +"bkK" = ( +/obj/structure/closet/secure_closet/miner, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/tank/internals/oxygen/yellow, +/obj/machinery/light, +/obj/machinery/requests_console{ + department = "Mining"; + name = "Mining RC"; + pixel_y = -30 + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/miningoffice) +"bkL" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-05" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bkM" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/conveyor{ + dir = 9; + id = "QMLoad"; + name = "off ramp" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/quartermaster/storage) +"bkN" = ( +/obj/machinery/door/poddoor{ + id = "QMLoaddoor"; + name = "Supply Dock Loading Door" + }, +/obj/machinery/conveyor{ + dir = 8; + id = "QMLoad"; + name = "off ramp" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bkO" = ( +/obj/structure/plasticflaps, +/obj/machinery/conveyor{ + dir = 8; + id = "QMLoad"; + name = "off ramp" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bkQ" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/disposaloutlet{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/quartermaster/sorting) +"bkR" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/conveyor{ + dir = 4; + id = "packageSort2"; + name = "mail belt" + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/sorting) +"bkS" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/conveyor{ + dir = 4; + id = "packageSort2"; + name = "mail belt" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/quartermaster/sorting) +"bkT" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall, +/area/vacant_room/commissary) +"bkU" = ( +/obj/structure/table/wood, +/obj/item/storage/box/seccarts{ + pixel_y = 5 + }, +/obj/item/reagent_containers/food/drinks/bottle/whiskey{ + desc = "A bottle of whiskey. There's a label that reads 'tears' taped to the front."; + name = "Bottle of Tears"; + pixel_x = 3; + pixel_y = 5 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ + pixel_y = 2 + }, +/obj/machinery/keycard_auth{ + pixel_x = -6; + pixel_y = -24 + }, +/obj/machinery/button/door{ + id = "hosspace"; + name = "Space Blast door Toggle"; + pixel_x = 7; + pixel_y = -24 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/hos) +"bkV" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal/deliveryChute{ + dir = 8 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/dark, +/area/quartermaster/sorting) +"bkW" = ( +/obj/machinery/door/poddoor/shutters{ + id = "teleshutter"; + name = "Teleport Access Shutter" + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"bkX" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/emcloset, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/maintenance/port) +"bkY" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bkZ" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bla" = ( +/obj/effect/decal/cleanable/dirt, +/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/plating, +/area/maintenance/port) +"blb" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"blc" = ( +/obj/machinery/door/airlock/maintenance{ + name = "kitchen maintenance"; + req_access_txt = "28" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/central) +"bld" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port) +"ble" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port) +"blf" = ( +/turf/closed/wall, +/area/security/checkpoint/supply) +"blg" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/checkpoint/supply) +"blh" = ( +/obj/machinery/mineral/equipment_vendor, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/status_display/supply{ + pixel_y = -32 + }, +/obj/machinery/camera{ + c_tag = "Mining Dock"; + dir = 1; + name = "cargo camera"; + network = list("ss13","qm") + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/miningoffice) +"bli" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"blj" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"blk" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/computer/cargo{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/button/door{ + id = "QMLoaddoor"; + layer = 4; + name = "Off Ramp Toggle"; + pixel_x = 24; + pixel_y = 6; + req_access_txt = "31" + }, +/obj/machinery/button/door{ + id = "QMLoaddoor2"; + layer = 4; + name = "On Ramp Toggle"; + pixel_x = 24; + pixel_y = -6; + req_access_txt = "31" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bll" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/warning/vacuum/external, +/turf/open/floor/plating, +/area/quartermaster/storage) +"blm" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"bln" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port) +"blo" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-14" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/virology) +"blp" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/virology) +"blq" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"blr" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bls" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"blu" = ( +/obj/docking_port/stationary{ + dir = 4; + dwidth = 3; + height = 10; + id = "mining_home"; + name = "mining shuttle bay"; + roundstart_template = /datum/map_template/shuttle/mining/kilo; + width = 7 + }, +/turf/open/space/basic, +/area/space) +"blv" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/power/apc{ + areastring = "/area/hallway/primary/port"; + dir = 8; + name = "Port Hallway APC"; + pixel_x = -26 + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/primary/port) +"blw" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"blx" = ( +/obj/structure/easel, +/obj/effect/turf_decal/bot, +/obj/item/airlock_painter, +/turf/open/floor/plasteel/dark, +/area/library) +"bly" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/vending/wardrobe/cargo_wardrobe, +/obj/effect/turf_decal/bot, +/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/dark, +/area/quartermaster/storage) +"blz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"blA" = ( +/obj/structure/rack, +/obj/item/storage/crayons, +/obj/item/storage/crayons, +/obj/effect/turf_decal/bot, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/library) +"blB" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/library) +"blC" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"blD" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"blE" = ( +/obj/structure/sign/warning/docking, +/turf/closed/wall, +/area/quartermaster/storage) +"blF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"blG" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -30 + }, +/obj/machinery/camera{ + c_tag = "Cargo Checkpoint Post"; + dir = 1; + name = "cargo camera"; + network = list("ss13","qm") + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/supply) +"blH" = ( +/obj/machinery/door/poddoor{ + id = "QMLoaddoor2"; + name = "Supply Dock Loading Door" + }, +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad2"; + name = "on ramp" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"blI" = ( +/obj/structure/plasticflaps, +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad2"; + name = "on ramp" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"blJ" = ( +/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/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"blK" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"blL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/start/cargo_technician, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"blM" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"blN" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/twohanded/required/kirbyplants, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"blO" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"blP" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"blQ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/computer/cargo, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/dark, +/area/quartermaster/sorting) +"blR" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/item/twohanded/required/kirbyplants, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"blS" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"blT" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"blU" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the AI Upload."; + dir = 4; + name = "AI Upload Monitor"; + network = list("aiupload"); + pixel_x = -28 + }, +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"blV" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/caution, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/bridge) +"blW" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/button/door{ + id = "transittube"; + name = "Transit Tube Lockdown Toggle"; + pixel_x = 24; + req_access_txt = "19" + }, +/obj/machinery/camera{ + c_tag = "AI Upload Transit"; + dir = 8; + name = "command camera" + }, +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1447; + name = "Private AI Channel"; + pixel_y = -26 + }, +/obj/machinery/turretid{ + control_area = "/area/ai_monitored/turret_protected/ai_upload"; + icon_state = "control_stun"; + name = "AI Upload turret control"; + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/bridge) +"blX" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/obj/structure/sign/warning/deathsposal{ + layer = 4 + }, +/turf/open/floor/plating, +/area/medical/virology) +"blY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/loading_area, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"blZ" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/storage/box/lights/mixed{ + pixel_y = 4 + }, +/obj/item/hand_labeler, +/obj/machinery/light/small, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/central) +"bma" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/conveyor{ + dir = 4; + id = "packageSort2"; + name = "mail belt" + }, +/obj/machinery/camera{ + c_tag = "Delivery Office"; + dir = 1; + name = "cargo camera"; + network = list("ss13","qm") + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/sorting) +"bmb" = ( +/turf/closed/wall/r_wall, +/area/storage/tech) +"bmc" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/storage/eva) +"bmd" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/central) +"bme" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/plantgenes{ + pixel_y = 5 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"bmf" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bmg" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hydroponics) +"bmh" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/light_switch{ + pixel_x = 24; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bmi" = ( +/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/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/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/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bmj" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad2"; + name = "on ramp" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/sign/poster/contraband/red_rum{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/storage) +"bmk" = ( +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bml" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad2"; + name = "on ramp" + }, +/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/item/radio/intercom{ + pixel_y = -28 + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/storage) +"bmm" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad2"; + name = "on ramp" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/sign/warning/vacuum/external{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/storage) +"bmo" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-05" + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bmp" = ( +/obj/structure/plasticflaps/opaque, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/janitor) +"bmq" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/conveyor{ + dir = 1; + id = "QMLoad"; + name = "off ramp" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/camera{ + c_tag = "Cargo Ramps"; + dir = 8; + name = "cargo camera"; + network = list("ss13","qm") + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/storage) +"bmr" = ( +/obj/machinery/vending/wardrobe/cargo_wardrobe, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/machinery/camera{ + c_tag = "Cargo Lockers"; + dir = 4; + name = "cargo camera"; + network = list("ss13","qm") + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/storage) +"bms" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad2"; + name = "on ramp" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light, +/obj/machinery/status_display/supply{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/storage) +"bmt" = ( +/obj/machinery/door/firedoor, +/obj/machinery/mineral/ore_redemption{ + dir = 8; + input_dir = 4; + output_dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/quartermaster/office) +"bmu" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/clipboard{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/clipboard, +/obj/item/folder/yellow, +/obj/item/hand_labeler, +/obj/item/hand_labeler, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/storage) +"bmv" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/landmark/start/cargo_technician, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bmw" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bmx" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/stamp/denied{ + pixel_x = 8; + pixel_y = 6 + }, +/obj/item/stamp{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/pen, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/power/apc{ + areastring = "/area/quartermaster/office"; + dir = 4; + name = "Cargo Office APC"; + pixel_x = 26 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/camera{ + c_tag = "Cargo Office"; + dir = 8; + name = "cargo camera"; + network = list("ss13","qm") + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/office) +"bmy" = ( +/turf/closed/wall, +/area/crew_quarters/bar/atrium) +"bmz" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"bmA" = ( +/obj/machinery/smartfridge, +/turf/closed/wall, +/area/crew_quarters/kitchen) +"bmB" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall, +/area/hallway/primary/port) +"bmC" = ( +/obj/structure/sink/puddle, +/obj/structure/flora/ausbushes/reedbush{ + pixel_y = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/grass, +/area/medical/virology) +"bmD" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/arrows, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bmE" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/vending/hydroseeds{ + slogan_delay = 700 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"bmF" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall, +/area/hydroponics) +"bmG" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/plantgenes{ + pixel_y = 5 + }, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"bmH" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/closet/secure_closet/freezer/meat, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"bmI" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/arrows, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bmJ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"bmK" = ( +/obj/structure/chair/stool/bar, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/central) +"bmL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port) +"bmN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining/glass{ + name = "Mining Dock"; + req_access_txt = "48" + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/miningoffice) +"bmO" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/reagent_containers/food/snacks/dough, +/obj/item/reagent_containers/food/snacks/dough, +/obj/item/kitchen/rollingpin, +/obj/item/kitchen/rollingpin, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/kitchen) +"bmP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/shutters{ + id = "evashutter"; + name = "E.V.A. Storage Shutter" + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/eva) +"bmQ" = ( +/obj/machinery/computer/arcade, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bmR" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/reagent_containers/food/snacks/mint, +/obj/item/reagent_containers/food/condiment/enzyme{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/item/reagent_containers/food/condiment/sugar{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/reagent_containers/glass/beaker, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/kitchen) +"bmS" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/item/reagent_containers/food/condiment/peppermill{ + desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; + pixel_x = -8; + pixel_y = 2 + }, +/obj/item/reagent_containers/food/condiment/saltshaker{ + desc = "Salt. From space oceans, presumably. A staple of modern medicine."; + pixel_x = -8; + pixel_y = 12 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchen_2"; + name = "Hallway Hatch" + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/kitchen) +"bmT" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/storage/bag/tray, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/kitchen) +"bmU" = ( +/obj/structure/lattice, +/turf/closed/wall/r_wall/rust, +/area/security/prison) +"bmV" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/components/binary/valve/digital{ + dir = 8; + name = "Waste Release" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"bmW" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/air, +/obj/item/wrench, +/turf/open/floor/plasteel/dark, +/area/quartermaster/miningoffice) +"bmX" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/port) +"bmY" = ( +/obj/structure/chair/office/light, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/virology) +"bmZ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical{ + name = "Kitchen"; + req_access_txt = "28" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/kitchen) +"bna" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/crew_quarters/bar/atrium) +"bnb" = ( +/obj/docking_port/stationary{ + dir = 4; + dwidth = 4; + height = 7; + id = "supply_home"; + name = "Cargo Bay"; + width = 12 + }, +/turf/open/space/basic, +/area/space/nearstation) +"bnc" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/item/reagent_containers/food/snacks/grown/corn{ + pixel_y = 6 + }, +/obj/item/reagent_containers/food/snacks/grown/pumpkin{ + pixel_y = 6 + }, +/obj/item/reagent_containers/food/snacks/grown/carrot, +/obj/item/reagent_containers/food/snacks/grown/tomato, +/obj/machinery/door/window/eastleft{ + dir = 8; + name = "Hydroponics Desk"; + req_access_txt = "35" + }, +/turf/open/floor/plating, +/area/hydroponics) +"bnd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/virology) +"bne" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/virology) +"bnf" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/virology) +"bng" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/landmark/start/virologist, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/virology) +"bnh" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bni" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bnj" = ( +/obj/machinery/smartfridge, +/turf/closed/wall, +/area/hydroponics) +"bnk" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/closet/wardrobe/white, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/locker) +"bnl" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/door/airlock/external{ + name = "Mining Dock Airlock"; + req_access_txt = "48" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/miningoffice) +"bnm" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/conveyor{ + dir = 4; + id = "packageSort2"; + name = "mail belt" + }, +/obj/machinery/light, +/turf/open/floor/plasteel/dark, +/area/quartermaster/sorting) +"bnn" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 28 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bno" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/storage/bag/tray, +/obj/item/reagent_containers/food/snacks/sausage, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar/atrium) +"bnp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bnq" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/genericbush, +/obj/structure/flora/ausbushes/ppflowers, +/obj/structure/flora/ausbushes/sunnybush, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/grass, +/area/hydroponics) +"bnr" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/secure_closet/personal, +/obj/item/storage/backpack, +/obj/item/storage/backpack/satchel, +/obj/item/clothing/under/assistantformal, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/shoes/winterboots, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/locker) +"bns" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/sink{ + dir = 8; + pixel_x = -12 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hydroponics) +"bnt" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"bnu" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"bnv" = ( +/turf/closed/wall, +/area/hallway/primary/starboard) +"bnw" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"bnx" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/library) +"bny" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"bnz" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bnA" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/radio/intercom{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"bnB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"bnC" = ( +/obj/machinery/biogenerator, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/door/window/eastright{ + dir = 8; + name = "Biogenerator"; + req_access_txt = "35" + }, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"bnD" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"bnE" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/sorting/mail{ + name = "kitchen sorting disposal pipe"; + sortType = 20 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bnF" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"bnG" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bnH" = ( +/obj/structure/flora/grass/jungle/b, +/obj/structure/flora/ausbushes/fullgrass, +/obj/structure/flora/ausbushes/brflowers, +/obj/structure/flora/ausbushes/leafybush, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/grass, +/area/hydroponics) +"bnI" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bnJ" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/landmark/start/botanist, +/turf/open/floor/plasteel, +/area/hydroponics) +"bnK" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bnL" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/item/reagent_containers/food/condiment/peppermill{ + desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; + pixel_x = -8; + pixel_y = 2 + }, +/obj/item/reagent_containers/food/condiment/saltshaker{ + desc = "Salt. From space oceans, presumably. A staple of modern medicine."; + pixel_x = -8; + pixel_y = 12 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchen"; + name = "Serving Hatch" + }, +/obj/item/toy/figure/chef, +/turf/open/floor/plating, +/area/crew_quarters/kitchen) +"bnM" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/structure/sign/departments/science{ + pixel_x = 32 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bnN" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hydroponics) +"bnO" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bnP" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/tank_dispenser/oxygen{ + pixel_x = -1; + pixel_y = 2 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bnQ" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bnR" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/genericbush, +/obj/structure/flora/ausbushes/ppflowers, +/obj/structure/flora/ausbushes/sunnybush, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/grass, +/area/hydroponics) +"bnS" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/bot, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/sign/poster/official/fruit_bowl{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"bnT" = ( +/obj/structure/flora/grass/jungle/b, +/obj/structure/flora/ausbushes/ppflowers, +/obj/structure/window/reinforced{ + dir = 4 + }, +/mob/living/simple_animal/cow{ + desc = "Allegedly a bull."; + name = "Otis"; + real_name = "Betsy" + }, +/turf/open/floor/grass, +/area/hydroponics) +"bnU" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/landmark/start/botanist, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hydroponics) +"bnV" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bnW" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-05" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bnX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bnY" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/autolathe, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/quartermaster/office) +"bnZ" = ( +/obj/item/twohanded/required/kirbyplants, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"boa" = ( +/obj/structure/flora/grass/jungle/b, +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/genericbush, +/obj/structure/flora/ausbushes/ppflowers, +/obj/structure/flora/ausbushes/sunnybush, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/grass, +/area/hydroponics) +"bob" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/ausbushes/fullgrass, +/obj/structure/flora/ausbushes/brflowers, +/obj/structure/flora/ausbushes/leafybush, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/turf/open/floor/grass, +/area/hydroponics) +"boc" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"bod" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/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" + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"boe" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/reagent_containers/food/condiment/peppermill{ + desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; + pixel_x = -8; + pixel_y = 2 + }, +/obj/item/reagent_containers/food/condiment/saltshaker{ + desc = "Salt. From space oceans, presumably. A staple of modern medicine."; + pixel_x = -8; + pixel_y = 12 + }, +/obj/item/reagent_containers/food/drinks/bottle/orangejuice{ + desc = "An emerald flask, from the Keeper's soul. High in vitamins!"; + name = "estus flask"; + pixel_x = 4; + pixel_y = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar/atrium) +"bof" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bog" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/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" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"boh" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/ausbushes/fullgrass, +/obj/structure/flora/ausbushes/brflowers, +/obj/structure/flora/ausbushes/leafybush, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/turf/open/floor/grass, +/area/hydroponics) +"boi" = ( +/obj/machinery/door/window/brigdoor/westright{ + dir = 4; + name = "Core Modules"; + req_access_txt = "20" + }, +/obj/item/aiModule/core/freeformcore{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/aiModule/core/full/custom, +/obj/item/aiModule/core/full/asimov{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/structure/table, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/machinery/flasher{ + id = "AI"; + name = "Meatbag Pacifier"; + pixel_x = -24 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai_upload) +"boj" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bok" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bol" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical/glass{ + name = "Service Door"; + req_one_access_txt = "35;28" + }, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"bom" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining/glass{ + name = "Quartermaster"; + req_access_txt = "41" + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/qm) +"bon" = ( +/obj/structure/sign/departments/botany, +/turf/closed/wall, +/area/hydroponics) +"boo" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet{ + name = "supply locker" + }, +/obj/item/clothing/under/rank/cargotech, +/obj/item/clothing/shoes/sneakers/brown, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bop" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"boq" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/rnd/production/techfab/department/cargo, +/turf/open/floor/plasteel/dark, +/area/quartermaster/storage) +"bor" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light/small, +/obj/item/reagent_containers/glass/bucket, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"bos" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/reagent_dispensers/watertank, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/maintenance/port) +"bot" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/decal/cleanable/dirt, +/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/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port) +"bou" = ( +/obj/item/flashlight/lantern, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"bov" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/radio/intercom{ + pixel_x = -28 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"bow" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/item/reagent_containers/food/snacks/pie/cream, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchen"; + name = "Serving Hatch" + }, +/turf/open/floor/plating, +/area/crew_quarters/kitchen) +"box" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"boy" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/soda_cans/cola{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/candle/infinite{ + pixel_x = -4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/central) +"boz" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/secure_closet/hydroponics, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"boA" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/reagent_containers/food/condiment/peppermill{ + desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; + pixel_x = -8; + pixel_y = 2 + }, +/obj/item/reagent_containers/food/condiment/saltshaker{ + desc = "Salt. From space oceans, presumably. A staple of modern medicine."; + pixel_x = -8; + pixel_y = 12 + }, +/obj/item/storage/box/donkpockets{ + pixel_x = 8; + pixel_y = 8 + }, +/obj/item/storage/box/donkpockets{ + pixel_x = 6; + pixel_y = 6 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/kitchen) +"boB" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/reagentgrinder{ + pixel_y = 5 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/kitchen) +"boC" = ( +/turf/closed/wall, +/area/hallway/primary/port) +"boD" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/book/manual/chef_recipes{ + pixel_x = -4; + pixel_y = 6 + }, +/obj/item/book/manual/chef_recipes{ + pixel_y = 2 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/kitchen) +"boE" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/door/airlock/mining/glass{ + name = "Quartermaster"; + req_access_txt = "41" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/qm) +"boF" = ( +/obj/machinery/button/door{ + id = "bank"; + name = "Bank Vault Lock"; + normaldoorcontrol = 1; + pixel_x = -24; + pixel_y = -8; + specialfunctions = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/table, +/obj/effect/decal/cleanable/cobweb, +/obj/item/clothing/under/suit_jacket/really_black{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/clothing/under/suit_jacket/really_black, +/obj/item/clothing/neck/tie/black{ + pixel_x = 6 + }, +/obj/item/clothing/neck/tie/red, +/obj/item/clothing/mask/rat/jackal{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/clothing/mask/rat/jackal, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"boG" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/starboard) +"boH" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/microwave{ + pixel_y = 5 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/kitchen) +"boI" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical{ + name = "Kitchen Cold Room"; + req_access_txt = "28" + }, +/obj/structure/fans/tiny/invisible, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/kitchen) +"boJ" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/closet/secure_closet/freezer/kitchen, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"boK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/door/airlock/mining/glass{ + name = "Mining Dock"; + req_access_txt = "48" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/miningoffice) +"boL" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "bankshutter"; + name = "Bank Shutter Toggle"; + pixel_x = 24; + pixel_y = -8 + }, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/pen, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"boM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/vending/cola/random, +/obj/structure/sign/warning/nosmoking{ + pixel_y = 30 + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"boN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/structure/table, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/item/folder, +/obj/item/pen, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"boO" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/closet/wardrobe/grey, +/obj/effect/turf_decal/bot, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/locker) +"boP" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/chair/stool{ + name = "microbench"; + pixel_x = 16 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"boQ" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/microwave{ + pixel_y = 5 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/kitchen) +"boR" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/secure_closet/personal, +/obj/item/storage/backpack, +/obj/item/storage/backpack/satchel, +/obj/item/clothing/under/assistantformal, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/shoes/winterboots, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/locker) +"boS" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/effect/landmark/start/botanist, +/turf/open/floor/plasteel, +/area/hydroponics) +"boT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"boU" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/primary/port) +"boV" = ( +/obj/machinery/deepfryer, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/kitchen) +"boW" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"boX" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/port) +"boY" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/camera_film{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/camera, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/turf/open/floor/plasteel/dark, +/area/library) +"boZ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bpa" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/ausbushes/fernybush, +/obj/structure/disposalpipe/segment, +/mob/living/carbon/monkey, +/turf/open/floor/grass, +/area/medical/virology) +"bpb" = ( +/obj/machinery/deepfryer, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/kitchen) +"bpc" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/maintenance/port) +"bpd" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bpe" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bpf" = ( +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/central) +"bpg" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/maintenance/central) +"bph" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/item/storage/fancy/donut_box, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchen_2"; + name = "Hallway Hatch" + }, +/turf/open/floor/plating, +/area/crew_quarters/kitchen) +"bpi" = ( +/obj/structure/flora/grass/jungle/b, +/obj/structure/flora/junglebush/b, +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/obj/effect/decal/remains/human, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/grass, +/area/hydroponics) +"bpj" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Inner Pipe Access"; + req_access_txt = "24" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"bpk" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel, +/area/hydroponics) +"bpl" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bpm" = ( +/obj/docking_port/stationary{ + dir = 8; + dwidth = 2; + height = 11; + id = "ferry_home"; + name = "port bay 2"; + width = 5 + }, +/turf/open/space/basic, +/area/space/nearstation) +"bpn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"bpo" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hydroponics) +"bpp" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/sign/poster/official/safety_internals, +/turf/closed/wall, +/area/medical/virology) +"bpq" = ( +/obj/structure/sign/poster/contraband/random, +/turf/closed/wall, +/area/maintenance/central) +"bpr" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bps" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/central) +"bpt" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/port) +"bpu" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bpv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bpw" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bpx" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bpy" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/destructible/cult/tome, +/obj/effect/decal/cleanable/cobweb, +/obj/item/book/codex_gigas{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/flashlight/lantern{ + pixel_x = 4 + }, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/library) +"bpz" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bpA" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bpB" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/power/apc{ + areastring = "/area/quartermaster/storage"; + dir = 1; + name = "Cargo Bay APC"; + pixel_y = 26 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bpC" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bpD" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bpE" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/status_display/supply{ + pixel_x = 32; + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bpF" = ( +/obj/structure/sign/departments/cargo, +/turf/closed/wall/rust, +/area/hallway/primary/starboard) +"bpG" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/chair/comfy/brown{ + buildstackamount = 0; + color = "#c45c57" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/landmark/start/librarian, +/obj/effect/landmark/xeno_spawn, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/library) +"bpH" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/vending/wardrobe/curator_wardrobe, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/library) +"bpI" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"bpJ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/remains/human, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"bpK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/blood/gibs/limb, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"bpL" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/computer/cargo/request, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bpM" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/port) +"bpN" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/obj/effect/turf_decal/box, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bpO" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/maintenance/central) +"bpP" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"bpQ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/item/radio/intercom{ + pixel_x = -28 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bpR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"bpS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"bpT" = ( +/obj/effect/landmark/start/head_of_personnel, +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"bpU" = ( +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "Bridge Blast door" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bpV" = ( +/obj/structure/sign/departments/botany, +/turf/closed/wall, +/area/hallway/primary/starboard) +"bpW" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bpX" = ( +/obj/machinery/door/poddoor/preopen{ + id = "brigfrontdoor"; + name = "Front Security Blast door" + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 28 + }, +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"bpY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bpZ" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/item/stack/cable_coil, +/obj/item/stock_parts/capacitor, +/turf/open/floor/plating, +/area/maintenance/port) +"bqa" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/twohanded/required/kirbyplants, +/obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/bridge"; + dir = 8; + name = "Bridge APC"; + pixel_x = -27 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel, +/area/bridge) +"bqb" = ( +/obj/structure/sign/departments/custodian, +/turf/closed/wall/rust, +/area/maintenance/central) +"bqc" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/chem_master/condimaster{ + name = "CondiMaster Neo" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"bqd" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/reagent_dispensers/cooking_oil, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"bqe" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/bridge) +"bqf" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/teleport/station, +/obj/machinery/status_display/evac{ + pixel_x = 32 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"bqg" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/bridge) +"bqh" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/vending/hydronutrients, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"bqj" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/landmark/start/cook, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"bqk" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"bql" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/machinery/light_switch{ + pixel_x = 40; + pixel_y = 24 + }, +/obj/machinery/button/door{ + id = "kitchen"; + name = "Serving Hatch Toggle"; + pixel_x = 24; + pixel_y = 24; + req_access_txt = "28" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"bqm" = ( +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/bridge) +"bqn" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"bqo" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"bqp" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"bqq" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/landmark/start/cook, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) +"bqr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/central) +"bqs" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"bqt" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/bridge) +"bqu" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"bqv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"bqw" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/camera{ + c_tag = "AI Upload Transit Access"; + dir = 1; + name = "command camera" + }, +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bqx" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bqy" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/door/airlock/medical{ + name = "Kitchen Cold Room"; + req_access_txt = "28" + }, +/obj/structure/fans/tiny/invisible, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/kitchen) +"bqz" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + dir = 8; + freq = 1400; + location = "Kitchen" + }, +/obj/structure/plasticflaps/opaque, +/obj/machinery/door/window/eastright{ + dir = 1; + name = "Kitchen Delivery Access"; + req_access_txt = "28" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/kitchen) +"bqA" = ( +/obj/structure/table, +/obj/item/folder/white, +/obj/item/restraints/handcuffs, +/obj/item/wirerod, +/obj/item/pen, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/dark, +/area/medical/virology) +"bqB" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light/small, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bqC" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/door/airlock/mining{ + name = "Cargo Bay"; + req_one_access_txt = "31;48" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/office) +"bqD" = ( +/obj/structure/plasticflaps/opaque, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=2"; + freq = 1400; + location = "Atmospherics"; + name = "navigation beacon (Atmospherics Delivery)" + }, +/obj/machinery/door/window/southleft{ + dir = 8; + name = "Atmospherics Delivery Access"; + req_one_access_txt = "24;10" + }, +/obj/machinery/door/poddoor/preopen{ + id = "atmos"; + name = "Atmospherics Blast Door" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"bqE" = ( +/obj/machinery/door/airlock/maintenance{ + name = "command maintenance"; + req_one_access_txt = "19;63" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/central) +"bqF" = ( +/obj/machinery/space_heater, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/central) +"bqG" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bqH" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bqI" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bqJ" = ( +/obj/machinery/door/firedoor, +/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/airlock/medical/glass{ + name = "Hydroponics"; + req_access_txt = "35" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"bqK" = ( +/obj/structure/chair/sofa/corner{ + color = "#c45c57"; + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar/atrium) +"bqL" = ( +/obj/structure/chair/sofa{ + color = "#c45c57" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar/atrium) +"bqM" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bqN" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/box, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=NW CPH"; + dir = 8; + location = "W CPH"; + name = "Patrol navbeacon W" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"bqO" = ( +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bqP" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/processor, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/kitchen) +"bqQ" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/secure_closet/hydroponics, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/power/apc{ + areastring = "/area/hydroponics"; + name = "Hydroponics APC"; + pixel_y = -26 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/camera{ + c_tag = "Hydroponics Lockers"; + dir = 8; + name = "hydroponics camera" + }, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"bqR" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"bqS" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bqT" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/sorting/mail{ + name = "hydroponics sorting disposal pipe"; + sortType = 21 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bqU" = ( +/obj/structure/table/wood, +/obj/item/clothing/gloves/color/rainbow/clown, +/obj/item/storage/crayons, +/obj/item/storage/crayons, +/obj/item/bikehorn/rubberducky, +/obj/structure/sign/poster/contraband/clown{ + pixel_x = -30 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/theatre) +"bqV" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/vending/autodrobe, +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/theatre) +"bqW" = ( +/obj/structure/dresser, +/obj/machinery/light/small, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/theatre) +"bqX" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bqY" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/camera{ + c_tag = "Starboard Hallway Hydroponics Counter"; + dir = 8; + name = "starboard camera" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bqZ" = ( +/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/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance/external{ + name = "mass driver intersection"; + req_access_txt = "12" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"bra" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-03" + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/item/radio/intercom{ + pixel_x = -28 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"brb" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/bar/atrium) +"brc" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"brd" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/chair/stool/bar{ + pixel_x = -4; + pixel_y = 6 + }, +/obj/effect/landmark/start/clown, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/theatre) +"bre" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"brf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-16" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"brg" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/central) +"brh" = ( +/obj/machinery/door/airlock/maintenance{ + name = "xenobiology maintenance"; + req_access_txt = "55" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/sign/directions/evac{ + dir = 4; + pixel_y = -24 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard) +"bri" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"brj" = ( +/obj/structure/chair/sofa/left{ + color = "#c45c57" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar/atrium) +"brk" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/reagent_containers/food/snacks/cheesiehonkers{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/reagent_containers/food/snacks/chips, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar/atrium) +"brl" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"brm" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"brn" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"bro" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"brp" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/chapel/office) +"brq" = ( +/obj/structure/chair/sofa/right{ + color = "#c45c57" + }, +/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/landmark/start/assistant, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar/atrium) +"brr" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/bar/atrium) +"brs" = ( +/obj/structure/sign/poster/contraband/random{ + pixel_x = 32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/central) +"brt" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/vending/cola/random, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar/atrium) +"bru" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"brv" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/security/glass{ + name = "Cargo Security Post"; + req_access_txt = "63" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/supply) +"brw" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/bar/atrium) +"brx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"bry" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/obj/structure/spider/stickyweb, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"brz" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -26 + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/starboard) +"brA" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/item/radio{ + desc = "An old handheld radio. You could use it, if you really wanted to."; + icon_state = "radio"; + name = "old radio" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/bar/atrium) +"brB" = ( +/obj/structure/table, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/noticeboard{ + dir = 4; + pixel_x = -27 + }, +/obj/item/reagent_containers/food/condiment/peppermill{ + desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; + pixel_x = -8; + pixel_y = 2 + }, +/obj/item/reagent_containers/food/condiment/saltshaker{ + desc = "Salt. From space oceans, presumably. A staple of modern medicine."; + pixel_x = -8; + pixel_y = 12 + }, +/obj/item/reagent_containers/food/drinks/britcup{ + pixel_x = 4; + pixel_y = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar/atrium) +"brC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port) +"brD" = ( +/turf/closed/wall, +/area/crew_quarters/toilet/restrooms) +"brE" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/chair/sofa/right{ + color = "#c45c57"; + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar/atrium) +"brF" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/food/condiment/peppermill{ + desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; + pixel_x = -8; + pixel_y = 2 + }, +/obj/item/reagent_containers/food/condiment/saltshaker{ + desc = "Salt. From space oceans, presumably. A staple of modern medicine."; + pixel_x = -8; + pixel_y = 12 + }, +/obj/item/paicard{ + pixel_x = 4; + pixel_y = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar/atrium) +"brG" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/structure/chair/sofa/left{ + color = "#c45c57"; + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar/atrium) +"brH" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/bar/atrium) +"brI" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/obj/structure/chair/sofa/right{ + color = "#c45c57"; + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar/atrium) +"brJ" = ( +/obj/structure/table, +/obj/item/storage/bag/tray, +/obj/item/clothing/head/hardhat/cakehat, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar/atrium) +"brK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port) +"brL" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"brM" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/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" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/bar/atrium) +"brN" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/bot, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"brO" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"brP" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/pen, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/bar/atrium) +"brQ" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/bar/atrium) +"brR" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/bar/atrium) +"brS" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/table, +/obj/item/folder{ + pixel_x = -4 + }, +/obj/item/paicard, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"brT" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/table/wood, +/obj/item/storage/photo_album{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/camera, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = -28 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/library) +"brU" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + pixel_x = -5; + pixel_y = 7 + }, +/obj/item/pinpointer/nuke, +/obj/item/disk/nuclear, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/captain) +"brV" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/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/showroomfloor, +/area/crew_quarters/bar/atrium) +"brW" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/bar/atrium) +"brX" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/bar/atrium) +"brY" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/washing_machine, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 28 + }, +/obj/machinery/light_switch{ + pixel_x = 24 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/toilet/restrooms) +"brZ" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/space/nearstation) +"bsa" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -26 + }, +/obj/machinery/vr_sleeper, +/obj/effect/turf_decal/box/white, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/locker) +"bsb" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/bar/atrium) +"bsc" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall, +/area/crew_quarters/bar/atrium) +"bsd" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/delivery, +/obj/machinery/vending/snack/random, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/locker) +"bse" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/table/wood, +/obj/item/storage/fancy/candle_box{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/taperecorder{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/pen, +/obj/machinery/light/small, +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/library) +"bsf" = ( +/obj/structure/sign/departments/custodian, +/turf/closed/wall, +/area/maintenance/fore) +"bsg" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/stack/rods/fifty, +/obj/item/storage/box/lights/mixed, +/obj/machinery/light, +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/turf/open/floor/plasteel/dark, +/area/construction/mining/aux_base) +"bsh" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/bookcase{ + name = "Forbidden Knowledge" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/library) +"bsj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bsk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/central) +"bsl" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/spawner/structure/window/hollow/reinforced/middle, +/turf/open/floor/plating/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"bsm" = ( +/turf/closed/wall/rust, +/area/chapel/office) +"bsn" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bso" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/ausbushes/brflowers, +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/mob/living/simple_animal/chicken{ + desc = "The arch-nemesis of Kentucky."; + name = "Popeye"; + real_name = "Featherbottom" + }, +/turf/open/floor/grass, +/area/hydroponics) +"bsp" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/landmark/xeno_spawn, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/security/courtroom) +"bsq" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ + pixel_x = -3; + pixel_y = 15 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ + pixel_x = -6; + pixel_y = 3 + }, +/obj/item/reagent_containers/food/drinks/beer{ + desc = "A station exclusive. Consumpt may result in seizures, blindness, drunkenness, or even death."; + list_reagents = list(/datum/reagent/consumable/ethanol/thirteenloko = 10); + name = "Kilo-Kocktail"; + pixel_x = 5; + pixel_y = 5 + }, +/turf/open/floor/carpet, +/area/lawoffice) +"bss" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/camera{ + c_tag = "Port Hallway Firelock"; + dir = 4; + name = "port camera" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 8 + }, +/area/hallway/primary/port) +"bst" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/junction{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"bsu" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/port) +"bsv" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 2; + name = "cargo sorting disposal pipe"; + sortType = 2 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bsw" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/status_display/supply{ + pixel_x = 32; + pixel_y = -32 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bsx" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/obj/machinery/camera{ + c_tag = "Fore Hallway Chapel"; + name = "fore camera" + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 4 + }, +/area/hallway/primary/fore) +"bsy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/central) +"bsz" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining/glass{ + name = "Cargo Office"; + req_one_access_txt = "31;48" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/office) +"bsA" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"bsB" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"bsC" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/bridge) +"bsD" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Hazard Closet"; + req_access_txt = "1" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"bsE" = ( +/turf/open/floor/plasteel, +/area/bridge) +"bsF" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"bsG" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bsH" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/bridge) +"bsI" = ( +/obj/machinery/door/window/brigdoor{ + dir = 4; + name = "Core Modules"; + req_access_txt = "20" + }, +/obj/item/aiModule/supplied/protectStation{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/aiModule/zeroth/oneHuman, +/obj/item/aiModule/reset/purge{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/structure/table, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bsJ" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/storage/toolbox/drone, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/flashlight/flare, +/obj/item/flashlight/flare, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/construction/mining/aux_base) +"bsK" = ( +/obj/machinery/door/airlock/command{ + name = "Captain's Office"; + req_access_txt = "20" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/captain) +"bsL" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hydroponics) +"bsM" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"bsN" = ( +/obj/structure/flora/grass/jungle/b, +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/genericbush, +/obj/structure/flora/ausbushes/ppflowers, +/obj/structure/flora/ausbushes/sunnybush, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/turf/open/floor/grass, +/area/crew_quarters/heads/hop) +"bsO" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/ausbushes/fullgrass, +/obj/structure/flora/ausbushes/brflowers, +/obj/structure/flora/ausbushes/leafybush, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/grass, +/area/crew_quarters/heads/hop) +"bsP" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/genericbush, +/obj/structure/flora/ausbushes/ppflowers, +/obj/structure/flora/ausbushes/sunnybush, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/grass, +/area/crew_quarters/heads/hop) +"bsQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"bsR" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hydroponics) +"bsS" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/computer/security, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/supply) +"bsT" = ( +/obj/effect/turf_decal/tile/neutral, +/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-4" + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/supply) +"bsU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/landmark/blobstart, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/wood{ + icon_state = "wood-broken3" + }, +/area/crew_quarters/bar) +"bsV" = ( +/obj/structure/closet/secure_closet/security/cargo, +/obj/effect/turf_decal/delivery, +/obj/item/crowbar, +/obj/item/book/manual/wiki/security_space_law, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/power/apc{ + areastring = "/area/security/checkpoint/supply"; + dir = 1; + name = "Cargo Security APC"; + pixel_y = 26 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/firealarm{ + pixel_x = 32; + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/supply) +"bsW" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-05" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bsX" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bsY" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/libraryscanner, +/obj/effect/turf_decal/bot_white, +/obj/machinery/power/apc{ + areastring = "/area/library"; + dir = 4; + name = "Library APC"; + pixel_x = 26 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/dark, +/area/library) +"bsZ" = ( +/obj/machinery/door/morgue{ + name = "Relic Closet"; + req_access_txt = "22" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"bta" = ( +/obj/structure/table/wood/fancy, +/obj/item/book/granter/spell/smoke/lesser{ + pixel_y = 4 + }, +/obj/item/nullrod{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"btb" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/conveyor_switch/oneway{ + dir = 8; + id = "QMLoad"; + name = "off ramp"; + pixel_y = 5 + }, +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"btc" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/blood/gibs/limb, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"btd" = ( +/obj/machinery/computer/arcade, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/sign/poster/official/random{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bte" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/folder/red, +/obj/item/stack/cable_coil, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"btf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/wood, +/area/chapel/office) +"btg" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall, +/area/chapel/office) +"bth" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/stool/bar{ + pixel_x = -8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"bti" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Prison Yard" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "PCell 1Lock"; + name = "Long-Term Cell 1 Shutter" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"btj" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/effect/landmark/start/chaplain, +/turf/open/floor/wood, +/area/chapel/office) +"btk" = ( +/obj/structure/table/wood/fancy, +/obj/item/clipboard, +/obj/item/folder/red, +/obj/item/toy/figure/chaplain{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/lighter, +/turf/open/floor/wood, +/area/chapel/office) +"btl" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining{ + name = "Cargo Bay"; + req_one_access_txt = "31;48" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/office) +"btm" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Holodeck" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness/recreation) +"btn" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Holodeck" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"bto" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/bodycontainer/crematorium{ + dir = 8; + id = "crematoriumChapel" + }, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"btp" = ( +/obj/structure/table/wood/fancy, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/storage/fancy/donut_box, +/obj/machinery/newscaster{ + pixel_y = -30 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"btq" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"btr" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/box/corners, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/machinery/door/window/eastright{ + base_state = "left"; + dir = 8; + icon_state = "left"; + name = "Fitness Ring" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"bts" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ + pixel_x = -6; + pixel_y = 3 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ + pixel_x = -3; + pixel_y = 15 + }, +/obj/item/reagent_containers/food/drinks/bottle/holywater{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"btt" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/starboard) +"btu" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"btv" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"btw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/central) +"btx" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bty" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"btz" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/sign/departments/restroom{ + pixel_x = 32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"btA" = ( +/turf/closed/wall, +/area/chapel/main) +"btB" = ( +/turf/open/floor/grass, +/area/chapel/main) +"btC" = ( +/obj/structure/sign/warning/nosmoking, +/turf/closed/wall, +/area/chapel/office) +"btD" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/toilet/restrooms) +"btE" = ( +/turf/closed/wall, +/area/crew_quarters/bar) +"btF" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/crew_quarters/bar) +"btG" = ( +/obj/machinery/modular_computer/console/preset/engineering, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot, +/obj/machinery/requests_console{ + department = "Engineering"; + departmentType = 4; + name = "Engineering RC"; + pixel_x = -30 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"btH" = ( +/obj/structure/flora/grass/jungle/b, +/obj/structure/flora/ausbushes/fullgrass, +/obj/structure/flora/ausbushes/brflowers, +/obj/structure/flora/ausbushes/leafybush, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "bar_1"; + name = "Bar Shutter" + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/grass, +/area/crew_quarters/bar) +"btI" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/genericbush, +/obj/structure/flora/ausbushes/ppflowers, +/obj/structure/flora/ausbushes/sunnybush, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "bar_1"; + name = "Bar Shutter" + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/grass, +/area/crew_quarters/bar) +"btJ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Security Office"; + req_access_txt = "63" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"btK" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall, +/area/crew_quarters/bar) +"btL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/central) +"btM" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/library) +"btN" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"btO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"btP" = ( +/obj/structure/chair/wood/normal{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"btQ" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark/event_spawn, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/security/courtroom) +"btR" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"btS" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"btT" = ( +/obj/structure/bookcase/random/reference, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"btU" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"btV" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"btW" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/newscaster{ + pixel_x = 30 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/port) +"btX" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"btY" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"btZ" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"bua" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-17"; + pixel_x = 8; + pixel_y = 3 + }, +/obj/machinery/light_switch{ + pixel_x = 24; + pixel_y = 40 + }, +/obj/machinery/button/door{ + id = "bar_1"; + name = "Bar Shutters Toggle"; + pixel_x = 24; + pixel_y = 24; + req_access_txt = "25" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bub" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-02"; + pixel_y = 3 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"buc" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bud" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -26 + }, +/obj/machinery/camera{ + c_tag = "Bridge Council Door"; + dir = 4; + name = "command camera" + }, +/turf/open/floor/plasteel, +/area/bridge) +"bue" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot_white, +/obj/machinery/holopad, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"buf" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/book/manual/wiki/barman_recipes{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/pen, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/requests_console{ + department = "Bar"; + departmentType = 2; + name = "Bar RC"; + pixel_x = 30; + receive_ore_updates = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bug" = ( +/obj/structure/bookcase/random/fiction, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"buh" = ( +/obj/structure/chair/wood/normal{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bui" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/landmark/start/head_of_personnel, +/obj/structure/chair/office, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hop) +"buj" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/storage/fancy/donut_box, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"buk" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/bridge) +"bul" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/bridge) +"bum" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/paicard, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bun" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/neutral, +/obj/item/clipboard, +/obj/item/folder, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"buo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"bup" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/pen, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"buq" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bur" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/turf/open/floor/plasteel, +/area/bridge) +"bus" = ( +/obj/machinery/suit_storage_unit/captain, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/captain) +"but" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/computer/libraryconsole{ + pixel_y = 5 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/library) +"buu" = ( +/obj/structure/bookcase/random/fiction, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"buv" = ( +/obj/structure/bookcase/random/nonfiction, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"buw" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bux" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/starboard) +"buy" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/crew_quarters/bar) +"buz" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/storage/box/matches{ + pixel_x = -4; + pixel_y = 6 + }, +/obj/item/lighter{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/lighter, +/obj/machinery/newscaster{ + pixel_y = -30 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"buA" = ( +/obj/machinery/vending/boozeomat, +/turf/closed/wall, +/area/crew_quarters/bar) +"buB" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"buC" = ( +/turf/closed/wall, +/area/library) +"buD" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/landmark/start/botanist, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"buE" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/library) +"buF" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/structure/reagent_dispensers/beerkeg{ + pixel_y = 5 + }, +/obj/structure/sign/poster/contraband/red_rum{ + pixel_y = -30 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"buG" = ( +/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" + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"buH" = ( +/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/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"buI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/photocopier, +/turf/open/floor/plasteel/dark, +/area/quartermaster/storage) +"buJ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/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/crew_quarters/bar) +"buK" = ( +/obj/structure/sign/poster/contraband/random{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"buL" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/bookbinder, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/library) +"buM" = ( +/turf/open/floor/wood, +/area/library) +"buN" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/vending/games, +/obj/effect/turf_decal/bot_white, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/dark, +/area/library) +"buO" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"buP" = ( +/obj/structure/bookcase/random/nonfiction, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"buR" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"buS" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"buT" = ( +/obj/structure/plasticflaps/opaque, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=1"; + dir = 1; + freq = 1400; + location = "Engineering"; + name = "navigation beacon (Engineering Delivery)" + }, +/obj/machinery/door/window/northright{ + dir = 4; + name = "Engineering Delivery Access"; + req_one_access_txt = "10;24" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Engineering"; + name = "Engineering Blast Doors" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"buU" = ( +/obj/machinery/door/morgue{ + name = "Private Study"; + req_access_txt = "37" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/library) +"buV" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"buW" = ( +/obj/structure/bookcase/random/religion, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/sign/barsign{ + pixel_y = 32; + req_access = null; + req_access_txt = "25" + }, +/turf/open/floor/plasteel/dark, +/area/library) +"buX" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/clipboard, +/obj/item/camera_film{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/camera_film, +/obj/machinery/newscaster{ + pixel_x = 30 + }, +/obj/machinery/camera{ + c_tag = "Library"; + dir = 8; + name = "bar camera" + }, +/turf/open/floor/plasteel/dark, +/area/library) +"buY" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"buZ" = ( +/obj/structure/chair/wood/normal{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bva" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bvb" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/dark, +/area/library) +"bvc" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bvd" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/library) +"bve" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bvf" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/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" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bvg" = ( +/obj/structure/bookcase/random/religion, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/library) +"bvh" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bvi" = ( +/obj/structure/bookcase/random/reference, +/obj/machinery/camera{ + c_tag = "Bar Shelves"; + name = "bar camera" + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bvj" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"bvk" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 4 + }, +/obj/effect/landmark/start/bartender, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bvl" = ( +/obj/structure/bookcase/random/adult, +/turf/open/floor/plasteel/dark, +/area/library) +"bvm" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/chair/stool/bar{ + pixel_x = -8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"bvn" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/library) +"bvo" = ( +/obj/machinery/computer/secure_data{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bvp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/wood, +/area/library) +"bvq" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bvr" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/turf/open/floor/wood, +/area/library) +"bvs" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/item/clipboard, +/obj/item/gun/ballistic/revolver/doublebarrel{ + pixel_y = 5 + }, +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/obj/item/ammo_casing/shotgun/beanbag, +/obj/item/ammo_casing/shotgun/beanbag, +/obj/item/ammo_casing/shotgun/beanbag, +/obj/item/ammo_casing/shotgun/beanbag, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bvt" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/table/wood, +/obj/machinery/computer/libraryconsole/bookmanagement{ + pixel_y = 5 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/noticeboard{ + dir = 8; + pixel_x = 32 + }, +/turf/open/floor/plasteel/dark, +/area/library) +"bvu" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/photocopier, +/obj/effect/turf_decal/bot_white, +/obj/structure/extinguisher_cabinet{ + pixel_y = -28 + }, +/turf/open/floor/plasteel/dark, +/area/library) +"bvv" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/structure/sign/warning/nosmoking{ + pixel_x = 32 + }, +/obj/machinery/camera{ + c_tag = "Council Chamber"; + dir = 8; + name = "command camera" + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"bvw" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/computer/holodeck{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"bvx" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"bvy" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Art Cabinet" + }, +/turf/open/floor/plasteel/dark, +/area/library) +"bvz" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"bvA" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall, +/area/library) +"bvB" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/starboard) +"bvC" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"bvD" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/toilet/restrooms) +"bvE" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bvF" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bvG" = ( +/obj/structure/mirror{ + pixel_y = 28 + }, +/obj/structure/sink{ + pixel_y = 24 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/toilet/restrooms) +"bvH" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/effect/landmark/start/bartender, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bvI" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bvJ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"bvL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/wood, +/area/library) +"bvM" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bvN" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/toilet/restrooms) +"bvO" = ( +/obj/structure/mirror{ + pixel_y = 28 + }, +/obj/structure/sink{ + pixel_y = 24 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/toilet/restrooms) +"bvP" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-14" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/toilet/restrooms) +"bvQ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"bvR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bvS" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/crew_quarters/bar) +"bvT" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/button/crematorium{ + id = "crematoriumChapel"; + pixel_y = 24; + req_access_txt = "27" + }, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"bvU" = ( +/obj/structure/bookcase/random/adult, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel/dark, +/area/library) +"bvV" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-16" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bvW" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Shower_2Privacy"; + name = "Shower 2 Privacy Shutter" + }, +/turf/open/floor/plating, +/area/crew_quarters/toilet/restrooms) +"bvX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/library) +"bvY" = ( +/obj/effect/landmark/start/bartender, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bvZ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/wood, +/area/library) +"bwa" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "applebush" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bwb" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/obj/machinery/camera{ + c_tag = "Captain's Office"; + name = "command camera" + }, +/obj/structure/chair/comfy/brown{ + buildstackamount = 0; + color = "#c45c57"; + dir = 8 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"bwc" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"bwd" = ( +/obj/structure/noticeboard{ + pixel_y = 30 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-17"; + pixel_x = -8; + pixel_y = 3 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bwf" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-16" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/primary/port) +"bwg" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet, +/obj/item/stack/rods/ten, +/obj/item/stock_parts/matter_bin, +/turf/open/floor/plating, +/area/maintenance/port) +"bwh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bwj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bwk" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/courtroom) +"bwl" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"bwm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/courtroom) +"bwo" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/twohanded/required/kirbyplants, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"bwp" = ( +/obj/machinery/status_display/ai, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"bwq" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/reagent_dispensers/watertank/high, +/obj/item/reagent_containers/glass/bucket, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"bwr" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/wheat, +/turf/open/floor/grass, +/area/chapel/main) +"bws" = ( +/turf/closed/wall/rust, +/area/security/detectives_office) +"bwt" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/poppy, +/turf/open/floor/grass, +/area/chapel/main) +"bwu" = ( +/turf/closed/wall/rust, +/area/security/processing) +"bwv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"bww" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 6 + }, +/obj/machinery/door/airlock/external{ + name = "Atmospherics External Airlock"; + req_access_txt = "24" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"bwx" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"bwy" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"bwA" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"bwB" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"bwC" = ( +/obj/structure/table/wood/fancy, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/flashlight/lantern, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"bwD" = ( +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/obj/machinery/disposal/bin, +/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/trunk, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/captain) +"bwE" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/machinery/recharger, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/heads/captain"; + dir = 4; + name = "Captain's Office APC"; + pixel_x = 24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/item/storage/lockbox/medal, +/obj/item/storage/secure/briefcase{ + pixel_x = 5; + pixel_y = 5 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/captain) +"bwF" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/turf_decal/box, +/obj/structure/disposalpipe/sorting/mail{ + dir = 1; + name = "lawyer sorting disposal pipe"; + sortType = 29 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"bwG" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/book/manual/hydroponics_pod_people{ + pixel_y = 4 + }, +/obj/item/paper/guides/jobs/hydroponics, +/obj/item/reagent_containers/dropper, +/obj/item/pen, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Hydroponics Pen"; + dir = 4; + name = "hydroponics camera" + }, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"bwH" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hydroponics) +"bwI" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/medical/glass{ + name = "Medbay Break Room"; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/dark, +/area/medical/storage) +"bwJ" = ( +/obj/structure/sink/puddle, +/obj/structure/flora/ausbushes/reedbush{ + pixel_y = 5 + }, +/turf/open/floor/grass, +/area/chapel/main) +"bwK" = ( +/obj/structure/flora/grass/jungle/b, +/obj/structure/flora/ausbushes/sparsegrass, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/grass, +/area/chapel/main) +"bwL" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/ppflowers, +/obj/machinery/status_display/evac{ + pixel_x = 32; + pixel_y = 32 + }, +/turf/open/floor/grass, +/area/chapel/main) +"bwM" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bwN" = ( +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/chapel/main) +"bwO" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/blue, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bwP" = ( +/obj/structure/bookcase/random/religion, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"bwQ" = ( +/obj/structure/reagent_dispensers/watertank/high, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/glass/bucket, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"bwR" = ( +/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/bot, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/seed_extractor, +/obj/machinery/camera{ + c_tag = "Apiary"; + dir = 4; + name = "chapel camera" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"bwS" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/mob/living/simple_animal/sloth/citrus, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bwT" = ( +/obj/structure/flora/grass/jungle/b, +/obj/structure/flora/ausbushes/ywflowers, +/turf/open/floor/grass, +/area/chapel/main) +"bwU" = ( +/obj/structure/flora/grass/jungle, +/turf/open/floor/grass, +/area/chapel/main) +"bwV" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Fore Hallway Vault"; + dir = 1; + name = "fore camera" + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 8 + }, +/area/hallway/primary/fore) +"bwW" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/computer/security/qm{ + dir = 1; + network = list("mine","auxbase","vault","qm") + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/supply) +"bwY" = ( +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/chapel/main) +"bwZ" = ( +/turf/open/floor/plasteel/chapel, +/area/chapel/main) +"bxa" = ( +/obj/structure/bookcase/random/religion, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"bxb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/door/window/westleft{ + name = "Monkey Pen"; + req_access_txt = "9" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/medical/genetics) +"bxc" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bxd" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"bxe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/chapel/main) +"bxf" = ( +/obj/structure/flora/grass/jungle/b, +/obj/structure/flora/ausbushes/fullgrass, +/obj/structure/flora/ausbushes/brflowers, +/obj/structure/flora/ausbushes/leafybush, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/grass, +/area/chapel/main) +"bxg" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/clipboard, +/obj/item/storage/crayons, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"bxh" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/genericbush, +/obj/structure/flora/ausbushes/ppflowers, +/obj/structure/flora/ausbushes/sunnybush, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/turf/open/floor/grass, +/area/chapel/main) +"bxi" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/biogenerator, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"bxj" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"bxk" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/obj/structure/mirror{ + pixel_y = 28 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/dark, +/area/lawoffice) +"bxl" = ( +/obj/structure/filingcabinet, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/supply) +"bxm" = ( +/obj/structure/sign/plaques/atmos, +/turf/closed/wall, +/area/engine/atmos) +"bxn" = ( +/obj/structure/sign/warning/biohazard, +/turf/closed/wall, +/area/science/storage) +"bxo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"bxp" = ( +/obj/structure/sign/departments/medbay/alt, +/turf/closed/wall, +/area/maintenance/port) +"bxq" = ( +/obj/structure/girder, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port) +"bxr" = ( +/obj/machinery/door/firedoor, +/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/airlock/medical{ + name = "Operating Theatre"; + req_access_txt = "45" + }, +/turf/open/floor/plasteel/dark, +/area/medical/surgery) +"bxs" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/landmark/start/cargo_technician, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bxt" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/genericbush, +/obj/structure/flora/ausbushes/ppflowers, +/obj/structure/flora/ausbushes/sunnybush, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/turf/open/floor/grass, +/area/chapel/main) +"bxu" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/reagent_containers/food/snacks/grown/poppy/lily{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/reagent_containers/food/snacks/grown/poppy/geranium{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/reagent_containers/food/snacks/grown/poppy, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"bxv" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/lattice/catwalk, +/obj/effect/landmark/carpspawn, +/turf/open/floor/plating/airless, +/area/solar/starboard/fore) +"bxw" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bxx" = ( +/obj/machinery/status_display/ai, +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/captain) +"bxy" = ( +/obj/structure/grille, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port) +"bxz" = ( +/obj/structure/girder/displaced, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port) +"bxA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port) +"bxB" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/chapel/main) +"bxC" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/clipboard, +/obj/item/paper/fluff/holodeck/disclaimer, +/obj/item/pen, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"bxD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/grass, +/area/chapel/main) +"bxE" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"bxF" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"bxG" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/primary/port) +"bxH" = ( +/obj/structure/closet{ + name = "beekeeping supplies" + }, +/obj/item/honey_frame, +/obj/item/honey_frame, +/obj/item/honey_frame, +/obj/item/honey_frame, +/obj/item/honey_frame, +/obj/item/honey_frame, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"bxI" = ( +/obj/structure/closet{ + name = "beekeeping wardrobe" + }, +/obj/item/clothing/suit/beekeeper_suit, +/obj/item/clothing/suit/beekeeper_suit, +/obj/item/clothing/suit/beekeeper_suit, +/obj/item/clothing/head/beekeeper_head, +/obj/item/clothing/head/beekeeper_head, +/obj/item/clothing/head/beekeeper_head, +/obj/item/melee/flyswatter, +/obj/item/melee/flyswatter, +/obj/item/melee/flyswatter, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"bxJ" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/chapel/main) +"bxK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/door/airlock/virology/glass{ + name = "Isolation A"; + req_access_txt = "39" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/medical/virology) +"bxL" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/engine/engineering) +"bxM" = ( +/obj/structure/flora/grass/jungle/b, +/obj/structure/flora/ausbushes/ywflowers, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/grass, +/area/chapel/main) +"bxN" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-03" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"bxO" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-16" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/toilet/restrooms) +"bxP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/chapel/main) +"bxQ" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/toilet/restrooms) +"bxR" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bxS" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bxU" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"bxV" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/door/airlock/virology/glass{ + name = "Isolation B"; + req_access_txt = "39" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/medical/virology) +"bxW" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"bxX" = ( +/obj/machinery/status_display/ai, +/turf/closed/wall, +/area/chapel/main) +"bxY" = ( +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/chapel/main) +"bxZ" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor{ + id = "Secure Storage"; + name = "Secure Storage" + }, +/obj/machinery/button/door{ + desc = "A remote control-switch for secure storage."; + id = "Secure Storage"; + name = "Secure Storage Toggle"; + pixel_y = -24; + req_access_txt = "11" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"bya" = ( +/obj/structure/table, +/obj/item/hand_labeler, +/obj/item/crowbar/red, +/obj/item/gps/mining, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/miningoffice) +"byb" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/light, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"byc" = ( +/obj/structure/bookcase/random/religion, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/sign/poster/official/help_others{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"byd" = ( +/obj/structure/sign/departments/holy, +/turf/closed/wall, +/area/chapel/main) +"bye" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/table/glass, +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/obj/item/shovel/spade, +/obj/item/plant_analyzer, +/obj/item/cultivator{ + pixel_x = 6 + }, +/obj/item/reagent_containers/spray/plantbgone{ + pixel_x = 6; + pixel_y = 6 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"byf" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/port) +"byg" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"byh" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"byi" = ( +/turf/open/floor/plasteel, +/area/security/courtroom) +"byj" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"byk" = ( +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"byl" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Mix to Ports" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bym" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/turf/open/floor/plasteel, +/area/bridge) +"byn" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"byo" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/sign/departments/cargo{ + pixel_x = 32; + pixel_y = -32 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"byp" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/bridge) +"byq" = ( +/obj/machinery/flasher{ + id = "AI"; + name = "Meatbag Pacifier"; + pixel_y = 24 + }, +/obj/machinery/camera/motion{ + c_tag = "AI Upload Turrets"; + name = "upload camera"; + network = list("aiupload") + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai_upload) +"byr" = ( +/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/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/bridge) +"bys" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/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" + }, +/turf/open/floor/plasteel, +/area/bridge) +"byt" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/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" + }, +/turf/open/floor/plasteel, +/area/bridge) +"byu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/door/airlock/maintenance{ + name = "security maintenance"; + req_access_txt = "63" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/sign/directions/evac{ + pixel_y = -24 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"byv" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"byw" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/bridge) +"byx" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/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/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/bridge) +"byy" = ( +/obj/structure/sign/poster/contraband/random, +/turf/closed/wall/rust, +/area/maintenance/central) +"byz" = ( +/obj/machinery/computer/security/telescreen{ + dir = 8; + name = "Station Monitor"; + network = list("ss13"); + pixel_x = 24 + }, +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/hand_labeler, +/turf/open/floor/carpet, +/area/security/detectives_office) +"byA" = ( +/obj/machinery/door/poddoor/preopen{ + id = "brigfrontdoor"; + name = "Front Security Blast door" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"byB" = ( +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/ai_monitored/turret_protected/ai_upload"; + dir = 1; + name = "Upload APC"; + pixel_y = 26 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai_upload) +"byC" = ( +/obj/machinery/door/poddoor/preopen{ + id = "transittube_ai"; + name = "Transit Tube Blast Door" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"byD" = ( +/obj/machinery/door/firedoor, +/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/airlock/command{ + name = "Captain's Office"; + req_access_txt = "20" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/captain) +"byE" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/closet/secure_closet/captains, +/obj/effect/turf_decal/delivery, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/captain) +"byF" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/obj/item/clothing/suit/hooded/wintercoat/engineering, +/obj/effect/turf_decal/delivery, +/obj/machinery/newscaster{ + pixel_y = 30 + }, +/obj/item/pickaxe/mini, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"byG" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"byH" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/landmark/start/cargo_technician, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"byI" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"byJ" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"byK" = ( +/obj/effect/turf_decal/caution/stand_clear, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"byL" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"byM" = ( +/obj/structure/table, +/obj/item/aiModule/reset, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/flasher{ + id = "AI"; + name = "Meatbag Pacifier"; + pixel_x = 24; + pixel_y = 24 + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai_upload) +"byN" = ( +/obj/machinery/porta_turret/ai{ + dir = 1 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/structure/sign/plaques/kiddie{ + pixel_y = 30 + }, +/obj/effect/turf_decal/box/red, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai_upload) +"byO" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"byP" = ( +/obj/machinery/door/window/brigdoor/westright{ + dir = 4; + name = "Core Modules"; + req_access_txt = "20" + }, +/obj/effect/spawner/lootdrop/aimodule_harmful{ + fan_out_items = 1; + lootcount = 2; + lootdoubles = 0 + }, +/obj/item/aiModule/supplied/oxygen{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/structure/table, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai_upload) +"byQ" = ( +/obj/machinery/vending/assist, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/storage/primary) +"byR" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"byS" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/machinery/door/window/eastright{ + base_state = "left"; + icon_state = "left"; + name = "Fitness Ring" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"byT" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/recharge_station, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"byU" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 4; + name = "dormitories sorting disposal pipe"; + sortType = 26 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"byV" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai_upload) +"byW" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/toilet/restrooms) +"byX" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/light, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/toilet/restrooms) +"byY" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/toilet/restrooms) +"byZ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/closet/wardrobe/black, +/obj/effect/turf_decal/bot, +/obj/item/clothing/under/trendy_fit, +/obj/item/clothing/under/trendy_fit, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/locker) +"bza" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/toilet/restrooms"; + name = "Restrooms APC"; + pixel_y = -26 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/camera{ + c_tag = "Restrooms"; + dir = 1; + name = "recreation camera" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/toilet/restrooms) +"bzb" = ( +/obj/structure/table, +/obj/item/aiModule/supplied/freeform, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bzc" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai_upload) +"bzd" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"bzf" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/toilet/restrooms) +"bzg" = ( +/obj/structure/table, +/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/structure/bedsheetbin, +/obj/machinery/status_display/evac{ + pixel_y = -32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/toilet/restrooms) +"bzh" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/locker) +"bzi" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/vending/clothing, +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/locker) +"bzj" = ( +/obj/machinery/door/window/brigdoor{ + dir = 4; + name = "Core Modules"; + req_access_txt = "20" + }, +/obj/effect/spawner/lootdrop/aimodule_harmless{ + fan_out_items = 1; + lootcount = 3; + lootdoubles = 0 + }, +/obj/structure/table, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/machinery/flasher{ + id = "AI"; + name = "Meatbag Pacifier"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bzk" = ( +/obj/item/twohanded/required/kirbyplants/photosynthetic, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bzl" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining/glass{ + name = "Cargo Office"; + req_one_access_txt = "31;48" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bzm" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai_upload) +"bzn" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/closet/wardrobe/mixed, +/obj/machinery/light/small, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/locker) +"bzo" = ( +/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/ai_monitored/turret_protected/ai_upload) +"bzp" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/disposal/bin, +/obj/machinery/light, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/locker) +"bzq" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai_upload) +"bzr" = ( +/obj/structure/table, +/obj/item/aiModule/supplied/quarantine, +/obj/machinery/flasher{ + id = "AI"; + name = "Meatbag Pacifier"; + pixel_x = 24; + pixel_y = -24 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1447; + name = "Private AI Channel"; + pixel_x = 28 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bzs" = ( +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/toilet/restrooms) +"bzt" = ( +/obj/machinery/chem_master/condimaster{ + desc = "Used to separate out liquids - useful for purifying botanical extracts. Also dispenses condiments."; + name = "BrewMaster 2199" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"bzu" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/sign/poster/official/no_erp{ + pixel_y = -32 + }, +/turf/closed/wall, +/area/crew_quarters/locker) +"bzv" = ( +/obj/machinery/door/airlock/maintenance{ + name = "security maintenance"; + req_access_txt = "63" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/aft) +"bzw" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"bzx" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/locker) +"bzy" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/locker) +"bzz" = ( +/obj/structure/table/wood, +/obj/item/storage/briefcase, +/obj/machinery/status_display/evac{ + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"bzA" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/landmark/start/captain, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bzB" = ( +/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/structure/disposalpipe/junction/flip{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bzC" = ( +/obj/machinery/seed_extractor, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"bzD" = ( +/obj/structure/flora/ausbushes/palebush, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"bzE" = ( +/obj/machinery/door/airlock/vault{ + id_tag = "bank"; + name = "Bank Vault" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"bzF" = ( +/obj/machinery/door/poddoor/preopen{ + id = "brigfrontdoor"; + name = "Front Security Blast door" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"bzG" = ( +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"bzH" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine"; + req_access_txt = "10" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bzI" = ( +/obj/structure/table, +/obj/effect/turf_decal/bot, +/obj/item/tank/internals/oxygen{ + pixel_x = 5 + }, +/obj/item/tank/internals/oxygen{ + pixel_x = -5 + }, +/obj/item/wrench, +/obj/item/clothing/mask/gas{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/clothing/mask/gas, +/obj/machinery/door/window/northleft{ + name = "Emergency Storage"; + req_access_txt = "19" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bzJ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/bridge) +"bzK" = ( +/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/effect/decal/cleanable/dirt, +/obj/structure/spider/stickyweb, +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"bzL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"bzM" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"bzN" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/central) +"bzO" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"bzP" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/item/storage/photo_album/Captain, +/obj/item/camera, +/obj/machinery/newscaster/security_unit{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/captain) +"bzQ" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"bzR" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"bzS" = ( +/obj/structure/lattice/catwalk, +/obj/structure/transit_tube/crossing, +/turf/open/space/basic, +/area/space/nearstation) +"bzT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bzU" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/table, +/obj/item/stack/sheet/cardboard/fifty, +/obj/item/storage/box/lights/mixed{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/item/storage/box/lights/mixed{ + pixel_y = 2 + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/sorting) +"bzV" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters{ + id = "bankshutter"; + name = "Bank Shutter" + }, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/maintenance/port) +"bzW" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bzX" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/stack/wrapping_paper{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/stack/wrapping_paper{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/stack/cable_coil, +/obj/item/hand_labeler, +/obj/item/hand_labeler, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/sorting) +"bzY" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"bzZ" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/grunge{ + name = "Restrooms" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/locker) +"bAa" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bAb" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/central) +"bAc" = ( +/obj/effect/turf_decal/bot, +/obj/structure/safe{ + pixel_x = 3 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/stack/spacecash/c500{ + pixel_x = -2; + pixel_y = -2 + }, +/obj/item/storage/belt/bandolier, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"bAd" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/closet{ + name = "suit closet" + }, +/obj/item/clothing/under/lawyer/female{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/clothing/under/lawyer/bluesuit, +/obj/item/clothing/under/lawyer/red{ + pixel_x = -4; + pixel_y = -4 + }, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bAe" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/obj/structure/flora/ausbushes/lavendergrass, +/obj/structure/flora/ausbushes/fernybush, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"bAf" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/space/basic, +/area/space/nearstation) +"bAg" = ( +/obj/effect/decal/cleanable/dirt, +/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/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"bAh" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/aft) +"bAi" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bAj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/central) +"bAk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/structure/table, +/obj/item/poster/random_official{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/poster/random_official, +/turf/open/floor/plating, +/area/maintenance/port) +"bAl" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/blue, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bAm" = ( +/obj/structure/sign/warning/vacuum/external, +/turf/closed/wall, +/area/maintenance/central) +"bAn" = ( +/obj/structure/reagent_dispensers/watertank/high, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/reagent_containers/glass/bucket, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"bAo" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"bAp" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/insectguts, +/turf/open/floor/plasteel/dark, +/area/maintenance/central) +"bAq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/stack/packageWrap, +/obj/item/storage/box, +/turf/open/floor/plating, +/area/maintenance/port) +"bAr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port) +"bAs" = ( +/obj/structure/table/glass, +/obj/item/storage/box/beakers{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/item/storage/box/syringes{ + pixel_y = 2 + }, +/obj/item/hand_labeler, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"bAt" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/plant_analyzer{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/plant_analyzer, +/obj/item/cultivator, +/obj/item/cultivator, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/central) +"bAu" = ( +/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/blue, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hydroponics) +"bAv" = ( +/obj/structure/girder, +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard/aft) +"bAw" = ( +/obj/machinery/porta_turret/ai{ + dir = 1 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/effect/turf_decal/box/red, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bAx" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"bAy" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bAz" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/table, +/obj/item/storage/crayons, +/obj/item/clothing/under/color/grey{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/clothing/under/color/grey, +/obj/machinery/light, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"bAA" = ( +/obj/structure/table, +/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/item/storage/backpack{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/storage/backpack, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"bAB" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/delivery, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bAC" = ( +/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/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/cargo_technician, +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bAD" = ( +/obj/item/radio/intercom{ + pixel_x = 28; + pixel_y = 22 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/chapel/office) +"bAE" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard/aft) +"bAF" = ( +/obj/structure/grille/broken, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/aft) +"bAG" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bAH" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/yellow, +/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" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bAI" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/yellow, +/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/status_display/evac{ + pixel_x = -32; + pixel_y = -32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bAJ" = ( +/obj/machinery/computer/secure_data, +/obj/machinery/requests_console{ + department = "Detective's office"; + name = "Detective RC"; + pixel_y = 30 + }, +/obj/machinery/light_switch{ + pixel_x = 24; + pixel_y = -6 + }, +/obj/machinery/button/door{ + id = "detective_shutters"; + name = "Detective's Privacy Toggle"; + pixel_x = 24; + pixel_y = 6; + req_access_txt = "4" + }, +/turf/open/floor/wood, +/area/security/detectives_office) +"bAK" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bAL" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bAM" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bAN" = ( +/turf/closed/wall, +/area/medical/virology) +"bAO" = ( +/obj/structure/sink/kitchen{ + desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; + name = "old sink"; + pixel_y = 28 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard/aft) +"bAP" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bAQ" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/locker"; + name = "Locker Room APC"; + pixel_x = -1; + pixel_y = -26 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bAR" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/item/radio/intercom{ + pixel_x = 28; + pixel_y = -28 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/library) +"bAS" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-10" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/library) +"bAT" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/aft) +"bAU" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/conveyor_switch/oneway{ + id = "QMLoad2"; + name = "on ramp"; + pixel_y = 6 + }, +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bAV" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters{ + id = "commissaryshutter"; + name = "Vacant Commissary Shutter" + }, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/vacant_room/commissary) +"bAW" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bAX" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bAY" = ( +/obj/effect/turf_decal/caution/stand_clear, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bAZ" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + dir = 8; + freq = 1400; + location = "QM #3" + }, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/mob/living/simple_animal/bot/mulebot{ + home_destination = "QM #3"; + suffix = "#3" + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/storage) +"bBa" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bBb" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bBc" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/starboard) +"bBd" = ( +/obj/machinery/vending/tool, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/turf/open/floor/plasteel/dark, +/area/storage/primary) +"bBe" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bBf" = ( +/obj/effect/turf_decal/tile/neutral, +/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/hallway/primary/aft) +"bBg" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/sign/poster/official/fruit_bowl{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/port) +"bBh" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bBi" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "Mix to Filter" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bBj" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"bBk" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "detective_shutters"; + name = "Detective's Office Shutter" + }, +/turf/open/floor/plating, +/area/security/detectives_office) +"bBm" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4; + name = "Distro to Connector" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"bBn" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/vending/cola/random, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"bBo" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Cargo Security Post"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/supply) +"bBp" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bBq" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bBr" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bBs" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/meter, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/aft) +"bBt" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bBu" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"bBv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/grunge{ + id_tag = "commissarydoor"; + name = "Vacant Commissary"; + req_one_access_txt = "12;63;48;50" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/aft) +"bBw" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"bBx" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/status_display/ai{ + pixel_y = -32 + }, +/obj/machinery/camera{ + c_tag = "Recreation Fitness Ring"; + dir = 1; + name = "recreation camera" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"bBy" = ( +/obj/structure/sign/poster/contraband/random, +/turf/closed/wall, +/area/hallway/primary/aft) +"bBz" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/landmark/start/detective, +/turf/open/floor/wood, +/area/security/detectives_office) +"bBA" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bBC" = ( +/obj/machinery/holopad, +/turf/open/floor/carpet, +/area/security/detectives_office) +"bBD" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bBE" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/box, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bBF" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/table, +/obj/item/storage/box/PDAs{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/item/storage/box/silver_ids{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/item/storage/box/ids, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hop) +"bBG" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"bBH" = ( +/obj/machinery/door/airlock/command{ + name = "Captain's Tactical Relocation"; + req_access_txt = "20" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/captain) +"bBI" = ( +/obj/machinery/door/airlock/external{ + name = "Prison External Airlock"; + req_access_txt = "2" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bBJ" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/aft) +"bBK" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/vending/wardrobe/hydro_wardrobe, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"bBL" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -24; + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bBM" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/window/southleft{ + name = "Cargo Disposal"; + req_access_txt = "50" + }, +/obj/machinery/conveyor_switch/oneway{ + id = "packageSort2"; + name = "mail belt"; + pixel_y = 6 + }, +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bBN" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/window/southright{ + name = "Cargo Disposal"; + req_access_txt = "50" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bBO" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Shower_1Privacy"; + name = "Shower 1 Privacy Shutter" + }, +/turf/open/floor/plating, +/area/crew_quarters/toilet/restrooms) +"bBP" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/window/reinforced, +/obj/machinery/door/window/southright{ + dir = 4; + name = "Mail Chute"; + req_access_txt = "50" + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bBQ" = ( +/obj/structure/table/glass, +/obj/machinery/reagentgrinder{ + pixel_y = 5 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"bBR" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/analyzer{ + pixel_y = 4 + }, +/obj/item/analyzer{ + pixel_x = 2 + }, +/obj/machinery/requests_console{ + department = "Tool Storage"; + name = "Tool Storage RC"; + pixel_x = -30 + }, +/turf/open/floor/plasteel/dark, +/area/storage/primary) +"bBS" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"bBT" = ( +/obj/structure/window/reinforced, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/apc{ + areastring = "/area/quartermaster/sorting"; + dir = 4; + name = "Delivery Office APC"; + pixel_x = 26 + }, +/obj/structure/cable, +/obj/machinery/disposal/deliveryChute{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/sorting) +"bBU" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bBV" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bBW" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"bBX" = ( +/obj/machinery/door/poddoor{ + id = "toxinsdriver"; + name = "Toxins Launcher Bay Door" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard) +"bBY" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bBZ" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bCa" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bCb" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall/r_wall, +/area/maintenance/port) +"bCc" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bCd" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/photocopier, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/security/detectives_office) +"bCe" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bCf" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/newscaster{ + pixel_y = -30 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bCg" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bCh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/aft) +"bCi" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Connector to Security" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bCj" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bCk" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/storage/toolbox/mechanical, +/obj/item/flashlight, +/obj/item/flashlight, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/storage/primary) +"bCl" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/stack/cable_coil{ + pixel_y = 4 + }, +/obj/item/stack/cable_coil, +/obj/item/storage/belt/utility, +/obj/item/crowbar/red, +/turf/open/floor/plasteel/dark, +/area/storage/primary) +"bCm" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bCn" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/security{ + name = "Law Office"; + req_access_txt = "38" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/lawoffice) +"bCo" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/delivery, +/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/dark, +/area/storage/primary) +"bCp" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/radio{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/radio{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/radio{ + pixel_y = 4 + }, +/turf/open/floor/plasteel/dark, +/area/storage/primary) +"bCq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/wood, +/area/lawoffice) +"bCr" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bCs" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bCt" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bCu" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bCv" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/security/glass{ + name = "Security Office"; + req_access_txt = "63" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"bCw" = ( +/obj/item/clothing/head/helmet/justice/escape{ + name = "justice helmet" + }, +/obj/structure/sign/poster/official/the_owl{ + pixel_y = 32 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"bCx" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/storage/primary) +"bCy" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bCz" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"bCA" = ( +/obj/structure/sign/departments/engineering, +/turf/closed/wall, +/area/storage/primary) +"bCB" = ( +/obj/machinery/computer/cargo{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"bCC" = ( +/obj/machinery/status_display/ai, +/turf/closed/wall/r_wall, +/area/storage/tech) +"bCE" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/ai_monitored/storage/eva) +"bCF" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"bCG" = ( +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "External Gas to Loop" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"bCH" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "teleshutter"; + name = "Teleporter Shutter Toggle"; + pixel_x = -8; + pixel_y = 24; + req_access_txt = "19" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Central Hallway Teleporter Access"; + name = "central camera" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bCI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bCJ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/ai_monitored/storage/eva) +"bCK" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/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/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hop) +"bCL" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bCM" = ( +/turf/closed/wall, +/area/storage/tech) +"bCN" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bCO" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/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/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bCP" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/ai_monitored/storage/eva) +"bCR" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/suit_storage_unit/standard_unit, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -26 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/eva) +"bCS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/teleporter) +"bCT" = ( +/obj/effect/turf_decal/bot, +/obj/structure/table, +/obj/item/storage/belt/utility, +/obj/item/radio{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/item/radio{ + pixel_y = 2 + }, +/obj/item/flashlight/flare, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"bCU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/teleporter) +"bCV" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/suit_storage_unit/standard_unit, +/obj/structure/window/reinforced, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/eva) +"bCW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/apc{ + areastring = "/area/teleporter"; + dir = 1; + name = "Teleporter APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/teleporter) +"bCX" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bCY" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bCZ" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/stock_parts/cell/high, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/dark, +/area/storage/tech) +"bDa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"bDb" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 5 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"bDc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bDd" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/suit_storage_unit/standard_unit, +/obj/structure/sign/warning/securearea{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/eva) +"bDe" = ( +/obj/effect/turf_decal/bot, +/obj/structure/tank_dispenser/oxygen{ + pixel_x = -1; + pixel_y = 2 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"bDf" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"bDg" = ( +/obj/machinery/status_display/ai, +/turf/closed/wall/r_wall, +/area/ai_monitored/storage/eva) +"bDh" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bDi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/aft) +"bDj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bDk" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/storage/backpack/satchel/eng, +/obj/item/wirecutters, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bDl" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"bDm" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/door/airlock/engineering/glass{ + name = "Engineering Storage"; + req_access_txt = "32" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"bDn" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/cardboard, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bDo" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"bDp" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/tcomms, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/dark, +/area/storage/tech) +"bDq" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/analyzer{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/analyzer, +/obj/item/flashlight, +/obj/item/flashlight, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/dark, +/area/storage/tech) +"bDr" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/storage/tech) +"bDs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/aft) +"bDt" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/emcloset/anchored, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"bDu" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/camera{ + c_tag = "Port Hallway Vendors"; + dir = 4; + name = "port camera" + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 8 + }, +/area/hallway/primary/port) +"bDv" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/rnd, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot, +/obj/structure/sign/warning/securearea{ + pixel_x = 32 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark, +/area/storage/tech) +"bDw" = ( +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"bDx" = ( +/turf/open/floor/wood, +/area/crew_quarters/heads/hop) +"bDy" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"bDz" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hop) +"bDA" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bDB" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/ai_monitored/storage/eva) +"bDC" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/camera{ + c_tag = "Bridge Access"; + dir = 8; + name = "command camera" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bDD" = ( +/obj/structure/table, +/obj/item/storage/toolbox/electrical, +/obj/item/multitool, +/turf/open/floor/engine, +/area/storage/tech) +"bDE" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/yellow, +/obj/item/electronics/apc, +/obj/item/electronics/airlock{ + pixel_y = 6 + }, +/obj/item/stock_parts/cell/high/plus, +/turf/open/floor/engine, +/area/storage/tech) +"bDF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/teleporter) +"bDG" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/beacon, +/turf/open/floor/plasteel, +/area/teleporter) +"bDH" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/central) +"bDI" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall/r_wall, +/area/storage/tech) +"bDJ" = ( +/obj/effect/turf_decal/bot, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/central) +"bDK" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/hydroponics) +"bDL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"bDM" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bDN" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/medical, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/turf/open/floor/plasteel/dark, +/area/storage/tech) +"bDO" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/vending/assist, +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/turf/open/floor/plasteel/dark, +/area/storage/tech) +"bDP" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/engineering, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/camera{ + c_tag = "Tech Storage"; + dir = 1; + name = "engineering camera"; + network = list("ss13","engine") + }, +/turf/open/floor/plasteel/dark, +/area/storage/tech) +"bDQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"bDR" = ( +/obj/machinery/light/floor, +/turf/open/floor/engine/co2{ + initial_gas_mix = "co2=1000;TEMP=293.15" + }, +/area/engine/atmos) +"bDS" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/aicard, +/obj/item/aiModule/reset, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/storage/tech) +"bDT" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/aft) +"bDU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bDV" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"bDW" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/port/aft) +"bDX" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/command, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/storage/tech) +"bDY" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/RnD_secure, +/obj/machinery/light/small, +/obj/machinery/status_display/shuttle{ + pixel_y = -32 + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/storage/tech) +"bDZ" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/AI, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/storage/tech) +"bEa" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/emcloset/anchored, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"bEb" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"bEc" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 8 + }, +/area/hallway/primary/port) +"bEd" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/vending/coffee, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"bEe" = ( +/obj/structure/bed/dogbed/renault, +/obj/machinery/button/door{ + id = "captain_escape"; + name = "Tactical Relocation Toggle"; + pixel_x = 6; + pixel_y = -24 + }, +/mob/living/simple_animal/pet/fox/Renault, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bEf" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bEg" = ( +/turf/closed/wall, +/area/maintenance/starboard/aft) +"bEh" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"bEi" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/storage/fancy/donut_box, +/obj/structure/table, +/obj/machinery/camera{ + c_tag = "Courtroom Jury"; + dir = 8; + name = "command camera" + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"bEj" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/closet/secure_closet/hop, +/obj/effect/turf_decal/bot, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hop) +"bEk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/teleporter) +"bEl" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/teleporter) +"bEm" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"bEn" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/central) +"bEo" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bEp" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/aft) +"bEq" = ( +/obj/structure/sign/warning/pods, +/turf/closed/wall/rust, +/area/maintenance/starboard) +"bEr" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"bEs" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bEt" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bEu" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bEv" = ( +/obj/structure/grille/broken, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard/aft) +"bEw" = ( +/obj/structure/sign/poster/contraband/random{ + pixel_y = -32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard/aft) +"bEx" = ( +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"bEy" = ( +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"bEz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/aft) +"bEA" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bEB" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bEC" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bED" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/box, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bEF" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/sign/departments/security{ + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bEG" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/box, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bEH" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/maintenance/aft) +"bEI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/girder/displaced, +/obj/structure/grille/broken, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/aft) +"bEJ" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/engine/atmos) +"bEK" = ( +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"bEL" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"bEM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "captain_escape"; + name = "Tactical Relocation Shutter" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/captain) +"bEN" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bEO" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/toilet/restrooms) +"bEP" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/grunge{ + name = "Recreation Area" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"bER" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"bES" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"bEU" = ( +/obj/structure/sign/warning/nosmoking{ + pixel_x = 30 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bEV" = ( +/obj/structure/sign/poster/contraband/random, +/turf/closed/wall, +/area/maintenance/aft) +"bEW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/aft) +"bEX" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters{ + id = "bankshutter"; + name = "Bank Shutter" + }, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/noticeboard{ + dir = 1; + pixel_y = -27 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"bEY" = ( +/obj/effect/turf_decal/bot, +/obj/structure/table, +/obj/structure/grille/broken, +/obj/item/book/manual/wiki/engineering_hacking, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bEZ" = ( +/obj/machinery/door/airlock/maintenance{ + name = "e.v.a. maintenance"; + req_access_txt = "18" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/aft) +"bFa" = ( +/turf/closed/wall, +/area/maintenance/aft) +"bFb" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/door/airlock/grunge{ + name = "Restrooms" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/locker) +"bFc" = ( +/obj/structure/sign/warning/fire, +/turf/closed/wall, +/area/maintenance/aft) +"bFd" = ( +/obj/machinery/door/airlock/atmos{ + name = "Filter Chamber" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/aft) +"bFe" = ( +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/sign/warning/electricshock{ + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bFf" = ( +/obj/structure/sign/poster/contraband/random{ + pixel_y = -32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bFg" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/crate{ + name = "disposal supplies" + }, +/obj/item/bodybag, +/obj/item/bodybag, +/obj/item/shovel, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"bFh" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"bFi" = ( +/obj/structure/sign/warning/electricshock{ + pixel_y = -32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bFj" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bFk" = ( +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/aft) +"bFl" = ( +/obj/machinery/vending/snack/random, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/sign/poster/official/the_owl{ + pixel_x = 32 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/port) +"bFm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bFn" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bFo" = ( +/obj/structure/sign/warning/electricshock{ + pixel_y = -32 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/lattice/catwalk, +/obj/machinery/light/small, +/turf/open/floor/plating/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/port/aft) +"bFp" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/port/aft) +"bFq" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/port/aft) +"bFr" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/aft) +"bFs" = ( +/turf/closed/wall/r_wall, +/area/maintenance/aft) +"bFt" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/security/glass{ + name = "Engineering Security Post"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/engineering) +"bFu" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 4 + }, +/area/hallway/primary/port) +"bFv" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"bFw" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/door/firedoor, +/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/security/processing) +"bFx" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/portable_atmospherics/scrubber/huge, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"bFy" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/portable_atmospherics/scrubber/huge, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"bFA" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bFB" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/microwave{ + pixel_y = 5 + }, +/obj/structure/table, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"bFC" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/structure/grille/broken, +/obj/item/wallframe/apc, +/obj/item/stack/cable_coil, +/turf/open/floor/plating, +/area/maintenance/aft) +"bFD" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bFE" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/aft) +"bFF" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/item/twohanded/required/kirbyplants, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bFG" = ( +/obj/machinery/light/floor, +/turf/open/floor/engine/plasma{ + initial_gas_mix = "plasma=1000;TEMP=293.15" + }, +/area/engine/atmos) +"bFH" = ( +/obj/machinery/gulag_teleporter, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/dark, +/area/security/processing) +"bFI" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bFJ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"bFK" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/status_display/ai{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"bFL" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/structure/sign/warning/electricshock{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"bFM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/teleporter) +"bFN" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-05" + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"bFO" = ( +/obj/machinery/bluespace_beacon, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/teleporter) +"bFP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"bFQ" = ( +/obj/structure/sign/warning/docking, +/turf/closed/wall, +/area/maintenance/port) +"bFR" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/central) +"bFS" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"bFT" = ( +/obj/machinery/door/airlock/atmos{ + name = "Filter Chamber" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/aft) +"bFU" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/aft) +"bFV" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"bFW" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/door/window/northleft{ + name = "Hydroponics Lockers"; + req_access_txt = "35" + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bFX" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/requests_console{ + department = "Hydroponics"; + departmentType = 2; + name = "Hydroponics RC"; + pixel_x = 30; + pixel_y = -30 + }, +/obj/machinery/door/window/northright{ + name = "Hydroponics Lockers"; + req_access_txt = "35" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bFY" = ( +/obj/structure/girder, +/obj/structure/grille, +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/maintenance/aft) +"bFZ" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall, +/area/maintenance/aft) +"bGa" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/aft) +"bGb" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/space/nearstation) +"bGc" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/vending/hydroseeds{ + slogan_delay = 700 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/starboard) +"bGd" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/aft) +"bGe" = ( +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"bGf" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/cardboard, +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/maintenance/aft) +"bGg" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/aft) +"bGh" = ( +/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/dark/corner{ + dir = 1 + }, +/area/hallway/primary/starboard) +"bGi" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/vending/snack/random, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/starboard) +"bGj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/aft) +"bGk" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/crate/hydroponics, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/item/shovel/spade, +/obj/item/wrench, +/obj/item/crowbar/red, +/obj/item/cultivator, +/obj/item/wirecutters, +/obj/item/reagent_containers/glass/bucket, +/obj/item/circuitboard/machine/biogenerator, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"bGl" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"bGm" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/girder, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"bGn" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/status_display/evac{ + pixel_x = 32; + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"bGo" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/engine/atmos) +"bGp" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bGq" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Central Hallway Courtroom"; + name = "central camera" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bGr" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard/aft) +"bGs" = ( +/obj/effect/turf_decal/caution{ + pixel_y = -12 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bGt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/teleporter) +"bGu" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/aft) +"bGv" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/teleporter) +"bGw" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/teleporter) +"bGx" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bGy" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bGz" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bGA" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Locker Room"; + name = "recreation camera" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bGB" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"bGC" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/engine/atmos) +"bGD" = ( +/obj/machinery/computer/security/labor, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light_switch{ + pixel_x = -8; + pixel_y = 24 + }, +/obj/machinery/status_display/evac{ + pixel_x = -32 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/security/processing) +"bGE" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/landmark/start/assistant, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bGF" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/door/airlock/engineering{ + name = "Engineering"; + req_access_txt = "10" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"bGG" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/aft) +"bGH" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard/aft) +"bGI" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"bGJ" = ( +/obj/machinery/power/apc{ + area = "/area/maintenance/aft"; + dir = 8; + name = "Aft Maintenance APC"; + pixel_x = -26 + }, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"bGK" = ( +/obj/structure/sign/warning/securearea{ + pixel_y = -32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/aft) +"bGL" = ( +/obj/machinery/door/airlock/external{ + name = "Labor Camp Shuttle Airlock"; + req_access_txt = "2"; + shuttledocked = 1 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/processing) +"bGM" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bGN" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bGO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 2; + name = "disposals sorting disposal pipe"; + sortType = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bGP" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Starboad Hallway Custodial Bay"; + name = "starboard camera" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bGQ" = ( +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/wood, +/area/maintenance/port/fore) +"bGR" = ( +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/light/small, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"bGS" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/security/processing) +"bGT" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"bGU" = ( +/obj/effect/turf_decal/bot, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/aft) +"bGV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bGW" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bGX" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bGY" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bGZ" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bHa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"bHb" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"bHc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"bHd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/shard, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"bHe" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Engineering"; + req_access_txt = "10" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"bHf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bHg" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/computer/arcade, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"bHh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/wrench, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/aft) +"bHi" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/space/nearstation) +"bHj" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/space/nearstation) +"bHk" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bHl" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bHm" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"bHn" = ( +/obj/machinery/status_display/ai, +/turf/closed/wall, +/area/storage/tech) +"bHo" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/space/nearstation) +"bHp" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/space/nearstation) +"bHq" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/space/nearstation) +"bHr" = ( +/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/item/book/manual/wiki/security_space_law, +/obj/machinery/flasher{ + id = "Cell 6"; + name = "Prisoner Pacifier"; + pixel_x = -24 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bHs" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/vomit/old, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/structure/bed, +/obj/item/bedsheet/brown, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bHt" = ( +/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/item/book/manual/wiki/security_space_law, +/obj/machinery/flasher{ + id = "Cell 5"; + name = "Prisoner Pacifier"; + pixel_x = -24 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bHu" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/structure/bed, +/obj/item/bedsheet/brown, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bHv" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bHw" = ( +/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/item/book/manual/wiki/security_space_law, +/obj/machinery/flasher{ + id = "Cell 4"; + name = "Prisoner Pacifier"; + pixel_x = -24 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bHx" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"bHy" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/box, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bHz" = ( +/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/item/book/manual/wiki/security_space_law, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/flasher{ + id = "Cell 3"; + name = "Prisoner Pacifier"; + pixel_x = -24 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bHA" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/structure/bed, +/obj/item/bedsheet/brown, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bHB" = ( +/obj/structure/sign/poster/official/help_others, +/turf/closed/wall, +/area/bridge) +"bHC" = ( +/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/item/book/manual/wiki/security_space_law, +/obj/machinery/flasher{ + id = "Cell 2"; + name = "Prisoner Pacifier"; + pixel_x = -24 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bHD" = ( +/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/item/book/manual/wiki/security_space_law, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/flasher{ + id = "Cell 1"; + name = "Prisoner Pacifier"; + pixel_x = -24 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bHE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/quartermaster/sorting) +"bHF" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/storage) +"bHG" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"bHH" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/aft) +"bHI" = ( +/obj/machinery/door/firedoor, +/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/airlock/command{ + name = "Head of Personnel's Office"; + req_access_txt = "57" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hop) +"bHJ" = ( +/obj/effect/turf_decal/caution{ + pixel_y = -12 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bHK" = ( +/obj/machinery/vending/cola/random, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/port) +"bHL" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-16" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bHM" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/sign/poster/official/random{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-16" + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bHN" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bHO" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/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" + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bHP" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bHR" = ( +/obj/structure/disposalpipe/junction, +/turf/closed/wall, +/area/quartermaster/sorting) +"bHS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"bHT" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/pen, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/starboard) +"bHU" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall, +/area/hallway/primary/aft) +"bHW" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"bHY" = ( +/obj/structure/table, +/obj/item/storage/box/prisoner, +/obj/item/restraints/handcuffs, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/newscaster/security_unit{ + pixel_x = 30 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"bHZ" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bIa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/processing) +"bIb" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/closed/wall, +/area/engine/atmos) +"bIc" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bId" = ( +/obj/machinery/light/floor, +/turf/open/floor/engine/n2o{ + initial_gas_mix = "n2o=1000;TEMP=293.15" + }, +/area/engine/atmos) +"bIe" = ( +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/closed/wall, +/area/engine/atmos) +"bIf" = ( +/obj/structure/table, +/obj/item/restraints/handcuffs, +/obj/item/radio{ + pixel_y = 4 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/obj/machinery/camera{ + c_tag = "Departures Checkpoint"; + name = "shuttle camera" + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bIg" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/firecloset, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bIh" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/camera{ + c_tag = "Aft Hallway Transfer Centre Doors"; + dir = 8; + name = "aft camera" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bIi" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"bIj" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"bIk" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/processing) +"bIl" = ( +/obj/structure/table, +/obj/item/clothing/under/rank/security{ + pixel_x = -4 + }, +/obj/item/toy/figure/dsquad{ + pixel_x = 6; + pixel_y = 6 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bIm" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/closed/wall, +/area/quartermaster/sorting) +"bIn" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/door/airlock/security{ + name = "Equipment Room"; + req_access_txt = "1" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"bIo" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/maintenance/port/aft) +"bIp" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/item/wallframe/airalarm, +/obj/structure/table, +/turf/open/floor/plasteel/showroomfloor, +/area/maintenance/port/aft) +"bIq" = ( +/obj/machinery/status_display/shuttle, +/turf/closed/wall, +/area/storage/tech) +"bIr" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/maintenance/port/aft) +"bIs" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/port) +"bIt" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/central) +"bIu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bIv" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Suit Closet"; + req_access_txt = "1" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"bIw" = ( +/obj/machinery/light/floor, +/turf/open/floor/engine/vacuum, +/area/engine/atmos) +"bIx" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/landmark/start/botanist, +/turf/open/floor/plasteel, +/area/hydroponics) +"bIy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bIz" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/sign/warning/securearea{ + pixel_y = 32 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bIA" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bIB" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/vending/hydronutrients, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/starboard) +"bIC" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bID" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bIE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bIF" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Cargo Security Post"; + req_access_txt = "63" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/supply) +"bIG" = ( +/obj/machinery/door/airlock/external{ + name = "Supply Dock Airlock"; + req_access_txt = "31" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/storage) +"bIH" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/door/airlock/grunge{ + name = "Recreation Area" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"bII" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "atmos"; + name = "Atmospherics Blast Door" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1, +/turf/open/floor/plating, +/area/engine/break_room) +"bIJ" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bIK" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bIL" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"bIM" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bIN" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bIO" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bIP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"bIQ" = ( +/obj/machinery/door/airlock/external{ + name = "Supply Dock Airlock"; + req_access_txt = "31" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/quartermaster/storage) +"bIR" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bIS" = ( +/obj/machinery/flasher/portable, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/delivery, +/obj/machinery/camera/motion{ + c_tag = "Armoury Internal"; + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"bIT" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bIU" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics Tank - O2"; + name = "atmospherics camera"; + network = list("ss13","engine") + }, +/turf/open/floor/engine/o2{ + initial_gas_mix = "o2=1000;TEMP=293.15" + }, +/area/engine/atmos) +"bIV" = ( +/turf/closed/wall, +/area/crew_quarters/locker) +"bIW" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bIX" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/vr_sleeper, +/obj/effect/turf_decal/box/white, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/locker) +"bIY" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/vr_sleeper, +/obj/effect/turf_decal/box/white, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/locker) +"bIZ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/vending/autodrobe/all_access, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/locker) +"bJb" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bJc" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 8; + name = "custodial sorting disposal pipe"; + sortType = 22 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bJe" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/light, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/button/door{ + id = "custodialwagon"; + name = "Custodial Bay Toggle"; + pixel_x = 8; + pixel_y = -24; + req_one_access_txt = "26" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/mob/living/simple_animal/bot/cleanbot{ + auto_patrol = 1; + icon_state = "cleanbot1"; + name = "Mopficcer Sweepsky" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bJf" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bJg" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/blue, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bJh" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bJi" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bJj" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bJk" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/crew_quarters/locker) +"bJl" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall, +/area/storage/tech) +"bJm" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/space/nearstation) +"bJn" = ( +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/lipstick/random{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/lipstick/random{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/item/lipstick/random{ + pixel_x = 6 + }, +/obj/item/pen, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bJo" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/storage/toolbox/emergency, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bJp" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bJq" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/storage/firstaid/regular, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bJr" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/storage/briefcase, +/obj/item/clothing/neck/tie/red, +/obj/item/clothing/head/bowler{ + pixel_y = 8 + }, +/obj/item/cane, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bJs" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bJt" = ( +/obj/effect/turf_decal/box, +/obj/machinery/shower{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/item/soap/nanotrasen, +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/obj/effect/landmark/xeno_spawn, +/obj/machinery/button/door{ + id = "Shower_2"; + name = "Shower 2 Privacy Lock"; + normaldoorcontrol = 1; + pixel_x = 24; + pixel_y = -8; + specialfunctions = 4 + }, +/obj/machinery/button/door{ + id = "Shower_2Privacy"; + name = "Shower 2 Privacy Toggle"; + pixel_x = 24; + pixel_y = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/toilet/restrooms) +"bJu" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/space/nearstation) +"bJv" = ( +/turf/open/floor/engine{ + name = "Holodeck Projector Floor" + }, +/area/holodeck/rec_center) +"bJw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bJx" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bJy" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bJz" = ( +/obj/machinery/computer/libraryconsole/bookmanagement, +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 28 + }, +/obj/machinery/camera{ + c_tag = "Prison Yard Machines"; + name = "prison camera"; + network = list("ss13","prison") + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bJB" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Long-Term Cell 1"; + req_access_txt = "2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"bJC" = ( +/obj/machinery/status_display/ai, +/turf/closed/wall, +/area/security/warden) +"bJD" = ( +/obj/structure/cable, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/port/fore) +"bJE" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/obj/structure/flora/ausbushes/lavendergrass, +/obj/structure/flora/ausbushes/fernybush, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/hallway/primary/central) +"bJF" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 28 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bJG" = ( +/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/neutral, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-05" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bJH" = ( +/obj/structure/table, +/obj/item/paper_bin/construction{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/stack/cable_coil{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/stack/cable_coil{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/stack/cable_coil{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/stack/cable_coil, +/obj/item/hand_labeler{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/hand_labeler, +/obj/machinery/light/small, +/turf/open/floor/plasteel/dark, +/area/library) +"bJI" = ( +/obj/machinery/vending/cola/random, +/obj/effect/turf_decal/bot, +/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/dark, +/area/hallway/primary/starboard) +"bJJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"bJK" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bJL" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/chair/office, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bJM" = ( +/obj/machinery/computer/secure_data{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bJN" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bJO" = ( +/obj/structure/transit_tube/horizontal{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/structure/lattice/catwalk, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"bJP" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Engineering Security Post"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/engineering) +"bJQ" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/cobweb, +/obj/item/storage/secure/briefcase{ + pixel_y = 4 + }, +/obj/item/radio{ + desc = "An old handheld radio. You could use it, if you really wanted to."; + icon_state = "radio"; + name = "old radio" + }, +/obj/machinery/button/door{ + id = "Cabin_4"; + name = "Cabin 4 Privacy Lock"; + normaldoorcontrol = 1; + pixel_y = 24; + specialfunctions = 4 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/turf/open/floor/wood, +/area/crew_quarters/locker) +"bJR" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bJS" = ( +/obj/structure/bed, +/obj/item/bedsheet/black, +/obj/machinery/button/door{ + id = "Cabin_3"; + name = "Cabin 3 Privacy Lock"; + normaldoorcontrol = 1; + pixel_y = 24; + specialfunctions = 4 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood, +/area/crew_quarters/locker) +"bJT" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bJU" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/crew_quarters/locker) +"bJV" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining/glass{ + name = "Mailroom"; + req_access_txt = "50" + }, +/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" + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/sorting) +"bJW" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/space_heater, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bJX" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/space_heater, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bJY" = ( +/obj/structure/bed, +/obj/item/bedsheet/black, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/button/door{ + id = "Cabin_2"; + name = "Cabin 2 Privacy Lock"; + normaldoorcontrol = 1; + pixel_y = 24; + specialfunctions = 4 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood{ + icon_state = "wood-broken3" + }, +/area/crew_quarters/locker) +"bJZ" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/crew_quarters/locker) +"bKa" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 8 + }, +/area/hallway/primary/port) +"bKb" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/locker) +"bKc" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/obj/machinery/button/door{ + id = "Cabin_4Privacy"; + name = "Cabin 4 Privacy Toggle"; + pixel_x = -24; + pixel_y = -24 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/crew_quarters/locker) +"bKd" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/obj/machinery/button/door{ + id = "Cabin_3Privacy"; + name = "Cabin 3 Privacy Toggle"; + pixel_x = -24; + pixel_y = -24 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/crew_quarters/locker) +"bKe" = ( +/obj/structure/dresser, +/turf/open/floor/wood, +/area/crew_quarters/locker) +"bKf" = ( +/obj/structure/sign/poster/contraband/revolver, +/turf/closed/wall, +/area/crew_quarters/locker) +"bKg" = ( +/obj/structure/table/wood, +/obj/item/folder/red, +/obj/item/lighter, +/turf/open/floor/wood, +/area/crew_quarters/locker) +"bKh" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/machinery/newscaster{ + pixel_x = 30 + }, +/turf/open/floor/wood, +/area/crew_quarters/locker) +"bKi" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/landmark/start/assistant, +/obj/structure/chair/stool, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"bKj" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/locker) +"bKk" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Cabin_4Privacy"; + name = "Cabin 4 Privacy Shutter" + }, +/turf/open/floor/plating, +/area/crew_quarters/locker) +"bKl" = ( +/obj/structure/flora/rock/pile, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/space/nearstation) +"bKm" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bKn" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/megaphone{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/pen, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"bKo" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bKp" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "ceprivate"; + name = "Chief Engineer's Privacy Shutters" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"bKq" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/firedoor, +/turf/open/floor/plating/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/crew_quarters/locker) +"bKr" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"bKs" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/disposal/bin, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 28 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bKt" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bKu" = ( +/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/bot, +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/toilet{ + pixel_y = 16 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/blood/gibs/limb, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bKv" = ( +/obj/structure/bed, +/obj/item/bedsheet/black, +/obj/machinery/flasher{ + id = "PCell 1"; + name = "Prisoner Pacifier"; + pixel_x = 24 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bKw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"bKx" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"bKy" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/door_timer{ + id = "Cell 3"; + name = "Cell 3"; + pixel_x = -32 + }, +/obj/structure/closet/secure_closet/brig{ + id = "Cell 3"; + name = "Cell 3 Locker" + }, +/turf/open/floor/plasteel, +/area/security/warden) +"bKz" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"bKA" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet{ + name = "detective closet" + }, +/obj/item/clothing/suit/jacket{ + desc = "All the class of a trenchcoat without the security fibers."; + icon_state = "greydet"; + name = "trenchcoat"; + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/clothing/suit/jacket{ + desc = "All the class of a trenchcoat without the security fibers."; + icon_state = "detective"; + name = "trenchcoat" + }, +/obj/item/clothing/head/fedora{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/clothing/head/fedora{ + icon_state = "detective" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bKB" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, +/obj/machinery/computer/operating{ + name = "Forensics Operating Computer" + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/turf/open/floor/plasteel/dark, +/area/security/detectives_office) +"bKC" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bKD" = ( +/obj/structure/closet/boxinggloves, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/sign/poster/official/random{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"bKE" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"bKF" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/toilet/restrooms) +"bKG" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/toilet/restrooms) +"bKH" = ( +/obj/structure/closet/masks, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"bKI" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge Access"; + req_access_txt = "19" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bKJ" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/maintenance/central) +"bKK" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bKL" = ( +/obj/structure/sign/departments/restroom, +/turf/closed/wall, +/area/crew_quarters/locker) +"bKM" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"bKN" = ( +/obj/structure/closet/athletic_mixed, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/camera{ + c_tag = "Recreation Lockers"; + name = "recreation camera" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"bKO" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/structure/closet/emcloset, +/obj/structure/sign/warning/securearea{ + name = "EMERGENCY STORAGE"; + pixel_y = -32 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) +"bKP" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bKQ" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bKR" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bKS" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/sign/directions/security{ + pixel_y = -40 + }, +/obj/structure/sign/directions/medical{ + dir = 8; + pixel_y = -32 + }, +/obj/structure/sign/directions/command{ + dir = 1; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bKT" = ( +/obj/effect/turf_decal/box, +/obj/structure/toilet{ + dir = 8 + }, +/obj/structure/mirror{ + pixel_x = -28 + }, +/obj/machinery/button/door{ + id = "Unit_3"; + name = "Unit 3 Privacy Lock"; + normaldoorcontrol = 1; + pixel_x = 24; + pixel_y = 8; + specialfunctions = 4 + }, +/obj/machinery/newscaster{ + pixel_x = -30; + pixel_y = -30 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/blobstart, +/obj/machinery/button/door{ + id = "Unit_3Privacy"; + name = "Unit 3 Privacy Toggle"; + pixel_x = 24; + pixel_y = -8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/toilet/restrooms) +"bKU" = ( +/obj/effect/turf_decal/box, +/obj/structure/toilet{ + dir = 8 + }, +/obj/structure/mirror{ + pixel_x = -28 + }, +/obj/machinery/button/door{ + id = "Unit_2"; + name = "Unit 2 Privacy Lock"; + normaldoorcontrol = 1; + pixel_x = 24; + pixel_y = 8; + specialfunctions = 4 + }, +/obj/machinery/newscaster{ + pixel_x = -30; + pixel_y = -30 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/obj/machinery/button/door{ + id = "Unit_2Privacy"; + name = "Unit 2 Privacy Toggle"; + pixel_x = 24; + pixel_y = -8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/toilet/restrooms) +"bKV" = ( +/obj/effect/turf_decal/box, +/obj/structure/toilet{ + dir = 8 + }, +/obj/structure/mirror{ + pixel_x = -28 + }, +/obj/machinery/button/door{ + id = "Unit_1"; + name = "Unit 1 Privacy Lock"; + normaldoorcontrol = 1; + pixel_x = 24; + pixel_y = 8; + specialfunctions = 4 + }, +/obj/machinery/newscaster{ + pixel_x = -30; + pixel_y = -30 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/landmark/blobstart, +/obj/machinery/button/door{ + id = "Unit_1Privacy"; + name = "Unit 1 Privacy Toggle"; + pixel_x = 24; + pixel_y = -8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/toilet/restrooms) +"bKW" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"bKX" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/toilet/restrooms) +"bKY" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bKZ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bLa" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"bLb" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/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/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"bLc" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/item/radio/intercom{ + pixel_x = 28; + pixel_y = 22 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"bLd" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall, +/area/crew_quarters/fitness/recreation) +"bLe" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"bLf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bLg" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/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" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"bLh" = ( +/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" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"bLi" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/sign/directions/engineering{ + pixel_y = -40 + }, +/obj/structure/sign/directions/supply{ + dir = 4; + pixel_y = -32 + }, +/obj/structure/sign/directions/science{ + dir = 4; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bLj" = ( +/obj/machinery/status_display/ai, +/turf/closed/wall, +/area/security/prison) +"bLk" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/washing_machine, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/toilet/restrooms) +"bLl" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bLm" = ( +/obj/structure/chair, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"bLn" = ( +/turf/closed/wall/rust, +/area/crew_quarters/toilet/restrooms) +"bLo" = ( +/obj/structure/table, +/obj/item/storage/firstaid/regular, +/obj/item/stack/medical/gauze, +/obj/item/stack/medical/ointment{ + pixel_y = 4 + }, +/obj/item/stack/medical/bruise_pack, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/newscaster{ + pixel_x = 30 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"bLp" = ( +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"bLq" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-03" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bLr" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/storage/primary) +"bLs" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/power/apc{ + areastring = "/area/janitor"; + dir = 8; + name = "Custodial Closet APC"; + pixel_x = -26 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/item/storage/box/lights/mixed{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/storage/box/lights/mixed{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/grenade/chem_grenade/cleaner{ + pixel_x = 10; + pixel_y = 6 + }, +/obj/item/grenade/chem_grenade/cleaner{ + pixel_x = 10; + pixel_y = 6 + }, +/obj/item/grenade/chem_grenade/cleaner{ + pixel_x = 10; + pixel_y = 6 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/janitor) +"bLt" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/junction/flip, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bLu" = ( +/turf/closed/wall/rust, +/area/crew_quarters/locker) +"bLv" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/janitor) +"bLw" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "custodialwagon"; + name = "Custodial Bay Toggle"; + pixel_x = 8; + pixel_y = 24; + req_one_access_txt = "26" + }, +/obj/machinery/light_switch{ + pixel_x = -8; + pixel_y = 24 + }, +/obj/item/clothing/gloves/color/orange, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/flashlight{ + pixel_y = 4 + }, +/obj/item/flashlight{ + pixel_y = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/key/janitor, +/turf/open/floor/plasteel/dark, +/area/janitor) +"bLx" = ( +/obj/vehicle/ridden/janicart, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/janitor) +"bLy" = ( +/obj/structure/janitorialcart, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/janitor) +"bLz" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"bLA" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/item/reagent_containers/glass/bucket, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/janitor) +"bLB" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"bLC" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"bLD" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-05" + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bLE" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bLF" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bLG" = ( +/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/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bLH" = ( +/obj/machinery/hydroponics/soil, +/turf/open/floor/grass, +/area/security/prison) +"bLI" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bLJ" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/crew_quarters/fitness/recreation) +"bLK" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bLL" = ( +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bLM" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/disposaloutlet{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"bLN" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/item/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + name = "Prison Intercom (General)"; + pixel_y = 22; + prison_radio = 1 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-17"; + pixel_x = -8; + pixel_y = 3 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bLO" = ( +/obj/structure/chair, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"bLP" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/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/crew_quarters/fitness/recreation) +"bLQ" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/remains/human, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bLR" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"bLS" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/turf_decal/box, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bLT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"bLU" = ( +/obj/structure/sign/warning/fire, +/turf/closed/wall, +/area/crew_quarters/fitness/recreation) +"bLV" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"bLW" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"bLX" = ( +/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/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/machinery/camera{ + c_tag = "Long-Term Cell 1"; + dir = 1; + name = "prison camera"; + network = list("ss13","prison") + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bLY" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bLZ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bMa" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"bMb" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/newscaster/security_unit{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bMc" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/status_display/evac{ + pixel_x = 32; + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bMd" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/sign/poster/ripped, +/turf/closed/wall, +/area/crew_quarters/fitness/recreation) +"bMe" = ( +/obj/machinery/hydroponics/soil, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/grass, +/area/security/prison) +"bMf" = ( +/obj/structure/grille/broken, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/aft) +"bMg" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/structure/sign/poster/official/random{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"bMh" = ( +/obj/structure/table, +/obj/item/storage/box/prisoner{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/restraints/handcuffs/cable/zipties, +/obj/item/crowbar/red, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/noticeboard{ + pixel_y = 30 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"bMi" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"bMj" = ( +/obj/machinery/vending/cola/random, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"bMk" = ( +/obj/item/radio/intercom{ + pixel_x = -28 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-02"; + pixel_y = 3 + }, +/turf/open/floor/plasteel, +/area/security/warden) +"bMl" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/security/warden) +"bMm" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bMn" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"bMo" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"bMp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/detectives_office) +"bMq" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high, +/obj/item/screwdriver{ + pixel_y = 18 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -26 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"bMr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/camera{ + c_tag = "Autopsy Room"; + dir = 1; + name = "detective camera" + }, +/obj/machinery/status_display/ai{ + pixel_x = 32; + pixel_y = 32 + }, +/obj/effect/landmark/xeno_spawn, +/obj/effect/landmark/start/detective, +/turf/open/floor/plasteel/dark, +/area/security/detectives_office) +"bMs" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"bMt" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/storage/primary) +"bMu" = ( +/obj/structure/sink/kitchen{ + desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; + name = "old sink"; + pixel_y = 28 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/central) +"bMv" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters{ + id = "commissaryshutter"; + name = "Vacant Commissary Shutter" + }, +/obj/effect/turf_decal/delivery, +/obj/structure/noticeboard{ + dir = 8; + pixel_x = 32 + }, +/turf/open/floor/plating, +/area/vacant_room/commissary) +"bMw" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/janitor) +"bMx" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = -28 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) +"bMy" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bMz" = ( +/obj/machinery/computer/prisoner, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"bMA" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bMB" = ( +/obj/machinery/door/airlock/external{ + name = "Supply Dock Airlock"; + req_access_txt = "31" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/quartermaster/storage) +"bMC" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bMD" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/sign/departments/engineering{ + pixel_y = -32 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/camera{ + c_tag = "Starboard Hallway Rotunda"; + dir = 1; + name = "starboard camera" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bME" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/starboard) +"bMF" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bMG" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"bMH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/hallway/primary/aft) +"bMI" = ( +/obj/machinery/door/airlock/external{ + name = "Science Escape Pod" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard) +"bMJ" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet{ + name = "custodial locker" + }, +/obj/item/clothing/gloves/color/orange, +/obj/item/clothing/shoes/galoshes, +/obj/item/clothing/head/soft/purple, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bMK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Gravity Generator Chamber"; + req_one_access_txt = "19; 61" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"bML" = ( +/obj/structure/flora/ausbushes/lavendergrass, +/obj/structure/flora/ausbushes/sparsegrass, +/obj/structure/flora/ausbushes/ywflowers, +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/palebush, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/aft) +"bMM" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bMN" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bMO" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bMP" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bMQ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/newscaster{ + pixel_x = 30 + }, +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"bMR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"bMS" = ( +/obj/machinery/button/flasher{ + id = "PCell 1"; + name = "Long-Term Cell 1 Pacifier"; + pixel_x = -24; + pixel_y = 6 + }, +/obj/machinery/button/door{ + id = "PCell 1Lock"; + name = "Long-Term Cell 1 Toggle"; + pixel_x = -24; + pixel_y = -6; + req_access_txt = "2" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bMT" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bMU" = ( +/obj/structure/sign/departments/security{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/aft) +"bMV" = ( +/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/airlock/maintenance{ + name = "medbay maintenance"; + req_access_txt = "5" + }, +/obj/structure/sign/directions/evac{ + pixel_y = -24 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"bMW" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/starboard) +"bMX" = ( +/turf/open/floor/mech_bay_recharge_floor, +/area/maintenance/port/aft) +"bMY" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/warden) +"bMZ" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/security/warden) +"bNa" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/warden) +"bNb" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/obj/machinery/camera{ + c_tag = "Brig Cells"; + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/security/warden) +"bNc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/aft) +"bNd" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/security/warden) +"bNe" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters{ + id = "sparemech"; + name = "Abandoned Mech Bay" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bNf" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bNg" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/quartermaster/sorting) +"bNh" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bNi" = ( +/obj/structure/flora/grass/jungle/b, +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/leafybush, +/obj/structure/flora/ausbushes/ywflowers, +/obj/structure/flora/ausbushes/leafybush, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/grass, +/area/security/prison) +"bNj" = ( +/obj/machinery/computer/secure_data, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"bNk" = ( +/obj/effect/turf_decal/bot, +/obj/structure/table, +/obj/item/stack/sheet/metal/ten{ + amount = 5 + }, +/obj/item/assembly/prox_sensor, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bNl" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/storage/toolbox/emergency, +/obj/item/stack/rods/ten, +/obj/item/stack/cable_coil, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bNm" = ( +/obj/structure/sign/warning/pods, +/turf/closed/wall, +/area/maintenance/port/aft) +"bNn" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"bNo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"bNp" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"bNq" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/security/warden) +"bNr" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/security/warden) +"bNs" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/obj/structure/mopbucket, +/obj/item/mop, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bNt" = ( +/obj/structure/sign/departments/cargo, +/turf/closed/wall, +/area/quartermaster/sorting) +"bNu" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/engine/atmos) +"bNw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/janitor) +"bNx" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/closed/wall, +/area/janitor) +"bNy" = ( +/obj/machinery/computer/security{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/status_display/ai{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"bNz" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bNA" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Docking Hallway" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/sign/directions/engineering{ + dir = 8; + pixel_y = -40 + }, +/obj/structure/sign/directions/security{ + dir = 8; + pixel_y = -32 + }, +/obj/structure/sign/directions/medical{ + dir = 8; + pixel_y = -24 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/starboard) +"bNB" = ( +/obj/structure/grille, +/obj/structure/barricade/wooden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"bNC" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/caution/stand_clear, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/starboard) +"bND" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/computer/atmos_control/tank/air_tank{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/engine/atmos) +"bNE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/warden) +"bNF" = ( +/obj/machinery/door/airlock/maintenance{ + name = "security maintenance"; + req_access_txt = "4" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"bNG" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"bNH" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/ppflowers, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/grass, +/area/security/prison) +"bNI" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/rack, +/obj/item/crowbar/red, +/obj/item/wrench, +/obj/item/electropack, +/obj/item/assembly/signaler{ + pixel_x = 6 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/power/apc{ + areastring = "/area/security/execution/education"; + name = "Prisoner Education Chamber APC"; + pixel_y = -26 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = 30 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) +"bNJ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"bNL" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bNM" = ( +/turf/closed/wall, +/area/janitor) +"bNN" = ( +/obj/structure/closet/secure_closet/personal{ + name = "Commissary Locker" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/vacant_room/commissary) +"bNO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bNP" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/vacant_room/commissary) +"bNQ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/door/airlock/atmos/glass{ + name = "Distribution Loop"; + req_access_txt = "24" + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"bNR" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/vacant_room/commissary) +"bNS" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/item/radio/intercom{ + pixel_x = -28 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/hallway/primary/aft) +"bNT" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/reagent_dispensers/watertank, +/obj/item/reagent_containers/glass/bucket, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bNU" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "commissaryshutter"; + name = "Commissary Shutter Toggle"; + pixel_x = 24; + pixel_y = 8 + }, +/obj/machinery/button/door{ + id = "commissarydoor"; + name = "Commissary Door Lock"; + normaldoorcontrol = 1; + pixel_x = 24; + pixel_y = -8; + specialfunctions = 4 + }, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/pen, +/obj/item/toy/figure/assistant{ + pixel_x = 8; + pixel_y = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/vacant_room/commissary) +"bNV" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/grunge{ + id_tag = "commissarydoor"; + name = "Vacant Commissary"; + req_one_access_txt = "12;63;48;50" + }, +/turf/open/floor/plasteel/dark, +/area/vacant_room/commissary) +"bNW" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/vacant_room/commissary) +"bNX" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/space_heater, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"bNY" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/table, +/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/cable_coil, +/obj/machinery/button/door{ + id = "evashutter"; + name = "E.V.A. Storage Shutter Toggle"; + pixel_x = -24; + pixel_y = 24; + req_access_txt = "19" + }, +/obj/item/pickaxe, +/obj/item/pickaxe, +/obj/item/multitool, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/eva) +"bNZ" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"bOa" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/vacant_room/commissary) +"bOb" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/aft) +"bOc" = ( +/turf/closed/wall, +/area/hallway/secondary/exit/departure_lounge) +"bOd" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/box, +/obj/item/stack/marker_beacon{ + anchored = 1; + icon_state = "markerburgundy-on"; + light_color = "#FA644B"; + light_power = 3; + light_range = 2; + name = "landing marker"; + picked_color = "Burgundy" + }, +/turf/open/floor/plating/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/hallway/secondary/entry) +"bOe" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"bOg" = ( +/obj/machinery/door/airlock/external{ + name = "Supply Dock Airlock"; + req_access_txt = "31" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/storage) +"bOh" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"bOi" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/table, +/obj/item/storage/toolbox/electrical{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/stack/rods/fifty{ + pixel_y = 5 + }, +/obj/item/storage/toolbox/mechanical, +/obj/machinery/requests_console{ + department = "EVA"; + name = "E.V.A. RC"; + pixel_x = 30 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/eva) +"bOj" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"bOk" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, +/turf/open/floor/plasteel, +/area/storage/primary) +"bOl" = ( +/obj/machinery/power/apc{ + areastring = "/area/maintenance/starboard/aft"; + dir = 1; + name = "Starboard Quarter Maintenance APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/aft) +"bOm" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"bOn" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/aft) +"bOo" = ( +/obj/structure/sign/departments/custodian, +/turf/closed/wall, +/area/janitor) +"bOp" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/storage/primary) +"bOq" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/delivery, +/obj/structure/sign/warning/nosmoking{ + pixel_x = -32 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/disposal/incinerator) +"bOr" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/janitor) +"bOs" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/landmark/start/janitor, +/turf/open/floor/plasteel, +/area/janitor) +"bOt" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bOu" = ( +/obj/docking_port/stationary{ + dir = 2; + dwidth = 2; + height = 5; + id = "laborcamp_home"; + name = "fore bay 1"; + roundstart_template = /datum/map_template/shuttle/labour/kilo; + width = 9 + }, +/turf/open/space, +/area/space) +"bOv" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining/glass{ + name = "Mailroom"; + req_access_txt = "50" + }, +/turf/open/floor/plasteel/dark, +/area/quartermaster/sorting) +"bOw" = ( +/obj/machinery/door/airlock/maintenance{ + name = "cargo maintenance"; + req_one_access_txt = "31;48" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/aft) +"bOx" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/light, +/obj/machinery/requests_console{ + department = "Janitorial"; + departmentType = 1; + name = "Custodial RC"; + pixel_y = -30 + }, +/turf/open/floor/plasteel, +/area/janitor) +"bOy" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/blue, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/janitor) +"bOz" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/landmark/start/janitor, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/janitor) +"bOA" = ( +/obj/structure/table, +/obj/item/storage/box/mousetraps{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/storage/box/mousetraps{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/toy/figure/janitor{ + pixel_x = -8; + pixel_y = 6 + }, +/obj/item/restraints/legcuffs/beartrap{ + pixel_y = 8 + }, +/obj/item/restraints/legcuffs/beartrap{ + pixel_y = 8 + }, +/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/effect/decal/cleanable/dirt, +/obj/machinery/mineral/stacking_unit_console{ + machinedir = 8; + pixel_x = 32 + }, +/turf/open/floor/plasteel/dark, +/area/janitor) +"bOB" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bOC" = ( +/turf/closed/wall/rust, +/area/maintenance/starboard/aft) +"bOD" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bOE" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bOF" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bOG" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/landmark/event_spawn, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bOH" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall, +/area/janitor) +"bOI" = ( +/obj/effect/turf_decal/box/corners, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bOJ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bOK" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bOL" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/camera{ + c_tag = "Fore Hallway Diner"; + name = "fore camera" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bOM" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bON" = ( +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bOO" = ( +/obj/structure/plasticflaps/opaque, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=1"; + dir = 1; + freq = 1400; + location = "Security"; + name = "navigation beacon (Security Delivery)" + }, +/obj/machinery/door/window/northright{ + name = "Security Delivery Access"; + req_access_txt = "1" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/security/main) +"bOP" = ( +/obj/effect/turf_decal/tile/neutral, +/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/hallway/primary/central) +"bOQ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bOR" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bOS" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bOT" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bOU" = ( +/turf/closed/wall, +/area/hallway/primary/central) +"bOV" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bOW" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bOX" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-05" + }, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/hallway/secondary/exit/departure_lounge"; + dir = 1; + name = "Departure Lounge APC"; + pixel_y = 26 + }, +/obj/machinery/camera{ + c_tag = "Departures Lounge"; + name = "shuttle camera" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bOY" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bOZ" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bPa" = ( +/obj/structure/flora/ausbushes/ywflowers, +/obj/effect/decal/cleanable/blood/old, +/mob/living/simple_animal/butterfly, +/turf/open/floor/grass, +/area/security/prison) +"bPb" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bPc" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bPd" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bPe" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/secondary/exit/departure_lounge) +"bPf" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bPg" = ( +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bPh" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/ywflowers, +/obj/structure/flora/ausbushes/fernybush, +/turf/open/floor/grass, +/area/security/prison) +"bPi" = ( +/obj/machinery/conveyor{ + id = "garbage" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Disposal Exit"; + name = "disposal exit vent" + }, +/obj/structure/sign/warning/deathsposal{ + pixel_x = -32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/disposal) +"bPj" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bPk" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"bPl" = ( +/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/bot, +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/toilet{ + pixel_y = 16 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bPm" = ( +/obj/structure/bed, +/obj/item/bedsheet/black, +/obj/machinery/flasher{ + id = "PCell 1"; + name = "Prisoner Pacifier"; + pixel_x = 24 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bPn" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bPo" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/camera{ + c_tag = "Central Hallway Personnel Queue"; + dir = 1; + name = "central camera" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bPp" = ( +/obj/machinery/status_display/shuttle, +/turf/closed/wall/rust, +/area/security/courtroom) +"bPq" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/aft) +"bPr" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"bPs" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/central) +"bPt" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bPu" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-02"; + pixel_y = 3 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/camera{ + c_tag = "Prison Wing Cells"; + dir = 4; + name = "prison camera"; + network = list("ss13","prison") + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bPv" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bPw" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/obj/effect/turf_decal/box, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bPx" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bPy" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bPz" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/closed/wall/rust, +/area/maintenance/starboard/aft) +"bPA" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/dirt, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-11" + }, +/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" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bPB" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/observer_start, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bPC" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bPD" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bPE" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bPF" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 4; + icon_state = "manifold" + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"bPG" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"bPH" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Security Checkpoint"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bPI" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/security{ + name = "Armoury"; + req_access_txt = "3" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"bPJ" = ( +/turf/closed/mineral/random/labormineral, +/area/hallway/secondary/entry) +"bPK" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/obj/structure/flora/ausbushes/lavendergrass, +/obj/structure/flora/ausbushes/fernybush, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/hallway/secondary/entry) +"bPL" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/sorting/mail{ + dir = 8; + name = "HoP sorting disposal pipe"; + sortType = 15 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bPM" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/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/camera{ + c_tag = "Prison Wing Lockers"; + dir = 1; + name = "prison camera"; + network = list("ss13","prison") + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bPN" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/status_display/ai{ + pixel_x = 32 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/turf/open/floor/plasteel, +/area/security/processing) +"bPO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/watertank, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard/aft) +"bPP" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bPQ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/light/small, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/junction/yjunction{ + dir = 1 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"bPR" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/security/warden) +"bPS" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bPT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-02"; + pixel_y = 3 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -26 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"bPU" = ( +/obj/structure/closet/secure_closet/detective, +/obj/machinery/power/apc{ + areastring = "/area/security/detectives_office"; + dir = 8; + name = "Detective APC"; + pixel_x = -26 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = 30 + }, +/turf/open/floor/wood, +/area/security/detectives_office) +"bPV" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bPW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/wood, +/area/security/detectives_office) +"bPX" = ( +/obj/machinery/computer/med_data, +/obj/machinery/newscaster/security_unit{ + pixel_y = 30 + }, +/turf/open/floor/wood, +/area/security/detectives_office) +"bPY" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/red, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bPZ" = ( +/obj/machinery/power/apc{ + areastring = "/area/storage/tech"; + dir = 8; + name = "Tech Storage APC"; + pixel_x = -27 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/engine, +/area/storage/tech) +"bQa" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/hallway/secondary/entry) +"bQb" = ( +/obj/structure/flora/rock, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/space/nearstation) +"bQc" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/effect/decal/remains/xeno, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/space/nearstation) +"bQd" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bQe" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bQf" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bQh" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bQi" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bQj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/turf/open/floor/engine, +/area/storage/tech) +"bQk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/door/airlock/public/glass{ + name = "Engineering Hallway" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"bQl" = ( +/obj/machinery/door/airlock/maintenance{ + name = "security maintenance"; + req_access_txt = "12;63" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/aft) +"bQm" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bQn" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/storage/tech) +"bQo" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bQp" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + name = "Security RC"; + pixel_x = 30 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bQq" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/blood/gibs/limb, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/space/nearstation) +"bQr" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"bQs" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"bQt" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bQu" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Security Checkpoint"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bQv" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bQw" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bQx" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bQy" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/vending/cigarette, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"bQz" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"bQA" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"bQB" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"bQC" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"bQD" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/vacant_room/commissary) +"bQE" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/power/apc{ + areastring = "/area/janitor"; + dir = 4; + name = "Vacant Commissary APC"; + pixel_x = 27; + pixel_y = 2 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/dark, +/area/vacant_room/commissary) +"bQF" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 8 + }, +/area/hallway/primary/starboard) +"bQG" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/starboard) +"bQH" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -26 + }, +/obj/machinery/newscaster{ + pixel_y = -30 + }, +/obj/item/clipboard, +/obj/item/stack/cable_coil, +/turf/open/floor/plasteel/dark, +/area/vacant_room/commissary) +"bQI" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Tool Storage" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/storage/primary) +"bQJ" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/item/stack/packageWrap, +/obj/item/storage/secure/briefcase{ + pixel_y = 4 + }, +/obj/item/hand_labeler, +/turf/open/floor/plasteel/dark, +/area/vacant_room/commissary) +"bQK" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/chair/office{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bQL" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/door/window/southleft{ + name = "Trash Chute"; + req_one_access_txt = "26" + }, +/obj/machinery/conveyor_switch/oneway{ + dir = 4; + id = "garbage"; + name = "trash chute" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/turf_decal/loading_area, +/turf/open/floor/plasteel, +/area/janitor) +"bQM" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/aft) +"bQN" = ( +/obj/effect/decal/remains/human, +/obj/effect/decal/cleanable/blood/old, +/obj/item/pickaxe, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/space/nearstation) +"bQO" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11; + pixel_y = 8 + }, +/obj/effect/turf_decal/loading_area, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/door/window/southright{ + name = "Trash Chute"; + req_one_access_txt = "26" + }, +/obj/item/reagent_containers/glass/bucket, +/obj/item/mop, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/janitor) +"bQP" = ( +/obj/machinery/mineral/stacking_machine{ + input_dir = 2 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/janitor) +"bQQ" = ( +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bQR" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/central) +"bQS" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/central) +"bQT" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/obj/structure/closet/secure_closet/personal{ + name = "Command Locker" + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bQU" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/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) +"bQV" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bQX" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bQY" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bQZ" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bRa" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"bRb" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bRc" = ( +/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/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bRd" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bRe" = ( +/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/neutral, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/obj/machinery/camera{ + c_tag = "Long-Term Cell 2"; + dir = 1; + name = "prison camera"; + network = list("ss13","prison") + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bRf" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/red, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-02"; + pixel_y = 3 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bRg" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bRh" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light, +/obj/structure/extinguisher_cabinet{ + pixel_y = -28 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bRi" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bRj" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bRk" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/stack/rods/twentyfive, +/obj/item/wrench, +/obj/item/storage/box/lights/mixed, +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"bRl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bRm" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/item/folder/red, +/obj/item/pen, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/door/window/southleft{ + dir = 1; + name = "Security Desk"; + req_one_access_txt = "63" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit/departure_lounge) +"bRn" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/structure/sign/warning/securearea{ + pixel_x = -32 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"bRo" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 4 + }, +/obj/machinery/shower{ + dir = 4; + name = "emergency shower" + }, +/obj/structure/mirror{ + pixel_y = 28 + }, +/obj/structure/sink{ + pixel_y = 24 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bRp" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/pen, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bRq" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bRr" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/central) +"bRs" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bRt" = ( +/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 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bRu" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/tank/internals/oxygen, +/obj/item/clothing/mask/breath, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bRv" = ( +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/hallway/secondary/entry) +"bRw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bRx" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/external{ + name = "Brig Shuttle Airlock"; + req_one_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bRy" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/blood/gibs/old, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/space/nearstation) +"bRz" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bRA" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall, +/area/hallway/secondary/exit/departure_lounge) +"bRB" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bRC" = ( +/obj/structure/table/glass, +/obj/machinery/computer/med_data/laptop, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/vending/wallmed/pubby{ + pixel_x = 24 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bRD" = ( +/obj/structure/closet/secure_closet/brig{ + name = "Prisoner Locker" + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"bRE" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bRG" = ( +/obj/structure/closet/secure_closet/warden, +/obj/effect/turf_decal/delivery, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/security/warden"; + dir = 8; + name = "Brig Control APC"; + pixel_x = -26 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -24; + pixel_y = 28 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"bRH" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Holding Area"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bRI" = ( +/obj/structure/closet/secure_closet/brig{ + name = "Prisoner Locker" + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"bRJ" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bRK" = ( +/obj/structure/closet/secure_closet/brig{ + name = "Prisoner Locker" + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"bRL" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/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/vacant_room/commissary) +"bRM" = ( +/obj/machinery/computer/prisoner{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"bRN" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/warden) +"bRO" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/camera{ + c_tag = "Brig Warden's Office"; + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/security/warden) +"bRP" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/sign/poster/official/help_others{ + pixel_y = 32 + }, +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/pen, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"bRQ" = ( +/obj/docking_port/stationary{ + dir = 4; + dwidth = 11; + height = 18; + id = "emergency_home"; + name = "KiloStation emergency evac bay"; + width = 30 + }, +/turf/open/space/basic, +/area/space/nearstation) +"bRR" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"bRS" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/rack, +/obj/effect/decal/cleanable/blood/old, +/obj/item/weldingtool{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/item/clothing/head/welding{ + pixel_y = 5 + }, +/obj/item/crowbar/red, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"bRT" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/aft) +"bRU" = ( +/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{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bRV" = ( +/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{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bRW" = ( +/obj/effect/decal/cleanable/oil, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/hallway/primary/aft) +"bRX" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"bRY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bRZ" = ( +/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{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bSa" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/engine, +/area/storage/tech) +"bSb" = ( +/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{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bSc" = ( +/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/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bSd" = ( +/turf/closed/wall/rust, +/area/hallway/secondary/entry) +"bSe" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/item/folder/blue, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/item/pen, +/obj/machinery/door/window/westright{ + dir = 2; + name = "Control Desk"; + req_one_access_txt = "19" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bSf" = ( +/turf/open/floor/engine, +/area/storage/tech) +"bSg" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/eva) +"bSh" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/eva) +"bSi" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"bSj" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"bSk" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/closet/crate/rcd, +/obj/machinery/door/window/northleft{ + dir = 8; + name = "RCD Storage"; + req_access_txt = "19" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/eva) +"bSl" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/storage/primary) +"bSm" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/junction/flip, +/turf/open/floor/plasteel, +/area/storage/primary) +"bSn" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/ausbushes/fullgrass, +/obj/structure/flora/ausbushes/brflowers, +/obj/structure/flora/ausbushes/leafybush, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/grass, +/area/hallway/secondary/exit/departure_lounge) +"bSo" = ( +/obj/structure/lattice/catwalk, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/space/nearstation) +"bSp" = ( +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/fore) +"bSq" = ( +/obj/structure/disposaloutlet{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/janitor) +"bSr" = ( +/turf/closed/wall, +/area/hallway/secondary/entry) +"bSs" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Incinerator to Output" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/disposal/incinerator) +"bSu" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "garbage"; + name = "trash belt" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/janitor) +"bSv" = ( +/obj/structure/chair/stool/bar, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/aft) +"bSw" = ( +/obj/machinery/door/poddoor/shutters{ + id = "custodialwagon"; + name = "Custodial Bay" + }, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/janitor) +"bSx" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "garbage"; + name = "trash belt" + }, +/obj/structure/sign/poster/contraband/random{ + pixel_y = -32 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/janitor) +"bSz" = ( +/obj/structure/rack, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/obj/item/storage/toolbox/emergency{ + pixel_y = 4 + }, +/obj/item/wrench, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Vacant Commissary"; + dir = 8; + name = "cargo camera"; + network = list("ss13","qm") + }, +/turf/open/floor/plasteel/dark, +/area/vacant_room/commissary) +"bSA" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bSB" = ( +/obj/structure/chair/stool/bar, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"bSC" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "Arrival Shuttle Bay"; + name = "Arrival Shuttle Bay Toggle"; + pixel_x = 24; + pixel_y = 8; + req_access_txt = "19" + }, +/obj/machinery/computer/monitor{ + dir = 8; + name = "backup power monitoring console" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bSD" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "garbage"; + name = "trash belt" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/recycler, +/turf/open/floor/plasteel/dark, +/area/janitor) +"bSE" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bSF" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "garbage"; + name = "trash belt" + }, +/obj/machinery/camera{ + c_tag = "Trash Chute"; + dir = 1; + name = "service camera" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/janitor) +"bSG" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/aft) +"bSH" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal/deliveryChute{ + dir = 8 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/sign/warning/deathsposal{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/dark, +/area/janitor) +"bSI" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/rust, +/area/maintenance/starboard/aft) +"bSJ" = ( +/obj/machinery/light/small, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bSK" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bSL" = ( +/obj/structure/sign/warning/securearea{ + name = "EMERGENCY STORAGE" + }, +/turf/closed/wall, +/area/hallway/secondary/entry) +"bSM" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/external{ + name = "Brig Shuttle Airlock"; + req_one_access_txt = "63" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bSN" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-05" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bSO" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"bSP" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Security Hallway" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"bSQ" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/closed/wall, +/area/hallway/secondary/exit/departure_lounge) +"bSR" = ( +/obj/machinery/shower{ + dir = 8; + name = "emergency shower" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/box, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"bSS" = ( +/obj/machinery/button/flasher{ + id = "PCell 2"; + name = "Long-Term Cell 2 Pacifier"; + pixel_x = -24; + pixel_y = 6 + }, +/obj/machinery/button/door{ + id = "PCell 2Lock"; + name = "Long-Term Cell 2 Toggle"; + pixel_x = -24; + pixel_y = -6; + req_access_txt = "2" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bST" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bSU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/execution/education) +"bSV" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/aft) +"bSW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bSX" = ( +/obj/structure/closet/l3closet/security, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"bSY" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/public/glass{ + name = "Engineering Hallway" + }, +/obj/structure/sign/departments/engineering{ + pixel_x = 32 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"bSZ" = ( +/obj/structure/table/reinforced, +/obj/item/storage/toolbox/electrical{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/storage/toolbox/mechanical, +/obj/item/multitool{ + pixel_x = -4; + pixel_y = 3 + }, +/obj/item/flashlight, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"bTa" = ( +/obj/structure/closet/secure_closet/evidence, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"bTb" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/red, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/camera{ + c_tag = "Aft Hallway Tech Storage"; + dir = 8; + name = "aft camera" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bTc" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate, +/obj/item/storage/toolbox/emergency, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bTd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/engine, +/area/storage/tech) +"bTe" = ( +/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/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bTf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/storage/tech) +"bTg" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/crate, +/obj/item/clothing/shoes/jackboots{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/clothing/shoes/jackboots, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bTh" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"bTi" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/engine, +/area/storage/tech) +"bTj" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/construction/mining/aux_base) +"bTk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Departure Lounge" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bTl" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/warning/vacuum/external, +/turf/open/floor/plating, +/area/hallway/secondary/exit/departure_lounge) +"bTm" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/engine, +/area/storage/tech) +"bTn" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"bTo" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet, +/obj/structure/grille/broken, +/obj/item/analyzer, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bTp" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard/aft) +"bTq" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bTr" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/power/apc{ + areastring = "/area/hallway/secondary/entry"; + dir = 0; + name = "Arrivals APC"; + pixel_y = -24 + }, +/obj/structure/cable, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bTs" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-16" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bTt" = ( +/obj/effect/turf_decal/loading_area, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bTu" = ( +/obj/structure/flora/grass/jungle/b, +/obj/structure/flora/ausbushes/ywflowers, +/turf/open/floor/grass, +/area/security/prison) +"bTv" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bTw" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bTx" = ( +/obj/structure/sign/departments/security, +/turf/closed/wall/rust, +/area/hallway/secondary/exit/departure_lounge) +"bTy" = ( +/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) +"bTz" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"bTA" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/neutral, +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bTB" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/aft) +"bTC" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bTD" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bTE" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/warning/docking, +/turf/open/floor/plating, +/area/hallway/secondary/exit/departure_lounge) +"bTF" = ( +/obj/machinery/shower{ + dir = 8; + name = "emergency shower" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/box, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"bTG" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bTH" = ( +/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/bot, +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/toilet{ + pixel_y = 16 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bTI" = ( +/obj/structure/bed, +/obj/item/bedsheet/black, +/obj/machinery/flasher{ + id = "PCell 1"; + name = "Prisoner Pacifier"; + pixel_x = 24 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bTJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/processing) +"bTK" = ( +/obj/machinery/button/flasher{ + id = "PCell 3"; + name = "Long-Term Cell 3 Pacifier"; + pixel_x = -24; + pixel_y = 6 + }, +/obj/machinery/button/door{ + id = "PCell 3Lock"; + name = "Long-Term Cell 3 Toggle"; + pixel_x = -24; + pixel_y = -6; + req_access_txt = "2" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-02"; + pixel_y = 3 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bTL" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet{ + name = "security locker" + }, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/under/rank/security/skirt, +/obj/item/clothing/shoes/jackboots, +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bTM" = ( +/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/showroomfloor, +/area/security/prison) +"bTN" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/machinery/camera{ + c_tag = "Arrivals Dock"; + name = "shuttle camera" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bTO" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bTP" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/aft) +"bTQ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/chair/stool/bar{ + pixel_y = 12 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"bTR" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/stamp/denied{ + pixel_x = 8; + pixel_y = 6 + }, +/obj/item/stamp{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/pen, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/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 + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"bTT" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/security/execution/education) +"bTU" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bTW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/effect/decal/cleanable/blood/gibs/up, +/obj/structure/sign/poster/official/wtf_is_co2{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/security/execution/education) +"bTX" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/execution/education) +"bTY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/execution/education) +"bTZ" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall, +/area/hallway/secondary/entry) +"bUa" = ( +/obj/structure/bed, +/obj/item/bedsheet/black, +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood, +/area/crew_quarters/locker) +"bUb" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/execution/education) +"bUc" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bUd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"bUe" = ( +/obj/structure/sign/departments/security{ + pixel_x = 32 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"bUf" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"bUg" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/junction/yjunction{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bUh" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/pen, +/obj/item/toy/figure/assistant{ + pixel_x = 8; + pixel_y = 6 + }, +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/entry) +"bUi" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/vending/clothing, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/entry) +"bUj" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/light{ + dir = 4 + }, +/obj/item/stack/marker_beacon{ + anchored = 1; + icon_state = "markerburgundy-on"; + light_color = "#FA644B"; + light_power = 3; + light_range = 2; + name = "landing marker"; + picked_color = "Burgundy" + }, +/turf/open/floor/plating/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/hallway/secondary/entry) +"bUk" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/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) +"bUm" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Departure Lounge" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bUn" = ( +/obj/structure/flora/rock/pile, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/hallway/secondary/entry) +"bUp" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/warden) +"bUq" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/security/processing) +"bUr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/security/warden) +"bUs" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "Traffic Control"; + req_access_txt = "19" + }, +/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/exit/departure_lounge) +"bUt" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/rust, +/area/hallway/secondary/entry) +"bUu" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard/aft) +"bUv" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/obj/effect/landmark/start/depsec/engineering, +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"bUw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard/aft) +"bUx" = ( +/obj/machinery/computer/security{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bUy" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"bUz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/hallway/primary/aft) +"bUA" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/hallway/primary/aft) +"bUB" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"bUC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/engine, +/area/storage/tech) +"bUD" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/table, +/obj/item/tank/jetpack/carbondioxide{ + pixel_x = -4; + pixel_y = 6 + }, +/obj/item/tank/jetpack/carbondioxide{ + pixel_y = 2 + }, +/obj/item/wrench, +/obj/machinery/power/apc{ + areastring = "/area/ai_monitored/storage/eva"; + dir = 8; + name = "E.V.A. Storage APC"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/eva) +"bUE" = ( +/obj/structure/flora/ausbushes/lavendergrass, +/obj/structure/flora/ausbushes/sparsegrass, +/obj/structure/flora/ausbushes/ywflowers, +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/palebush, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/hallway/secondary/entry) +"bUF" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = -28 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"bUG" = ( +/obj/structure/lattice/catwalk, +/obj/item/stack/marker_beacon{ + anchored = 1; + icon_state = "markerburgundy-on"; + light_color = "#FA644B"; + light_power = 3; + light_range = 2; + name = "landing marker"; + picked_color = "Burgundy" + }, +/turf/open/space/basic, +/area/space/nearstation) +"bUH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"bUI" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"bUK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"bUL" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/space/nearstation) +"bUM" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/engine/atmos) +"bUN" = ( +/turf/open/floor/plating/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/hallway/secondary/entry) +"bUP" = ( +/obj/machinery/door/airlock/external{ + name = "Labor Camp Shuttle Airlock"; + shuttledocked = 1 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/processing) +"bUQ" = ( +/obj/machinery/light/floor, +/turf/open/floor/engine/air, +/area/engine/atmos) +"bUR" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/table, +/obj/item/stack/sheet/plasteel/fifty{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/stack/sheet/rglass{ + amount = 50 + }, +/obj/item/stack/sheet/rglass{ + amount = 50 + }, +/obj/item/clothing/shoes/magboots{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/clothing/shoes/magboots, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/eva) +"bUS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/engine/atmos) +"bUT" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"bUU" = ( +/turf/closed/wall, +/area/vacant_room/commissary) +"bUV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bUW" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space/nearstation) +"bUY" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bUZ" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bVa" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bVb" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bVc" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bVd" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bVe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard/aft) +"bVf" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Departure Lounge" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bVg" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bVh" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/sorting/mail{ + dir = 8; + name = "detective sorting disposal pipe"; + sortType = 30 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bVi" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard/aft) +"bVj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/aft) +"bVk" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard/aft) +"bVl" = ( +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bVm" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/item/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + name = "Prison Intercom (General)"; + pixel_y = -28; + prison_radio = 1 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"bVn" = ( +/obj/structure/sign/warning/docking, +/turf/closed/wall, +/area/security/processing) +"bVo" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/aft) +"bVp" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/vomit/old, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bVq" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/structure/sign/poster/contraband/random{ + pixel_x = -32 + }, +/obj/item/extinguisher{ + pixel_x = -4; + pixel_y = 8 + }, +/obj/item/tank/internals/oxygen/red{ + pixel_x = 4; + pixel_y = 2 + }, +/obj/item/clothing/mask/gas, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bVr" = ( +/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/neutral, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/blood/gibs/limb, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/machinery/camera{ + c_tag = "Long-Term Cell 3"; + dir = 1; + name = "prison camera"; + network = list("ss13","prison") + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bVs" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = -32 + }, +/obj/effect/decal/cleanable/dirt, +/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" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bVt" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bVu" = ( +/obj/structure/sign/warning/securearea{ + name = "WARNING: Station Limits" + }, +/turf/closed/wall/rust, +/area/space/nearstation) +"bVv" = ( +/turf/closed/mineral/random/high_chance, +/area/space/nearstation) +"bVw" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bVx" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/item/storage/toolbox/emergency{ + pixel_y = 5 + }, +/obj/item/crowbar/red, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bVy" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/security/execution/education) +"bVz" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/door/window/brigdoor/eastleft{ + name = "Justice Windoor"; + req_access_txt = "3" + }, +/obj/machinery/door/window/brigdoor/westright{ + name = "Justice Windoor"; + req_access_txt = "3" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "justiceshutter"; + name = "Justice Shutter" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) +"bVA" = ( +/obj/machinery/chem_master, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/light_switch{ + pixel_x = -24; + pixel_y = -24 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"bVB" = ( +/obj/effect/turf_decal/bot, +/obj/structure/tank_dispenser/oxygen, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bVC" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/showroomfloor, +/area/security/execution/education) +"bVD" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/meter, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/execution/education) +"bVE" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bVF" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/machinery/door/airlock/engineering/glass{ + name = "Laser Room"; + req_access_txt = "10" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"bVG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/crowbar/red, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"bVH" = ( +/turf/closed/wall/r_wall/rust, +/area/science/test_area) +"bVI" = ( +/obj/structure/sign/warning/securearea{ + desc = "A warning sign which reads 'BOMB RANGE"; + name = "BOMB RANGE" + }, +/turf/closed/wall/r_wall/rust, +/area/science/test_area) +"bVJ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Departure Lounge" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bVK" = ( +/obj/structure/flora/grass/jungle/b, +/obj/machinery/camera{ + c_tag = "AI Upload Garden"; + dir = 4; + name = "upload camera"; + network = list("aiupload") + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"bVL" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/plaque{ + icon_state = "L2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8; + icon_state = "intact" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"bVM" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/execution/education) +"bVN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bVO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/aft) +"bVP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/bombcloset/security, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"bVQ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/table, +/obj/item/storage/box/bodybags{ + pixel_y = 5 + }, +/obj/effect/turf_decal/bot, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"bVR" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"bVS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bVT" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"bVU" = ( +/obj/structure/table/glass, +/obj/item/storage/firstaid/regular, +/obj/item/reagent_containers/glass/bottle/epinephrine, +/obj/item/reagent_containers/glass/bottle/charcoal, +/obj/item/reagent_containers/syringe, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Security Infirmary"; + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bVV" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/chair/stool/bar{ + pixel_y = 12 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"bVW" = ( +/obj/structure/filingcabinet/chestdrawer/wheeled, +/obj/effect/turf_decal/delivery, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"bVX" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bVY" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/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/dark, +/area/security/warden) +"bVZ" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bWa" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/security/warden) +"bWb" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/hand_labeler, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"bWc" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/disposal/bin, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/detectives_office) +"bWd" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/security/detectives_office) +"bWe" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/turf/open/floor/plasteel/dark, +/area/security/detectives_office) +"bWf" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/external{ + name = "Departure Shuttle Airlock" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bWg" = ( +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/hallway/primary/aft"; + dir = 8; + name = "Aft Hallway APC"; + pixel_x = -26 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"bWh" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard/aft) +"bWi" = ( +/obj/structure/grille/broken, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/hallway/primary/aft) +"bWj" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/storage/toolbox/emergency, +/obj/item/flashlight, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"bWk" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bWl" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bWm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard/aft) +"bWn" = ( +/obj/machinery/door/airlock/external{ + name = "Common Mining Dock" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bWo" = ( +/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/delivery, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) +"bWp" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/door_timer{ + id = "Cell 6"; + name = "Cell 6"; + pixel_x = -32 + }, +/obj/structure/closet/secure_closet/brig{ + id = "Cell 6"; + name = "Cell 6 Locker" + }, +/turf/open/floor/plasteel, +/area/security/warden) +"bWq" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bWr" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"bWs" = ( +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/security/warden) +"bWt" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bWu" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/door_timer{ + id = "Cell 5"; + name = "Cell 5"; + pixel_x = -32 + }, +/obj/structure/closet/secure_closet/brig{ + id = "Cell 5"; + name = "Cell 5 Locker" + }, +/turf/open/floor/plasteel, +/area/security/warden) +"bWv" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/door_timer{ + id = "Cell 4"; + name = "Cell 4"; + pixel_x = -32 + }, +/obj/structure/closet/secure_closet/brig{ + id = "Cell 4"; + name = "Cell 4 Locker" + }, +/turf/open/floor/plasteel, +/area/security/warden) +"bWw" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/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) +"bWy" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bWz" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/item/folder/blue, +/obj/item/pen, +/obj/structure/window/reinforced, +/obj/machinery/door/window/westright{ + name = "Control Desk"; + req_one_access_txt = "19" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bWA" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bWB" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/vacuum/external{ + pixel_x = -32 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/security/execution/education) +"bWC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/security/execution/education) +"bWD" = ( +/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/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/obj/machinery/door/window/northleft{ + name = "Justice Windoor" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) +"bWE" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/valve, +/obj/machinery/door/window/northright{ + name = "Justice Windoor" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) +"bWF" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/engine, +/area/storage/tech) +"bWG" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/door_timer{ + id = "Cell 2"; + name = "Cell 2"; + pixel_x = -32 + }, +/obj/structure/closet/secure_closet/brig{ + id = "Cell 2"; + name = "Cell 2 Locker" + }, +/turf/open/floor/plasteel, +/area/security/warden) +"bWH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/engine, +/area/storage/tech) +"bWI" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/door_timer{ + id = "Cell 1"; + name = "Cell 1"; + pixel_x = -32 + }, +/obj/structure/closet/secure_closet/brig{ + id = "Cell 1"; + name = "Cell 1 Locker" + }, +/turf/open/floor/plasteel, +/area/security/warden) +"bWJ" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/obj/machinery/camera{ + c_tag = "Secure Tech Storage"; + name = "engineering camera"; + network = list("ss13","engine") + }, +/turf/open/floor/engine, +/area/storage/tech) +"bWK" = ( +/obj/structure/girder/displaced, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bWL" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"bWM" = ( +/obj/structure/sign/departments/cargo, +/turf/closed/wall/rust, +/area/hallway/secondary/exit/departure_lounge) +"bWN" = ( +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/security/warden) +"bWO" = ( +/obj/machinery/status_display/ai, +/turf/closed/wall, +/area/hallway/secondary/exit/departure_lounge) +"bWP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/aft) +"bWQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/aft) +"bWR" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/aft) +"bWS" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"bWU" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + 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 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bWV" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/aft) +"bWW" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bWX" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bWY" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bWZ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bXa" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-03" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bXb" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bXc" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bXd" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/external{ + name = "Arrival Shuttle Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/entry) +"bXe" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/external{ + name = "Departure Shuttle Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bXf" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/closet/crate, +/obj/machinery/light, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bXg" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/pen, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -26 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bXh" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "justiceshutter"; + name = "Justice Shutter" + }, +/turf/open/floor/plating, +/area/security/execution/education) +"bXi" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/chair/office, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bXj" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard/aft) +"bXk" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bXl" = ( +/obj/machinery/vending/cola/random, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/entry) +"bXm" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, +/turf/open/floor/plasteel, +/area/security/warden) +"bXn" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bXo" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bXp" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/warden) +"bXq" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/warden) +"bXr" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/security/warden) +"bXs" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/status_display/supply{ + pixel_x = -32 + }, +/obj/machinery/computer/med_data{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bXt" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bXu" = ( +/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/effect/turf_decal/box/corners{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bXv" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bXw" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-05" + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bXx" = ( +/obj/structure/sign/departments/evac, +/turf/closed/wall, +/area/hallway/secondary/exit/departure_lounge) +"bXy" = ( +/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/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bXz" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bXA" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bXB" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bXC" = ( +/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{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bXD" = ( +/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/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bXE" = ( +/obj/effect/turf_decal/box/corners, +/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, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bXF" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/obj/machinery/camera{ + c_tag = "Traffic Control"; + dir = 4; + name = "shuttle camera" + }, +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/hand_labeler, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bXG" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/emcloset/anchored, +/obj/structure/sign/warning/xeno_mining{ + pixel_x = -32 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"bXH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/security/prison) +"bXI" = ( +/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/atmospherics/pipe/manifold/general/visible, +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/item/tank/internals/oxygen/red{ + pixel_x = 4 + }, +/obj/item/tank/internals/oxygen/red{ + pixel_x = -4 + }, +/obj/item/wrench, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) +"bXJ" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/caution/stand_clear, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"bXK" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/obj/machinery/space_heater, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/light, +/obj/structure/sign/poster/contraband/fun_police{ + pixel_y = -32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) +"bXL" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Departure Lounge" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bXM" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/structure/extinguisher_cabinet{ + pixel_x = -24 + }, +/obj/structure/sign/warning/fire{ + pixel_y = -32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) +"bXN" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/item/folder/yellow, +/obj/item/pen, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/door/window/westleft{ + dir = 2; + name = "Cargo Desk"; + req_access_txt = "50" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit/departure_lounge) +"bXO" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/main) +"bXP" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/security/main) +"bXQ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/structure/table, +/obj/item/storage/box/donkpockets{ + pixel_y = 5 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"bXR" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/dark, +/area/security/main) +"bXS" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-02"; + pixel_y = 3 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"bXT" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"bXU" = ( +/turf/open/floor/plasteel, +/area/security/brig) +"bXV" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/item/folder/red, +/obj/item/pen, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/door/window/southleft{ + name = "Security Desk"; + req_one_access_txt = "63" + }, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"bXW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"bXX" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bXY" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/obj/machinery/camera{ + c_tag = "Brig Entrance" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"bXZ" = ( +/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/security/brig) +"bYa" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/security/brig) +"bYb" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/sign/departments/security{ + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"bYc" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bYd" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Departure Lounge" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bYe" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bYf" = ( +/turf/closed/mineral/random/labormineral, +/area/maintenance/starboard/aft) +"bYg" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Arrivals Dock" + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/entry) +"bYh" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/aft) +"bYi" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "Traffic Control"; + req_access_txt = "19" + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bYj" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"bYk" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bYl" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bYm" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/security/brig) +"bYn" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bYo" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bYp" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/sign/warning/securearea{ + name = "EMERGENCY STORAGE"; + pixel_y = 32 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bYq" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/aft) +"bYr" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bYs" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/aft) +"bYt" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/aft) +"bYu" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/table, +/obj/item/storage/box/lights/mixed{ + pixel_y = 5 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"bYv" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bYw" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bYx" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bYy" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/table, +/obj/item/crowbar, +/obj/item/wrench, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"bYz" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/pen, +/obj/item/toy/figure/ce{ + pixel_x = 8; + pixel_y = 6 + }, +/obj/machinery/button/door{ + id = "atmos"; + name = "Atmospherics Lockdown"; + pixel_x = -24; + pixel_y = 6; + req_access_txt = "24" + }, +/obj/machinery/button/door{ + desc = "A remote control-switch for the engineering security doors."; + id = "Engineering"; + name = "Engineering Lockdown"; + pixel_x = -24; + pixel_y = -6; + req_access_txt = "10" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"bYA" = ( +/obj/structure/chair/office/light, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/landmark/start/chief_engineer, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"bYB" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"bYC" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-05" + }, +/obj/structure/noticeboard{ + dir = 8; + pixel_x = 32 + }, +/obj/item/paper/monitorkey, +/obj/machinery/camera{ + c_tag = "Chief Engineer's Office"; + dir = 8; + name = "engineering camera"; + network = list("ss13","engine") + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"bYD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/aft) +"bYE" = ( +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bYG" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light, +/obj/machinery/status_display/evac{ + pixel_y = -32 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bYI" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/engineering/glass{ + name = "Laser Room"; + req_access_txt = "10" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"bYJ" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -30 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/main) +"bYK" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/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/effect/landmark/start/security_officer, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/main) +"bYL" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/start/security_officer, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/main) +"bYM" = ( +/obj/machinery/door/airlock/engineering{ + name = "Starboard Quarter Solar Access"; + req_access_txt = "10" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/solars/starboard/aft) +"bYN" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/start/security_officer, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/main) +"bYO" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/main) +"bYP" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/security/main) +"bYQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"bYR" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"bYS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/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 = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"bYT" = ( +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/security/prison"; + dir = 1; + name = "Prison Wing APC"; + pixel_x = 1; + pixel_y = 24 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bYU" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"bYV" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/goonplaque, +/area/security/brig) +"bYW" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bYX" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bYY" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/sign/warning/electricshock{ + pixel_y = -32 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bYZ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-10" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bZa" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bZb" = ( +/obj/machinery/button/door{ + id = "evashutter"; + name = "E.V.A. Storage Shutter Toggle"; + pixel_x = 8; + pixel_y = -24; + req_access_txt = "19" + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bZc" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bZd" = ( +/obj/effect/decal/cleanable/oil/slippery, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/aft) +"bZe" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/aft) +"bZf" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"bZg" = ( +/obj/machinery/suit_storage_unit/ce, +/obj/effect/turf_decal/delivery, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"bZh" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/table, +/obj/item/storage/box/hug/medical{ + pixel_y = 4 + }, +/obj/item/crowbar, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/entry) +"bZi" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/security{ + name = "Prison Wing"; + req_access_txt = "2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"bZj" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bZk" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bZl" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/hallway/primary/central"; + dir = 1; + name = "Central Primary Hallway APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bZm" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bZn" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bZo" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/door/poddoor/preopen{ + id = "prisonblast"; + name = "Prison Blast Door" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"bZp" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bZq" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/suit_storage_unit/engine, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"bZr" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bZs" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/starboard) +"bZt" = ( +/obj/machinery/suit_storage_unit/engine, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"bZu" = ( +/obj/machinery/suit_storage_unit/engine, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"bZv" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bZw" = ( +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/light/small, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bZx" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/starboard) +"bZy" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/camera{ + c_tag = "Starboard Hallway Planters"; + dir = 4; + name = "starboard camera" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bZz" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/radio/intercom{ + pixel_x = -28; + pixel_y = 22 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/primary/starboard) +"bZA" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bZB" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/starboard) +"bZC" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining/glass{ + name = "Cargo Office"; + req_one_access_txt = "31;48" + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bZD" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bZE" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/starboard) +"bZF" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/table, +/obj/item/storage/backpack{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/storage/backpack, +/obj/machinery/power/apc{ + areastring = "/area/hallway/primary/starboard"; + dir = 4; + name = "Starboard Hallway APC"; + pixel_x = 26 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/starboard) +"bZG" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"bZH" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 8 + }, +/area/hallway/primary/port) +"bZI" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/status_display/ai{ + pixel_x = -32; + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/primary/starboard) +"bZJ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bZK" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/starboard) +"bZL" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Departures Cargo Dock"; + dir = 1; + name = "shuttle camera" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bZM" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bZN" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bZO" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=S CPH"; + dir = 8; + location = "SE CPH"; + name = "Patrol navbeacon SE" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bZP" = ( +/obj/structure/cable, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"bZQ" = ( +/obj/structure/closet/l3closet/janitor, +/obj/structure/window/reinforced, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -26 + }, +/obj/item/grenade/clusterbuster/cleaner, +/turf/open/floor/plasteel/dark, +/area/janitor) +"bZR" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bZS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bZT" = ( +/obj/structure/sign/warning/electricshock{ + pixel_y = -32 + }, +/obj/structure/grille, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/aft) +"bZU" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/obj/machinery/light_switch{ + pixel_x = 24; + pixel_y = -24 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/security/main) +"bZV" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/light, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/security/brig) +"bZW" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Starboard Hallway Departure Checkpoint"; + dir = 4; + name = "starboard camera" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bZX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/junction/flip, +/turf/open/floor/plasteel, +/area/security/brig) +"bZY" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/security/brig) +"bZZ" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"caa" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/light/small, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/security/brig) +"cab" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cac" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/camera{ + c_tag = "Aft Hallway Security Firelock"; + dir = 1; + name = "aft camera" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cad" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"cae" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"caf" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cag" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/space_heater, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"cah" = ( +/obj/structure/flora/rock/pile, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"cai" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"caj" = ( +/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/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cak" = ( +/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/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"cal" = ( +/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{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"cam" = ( +/obj/structure/chair/office/light{ + dir = 1; + pixel_y = 3 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"can" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/port/fore) +"cao" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/port/fore) +"cap" = ( +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/port/fore) +"caq" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/obj/structure/sign/warning/fire{ + pixel_x = 32 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/storage/primary) +"car" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"cas" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 8 + }, +/obj/item/clipboard, +/obj/item/airlock_painter{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/airlock_painter, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"cat" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cau" = ( +/obj/effect/turf_decal/tile/neutral, +/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 = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cav" = ( +/obj/structure/sign/poster/contraband/random, +/turf/closed/wall, +/area/hallway/secondary/entry) +"caw" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cax" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cay" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/janitor) +"caz" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"caA" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/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/tile/red{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"caB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"caC" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"caD" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"caE" = ( +/obj/machinery/vending/wardrobe/jani_wardrobe, +/obj/effect/turf_decal/bot, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/camera{ + c_tag = "Custodial Closet"; + dir = 4; + name = "service camera" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/janitor) +"caF" = ( +/obj/structure/window/reinforced, +/obj/effect/turf_decal/delivery, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/janitor) +"caG" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/effect/landmark/start/janitor, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/janitor) +"caH" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/janitor) +"caI" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"caJ" = ( +/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/poddoor/shutters/preopen{ + id = "ceprivate"; + name = "Chief Engineer's Privacy Shutters" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"caK" = ( +/obj/machinery/door/poddoor{ + id = "atmosventco2"; + name = "Emergency CO2 Chamber Vent" + }, +/turf/open/floor/engine/vacuum, +/area/engine/atmos) +"caL" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/start/chief_engineer, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"caN" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/warning/vacuum/external, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"caO" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"caP" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"caQ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"caR" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/storage/primary) +"caS" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"caT" = ( +/turf/closed/wall/r_wall, +/area/science/test_area) +"caV" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/aft) +"caW" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"caX" = ( +/obj/machinery/hydroponics/soil, +/obj/machinery/status_display/evac{ + pixel_x = -32; + pixel_y = -32 + }, +/turf/open/floor/grass, +/area/security/prison) +"caY" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"caZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/aft) +"cba" = ( +/obj/machinery/door/airlock/grunge{ + name = "Service Production"; + req_one_access_txt = "25;26;35;28;22;37;46;38" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/central) +"cbb" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/sign/plaques/golden{ + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/security/main) +"cbc" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cbd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/aft) +"cbe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/aft) +"cbf" = ( +/obj/machinery/door/poddoor{ + id = "toxinsdriver"; + name = "Toxins Launcher Bay Door" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/mixing) +"cbg" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cbh" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/table, +/obj/effect/decal/cleanable/blood/old, +/obj/item/clothing/gloves/color/black, +/obj/item/wrench, +/obj/structure/sign/warning/nosmoking{ + pixel_x = 30 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"cbi" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cbj" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"cbk" = ( +/obj/structure/sign/poster/contraband/random, +/turf/closed/wall, +/area/maintenance/starboard) +"cbl" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cbm" = ( +/obj/structure/sign/warning/vacuum/external, +/turf/closed/wall, +/area/maintenance/starboard) +"cbn" = ( +/obj/machinery/door/airlock/maintenance{ + name = "research lab maintenance"; + req_one_access_txt = "7;29" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard) +"cbo" = ( +/obj/structure/closet/secure_closet/engineering_chief, +/obj/effect/turf_decal/delivery, +/obj/item/gun/energy/e_gun/mini, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"cbr" = ( +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/obj/machinery/cryopod{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/locker) +"cbs" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"cbt" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"cbu" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cbv" = ( +/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/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"cbw" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 8 + }, +/area/hallway/primary/port) +"cbx" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/status_display/ai{ + pixel_x = -32; + pixel_y = -32 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 8 + }, +/area/hallway/primary/port) +"cby" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"cbz" = ( +/obj/effect/decal/cleanable/dirt, +/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/light/small, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"cbA" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"cbB" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/radio/intercom{ + pixel_x = 28; + pixel_y = -28 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cbC" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"cbD" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"cbE" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/port) +"cbF" = ( +/obj/machinery/mech_bay_recharge_port{ + dir = 2 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cbG" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/radio/intercom{ + pixel_x = -28; + pixel_y = -28 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 8 + }, +/area/hallway/primary/port) +"cbH" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"cbI" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/port) +"cbJ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 8 + }, +/area/hallway/primary/port) +"cbM" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 8 + }, +/area/hallway/primary/port) +"cbN" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"cbO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/aft) +"cbP" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 8 + }, +/area/hallway/primary/port) +"cbQ" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/sign/warning/electricshock{ + pixel_x = -32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/box/lights/mixed, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cbR" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/sign/poster/official/random{ + pixel_x = -32; + pixel_y = -32 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 8 + }, +/area/hallway/primary/port) +"cbS" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"cbT" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/security/main) +"cbU" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/science/test_area) +"cbV" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/security/main) +"cbW" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/storage/toolbox/emergency, +/obj/item/wrench, +/obj/item/radio/intercom{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"cbX" = ( +/obj/item/target/clown, +/obj/structure/window/reinforced, +/obj/effect/turf_decal/delivery, +/turf/open/floor/engine/vacuum, +/area/science/test_area) +"cbY" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/door/airlock/grunge{ + name = "Custodial Closet"; + req_access_txt = "26" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/janitor) +"cbZ" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"cca" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/storage/firstaid/regular, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"ccb" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"ccc" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"ccd" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"cce" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/item/beacon, +/turf/open/floor/plasteel/dark, +/area/bridge) +"ccf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"ccg" = ( +/obj/docking_port/stationary/random{ + dir = 8; + id = "pod_lavaland2"; + name = "lavaland" + }, +/turf/open/space, +/area/space/nearstation) +"cch" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cci" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/plaque{ + icon_state = "L4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8; + icon_state = "intact" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"ccj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/chair/office{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"cck" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"ccl" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"ccm" = ( +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"ccn" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cco" = ( +/obj/structure/sign/warning/securearea{ + desc = "A warning sign which reads 'BOMB RANGE"; + name = "BOMB RANGE" + }, +/turf/closed/wall/r_wall, +/area/science/test_area) +"ccp" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/break_room) +"ccq" = ( +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/engine/break_room) +"ccr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"ccs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"cct" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/break_room) +"ccu" = ( +/obj/effect/decal/cleanable/dirt, +/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/structure/grille/broken, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"ccv" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall, +/area/security/main) +"ccw" = ( +/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/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/break_room) +"ccx" = ( +/turf/open/floor/engine/vacuum, +/area/science/test_area) +"ccy" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-05" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"ccz" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/closed/mineral/random/labormineral, +/area/space/nearstation) +"ccB" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/firecloset, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/aft) +"ccC" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"ccE" = ( +/obj/item/beacon, +/obj/effect/turf_decal/box, +/turf/open/floor/engine/vacuum, +/area/science/test_area) +"ccF" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/engine/vacuum, +/area/science/test_area) +"ccG" = ( +/turf/open/floor/plating/airless, +/area/solar/port/aft) +"ccH" = ( +/turf/closed/indestructible/opshuttle, +/area/science/test_area) +"ccI" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/landmark/xeno_spawn, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"ccJ" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/aft) +"ccK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"ccL" = ( +/obj/structure/grille, +/obj/structure/barricade/wooden, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"ccM" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/security/main) +"ccN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/sorting/mail{ + dir = 8; + name = "security disposal pipe"; + sortType = 7 + }, +/turf/open/floor/plasteel, +/area/security/main) +"ccO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"ccP" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"ccQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"ccR" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/beacon, +/turf/open/floor/plasteel, +/area/security/courtroom) +"ccS" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"ccT" = ( +/obj/machinery/door/poddoor{ + id = "atmosventplasma"; + name = "Emergency Plasma Chamber Vent" + }, +/turf/open/floor/engine/vacuum, +/area/engine/atmos) +"ccU" = ( +/obj/machinery/telecomms/processor/preset_four, +/turf/open/floor/circuit/green/telecomms/mainframe, +/area/tcommsat/server) +"ccV" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"ccW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Locker Room" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/locker) +"ccX" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space/basic, +/area/space/nearstation) +"ccY" = ( +/obj/structure/transit_tube/curved, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"ccZ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/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/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"cda" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/newscaster/security_unit{ + pixel_x = 30 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"cdb" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cdc" = ( +/turf/closed/wall, +/area/ai_monitored/turret_protected/ai_upload) +"cdd" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"cde" = ( +/obj/machinery/computer/monitor{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/status_display/shuttle{ + pixel_x = 32 + }, +/obj/machinery/computer/security/telescreen/minisat{ + pixel_y = 28 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/satellite) +"cdf" = ( +/obj/machinery/computer/secure_data{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"cdg" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/plaque{ + icon_state = "L6" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8; + icon_state = "intact" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"cdh" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"cdi" = ( +/obj/structure/flora/grass/jungle/b, +/obj/structure/flora/ausbushes/sparsegrass, +/turf/open/floor/grass, +/area/security/prison) +"cdj" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/beacon, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cdk" = ( +/obj/structure/lattice/catwalk, +/obj/structure/transit_tube/horizontal{ + dir = 1 + }, +/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/plating/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/fore) +"cdl" = ( +/obj/structure/transit_tube/curved/flipped, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"cdm" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/aft) +"cdn" = ( +/obj/machinery/telecomms/server/presets/command, +/turf/open/floor/circuit/green/telecomms/mainframe, +/area/tcommsat/server) +"cdo" = ( +/obj/machinery/telecomms/server/presets/security, +/turf/open/floor/circuit/green/telecomms/mainframe, +/area/tcommsat/server) +"cdp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cdq" = ( +/obj/machinery/telecomms/hub/preset, +/turf/open/floor/circuit/green/telecomms/mainframe, +/area/tcommsat/server) +"cdr" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/aft) +"cds" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/space/nearstation) +"cdt" = ( +/obj/structure/transit_tube/curved/flipped{ + dir = 1 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"cdu" = ( +/obj/structure/transit_tube/curved{ + dir = 1 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"cdv" = ( +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/effect/turf_decal/box, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/aisat/foyer) +"cdw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cdx" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/port/fore) +"cdy" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cdz" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/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/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cdA" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cdB" = ( +/obj/machinery/telecomms/server/presets/science, +/turf/open/floor/circuit/green/telecomms/mainframe, +/area/tcommsat/server) +"cdC" = ( +/obj/machinery/telecomms/server/presets/medical, +/turf/open/floor/circuit/green/telecomms/mainframe, +/area/tcommsat/server) +"cdD" = ( +/turf/closed/wall/r_wall, +/area/security/nuke_storage) +"cdE" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cdF" = ( +/obj/machinery/rnd/production/protolathe/department/engineering, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cdG" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/port/aft"; + dir = 1; + name = "Port Quarter Maintenance APC"; + pixel_y = 24 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/aft) +"cdH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai) +"cdJ" = ( +/obj/machinery/telecomms/server/presets/common, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/circuit/green/telecomms/mainframe, +/area/tcommsat/server) +"cdK" = ( +/obj/machinery/telecomms/server/presets/engineering, +/turf/open/floor/circuit/green/telecomms/mainframe, +/area/tcommsat/server) +"cdL" = ( +/obj/machinery/ntnet_relay, +/turf/open/floor/circuit/green/telecomms/mainframe, +/area/tcommsat/server) +"cdM" = ( +/obj/machinery/telecomms/server/presets/service, +/turf/open/floor/circuit/green/telecomms/mainframe, +/area/tcommsat/server) +"cdN" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/closet/secure_closet/engineering_electrical, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cdO" = ( +/obj/machinery/computer/mech_bay_power_console{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "sparemech"; + name = "Abandoned Mech Bay Toggle"; + pixel_x = -24; + pixel_y = -24 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cdP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cdQ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cdR" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"cdS" = ( +/obj/structure/sign/warning/securearea, +/obj/item/multitool, +/turf/closed/wall/r_wall, +/area/security/nuke_storage) +"cdT" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/security/main) +"cdU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"cdV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai) +"cdW" = ( +/obj/machinery/turretid{ + icon_state = "control_stun"; + name = "AI Chamber turret control"; + pixel_x = 3; + pixel_y = 28 + }, +/obj/machinery/door/window{ + base_state = "leftsecure"; + dir = 8; + icon_state = "leftsecure"; + name = "Primary AI Core Access"; + obj_integrity = 300; + req_access_txt = "16" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "AI Core shutters"; + name = "AI Core Shutter" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai) +"cdX" = ( +/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/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"cdY" = ( +/turf/closed/wall, +/area/ai_monitored/turret_protected/ai) +"cdZ" = ( +/turf/closed/wall/rust, +/area/ai_monitored/turret_protected/ai) +"cea" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"ceb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"cec" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Locker Room" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/locker) +"ced" = ( +/obj/item/radio/intercom{ + freerange = 1; + name = "Common Channel"; + pixel_x = -28; + pixel_y = 6 + }, +/obj/item/radio/intercom{ + freerange = 1; + listening = 0; + name = "Custom Channel"; + pixel_y = 22 + }, +/obj/item/radio/intercom{ + freerange = 1; + frequency = 1447; + name = "Private Channel"; + pixel_x = 28; + pixel_y = 6 + }, +/obj/effect/landmark/start/ai, +/obj/machinery/button/door{ + id = "AI Core shutters"; + name = "AI Core Shutters Toggle"; + pixel_x = 24; + pixel_y = 24; + req_access_txt = "16" + }, +/obj/machinery/button/door{ + id = "AI Chamber entrance shutters"; + name = "AI Chamber Lockdown"; + pixel_x = -24; + pixel_y = 24; + req_access_txt = "16" + }, +/turf/open/floor/circuit/red, +/area/ai_monitored/turret_protected/ai) +"cee" = ( +/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/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-02"; + pixel_y = 3 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"cef" = ( +/obj/effect/landmark/start/ai/secondary, +/obj/item/radio/intercom{ + freerange = 1; + listening = 0; + name = "Custom Channel"; + pixel_x = -10; + pixel_y = 22 + }, +/obj/item/radio/intercom{ + freerange = 1; + name = "Common Channel"; + pixel_x = -27 + }, +/obj/item/radio/intercom{ + freerange = 1; + frequency = 1447; + name = "Private Channel"; + pixel_x = -10; + pixel_y = -25 + }, +/obj/machinery/door/window{ + base_state = "rightsecure"; + dir = 4; + icon_state = "rightsecure"; + layer = 4.1; + name = "Secondary AI Core Access"; + obj_integrity = 300; + pixel_x = 4; + req_access_txt = "16" + }, +/turf/open/floor/circuit/red, +/area/ai_monitored/turret_protected/ai) +"ceg" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"ceh" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"cei" = ( +/obj/machinery/power/apc{ + areastring = "/area/ai_monitored/turret_protected/ai"; + dir = 1; + name = "AI Chamber APC"; + pixel_y = 23 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai) +"cej" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"cek" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"cel" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai) +"cem" = ( +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/obj/effect/turf_decal/box/red, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai) +"cen" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/aft) +"ceo" = ( +/obj/effect/landmark/start/ai/secondary, +/obj/item/radio/intercom{ + freerange = 1; + listening = 0; + name = "Custom Channel"; + pixel_x = 10; + pixel_y = 22 + }, +/obj/item/radio/intercom{ + freerange = 1; + name = "Common Channel"; + pixel_x = 27 + }, +/obj/item/radio/intercom{ + freerange = 1; + frequency = 1447; + name = "Private Channel"; + pixel_x = 10; + pixel_y = -25 + }, +/obj/machinery/door/window{ + base_state = "leftsecure"; + dir = 8; + icon_state = "leftsecure"; + layer = 4.1; + name = "Tertiary AI Core Access"; + obj_integrity = 300; + pixel_x = -3; + req_access_txt = "16" + }, +/turf/open/floor/circuit/red, +/area/ai_monitored/turret_protected/ai) +"cep" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"ceq" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "AI Core shutters"; + name = "AI Core Shutter" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai) +"cer" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/blue, +/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/engine/break_room) +"ces" = ( +/obj/machinery/flasher{ + id = "AI"; + name = "Meatbag Pacifier"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai) +"cet" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-03" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/camera{ + c_tag = "Engineering Foyer"; + dir = 4; + name = "engineering camera"; + network = list("ss13","engine") + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"ceu" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cev" = ( +/obj/structure/transit_tube/diagonal/topleft, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"cew" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/turf/open/floor/circuit/red/telecomms, +/area/tcommsat/server) +"cex" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cey" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden/layer1{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cez" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/status_display/ai{ + pixel_x = -32 + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai) +"ceA" = ( +/obj/machinery/door/airlock/external{ + name = "Satellite External Airlock"; + req_one_access_txt = "32;19" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/atmos) +"ceB" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai) +"ceC" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"ceD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai) +"ceE" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/status_display/ai{ + pixel_x = 32 + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai) +"ceF" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat/atmos) +"ceG" = ( +/turf/closed/wall/r_wall/rust, +/area/ai_monitored/turret_protected/aisat/atmos) +"ceH" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/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/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"ceI" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"ceJ" = ( +/obj/machinery/telecomms/server/presets/supply, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/circuit/green/telecomms/mainframe, +/area/tcommsat/server) +"ceK" = ( +/obj/structure/table, +/obj/machinery/power/apc{ + areastring = "/area/security/nuke_storage"; + dir = 1; + name = "Vault APC"; + pixel_y = 25 + }, +/obj/item/folder/blue{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/folder/documents, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/security/nuke_storage) +"ceL" = ( +/obj/machinery/computer/bank_machine, +/obj/structure/sign/warning/securearea{ + pixel_y = 32 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/security/nuke_storage) +"ceM" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/table, +/obj/item/clipboard, +/obj/item/geiger_counter{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/toy/figure/ninja{ + pixel_x = 8; + pixel_y = 6 + }, +/obj/item/pen, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/security/nuke_storage) +"ceN" = ( +/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{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard/aft) +"ceO" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"ceP" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/start/station_engineer, +/turf/open/floor/plasteel, +/area/engine/break_room) +"ceQ" = ( +/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" + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"ceR" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/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" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ceS" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/landmark/start/station_engineer, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ceT" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ceU" = ( +/obj/structure/lattice/catwalk, +/obj/item/stack/marker_beacon{ + anchored = 1; + icon_state = "markerburgundy-on"; + light_color = "#FA644B"; + light_power = 3; + light_range = 2; + name = "landing marker"; + picked_color = "Burgundy" + }, +/turf/open/floor/plating/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/hallway/secondary/entry) +"ceV" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ceW" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/hallway/secondary/entry) +"ceX" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/hallway/secondary/entry) +"ceY" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai) +"ceZ" = ( +/obj/structure/sign/departments/security, +/turf/closed/wall/r_wall, +/area/security/nuke_storage) +"cfa" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/fore) +"cfb" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/rnd/production/techfab/department/security, +/turf/open/floor/plasteel/dark, +/area/security/main) +"cfc" = ( +/obj/machinery/telecomms/processor/preset_one, +/turf/open/floor/circuit/green/telecomms/mainframe, +/area/tcommsat/server) +"cfd" = ( +/obj/machinery/telecomms/broadcaster/preset_left, +/turf/open/floor/circuit/green/telecomms/mainframe, +/area/tcommsat/server) +"cfe" = ( +/obj/machinery/telecomms/bus/preset_two, +/turf/open/floor/circuit/green/telecomms/mainframe, +/area/tcommsat/server) +"cff" = ( +/obj/machinery/telecomms/bus/preset_three, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/circuit/green/telecomms/mainframe, +/area/tcommsat/server) +"cfg" = ( +/obj/machinery/telecomms/broadcaster/preset_right, +/turf/open/floor/circuit/green/telecomms/mainframe, +/area/tcommsat/server) +"cfh" = ( +/obj/machinery/telecomms/processor/preset_three, +/turf/open/floor/circuit/green/telecomms/mainframe, +/area/tcommsat/server) +"cfi" = ( +/obj/effect/decal/cleanable/dirt, +/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/structure/grille/broken, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard) +"cfj" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"cfk" = ( +/obj/machinery/nuclearbomb/selfdestruct, +/obj/effect/turf_decal/stripes/box, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/security/nuke_storage) +"cfl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"cfm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-02"; + pixel_y = 3 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"cfn" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"cfo" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cfp" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cfq" = ( +/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/neutral, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cfr" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-05" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cfs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cft" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"cfu" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/hatch{ + name = "Satellite Antechamber"; + req_one_access_txt = "32;19" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"cfv" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cfw" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/effect/turf_decal/delivery, +/obj/machinery/camera{ + c_tag = "Atmospherics Desk"; + dir = 1; + name = "atmospherics camera"; + network = list("ss13","engine") + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cfx" = ( +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/light, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cfy" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cfz" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "Engineering External Airlock"; + req_access_txt = "10" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cfA" = ( +/obj/machinery/telecomms/bus/preset_one, +/turf/open/floor/circuit/green/telecomms/mainframe, +/area/tcommsat/server) +"cfB" = ( +/obj/machinery/telecomms/message_server, +/turf/open/floor/circuit/green/telecomms/mainframe, +/area/tcommsat/server) +"cfC" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/tcommsat/server) +"cfD" = ( +/obj/machinery/door/poddoor/shutters{ + id = "custodialwagon"; + name = "Custodial Bay" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/janitor) +"cfE" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/tcommsat/server) +"cfF" = ( +/obj/machinery/blackbox_recorder, +/turf/open/floor/circuit/green/telecomms/mainframe, +/area/tcommsat/server) +"cfG" = ( +/obj/machinery/telecomms/bus/preset_four, +/turf/open/floor/circuit/green/telecomms/mainframe, +/area/tcommsat/server) +"cfH" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/red, +/obj/structure/closet/secure_closet/engineering_welding, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cfI" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cfJ" = ( +/obj/structure/sign/warning/nosmoking{ + pixel_x = 30 + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai) +"cfK" = ( +/obj/machinery/door/window{ + base_state = "rightsecure"; + dir = 4; + icon_state = "rightsecure"; + name = "Primary AI Core Access"; + obj_integrity = 300; + req_access_txt = "16" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "AI Core shutters"; + name = "AI Core Shutter" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/light_switch{ + pixel_x = 6; + pixel_y = 24 + }, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/ai) +"cfL" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"cfM" = ( +/turf/closed/wall/r_wall, +/area/tcommsat/computer) +"cfN" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"cfO" = ( +/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/tcommsat/computer) +"cfP" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/tcommsat/computer) +"cfQ" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/landmark/start/station_engineer, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cfR" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/tcommsat/computer) +"cfS" = ( +/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/tcommsat/computer) +"cfT" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cfW" = ( +/obj/structure/sign/warning/vacuum/external, +/turf/closed/wall, +/area/space/nearstation) +"cfY" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/storage/satellite) +"cga" = ( +/turf/closed/wall/r_wall/rust, +/area/ai_monitored/storage/satellite) +"cgb" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/emcloset, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/aft) +"cgd" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/grunge{ + name = "Custodial Closet"; + req_access_txt = "26" + }, +/turf/open/floor/plasteel/dark, +/area/janitor) +"cge" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall, +/area/tcommsat/computer) +"cgf" = ( +/obj/machinery/computer/telecomms/server, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"cgg" = ( +/obj/structure/sign/warning/docking, +/turf/closed/wall/rust, +/area/hallway/secondary/entry) +"cgi" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/dark/corner{ + dir = 8 + }, +/area/hallway/primary/fore) +"cgj" = ( +/obj/machinery/door/airlock/external{ + name = "Satellite External Airlock"; + req_one_access_txt = "32;19" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/atmos) +"cgl" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cgm" = ( +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/wood, +/area/maintenance/port) +"cgn" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cgo" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light_switch{ + pixel_x = 24 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/security/main) +"cgp" = ( +/obj/structure/closet/secure_closet/hos, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hos) +"cgq" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 8 + }, +/area/hallway/primary/fore) +"cgr" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/structure/table, +/obj/machinery/recharger, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hos) +"cgs" = ( +/obj/machinery/suit_storage_unit/hos, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/obj/item/storage/secure/safe/HoS{ + pixel_x = 36; + pixel_y = 28 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hos) +"cgt" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ai_monitored/security/armory) +"cgu" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/tcommsat/computer) +"cgv" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/showroomfloor, +/area/ai_monitored/security/armory) +"cgw" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot, +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"cgx" = ( +/obj/structure/sign/warning/docking, +/turf/closed/wall, +/area/hallway/secondary/entry) +"cgy" = ( +/obj/machinery/vending/wardrobe/sec_wardrobe, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -30 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"cgz" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-05" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"cgA" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"cgB" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cgC" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cgD" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/engine/atmos) +"cgE" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/camera{ + c_tag = "Aft Hallway Engineering Venders"; + dir = 8; + name = "aft camera" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cgF" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/portable_atmospherics/pump, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plasteel/showroomfloor, +/area/engine/atmos) +"cgG" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cgH" = ( +/obj/machinery/door/airlock/external{ + name = "Engineering External Airlock"; + req_one_access_txt = "10;24" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cgI" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/hallway/secondary/entry) +"cgJ" = ( +/obj/machinery/door/poddoor/preopen, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cgK" = ( +/obj/structure/transit_tube/horizontal{ + dir = 1 + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"cgL" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/xeno_mining{ + pixel_y = 32 + }, +/obj/machinery/camera{ + c_tag = "Port Quarter Solar"; + dir = 4; + name = "engineering camera"; + network = list("ss13","engine") + }, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/solars/port/aft) +"cgM" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"cgN" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/landmark/event_spawn, +/mob/living/simple_animal/bot/medbot{ + auto_patrol = 1; + desc = "A little medical robot, officially part of the Nanotrasen medical inspectorate. He looks somewhat underwhelmed."; + name = "Inspector Johnson" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"cgO" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/smes, +/obj/effect/turf_decal/bot, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/solars/port/aft) +"cgP" = ( +/obj/structure/sign/warning/electricshock{ + pixel_x = -32 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cgQ" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/aft) +"cgR" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"cgS" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/table, +/obj/machinery/recharger, +/obj/machinery/computer/security/telescreen/prison{ + dir = 4; + pixel_x = -24 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/dark, +/area/security/main) +"cgT" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/security/main) +"cgU" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"cgV" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"cgW" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/obj/item/clothing/suit/hooded/wintercoat/engineering, +/obj/effect/turf_decal/delivery, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/item/pickaxe/mini, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cgX" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light_switch{ + pixel_x = -24; + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"cgY" = ( +/obj/structure/closet/crate/coffin, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"cha" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"chb" = ( +/obj/structure/table/wood, +/obj/item/storage/box/deputy{ + pixel_y = 5 + }, +/obj/item/taperecorder{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/flashlight/seclite, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/obj/machinery/light_switch{ + pixel_x = 24; + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"chc" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ai_monitored/security/armory) +"chd" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ai_monitored/security/armory) +"che" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ai_monitored/security/armory) +"chf" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/landmark/start/cyborg, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/aisat/foyer) +"chg" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ai_monitored/security/armory) +"chh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"chi" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/table, +/obj/item/storage/box/lights/mixed{ + pixel_y = 5 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 8 + }, +/area/hallway/primary/port) +"chj" = ( +/obj/structure/sign/warning/xeno_mining, +/turf/closed/wall, +/area/maintenance/fore) +"chk" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/plaque{ + icon_state = "L8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"chl" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"chm" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/plaque{ + icon_state = "L12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"chn" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/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/light{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"cho" = ( +/obj/effect/turf_decal/tile/red, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/camera{ + c_tag = "Transferring Centre"; + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/processing) +"chp" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/atmos) +"chq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"chr" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"chs" = ( +/obj/structure/flora/grass/jungle/b, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"cht" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/fireaxecabinet{ + pixel_y = 28 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics Scrubbers"; + name = "atmospherics camera"; + network = list("ss13","engine") + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"chu" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"chv" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"chw" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/landmark/start/atmospheric_technician, +/turf/open/floor/plasteel, +/area/engine/atmos) +"chx" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"chy" = ( +/obj/item/tank/internals/emergency_oxygen/engi{ + pixel_x = -5 + }, +/obj/item/tank/internals/emergency_oxygen/engi{ + pixel_x = 5 + }, +/obj/item/geiger_counter, +/obj/item/geiger_counter, +/obj/structure/table, +/obj/structure/sign/warning/xeno_mining{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"chz" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"chA" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/engine/atmos"; + dir = 1; + name = "Atmospherics APC"; + pixel_y = 28 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"chB" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/hatch{ + name = "Satellite Antechamber"; + req_one_access_txt = "32;19" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"chC" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"chD" = ( +/turf/closed/wall, +/area/ai_monitored/turret_protected/aisat/foyer) +"chE" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"chF" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/engine, +/area/ai_monitored/turret_protected/aisat/foyer) +"chG" = ( +/obj/machinery/computer/station_alert{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/status_display/ai{ + pixel_x = 32 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/satellite) +"chH" = ( +/obj/structure/reflector/box/anchored{ + dir = 1 + }, +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/obj/effect/turf_decal/box/corners, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"chI" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat/foyer) +"chJ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/security/glass{ + name = "Brig Control"; + req_access_txt = "3" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"chK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Experimentation Lab"; + req_access_txt = "47" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/science/explab) +"chL" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat/foyer) +"chM" = ( +/obj/structure/transit_tube/diagonal, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"chN" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/blue, +/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/engine/atmos) +"chO" = ( +/obj/structure/sign/warning/vacuum/external, +/turf/closed/wall, +/area/ai_monitored/turret_protected/aisat/atmos) +"chP" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/delivery, +/obj/machinery/light, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/atmos) +"chQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/radio{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/item/pen, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/engineering) +"chR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen/minisat{ + dir = 8; + pixel_x = 28 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"chS" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/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/engine/engineering) +"chT" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/engineering) +"chU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/port/aft) +"chV" = ( +/turf/closed/wall/rust, +/area/ai_monitored/turret_protected/aisat_interior) +"chW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/hatch{ + name = "Satellite Antechamber"; + req_one_access_txt = "32;19" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"chX" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat_interior) +"chY" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/solars/port/aft) +"chZ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/aft) +"cia" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"cib" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"cic" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/aft) +"cid" = ( +/obj/effect/turf_decal/bot, +/obj/structure/reagent_dispensers/watertank, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cie" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/vacuum/external{ + pixel_x = 32 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cif" = ( +/obj/machinery/door/airlock/external{ + name = "Abandoned External Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"cig" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"cih" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/shutters{ + id = "sidearmory"; + name = "Side Armoury Shutter" + }, +/obj/machinery/button/door{ + id = "sidearmory"; + name = "Armoury Shutter Toggle"; + pixel_y = -24; + req_access_txt = "3" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"cii" = ( +/obj/machinery/recharge_station, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = -28 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/satellite) +"cij" = ( +/obj/structure/table/wood, +/obj/item/folder/red, +/obj/item/lighter{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/clothing/mask/cigarette/cigar/cohiba{ + pixel_x = 6 + }, +/obj/item/clothing/mask/cigarette/cigar, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/hos) +"cik" = ( +/obj/machinery/disposal/bin, +/obj/machinery/light{ + dir = 4 + }, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"cil" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/showroomfloor, +/area/ai_monitored/security/armory) +"cim" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/mob/living/simple_animal/bot/secbot{ + arrest_type = 1; + health = 45; + icon_state = "secbot1"; + idcheck = 1; + name = "Warden Armsky"; + weaponscheck = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ai_monitored/security/armory) +"cin" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/engine/supermatter) +"cio" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel/showroomfloor, +/area/ai_monitored/security/armory) +"cip" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/teleport/station, +/obj/machinery/status_display/evac{ + pixel_x = 32 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"ciq" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/satellite) +"cir" = ( +/obj/structure/transit_tube/junction, +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/space/nearstation) +"cis" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall/r_wall/rust, +/area/ai_monitored/turret_protected/aisat/foyer) +"cit" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"ciu" = ( +/obj/structure/table, +/obj/item/clothing/suit/justice, +/obj/item/stack/cable_coil, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/maintenance/aft) +"civ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/transit_tube/horizontal{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/space/nearstation) +"ciw" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/obj/machinery/meter, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cix" = ( +/obj/structure/lattice/catwalk, +/obj/structure/transit_tube/crossing, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/space/nearstation) +"ciy" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/stripes/white/corner, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ciz" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8; + name = "scrubbers pipe" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/white/line, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ciA" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ciB" = ( +/obj/machinery/recharge_station, +/obj/effect/turf_decal/bot, +/obj/machinery/power/apc{ + areastring = "/area/ai_monitored/storage/satellite"; + name = "MiniSat Maint APC"; + pixel_y = -26 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/satellite) +"ciC" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, +/obj/effect/turf_decal/stripes/white/line, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ciD" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/mineral/plasma{ + amount = 5 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/storage/satellite) +"ciE" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/white/line, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ciF" = ( +/obj/machinery/hydroponics/soil, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/item/seeds/sugarcane, +/turf/open/floor/grass, +/area/security/prison) +"ciG" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/table, +/obj/machinery/computer/security/telescreen/minisat{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/status_display/ai{ + pixel_x = -32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"ciH" = ( +/obj/structure/transit_tube/horizontal{ + dir = 1 + }, +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/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/plating, +/area/maintenance/fore) +"ciI" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ciJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ciK" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ciL" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/start/atmospheric_technician, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ciM" = ( +/obj/structure/sign/departments/engineering, +/turf/closed/wall, +/area/ai_monitored/turret_protected/aisat/foyer) +"ciN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/hatch{ + name = "Satellite Storage"; + req_one_access_txt = "32;19" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/foyer) +"ciO" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ciP" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/start/atmospheric_technician, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ciQ" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall/rust, +/area/space/nearstation) +"ciR" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ciS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/computer/secure_data{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/engineering) +"ciT" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "engineaccess"; + name = "Engine Access Shutters" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"ciU" = ( +/obj/structure/lattice/catwalk, +/obj/structure/transit_tube/crossing, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/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/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"ciV" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"ciW" = ( +/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/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/landmark/start/station_engineer, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ciX" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/turretid{ + control_area = "/area/ai_monitored/turret_protected/ai_upload"; + icon_state = "control_stun"; + name = "AI Upload turret control"; + pixel_y = -24 + }, +/obj/machinery/camera/motion{ + c_tag = "AI Upload Foyer"; + dir = 4; + name = "upload camera"; + network = list("aiupload") + }, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the AI Upload."; + dir = 4; + name = "AI Upload Monitor"; + network = list("aiupload"); + pixel_x = -28 + }, +/obj/effect/landmark/start/cyborg, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai_upload) +"ciY" = ( +/obj/structure/flora/ausbushes/lavendergrass, +/obj/structure/flora/ausbushes/sparsegrass, +/obj/structure/flora/ausbushes/ywflowers, +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/palebush, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/fore) +"ciZ" = ( +/obj/structure/flora/grass/jungle, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/fore) +"cja" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cjb" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/effect/landmark/start/station_engineer, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cjc" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -26 + }, +/obj/item/clipboard{ + pixel_x = 4 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/item/book/manual/wiki/tcomms, +/obj/item/radio, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"cjd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cje" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1447; + name = "Private AI Channel"; + pixel_y = -28 + }, +/obj/effect/landmark/start/cyborg, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/ai_monitored/turret_protected/ai_upload) +"cjf" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/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" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard) +"cjg" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cjh" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cji" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cjj" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"cjk" = ( +/obj/machinery/power/solar_control{ + dir = 4; + id = "aftport"; + name = "Port Quarter Solar Control" + }, +/obj/effect/turf_decal/bot, +/obj/structure/cable, +/obj/structure/sign/warning/vacuum/external{ + pixel_x = -32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/solars/port/aft) +"cjl" = ( +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/port/fore) +"cjm" = ( +/obj/machinery/door/airlock/external{ + name = "Atmospherics External Airlock"; + req_access_txt = "24" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"cjn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"cjp" = ( +/obj/machinery/power/apc{ + areastring = "/area/maintenance/solars/port/aft"; + dir = 4; + name = "Port Quarter Solar APC"; + pixel_x = 26 + }, +/obj/structure/cable, +/obj/machinery/light/small, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/solars/port/aft) +"cjq" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/security/main) +"cjr" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/security/main) +"cjs" = ( +/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/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"cjt" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plating, +/area/engine/engineering) +"cju" = ( +/turf/closed/wall, +/area/engine/gravity_generator) +"cjv" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/teleport/hub, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"cjw" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/engine/gravity_generator) +"cjx" = ( +/obj/structure/table, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/obj/item/clipboard, +/obj/item/paper/guides/jobs/engi/gravity_gen, +/obj/item/pen/blue, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/engine/gravity_generator) +"cjy" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/computer/teleporter{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "teleshutter"; + name = "Teleporter Shutter Toggle"; + pixel_x = 24; + pixel_y = -24; + req_access_txt = "19" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"cjz" = ( +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"cjA" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ai_monitored/security/armory) +"cjB" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall, +/area/engine/gravity_generator) +"cjC" = ( +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"cjD" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"cjE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/aft) +"cjF" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/greenglow, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"cjG" = ( +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"cjH" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Gravity Generator Access"; + req_one_access_txt = "10" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cjI" = ( +/obj/effect/turf_decal/box, +/obj/machinery/shower{ + dir = 4; + name = "emergency shower" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cjJ" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/components/binary/pump{ + name = "N2 to Pure" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cjK" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "N2 to Airmix" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cjL" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/shower{ + dir = 4; + name = "emergency shower" + }, +/obj/effect/turf_decal/box/corners, +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cjM" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cjN" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/rad_collector/anchored, +/obj/structure/window/plasma/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/engine/supermatter) +"cjO" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cjP" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/red, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cjQ" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/components/trinary/filter/atmos/plasma{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/engine/atmos) +"cjR" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cjS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cjT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cjU" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/landmark/event_spawn, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cjV" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cjW" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/effect/turf_decal/box, +/obj/machinery/shower{ + dir = 4; + name = "emergency shower" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cjY" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cjZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"cka" = ( +/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/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"ckb" = ( +/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/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ckc" = ( +/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/red, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ckd" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cke" = ( +/obj/structure/sign/warning, +/turf/closed/wall, +/area/space/nearstation) +"ckf" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"ckg" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/solar{ + id = "aftstarboard"; + name = "Aft-Starboard Solar Array" + }, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard/aft) +"ckh" = ( +/obj/machinery/atmospherics/pipe/manifold4w/general/visible, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cki" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"ckj" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"ckk" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"ckl" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/aft) +"ckm" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/solar{ + id = "aftstarboard"; + name = "Aft-Starboard Solar Array" + }, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard/aft) +"ckn" = ( +/obj/structure/sign/warning/docking, +/turf/closed/wall, +/area/space/nearstation) +"cko" = ( +/turf/open/floor/plating/airless, +/area/space/nearstation) +"ckq" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/port/fore) +"ckt" = ( +/obj/structure/table, +/obj/item/storage/toolbox/emergency, +/obj/item/clothing/mask/gas, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Supermatter Cooler"; + name = "engineering camera"; + network = list("ss13","engine") + }, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cku" = ( +/turf/closed/wall/r_wall, +/area/maintenance/solars/starboard/aft) +"ckv" = ( +/turf/closed/wall/r_wall/rust, +/area/maintenance/solars/starboard/aft) +"ckw" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/engine/engineering) +"ckx" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"ckz" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"ckA" = ( +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/solar/starboard/aft) +"ckB" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/port/fore) +"ckC" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"ckD" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/aft) +"ckE" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/space/nearstation) +"ckF" = ( +/obj/structure/bed/dogbed/cayenne{ + name = "Lia's bed" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/mob/living/simple_animal/hostile/retaliate/bat{ + desc = "A failed experiment of Nanotrasen to create weaponised carp technology. This less than intimidating carp now serves as an authority figure's pet."; + emote_taunt = list("gnashes"); + faction = list("carp"); + harm_intent_damage = 3; + health = 200; + icon_dead = "magicarp_dead"; + icon_gib = "magicarp_gib"; + icon_living = "magicarp"; + icon_state = "magicarp"; + maxHealth = 200; + max_co2 = 5; + max_tox = 2; + melee_damage_lower = 15; + melee_damage_upper = 20; + min_oxy = 5; + name = "Lia"; + real_name = "Lia"; + response_help = "pets"; + turns_per_move = 10 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"ckG" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ai_monitored/security/armory) +"ckH" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/engine/engineering) +"ckI" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/engine/engineering) +"ckJ" = ( +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"ckK" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/port/fore) +"ckL" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/port/aft) +"ckM" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/port/aft) +"ckN" = ( +/obj/structure/cable, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/port/aft) +"ckO" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/port/aft) +"ckP" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/port/aft) +"ckQ" = ( +/obj/machinery/power/tracker, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard/aft) +"ckR" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/clipboard, +/obj/item/paper/crumpled{ + info = "The safes have been locked and scrambled. Three thousand space dollars, a bandolier, a custom shotgun, and a lazarus injector have been safely deposited."; + name = "bank statement" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"ckS" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/sign/warning/nosmoking{ + pixel_x = -30 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"ckT" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ai_monitored/security/armory) +"ckU" = ( +/turf/closed/wall, +/area/maintenance/solars/starboard/aft) +"ckV" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ai_monitored/security/armory) +"ckW" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/grille/broken, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/aft) +"ckX" = ( +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/port/aft) +"ckY" = ( +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/port/aft) +"ckZ" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard/aft) +"cla" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/event_spawn, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard/aft) +"clb" = ( +/turf/closed/wall/rust, +/area/maintenance/solars/starboard/aft) +"clc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/security/processing) +"cld" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-02"; + pixel_y = 3 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"cle" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/sign/poster/contraband/random{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard/aft) +"clf" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/engine/engineering) +"clg" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/greenglow, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"clh" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, +/turf/open/floor/plasteel, +/area/security/processing) +"cli" = ( +/obj/structure/grille, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"clj" = ( +/obj/structure/table, +/obj/item/tank/internals/oxygen/red, +/obj/item/clothing/mask/gas, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"clk" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall, +/area/maintenance/solars/starboard/aft) +"cll" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 8 + }, +/area/hallway/primary/port) +"clm" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cln" = ( +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"clo" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/effect/landmark/start/atmospheric_technician, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"clp" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -26 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"clq" = ( +/obj/item/clothing/mask/breath, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"clr" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/aft) +"cls" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"clt" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"clu" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/space/nearstation) +"clv" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/computer/atmos_control/tank/toxin_tank{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/engine/atmos) +"clw" = ( +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/space/nearstation) +"clx" = ( +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"cly" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/filingcabinet, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -26; + pixel_y = -30 + }, +/obj/item/radio/intercom{ + pixel_y = -26 + }, +/obj/machinery/power/apc{ + areastring = "/area/security/checkpoint/engineering"; + dir = 8; + name = "Engineering Security APC"; + pixel_x = -24 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/engineering) +"clz" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/newscaster/security_unit{ + pixel_y = -28 + }, +/obj/machinery/recharger, +/obj/machinery/camera{ + c_tag = "Engineering Security Post"; + dir = 1; + name = "engineering camera" + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/engineering) +"clA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"clB" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet/radiation, +/obj/item/clothing/glasses/meson, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"clC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"clD" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/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/engine/engineering) +"clE" = ( +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/engine/gravity_generator) +"clF" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/greenglow, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"clG" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/engine/engineering) +"clH" = ( +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/solars/port/aft) +"clI" = ( +/obj/effect/turf_decal/tile/purple, +/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/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Plasma to Pure" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/engine/atmos) +"clJ" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/storage/belt/utility{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/storage/belt/utility, +/obj/item/clothing/head/welding, +/obj/item/clothing/head/welding, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"clK" = ( +/obj/item/stack/cable_coil, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/solars/port/aft) +"clL" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"clM" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"clN" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"clO" = ( +/obj/machinery/door/airlock/engineering{ + name = "Port Quarter Solar Access"; + req_access_txt = "10" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/solars/port/aft) +"clP" = ( +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"clQ" = ( +/obj/machinery/gravity_generator/main/station, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/greenglow, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"clR" = ( +/obj/effect/turf_decal/box/corners, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"clS" = ( +/obj/effect/turf_decal/bot, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"clT" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"clV" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet/radiation, +/obj/item/clothing/glasses/meson, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"clW" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet/radiation, +/obj/item/clothing/glasses/meson, +/obj/machinery/power/apc{ + areastring = "/area/engine/gravity_generator"; + name = "Gravity Generator APC"; + pixel_y = -26 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"clX" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/security/processing) +"clY" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"clZ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/shower{ + dir = 4; + name = "emergency shower" + }, +/obj/effect/turf_decal/box/corners, +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cma" = ( +/obj/structure/closet/crate/solarpanel_small, +/obj/effect/turf_decal/delivery, +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cmb" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/camera{ + c_tag = "Atmospherics Entrance"; + dir = 8; + name = "atmospherics camera"; + network = list("ss13","engine") + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cmc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"cmd" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cme" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/trinary/mixer/airmix, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cmf" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cmg" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/machinery/meter, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cmh" = ( +/obj/structure/sign/poster/contraband/random, +/turf/closed/wall, +/area/maintenance/starboard/aft) +"cmi" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/trinary/filter/atmos{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cmj" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Arrivals Dock" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/entry) +"cmk" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Port Mix to West Ports" + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cml" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cmm" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"cmn" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Air to Ports" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cmo" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cmp" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cmq" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics Aft Tanks"; + dir = 1; + name = "atmospherics camera"; + network = list("ss13","engine") + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"cmr" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"cms" = ( +/obj/machinery/door/poddoor/preopen{ + id = "gravity"; + name = "Gravity Generator Blast Door" + }, +/obj/machinery/button/door{ + id = "gravity"; + name = "Gravity Generator Lockdown"; + pixel_y = 24; + req_one_access_txt = "19;23" + }, +/obj/machinery/door/firedoor, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"cmt" = ( +/turf/closed/wall/mineral/plastitanium, +/area/maintenance/port/aft) +"cmu" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/structure/noticeboard{ + pixel_y = 28 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-05" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cmv" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-03" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cmw" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -26 + }, +/obj/machinery/camera{ + c_tag = "Laser Room Port"; + dir = 1; + name = "laser room camera"; + network = list("ss13","engine") + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/engine/engineering) +"cmx" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cmy" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cmz" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Waste to Filter" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cmA" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/emitter/anchored{ + dir = 4; + state = 2 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/engine/engineering) +"cmB" = ( +/obj/structure/closet/radiation, +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard/aft) +"cmC" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cmD" = ( +/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, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"cmE" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "gravity"; + name = "Gravity Generator Blast Door" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"cmF" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/aft) +"cmG" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/shieldgen, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cmH" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/sign/warning/nosmoking{ + pixel_x = -30 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cmI" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cmJ" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"cmK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cmL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cmM" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/turf_decal/box, +/obj/machinery/power/solar{ + id = "foreport"; + name = "Fore-Port Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/space/nearstation) +"cmN" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/emitter/anchored{ + dir = 8; + state = 2 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/engine/engineering) +"cmP" = ( +/turf/closed/wall, +/area/crew_quarters/heads/hos) +"cmQ" = ( +/obj/machinery/door/poddoor/preopen{ + id = "gravity"; + name = "Gravity Generator Blast Door" + }, +/obj/machinery/light/small, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/engine/gravity_generator) +"cmR" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard/aft) +"cmS" = ( +/obj/machinery/camera{ + c_tag = "Satellite External Fore"; + dir = 1; + name = "exterior camera"; + network = list("minisat"); + start_active = 1 + }, +/turf/open/floor/plating/asteroid/airless, +/area/space/nearstation) +"cmT" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cmU" = ( +/obj/machinery/camera{ + c_tag = "Satellite External Port"; + dir = 8; + name = "exterior camera"; + network = list("minisat"); + start_active = 1 + }, +/turf/open/floor/plating/asteroid/airless, +/area/space/nearstation) +"cmV" = ( +/obj/machinery/camera{ + c_tag = "Satellite External Starboard"; + dir = 4; + name = "exterior camera"; + network = list("minisat"); + start_active = 1 + }, +/turf/open/floor/plating/asteroid/airless, +/area/space/nearstation) +"cmW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/box/lights/mixed, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"cmX" = ( +/obj/effect/decal/cleanable/dirt, +/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/item/storage/box/lights/mixed, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"cmY" = ( +/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" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cmZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"cna" = ( +/obj/effect/decal/cleanable/dirt, +/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" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cnb" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + name = "output gas connector port" + }, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Incinerator"; + dir = 8; + name = "atmospherics camera"; + network = list("ss13","engine") + }, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/dark, +/area/maintenance/disposal/incinerator) +"cnc" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cnd" = ( +/turf/closed/wall/rust, +/area/maintenance/disposal) +"cne" = ( +/obj/effect/decal/cleanable/dirt, +/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" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"cnf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cng" = ( +/obj/effect/decal/cleanable/dirt, +/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/structure/sign/directions/evac{ + dir = 8; + pixel_y = 24 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"cnh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port) +"cni" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall, +/area/maintenance/port) +"cnj" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cnk" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cnl" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cnm" = ( +/obj/structure/closet/secure_closet/security/sec, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -26 + }, +/obj/item/gun/energy/e_gun/advtaser, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"cnn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cno" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible/layer3{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cnp" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible/layer3{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cnq" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/item/clipboard, +/obj/item/flashlight/seclite, +/obj/item/flashlight/seclite, +/obj/item/flashlight/seclite, +/obj/effect/decal/cleanable/dirt, +/obj/item/toy/figure/secofficer, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"cnr" = ( +/obj/structure/sign/poster/contraband/random, +/turf/closed/wall, +/area/maintenance/port) +"cnt" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/turf_decal/box, +/obj/machinery/power/solar{ + id = "aftport"; + name = "Aft-Port Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/port/aft) +"cnu" = ( +/turf/closed/wall, +/area/maintenance/disposal) +"cnv" = ( +/obj/machinery/computer/shuttle/labor{ + dir = 1 + }, +/obj/structure/sign/warning/vacuum/external{ + pixel_y = -32 + }, +/obj/machinery/camera{ + c_tag = "Transferring Centre Dock"; + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/security/processing) +"cnw" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/box, +/obj/machinery/power/solar{ + id = "aftport"; + name = "Aft-Port Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/port/aft) +"cnx" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/security/processing) +"cny" = ( +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"cnz" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/aft) +"cnA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/security/processing) +"cnB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"cnC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/gulag_item_reclaimer{ + pixel_x = 30 + }, +/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/neutral, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel, +/area/security/processing) +"cnD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/random{ + pixel_y = -32 + }, +/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/structure/grille/broken, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard) +"cnE" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 4 + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cnF" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Disposal Access"; + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/disposal) +"cnG" = ( +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cnH" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cnI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"cnJ" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"cnK" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cnL" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port) +"cnM" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/port/aft) +"cnN" = ( +/turf/closed/wall, +/area/maintenance/solars/port/aft) +"cnP" = ( +/turf/closed/wall/r_wall, +/area/maintenance/solars/port/aft) +"cnQ" = ( +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/solar/port/aft) +"cnR" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/port/aft) +"cnS" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"cnT" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/shieldgen, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cnU" = ( +/obj/structure/lattice, +/obj/structure/sign/warning/securearea{ + pixel_x = 32 + }, +/turf/open/space/basic, +/area/space/nearstation) +"cnV" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/structure/grille/broken, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard/aft) +"cnW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/aft) +"cnX" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall, +/area/maintenance/solars/port/aft) +"cnY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/engine, +/area/engine/engineering) +"cnZ" = ( +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"coa" = ( +/obj/machinery/power/tracker, +/obj/effect/turf_decal/box, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/port/aft) +"cob" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 6 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"coc" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cod" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"coe" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cof" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"cog" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/port/aft) +"coh" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/light, +/turf/open/floor/engine, +/area/engine/engineering) +"coi" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/starboard/aft) +"coj" = ( +/obj/machinery/atmospherics/pipe/manifold/green/visible{ + dir = 1 + }, +/obj/machinery/airalarm/engine{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"cok" = ( +/turf/closed/wall/r_wall, +/area/space/nearstation) +"col" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"com" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Gas to Filter" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"con" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "engsm"; + name = "Radiation Shutters Toggle"; + pixel_y = -24; + req_access_txt = "10" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"coo" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/light, +/turf/open/floor/engine, +/area/engine/engineering) +"cop" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/wood, +/area/maintenance/port) +"coq" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/engine/engineering) +"cor" = ( +/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, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"cos" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cot" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cou" = ( +/obj/structure/sign/poster/contraband/random, +/turf/closed/wall/rust, +/area/maintenance/port/aft) +"cov" = ( +/obj/structure/lattice, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/space/basic, +/area/space/nearstation) +"cow" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/space/nearstation) +"cox" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"coy" = ( +/obj/structure/flora/rock, +/turf/open/floor/plating/asteroid/airless, +/area/space/nearstation) +"coz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"coA" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"coC" = ( +/obj/structure/sign/warning/deathsposal, +/turf/closed/wall, +/area/maintenance/disposal) +"coD" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"coF" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"coG" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/engine/atmos) +"coH" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"coI" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"coK" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/aft) +"coL" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"coM" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/computer/atmos_control/tank/nitrous_tank{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/turf/open/floor/plasteel/showroomfloor, +/area/engine/atmos) +"coN" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"coU" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/obj/effect/landmark/start/warden, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"coV" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/atmos) +"coW" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/dark/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"coX" = ( +/obj/effect/turf_decal/bot, +/obj/structure/ore_box, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"coY" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Pure to Fuel Pipe" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"coZ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cpa" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cpb" = ( +/obj/structure/sign/warning/vacuum/external, +/turf/closed/wall, +/area/maintenance/disposal) +"cpc" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Port Mix to East Ports" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cpd" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cpe" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/button/door{ + id = "atmosventco2"; + name = "Emergency CO2 Vent Toggle"; + pixel_x = 6; + pixel_y = -24 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"cpf" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Pure to Ports" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cpg" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/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/engine/atmos) +"cph" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "N2O to Pure" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/engine/atmos) +"cpi" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 10 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cpj" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/door/window/northleft{ + name = "Inner Pipe Access"; + req_access_txt = "24" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/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/engine/atmos) +"cpk" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cpl" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 10 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cpm" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/dark/visible, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"cpn" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"cpo" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/button/door{ + id = "atmosventplasma"; + name = "Emergency Plasma Vent Toggle"; + pixel_x = 6; + pixel_y = -24 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"cpp" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"cpq" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"cpr" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/light, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"cps" = ( +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "12;47" + }, +/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/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/structure/sign/directions/evac{ + dir = 4; + pixel_y = -24 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard) +"cpt" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"cpu" = ( +/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/item/beacon, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"cpv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/aft) +"cpw" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"cpx" = ( +/obj/structure/lattice, +/obj/structure/disposalpipe/segment, +/turf/open/space/basic, +/area/space/nearstation) +"cpy" = ( +/obj/machinery/atmospherics/components/unary/tank/toxins{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/disposal/incinerator"; + dir = 1; + name = "Incinerator APC"; + pixel_y = 25 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/disposal/incinerator) +"cpz" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/power/emitter, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cpA" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/engine, +/area/engine/engineering) +"cpB" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/shieldgen, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Secure Storage"; + dir = 4; + name = "engineering camera"; + network = list("ss13","engine") + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cpC" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cpD" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Mix to Gas" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cpE" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible/layer3, +/obj/machinery/modular_computer/console/preset/engineering{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cpF" = ( +/obj/structure/flora/rock/pile, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/hallway/secondary/entry) +"cpG" = ( +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"cpH" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Pure to Fuel Pipe" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cpI" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"cpJ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/beacon, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cpK" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cpL" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/purple/visible{ + dir = 8 + }, +/obj/effect/landmark/start/atmospheric_technician, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cpM" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Mix to Distro" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cpN" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/status_display/ai{ + pixel_x = 32 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cpO" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"cpP" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cpQ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/beacon, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cpR" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Brig"; + req_access_txt = "63" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"cpS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Detective's Office"; + req_access_txt = "4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/security/detectives_office) +"cpT" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"cpU" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cpV" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cpW" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/sign/warning/fire{ + pixel_x = -32; + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cpX" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port) +"cpY" = ( +/obj/item/pickaxe, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cpZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/aft) +"cqa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"cqb" = ( +/obj/structure/sign/warning/fire, +/turf/closed/wall, +/area/maintenance/port) +"cqc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics Connector"; + req_one_access_txt = "10;24" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"cqd" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/power/emitter, +/obj/machinery/light/small, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cqe" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/rods/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/obj/item/stack/sheet/mineral/plasma{ + amount = 30 + }, +/obj/item/gps, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"cqf" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port) +"cqg" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"cqh" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"cqi" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Gas to Filter" + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/engine/supermatter) +"cqj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/aft) +"cqk" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Gas to Chamber" + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/engine/supermatter) +"cql" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Mix Bypass" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cqm" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible, +/obj/machinery/meter, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cqn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port) +"cqo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"cqp" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/dark/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cqq" = ( +/obj/structure/sign/warning/fire, +/turf/closed/wall, +/area/maintenance/port/aft) +"cqr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics Connector"; + req_one_access_txt = "10;24" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"cqs" = ( +/obj/structure/sign/warning/docking, +/turf/closed/wall/rust, +/area/maintenance/port) +"cqt" = ( +/obj/structure/sign/warning, +/turf/closed/wall, +/area/maintenance/port/aft) +"cqu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"cqv" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cqw" = ( +/obj/structure/sign/warning/deathsposal{ + layer = 4 + }, +/turf/closed/wall, +/area/science/xenobiology) +"cqx" = ( +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/bin{ + desc = "A pneumatic waste disposal unit. This one leads into space!"; + name = "deathsposal unit" + }, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/showroomfloor, +/area/science/xenobiology) +"cqy" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cqz" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cqA" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"cqB" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cqC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port) +"cqD" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cqE" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/fore) +"cqF" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cqG" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cqH" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cqI" = ( +/obj/structure/sign/warning/docking, +/turf/closed/wall/rust, +/area/maintenance/port/aft) +"cqJ" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cqK" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/effect/landmark/start/atmospheric_technician, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cqL" = ( +/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/blue, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cqM" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"cqN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/external{ + name = "Ferry Shuttle Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"cqO" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cqP" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/external{ + name = "Ferry Shuttle Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"cqQ" = ( +/obj/machinery/door/window/westright{ + name = "Waste Door" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cqR" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "Air to Distro" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/sign/warning/fire{ + pixel_x = 32 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics Distribution Loop"; + dir = 8; + name = "atmospherics camera"; + network = list("ss13","engine") + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"cqS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/grille/broken, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"cqT" = ( +/obj/structure/sign/warning/pods, +/turf/closed/wall/rust, +/area/maintenance/port) +"cqU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port) +"cqV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/meter, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/port) +"cqW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/camera{ + c_tag = "Supermatter Terminal"; + dir = 4; + name = "engineering camera"; + network = list("ss13","engine") + }, +/obj/machinery/light_switch{ + pixel_x = -22; + pixel_y = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cqX" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cqY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard/fore) +"cqZ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/disposal) +"cra" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port) +"crb" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard/aft) +"crc" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8 + }, +/obj/machinery/meter, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"crd" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Gas to Mix" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cre" = ( +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics Connector"; + req_one_access_txt = "10;24;5" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"crf" = ( +/obj/machinery/door/airlock/external{ + name = "External Airlock"; + req_access_txt = "13" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/disposal) +"crg" = ( +/obj/effect/decal/cleanable/dirt, +/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/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port) +"crh" = ( +/obj/structure/sign/poster/contraband/random, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall/rust, +/area/maintenance/starboard/fore) +"cri" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/obj/machinery/computer/station_alert{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"crj" = ( +/obj/effect/decal/cleanable/dirt, +/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" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port) +"crk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port) +"crl" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/chair, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"crm" = ( +/obj/structure/rack, +/obj/structure/grille/broken, +/obj/item/clothing/suit/hazardvest{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/clothing/mask/gas, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"crn" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/vacuum/external{ + pixel_x = -32 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"cro" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/chair, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"crp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/aft) +"crq" = ( +/obj/structure/sign/warning/nosmoking, +/turf/closed/wall/rust, +/area/maintenance/port) +"crr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port) +"crs" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 8; + name = "atmospherics sorting disposal pipe"; + sortType = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"crt" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Unfiltered & Air to Mix" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cru" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/manifold/green/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"crv" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"crw" = ( +/obj/machinery/door/airlock/external{ + name = "Cargo Escape Pod" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard) +"crx" = ( +/obj/docking_port/stationary{ + dir = 8; + dwidth = 1; + height = 4; + roundstart_template = /datum/map_template/shuttle/escape_pod/default; + width = 3 + }, +/obj/structure/fans/tiny/invisible, +/turf/open/space/basic, +/area/space) +"cry" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/rack, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"crz" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Air to Mix" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"crA" = ( +/obj/machinery/door/airlock/external{ + name = "Abandoned External Airlock" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"crB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/coin/twoheaded{ + pixel_x = 8; + pixel_y = 6 + }, +/obj/structure/sign/poster/contraband/rebels_unite{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"crC" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"crD" = ( +/obj/machinery/door/airlock/external{ + name = "Security Escape Pod" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/aft) +"crE" = ( +/obj/structure/grille, +/obj/structure/barricade/wooden, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"crF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port) +"crG" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"crH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/status_display/evac{ + pixel_x = -32 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port) +"crI" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"crJ" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/engine/engineering) +"crL" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/landmark/start/warden, +/obj/structure/chair/office, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"crM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port) +"crN" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port) +"crO" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/machinery/airalarm{ + pixel_z = 24 + }, +/obj/machinery/light/small, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/engine/engineering) +"crP" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port) +"crQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port) +"crR" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/structure/mirror{ + pixel_y = 28 + }, +/obj/structure/sink{ + pixel_y = 24 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"crS" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/effect/decal/cleanable/cobweb, +/obj/item/poster/random_contraband{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/poster/random_contraband, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"crT" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Atmos to Loop" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/engine, +/area/engine/engineering) +"crU" = ( +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "12;47" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard) +"crV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port) +"crW" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/item/storage/toolbox/emergency, +/obj/item/wirerod, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"crX" = ( +/obj/machinery/atmospherics/pipe/manifold/green/visible{ + dir = 4 + }, +/obj/machinery/meter, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"crY" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/item/folder/red, +/obj/item/pen, +/obj/machinery/door/window/brigdoor/northleft{ + name = "Brig Control Desk"; + req_access_txt = "3" + }, +/obj/item/poster/random_official, +/obj/item/poster/random_official, +/obj/item/poster/random_official, +/turf/open/floor/plating, +/area/security/warden) +"crZ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"csa" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"csb" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"csc" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Surgery Maintenance"; + req_access_txt = "45" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"csd" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cse" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/sign/warning/nosmoking{ + pixel_x = 30 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"csf" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_x = 32; + pixel_y = -32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"csg" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/structure/noticeboard{ + dir = 8; + pixel_x = 32 + }, +/obj/item/clothing/gloves/color/fyellow, +/obj/item/clothing/under/color/grey, +/obj/item/clothing/mask/gas{ + pixel_x = 4; + pixel_y = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"csh" = ( +/obj/machinery/door/airlock/medical{ + name = "Medbay Storage" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"csi" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/engine/atmos) +"csj" = ( +/obj/structure/table, +/obj/item/storage/secure/briefcase, +/obj/item/taperecorder, +/obj/structure/sign/warning/electricshock{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"csk" = ( +/obj/effect/turf_decal/bot, +/obj/structure/frame/computer{ + anchored = 1; + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"csl" = ( +/obj/structure/table, +/obj/item/clipboard, +/obj/item/stack/cable_coil, +/obj/item/screwdriver{ + pixel_y = 16 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"csm" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 5 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"csn" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"cso" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "greylair"; + name = "Lair Privacy Shutter" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/port) +"csp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/vacuum/external{ + pixel_x = -32 + }, +/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/plating, +/area/maintenance/port) +"csq" = ( +/obj/machinery/door/window/westleft{ + name = "Waste Door" + }, +/obj/machinery/conveyor_switch/oneway{ + dir = 8; + id = "garbage"; + name = "disposal conveyor" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/disposal) +"csr" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/port) +"css" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"cst" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port) +"csu" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/disposal) +"csv" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ + dir = 8 + }, +/obj/structure/sign/warning/xeno_mining{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"csw" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"csx" = ( +/obj/machinery/door/airlock/medical{ + name = "Medbay Storage" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"csy" = ( +/obj/machinery/camera{ + c_tag = "Supermatter Waste Line"; + dir = 8; + name = "engineering camera"; + network = list("ss13","engine") + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/button/door{ + id = "engineaccess"; + name = "Engine Access Lockdown"; + pixel_x = 24; + req_one_access_txt = "10" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"csz" = ( +/obj/machinery/shower{ + dir = 4; + name = "emergency shower" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard/aft) +"csA" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Gravity Generator Foyer"; + dir = 4; + name = "engineering camera"; + network = list("ss13","engine") + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/button/door{ + id = "gravity"; + name = "Gravity Generator Lockdown"; + pixel_x = -24; + req_one_access_txt = "19;23" + }, +/turf/open/floor/engine, +/area/engine/gravity_generator) +"csB" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/engine, +/area/engine/gravity_generator) +"csC" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"csD" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 8; + name = "ce sorting disposal pipe"; + sortType = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"csE" = ( +/obj/structure/sign/departments/engineering{ + pixel_x = 32; + pixel_y = -32 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"csF" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Aft Hallway Engineering Doors"; + dir = 1; + name = "aft camera" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"csG" = ( +/obj/machinery/atmospherics/components/unary/tank/air, +/obj/effect/turf_decal/bot, +/obj/structure/sign/warning/nosmoking{ + pixel_y = 30 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/sign/warning/fire{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"csH" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, +/turf/open/floor/engine, +/area/engine/gravity_generator) +"csI" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/engine, +/area/engine/gravity_generator) +"csK" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/engine/atmos) +"csL" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/closet/emcloset/anchored, +/obj/machinery/light/small, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"csM" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"csN" = ( +/obj/structure/flora/grass/jungle/b, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/port/aft) +"csO" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/virology) +"csP" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"csQ" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/tank/internals/air, +/obj/item/clothing/mask/breath, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"csR" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"csS" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/obj/structure/flora/ausbushes/lavendergrass, +/obj/structure/flora/ausbushes/fernybush, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/port/aft) +"csT" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port) +"csU" = ( +/obj/effect/decal/cleanable/dirt, +/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" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port) +"csV" = ( +/obj/effect/decal/cleanable/dirt, +/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" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port) +"csW" = ( +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"csX" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Gas to Cold Loop" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/engine, +/area/engine/engineering) +"csY" = ( +/obj/machinery/atmospherics/pipe/manifold/green/visible{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"csZ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/camera{ + c_tag = "Supermatter Engine"; + dir = 1; + name = "supermatter camera"; + network = list("engine") + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"cta" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"ctb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/pods{ + pixel_y = 32 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port) +"ctc" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"ctd" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/gravity_generator) +"cte" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/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/maintenance/port) +"ctf" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/gravity_generator) +"ctg" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"cth" = ( +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/maintenance/port"; + dir = 4; + name = "Port Maintenance APC"; + pixel_x = 26 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port) +"cti" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/barricade/wooden/crude, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"ctj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"ctk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/engine, +/area/engine/gravity_generator) +"ctl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plating, +/area/maintenance/port) +"ctm" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/turf_decal/box, +/obj/machinery/power/solar{ + id = "foreport"; + name = "Fore-Port Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/port/fore) +"ctn" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/engine, +/area/engine/gravity_generator) +"cto" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Fuel Pipe to Incinerator" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8; + icon_state = "intact" + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"ctp" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/obj/structure/grille/broken, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"ctq" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Cooling Loop Bypass" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"ctr" = ( +/obj/machinery/door/poddoor{ + id = "atmosventn2o"; + name = "Emergency N2O Chamber Vent" + }, +/turf/open/floor/engine/vacuum, +/area/engine/atmos) +"cts" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"ctt" = ( +/obj/effect/decal/cleanable/dirt, +/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/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port) +"ctv" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"ctw" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/box, +/obj/machinery/power/solar{ + id = "foreport"; + name = "Fore-Port Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/port/fore) +"ctx" = ( +/obj/machinery/shower{ + dir = 4; + name = "emergency shower" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/aft) +"cty" = ( +/obj/machinery/button/door{ + id = "Disposal Exit"; + name = "Disposal Vent Control"; + pixel_x = -25; + pixel_y = 4; + req_access_txt = "12" + }, +/obj/machinery/button/massdriver{ + id = "trash"; + pixel_x = -26; + pixel_y = -6 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/disposal) +"ctz" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/gateway{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"ctA" = ( +/turf/closed/wall/rust, +/area/maintenance/solars/port/fore) +"ctB" = ( +/turf/closed/wall, +/area/maintenance/solars/port/fore) +"ctC" = ( +/turf/closed/wall/r_wall, +/area/maintenance/solars/port/fore) +"ctD" = ( +/turf/closed/wall/r_wall/rust, +/area/maintenance/solars/port/fore) +"ctE" = ( +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/solar/port/fore) +"ctF" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/barricade/wooden/crude, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"ctG" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/starboard/aft) +"ctH" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"ctI" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard) +"ctJ" = ( +/obj/structure/sign/departments/xenobio, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/starboard/fore) +"ctK" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/gateway{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Gateway"; + name = "command camera" + }, +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"ctL" = ( +/obj/machinery/power/tracker, +/obj/effect/turf_decal/box, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/space/nearstation) +"ctM" = ( +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/engine, +/area/engine/gravity_generator) +"ctN" = ( +/obj/structure/cable, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/starboard/aft) +"ctO" = ( +/obj/machinery/door/airlock/external{ + name = "External Airlock"; + req_access_txt = "13" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/disposal) +"ctP" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/starboard/aft) +"ctQ" = ( +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/starboard/aft) +"ctR" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/starboard/aft) +"ctS" = ( +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"ctU" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/gravity_generator) +"ctV" = ( +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/solars/port/fore) +"ctW" = ( +/obj/machinery/camera{ + c_tag = "Gravity Generator"; + dir = 1; + name = "engineering camera"; + network = list("ss13","engine") + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/gravity_generator) +"ctX" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/gravity_generator) +"ctY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/engine, +/area/engine/gravity_generator) +"ctZ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"cua" = ( +/obj/machinery/door/airlock/engineering{ + name = "Port Bow Solar Access"; + req_access_txt = "10" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/solars/port/fore) +"cub" = ( +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/starboard/aft) +"cuc" = ( +/turf/open/floor/plating/airless, +/area/solar/starboard/aft) +"cud" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 8; + name = "engineering sorting disposal pipe"; + sortType = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cue" = ( +/obj/machinery/door/airlock/external{ + name = "External Airlock"; + req_access_txt = "13" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard) +"cuf" = ( +/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/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"cug" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"cuh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port) +"cui" = ( +/mob/living/simple_animal/hostile/asteroid/goliath, +/turf/open/floor/plating/asteroid/airless, +/area/space/nearstation) +"cuk" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"cul" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"cum" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/barricade/wooden/crude, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"cun" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall/rust, +/area/maintenance/solars/port/fore) +"cuo" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/starboard/aft) +"cup" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"cuq" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cur" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cus" = ( +/obj/machinery/light/small, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"cut" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cuu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port) +"cuv" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cuw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port) +"cux" = ( +/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/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port) +"cuy" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/item/radio/intercom{ + pixel_y = 24 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cuz" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cuA" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cuB" = ( +/obj/effect/decal/cleanable/dirt, +/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" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"cuC" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cuD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cuE" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"cuF" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"cuG" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/poddoor/preopen{ + id = "xeno_blastdoor"; + name = "Xenobiology Containment Blast Door" + }, +/obj/effect/turf_decal/caution/stand_clear, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"cuH" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal/bin{ + desc = "A pneumatic waste disposal unit. This one leads into space!"; + name = "deathsposal unit" + }, +/turf/open/floor/plasteel/dark, +/area/medical/virology) +"cuI" = ( +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cuJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port) +"cuK" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4; + name = "Cold Loop to Gas" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/engine, +/area/engine/engineering) +"cuL" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/warning/securearea{ + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cuM" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/engine/engineering) +"cuO" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cuP" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 8; + filter_type = "n2" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cuQ" = ( +/obj/effect/decal/cleanable/dirt, +/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/effect/turf_decal/delivery, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/fore) +"cuR" = ( +/obj/structure/sign/warning/xeno_mining, +/turf/closed/wall/rust, +/area/maintenance/port) +"cuS" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"cuT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"cuU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/light, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cuV" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cuW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cuX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port) +"cuY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cuZ" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/barricade/wooden/crude, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"cva" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cvb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/structure/noticeboard{ + dir = 8; + pixel_x = 32 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/clothing/gloves/color/fyellow, +/obj/item/storage/toolbox/electrical, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"cvc" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/aft) +"cvd" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/maintenance/disposal/incinerator) +"cve" = ( +/obj/structure/sign/poster/contraband/red_rum, +/turf/closed/wall/rust, +/area/maintenance/port) +"cvf" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"cvg" = ( +/obj/structure/chair/office/light, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"cvh" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"cvi" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cvj" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/frame/computer{ + anchored = 1; + dir = 4 + }, +/obj/effect/turf_decal/bot_white, +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"cvk" = ( +/obj/machinery/button/door/incinerator_vent_atmos_aux{ + pixel_x = 6; + pixel_y = -24 + }, +/obj/machinery/button/door/incinerator_vent_atmos_main{ + pixel_x = -6; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"cvl" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/barricade/wooden/crude, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"cvm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal/incinerator) +"cvn" = ( +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cvo" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cvp" = ( +/obj/machinery/computer/slot_machine, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot_white, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"cvq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"cvr" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/engine/engineering) +"cvs" = ( +/obj/item/clothing/glasses/sunglasses, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/remains/human, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/port) +"cvt" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/engine/engineering) +"cvu" = ( +/obj/structure/reflector/double/anchored{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cvv" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/chair/stool/bar, +/mob/living/simple_animal/hostile/russian, +/turf/open/floor/wood, +/area/maintenance/port) +"cvw" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/engine/engineering) +"cvx" = ( +/obj/machinery/computer/slot_machine, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot_white, +/obj/structure/sign/poster/contraband/smoke{ + pixel_x = 32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"cvy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/closet/cabinet, +/obj/item/stack/sheet/glass{ + amount = 10 + }, +/obj/item/stack/rods/ten, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"cvz" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/table/wood, +/obj/item/book/manual/wiki/detective{ + pixel_y = 4 + }, +/obj/item/camera, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"cvA" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/filingcabinet, +/obj/effect/turf_decal/bot_white, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"cvB" = ( +/obj/structure/sign/departments/security, +/turf/closed/wall/rust, +/area/maintenance/port) +"cvC" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/engine/engineering) +"cvD" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/engine_waste{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"cvE" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard/aft) +"cvF" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/briefcase, +/obj/item/taperecorder, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"cvG" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/tank/internals/oxygen, +/obj/item/pickaxe, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cvH" = ( +/obj/machinery/power/smes, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/turf_decal/bot, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"cvI" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Starboard Quarter Solar"; + name = "engineering camera"; + network = list("ss13","engine") + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"cvJ" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/item/stack/cable_coil, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/xeno_mining{ + pixel_x = 32 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/solars/starboard/aft) +"cvK" = ( +/obj/structure/table, +/obj/item/storage/box/lights/mixed{ + pixel_y = 5 + }, +/obj/item/stack/packageWrap, +/obj/item/hand_labeler, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"cvL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard/aft) +"cvM" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/greenglow, +/obj/machinery/gateway{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/gateway) +"cvN" = ( +/obj/machinery/gateway/centerstation, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/circuit/green{ + luminosity = 2 + }, +/area/gateway) +"cvO" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/greenglow, +/obj/machinery/gateway{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/gateway) +"cvP" = ( +/obj/machinery/door/poddoor{ + id = "trash"; + name = "disposal bay door" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plasteel/dark, +/area/maintenance/disposal) +"cvQ" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/cardboard, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/noticeboard{ + dir = 8; + pixel_x = 32 + }, +/turf/open/floor/plasteel/dark, +/area/gateway) +"cvR" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"cvS" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/solars/starboard/aft) +"cvT" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/greenglow, +/obj/machinery/gateway, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable, +/turf/open/floor/plasteel/dark, +/area/gateway) +"cvU" = ( +/obj/effect/turf_decal/box/corners, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/gateway{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/gateway) +"cvV" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"cvW" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall, +/area/gateway) +"cvX" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/dresser, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"cvY" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/table/wood, +/obj/effect/decal/cleanable/cobweb, +/obj/item/clothing/under/geisha{ + pixel_y = 5 + }, +/obj/item/toy/katana, +/obj/item/clothing/shoes/sandal, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"cvZ" = ( +/obj/machinery/light/small, +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/structure/noticeboard{ + dir = 8; + pixel_x = 32 + }, +/obj/item/wallframe/apc, +/obj/item/stack/cable_coil, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"cwa" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cwb" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/starboard/aft) +"cwc" = ( +/obj/machinery/atmospherics/components/binary/pump/on, +/obj/machinery/airlock_sensor/incinerator_atmos{ + pixel_x = 8; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/sign/warning/fire{ + pixel_x = -32 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/engine, +/area/maintenance/disposal/incinerator) +"cwd" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/sign/warning/fire{ + pixel_x = 32 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine, +/area/maintenance/disposal/incinerator) +"cwe" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/aft) +"cwf" = ( +/obj/structure/sign/poster/contraband/missing_gloves, +/turf/closed/wall/rust, +/area/maintenance/port/fore) +"cwg" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/barricade/wooden/crude, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"cwh" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/barricade/wooden/crude, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"cwi" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cwk" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/asteroid/airless, +/area/space/nearstation) +"cwl" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard/aft) +"cwm" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cwn" = ( +/obj/structure/sign/poster/official/twelve_gauge, +/turf/closed/wall, +/area/gateway) +"cwo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/wood, +/area/maintenance/port/fore) +"cwp" = ( +/turf/closed/wall, +/area/maintenance/port/fore) +"cwq" = ( +/turf/closed/wall/rust, +/area/maintenance/port/fore) +"cwr" = ( +/obj/machinery/door/poddoor/shutters{ + id = "gatewayshutters"; + name = "Gateway Chamber Shutters" + }, +/obj/machinery/button/door{ + id = "gatewayshutters"; + name = "Gateway Shutters"; + pixel_x = -26; + req_access_txt = "19" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/gateway) +"cws" = ( +/obj/machinery/power/apc{ + areastring = "/area/maintenance/solars/starboard/aft"; + name = "Starboard Quarter Solar APC"; + pixel_y = -26 + }, +/obj/structure/cable, +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/solars/starboard/aft) +"cwt" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/fore) +"cwu" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/landmark/xeno_spawn, +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/solars/starboard/aft) +"cwv" = ( +/obj/machinery/power/solar_control{ + dir = 8; + id = "aftstarboard"; + name = "Starboard Quarter Solar Control" + }, +/obj/effect/turf_decal/bot, +/obj/structure/cable, +/obj/structure/sign/warning/vacuum{ + pixel_x = 32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/solars/starboard/aft) +"cwx" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/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" + }, +/turf/open/floor/plasteel, +/area/security/main) +"cwy" = ( +/obj/structure/sign/poster/contraband/random, +/turf/closed/wall, +/area/maintenance/port/fore) +"cwz" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/maintenance/disposal/incinerator) +"cwA" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/incinerator_input{ + dir = 1 + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"cwB" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/mob/living/simple_animal/hostile/russian, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/port) +"cwC" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/structure/sign/warning/securearea{ + desc = "A warning sign which reads 'BOMB RANGE"; + name = "BOMB RANGE"; + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cwD" = ( +/obj/machinery/door/airlock/external{ + name = "External Airlock"; + req_access_txt = "13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard) +"cwE" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk, +/obj/effect/turf_decal/bot, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/bridge) +"cwF" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/blood/gibs/limb, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/port/fore) +"cwG" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"cwH" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"cwI" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/disposaloutlet, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/sign/warning/vacuum{ + pixel_x = -32 + }, +/obj/structure/sign/poster/contraband/random{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/disposal) +"cwJ" = ( +/obj/structure/mineral_door/wood{ + name = "The Gobbetting Barmaid" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/maintenance/port/fore) +"cwK" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/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/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/main) +"cwL" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/security/main) +"cwM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"cwN" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/disposal"; + dir = 1; + name = "Disposals APC"; + pixel_y = 26 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/disposal) +"cwO" = ( +/obj/structure/sign/poster/contraband/random{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"cwP" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cwQ" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/barricade/wooden/crude, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"cwR" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/structure/closet, +/obj/item/stack/packageWrap, +/obj/item/storage/bag/trash, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cwS" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/closet/emcloset/anchored, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/disposal) +"cwT" = ( +/obj/structure/sign/poster/contraband/random{ + pixel_x = 32 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/maintenance/port/fore) +"cwU" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cwV" = ( +/obj/structure/chair/stool/bar, +/turf/open/floor/wood, +/area/maintenance/port) +"cwW" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/frame/computer{ + anchored = 1; + dir = 4 + }, +/obj/effect/turf_decal/bot_white, +/obj/structure/noticeboard{ + dir = 4; + pixel_x = -27 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"cwX" = ( +/obj/machinery/conveyor{ + id = "garbage" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/disposal) +"cwY" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/structure/mirror{ + pixel_y = 26 + }, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/glasses/eyepatch{ + pixel_y = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"cwZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/disposal) +"cxa" = ( +/obj/effect/decal/remains/human, +/obj/effect/decal/cleanable/blood/old, +/obj/item/clothing/head/that{ + pixel_x = 1; + pixel_y = 6 + }, +/turf/open/floor/wood, +/area/maintenance/port/fore) +"cxb" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/blood/gibs/limb, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/maintenance/port/fore) +"cxc" = ( +/turf/open/floor/wood, +/area/maintenance/port/fore) +"cxd" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/vending/autodrobe/all_access, +/obj/structure/noticeboard{ + dir = 4; + pixel_x = -27 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"cxe" = ( +/obj/structure/chair/stool/bar, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/port/fore) +"cxf" = ( +/obj/structure/barricade/wooden, +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"cxg" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cxh" = ( +/obj/machinery/conveyor{ + id = "garbage" + }, +/obj/structure/sign/poster/contraband/random{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/disposal) +"cxi" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/item/reagent_containers/glass/bucket, +/obj/item/mop, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/disposal) +"cxj" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/disposal) +"cxk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/aft) +"cxl" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cxm" = ( +/obj/machinery/mass_driver{ + id = "trash" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/disposal) +"cxn" = ( +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/wood{ + icon_state = "wood-broken3" + }, +/area/maintenance/port/fore) +"cxo" = ( +/obj/structure/closet/cardboard, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/maintenance/port/fore) +"cxp" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cxq" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cxr" = ( +/obj/structure/sign/poster/contraband/clown, +/turf/closed/wall/rust, +/area/maintenance/port/fore) +"cxs" = ( +/obj/machinery/door/airlock/external{ + name = "Labor Camp Shuttle Airlock"; + req_access_txt = "2"; + shuttledocked = 1 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/processing) +"cxt" = ( +/obj/structure/sign/poster/contraband/random, +/turf/closed/wall/rust, +/area/maintenance/port/fore) +"cxu" = ( +/obj/structure/grille, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cxv" = ( +/obj/machinery/cryopod{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/locker) +"cxw" = ( +/obj/machinery/computer/cryopod{ + dir = 1; + pixel_y = -26 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/locker) +"cxy" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/fore) +"cxz" = ( +/obj/machinery/door/airlock/external{ + name = "Labor Camp Shuttle Airlock"; + shuttledocked = 1 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/processing) +"cxB" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard/aft) +"cxD" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/fore) +"cxE" = ( +/obj/machinery/camera/motion{ + c_tag = "Armoury External" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space/nearstation) +"cxH" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"cxI" = ( +/obj/structure/sign/warning/vacuum/external, +/turf/closed/wall/rust, +/area/maintenance/port/fore) +"cxK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/fore) +"cxL" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet{ + name = "engineering locker" + }, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/under/rank/engineer, +/obj/item/clothing/shoes/workboots, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/aft) +"cxN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/fore) +"cxP" = ( +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "12;47" + }, +/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/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/fore) +"cxQ" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Toxins Lab Maintenance"; + req_access_txt = "8" + }, +/obj/structure/sign/directions/evac{ + dir = 4; + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard) +"cxS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"cxT" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/engine/atmos) +"cxU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/aft) +"cxV" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/seed_extractor, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"cxY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/fore) +"cyb" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "Engineering"; + name = "Engineering Blast Doors" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/engine/break_room) +"cyc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/aft) +"cyd" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/wood, +/area/maintenance/port/fore) +"cye" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/port/fore"; + dir = 1; + name = "Port Bow Maintenance APC"; + pixel_y = 26 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/fore) +"cyf" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/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/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"cyg" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"cyh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 1 + }, +/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 = "2-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/security/brig) +"cyj" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"cyl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/girder/displaced, +/obj/structure/grille/broken, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/fore) +"cym" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/public/glass{ + name = "Engineering Foyer" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"cyn" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Engineering Foyer" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"cyp" = ( +/obj/machinery/computer/station_alert, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"cys" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical{ + pixel_y = 4 + }, +/obj/item/storage/belt/utility, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/obj/machinery/camera{ + c_tag = "Engineering Desk"; + name = "engineering camera"; + network = list("ss13","engine") + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"cyu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/barricade/wooden/crude, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/fore) +"cyv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/barricade/wooden/crude, +/turf/open/floor/plating, +/area/maintenance/port) +"cyx" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"cyy" = ( +/obj/structure/sign/warning/nosmoking, +/turf/closed/wall, +/area/maintenance/port/aft) +"cyz" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/crowbar/red, +/obj/item/restraints/handcuffs, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/revolver{ + pixel_y = 32 + }, +/obj/structure/grille/broken, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"cyA" = ( +/obj/machinery/door/poddoor{ + id = "chapelgun"; + name = "Chapel Launcher Door" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"cyB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small, +/obj/structure/grille/broken, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/aft) +"cyC" = ( +/obj/machinery/computer/slot_machine, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot_white, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"cyD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/meter, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cyE" = ( +/obj/machinery/computer/slot_machine, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot_white, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"cyF" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/item/storage/box/evidence{ + pixel_y = 4 + }, +/obj/item/taperecorder{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/grenade/flashbang, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"cyG" = ( +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"cyI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sink/kitchen{ + desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; + name = "old sink"; + pixel_y = 28 + }, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/fore) +"cyK" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/item/storage/secure/briefcase{ + pixel_y = 6 + }, +/obj/item/radio{ + pixel_y = 6 + }, +/turf/open/floor/plasteel, +/area/security/main) +"cyL" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/directional{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"cyM" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/directional{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"cyO" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/directional{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"cyP" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/directional{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"cyV" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/directional{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"cyW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/grille/broken, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/aft) +"cyX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/vending/assist, +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/sign/poster/contraband/punch_shit{ + pixel_x = 30 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"cyY" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"cyZ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"cza" = ( +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/sign/poster/official/space_cops{ + pixel_x = 32; + pixel_y = -32 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/security/main) +"czc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/maintenance/port/fore) +"czd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard/aft) +"cze" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/engine/engineering) +"czf" = ( +/obj/machinery/power/emitter/anchored{ + dir = 4; + state = 2 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"czg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/maintenance/port/fore) +"czl" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"czn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"czo" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/directional, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"czp" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/directional{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"czq" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/remains/human, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"czr" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/directional{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"czs" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/directional{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"czt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/grille/broken, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"czu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/book/manual/wiki/engineering_hacking{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/stack/cable_coil, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/pen, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"czv" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"czw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/grille/broken, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/aft) +"czz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/bodybag{ + pixel_y = 5 + }, +/obj/item/shovel, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"czB" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical, +/obj/item/extinguisher/mini, +/obj/item/tank/internals/oxygen/yellow, +/obj/item/clothing/mask/gas, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"czC" = ( +/obj/item/trash/candy, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/wood, +/area/maintenance/port/fore) +"czD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/wood, +/area/maintenance/port/fore) +"czG" = ( +/obj/structure/closet/crate/coffin, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"czK" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/barricade/wooden/crude, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"czL" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/barricade/wooden/crude, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/dark, +/area/maintenance/port/fore) +"czP" = ( +/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/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/maintenance/fore) +"czR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"czS" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + id_tag = "innerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"czU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/aft) +"czV" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + id_tag = "outerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"czW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/grille/broken, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/aft) +"czY" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/smes/engineering, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8; + icon_state = "intact" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/disposal/incinerator) +"czZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cAd" = ( +/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/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"cAf" = ( +/obj/structure/sign/departments/holy, +/turf/closed/wall, +/area/medical/morgue) +"cAg" = ( +/obj/structure/sign/poster/contraband/missing_gloves, +/turf/closed/wall/rust, +/area/maintenance/port) +"cAi" = ( +/obj/structure/closet/crate/coffin, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"cAj" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/wood, +/area/chapel/office) +"cAk" = ( +/obj/structure/closet/crate/coffin, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/noticeboard{ + dir = 8; + pixel_x = 32 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"cAo" = ( +/obj/effect/turf_decal/bot, +/obj/structure/frame/computer{ + anchored = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"cAp" = ( +/obj/structure/sign/departments/holy, +/turf/closed/wall/rust, +/area/chapel/office) +"cAq" = ( +/obj/effect/turf_decal/bot, +/obj/structure/frame/computer{ + anchored = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"cAr" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/the_griffin{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"cAs" = ( +/obj/structure/table, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/medical/gauze, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"cAu" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/airlock/security/glass{ + id_tag = "Abandoned Cell"; + name = "Abandoned Cell" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"cAy" = ( +/obj/structure/table, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/suit/armor/vest, +/obj/item/clothing/neck/stethoscope, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"cAB" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/item/clothing/suit/jacket{ + desc = "All the class of a trenchcoat without the security fibers."; + icon_state = "greydet"; + name = "trenchcoat" + }, +/obj/item/clothing/suit/jacket{ + desc = "All the class of a trenchcoat without the security fibers."; + icon_state = "detective"; + name = "trenchcoat" + }, +/obj/item/clothing/head/fedora, +/obj/item/clothing/head/fedora{ + icon_state = "detective" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"cAC" = ( +/obj/effect/turf_decal/bot, +/obj/structure/punching_bag, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/noticeboard{ + dir = 8; + pixel_x = 32 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"cAD" = ( +/obj/machinery/door/airlock/maintenance{ + name = "chapel maintenance"; + req_one_access_txt = "22" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"cAF" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"cAG" = ( +/obj/structure/grille, +/obj/structure/barricade/wooden, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"cAH" = ( +/obj/structure/sign/departments/security, +/turf/closed/wall, +/area/maintenance/fore) +"cAI" = ( +/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/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/maintenance/external{ + name = "mass driver intersection"; + req_access_txt = "12" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"cAN" = ( +/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/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"cAO" = ( +/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/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fore) +"cAP" = ( +/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/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"cAU" = ( +/obj/structure/sign/warning/vacuum/external, +/turf/closed/wall, +/area/maintenance/fore) +"cAX" = ( +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "Emergency Research Blast Door" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/science/research) +"cAY" = ( +/obj/docking_port/stationary{ + dheight = 1; + dir = 8; + dwidth = 12; + height = 17; + id = "syndicate_nw"; + name = "northwest of station"; + width = 23 + }, +/turf/open/space/basic, +/area/space) +"cBb" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"cBc" = ( +/obj/structure/sign/poster/contraband/random, +/turf/closed/wall, +/area/maintenance/fore) +"cBe" = ( +/obj/machinery/door/airlock/maintenance{ + name = "chapel maintenance"; + req_one_access_txt = "22" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"cBf" = ( +/obj/structure/grille, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fore) +"cBg" = ( +/obj/structure/closet/crate, +/obj/item/clothing/suit/hooded/chaplain_hoodie, +/obj/item/reagent_containers/food/drinks/bottle/holywater, +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"cBh" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/grunge{ + name = "Apiary"; + req_access_txt = "22" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"cBi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"cBl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"cBm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/grille, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/aft) +"cBn" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/computer/security/telescreen/prison{ + dir = 4; + pixel_x = -24 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/computer/security{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"cBo" = ( +/obj/structure/closet/secure_closet/security/sec, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/light{ + dir = 8 + }, +/obj/item/gun/energy/e_gun/advtaser, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"cBp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/aft) +"cBq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/engine/atmos) +"cBr" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/structure/grille/broken, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft) +"cBs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cBu" = ( +/obj/structure/table/reinforced, +/obj/item/clipboard, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/item/clothing/mask/gas/sechailer/swat, +/obj/item/screwdriver, +/turf/open/floor/plasteel, +/area/security/main) +"cBv" = ( +/obj/structure/flora/grass/jungle, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/port/aft) +"cBw" = ( +/obj/structure/flora/rock/pile, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/port/aft) +"cBx" = ( +/obj/structure/flora/ausbushes/palebush, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/port/aft) +"cBy" = ( +/obj/structure/flora/ausbushes/lavendergrass, +/obj/structure/flora/ausbushes/sparsegrass, +/obj/structure/flora/ausbushes/ywflowers, +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/palebush, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/port/aft) +"cBz" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"cBA" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"cBB" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"cBC" = ( +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"cBF" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/pen, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/starboard) +"cBH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/engine/atmos) +"cBI" = ( +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/port/aft) +"cBJ" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/starboard/aft) +"cBQ" = ( +/obj/machinery/door/airlock/external{ + name = "External Airlock"; + req_access_txt = "13" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/central) +"cBR" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/sign/departments/security{ + pixel_y = -32 + }, +/obj/structure/flora/ausbushes/palebush, +/obj/machinery/light, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/port/aft) +"cBT" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/sign/warning/electricshock{ + pixel_y = -32 + }, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/ausbushes/fernybush, +/obj/machinery/light/small, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/port/aft) +"cBU" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cBV" = ( +/obj/machinery/door/airlock/external{ + name = "External Airlock"; + req_access_txt = "13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/central) +"cBW" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Cabin_3Privacy"; + name = "Cabin 3 Privacy Shutter" + }, +/turf/open/floor/plating, +/area/crew_quarters/locker) +"cBX" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Unit_3Privacy"; + name = "Unit 3 Privacy Shutter" + }, +/turf/open/floor/plating, +/area/crew_quarters/toilet/restrooms) +"cBY" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Unit_2Privacy"; + name = "Unit 2 Privacy Shutter" + }, +/turf/open/floor/plating, +/area/crew_quarters/toilet/restrooms) +"cBZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Unit_1Privacy"; + name = "Unit 1 Privacy Shutter" + }, +/turf/open/floor/plating, +/area/crew_quarters/toilet/restrooms) +"cCa" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/sign/departments/security{ + pixel_y = -32 + }, +/obj/structure/flora/grass/jungle/b, +/obj/machinery/light, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/port/aft) +"cCb" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/sign/warning/electricshock{ + pixel_y = -32 + }, +/obj/structure/flora/ausbushes/palebush, +/obj/machinery/light/small, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/port/aft) +"cCe" = ( +/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/maintenance/port/aft) +"cCg" = ( +/obj/structure/transit_tube/curved/flipped{ + dir = 1 + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"cCh" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cCi" = ( +/obj/structure/window/reinforced, +/obj/structure/flora/grass/jungle/b, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"cCj" = ( +/obj/structure/window/reinforced, +/obj/structure/flora/grass/jungle, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"cCk" = ( +/obj/structure/window/reinforced, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"cCl" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/starboard/aft) +"cCo" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cCp" = ( +/obj/structure/sign/poster/official/random, +/turf/closed/wall/rust, +/area/security/prison) +"cCq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/engine/engineering) +"cCr" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/closet/secure_closet/personal, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"cCt" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard/fore) +"cCy" = ( +/obj/machinery/door/airlock/maintenance{ + name = "chapel maintenance"; + req_one_access_txt = "22" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"cCz" = ( +/obj/structure/closet{ + name = "maid locker" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/item/clothing/gloves/color/white, +/obj/item/clothing/under/maid{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/clothing/under/janimaid, +/obj/item/clothing/accessory/maidapron{ + pixel_x = -4; + pixel_y = -4 + }, +/obj/item/clothing/shoes/laceup, +/obj/structure/mirror{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"cCA" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/fore) +"cCB" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/obj/structure/flora/ausbushes/lavendergrass, +/obj/structure/flora/ausbushes/fernybush, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/fore) +"cCC" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/item/clipboard, +/obj/item/reagent_containers/food/snacks/grown/wheat, +/obj/item/reagent_containers/food/snacks/grown/watermelon, +/obj/item/reagent_containers/food/snacks/grown/citrus/orange, +/obj/item/reagent_containers/food/snacks/grown/grapes, +/obj/machinery/door/window/eastright{ + dir = 8; + name = "Hydroponics Desk"; + req_access_txt = "35" + }, +/turf/open/floor/plating, +/area/hydroponics) +"cCE" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/box/mousetraps{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/flashlight, +/obj/structure/noticeboard{ + pixel_y = 30 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"cCF" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/delivery, +/obj/item/reagent_containers/glass/bucket, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"cCH" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/door/window/southleft{ + dir = 1; + name = "Security Desk"; + req_one_access_txt = "63" + }, +/obj/item/storage/fancy/donut_box, +/turf/open/floor/plating, +/area/hallway/secondary/exit/departure_lounge) +"cCI" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/barricade/wooden/crude, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"cCM" = ( +/obj/structure/janitorialcart, +/obj/effect/turf_decal/delivery, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/lusty_xenomorph{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"cCN" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/fore) +"cCP" = ( +/obj/structure/bookcase/random/reference, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/fore) +"cCR" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/grille/broken, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"cCS" = ( +/obj/machinery/door/poddoor/shutters{ + id = "maidbay"; + name = "Maid Bay" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/button/door{ + id = "maidbay"; + name = "Maid Bay Toggle"; + pixel_x = -24 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"cCT" = ( +/obj/machinery/door/poddoor/shutters{ + id = "maidbay"; + name = "Maid Bay" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"cCU" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"cCX" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/space, +/area/engine/atmos) +"cCY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/random{ + pixel_x = 32; + pixel_y = -32 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"cDb" = ( +/obj/structure/sign/warning/nosmoking, +/turf/closed/wall, +/area/maintenance/fore) +"cDc" = ( +/obj/machinery/power/apc{ + areastring = "/area/maintenance/fore"; + dir = 1; + name = "Fore Maintenance APC"; + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"cDd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"cDe" = ( +/obj/effect/decal/cleanable/dirt, +/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/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"cDh" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"cDj" = ( +/obj/structure/lattice/catwalk, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plating/airless, +/area/solar/port/fore) +"cDk" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/fore) +"cDm" = ( +/obj/structure/lattice/catwalk, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plating/airless, +/area/solar/starboard/fore) +"cDn" = ( +/obj/structure/lattice/catwalk, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plating/airless, +/area/solar/port/aft) +"cDo" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/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" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"cDp" = ( +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/hallway/secondary/entry) +"cDq" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"cDr" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-02"; + pixel_y = 3 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/security/main) +"cDs" = ( +/obj/structure/lattice/catwalk, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plating/airless, +/area/solar/starboard/aft) +"cDt" = ( +/obj/effect/decal/cleanable/dirt, +/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/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"cDv" = ( +/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/effect/decal/cleanable/dirt, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"cDx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/maintenance/fore) +"cDy" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"cDz" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/machinery/button/door{ + id = "medbay_front_door"; + name = "Medbay Doors Toggle"; + pixel_x = 24; + pixel_y = 24 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) +"cDA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"cDB" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"cDD" = ( +/obj/effect/turf_decal/tile/red, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"cDE" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/obj/structure/grille/broken, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"cDF" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"cDG" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"cDH" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/airlock/security{ + name = "Armoury"; + req_access_txt = "3" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"cDI" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/dirt, +/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" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"cDJ" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/blood/old, +/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" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"cDK" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"cDM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/vacuum{ + pixel_x = 32 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"cDO" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall, +/area/maintenance/fore) +"cDP" = ( +/obj/structure/sign/poster/contraband/random, +/turf/closed/wall/rust, +/area/maintenance/fore) +"cDR" = ( +/obj/structure/bookcase/random/reference, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/fore) +"cDS" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Armoury"; + req_access_txt = "58" + }, +/obj/machinery/door/poddoor/shutters{ + id = "frontarmory"; + name = "Front Armoury Shutter" + }, +/obj/machinery/button/door{ + id = "frontarmory"; + name = "Armoury Shutter Toggle"; + pixel_y = 24; + req_access_txt = "3" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"cDT" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-05" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/fore) +"cDU" = ( +/obj/structure/sign/warning/fire, +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"cDW" = ( +/obj/structure/chair/sofa/right{ + color = "#c45c57" + }, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/maintenance/starboard/fore) +"cDX" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/chair/sofa{ + color = "#c45c57" + }, +/obj/structure/sign/poster/contraband/random{ + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/maintenance/starboard/fore) +"cDY" = ( +/obj/structure/chair/sofa/corner{ + color = "#c45c57" + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/starboard/fore) +"cDZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/fore) +"cEa" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/photocopier, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot_white, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/sign/poster/contraband/random{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/fore) +"cEb" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/fore) +"cEe" = ( +/obj/structure/table/wood, +/obj/item/folder{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/storage/pill_bottle/dice{ + pixel_x = -4 + }, +/obj/item/pen/red{ + pixel_x = 4; + pixel_y = 4 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/starboard/fore) +"cEg" = ( +/obj/structure/sign/poster/contraband/random, +/turf/closed/wall, +/area/maintenance/starboard/fore) +"cEh" = ( +/obj/machinery/light/small, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"cEi" = ( +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/dirt, +/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/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/fore) +"cEj" = ( +/obj/structure/bookcase/random/nonfiction, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/fore) +"cEk" = ( +/obj/structure/bookcase/random/nonfiction, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/fore) +"cEl" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/remains/human, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/fore) +"cEm" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped, +/obj/machinery/button/ignition{ + id = "Incinerator"; + pixel_x = -6; + pixel_y = -24 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/disposal/incinerator) +"cEn" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/clothing/gloves/color/fyellow, +/obj/item/storage/toolbox/electrical, +/turf/open/floor/plating, +/area/maintenance/aft) +"cEp" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/barricade/wooden/crude, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/fore) +"cEq" = ( +/obj/effect/decal/cleanable/dirt, +/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/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard/fore) +"cEr" = ( +/obj/structure/table/wood, +/obj/machinery/computer/libraryconsole/bookmanagement{ + pixel_y = 5 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/noticeboard{ + dir = 4; + pixel_x = -27 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/fore) +"cEs" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/fore) +"cEu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/wood, +/area/maintenance/starboard/fore) +"cEv" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/dresser, +/turf/open/floor/wood, +/area/maintenance/starboard/fore) +"cEw" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/aft) +"cEx" = ( +/obj/structure/bookcase/random/fiction, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/fore) +"cEz" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/storage/belt/utility, +/obj/item/clothing/head/welding, +/obj/item/clothing/glasses/welding, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"cEA" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/computer/med_data/laptop, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"cEB" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/obj/structure/sign/poster/contraband/random{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"cEC" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/box, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"cED" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/obj/structure/mirror{ + pixel_x = -26; + pixel_y = 28 + }, +/obj/item/shard, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"cEE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"cEF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/status_display/evac{ + pixel_x = 32; + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"cEG" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"cEH" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/noticeboard{ + dir = 4; + pixel_x = -27 + }, +/obj/item/clothing/gloves/color/latex, +/obj/item/hemostat, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"cEL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/rack, +/obj/item/reagent_containers/blood/random{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/reagent_containers/blood/random, +/obj/item/reagent_containers/blood/random{ + pixel_x = -4; + pixel_y = -4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"cEM" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/restraints/handcuffs/cable/red, +/obj/item/clothing/suit/apron/surgical, +/obj/item/weldingtool/mini, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"cEQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/delivery, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/sign/poster/contraband/random{ + pixel_x = 32 + }, +/obj/structure/closet/crate/freezer{ + name = "organ storage" + }, +/obj/item/organ/tail/cat, +/obj/item/organ/tail/cat, +/obj/item/organ/ears/cat, +/obj/item/organ/ears/cat, +/obj/item/organ/heart, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"cEW" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/barricade/wooden/crude, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"cEX" = ( +/obj/structure/sign/departments/medbay/alt, +/turf/closed/wall/rust, +/area/maintenance/fore) +"cEY" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/barricade/wooden/crude, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/biohazard{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/fore) +"cEZ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/computer/arcade, +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) +"cFf" = ( +/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" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"cFg" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"cFh" = ( +/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" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"cFi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard/fore) +"cFj" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"cFk" = ( +/obj/structure/bookcase/random/fiction, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/fore) +"cFo" = ( +/obj/effect/decal/cleanable/dirt, +/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/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard/fore) +"cFp" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/barricade/wooden/crude, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/fore) +"cFr" = ( +/obj/effect/decal/cleanable/dirt, +/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" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"cFs" = ( +/obj/effect/decal/cleanable/dirt, +/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" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard/fore) +"cFt" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "atmosventn2o"; + name = "Emergency N2O Vent Toggle"; + pixel_x = 6; + pixel_y = -24 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"cFv" = ( +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "12;47" + }, +/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/maintenance/starboard) +"cFy" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/fore) +"cFz" = ( +/obj/structure/sign/warning/vacuum, +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"cFA" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/sign/poster/official/enlist{ + pixel_y = -32 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cFB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"cFC" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/aft) +"cFE" = ( +/obj/structure/plasticflaps/opaque, +/obj/machinery/door/window/northleft{ + dir = 2; + name = "Cargo Delivery Access"; + req_access_txt = "50" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit/departure_lounge) +"cFF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"cFH" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/barricade/wooden/crude, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/fore) +"cFJ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Medbay" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"cFK" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/hallway/primary/port) +"cFN" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"cFS" = ( +/obj/structure/lattice/catwalk, +/obj/effect/landmark/carpspawn, +/turf/open/space/basic, +/area/solar/port/fore) +"cFT" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/obj/structure/grille/broken, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/fore) +"cFU" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"cFW" = ( +/obj/effect/decal/cleanable/dirt, +/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/structure/sign/directions/evac{ + dir = 1; + pixel_y = 24 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port) +"cFY" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"cFZ" = ( +/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/light{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/primary/fore) +"cGd" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/wood{ + icon_state = "wood-broken3" + }, +/area/maintenance/starboard/fore) +"cGf" = ( +/obj/structure/lattice/catwalk, +/obj/structure/transit_tube/crossing, +/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/plating/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/fore) +"cGh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"cGi" = ( +/obj/structure/flora/grass/jungle/b, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/fore) +"cGk" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/hollow/reinforced/middle{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"cGl" = ( +/obj/structure/flora/rock, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/fore) +"cGo" = ( +/obj/structure/flora/ausbushes/lavendergrass, +/obj/structure/flora/ausbushes/sparsegrass, +/obj/structure/flora/ausbushes/ywflowers, +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/palebush, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/fore) +"cGp" = ( +/obj/structure/flora/ausbushes/palebush, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/fore) +"cGq" = ( +/obj/structure/flora/ausbushes/palebush, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"cGs" = ( +/obj/structure/lattice/catwalk, +/obj/structure/sign/warning/securearea{ + pixel_x = -32; + pixel_y = -32 + }, +/obj/structure/transit_tube/horizontal{ + dir = 1 + }, +/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/plating/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/fore) +"cGu" = ( +/obj/structure/transit_tube/curved/flipped{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/structure/lattice/catwalk, +/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/plating/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/fore) +"cGy" = ( +/obj/item/target/clown, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/engine/vacuum, +/area/science/test_area) +"cGz" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/genericbush, +/obj/structure/flora/ausbushes/ppflowers, +/obj/structure/flora/ausbushes/sunnybush, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/grass, +/area/hallway/secondary/exit/departure_lounge) +"cGA" = ( +/obj/docking_port/stationary/random{ + dir = 2; + id = "pod_lavaland1"; + name = "lavaland" + }, +/turf/open/space, +/area/space/nearstation) +"cGB" = ( +/obj/machinery/door/airlock/external{ + name = "Medical Escape Pod" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"cGC" = ( +/obj/structure/transit_tube/crossing, +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"cGD" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/grass, +/area/security/prison) +"cGL" = ( +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "12;5" + }, +/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" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"cGM" = ( +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "12;5" + }, +/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/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"cGN" = ( +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "12;5" + }, +/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/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) +"cGS" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"cGT" = ( +/obj/machinery/door/airlock/maintenance{ + name = "mining dock maintenance"; + req_access_txt = "48" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard) +"cGU" = ( +/obj/machinery/door/airlock/maintenance{ + name = "cargo maintenance"; + req_one_access_txt = "31;48" + }, +/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/maintenance/starboard) +"cGV" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/turf_decal/box, +/obj/machinery/power/solar{ + id = "forestarboard"; + name = "Fore-Starboard Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard/fore) +"cGW" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/starboard/fore) +"cGX" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/box, +/obj/machinery/power/solar{ + id = "forestarboard"; + name = "Fore-Starboard Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard/fore) +"cGZ" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/starboard/fore) +"cHa" = ( +/turf/closed/wall/r_wall, +/area/maintenance/solars/starboard/fore) +"cHb" = ( +/turf/closed/wall, +/area/maintenance/solars/starboard/fore) +"cHc" = ( +/turf/closed/wall/rust, +/area/maintenance/solars/starboard/fore) +"cHf" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/asteroid/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/maintenance/central/secondary) +"cHh" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cHi" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cHj" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/sign/poster/official/random{ + pixel_y = -32 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cHk" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cHm" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/aft) +"cHo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"cHu" = ( +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cHv" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/machinery/door/airlock/command{ + name = "Chief Engineer's Office"; + req_access_txt = "56" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"cHw" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/security/main) +"cHx" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"cHA" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/security/main) +"cHB" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/door/airlock/security/glass{ + name = "Brig"; + req_access_txt = "63" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"cHC" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cHD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/aft) +"cHE" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/disposal/bin, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/structure/window/reinforced, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"cHF" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/gloves/color/latex, +/obj/item/storage/box/monkeycubes{ + pixel_x = 2; + pixel_y = 5 + }, +/obj/item/storage/box/monkeycubes{ + pixel_y = 3 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"cHH" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cHI" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cHJ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/table, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/machinery/light, +/obj/machinery/reagentgrinder{ + pixel_y = 5 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/machinery/newscaster{ + pixel_x = 32; + pixel_y = -30 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"cHK" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"cHS" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cHT" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/aft) +"cHV" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cHW" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cHY" = ( +/obj/machinery/photocopier, +/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/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/security/main) +"cIa" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Security Office"; + req_access_txt = "63" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"cIc" = ( +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"cIe" = ( +/obj/machinery/door/airlock/maintenance{ + name = "xenobiology maintenance"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/fore) +"cIf" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/security/execution/education) +"cIi" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/structure/sign/plaques/kiddie/library{ + pixel_x = 32; + pixel_y = -32 + }, +/obj/effect/landmark/blobstart, +/turf/open/floor/wood, +/area/maintenance/starboard/fore) +"cIj" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + aiControlDisabled = 1; + id_tag = "justicedoor_2"; + name = "Justice Chamber"; + req_access_txt = "3" + }, +/obj/machinery/button/door{ + id = "justicedoor_2"; + name = "Justice Door Lock"; + normaldoorcontrol = 1; + pixel_x = 8; + pixel_y = 24; + specialfunctions = 4 + }, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) +"cIm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/glass, +/obj/item/shovel/spade, +/obj/item/cultivator{ + pixel_x = 6 + }, +/obj/item/plant_analyzer, +/obj/item/reagent_containers/spray/plantbgone{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/seeds/watermelon, +/obj/item/seeds/apple, +/obj/item/seeds/wheat, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"cIn" = ( +/obj/structure/table, +/obj/item/stock_parts/subspace/ansible, +/obj/item/stock_parts/subspace/ansible, +/obj/item/stock_parts/subspace/ansible, +/obj/item/stock_parts/subspace/crystal, +/obj/item/stock_parts/subspace/crystal, +/obj/item/stock_parts/subspace/crystal, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/turf/open/floor/plasteel/dark, +/area/storage/tcom) +"cIq" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/stack/sheet/plasteel{ + amount = 10; + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/stack/cable_coil{ + pixel_y = 4 + }, +/obj/item/stack/cable_coil, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/dark, +/area/construction/mining/aux_base) +"cIr" = ( +/obj/effect/turf_decal/box, +/obj/machinery/shower{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/item/bikehorn/rubberducky, +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/obj/effect/landmark/start/assistant, +/obj/machinery/button/door{ + id = "Shower_1"; + name = "Shower 1 Privacy Lock"; + normaldoorcontrol = 1; + pixel_x = 24; + pixel_y = -8; + specialfunctions = 4 + }, +/obj/machinery/button/door{ + id = "Shower_1Privacy"; + name = "Shower 1 Privacy Toggle"; + pixel_x = 24; + pixel_y = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/toilet/restrooms) +"cIt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/machinery/door/airlock/engineering{ + name = "Telecomms Storage"; + req_access_txt = "61" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/storage/tcom) +"cIw" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"cIA" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"cIB" = ( +/obj/structure/sign/departments/cargo, +/turf/closed/wall, +/area/maintenance/starboard/fore) +"cIG" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 8; + name = "hos sorting disposal pipe"; + sortType = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"cIH" = ( +/turf/closed/wall, +/area/storage/tcom) +"cIJ" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/item/stock_parts/micro_laser{ + desc = "A tiny laser used in certain devices. A lil left."; + pixel_x = -6 + }, +/obj/item/stock_parts/micro_laser{ + desc = "A tiny laser used in certain devices. A lil left."; + pixel_x = -6 + }, +/obj/item/stock_parts/micro_laser{ + desc = "A tiny laser used in certain devices. A lil left."; + pixel_x = -6 + }, +/obj/item/stock_parts/micro_laser{ + desc = "A tiny laser used in certain devices. A lil left."; + pixel_x = -6 + }, +/obj/item/stock_parts/micro_laser{ + desc = "A tiny laser used in certain devices. A lil left."; + pixel_x = -6 + }, +/obj/item/stock_parts/manipulator, +/obj/item/stock_parts/manipulator, +/obj/item/stock_parts/manipulator, +/obj/item/stock_parts/manipulator, +/obj/item/stock_parts/capacitor{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/storage/tcom) +"cIK" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/remains/human, +/obj/item/paper/crumpled{ + info = "This isn't funny, I'm trapped on the least fun room on the station."; + name = "poorly written complaint" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/fore) +"cIM" = ( +/obj/structure/sign/poster/contraband/random, +/turf/closed/wall, +/area/storage/tcom) +"cIN" = ( +/obj/structure/table/glass, +/obj/item/shovel/spade, +/obj/item/plant_analyzer, +/obj/item/cultivator{ + pixel_x = 6 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"cIO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/sign/warning/securearea, +/turf/closed/wall, +/area/storage/tcom) +"cIP" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"cIQ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/machinery/light, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/obj/structure/sign/warning/electricshock{ + pixel_y = -32 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"cIS" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Prison Yard" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "PCell 3Lock"; + name = "Long-Term Cell 3 Shutter" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"cIV" = ( +/turf/closed/wall, +/area/construction/mining/aux_base) +"cIX" = ( +/turf/open/floor/plating, +/area/construction/mining/aux_base) +"cIY" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/construction/mining/aux_base) +"cIZ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"cJb" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/pipe_dispenser, +/obj/structure/extinguisher_cabinet{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/dark, +/area/construction/mining/aux_base) +"cJc" = ( +/turf/closed/wall/rust, +/area/library) +"cJe" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Long-Term Cell 3"; + req_access_txt = "2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/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" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"cJi" = ( +/obj/machinery/door/airlock/mining{ + name = "Auxiliary Base"; + req_one_access_txt = "32;47;48" + }, +/turf/open/floor/plasteel/dark, +/area/construction/mining/aux_base) +"cJk" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/computer/camera_advanced/base_construction{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/construction/mining/aux_base) +"cJm" = ( +/obj/structure/sign/poster/contraband/random, +/turf/closed/wall/rust, +/area/maintenance/starboard/fore) +"cJo" = ( +/obj/docking_port/stationary{ + area_type = /area/construction/mining/aux_base; + dheight = 4; + dir = 8; + dwidth = 4; + height = 9; + id = "aux_base_zone"; + name = "aux base zone"; + roundstart_template = /datum/map_template/shuttle/aux_base/default; + width = 9 + }, +/turf/open/floor/plating, +/area/construction/mining/aux_base) +"cJp" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cJq" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/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/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"cJs" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1, +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"cJu" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/computer/shuttle/mining{ + dir = 4; + req_access = null + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/construction/mining/aux_base) +"cJw" = ( +/obj/machinery/door/poddoor/shutters{ + id = "aux_base_shutters"; + name = "Auxillary Base Shutters" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/construction/mining/aux_base) +"cJx" = ( +/obj/structure/girder, +/obj/structure/grille/broken, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cJz" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall, +/area/construction/mining/aux_base) +"cJC" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/reagent_dispensers/watertank/high, +/obj/item/reagent_containers/glass/bucket, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"cJD" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/fore) +"cJE" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/packageWrap, +/obj/item/wallframe/camera, +/obj/item/wallframe/camera, +/obj/item/wallframe/camera, +/obj/item/wallframe/camera, +/obj/machinery/button/door{ + id = "aux_base_shutters"; + name = "Auxiliary Base Shutters Toggle"; + pixel_x = 24; + pixel_y = 6; + req_one_access_txt = "32;47;48" + }, +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/turf/open/floor/plasteel/dark, +/area/construction/mining/aux_base) +"cJF" = ( +/obj/machinery/door/airlock/mining{ + name = "Auxiliary Base"; + req_one_access_txt = "32;47;48" + }, +/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" + }, +/turf/open/floor/plasteel/dark, +/area/construction/mining/aux_base) +"cJG" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/reagent_dispensers/watertank/high, +/obj/item/reagent_containers/glass/bucket, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Prison Yard Garden"; + dir = 1; + name = "prison camera"; + network = list("ss13","prison") + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"cJJ" = ( +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/obj/machinery/door/airlock/medical/glass{ + id_tag = "medbay_front_door"; + name = "Medbay"; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/dark, +/area/medical/medbay/central) +"cJK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"cJL" = ( +/obj/structure/sign/departments/cargo, +/turf/closed/wall, +/area/construction/mining/aux_base) +"cJM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"cJN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cJO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"cJP" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/power/apc{ + areastring = "/area/construction/mining/aux_base"; + name = "Auxillary Base Construction APC"; + pixel_y = -23 + }, +/turf/open/floor/plasteel/dark, +/area/construction/mining/aux_base) +"cJQ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/fore) +"cJR" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/warning/vacuum/external{ + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/construction/mining/aux_base) +"cJW" = ( +/obj/machinery/light/small, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard/fore) +"cJY" = ( +/obj/machinery/door/firedoor, +/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/airlock/atmos{ + name = "Atmospherics Desk"; + req_access_txt = "24" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"cKa" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/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/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cKb" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cKd" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/sign/poster/official/random{ + pixel_y = -32 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/primary/fore) +"cKf" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"cKg" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"cKi" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/lattice/catwalk, +/obj/effect/landmark/carpspawn, +/turf/open/floor/plating/airless, +/area/solar/port/aft) +"cKj" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/lattice/catwalk, +/obj/effect/landmark/carpspawn, +/turf/open/floor/plating/airless, +/area/solar/starboard/aft) +"cKk" = ( +/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/effect/decal/cleanable/dirt, +/obj/structure/sign/directions/supply{ + dir = 1; + pixel_y = 24 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/fore) +"cKm" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/security/main"; + name = "Security Office APC"; + pixel_y = -24 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"cKn" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"cKo" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/security/main) +"cKp" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"cKr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/maintenance{ + name = "atmospherics maintenance"; + req_access_txt = "24" + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/maintenance/aft) +"cKu" = ( +/obj/machinery/door/firedoor, +/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/airlock/engineering{ + name = "Engineering Desk"; + req_one_access_txt = "10;24" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/break_room) +"cKz" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/red, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cKC" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/command{ + name = "Head of Security's Office"; + req_access_txt = "58" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"cKF" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cKG" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"cKI" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cKM" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 5 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics Port Tanks"; + dir = 4; + name = "atmospherics camera"; + network = list("ss13","engine") + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"cKN" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Inner Pipe Access"; + req_access_txt = "24" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "O2 to Pure" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"cKP" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"cKR" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"cKT" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Air to Mix" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/engine/atmos) +"cKW" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/disposal/bin, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 5 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"cKX" = ( +/obj/structure/closet/firecloset, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cKY" = ( +/obj/structure/plasticflaps/opaque, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/maintenance/disposal/incinerator) +"cKZ" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/disposal/bin, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/disposal/incinerator) +"cLa" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6; + icon_state = "intact" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/disposal/incinerator) +"cLd" = ( +/obj/docking_port/stationary{ + dwidth = 1; + height = 4; + roundstart_template = /datum/map_template/shuttle/escape_pod/default; + width = 3 + }, +/obj/structure/fans/tiny/invisible, +/turf/open/space/basic, +/area/space) +"cLe" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"cLg" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"cLm" = ( +/obj/machinery/status_display/evac{ + pixel_x = 32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/storage/box/lights/mixed{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/storage/box/lights/mixed, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cLr" = ( +/turf/closed/wall/rust, +/area/maintenance/department/electrical) +"cLs" = ( +/turf/closed/wall, +/area/maintenance/department/electrical) +"cLt" = ( +/obj/structure/sign/poster/contraband/random, +/turf/closed/wall/rust, +/area/maintenance/starboard) +"cLy" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/rust, +/area/maintenance/department/electrical) +"cLz" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/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" + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"cLA" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"cLC" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"cLE" = ( +/obj/machinery/door/airlock/engineering{ + name = "Electrical Maintenance"; + req_access_txt = "11" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/electrical) +"cLG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cLH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/sink/kitchen{ + desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; + name = "old sink"; + pixel_y = 28 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"cLI" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"cLK" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"cLM" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"cLN" = ( +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/solar/starboard/fore) +"cLO" = ( +/obj/structure/cable, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/starboard/fore) +"cLQ" = ( +/obj/machinery/door/airlock/engineering{ + name = "Starboard Bow Solar Access"; + req_access_txt = "10" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/solars/starboard/fore) +"cLR" = ( +/obj/docking_port/stationary{ + dir = 4; + dwidth = 1; + height = 4; + roundstart_template = /datum/map_template/shuttle/escape_pod/default; + width = 3 + }, +/obj/structure/fans/tiny/invisible, +/turf/open/space/basic, +/area/space) +"cLU" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/solars/starboard/fore) +"cLV" = ( +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"cLY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"cMb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard) +"cMf" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"cMg" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/belt/utility, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/remains/human, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"cMj" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall, +/area/maintenance/department/electrical) +"cMk" = ( +/obj/effect/decal/cleanable/dirt, +/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/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"cMl" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"cMm" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/engineering{ + name = "Electrical Maintenance"; + req_access_txt = "11" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/electrical) +"cMn" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"cMq" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/blood/gibs/old, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"cMr" = ( +/obj/machinery/status_display/ai, +/turf/closed/wall/rust, +/area/maintenance/department/electrical) +"cMt" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/blood/gibs/limb, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"cMu" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/spider/stickyweb, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"cMw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard) +"cMx" = ( +/obj/effect/decal/cleanable/dirt, +/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/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"cMz" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"cMC" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cMD" = ( +/obj/effect/decal/cleanable/dirt, +/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/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard) +"cME" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"cMG" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"cMH" = ( +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"cMI" = ( +/obj/effect/decal/cleanable/dirt, +/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/structure/sign/poster/contraband/random{ + pixel_y = 32 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"cMK" = ( +/obj/effect/decal/cleanable/dirt, +/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/effect/landmark/event_spawn, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"cML" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"cMP" = ( +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard) +"cMQ" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cMR" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/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/plating, +/area/maintenance/starboard) +"cMT" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/starboard/fore) +"cMU" = ( +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/starboard/fore) +"cMV" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/starboard/fore) +"cMW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/maintenance/starboard) +"cNa" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/obj/structure/grille/broken, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"cNd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/grille/broken, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"cNe" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/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{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cNg" = ( +/obj/structure/sign/warning/fire, +/turf/closed/wall, +/area/maintenance/starboard) +"cNh" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/rack, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard) +"cNi" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard) +"cNj" = ( +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/starboard/fore) +"cNl" = ( +/obj/machinery/power/tracker, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard/fore) +"cNn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"cNp" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall/rust, +/area/maintenance/solars/starboard/fore) +"cNq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/sign/warning/nosmoking{ + pixel_x = -30 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cNs" = ( +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics Connector"; + req_one_access_txt = "10;24;5" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard) +"cNy" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/starboard/fore) +"cNz" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/starboard/fore) +"cNB" = ( +/turf/closed/wall/r_wall/rust, +/area/maintenance/solars/starboard/fore) +"cNC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/girder/displaced, +/obj/structure/grille/broken, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/starboard) +"cNF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cNG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cNI" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/solar/starboard/fore) +"cNL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"cNM" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"cNN" = ( +/obj/structure/sign/poster/contraband/missing_gloves, +/turf/closed/wall/rust, +/area/maintenance/starboard) +"cNO" = ( +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics Connector"; + req_one_access_txt = "10;24;5" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard) +"cNU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"cNV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/sink/kitchen{ + desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; + name = "old sink"; + pixel_y = 28 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"cNW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"cNY" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "rdprivacy"; + name = "Director's Privacy Blast Door" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cOb" = ( +/obj/structure/sign/warning/biohazard, +/turf/closed/wall, +/area/maintenance/starboard) +"cOd" = ( +/obj/docking_port/stationary/random{ + dir = 4; + id = "pod_lavaland4"; + name = "lavaland" + }, +/turf/open/space, +/area/space/nearstation) +"cOf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"cOg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"cOm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cOo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cOx" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Toxins Burn Chamber"; + dir = 8; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/machinery/airalarm/mixingchamber{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/mixing/chamber) +"cOW" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/bridge) +"cPa" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Prison Yard" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "PCell 2Lock"; + name = "Long-Term Cell 2 Shutter" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"cPb" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/bridge) +"cPj" = ( +/obj/structure/flora/ausbushes/brflowers, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/door/window/northleft{ + name = "Animal Pen"; + req_access_txt = "35" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/grass, +/area/hydroponics) +"cQP" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Long-Term Cell 2"; + req_access_txt = "2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"cRk" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"cRB" = ( +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"cSS" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/box/bodybags{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/item/storage/box/bodybags{ + pixel_y = 2 + }, +/obj/item/wirecutters, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"cST" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/security/prison) +"cSU" = ( +/obj/structure/sign/departments/security, +/turf/closed/wall, +/area/security/prison) +"cSV" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/machinery/door/airlock/security{ + aiControlDisabled = 1; + id_tag = "justicedoor"; + name = "Justice Chamber"; + req_access_txt = "3" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/button/door{ + id = "justicedoor"; + name = "Justice Door Lock"; + normaldoorcontrol = 1; + pixel_x = -24; + specialfunctions = 4 + }, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) +"cSW" = ( +/turf/closed/wall/r_wall, +/area/security/execution/education) +"cSZ" = ( +/obj/structure/sink/puddle, +/obj/structure/flora/ausbushes/reedbush{ + pixel_y = 5 + }, +/turf/open/floor/grass, +/area/security/prison) +"cTp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/aft) +"cTr" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/external{ + name = "Arrival Shuttle Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/entry) +"cTF" = ( +/obj/machinery/door/airlock/external{ + name = "Prison External Airlock"; + req_access_txt = "2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"cTG" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor{ + id = "justiceblast"; + name = "Justice Blast door" + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) +"cTI" = ( +/obj/structure/lattice, +/obj/structure/sign/warning/securearea{ + pixel_x = -32 + }, +/turf/open/space/basic, +/area/space/nearstation) +"cUD" = ( +/obj/machinery/door/airlock/external{ + name = "Prison External Airlock"; + req_access_txt = "2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"cZm" = ( +/turf/closed/wall/rust, +/area/security/prison) +"dis" = ( +/turf/closed/wall/r_wall/rust, +/area/bridge) +"dww" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/engine/engineering) +"dxq" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/computer/mecha{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) +"dMc" = ( +/obj/structure/table/reinforced, +/obj/item/integrated_circuit_printer, +/obj/item/integrated_electronics/wirer, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/science/research) +"dQe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"dYu" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/decal/cleanable/dirt, +/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/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/fore) +"elZ" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall/rust, +/area/crew_quarters/bar) +"emD" = ( +/turf/closed/wall/rust, +/area/quartermaster/miningoffice) +"erN" = ( +/turf/closed/wall/rust, +/area/hallway/primary/starboard) +"esR" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/port/fore) +"evx" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine{ + initial_gas_mix = "n2=100;TEMP=80"; + name = "mainframe floor" + }, +/area/tcommsat/server) +"ewj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"ezp" = ( +/turf/closed/wall/rust, +/area/hydroponics) +"eBN" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/biogenerator, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"eKa" = ( +/obj/structure/sign/poster/official/pda_ad, +/turf/closed/wall, +/area/medical/virology) +"eMp" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"eOu" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/port/fore) +"eQS" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall/rust, +/area/security/prison) +"eVT" = ( +/turf/closed/wall/rust, +/area/science/explab) +"fcv" = ( +/obj/structure/sign/warning/fire{ + pixel_x = 32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"fyr" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/engine/engineering) +"fAH" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Laser Room"; + req_access_txt = "10" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/oil/slippery, +/turf/open/floor/plating, +/area/engine/engineering) +"fXq" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 8 + }, +/area/hallway/primary/fore) +"gnA" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Laser Room Starboard"; + dir = 1; + name = "laser room camera"; + network = list("ss13","engine") + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"grW" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/maintenance/port/fore) +"gvR" = ( +/obj/structure/sign/warning, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"gwD" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Port to Filter" + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"gxY" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/vr_sleeper, +/obj/effect/turf_decal/box/white, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/locker) +"gIE" = ( +/turf/open/floor/plating, +/area/engine/engineering) +"gJq" = ( +/obj/structure/sign/departments/evac, +/turf/closed/wall/rust, +/area/hallway/secondary/exit/departure_lounge) +"gMU" = ( +/turf/closed/wall/r_wall/rust, +/area/ai_monitored/turret_protected/ai_upload) +"hgW" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/chair/stool, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/wood, +/area/maintenance/port/fore) +"hqv" = ( +/turf/closed/wall/rust, +/area/crew_quarters/kitchen) +"hvb" = ( +/turf/closed/wall/r_wall/rust, +/area/tcommsat/computer) +"hxn" = ( +/turf/open/space/basic, +/area/hallway/secondary/entry) +"hzY" = ( +/turf/closed/wall/rust, +/area/gateway) +"hAb" = ( +/turf/closed/wall/r_wall/rust, +/area/security/courtroom) +"hNk" = ( +/turf/closed/wall/r_wall/rust, +/area/security/prison) +"ice" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=SW CPH"; + dir = 8; + location = "S CPH"; + name = "Patrol navbeacon S" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ieA" = ( +/obj/effect/decal/cleanable/dirt, +/mob/living/simple_animal/hostile/cat_butcherer, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"iiA" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine{ + initial_gas_mix = "n2=100;TEMP=80"; + name = "mainframe floor" + }, +/area/tcommsat/server) +"ikw" = ( +/obj/machinery/camera{ + c_tag = "Xenobiology Cell 4"; + dir = 8; + name = "xenobiology camera"; + network = list("ss13","rd","xeno") + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"ivg" = ( +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/space) +"iwR" = ( +/turf/closed/wall/r_wall/rust, +/area/science/server) +"iBL" = ( +/obj/machinery/camera{ + c_tag = "Laser Room Starboard"; + dir = 1; + name = "laser room camera"; + network = list("ss13","engine") + }, +/turf/open/floor/engine, +/area/engine/engineering) +"iLn" = ( +/obj/machinery/vending/boozeomat/all_access, +/turf/open/floor/wood, +/area/maintenance/port/fore) +"iMb" = ( +/obj/structure/sink/kitchen{ + desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; + name = "old sink"; + pixel_y = 28 + }, +/obj/effect/spawner/lootdrop/keg, +/turf/open/floor/wood{ + icon_state = "wood-broken3" + }, +/area/maintenance/port/fore) +"iMq" = ( +/obj/machinery/camera{ + c_tag = "Xenobiology Cell 5"; + dir = 4; + name = "xenobiology camera"; + network = list("ss13","rd","xeno") + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"iRL" = ( +/turf/closed/wall/rust, +/area/hallway/primary/aft) +"iSg" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/mob/living/simple_animal/hostile/retaliate/ghost, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/fore) +"iYW" = ( +/turf/closed/wall/r_wall/rust, +/area/crew_quarters/heads/captain) +"iZo" = ( +/turf/closed/wall/r_wall/rust, +/area/medical/virology) +"jaZ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/chair/stool, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"jhM" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/bottle/grenadine, +/obj/item/reagent_containers/food/drinks/beer{ + desc = "A station exclusive. Consumpt may result in seizures, blindness, drunkenness, or even death."; + list_reagents = list(/datum/reagent/consumable/ethanol/thirteenloko = 10); + name = "Kilo-Kocktail"; + pixel_x = 5; + pixel_y = 5 + }, +/turf/open/floor/wood, +/area/maintenance/port/fore) +"jiS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"juX" = ( +/obj/machinery/camera{ + c_tag = "Xenobiology Cell 2"; + dir = 4; + name = "xenobiology camera"; + network = list("ss13","rd","xeno") + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"jxc" = ( +/turf/closed/wall/rust, +/area/hallway/primary/fore) +"jAT" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/light, +/turf/open/floor/plating/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/hallway/secondary/entry) +"jCp" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine{ + initial_gas_mix = "n2=100;TEMP=80"; + name = "mainframe floor" + }, +/area/tcommsat/server) +"jDv" = ( +/turf/closed/wall/rust, +/area/quartermaster/storage) +"jHJ" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/closed/wall, +/area/maintenance/disposal/incinerator) +"jOz" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall/rust, +/area/ai_monitored/turret_protected/ai_upload) +"jPE" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/engine/engineering) +"jRw" = ( +/obj/structure/sign/poster/official/high_class_martini, +/turf/closed/wall/r_wall, +/area/medical/virology) +"jUj" = ( +/obj/structure/closet/cabinet, +/obj/item/reagent_containers/food/drinks/bottle/absinthe/premium, +/obj/item/reagent_containers/food/drinks/bottle/applejack, +/obj/item/reagent_containers/food/drinks/bottle/champagne, +/obj/item/reagent_containers/food/drinks/bottle/cognac, +/obj/item/reagent_containers/food/drinks/bottle/gin, +/obj/item/reagent_containers/food/drinks/bottle/goldschlager, +/obj/item/reagent_containers/food/drinks/bottle/grappa, +/obj/item/reagent_containers/food/drinks/bottle/hcider, +/obj/item/reagent_containers/food/drinks/bottle/kahlua, +/obj/item/reagent_containers/food/drinks/bottle/patron, +/obj/item/reagent_containers/food/drinks/bottle/rum, +/obj/item/reagent_containers/food/drinks/bottle/sake, +/obj/item/reagent_containers/food/drinks/bottle/tequila, +/obj/item/reagent_containers/food/drinks/bottle/trappist, +/obj/item/reagent_containers/food/drinks/bottle/vermouth, +/obj/item/reagent_containers/food/drinks/bottle/vodka, +/obj/item/reagent_containers/food/drinks/bottle/whiskey, +/obj/item/reagent_containers/food/drinks/bottle/wine, +/obj/item/reagent_containers/food/drinks/beer{ + desc = "A station exclusive. Consumpt may result in seizures, blindness, drunkenness, or even death."; + list_reagents = list(/datum/reagent/consumable/ethanol/thirteenloko = 10); + name = "Kilo-Kocktail"; + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/reagent_containers/food/drinks/beer{ + desc = "A station exclusive. Consumpt may result in seizures, blindness, drunkenness, or even death."; + list_reagents = list(/datum/reagent/consumable/ethanol/thirteenloko = 10); + name = "Kilo-Kocktail"; + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/reagent_containers/food/drinks/beer{ + desc = "A station exclusive. Consumpt may result in seizures, blindness, drunkenness, or even death."; + list_reagents = list(/datum/reagent/consumable/ethanol/thirteenloko = 10); + name = "Kilo-Kocktail"; + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/reagent_containers/food/drinks/beer{ + desc = "A station exclusive. Consumpt may result in seizures, blindness, drunkenness, or even death."; + list_reagents = list(/datum/reagent/consumable/ethanol/thirteenloko = 10); + name = "Kilo-Kocktail"; + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/reagent_containers/food/drinks/beer{ + desc = "A station exclusive. Consumpt may result in seizures, blindness, drunkenness, or even death."; + list_reagents = list(/datum/reagent/consumable/ethanol/thirteenloko = 10); + name = "Kilo-Kocktail"; + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/reagent_containers/food/drinks/beer{ + desc = "A station exclusive. Consumpt may result in seizures, blindness, drunkenness, or even death."; + list_reagents = list(/datum/reagent/consumable/ethanol/thirteenloko = 10); + name = "Kilo-Kocktail"; + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/reagent_containers/food/drinks/beer{ + desc = "A station exclusive. Consumpt may result in seizures, blindness, drunkenness, or even death."; + list_reagents = list(/datum/reagent/consumable/ethanol/thirteenloko = 10); + name = "Kilo-Kocktail"; + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/reagent_containers/food/drinks/beer{ + desc = "A station exclusive. Consumpt may result in seizures, blindness, drunkenness, or even death."; + list_reagents = list(/datum/reagent/consumable/ethanol/thirteenloko = 10); + name = "Kilo-Kocktail"; + pixel_x = 5; + pixel_y = 5 + }, +/turf/open/floor/wood, +/area/maintenance/port/fore) +"jUZ" = ( +/obj/item/poster/random_contraband, +/obj/item/poster/random_contraband, +/obj/item/poster/random_contraband, +/obj/item/poster/random_contraband, +/obj/item/poster/random_contraband, +/obj/item/reagent_containers/food/drinks/beer{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/item/reagent_containers/food/drinks/ale, +/obj/structure/table/wood, +/obj/item/instrument/eguitar, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/port/fore) +"khA" = ( +/turf/closed/wall/rust, +/area/construction/mining/aux_base) +"krJ" = ( +/turf/closed/wall/rust, +/area/hallway/secondary/exit/departure_lounge) +"ktv" = ( +/obj/machinery/air_sensor{ + pixel_x = -32; + pixel_y = -32 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"kul" = ( +/obj/machinery/vending/snack/random, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"kIJ" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/port/fore) +"kSc" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall, +/area/maintenance/port/fore) +"leX" = ( +/obj/structure/chair/stool, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/maintenance/port/fore) +"llm" = ( +/obj/structure/sign/poster/ripped, +/turf/closed/wall/rust, +/area/crew_quarters/fitness/recreation) +"lKu" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/soda_cans/thirteenloko, +/obj/item/flashlight/lamp, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/maintenance/port/fore) +"lSJ" = ( +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"lVk" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall/rust, +/area/security/warden) +"mbs" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/obj/item/pickaxe, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"mej" = ( +/turf/closed/wall/r_wall/rust, +/area/science/robotics/lab) +"mmZ" = ( +/obj/machinery/cryopod, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"mIt" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=SE CPH"; + dir = 8; + location = "E CPH"; + name = "Patrol navbeacon E" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"mIG" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/obj/effect/turf_decal/box/red, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/magnetic_controller{ + autolink = 1; + pixel_x = -28; + pixel_y = 3 + }, +/turf/open/floor/plasteel/dark, +/area/science/research) +"mLN" = ( +/obj/machinery/camera{ + c_tag = "Laser Room Starboard"; + dir = 1; + name = "laser room camera"; + network = list("ss13","engine") + }, +/turf/open/floor/plating, +/area/engine/engineering) +"mPm" = ( +/turf/closed/wall/rust, +/area/security/checkpoint/supply) +"nDw" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall/rust, +/area/crew_quarters/heads/hor) +"nJw" = ( +/obj/machinery/smartfridge, +/turf/closed/wall/rust, +/area/crew_quarters/kitchen) +"nNA" = ( +/turf/closed/wall/rust, +/area/bridge) +"nNV" = ( +/turf/closed/wall/rust, +/area/science/lab) +"nSz" = ( +/turf/closed/wall/rust, +/area/medical/cryo) +"nVt" = ( +/turf/closed/wall/rust, +/area/storage/tech) +"nXu" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/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/showroomfloor, +/area/security/prison) +"oPf" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark/corner{ + dir = 8 + }, +/area/hallway/primary/fore) +"oTy" = ( +/obj/docking_port/stationary{ + dir = 4; + dwidth = 3; + height = 14; + id = "arrivals_stationary"; + name = "kilo arrivals"; + roundstart_template = /datum/map_template/shuttle/arrival/kilo; + width = 7 + }, +/turf/open/space/basic, +/area/hallway/secondary/entry) +"pCe" = ( +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating, +/area/engine/engineering) +"pFw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/crew_quarters/locker) +"pNP" = ( +/obj/structure/table/wood, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/maintenance/port/fore) +"pQf" = ( +/turf/closed/wall/r_wall/rust, +/area/science/xenobiology) +"qfZ" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/vr_sleeper{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"qtv" = ( +/turf/closed/wall/r_wall/rust, +/area/tcommsat/server) +"qtS" = ( +/turf/closed/wall/rust, +/area/medical/genetics/cloning) +"qvS" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=W CPH"; + dir = 8; + location = "SW CPH"; + name = "Patrol navbeacon SW" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"qyG" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/shaker, +/obj/item/reagent_containers/glass/beaker/cryoxadone, +/obj/item/reagent_containers/glass/beaker{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/reagent_containers/dropper, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/wood, +/area/maintenance/port/fore) +"qIR" = ( +/obj/machinery/camera{ + c_tag = "Xenobiology Cell 6"; + dir = 8; + name = "xenobiology camera"; + network = list("ss13","rd","xeno") + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"qLx" = ( +/obj/structure/table, +/obj/item/storage/toolbox/emergency{ + pixel_y = 4 + }, +/obj/item/crowbar, +/obj/item/flashlight{ + pixel_y = 2 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"qPY" = ( +/obj/machinery/vr_sleeper{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"qWU" = ( +/turf/closed/wall/rust, +/area/chapel/main) +"rbM" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/ausbushes/lavendergrass, +/mob/living/carbon/monkey, +/turf/open/floor/grass, +/area/medical/virology) +"ruL" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/security/prison) +"rNm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/hallway/secondary/entry) +"swG" = ( +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = 6; + pixel_y = -1 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = -4; + pixel_y = 6 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = -5; + pixel_y = 2 + }, +/obj/structure/table/wood, +/obj/structure/light_construct/small{ + dir = 1 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, +/turf/open/floor/wood, +/area/maintenance/port/fore) +"sDw" = ( +/obj/structure/sign/warning, +/turf/closed/wall/rust, +/area/space/nearstation) +"sPG" = ( +/turf/closed/wall/rust, +/area/crew_quarters/heads/hor) +"tgw" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall/rust, +/area/security/prison) +"tqw" = ( +/turf/closed/wall/rust, +/area/lawoffice) +"tyb" = ( +/turf/closed/wall/rust, +/area/hallway/primary/central) +"tCi" = ( +/obj/effect/decal/cleanable/glass, +/turf/open/floor/wood{ + icon_state = "wood-broken3" + }, +/area/maintenance/port/fore) +"tEC" = ( +/turf/closed/wall/rust, +/area/crew_quarters/bar) +"tGU" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall/rust, +/area/gateway) +"tYn" = ( +/turf/closed/wall/rust, +/area/janitor) +"uda" = ( +/turf/closed/wall/rust, +/area/security/warden) +"udQ" = ( +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"umD" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/port) +"unX" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=E CPH"; + dir = 8; + location = "NE CPH"; + name = "Patrol navbeacon NE" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"uxQ" = ( +/obj/effect/decal/cleanable/ash, +/turf/open/floor/plating, +/area/engine/engineering) +"uzR" = ( +/turf/closed/wall/rust, +/area/storage/primary) +"uWo" = ( +/turf/closed/wall/rust, +/area/security/checkpoint/medical) +"vmu" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/instrument/guitar, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"whw" = ( +/turf/closed/wall/rust, +/area/medical/surgery) +"wmX" = ( +/turf/closed/wall/rust, +/area/quartermaster/qm) +"wvq" = ( +/turf/closed/wall/rust, +/area/security/courtroom) +"wCy" = ( +/turf/closed/wall/rust, +/area/hallway/primary/port) +"wDP" = ( +/turf/closed/wall/rust, +/area/crew_quarters/fitness/recreation) +"wQL" = ( +/turf/closed/wall/rust, +/area/security/execution/education) +"xei" = ( +/turf/closed/wall/r_wall/rust, +/area/teleporter) +"xqv" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass, +/turf/open/floor/wood, +/area/maintenance/port/fore) +"xqL" = ( +/turf/closed/wall/rust, +/area/quartermaster/office) +"xse" = ( +/obj/machinery/cryopod, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"xBI" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall/rust, +/area/chapel/office) +"xJY" = ( +/obj/structure/rack, +/obj/item/storage/backpack, +/obj/item/extinguisher{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/extinguisher, +/obj/structure/sign/warning/nosmoking{ + pixel_x = 30 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"xON" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"xTw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/stool/bar, +/turf/open/floor/wood, +/area/maintenance/port/fore) +"xTT" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/maintenance/port/fore) +"ydo" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/security/prison) + +(1,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(2,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(3,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(4,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(5,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(6,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(7,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(8,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(9,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(10,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(11,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(12,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bUG +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(13,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +bVu +aeu +aaa +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(14,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aUz +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(15,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(16,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aaa +aeu +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(17,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aUz +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(18,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bhA +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(19,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(20,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(21,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aap +aeu +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(22,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeU +aeU +aeu +aeU +aeu +aeu +aeU +aeU +aeU +aeu +aaa +aaa +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(23,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeU +aeU +aeU +aeU +aeU +aeU +aeU +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cAY +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(24,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aaa +aaa +aaa +aeU +aeU +aeU +aeU +aUz +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(25,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aUz +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aUz +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(26,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(27,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(28,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aap +aeU +aeU +aeU +aeU +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(29,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(30,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aUz +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(31,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(32,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeU +aeU +aeU +aaa +aaa +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(33,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aUz +aeU +aeU +aeU +aeU +aeU +aeU +aeU +aeU +aeU +aeU +aaa +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aUz +aeU +aeU +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(34,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeu +aeu +aeU +aap +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aap +aeU +aeu +aeU +aeU +aeU +aeU +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeU +aeU +aeu +aeu +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +bUG +aaa +aaa +aaa +aaa +aaa +bUG +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +acm +aeo +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(35,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeU +aeU +aeu +aeu +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeU +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +acm +aaa +aaa +aaa +aaa +aaa +acm +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(36,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aUz +cui +aeU +aeU +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeU +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeU +aeU +aeu +aeu +aeu +alm +aaQ +aeo +aeo +aeo +acm +acK +aaa +aaa +aaa +aaa +aaa +acK +acm +aeo +aeo +acm +alm +aeu +aeu +aeu +aeu +aap +aUz +aeU +aeu +aeu +acm +aeo +aeo +acm +aaa +acm +aeo +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(37,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aap +aeU +aeU +aeU +aeU +aeU +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aap +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeU +aaa +aaa +aeU +aeu +aeu +aeu +aeu +bou +cko +aeu +aeu +aeu +aeu +aaa +aaa +acm +aaa +aaa +acK +aaa +aaa +aaa +aaa +aaa +acK +aaa +aaa +acm +aaa +aaa +aeu +aeu +aeu +aeu +aeU +aeU +aeu +aeu +aeu +aaa +aaa +acm +aaa +aaa +aaa +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(38,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +aeo +aaQ +aeo +aeo +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aeU +aeu +aeu +aeu +aeu +cpY +aeu +aeu +aeu +aeu +alm +aaQ +aeo +aeo +acm +acK +aaa +aaa +aaa +aaa +aaa +acK +acm +aaQ +aeo +aeo +acm +alm +aeu +aeu +aeu +aeu +aap +aeu +aeu +acm +acm +aeo +aeo +aeo +aeo +acm +aeo +acm +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(39,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bUG +bVu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acm +aaa +aaa +acm +aaa +aaa +aaa +aeu +alm +acm +aaQ +aeo +aeo +acm +acm +aeo +aeo +aeo +acm +aeo +acm +alm +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaQ +aaa +aaa +acm +aaa +aaa +aaa +aaa +aaa +acm +aaa +aaa +aaQ +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aeo +aaa +acm +aaa +acm +aaa +aaa +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(40,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aUz +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +aeo +acm +aeo +aeo +aeo +aeo +aaQ +alm +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +acm +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +alm +aeo +aeo +aeu +aeu +aeu +adk +adk +amz +amz +adk +aeu +aeu +aeu +aaa +acm +aaa +aaa +bUG +aaa +aaa +aaa +aaa +aaa +bUG +bhA +bhA +acm +acm +aeo +aeo +alm +aeu +aeu +aeu +aeu +aeu +aUz +aeU +coy +acm +acm +aaa +coa +aaa +aeo +aeo +aeo +aeo +acm +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(41,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acm +aaa +acm +aaa +aaa +acm +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +acm +aaa +aaa +aaa +aaa +aUz +aeU +aeu +aeu +aeu +aeu +aaQ +aaa +aaa +aaa +alm +aeu +adk +amU +ckR +bAc +adk +aeu +aeu +aeu +aeu +alm +aeU +aaa +acm +aaa +aaa +bpm +aaa +aaa +acm +acK +bmU +ruL +ruL +ruL +hNk +aeu +aeu +aap +aeu +aeu +aeU +aeU +aeU +aeU +aeU +acm +acm +ckO +aaa +acm +aaa +acm +aaa +aaa +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(42,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aap +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +aeo +aaQ +aeo +aeo +aeo +acm +aaQ +ctL +acm +acm +coy +aUz +aeU +aeU +aeu +aeu +aeu +aeu +alm +acm +aaQ +aeo +aeo +acm +acm +acm +aeU +aeU +alm +aeu +aeu +aeu +aeu +acm +aaa +aaa +aaa +acm +aeu +amz +box +bpJ +bre +amz +aeu +aeu +aeu +aeu +aeu +aeu +acK +acm +acm +cqG +cqN +cqG +cov +cpx +bLM +hNk +mmZ +ewj +qfZ +hNk +aeu +aeu +aeU +aap +aeu +coy +aeU +cnt +cnt +cnt +cnt +cnt +ckP +cnt +cnt +cnt +cnt +cnt +acm +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(43,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +aaa +aaa +acm +aaa +acm +aaa +can +aeU +aeU +aeU +aeU +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aaa +aaa +aaa +acm +aaa +aaa +aeU +aeU +aeu +aeu +aeu +bKl +aeu +aeu +bUG +acK +acm +acK +bUG +aeu +adk +adk +bzE +bCb +amz +aeu +aeu +aeu +aeu +aeu +aeu +aeu +cqt +cqz +cqH +bGR +cIA +coD +cqt +aeu +hNk +xse +nXu +qPY +hNk +aeu +aeu +aUz +aeu +aeu +aeU +aeU +ckL +ckM +ckM +ckM +ckM +ckX +cnM +cnM +cnM +cnM +cog +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(44,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +aaa +aaQ +acm +ctm +ctm +ctm +cmM +ctm +cao +ctm +ctm +ctm +ctm +ctm +aeU +aeU +aeu +aeu +aeu +aeU +aeU +aaa +aaa +acm +aaa +aaa +aeU +aeu +aeu +aeu +bQN +bRy +aeu +aeu +cko +cko +ccg +cko +cko +aeu +amA +boF +bpK +brf +amA +amA +amA +ajd +aeu +aeu +aeu +aeu +ajd +bRu +cqI +cqP +afm +bVx +hNk +hNk +hNk +cxV +ydo +eBN +tgw +hNk +aeu +aeu +aeu +aeu +aeU +aeU +cnw +cnw +cnw +cnw +cnw +ckY +cnw +cnw +cnw +cnw +cnw +acm +acm +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(45,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +aeo +aeo +aaa +aFT +aJb +aJb +aJb +aJb +cap +ckq +ckq +ckq +ckq +ckK +aeU +aeU +aof +aeu +agt +aeU +aeU +aeU +aaa +acm +aaa +aUz +aeU +aeu +aeu +bKl +aDQ +aeu +aeu +aeu +cko +aaa +aaa +aaa +cko +aeu +amR +anD +bzK +ctg +btc +ctF +bxy +ajd +ajd +ajd +aer +ajd +aer +bEz +bGl +bGV +bIi +cpv +hNk +awn +bTz +czR +cFN +cIm +cJC +aav +hNk +aeu +aeu +aeU +aeU +aeU +ccG +ckk +aaa +aaa +ckk +ckY +ckk +aaa +aaa +ckk +ccG +aaa +aaa +aeo +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(46,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +aaa +aaQ +acm +ctw +ctw +ctw +ctw +ctw +cjl +ctw +ctw +ctw +ctw +ctw +aeU +aeU +aeU +aeU +aai +aeU +aUz +aeU +aeU +acm +aaa +aeU +aeu +aeu +aeu +aeu +bRy +aeu +aeu +aeu +aUG +aaa +aaa +aaa +aUG +aeu +amA +boL +bpP +bru +bte +cni +bxz +ajd +bAd +aer +bzO +bDi +adh +bEU +cuT +cod +crp +cvn +aav +bmQ +bTQ +bLH +bNi +bPa +caX +cJG +hNk +aeu +aeU +aUz +aeU +cnt +cnt +cnt +cnt +cnt +cnQ +ckY +cnQ +cnt +cnt +cnt +cnt +cnt +acm +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(47,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +aaa +aaQ +acm +acm +aaa +akE +ckk +aaa +aaa +ckk +cjl +ckk +aaa +aaa +ckk +akE +aeU +aeU +aeU +aeU +aai +aeU +aeu +aeu +aeU +aeU +aaa +aaa +aeu +aeu +aeu +bQc +aDQ +aeu +aeu +aeu +cqs +aaa +aaa +aaa +bFQ +aeu +amR +amA +bzV +bEX +amA +cnr +bxA +cte +bAg +cpZ +cvq +bDj +ajd +ajd +bGm +bHa +bIl +bVB +aav +bJz +bVT +bPh +cGD +cSZ +cdi +cIN +aau +aeU +aeU +aeU +aeU +ckL +ckM +ckM +ckM +ckM +ckN +cDn +cnR +cnM +cnM +cKi +cnM +cog +aaa +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(48,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +acm +aeo +aaa +aeU +ctm +ctm +ctm +ctm +ctm +cFS +cjl +ctE +ctm +ctm +ctm +ctm +ctm +aeU +aeU +aeU +aai +aeu +aeu +aeu +aeu +aeU +aeU +aeu +aeu +aeu +aDQ +aDQ +aeu +aeu +aeu +aeu +amA +agy +crx +agy +amR +aeu +amA +boM +bpR +brx +amA +csT +csV +aer +bAh +cqa +cqj +cxk +cqu +aer +ajd +cof +ajd +ajd +hNk +btd +bVV +bMe +bNH +bTu +ciF +cIQ +hNk +aeu +aUz +aeU +aeU +cnw +cnw +cnw +cnw +cnw +cnQ +ckY +cnQ +cnw +cnw +cnw +cnw +cnw +acm +acm +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(49,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaB +aaa +aaa +aaa +aaa +aaQ +aaa +aeo +aaa +aeU +aFT +aJb +aJb +aJb +aJb +bJD +cDj +ckB +ckq +ckq +ckq +ckq +ckK +aeU +aeU +aeU +alm +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aDQ +aDQ +aeu +aeu +aeu +amR +beT +cnL +bfb +amA +amR +amA +boN +bpS +bry +amR +cnL +cuB +ajd +akh +cqc +aer +ajd +bOt +bzO +ajd +bHc +bIo +ajd +hNk +bLN +bMQ +bPk +bRa +bSR +bTF +bVm +hNk +aeu +aeu +coy +aeU +aeU +ccG +ckk +aaa +aaa +ckk +ckY +ckk +aaa +aaa +ckk +ccG +aeU +aaa +aeo +aeo +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(50,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +aaa +aaQ +aeU +aeU +ctw +ctw +ctw +ctw +ctw +ctE +cjl +ctE +ctw +ctw +ctw +ctw +ctw +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aDQ +bKl +bQq +bQb +aDQ +aeu +aeu +amA +csr +cGB +csr +amR +bkX +amA +aEw +cum +amA +amA +ctb +csU +aer +cry +bBm +bCh +cqq +bDL +bEW +cnI +bHd +bIp +aav +aav +bti +cZm +cCp +cPa +abp +cCp +cIS +aav +aeu +aeu +aeU +aeU +aeU +cnt +cnt +cnt +cnt +cnt +ckP +cnt +cnt +cnt +cnt +cnt +aeU +aaa +aeo +aaa +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(51,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +acm +alm +aeU +aeU +aeU +akE +ckk +aaa +aaa +ckk +cjl +ckk +aaa +aaa +ckk +akE +aeU +aeU +aUz +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +bKl +aDQ +aDQ +aDQ +aDQ +aDQ +aeu +aeu +amR +beX +crP +bhS +csp +bla +cte +crg +bpY +brC +bot +ctt +cqn +ajd +cpO +bBs +bCi +cqr +bDM +czW +aer +bHh +bIr +aav +bKu +bLQ +cZm +bPl +bRb +cZm +bTH +bVp +aav +aeu +aeu +aeU +aUz +aeU +ckL +ckM +ckM +ckM +ckM +ckX +cnM +cnM +cnM +cnM +cog +aeU +aaa +acm +aaa +acm +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(52,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aUz +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acm +aaa +aeu +aeU +aeU +aeU +ctm +ctm +ctm +ctm +ctm +cao +ctm +ctm +ctm +ctm +ctm +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aDQ +aDQ +aTd +bKl +aDQ +aDQ +aeu +aeu +amA +bos +crP +cuB +bjq +cpX +amR +amA +amA +bzY +amR +cpX +cqo +ajd +aer +ajd +ajd +aer +bPr +ajd +ajd +ajd +ajd +hNk +bKv +bLX +eQS +bPm +bRe +eQS +bTI +bVr +aav +aeu +aeu +aeu +aeU +aeU +cnw +cnw +cnw +cnw +cnw +ckY +cnw +cnw +cnw +cnw +cnw +aeU +aUz +acm +acm +aeo +acm +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(53,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +alm +aeu +aeu +aof +aUz +aeU +aFT +aJb +aJb +aJb +aJb +cap +ckq +ckq +ckq +ckq +ckK +aeU +aeU +kSc +cwp +cwp +cwp +cwp +cwp +aeu +aeu +aeu +aeu +aeu +aDQ +bQb +aDQ +aDQ +amA +amR +amA +amA +amA +cqT +cGL +amA +amA +cpX +amA +bpZ +brK +amA +amA +cqo +bAq +bAk +aer +bCj +bDk +bDQ +bEY +ajd +aeu +aeu +aav +hNk +bJB +abp +abp +cQP +abp +abp +cJe +aav +abp +abp +aeu +aeU +aeU +aeU +aeU +aeU +aeU +aeU +ckY +aeU +aeU +aeU +aeU +aeU +aeU +aeU +acm +aaa +aeo +aaa +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(54,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeU +ctw +ctw +ctw +ctw +ctw +cjl +ctw +ctw +ctw +ctw +ctw +aeU +cwq +cxt +iLn +pNP +qyG +jUj +cwp +aeu +aeu +aeu +aeu +aeu +aeu +aDQ +aDQ +aVO +amA +baf +cuR +bdZ +amA +bgA +cux +bjr +bpc +crQ +amA +bwg +ctj +ctl +amA +cqC +cra +bAr +adh +bCm +coK +bRB +cjd +coA +bHi +aeu +aeu +aav +bMb +bMS +bPu +bRl +bSS +bTK +bVs +hNk +bXG +cZm +bZG +aeU +aeU +aeU +aeU +aeU +aeU +aeU +ckY +aeU +aeU +coy +aeU +aeU +aeU +aeU +aeU +aaa +aeo +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(55,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aap +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeU +aeU +cjl +aeU +aeU +aeU +aeU +aeU +cwq +cwq +esR +kIJ +cxc +tCi +grW +cwq +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aDQ +aWa +cif +bar +crA +beb +cst +cth +cuh +crV +cuu +cuw +amA +awD +awD +awD +awD +awD +awD +awD +awD +bCt +cou +bzO +clC +coA +bHj +adf +aeu +hNk +bJF +bJN +cuS +cRk +bST +bTM +bVw +cTF +bXH +cUD +bZP +aeU +coy +aeU +aeU +aeU +aeU +aeU +ckP +aeU +aeU +aeU +aeU +aeu +aeu +aeU +aeU +aeU +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(56,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aUz +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +coy +aeU +aeU +cjl +aeU +aeU +aeU +aeU +aeu +cwq +udQ +xTT +swG +xqv +jUZ +jhM +cwq +amA +amA +amR +amA +amA +aeu +aeu +aeu +aWd +amR +amA +amA +cnL +cpX +amA +bhU +aEw +bxq +cux +cnL +awD +agp +bHg +bHg +cEZ +bHg +bMq +awD +bCu +bJW +bJX +cnn +coA +bHo +aeE +agK +hNk +bLj +bYc +cDG +aaG +aez +cIj +aeB +wQL +aez +aez +cko +cko +cko +aeU +aeU +aeU +aeU +aeU +chU +aeU +aUz +aeU +aeu +aeu +aeu +aeu +ckn +aeu +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(57,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +bVv +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aUz +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +coy +aeU +cao +aeU +aeU +aeu +aeu +aeu +cwq +kul +eOu +cxe +xTw +aAJ +xTw +cwp +cAB +cvj +cwW +cyF +amR +aeu +aeu +aeu +aeu +aeu +aeu +amA +crN +bfb +cyv +cnL +bjw +bld +bmL +crP +cnJ +brL +bth +bvm +bvm +bvm +bAx +atk +bCy +bDl +bDT +bFe +aer +aeu +aeF +bJm +aau +bMz +bYl +cDI +cRB +aez +bTT +bVy +bWB +cTG +cTI +acm +acK +cko +aeU +aUz +aeU +aeU +cnS +clx +cnS +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aUz +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(58,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeu +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aqp +aeU +aeu +aeu +aeu +aeu +cwq +cwp +iMb +cxc +cxc +cwG +cdx +cwq +cgm +amZ +cvs +cvz +amA +amR +amA +amA +amR +amA +amA +amA +aPS +aEw +amA +cnL +amA +cGM +awD +awD +awD +aQU +btm +aQU +aQU +btm +aQU +awD +awD +awD +bYR +aer +ajd +aeu +aeu +bJm +aau +bNj +bYr +cDJ +cSS +aez +bTW +cIf +bWC +cTG +cnU +aaQ +acK +cko +aeU +aeU +aeu +aeu +cnS +chY +cnS +aeu +aeu +aeu +aeu +aeu +aeu +ckn +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(59,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aUz +aeU +ctH +ctS +ctH +aeu +aeu +aeu +aeu +aeu +cwq +hgW +lKu +leX +aFG +aHR +cwp +aKM +aMv +aOr +cvA +amA +aRK +aHt +aUq +aWf +crv +cAg +crS +cnL +csj +amA +cfL +amR +crj +awD +bJv +bJv +bJv +bJv +bJv +bJv +bJv +bJv +bJv +bJv +awD +caB +bFf +ajd +aeu +add +afI +aav +abp +bYT +cDK +abp +aez +ahb +bVz +bXh +aez +aez +cJx +ajd +bNe +bNe +bNe +ajd +cnN +cnN +clH +cnN +cnN +aeu +aeu +aeu +aeu +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(60,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aUz +aap +aeu +aeu +aeu +aeu +aeu +aeU +ctH +aqr +ctH +aeu +aeu +aeu +aeu +aeu +cwp +cwp +cwq +cwq +cwy +cwJ +cwp +cve +cvl +amA +cvB +amA +aRL +bxp +aUr +aWi +cpI +amA +bcB +bec +csk +cso +aaO +csr +csU +aQU +bJv +bJv +bJv +bJv +bJv +bJv +bJv +bJv +bJv +bJv +aQU +caB +bSv +coA +bHi +aDQ +amb +asO +bRD +coH +bPA +abp +afd +bTX +bVC +bWo +bXM +cSW +ajd +ajd +cbF +bMX +cdO +bNk +cnN +cgL +cia +cjk +cnN +aeu +aeU +aeU +aeU +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(61,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aUz +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +bVv +aeU +aeU +cui +aeU +aeU +aeU +aap +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +ctA +ctB +ctV +ctB +ctB +aeu +aeu +aeu +aeu +aeu +aeu +aeu +cwp +aFX +aHW +amR +aKO +aMx +aOs +aPL +amA +aRR +amR +amA +cre +cqb +amR +bcC +bed +csk +cso +abJ +csr +csV +aQU +bJv +bJv +bJv +bJv +bJv +bJv +bJv +bJv +bJv +bJv +aQU +caB +azs +coA +bHp +afh +bJu +aau +bRI +coI +bPD +cSV +bSU +bTY +bVD +bWD +bXI +cSW +bZS +ccL +cbO +ccI +cdP +bNl +cnN +cgM +clK +cjn +cnP +aeU +aaa +aaa +aaa +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(62,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aUz +aap +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aUz +aeU +aeu +aeu +aeu +aeu +aeu +aeu +ctB +aps +aqs +arQ +ctA +aeu +aeu +cwp +cwq +cwp +cwq +cwp +cwp +aFZ +aKb +amA +aKR +cop +cwB +aPM +cuZ +cnh +cnr +aUs +aWn +aYz +crE +bcE +bee +csk +cso +bKl +csr +crj +aQU +bJv +bJv +bJv +bJv +bJv +bJv +bJv +bJv +bJv +bJv +aQU +caV +bSB +coA +bHq +afI +aeu +aav +bRK +cig +bPE +cST +afg +bUb +bVM +bWE +bXK +cSW +bZT +ajd +ajd +col +cdQ +ajd +cnN +cgO +cib +cjp +cnP +aUz +acm +acm +acm +acm +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(63,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aap +aeU +aeU +aeu +aeu +aeu +aeu +aeu +ctA +apu +avZ +arS +ctB +aeu +aeu +cwp +aOg +aZA +aBk +azi +cwf +aGd +aqJ +adL +aKS +cvv +cwV +aPN +amA +aRT +cqU +cuX +cqV +aYA +amA +crW +csg +csl +amR +cfL +amA +csV +awD +bJv +bJv +bJv +bJv +bJv +bJv +bJv +bJv +bJv +bJv +awD +caB +bFi +ajd +aeu +afO +aeu +aav +bMh +bMT +bPM +cSU +afK +ahd +bNI +cSW +cSW +cSW +bMR +bWK +ajd +bNB +ajT +ajd +cnP +cnX +clO +cnP +cnP +aeU +coy +aaa +aaa +aaa +aaQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(64,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aUz +aeu +aeu +cwp +cwq +cwp +ctC +apz +aqF +arT +ctD +cwp +cwp +cwp +aPJ +bbR +aBl +aCH +cwh +aGg +cwy +amR +aKV +cvp +cvx +cvF +amR +crr +bxq +crq +aVz +cnr +amR +amR +amA +amR +amA +bhZ +amA +cGN +awD +awD +aQU +aQU +btn +aQU +aQU +btn +aQU +aQU +awD +awD +ccc +ajd +ajd +aeu +agJ +amv +aav +aav +adl +aec +aav +cSW +cSW +cSW +cSW +bTL +bBG +czZ +bBG +cbQ +ccJ +cdR +bNp +cgl +cgP +cic +ajd +aeu +aeu +aeU +aaa +aaa +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(65,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeu +aeu +aaa +aaa +aeU +aeU +aeU +aeu +aeU +aUz +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aUz +aeu +aeu +aeu +aeu +aeu +aeu +aeu +cwp +cvY +cxd +ctD +ctC +cua +cun +ctC +apU +asR +cwq +aQz +beo +aBn +cvZ +aSf +aGi +aHX +amA +amA +amR +amA +amA +amA +cnh +aRP +aTk +crr +crN +crP +cnL +csh +crN +crH +bia +csx +ble +cnL +awD +bLd +brS +btq +bvw +bxC +btq +bAz +bLU +awD +bDn +caB +bFk +aer +aeu +aeu +amb +add +aav +auW +beV +aav +bBG +cTp +bVN +bSO +bUd +cyc +cyD +caZ +cbS +ccK +bBG +bNm +cgn +clq +bzO +ajd +ajd +ajd +anZ +cmt +cko +cko +bUG +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(66,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +cwq +cwY +cxe +cyd +cxt +aqI +arU +cyu +cxS +aKb +cwq +cwy +cwp +cti +cwq +cxy +cwt +aHZ +aNB +aKX +aMz +aOt +aPO +cuJ +cqf +cuJ +aUv +aWo +aYD +crg +bcF +bxp +bfc +bgH +bib +bxp +csU +llm +awD +aVb +aYX +bxo +bxU +bzQ +bzR +bER +bFN +awD +ajd +cdG +cus +ajd +ajd +aer +cCe +ajd +ajd +bMU +bPP +bSO +bSW +bUd +bVO +agS +agS +agS +aey +agS +byu +agS +agS +agS +agS +clr +cid +akj +ckC +agy +aaa +aaa +aaa +cko +acK +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(67,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +cwp +cvX +bGQ +cwF +cwQ +aqJ +cxK +cwp +cye +aNk +anP +aut +auO +aBo +aCI +aET +aHY +aIc +aPc +aPc +aPc +aSo +aPc +aPc +aPc +aOZ +aOZ +bMV +aOZ +aOZ +crj +amR +amA +amA +amR +amA +cFW +wDP +bKD +bLg +bLm +btr +bvx +bvx +byL +bLR +bBu +bMd +bDo +cej +bJw +bSV +bKK +bzO +cpT +bKx +bSO +cyc +bPQ +ajd +aWI +bsD +aWI +agS +ahe +bYJ +ahY +cbb +cbT +ccM +cDr +ajR +agS +cgQ +bBG +crD +ckD +agG +aaa +aaa +aaa +cGA +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(68,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aap +aeU +aeU +aUz +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +cwp +cwq +cwp +cwg +cwp +cwp +aqK +ahE +cwp +cxt +cxy +aot +awe +cyl +aPA +aPA +aPA +aPA +aPA +aPc +aON +aMC +aOu +aPP +aQn +aRU +aPC +aUw +aWq +aYE +aOZ +crk +crg +bot +crF +cnr +crQ +cuB +awD +bKH +bLb +bLm +btu +bLW +bLC +byO +bGB +bBw +bHG +bDs +bDU +bFm +ajT +bKM +bMf +bOn +bFm +agX +aUQ +bZi +agX +bSX +bUe +bVP +agS +aMK +bYK +ahZ +aiL +aiL +aiL +cDB +ajS +bOO +bBG +cie +akj +bBG +agy +aaa +aaa +aaa +cko +acK +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(69,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +cui +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aUz +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +cwp +aol +ade +cwo +cxr +apC +cxD +aha +aiE +auO +axy +ayF +awQ +aPA +aPA +aBs +aEb +aPB +aId +aOZ +aKY +aOO +aQv +aUU +aRD +aRV +bwI +aUE +aSQ +aPW +aOZ +crP +cpX +amR +crM +bot +aYD +bln +cnJ +bLa +bLh +bLO +btv +bLV +bMa +byR +bGI +bBx +awD +afm +adW +akh +agX +agX +agX +agX +agX +agX +adV +bZo +agX +agX +agX +agX +agS +aog +bYL +aia +cBu +aiG +cyK +cDB +cfb +agS +ajd +ajx +ajx +ajx +ajx +anZ +cmt +cko +cko +bUG +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(70,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bUG +bVu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +cwp +avl +cxa +cxc +cxf +apE +aar +ahl +aNG +aNG +ajY +aNG +aNG +aPA +aLc +aaN +aEc +aGm +aIi +aND +aLa +aOQ +aSU +aVy +aYb +aRW +aPC +aUF +aTa +aOZ +aOZ +csc +aQN +aQN +amA +amA +cnJ +cni +awD +bKN +bLg +bLm +bty +bvz +bxE +byS +bGI +bMg +wDP +bDt +bDV +bFn +aah +bHr +aeI +aaT +bWp +bMk +bMY +bPR +bRn +agc +anL +bVQ +agP +ahf +bYN +aix +ajc +aiH +amS +cDB +ajV +avM +cgS +ccv +cjq +amd +aif +aUz +aaa +aaa +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(71,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +cwq +aUb +cxb +cxn +cxf +apE +cxN +aht +aNG +auR +axA +ayH +azF +afD +aWj +adK +aOX +aPp +aIk +ahc +aLb +aQq +aQT +aRg +aYo +aQH +aPC +aPI +aSA +aOZ +bas +bcG +bef +aQN +csG +bid +bjx +csQ +wDP +bKn +bLc +bMi +bLP +bHx +bLT +bEK +bGT +bMx +wDP +afz +adZ +ajd +aef +bHs +aaA +agq +bWs +abO +adn +aej +aeY +afn +aeY +aeY +ahg +bXO +bYO +aic +aiY +aiI +amS +cDD +cHw +cgo +cgT +bIv +cjr +amd +aif +aaa +aaa +aaa +aaa +aeo +aaa +aaa +aaa +aaB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(72,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aap +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aUz +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +cwp +cvX +cwT +cxo +cwp +apF +aqP +asb +aNG +aOa +akd +aOC +aOm +abl +abm +agj +aPb +aPq +aPV +aOZ +aPF +aPR +aOv +aSO +aUt +aQI +aQI +aQI +aQI +aQI +bat +bcK +beg +aQN +aqu +bif +bjz +csR +wDP +wDP +bLo +bLp +btz +bvC +bxN +byU +bAA +bMj +awD +csN +bDW +bFo +uda +aef +lVk +aef +aef +bXm +ado +afC +afE +ahn +ahu +afE +aFl +bXP +cwx +aib +ajc +aiJ +amS +cKm +agS +cmP +aUe +cmP +cmP +cmP +cmP +acm +acm +acm +acm +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(73,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +cwp +cwq +cwp +cwp +cwq +cwq +cwp +cwp +cwq +cwy +ahR +aNG +aOb +akg +aOE +aOq +abl +abo +agk +agI +agL +abl +ahc +aPx +aPx +aOZ +aPU +aQG +aQJ +aCs +aLd +baT +aQI +bau +bcN +aUu +aQN +amA +csr +csM +amA +amA +awD +awD +awD +awD +bIH +bLJ +bEP +awD +awD +awD +csS +cBI +bFp +aah +bHt +aeI +aaT +bWu +abY +adp +ael +aaT +aef +aef +aef +agS +bXQ +cwK +aib +aiy +aiK +ajf +cKn +agS +cgp +cgX +cij +alJ +ame +cmP +cmP +aaa +aaa +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(74,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +cwp +cwq +cyL +aiV +cyY +adv +alw +czo +cwq +cwp +aqT +asc +aNG +avf +axC +ayI +azG +afD +aQA +agl +aRd +aOR +abl +aSW +aLi +aLi +aOW +aWp +aNr +aQI +aKy +aTs +aVL +aQI +bay +bcO +bei +aVB +aSG +add +acR +aeF +aaO +aDQ +bvW +bJt +ais +bvD +bxO +byW +alZ +bKT +cBX +cBv +cBy +bFp +aah +bHu +aff +ags +bWs +abO +bMZ +aef +bRo +aet +agd +bVR +anw +ahj +cwK +aib +aiz +ajo +cHY +cKo +agU +cgr +akR +alp +alp +amC +bkU +cmP +aeU +aaa +aaa +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(75,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +cwp +abu +cyM +aiW +cyZ +czl +alA +czp +bgN +cwp +aeb +ail +aDB +aWm +aNx +bxb +aNx +aPA +abl +agH +abl +afD +afD +aSa +aLj +aMD +aOw +aQa +aQK +aQJ +aQQ +aTI +aVV +aQI +baA +bcP +bej +bjs +aSG +aaO +acR +aDQ +bKl +add +brD +brD +brD +bvG +bKF +byX +brD +bLn +brD +cBw +csN +cBR +uda +aef +bJC +aef +aef +bXp +bNa +aCv +bRw +cnB +cnB +bVS +aFu +ahk +cwL +cza +cHA +cbV +ccN +cdT +agS +cgs +akS +ckx +alK +amf +amD +anA +aeU +aeU +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(76,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aUz +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +cwq +cwp +ahJ +air +ajg +bES +czq +alC +amt +bgS +cwq +aqU +aDB +aDB +aOl +aPe +ayJ +azJ +aNx +aNR +aOj +aOp +aPE +aNQ +aJu +aQF +aRt +aSz +aIf +aRS +aQJ +aTc +aUL +aWr +uWo +whw +bxr +aQN +aQN +aTx +aUJ +csO +afe +acZ +adf +bBO +cIr +aiB +bvN +bKX +byY +aon +bKU +cBY +cBx +cBv +bFp +aah +bHw +aeI +aaT +bWv +abY +adp +aaT +bRC +akT +anM +bVU +agP +bXR +bYP +bZU +agS +agS +cIa +btJ +agS +cmP +alo +anl +alL +awm +amE +anA +aeU +aUz +aeU +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(77,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aap +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +cwq +cyE +ahL +cyO +ajh +ajs +akI +alH +czr +ans +czK +aqW +aDB +atm +avg +axG +ayM +aNS +aNG +aOe +aCK +aEl +aGn +aen +aHG +aHG +aHG +aHG +aIh +aQM +aQI +aQJ +aQf +aQJ +uWo +baB +bcS +bek +aVs +aTx +bqA +bjA +afe +aUJ +aUJ +afe +brD +bLn +bvO +bKF +bza +brD +brD +brD +cBy +cBI +bFp +aah +bHu +aaC +aaW +bWs +abO +bNb +aef +aef +aef +aef +aef +agS +agP +bCv +agP +agS +cbW +ccO +cdU +cfj +akx +akS +cmm +alM +amf +amF +anA +aeU +aeU +aeu +cke +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(78,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +cwp +crB +ahM +cyP +cyV +cyV +cyV +cyV +czs +ant +cwy +aqY +aDB +aNJ +aqo +aMd +aqA +azK +aNG +aOd +aCL +aPh +aGp +aNW +aJv +aQk +aSE +aQy +aWt +aQR +beB +aTg +aUN +aTg +aky +baI +aUK +aUR +aUA +aTx +avP +bjB +aoV +bmY +aVE +afe +bLk +bEO +bKG +bzs +bzf +aoG +bKV +cBZ +csN +cBw +cBT +aef +aef +lVk +uda +aef +ani +anm +aef +bRG +aEz +cBn +ahr +agV +bXS +bYQ +bXU +aKZ +cbZ +cIG +cKp +cfl +cKC +cha +cKG +alt +amo +amG +agO +aeU +aeU +aeU +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(79,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +cwq +cyC +ahN +aiu +aji +ajy +akJ +ajy +amu +anu +czL +aqZ +aDB +ato +avi +axK +ayN +azL +acG +aBp +aCM +aPi +aGr +aeP +aJw +aQl +aQB +aQB +aWA +aQS +beF +aTj +bdj +aWu +akF +baN +bfD +bic +aUB +aTx +aoV +bxK +aoV +bnd +aVh +afe +brY +btD +bvP +bxQ +bzg +bLu +bLu +bIV +bIV +csS +bFp +aah +bHz +aaS +aaT +bKy +abY +bNd +aDd +bRJ +cnZ +cpw +crL +crY +akm +ahP +bYm +ama +cca +cIP +bzw +cfm +akz +chb +cik +cjz +ckF +amH +cmP +aeu +aeU +aeU +aeU +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(80,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +cwp +cwq +cvy +aUW +czD +czg +czc +czc +czC +any +cwp +arb +aDB +aDB +aOx +aPu +ayP +azO +aNx +aBq +aCP +aEo +aGt +nSz +aJB +aQo +aTO +aOz +aQc +aQX +aQb +aTo +aUO +aWE +akP +baO +bcT +bel +bfg +aTx +arZ +aUX +aoV +bxV +aoV +afe +bLu +bFb +akv +bzZ +bKL +bLu +bJQ +bKc +bKk +cBv +bFp +aah +bHA +aaA +abc +bWs +abO +aeQ +aei +bRM +coF +cqg +ajw +agV +bXT +bYS +bYm +ama +aiQ +cIP +alG +aka +aka +aka +aka +cDS +aka +aka +aka +aeu +aeu +aeU +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(81,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +cwp +cwq +czz +cyX +acQ +cvb +czn +czu +cwp +cwq +afp +aiM +asi +asi +asi +aVj +asi +aNH +aVH +aNO +aso +qtS +qtS +aQd +aQC +aNn +aQb +aNm +aQb +aNn +aQV +bdq +aRn +aQW +aQW +bAN +bip +aPf +afe +aUC +bjC +blo +bne +aVR +afe +bsa +btR +bvV +bxR +bzh +aoL +bJU +bUa +bKk +csS +cCa +uda +uda +bJC +aef +aef +bXq +afj +afs +bWr +coN +cqh +bVW +uda +ayi +aJr +ayi +aaj +anN +cIZ +amI +aka +akV +azo +alv +alP +aEX +aCF +anG +aeu +aeu +aeu +aeu +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(82,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aUz +aeU +aeU +aeU +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +cwp +cwp +cwq +cwq +cwp +cwp +cxt +cwp +cyI +afv +ase +cAf +aVY +aWe +ayR +azP +aNL +aNv +aCQ +aEs +aJU +aNO +aJC +aQo +aQb +aOA +aQe +aQZ +aSX +aTp +aUS +aWF +aWT +baR +bAN +bem +bfh +aUP +aTl +bjD +aVg +bnf +agm +atK +bIX +bFA +bJs +bAi +bzi +bIV +bIV +bIV +bLu +cBI +bFp +aah +bHC +aaS +aaT +bWG +aft +afk +aei +anv +coU +cqA +bVX +aFv +bXU +ahP +bYm +ama +aiS +cIP +cdX +aka +akC +chc +cil +cil +ckG +amJ +aka +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(83,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aaa +aaa +aeU +aeU +aeU +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +alm +aeu +aeu +aeu +aeu +aeu +cwp +alI +amx +anz +cCN +afx +asj +aja +avk +ayd +ayT +aWv +aNL +aBt +aCW +aEt +aGC +aNL +cJJ +cJJ +aNn +cDz +aRH +aSd +aNn +aSi +aTV +aWy +bae +baZ +aQu +beq +bfi +aLh +bih +bjE +blp +bng +aUy +afe +bIY +bGp +bJn +bAy +bzn +bIV +bJS +bKd +cBW +cBv +bFp +aah +bHA +aff +aiZ +bWs +abO +afl +uda +avt +bSZ +bUk +bVY +agV +bXW +aii +bYm +ama +aiT +cIP +cea +bPI +cgt +chd +alx +aCz +ckT +bdK +aka +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(84,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acm +aUz +aeU +aeu +aeu +aeu +cwp +cwp +bqZ +cxI +cwp +afY +asp +aNu +aVZ +aWg +ayX +aWw +aNL +aVK +aCX +aFt +aGF +aNL +aYB +aYB +aNn +acT +avH +aWl +aNn +aQW +aUV +aTw +aTF +bbe +bAN +aTD +aVD +bAN +agR +cuH +aUD +aVA +aVW +iZo +gxY +bGp +bJo +bAL +bzh +apV +bJZ +bKe +cBW +cBy +cCb +uda +aef +lVk +uda +uda +bXr +bNq +aef +aeX +aeX +chJ +aeX +aef +bXY +ahP +bZV +aaj +ccb +cJs +ceb +cDH +cgv +che +aly +alS +ckT +amM +aka +aeu +aeu +aeu +cke +cxE +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(85,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bUG +bVu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aUz +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaQ +aaa +aaa +aaa +aeU +aeu +aeu +abP +amB +anC +aWG +aWG +aWG +aNu +aWb +aWh +ayZ +aWz +aNL +aNL +aDa +aFx +aGH +aME +aJD +aSY +aMH +aSY +aSY +aYC +aSb +aNZ +aUY +aWH +aYI +bbf +bAN +bAN +aoQ +bAN +ajm +blX +afe +afe +afe +jRw +bIV +bGA +bJp +bAQ +bIV +bLu +bIV +bKf +bIV +csN +bFq +aah +bHD +aaS +aaT +bWI +acf +bNr +avx +bRN +bRN +bUp +bRN +aFD +bXZ +ahQ +bXU +aKZ +ccd +cIP +cee +aka +aye +chg +cim +cjA +ckV +anV +aka +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(86,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaB +aaa +aaa +acm +aaa +aaa +aaa +aaa +aaa +acK +cyA +cuQ +cxY +cyA +are +asr +aNu +avu +ayh +azj +auV +aAq +ayc +aDb +aPn +aGI +aPX +aJN +aQr +aQD +cgN +aQk +aYF +aSc +aRn +aRG +aRN +aYJ +aTW +bgE +bAN +bfj +bgL +bii +bjG +bpp +bnk +boO +byZ +bsd +bGE +bJq +bBb +bzh +arf +bKb +bKg +bLu +cBw +bFq +aah +bHu +aff +abr +bWN +bMl +bNE +avJ +bRO +afE +bUr +bWa +cpR +bYa +cyh +bZX +cHB +ccf +ccQ +ceg +amN +akG +bIS +cio +cio +aFh +anF +aka +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(87,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +aaa +aaa +aaa +aaa +aaa +acK +brp +amT +anE +brp +arg +asz +aNu +aWc +aWk +azl +avs +aAr +aNu +aDf +aNI +aVT +aVU +aaE +aQs +aRf +aTA +aVx +aRe +aSl +aza +aSw +aRO +aYL +aTX +bhT +aoQ +aTh +aTi +bmC +bpa +bpO +bnn +boP +boP +boP +bJi +bJr +bBh +bzp +bIV +bJY +bKh +bIV +afz +ayy +agX +agX +agX +agX +aef +acH +aBH +aef +aef +acH +aEW +aef +aef +bYb +bYU +bZY +aaj +ama +amc +aFj +aka +aka +amN +aWK +cih +aka +aka +aka +aeu +aeu +aeu +cke +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(88,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaQ +aeU +aUz +aeU +aeu +aeu +aeu +adQ +cAI +cAU +aWG +btg +aTb +aNu +aNu +aNu +azn +azQ +aAs +aNu +aNL +aNL +aNL +aNL +aSx +aQt +aQr +aVu +aRC +aRZ +aSR +aWx +aVv +aYu +bdr +aUx +biK +bAN +aTi +bgO +bij +rbM +eKa +bnp +bvc +bvc +bvc +jiS +bKC +bAy +bzu +bIV +bLu +bIV +bIV +bEa +bFr +bBI +bHH +bVq +agX +ash +bMn +bNG +bPT +aef +bTa +bUy +bWb +aef +aGE +ahU +czS +aaj +alz +ccS +ceh +cnm +cgy +cBo +ccS +cjD +bFK +aaf +aeu +aeu +aUz +aeU +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(89,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +alm +aeu +aWG +aWG +aWG +bsm +aWG +aWG +cAN +anI +aWG +ari +asC +atz +btp +aWG +btA +aVn +btA +btA +aVr +bxh +btA +btA +aSy +aLm +aQt +aOB +aQg +aSN +aNn +aQW +aWx +aQW +aSg +aAc +aSg +bAN +aPf +aPf +bAN +bAN +bAN +bnr +boR +aMF +bIZ +btS +bwa +bxS +arj +bzy +bKj +cxw +bIV +ajd +aer +afm +bNo +bVt +agX +alR +acO +bLz +aeH +aef +anj +ano +agY +aef +bpX +byA +bzF +afc +apH +ccV +cek +cfn +cgA +chl +cit +cKf +amw +aae +aeU +aeU +aeU +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(90,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +bsm +acE +cgY +cAi +akU +aWG +cAP +cCU +aWG +arm +btf +btk +avD +aWG +azp +azR +aAt +atw +bxB +bwY +byc +btA +aEB +aEB +aIQ +cFJ +aEB +cFK +boC +acC +biG +boC +aYP +bbg +bcU +bmB +bpt +bjK +bpM +umD +bAN +pFw +bJk +bJk +bIV +ccW +bJk +cec +bIV +cbr +cxv +cxv +bIV +afB +cou +bEI +bTB +cyy +agX +abH +aAN +bLB +afH +aef +afR +agr +aju +aef +bYj +bYV +caa +aiD +asv +ccZ +cDF +cHx +cHx +cJq +cHx +cKg +bFL +aaf +akK +anh +bwu +acm +bUG +aaa +aaa +aaa +aaa +aaa +bUG +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(91,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aWG +aNs +bAD +cAj +akY +cAD +amW +alW +cBe +aro +btj +aje +avE +akH +azq +awl +asM +bwZ +bxP +bwZ +aGJ +byd +aJQ +aLn +aMN +aOD +aiU +aYx +aSe +aYx +bev +bil +bjY +blP +bnt +bjY +bpI +bjL +bxG +bxG +blv +bnu +boU +bfS +bss +btV +bZH +bxW +bzx +bKq +bKq +bKq +bIV +bEb +bSG +bBG +col +bzO +agX +abI +adi +bLz +aeJ +aef +afS +ain +apr +agX +aHp +ahX +czV +aaf +awk +cda +ajQ +auD +akQ +cLz +alE +cnq +amO +amO +bgc +bFH +anh +anh +bVn +aaa +aaa +aaa +aaa +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(92,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +bsm +aWG +czG +cAk +akZ +cAp +cAN +anJ +aWG +arp +bts +atJ +avG +aWG +azr +awA +axi +ayf +aCp +ayf +aGL +aMX +aJR +aOP +aAO +anY +aHq +aYM +aST +aYM +bie +aYM +aYM +aYM +aYM +aYM +bqN +bjN +bmJ +bmJ +bqp +bri +bmJ +bfX +bst +bvQ +bwF +bBS +bKa +cll +bZH +chi +boC +anR +ajd +bTc +cwM +cyB +agX +bKz +bMo +bNJ +agX +agX +agX +agX +agX +agX +bBr +bYZ +cab +aaf +aaf +aaf +aaf +aaf +aaf +bIn +aaf +aaf +amO +bGD +bIa +bTJ +bGL +cpG +cxs +aaa +aaa +aaa +aaa +aaa +acm +aaa +aaQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(93,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +bsm +bsm +aWG +aWG +aWG +cAN +acL +aWG +bsZ +aWG +aWG +avY +bsm +beG +bwC +bxe +bwY +bxY +bwY +aGM +bxJ +ahF +aOS +aBN +aOF +bdU +byf +aTN +aTr +aUZ +aWN +byf +bmX +bcV +bes +bfk +bgT +byf +bBg +blw +bnw +boX +bgh +bsu +btW +bxd +bBW +aYM +aYM +aYM +cbx +bDu +bEc +ajd +ajd +cwO +cyW +agX +agX +acc +agX +agX +bmz +bBq +arq +bEo +bEF +bGX +bBf +aKC +all +alX +aHO +aJa +cfo +awS +chn +aKt +anh +aFy +amQ +bIk +bUq +anh +anh +anh +aaa +aaa +aaa +aaa +aaa +acm +aaa +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(94,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +adH +aea +cAs +adH +abN +czP +cDE +aWG +bta +btC +atL +avK +xBI +aob +azS +aAu +bwZ +bwN +bwZ +bxF +bxJ +ahF +aOS +aJi +aOG +btE +btK +btF +btE +aPK +aLU +btE +cJc +buC +aRF +aSP +buC +buE +buC +buE +bvy +buE +buC +brg +boC +bwf +byg +cbs +cbs +cbt +aYM +aYM +cbG +aov +ajd +ajd +cwM +czt +ajT +bBG +bNL +ajd +bRP +bBr +cdj +bBf +bEG +bBf +bBf +bVa +cHC +cHS +cHC +aKN +cfp +baF +cho +bFw +aZR +clc +clX +cmc +cnv +akK +acm +bUG +aaa +aaa +aaa +aaa +aaa +bUG +acm +aeo +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(95,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +adH +ajj +ajz +adQ +cAF +cAd +adH +aWG +aWG +aWG +bvT +avL +bsm +btA +cBh +btA +bxa +bxg +bxu +bwP +btA +bsx +aOS +aaJ +tEC +tEC +bvi +bub +buu +bvf +aTe +buP +buC +buW +bvn +bfv +bvU +bvu +cJc +blx +bnx +boY +buC +bsy +aoh +tqw +bCn +aoh +aoA +cbv +cbs +cbC +cbH +cbM +cbP +aer +aer +czw +bWQ +czU +bNO +cqM +bRR +cBU +cCh +cCh +cCo +bGY +bHv +bVc +cbc +cch +cdb +bIh +cfq +aDG +akK +akK +akK +cld +bGS +bIP +cnx +anh +anh +anh +aaa +aaa +aaa +aaa +aaa +acm +aaa +aeo +acm +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(96,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aUz +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +adQ +cxH +cAu +adH +adH +abX +cBc +cAF +cBg +aWG +bto +avT +aWG +azu +azV +btA +btA +bxf +bxt +bxX +btA +ahF +aOT +cfa +tEC +aTB +btT +buc +bug +bvf +bue +buv +buC +bvg +bvn +afQ +bvl +bvb +buC +blA +bAR +bJH +cJc +buK +aoh +bxk +bCq +aoR +aoA +aoA +aoA +cbD +aYM +aYM +cbM +cbw +aer +ajd +ajd +czW +cBm +aaY +aaY +bBk +bBk +aaY +aaY +bGZ +bBf +bVd +bHU +aMA +bIj +bFa +bFa +bFa +bCw +cdr +bzv +clh +bHS +bNn +cnA +bUP +cpG +cxz +bOu +aaa +aaa +aaa +aaa +acm +aaa +acm +aaa +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(97,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aUz +aeu +aeu +aeu +aeu +adH +cyz +ajA +ala +adQ +cAN +adH +cBf +adH +aWG +aWG +aTf +aWG +bwq +azW +bwR +bye +bxi +aEu +bxH +bxJ +ahF +aOS +cfa +btF +aqg +btU +buy +buJ +bvq +bvM +aTe +bbh +btM +bvL +bvX +bvZ +bvd +bjH +blB +bAS +buC +cJc +bps +aoh +aok +aoI +aoB +bsq +aoy +aoA +cbE +cbI +cbN +aYM +cbR +cbJ +ajd +bKA +bBG +aaY +aaY +ald +abU +aci +bWc +aaY +bHk +bBf +bVd +bXV +ccj +cdd +aMM +bRT +cIc +bRT +ciu +aDG +clj +bHY +bPN +cnC +anh +anh +bVn +aaa +aaa +aaa +aaa +aaa +acm +aaQ +aeo +aaa +aaQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(98,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +adQ +cAo +ajD +alb +cAG +ana +cBi +cDt +afZ +cDe +atM +anJ +btA +aij +azY +aAv +aBy +aDh +aEv +bxI +bxJ +ahF +aOU +aMQ +aOH +aPY +aYQ +buG +ann +bum +bup +aWB +buE +but +bvp +aUH +bag +bir +buC +buC +buC +buC +btw +btO +aoh +aor +aul +apm +bkp +abf +aoh +bFl +bHK +bFu +bGn +qvS +bIs +ajd +aaY +bNF +aaY +bPU +acs +bBz +acx +bWd +cpS +bYk +cpP +bVh +bHW +bNy +cdf +bFa +bFa +bFa +bFa +bFa +akK +akK +akK +akK +akK +akK +acm +bUG +aaa +aaa +aaa +aaa +aaa +bUG +aaa +aeo +acm +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(99,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aUz +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaB +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +adH +cAq +cDh +alc +cAH +cDh +anS +anJ +adH +asD +atN +awf +btA +bwr +bwJ +bwT +bxD +aAx +byb +btA +btA +acD +aOY +aMS +aOH +aYQ +aYV +buG +aoU +bun +buq +aWC +buE +buL +bvp +aUT +baw +bsM +buC +bpy +brT +buC +btL +aYO +aoh +aoq +aoP +aoS +aoX +adc +aoh +wCy +wCy +wCy +bvJ +bwc +bBj +bOU +bKB +bMp +aBJ +bPW +act +bBC +ack +bWe +bBk +bHk +bBf +cFA +axF +axF +axF +bFa +aFM +aFM +aFM +aFM +aFM +aFM +aFM +aFM +aFM +aFM +aFM +aFM +aFM +aaa +aaa +aaa +aaa +acm +aaa +aeo +aaa +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(100,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +adQ +cAr +cAy +cAC +adQ +bsf +cCI +cBc +adH +cDb +cDo +cBc +btA +bwK +btB +bwU +bxD +aAD +aEx +bxJ +aIl +ahF +aOS +cfa +btF +aRM +aYW +aZW +bbo +bbo +bbo +aWD +bbh +buM +bvr +aVw +aqv +bsQ +buU +bpG +bse +buC +btN +asF +asF +asF +akL +asF +asF +asF +asF +aos +bEd +wvq +bGq +bOP +bIt +bOU +abA +bMr +aaY +bPX +asJ +bji +acl +bCd +bBk +bHk +bBf +cHk +bFa +bGf +bRT +bFa +aFM +aGk +aDz +aDz +aFM +bIU +aDC +aVF +aFM +aDE +aMY +aMY +aFM +bUW +acm +aaQ +aeo +aeo +acm +acm +acm +acm +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(101,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +adQ +adH +adQ +adH +adH +anb +anU +apG +adQ +aoc +atO +awh +btA +bwt +bwL +bky +bxM +aBB +aEA +aAW +aIm +ahF +aPk +cfa +btE +aWL +buh +buZ +btP +buh +btP +beN +buC +buN +buM +buX +bvt +bsY +bvA +bpH +bsh +buC +boW +wvq +adu +bwk +byi +bzz +asl +asN +abG +bKW +bEh +avC +bGs +bOS +bPs +bOU +aaY +ach +aaY +bAJ +byz +bjk +acq +arr +abT +cFB +cbA +cFC +bFa +bFa +cBb +bFa +aFM +aDz +aDA +aML +aFM +aDC +aDD +aMO +aFM +aMY +bUQ +aMY +bFP +cCX +csK +aaa +acm +aaa +acm +aaa +aaa +acm +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(102,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aUz +aeu +aeu +aeU +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +adH +cCz +aoa +cCU +cCS +cDx +cDO +cAP +btA +btA +azZ +btB +aBz +aCN +aEC +bxJ +aIo +ahF +aOS +cfa +btE +aXm +vmu +bva +buj +btX +buz +btE +btE +btE +bey +btE +tEC +cJc +cJc +buC +buC +buC +bpn +wvq +aow +arB +atc +avy +asm +asw +asw +awa +jaZ +auP +bQx +bOP +bPt +bRf +aaY +aaY +aaY +aaY +aaY +aaY +bws +aaY +aaY +bHk +bBf +cac +bFa +cnz +bGG +bFa +aFM +aGU +aGV +aGW +aFM +aGX +aGY +aGZ +aFM +aHa +aHb +aHc +bUK +cjm +awu +aEh +acm +aaa +acm +aaa +aaa +aaa +aeo +acm +aeo +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(103,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +agt +aai +alm +aeu +coy +aUz +aeu +alm +acm +aaQ +aeo +aeo +aeo +acm +alm +acm +aaQ +aeo +aeo +aeo +aeo +acm +alm +aeu +aeu +aeu +aeu +aeu +aeu +adQ +cCE +cDh +cEE +cCT +cCU +cAF +cAO +cDA +qWU +btA +cCy +btA +btA +btA +btA +ago +aaZ +aOS +cfa +btH +aXp +btY +bvk +bvE +bvH +aWS +buA +bbk +bcW +beA +bfw +btE +aLl +bpf +bqr +brs +bsk +btO +wvq +asY +ask +aaV +aWO +aoT +abg +abM +awb +api +auP +bIK +bOT +bOP +bRg +bKE +ayA +bNS +bMG +bRS +bBy +bUz +bWg +axF +bYn +bBf +cae +bVo +cck +cBr +bFa +aFM +aMT +bEJ +aVP +aFM +aMT +bEJ +aVP +aFM +bwx +bEJ +bwx +bUK +csf +csL +aFI +aFI +aFI +aFI +aFI +aFI +aaa +acm +aaa +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(104,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +acm +aaa +acm +aaa +acm +aaa +acm +aaa +aaa +aeo +aaa +aaa +acm +aUz +coy +aeu +aeu +aeu +aeu +adH +cCF +cCM +cCR +bsf +ajv +adQ +cDc +cCU +cDh +cCU +cCU +aBA +aAw +aaI +aGN +cDq +aJS +aOS +cfa +btI +aXr +bua +bue +bvF +bvI +bvE +aPT +bbp +bvR +bsU +bvs +btE +aLD +bpn +asF +asF +wvq +asF +asF +asF +asu +auI +atf +auK +avW +ccR +apa +api +auP +auP +bOV +bQv +bRg +bKO +axF +bNX +bMH +bRW +aEL +bUA +bWi +aGe +bYo +bHy +cHi +bFa +aIZ +bGU +bFa +awu +brZ +acm +bGb +acm +brZ +acm +bGb +acm +bUL +acm +bUL +cBq +csi +aDk +aFI +cpy +bOq +cvd +aKs +aFI +aaa +acm +acm +acm +aaQ +aeo +aeo +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(105,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aUz +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +cmU +aeu +aeu +aeu +aeu +ceF +ceF +ceF +ceG +ceF +ceF +ceF +acm +aaa +acm +aaa +aeo +aaa +aaa +acm +aaa +aaa +acm +aaa +aaa +aeU +aUz +aeu +adH +adQ +adH +adH +adQ +adH +cCU +cDy +cDv +ati +auH +cdD +cdD +cdD +cdD +cdD +aGO +ago +aBO +aNq +aRY +elZ +btE +buf +aSh +aTt +aVa +aWW +btE +bbq +bvS +bvY +buF +btE +byy +boW +asF +aeM +bnZ +apw +bsA +asF +bwl +aoY +arh +abd +avX +avr +apc +apj +bFv +auP +bQx +bOP +bRh +tyb +iRL +cag +cbh +bRX +axF +bUB +bWj +axF +bYp +bEA +cHh +bFa +aEy +bEV +awu +bwv +bGo +bGC +bUM +bUS +bGo +bGC +bUM +bUS +cxT +bGC +cxT +cBH +cjs +aks +cKZ +cuf +cuE +cvf +aMB +aFH +aFN +cwz +aaa +acm +aaa +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(106,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +asZ +asZ +aAg +asZ +asZ +aAg +aAg +asZ +asZ +ceG +ceF +akN +aac +adr +adA +ceG +ceF +ceF +ceF +aaa +acm +aaa +aaa +aaQ +aaa +aaa +acm +aaa +aaa +acm +aeU +aeU +adQ +alN +chj +aoc +cCY +afZ +cDM +cGh +cDd +cBf +cdD +cdD +ahC +aYw +aZI +cdD +cdD +ago +aJT +aOS +aMU +aOI +btE +btE +btE +aOy +btE +tEC +tEC +bbr +aTe +aTe +bfy +btE +aLQ +bps +asF +aoo +aao +arL +bsB +ajH +bwm +aph +avz +asn +bKi +asQ +asV +acN +asW +awd +bHJ +bOP +bRi +bKP +axF +axF +axF +axF +axF +axF +axF +axF +bHk +cpd +cHi +bFa +aEZ +aIX +awu +bmV +ayG +aEF +aGo +bov +aEJ +aEF +bqR +cKM +cKP +cKR +bUT +crn +csm +cKY +cLa +cug +bPF +cvg +aMP +aFL +aIL +aFI +aFW +aFI +aFI +cko +cko +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(107,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aUz +aeu +aeu +aeu +aAg +asZ +asZ +asZ +aAg +asZ +asZ +asZ +asZ +aAg +ceF +axB +acn +acF +adt +adD +adO +ceA +aed +cgj +aes +aes +aeR +aeR +aes +aeR +aeR +aes +aeR +aeR +aes +aes +aes +adM +alO +amL +aod +cBl +adH +adH +cDk +cDk +adH +cdD +ceK +aAz +aBD +aDn +aED +cdS +aIq +aid +aPv +cgi +aOJ +aNo +aud +aPQ +aTu +bpq +aXa +tEC +btE +aTL +aOy +btE +btE +aLT +bpn +asF +bnA +avU +aaz +aqV +avc +bwo +apk +avn +ast +abn +bCz +bDw +bEi +bFB +asF +bHL +bQw +bRj +bKQ +aBM +caD +bCe +bsG +bBD +bCe +bVg +bCe +bHl +bBf +cHj +bFa +bFS +aIZ +awu +bEm +aLY +aSk +aSr +bpj +bdk +bdu +beU +cKN +bNu +bND +cKT +cKW +csn +aFP +cto +cuk +bPG +cvh +cvk +aFO +cwc +aFO +cwA +lSJ +aFI +aFI +aFI +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(108,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +asZ +asZ +aAg +aAg +asZ +asZ +cef +asZ +asZ +aAg +asZ +ceF +acJ +aco +acI +adw +adE +chP +chO +aee +ceF +aaa +acm +aaa +aaa +acm +aaa +aaa +acm +aaa +aaa +acm +aaa +aaa +adH +adH +adQ +aoe +apI +adH +ciZ +bSp +bSp +cGo +cdD +ceL +aAB +cfk +aDo +aEG +aYG +aIr +aie +aPz +bwV +ahx +aox +aRa +aih +aTv +bjg +aud +aud +bgb +aud +aPQ +chh +bgV +biw +bjM +bqE +bnB +auQ +auQ +aqV +asF +asF +asF +arn +arn +hAb +arn +aur +arn +arn +asF +bPp +bQx +bOP +bJy +aCq +cbA +bBf +byv +bBE +bBf +bBf +bBf +bBf +bBf +cHk +bFa +bFa +cdh +awu +cfr +cgB +chp +ciw +cjJ +clm +clm +cmd +cnE +coV +clm +cqm +aGx +cpp +amY +aIv +cul +cuF +cuF +cvm +aFK +aFQ +aFV +aFY +ktv +aNi +aGb +aGc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(109,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +asZ +asZ +ajE +cez +ceY +abj +abv +abB +abK +abQ +asZ +adg +azv +cfu +azv +adg +acu +chD +chD +chD +chI +aaa +acm +acm +acm +acm +aaQ +aeo +alm +aaQ +aeo +aeo +acm +aeo +alm +acm +adQ +aoi +adH +adH +cCA +cGi +cCB +cGp +cdD +ceM +aAB +aBF +aDs +aEH +ceZ +aIs +aiA +aOS +cgq +aXu +aox +aMi +aMc +aTz +apX +arA +akM +aox +bkj +bmK +boy +aox +cBQ +bAm +asF +bnF +bsp +btQ +bvj +aaK +aUf +asq +arn +aom +avS +bCB +bDx +bEj +atC +bIL +atu +bIu +bOE +bKR +bSP +bXJ +bPY +bRY +bTb +cjP +cpN +cpU +cpU +bZc +caf +bFa +bGG +cdm +cKr +cfs +cgC +chq +ciy +cjK +clo +clY +cme +btx +aIW +aGK +cqp +aMI +cpm +anB +czY +cup +cnb +bSs +cEm +aFU +cwd +jHJ +cwH +cwH +aFI +aFI +aFI +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(110,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +asZ +aAg +asZ +aam +aaF +cdV +cdV +abw +ceD +cel +abR +atB +adT +aHw +ace +acM +adg +adF +ajb +ciG +ayS +cis +ccP +ccY +bzS +cdt +acm +aaa +aaa +acm +aaa +aaa +acm +aaa +aaa +acm +aaa +cDk +aou +cDk +bSp +cCB +bSp +cGl +bSp +cdD +cdD +aqX +aBP +bkt +cdD +cdD +adP +aTK +aPH +aRh +aaX +aox +aox +aPZ +aSq +aox +aox +aox +aox +apX +apX +aox +aox +biy +bjP +asF +arK +avv +apP +bvv +btZ +bwA +byk +arn +apM +bpT +avN +ape +asU +atv +ark +bsN +bQx +bOF +bKS +bCM +bCM +bCM +aDH +bJl +bCM +bCM +bEL +bHm +bFa +cHm +bFa +bGG +cdp +aFA +bFx +bFy +chr +ciz +aIp +aIM +aIP +eMp +buV +coW +cpH +cqv +aGy +cpn +aHK +aNg +cFF +cFF +cFF +cFF +cFF +aJl +aFI +aFI +aFI +aFI +cko +cko +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(111,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +ciQ +aeu +aAg +asZ +aak +aan +aaH +cdY +cdZ +cdW +cdY +cei +abS +acb +adg +ace +acp +acW +alV +adG +adR +adU +adR +adR +aev +bAf +acm +aaa +cev +aaa +aaa +acm +aaa +aaa +acm +aaa +aaa +acm +aaa +adH +aoE +adH +ciZ +cGp +atR +bSp +ciZ +cGi +cdD +ceZ +aQY +cdD +cdD +ago +aIz +ajW +ajJ +aOS +fXq +aIV +aox +aOk +aox +aox +aXd +axf +bVK +aHz +bzD +aLW +aox +cBV +aox +atT +atT +dis +dis +dis +dis +ajK +atT +dis +atj +apN +awj +apf +atg +auG +ark +bsO +bQx +bOJ +bPo +bCM +bCZ +bPZ +bSa +bTd +bDO +bmb +bmb +bmb +bFs +cai +bFa +aRQ +cJM +awu +awu +awu +cht +ciA +aMR +aDk +aDk +cmf +aIU +coY +aIt +cqy +aGT +cpe +aHx +ckE +cBz +aHd +aMZ +aFc +cFF +acm +aaa +aaQ +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(112,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aai +cmS +asZ +asZ +aLJ +aas +aaP +cdY +ced +aby +ceq +cem +abV +acd +age +acg +aiX +acX +chW +asf +cdv +chf +chF +aeh +aex +bSo +cds +cds +cds +cir +civ +cix +civ +civ +civ +civ +civ +cix +civ +ciH +ciU +ciH +cdk +cGf +cdk +cdk +cdk +cGs +cGu +aAE +aBU +aDu +aYk +byC +aIA +atQ +cjj +aRj +anX +oPf +aLV +axf +aHz +bsl +aXx +bAe +bTh +cah +chs +bfA +cGS +cHf +aaM +atx +arN +bik +bqa +aTm +bud +bwB +bym +bnP +atj +avV +asA +apf +atr +auG +arD +bsP +bQx +bOF +bYW +bCM +aIe +bQj +bDD +bTf +bDP +bCC +bWF +bDX +bFs +cHo +cHD +cHT +cJN +cEn +awu +aGw +chu +ciC +azc +aDk +aGu +gwD +azT +coZ +aIx +cqB +aHs +cpp +bDa +acm +cBA +aHe +aFm +aFc +caK +acK +acm +cow +aaa +cow +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(113,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +anH +aeu +asZ +aAg +aal +aaw +aaU +cdZ +cdY +cfK +cdY +ces +abW +abs +adg +ace +acr +acY +chX +adI +adS +adY +adR +aek +aeA +bAf +acm +aaa +chM +aaa +aaa +acm +aaa +aaa +acm +aaa +aaa +acm +aaa +adH +aoF +adH +ars +bSp +ciY +ciZ +ayo +cGi +aAb +aAH +aBX +aDv +ago +aGP +aIB +aba +cgw +aRk +apY +oPf +aLV +aHz +aTE +arl +arl +byV +bzc +gMU +gMU +bfJ +abk +aqb +atT +atT +aqz +aoW +bqe +aqQ +aqQ +avQ +byn +bzI +atj +auY +asE +apg +bui +aqR +ceI +atE +bIy +bOY +bYX +bHn +aIw +bQn +bDE +bTi +bUC +aFi +bWH +bDY +bFs +bFU +bGg +bFZ +bRT +cEw +awu +cgD +chv +ciC +aGz +bxm +brl +cmg +aGs +aHH +brm +cqD +aHu +cpq +aIO +clu +cBB +aHf +bDR +aFc +cFF +acm +aaa +cow +aaa +cow +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(114,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +asZ +asZ +asZ +aaD +abe +adq +cdH +abz +cdH +ceB +abZ +atB +adT +aZh +acz +ada +adg +adI +apx +cip +asK +chL +ccX +cdl +bzS +cdu +acm +aaa +aaa +acm +aaa +aaa +acm +aaa +aaa +acm +aaa +cDk +aoJ +cDk +ciY +ciZ +ahh +ahh +ahh +qtv +qtv +qtv +qtv +qtv +cfM +cfM +hvb +hvb +cfM +aRl +bVL +aKg +aLV +aHQ +arl +arl +boi +bsI +byP +bzj +bzc +bfL +agW +aqj +aqe +aqi +aqS +aqB +bqe +arW +asd +avR +byn +ara +atj +bBF +bCK +bDz +atI +ath +ata +atG +bQx +bOF +bYW +nVt +bDp +bQn +bSf +bTm +aMJ +bDI +bWJ +bDZ +bFs +cxL +bGj +aRQ +cny +bEV +awu +aCZ +chw +ciA +aGA +aMk +brl +cmi +aKQ +cpa +brm +cqB +aGy +cpr +aJp +acm +aFM +cDU +aFM +cFz +aFM +alm +acm +aaQ +acm +aaQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(115,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +asZ +aAg +apn +ceE +cfJ +abs +abv +abC +abL +aca +asZ +alV +azv +chB +chV +adg +ciN +ciM +chI +chI +chI +aaa +acm +acm +acm +aaQ +aeo +aeo +alm +aeo +aeo +aaQ +aeo +aeo +alm +acm +adQ +aoM +adH +adH +ahh +qtv +awo +cdn +cdJ +aAf +cfc +aCd +cfA +axk +cjc +aoN +amh +cfM +aRm +cci +aKP +gMU +arl +arl +byN +aXy +aYY +bbG +bzk +bzd +cGk +auy +adb +asX +blM +bnG +bpd +bqg +bsC +buk +bHB +aGG +auc +atj +atj +bHI +atj +nNA +atT +atT +atT +bIz +bOF +bYW +bIq +bDq +bDv +bSf +bDN +bDS +bmb +bmb +bmb +bFs +bFa +czv +bFa +cnz +bFS +awu +cgF +chx +ciA +aGB +aDk +brl +cmg +aKW +coZ +brm +cqB +cjQ +cpo +aHx +ckE +cBz +aHg +aNa +aFd +cFF +acm +aaa +cow +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(116,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aAg +asZ +asZ +asZ +aAg +asZ +ceo +asZ +aAg +asZ +asZ +cfY +acP +acA +adj +ady +adJ +cii +cfY +aaa +acm +aaa +aaQ +aaa +aaa +aeo +aaa +aaa +acm +aaa +aaa +acm +aUz +aeu +aeu +aeu +adH +aoO +apR +agx +ahh +ajP +aws +cdo +cdK +evx +cfd +evx +cfB +cfO +adB +aIH +aJV +aCV +aNd +cdg +aQh +bwp +ciX +cdc +byq +aXz +aYZ +bbU +bzm +bzc +bfN +ahm +aqw +atl +blN +aqx +aqD +aqL +bsE +bul +ayq +byp +bzJ +atp +arC +bCL +bDA +bfR +bFD +aww +aLC +bIA +bPw +bYY +bCM +bDr +bCM +aDK +bCM +bCM +bCM +amP +aEU +bEH +bFc +cbd +bGJ +cdr +bGG +awu +aMV +chz +ciA +aGl +aIK +aIy +cmk +aMr +cpc +cpJ +cqB +clv +cpp +bDa +acm +cBA +aHh +aFn +aFd +ccT +acK +aaa +cow +aaQ +cow +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(117,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +asZ +aAg +aAg +asZ +asZ +aAg +asZ +asZ +aAg +asZ +cfY +acj +acB +adm +adz +adN +ciB +cga +acm +aeo +aaa +aeo +aaa +aaa +aeo +aaa +aaa +acm +aaa +aeU +adQ +adQ +adH +adH +adQ +adH +cFU +cFf +agA +ahh +atS +awB +awJ +awJ +aAh +cfe +evx +cfC +cfP +aoD +aII +aJW +bdl +aNe +chk +aQi +bgZ +aSm +biE +aVc +aXD +aZb +byT +bzo +aHz +cGq +apy +aqC +avB +cce +aqc +biv +aqM +bsE +buo +aGG +byr +bzL +asg +abF +bCN +bwh +bwj +bFF +abF +bdC +bID +bPB +bZa +ahS +bJE +bCP +bSg +bCE +bML +alF +bWL +bYq +bZd +bFT +cbe +cBp +bFa +bFY +awu +aDk +chA +ciE +aDk +aDk +aDk +cml +aMs +aHH +aIE +cqF +clI +cmq +aIO +clu +cBB +aHi +bFG +aFd +cFF +acm +aaa +acm +aaa +cow +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(118,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +asZ +aAg +aAg +asZ +asZ +aAg +asZ +aAg +asZ +cga +cfY +cde +chG +ciD +ciq +cfY +cfY +aaa +aeo +aaa +acm +aaa +aaa +aaQ +aaa +aaa +acm +aUz +adH +adH +cEC +cEH +cEM +alQ +adH +adQ +abX +cBc +qtv +cew +awI +cdq +cdL +aAi +awJ +aCe +aXM +aEI +aZM +aIJ +aJX +cfM +aNj +avo +aQj +byj +cje +cdc +byB +aXG +aZc +bbV +bzq +bzc +bfL +agW +aqO +aoj +blR +aqy +aqE +aqN +bsE +buo +aGG +bys +bzM +asa +asy +bCO +bDC +bIC +bFI +bKI +bpU +bIE +bPL +bZb +bmc +bCJ +bmc +aDW +bmc +bmc +bmc +aqd +bYs +aHV +bFa +cbe +bGK +bFa +cen +awt +aJg +chC +ciI +cjL +clp +clZ +cmn +byl +cpf +cpg +cqJ +cpj +cpt +aJG +acm +aFM +cDU +aFM +cFz +aFM +alm +acm +cow +acm +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(119,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +coy +aUz +aeU +aeu +alm +aeu +aUz +cmV +aeu +aeu +aeu +aeu +cfY +cga +cfY +cfY +cfY +cga +cfY +acm +acm +alm +aaQ +aeo +aeo +aeo +acm +acm +aaQ +alm +aeu +adQ +cCr +cED +ieA +ale +alT +cEW +aoZ +cFg +agC +qtv +atU +jCp +awJ +awJ +aAj +cff +iiA +cfE +cfR +cge +bav +cgu +cfM +aRu +chm +aLg +arl +arl +gMU +bAw +aXH +aZl +bbY +bzb +jOz +cGk +auy +aeS +awg +blT +bnI +bpe +bqm +bsF +bur +atj +aHU +auc +atj +atj +aug +nNA +nNA +nNA +atT +atT +bIz +ice +bKY +bCE +bNY +bCR +bSh +bDd +bUD +bmc +avq +bFd +bFa +bGa +bGu +bFC +aHV +cep +awt +aJh +chE +ciJ +cjM +cls +cmb +cmo +aMu +aMG +aIu +cqB +coG +cFt +aJI +ckE +cBz +aHj +aNb +aVG +cFF +acm +aaa +cow +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(120,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aai +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +ccz +aeu +aeu +aaa +aaa +aaa +acm +aaa +aaa +aaa +aaa +aaa +aUz +aeU +aeu +aeu +adH +cEA +cEE +ajG +alg +alU +cEX +apb +cFf +cEh +ahh +ccU +awK +cdB +cdM +aAk +cfg +evx +cfF +cfS +cgf +aIR +amj +cfM +aRv +atF +aLk +aLV +aLW +gMU +arl +byM +aZn +bbZ +bzr +bzc +bfT +apT +arO +aqh +aqk +att +aqG +bqs +arY +auM +arX +byt +afT +atj +aaq +aum +apK +aun +arw +avF +aus +bIJ +bOY +bKZ +bmP +bNZ +bQr +bSi +bTn +bUF +bmc +bWP +bYt +bZe +bGd +awN +awN +awN +aJj +aJk +agN +aCw +aAV +aDr +aCw +aDk +cmu +aJc +bBt +bFj +cqK +coM +ctZ +bDb +acm +cBA +aHk +aFo +aFe +ctr +acK +acm +cow +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(121,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +anH +aeu +aeu +aeU +amq +aeu +aeu +aeu +aeu +aeu +aeu +aeu +alm +acm +aaQ +aeo +acm +alm +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +adH +cEB +cEF +ajM +alh +alW +cEY +apd +cFh +cFj +ahh +ahh +awM +cdC +ceJ +aAl +cfh +aCk +cfG +cfN +afP +aIS +cfM +cfM +aRw +anY +aKe +aLV +aHQ +aTG +arl +arl +aZo +bcm +arl +arl +bfW +apZ +ass +atT +atT +atD +aqG +bqt +cOW +cOW +cPb +byw +ard +nNA +apv +bCS +bDF +bEk +bFM +bGt +bkW +bIu +bOF +bKY +bCE +bOe +bCT +bDy +bDe +bUH +bEZ +bWR +bFE +bEV +bFg +awN +ccl +aCx +aCA +cft +aIg +aSj +ciK +cjO +aMm +aDk +cmv +cnG +cpi +cpK +cqL +cph +bwy +aKm +clu +cBB +aHl +bId +aFe +cFF +acm +aaa +aaQ +aaa +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(122,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aUz +aeu +aeu +aeU +aeu +aeu +aeU +aeU +aaa +aaa +aaa +aaa +aaa +acm +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +adH +adQ +cEG +cEL +cEQ +alY +adH +cDP +abX +adH +cAF +ahh +ahh +ahh +qtv +ahh +qtv +qtv +ahh +cfM +hvb +cfM +cfM +cgz +aRy +auo +aKe +aLV +aLX +aHz +bsl +aXJ +aZs +bco +bJO +cgK +cGC +cgK +cCg +bjS +atx +auU +biO +bqu +bsH +auX +cwE +byx +bnQ +atj +aUj +bCU +apD +apL +apQ +bGv +aus +bIM +bPS +bLf +aBm +bOh +bQs +bSj +bQs +bUI +bmc +bWS +awN +awN +awN +awN +ccn +auS +aBQ +cfv +aIg +aHT +ciL +cjR +aDe +aDk +awv +bNQ +aDp +aJo +aDp +aJt +aJx +aMt +acm +aFM +cDU +aFM +aFM +aFM +cke +acm +aUz +aeU +cke +aeu +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(123,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeU +aeu +aeu +aeu +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +aaa +aaa +aeu +aeu +aeu +cIV +cIV +cIV +cIV +cIV +khA +cIV +cIV +cIV +cIV +cIV +cFi +cDZ +cEi +cEq +anK +cFo +aay +cFT +aUa +ctz +cvM +awE +aEN +aGQ +hzY +jxc +avw +aRB +aJi +aLE +apX +aOk +aox +aox +aXT +bAo +bcq +bTh +chs +bga +aHz +biA +bjT +atT +atT +atT +beM +asx +bxx +asx +byD +asx +asx +aui +bCW +bDG +bEl +bFO +bGw +axm +bIu +bOF +bKY +bCE +bOi +bCV +bSk +aJK +bUR +bmc +bWV +awN +aBL +aBT +cHE +ccp +aBV +aBW +cfw +aCU +aGf +ciO +cjS +clt +aBK +cmx +cnH +cpk +aDt +aJq +crt +aJy +bIb +ckE +cBz +aHm +aNc +aFf +aFM +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(124,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +aaa +aeU +aeu +aeu +aeu +khA +cIX +cIX +cIX +cIX +cIX +cIX +cIX +cIX +cIX +cIV +baH +baH +baH +baH +baH +baH +cFr +avm +aUa +amk +cvN +cvT +aEO +aGR +cwr +cFZ +avI +aRE +cfa +aox +aox +aiF +akw +aox +aox +aox +apX +apX +aox +aox +aox +cCi +bjU +blU +auw +akb +bqw +asx +bus +bwD +bzB +aop +atd +aui +apO +apJ +cjv +bqf +cjy +aus +bIJ +bOY +bLi +bmc +bmc +bmc +bDB +bDg +bmc +bmc +bEp +awN +axe +caj +cbg +ccq +aCo +aCo +cfx +aIg +aCT +ciP +cjU +aDg +aMk +cmy +bBi +aHS +aMb +aJP +cru +aJz +bDf +acm +cBA +aHn +bIw +aFf +aFM +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(125,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaQ +aaa +aUz +aeu +aeu +aeu +khA +cIX +cIX +cIX +cIX +cIX +cIX +cIX +cIX +cIX +khA +cCP +cEa +cEj +cEr +cEx +baH +cFs +avp +aUa +ctK +cvO +cvU +aEQ +aGS +tGU +aJY +awr +aRX +aOK +aXv +aRb +anO +anO +aDJ +aZV +anO +bcv +bcY +beC +bge +aOk +cCj +bjZ +blV +agZ +ahv +bqx +bsK +bsj +bzT +bCI +arR +bEe +aui +aui +avb +aui +xei +xei +aui +bCH +bQd +bKQ +bQk +caD +bBe +bBe +bBe +bCg +bWk +bWW +ane +aBR +cam +cbi +cct +cdw +cer +cfy +azk +chN +ciR +cjV +aMn +aMo +cmz +cnK +cpl +cpL +aJs +crz +aJA +bIe +clw +cBC +aHo +aFf +aFf +aFM +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(126,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaB +aaa +aaa +aaa +aaa +aaa +aeo +aeU +aeu +aeu +aeu +aeu +cIV +cIX +cIX +cIX +cIX +cIX +cIX +cIX +cIX +cIX +khA +cDR +cEb +cEk +cEs +cFk +baH +agD +baH +aUa +aAI +aCl +aDx +aER +aHr +aCC +aKi +cIw +cKd +aox +aox +aRc +bzN +akM +ajt +ajt +aZq +aZq +ajt +ajt +aQO +apX +cCk +bka +blW +atj +alj +bqB +asx +aoz +avh +bCX +bGe +bHb +bBH +bEM +bDH +bEn +bJJ +aox +bOU +bRd +bOF +bJy +aCq +cbA +bBf +bBf +bBf +bBE +bBf +bEN +ane +aBS +aBZ +aCf +aCn +cdy +aKo +aCi +aIg +ayY +aCY +aNh +aDi +aCw +cmC +aDm +aJO +cpM +cqO +crC +css +aJH +cok +aFM +aFM +aFM +aFM +aFM +aeu +agt +aEg +cko +cko +cke +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(127,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acm +aeU +aeu +aeu +aeu +aeu +cIV +cIX +cIX +cIX +cIX +cIX +cIX +cIX +cIX +cIX +khA +cDT +iSg +cEl +cJD +atV +cEg +ayp +avO +aUa +cvK +cvQ +aDy +aES +aHv +aUa +aKl +aPz +aNl +aGh +aGh +aZf +aGh +aGh +ajt +aBc +bmH +boJ +bcZ +ajt +bgf +aox +apX +aox +aox +apX +aox +ahy +asx +aqt +avj +bDc +ave +abq +asx +asx +bDJ +bAj +bpn +aox +bHM +bPn +bQh +bLl +bSY +bXJ +bZZ +bZZ +cgE +cjY +cpP +cpV +awN +awN +aCg +aSs +bqD +cJY +aCj +bII +aIj +aDj +azh +bJP +aKB +aKD +aKF +aMj +aJM +aMy +cqR +crI +csv +aJH +aeu +cko +csP +cvi +csP +cuq +cuq +cuq +cuq +cuq +cuq +cvi +aeu +sDw +aeu +aUz +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(128,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +alm +aeu +aeu +aeu +aeu +aeu +cIV +cIX +cIX +cIX +cIX +cJo +cIX +cIX +cIX +cIX +khA +cDW +anT +cGd +cEu +atW +cFp +ayt +aoC +aUa +aUa +aUa +cvW +cFH +cwn +aUa +aHq +aNq +aZO +aGh +aQm +aRi +aSn +bqU +ajt +aXV +aZu +boT +bdg +aBC +bgl +bpq +biD +bkb +blZ +bpq +bpg +aYO +iYW +bwb +arz +bDc +avd +asB +aru +asx +bpq +bEr +bFR +bKJ +bHN +bMm +bQi +bLq +axF +axF +bQy +bBn +axF +bCr +bBf +cpW +bYu +aCc +cas +bEx +ccw +cdz +cet +azM +awH +awF +ciS +cjZ +cly +aKE +aKG +aKG +aKH +aKG +aIC +bww +aJE +aJL +aeu +cko +aDY +aEd +aEi +aEm +aEk +aEf +aEr +aEf +aEr +cxl +aeU +aai +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(129,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +khA +cIX +cIX +cIX +cIX +cIX +cIX +cIX +cIX +cIX +khA +cDX +cEe +cIi +cEv +atX +baH +cDZ +azw +aAm +axL +aCm +aAm +aAo +aAo +cFY +aKn +aLo +aNp +aGh +aKT +aZm +brd +bqV +ajt +aTC +aZB +bqc +bdo +bqz +bgo +apX +bqb +cba +aIN +aox +bzN +arA +asx +bwd +bzA +bLe +auT +auT +arF +iYW +bAb +bQR +aYO +aox +bHO +bOP +bYG +auE +auE +auE +auE +auE +auE +bCs +cpd +crs +bYv +cym +cat +cHH +cHV +cKa +ceu +azN +aKw +chQ +bUv +aCS +aMh +awH +aIF +cpB +azy +aMw +aID +crJ +cgH +cHu +aEg +cko +aDZ +aEe +aEj +aEn +aEp +aEf +aEj +aEf +aEj +cvi +aeU +aai +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(130,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aap +aeu +aeu +aeu +cIV +cIX +cIX +cIX +cIX +cIX +cIX +cIX +cIX +cIX +cIV +cDY +apS +art +baH +aXW +baH +aXW +agn +baH +ban +ban +akB +ban +ban +ban +aKp +aiR +cfa +aGh +aKU +aZx +bac +bqW +ajt +aUM +aZD +bqd +bqv +ajt +bgp +bhb +biF +bkk +bmd +aYO +aYO +bqF +asx +bjO +bwE +byE +bzP +arV +brU +iYW +bAp +bQS +aox +aox +bZl +bQv +bJx +awq +aKd +bBd +bBR +bCl +bCA +bCr +bBf +csC +bYw +aIb +cau +aCy +ayk +aKk +cex +axH +bFt +chR +ciV +cka +clz +awH +cmG +cnT +cpz +cqd +axa +crO +axa +csP +ctp +cuq +aEa +aEf +aEj +aEm +aEq +aEf +aEj +aEf +aEj +cxl +aeU +aai +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(131,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aUz +aeu +aeu +aeU +aeu +aeu +aeu +khA +cIX +cIX +cIX +cIX +cIX +cIX +cIX +cIX +cIX +cIV +aXW +cEg +cEp +aXW +apo +cCt +cEg +azz +aAn +ban +aCr +aDL +aEV +aHy +ban +aKq +aiR +abb +aGh +bdn +aRo +aSp +aTH +ajt +aVq +aZD +bcw +bdy +ajt +ajt +blc +hqv +ezp +ezp +aZd +auj +aZd +asx +asx +asx +asx +iYW +iYW +asx +iYW +bMu +bRr +aox +bOQ +bPn +bOP +bJy +axn +bMs +bOj +bQz +bSl +aEM +bUV +bEB +csD +bYx +cyn +caw +cHI +cHW +cKb +cey +aDc +awH +aDj +azh +bJP +aDj +awH +cmI +bfe +bxL +cqe +axa +cfz +axa +aDN +axa +axa +aDN +axa +aEk +aEn +aEi +aEf +aEr +aEf +aEr +cvi +aeU +alm +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(132,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeU +cui +aeU +aeu +aeu +cIV +cIX +cIX +cIX +cIX +cIX +cIX +cIX +cIX +cIX +cIV +cLe +cCt +arx +aoC +cJQ +cJQ +ayu +awc +axD +ban +aXC +aCO +aZJ +aHA +baW +aKr +aiR +adC +aGh +aGh +aGh +bhK +aGh +ajt +ajt +boI +ajt +bqy +hqv +bgr +bhd +biJ +bjn +bmE +bns +bpk +bnD +bnS +boc +bwG +bso +bpi +aZd +aZd +aXa +aYO +bAt +aox +bGx +bOP +bIN +bJG +awq +aKf +bOk +bQA +bCo +awq +bCr +bEC +csE +bYy +aCc +caz +bEy +ccy +cdA +ceC +aGv +axa +azf +azg +bKr +aLf +axa +azX +ayK +bxZ +axa +axa +crR +chy +csW +cjI +cjW +cuI +axa +cvo +cuq +cuq +cuq +cuq +mbs +cuq +cxl +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(133,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aap +aeu +aUz +aeu +aeu +cIV +cIV +bTj +ahz +cIY +khA +cIY +ahz +cJR +cIV +cIV +cIH +cIH +cIH +cIH +cJK +cJW +auC +asH +baH +ban +bfn +aZK +aYi +aHB +baW +aKr +ajJ +cgR +bsc +bqK +aRp +brM +aTJ +brB +aXY +aZH +ajt +bdB +beJ +bqq +bhh +biL +aZd +bqh +bnJ +bpl +bqG +bsL +buw +bwH +cPj +bnT +bor +aZd +auj +bew +aZd +aox +bvJ +bwc +bBj +auE +auE +aBE +bOm +bQB +bCp +awq +bCr +bED +csF +awN +awN +axM +aSt +axM +buT +cKu +axM +axa +byF +ciW +ckb +aFg +axa +cmK +cnY +cnY +cnY +cqW +crT +cnY +csX +cnY +cnY +cuK +aAQ +axW +axW +axa +axa +axa +axW +axW +axa +axa +gvR +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(134,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +cIV +bsJ +ahA +cJk +aDF +cJu +ajN +bsg +cIV +aeO +cIH +cIn +arE +cIO +cJQ +cFy +cFT +aty +aAo +axu +aCt +aDM +aEY +aHC +baW +aKr +aiR +cgR +bna +bqL +bno +brM +brj +brk +brE +aZN +bjI +bdF +bmO +boA +bhi +boV +bjn +bmG +bnK +bny +bqH +bny +buB +bny +bzt +bAs +bBQ +bBK +bCY +bDK +aZd +bGc +bGy +bhY +bIR +awq +aKa +aKh +bOp +bQC +bCx +awq +bUY +bBf +cud +cyb +btG +awT +axc +aPs +axN +ceH +ayU +axb +ayW +cja +cKz +clB +axW +cmL +cob +cpA +cpA +cqX +crX +csw +csY +ctq +cur +cuM +aAR +cvr +ckw +cmw +xON +fAH +jPE +gIE +gIE +dQe +axa +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(135,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +cIV +cIq +ahB +ahO +aiv +ajk +ajZ +cJP +cIV +baH +cIH +apW +arG +cIt +atY +cJm +akO +atH +aoC +ban +aYl +aDO +aYq +bet +ban +aKv +aiR +cgR +bna +aQp +boe +brQ +brV +brV +brV +aZP +nJw +bdL +bmR +boB +bhm +bqP +bmF +bcX +bnN +bny +bqH +bny +buB +bny +bzC +boS +bCF +bFW +bIx +boz +aZd +bIB +bZM +bhY +bIT +bQI +bLr +bMt +bMt +bMt +bSm +bQI +bUZ +cpQ +cwU +axj +cyp +caA +cbl +cbl +cdE +ceO +bRk +axb +cgW +cjb +cKF +clD +aCh +cmT +coc +azE +brn +aLF +cin +cin +cin +aLF +cut +cuO +bVF +cvt +ckH +cmA +czf +axW +dww +gIE +gIE +gIE +axa +aeu +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(136,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +coy +aUz +aeu +baH +baH +baH +aeu +cIV +cJb +ahD +ahT +aiw +ajl +akc +cJE +cIV +cIK +cIH +cIJ +arH +cIM +atZ +awR +akW +aZS +aZS +aZS +aYH +aCJ +aYH +aYH +mej +aoK +aua +aNw +beL +brr +brb +brR +brP +brA +brH +brr +bow +bqk +bmT +boD +bhp +bpb +bjn +bme +bnK +bny +bqH +bny +buB +bwM +byG +bof +bFJ +bFX +bqQ +ezp +aZd +bBU +bXv +bhY +bIW +awq +aKc +byQ +caR +bCk +caq +auE +bVb +bWl +bXa +awN +cys +caC +axp +axs +cdF +ceP +axH +bGF +chS +cjg +cKI +clG +aCR +cmY +coe +aMa +bro +axU +crZ +crZ +csZ +axU +cuv +cuP +axW +aBx +aAM +aAM +aAM +axW +pCe +gIE +gIE +gIE +axa +aeu +aeu +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(137,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeK +baH +afb +baH +baH +cIV +cJz +cJi +cJF +cJL +cJw +cJw +cIV +cIV +anc +cIH +cIM +cIH +cIH +cKk +baH +alf +aZS +cEz +bhB +bhC +aDP +baj +bak +aZS +bOL +aiR +aNy +beL +aQw +aZz +bal +brW +brX +brr +brw +bnL +bql +bqj +bqn +bhr +bhd +bol +bmg +bnO +bny +bqI +bsR +buD +bwO +bAl +bAu +bFV +bGk +ezp +ezp +bGh +bZI +bhY +bCa +bMD +uzR +auE +auE +bNV +auE +auE +auE +axF +bBJ +axF +awN +cyx +caI +axH +bQm +azd +ayV +aLe +bHe +chT +cjh +ckc +clJ +axW +cmY +coh +axU +aLH +aLu +aLy +aLy +cjN +axU +cuy +cuU +aLK +aBx +aAM +aAM +iBL +axa +gIE +gIE +dww +mLN +axa +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(138,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aem +aeD +aeL +ajI +afi +aml +afL +aVQ +agB +ahG +ahV +aiN +ajn +ake +ali +cIB +and +cFT +cJO +afG +ait +apB +awY +aln +aZS +aXi +aAK +aCu +aDR +aZT +bdd +aYH +arv +aiR +cgR +bna +aQx +brt +bap +bsb +brq +brF +brG +hqv +boQ +boH +bqo +bht +biN +bnj +bmh +bnU +bpo +bqM +brN +brO +bwQ +bAn +boa +boh +bon +aZd +bGh +bZz +bsn +bIO +bhY +bME +cBF +bkT +bNN +bNW +bQH +bUU +coX +bVe +bWm +bAM +awN +bKp +caJ +bKp +awW +cdN +ceQ +cfH +axb +aAa +aLq +bKw +aLp +axa +cnc +coj +aLs +cqi +aLv +csa +csa +csa +axU +cuz +cuV +axW +cvu +aAM +aAM +aMW +axa +gIE +gIE +gIE +gIE +axa +aeu +aeu +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(139,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aUz +aeU +aeu +aeu +alB +alB +alB +alB +alB +cEg +agE +ahI +ahW +aiO +ajp +akf +ajp +cqE +ajp +cqS +cqY +afW +aWY +aWY +aWY +aWY +aZS +aYm +aAL +aAP +aDS +aZU +bdI +bez +acS +aiR +aaR +bmy +bmy +aRq +aSu +brr +aVd +brJ +brI +hqv +ajt +bmA +bph +bmS +bmZ +aZd +bqJ +cCC +bnC +bnc +aZd +bnq +bnH +bnR +bob +bRc +bZy +bZp +bZA +bZD +bZJ +bZN +bZR +bMP +bQF +bAV +bNP +bOa +bQJ +bUU +bTo +bNc +awX +awX +awX +awy +cHv +axI +awX +awG +bDm +azI +axb +axa +axa +bzH +aBv +axa +cnf +com +aGD +ayn +aIn +ayn +azm +ayn +axX +aAp +cjT +axW +aBf +aBg +chH +aLN +axa +fyr +dww +gIE +uxQ +axa +aeu +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(140,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +alB +bfq +iMq +bbx +alB +afX +agF +alB +alB +alB +pQf +pQf +pQf +alB +alB +alB +aep +aga +aWY +aFs +aqq +bdA +bah +aXg +aAT +aAC +aDP +aFa +aHD +aYH +arv +aiR +cgU +aOV +bmy +bmy +baM +beL +bna +bna +bmy +bnv +bfH +boG +bux +bhv +biP +bpV +bmi +bnV +byh +bqO +bnv +buH +bPv +bPy +bPV +bXv +bhY +bZr +bZB +bZE +bZK +bZO +bBV +bMW +bQG +bMv +bNR +bQD +bRL +bBv +bTp +bNf +awX +awx +bYz +axw +cyf +czB +awX +axY +ceR +axQ +ayQ +aBI +aab +ckd +clL +aFB +cnj +con +aLt +cqk +aLw +csb +csb +csb +aLH +cuz +cuV +axW +aBx +aAM +aAM +aNf +axa +axa +axa +axa +axa +gvR +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(141,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +alB +aWJ +ayv +aWJ +alB +cIe +bhl +alB +bfq +juX +bbx +aWR +bfq +aUI +bbx +alB +crh +dYu +aWY +bde +aXo +aXO +atq +aXt +aAX +aBe +aEP +aHM +aHE +aZy +aKx +aiR +cgV +aPd +beu +aRr +aSv +aTM +boZ +boZ +aXL +bpQ +bgg +biz +bAX +bAX +bnz +bBZ +bqS +bGW +bGW +bqX +brz +buO +bhY +bCa +blq +bhY +bhY +bZs +bZx +bZF +bGi +bGz +bhY +bJb +bJI +bUU +bNU +bQE +bSz +bUU +bGH +bNh +awX +awO +bYA +axh +cyg +axJ +ayg +axZ +ceS +cfI +cgG +aAe +ayr +ckf +clM +axW +cnk +coo +axU +aLH +aLx +aLz +aLz +aLB +axU +cuA +cuU +aLK +aBx +aAM +aAM +aAM +axa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(142,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +pQf +bfs +aWJ +bft +aWR +agf +agM +aWR +bhu +ayv +aWJ +aWR +aWJ +ayv +bhu +alB +aeN +aga +aWY +aWV +aXb +aXS +atq +aad +aAY +aCB +aDT +aFb +aHF +bbQ +aKz +axz +unX +aiR +aHq +bhY +baQ +bbz +bOK +bOK +bOK +bOK +bgK +biC +bOK +blj +bnE +bpN +bqT +mIt +bsv +bOK +btt +bOK +byo +bEt +bEt +bAB +bEt +bDh +bnv +bnv +bnv +ayO +aAU +bNA +bNM +bNM +bNM +bNM +bNM +bNM +bNM +crb +awX +awP +bYB +awz +cyj +cHK +ayg +bZq +ceT +cfQ +aym +aCa +ays +ckh +ayz +axW +cnk +coq +bCG +bFh +axU +crZ +crZ +crZ +axU +cuz +cuV +axW +aBx +aAM +aAM +aAM +axa +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(143,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aUz +aeu +aeu +aeu +alB +alB +alB +alB +pQf +pQf +bfM +bfM +bfM +aWR +agh +agQ +aWR +bfs +aWJ +bft +bhn +bfs +aWJ +bft +alB +aeT +agg +aWY +aXU +bdb +bdS +bah +aZC +bad +aBr +aAF +aFk +aHI +aZS +aKI +aLA +aMN +aPg +bdf +bpC +bkG +bbH +bnM +bpC +bpC +bpW +bgP +bBc +bBp +bBA +bBY +bBY +bEf +bHf +bsw +bqY +bvB +buR +bPx +erN +bjX +bkz +bOv +bHE +bjW +bGr +bEg +azb +aBw +bNC +bOo +bLs +caE +bZQ +caF +bSq +bNM +bVi +awX +awp +bYC +bZf +caL +bZf +aUh +ayb +ceV +cfT +axP +aKj +ayE +ckh +ayz +axW +cnl +cos +aAd +bFh +aLF +cin +cin +cin +aLF +cuA +cuW +bYI +cvw +ckI +cmN +cCq +axa +aeu +aeu +aeu +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(144,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +alB +bfq +aax +bbx +alB +akX +aeV +bfl +bfV +aWR +aWP +adx +aWR +bgC +bgm +bgC +aWR +bhc +bgY +bhc +alB +aqa +aga +aWY +aXc +aLO +aYj +bah +bai +bah +bah +bai +aXP +bai +aZS +aZr +ajL +ajL +cAX +aJJ +aRs +aSB +aTP +aYd +aYK +aYK +aYd +bdO +beO +bpF +bpL +bxc +bkn +bmk +bnW +bpr +blf +blf +blg +blf +mPm +blQ +bAC +bBL +bkQ +bjW +bAv +bOC +bGM +bHP +bJc +cbY +bLv +caG +caH +bQL +bSu +bmp +bVj +awX +awX +awX +bZg +axE +cbo +awX +aya +bZt +bZu +awC +aLL +ckt +ckj +clN +aGq +cno +cot +cpC +cql +crc +csd +csd +csd +cts +cuC +cuY +cjt +cvC +clf +cze +gnA +axa +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(145,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +alB +bgD +bfo +aWJ +alB +bdp +aeW +afo +afA +afM +bfZ +bgU +aWR +acw +bgn +bgB +cqw +bgM +bgn +bVA +pQf +ctJ +cxP +aWY +aue +axd +ayx +bdc +bdR +aAZ +eVT +aEE +aFp +aHJ +aOM +aZr +bdJ +bdJ +aZr +aYd +aYK +aZL +bch +aYd +aZg +aZj +aYd +bhe +cLt +xqL +bhX +bhs +biM +bmt +bhX +bsz +blf +bkm +bkJ +blG +blf +asI +bwS +bBM +bkS +bjW +bEs +bPz +bGN +bhY +bJe +bNM +bLw +bOr +bOy +bQO +bSx +bNw +bVk +bOb +bPO +awX +awX +awX +awX +awX +axa +axa +axa +axa +axa +axa +aBu +axa +axa +cnp +coz +cpD +coz +crd +cse +csy +cta +ctv +cuD +cva +axa +cki +axW +axa +axa +cok +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(146,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +alB +aWJ +bfU +aWJ +ary +bdt +bgx +afq +bfP +afN +agi +agT +ahH +aig +agT +ajq +ako +alq +amg +aaL +bdp +cuG +arI +aWY +auf +aub +azt +aAS +aTn +aBa +biU +aDU +aFq +aZG +bax +aKJ +aLM +aNz +aPj +aYe +aXn +aSC +aTQ +aVf +aXZ +aZQ +aYd +bdP +beP +xqL +bhy +ats +bko +bmw +bnY +bpu +blg +bsS +biW +bwW +blg +bzU +bmf +bBN +bkR +bhL +bEu +bPq +bGO +bLt +bJf +cfD +bLx +bOs +bOx +bNM +bSD +bNw +bSK +bEg +bOl +bSJ +bSI +bGH +bGr +bEg +bAT +bOC +cmB +bOb +cmh +bAM +ckl +clS +axa +azH +azU +cpE +aDq +cri +axb +axb +ciT +axb +axa +axa +axa +cvD +ckk +aEg +cnu +cnu +cnd +cnd +cnu +cnd +cnu +alm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(147,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +alB +bfY +bdD +aeq +axR +agz +ahK +afu +bff +aVe +aWM +aWM +ajX +bgd +bff +bgG +cqx +bgQ +amm +ang +acU +acV +arJ +aiC +auh +axv +azx +aDw +aTq +aBb +chK +aDV +aFr +aFr +aIT +aFr +aFr +aNE +aPl +bfO +aRx +aSD +aTR +aVi +aYa +aZZ +cbn +bdQ +beQ +cGU +bhz +bix +biX +bjp +bjt +bpv +brv +bsT +blm +bxj +bIF +bzW +bni +bBP +bma +bNt +bEv +bEg +bGP +bLI +bJg +bSw +bLy +cay +bOz +bQP +bSF +bNw +bTP +bUu +bWh +bTy +cxB +ceN +chZ +cxB +cjE +bXb +bEg +cli +bYD +bGr +cmp +bOb +axa +axa +axa +axa +axa +axa +axa +axa +cjH +axa +axa +cvc +bEg +bEg +bEg +bEg +cnu +cwI +cwX +cxh +bPi +cxm +cvP +acK +acK +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(148,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +alB +aWJ +bho +aWJ +ayL +bdt +bfK +afw +beW +afU +agu +ahi +alk +aim +aiP +ajr +akp +alr +amn +cHF +beY +ads +arM +ayw +auk +axg +ayB +azA +bgk +aBd +aZv +aXw +aXE +aXI +aYR +beD +bbj +aNF +bep +aZi +aZE +aSF +aTS +arc +bdG +baa +aGj +bdT +beR +biR +bhD +bnX +aKA +bjh +bjy +bpw +mPm +bsV +buS +bxl +blf +bzX +bAG +bBT +bnm +bjW +cxU +bEg +bRq +bLS +bQt +bNM +bLA +bMw +bOA +bOH +bSH +bNw +bSr +aEK +bSd +bUl +bSd +bUl +bSr +bUt +bSd +bXj +ckS +bUu +cax +ckW +ckZ +cax +cla +chZ +cxB +cle +cax +cax +bYh +csz +ctc +ctx +cmF +chZ +cmH +cvE +cmR +cwe +cnd +cwN +cqQ +csq +cnu +cuL +cnd +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(149,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aUz +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aUz +aeu +aeu +alB +aWJ +bfo +aWJ +alB +beY +aeZ +afy +afF +afV +acv +bgz +aWR +bfd +bgq +bgJ +bgF +bgX +bgq +cHJ +alB +cOb +cps +cMW +iwR +aZF +ami +aZF +bdi +aVJ +amV +anx +aXF +aXX +aYS +aZt +bbl +aNF +bep +aYe +aXQ +aSF +aTT +aZe +bfx +bab +aYd +bdV +beS +bhI +bhE +biQ +bkr +bmx +bod +bpx +mPm +blg +bBo +blg +blf +bjX +bJV +bHE +bkV +bjW +bAE +bEg +bPc +bLY +bQt +bNM +bOo +cgd +bNM +tYn +aVM +bNx +bSr +cyG +cyG +cyG +cyG +cyG +cyG +cyG +bSr +bXz +ccB +cgb +bAM +bAM +fcv +bAM +bUw +qLx +xJY +bEg +cKX +crm +cju +cms +cmE +cmQ +cju +bOC +cnV +cmh +bOb +cwi +cnF +cwP +cqZ +csu +cty +cLm +cwa +aaQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(150,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +alB +bfs +beZ +bft +alB +bfp +afa +bfm +bgu +aWR +aWP +aew +aWR +bgI +bgs +bgI +aWR +bhf +bhw +bhf +alB +cMG +arP +asL +aZF +aWZ +adX +bhx +bdi +aXq +bdm +aVJ +aVJ +aYN +aYT +dMc +bbJ +aNK +bgj +aYe +aZa +aSF +aZp +aUm +bdM +aZk +aYd +cjf +aCb +aCb +big +boE +big +aCb +bqC +btl +bhQ +bsW +buY +bly +bmr +bmu +bAH +bIm +bHR +bNg +bAF +bOC +bQe +bLZ +bkE +bRz +bRz +bMy +bOB +bZW +bWw +bTq +bSL +cyG +cyG +cyG +cyG +cyG +cyG +cyG +bSr +bEg +bEg +bEg +bPC +bPC +bEg +bPC +crG +bEg +bEg +bEg +bEg +cju +cju +cju +aLr +cjB +cju +bOb +cnW +cBs +cox +cwl +coC +cwR +cwZ +cxi +cnu +cnu +cnd +alm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(151,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aUz +aeu +aeu +aeu +alB +alB +alB +alB +pQf +alB +bfQ +bfQ +bfQ +aWR +bgw +ajB +aWR +bfq +aWJ +bbx +bhn +bfq +aWJ +bbx +alB +cby +cMP +ajO +iwR +aXf +aeG +aik +awU +amK +anf +bds +aVJ +aVJ +aVJ +beE +mIG +aNM +bgW +nNV +nNV +biB +aYg +aDI +aDI +aYd +aYd +bdW +aCb +bhM +bhF +biT +bja +big +bog +bpz +bra +bsX +bve +bxs +byH +bAa +bAI +bHF +buI +bhQ +bEw +bEg +bQf +bMc +bJT +bOK +bOK +bUg +cad +bhY +car +bTr +bSr +cyG +cyG +cyG +cyG +cyG +cyG +cyG +bSr +bYf +ceU +cgI +cDp +cDp +bOd +cDp +rNm +cgI +ceU +aeu +aeu +cju +cjw +csA +ctd +clV +cju +cma +bEg +cvG +cvL +cwm +cnd +cpb +crf +cnd +cnd +cko +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(152,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +alB +bfq +aWJ +bbx +aWR +bhg +akt +aWR +aWJ +ayv +aWJ +aWR +bhu +ayv +aWJ +alB +cMI +cMQ +ajU +aZF +aXR +bcx +aWU +bdi +aBh +aCD +aFR +bdx +dxq +aVJ +aZX +bbL +aNF +bep +baU +aRz +aSH +aTY +bdH +bbb +bdz +cby +clA +wmX +bjJ +blJ +biV +bku +big +boj +bjQ +bkg +bkw +bkg +blF +blY +blS +bAK +bCc +bCc +bOw +bAT +bOC +erN +bHT +bJh +bJK +bLD +bMA +bOD +bQQ +bSN +bTs +cav +cyG +cyG +cyG +cyG +cyG +cyG +cyG +bSr +bPJ +bUN +hxn +hxn +hxn +oTy +hxn +hxn +hxn +bUN +aeu +aeu +cju +cjx +csB +ctf +clW +cju +bEg +cku +clk +bYM +ckv +cku +cwS +cxg +cxj +ctO +cxp +aeU +ciQ +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(153,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aeU +aUz +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +alB +aWJ +ayv +aWJ +aWR +agv +aho +aWR +bfs +ikw +bft +aWR +bfs +aYh +bft +alB +afr +bkd +cNa +aZF +baJ +ayC +baJ +bdi +bfu +aCE +aZY +aJF +aWX +aVJ +nDw +bbM +aNT +aPo +bgv +aRA +aRI +bea +bfa +bbb +bdE +cbz +cLt +wmX +bhO +aqH +biI +bkx +bom +bop +bjR +bkq +bkA +bke +blr +bkY +blC +bls +bPj +bmo +bhQ +bGr +bAT +bOc +bPe +bPH +bPe +bOc +bVf +bTk +bXL +bXx +bPe +bSd +cyG +cyG +cyG +bTS +cyG +cyG +cyG +bSr +bPJ +bQa +hxn +hxn +hxn +hxn +hxn +hxn +hxn +bUN +bUE +aeu +bzG +bzG +bzG +bMK +clT +bzG +aeu +ckU +cvH +cvR +cws +ckU +cnu +cnd +cnu +cnu +cxq +cwk +cxu +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(154,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +alB +bfs +qIR +bft +alB +bhl +brh +alB +alB +alB +alB +alB +alB +pQf +alB +alB +cng +cbj +aki +aZF +baP +ayD +bcH +bdi +aBi +aCG +aGa +aKu +aMe +bfB +sPG +bfr +bex +aTU +bbN +aRJ +aSI +aTZ +aVk +bbb +bdN +ccr +cmZ +aCb +bhP +bim +biZ +bkB +big +boq +bpA +blO +blL +bke +blK +bke +blD +bAP +bCf +bhQ +bhQ +bAM +bGH +bOc +bHZ +bJj +bJL +bRm +bMC +bOG +bQU +bUs +bTv +krJ +krJ +krJ +bPe +bWn +bWx +bSr +bSL +bSr +bSr +cgx +hxn +hxn +hxn +hxn +hxn +hxn +hxn +bUN +bUn +aeu +bzG +cjB +csH +ctk +ctM +bzG +aeu +clb +cvI +coL +cwu +ckU +aeu +aeu +aeu +aeu +aeu +aeu +anH +aeu +aUz +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(155,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +alm +aeU +aeu +alB +alB +alB +alB +alB +cLG +ahp +cbk +aio +cmW +abx +cLg +cMw +cLK +cbk +cMC +cMK +cLt +cNd +aZF +aZF +aZF +aZF +bdi +bdi +aVX +bdw +bdv +aNA +aOi +aVJ +bcL +aNU +aPr +bbN +bba +baY +biB +bba +bbc +bbc +bbc +bgi +aCb +aCb +big +big +bom +aCb +jDv +bpB +bkl +bli +bnh +blz +bkY +blD +bAU +bml +bhQ +bMJ +bAM +bAM +bQl +bIc +bQo +bJM +bPe +bMF +bRs +bQV +bPe +bTw +bXg +bXs +bXF +bPe +bWq +caO +bWU +ccC +bXd +bYE +cTr +hxn +hxn +hxn +hxn +hxn +hxn +hxn +bUN +cke +aeu +bzG +cjC +clg +clP +ctU +bzG +aeu +ckU +cvJ +cvS +cwv +clb +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(156,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acm +aaa +aUz +aeu +aeu +aeu +bkd +abi +cLg +ahq +bEq +aip +cLY +abD +cMk +cMx +cMx +cMz +cMD +cML +cMR +cNe +cNq +abD +cNL +cLt +ctI +bdi +bdi +amV +aVJ +bfz +aVJ +aVJ +baK +aNU +aPt +bcs +bxn +bbO +aUc +aVl +ben +bct +bbc +cna +bok +bhQ +bio +bjb +bkC +bmD +aWQ +bpD +bkf +blb +bkf +bks +bkZ +bOI +buY +bmj +bhQ +bEg +bAO +bAT +bOc +bIf +bQp +bJR +bQu +bMM +bOM +bQX +bSe +bQK +bYe +bWy +bXk +bYi +cJp +caP +bWX +bXc +bUf +bUf +bUf +hxn +hxn +hxn +hxn +hxn +hxn +hxn +jAT +aeu +aeu +bzG +cjF +clE +clQ +ctW +bzG +aeu +ckU +ckU +cln +ckU +ckU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(157,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aUz +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bUG +cko +cko +akA +beK +bkd +ava +bkd +agb +ahs +crU +aiq +cMb +cbk +abE +cLy +amp +ank +cMj +cLG +ctI +asP +auq +bkd +cNM +abD +cNU +ayj +awi +aXA +aFw +aHL +baD +baE +bbm +aNV +aPw +baS +baY +bbP +aUd +baz +bck +ber +bbc +cMK +cbj +bhQ +bAZ +bjc +bkD +bmI +aXh +bpE +brc +btb +bvh +bxw +byI +bmv +bAW +bms +bhQ +bNs +bAT +bAv +bOc +bOc +bOc +bPe +gJq +bVJ +bUm +bYd +bOc +bQT +bSC +bSE +bTA +bOc +bSr +bTN +bUc +cji +bUh +bUf +bUN +hxn +hxn +hxn +hxn +hxn +hxn +hxn +bUN +aeu +aeu +bzG +cjG +clF +clR +ctX +bzG +aeu +aeu +ckz +cvV +ckz +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aUz +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(158,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeU +aeU +aUz +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acK +cko +aaa +aaa +aaa +agy +afJ +avA +ctI +ahw +bkd +bkd +bkd +cLr +cLs +cLs +cLE +cMm +cLs +cLr +cLs +cNg +cNs +ava +bkd +bkd +cNV +ayl +awi +aXB +aFw +aHN +aJd +aKK +aLP +aNX +aPD +aQE +bhk +aSJ +aUg +baz +bcl +baG +bbc +cmX +boo +bhH +bhW +bmN +boK +emD +bhH +bjV +bkh +bkv +bmq +bkM +byJ +blk +buY +bmm +bhQ +bNT +bBa +czd +bAT +bAM +bOc +bKm +bLE +bMN +bON +bQY +bSQ +bPe +bOc +bWz +bYi +bTZ +bZh +bTC +bXX +bWY +bUi +caN +ceW +hxn +hxn +hxn +hxn +hxn +hxn +hxn +bUN +aeu +aeu +bzG +cjB +csI +ctn +ctY +bzG +aeu +aeu +ckz +ckJ +ckz +aeU +aeU +aeu +aeu +aeu +ciQ +aeu +alm +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(159,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acm +acy +aaa +aaa +aaa +cLd +cLg +bMI +cLK +abt +bkd +aeu +aeu +cLr +akq +als +amr +anp +app +aqf +cLs +cNh +auu +axl +cNN +azB +cna +cOb +awi +aDX +aFz +aHP +aJf +aKL +aLS +aNY +aPG +bbN +bba +bcn +aUi +aVm +bcr +beI +bbc +cnD +bhH +bhH +biq +bjd +bkF +bjv +bhH +bhQ +bki +bki +bhQ +bkN +bIG +bki +bMB +blH +bhQ +bEg +bEg +bEg +bGH +bGH +bQM +bKo +bLF +bMO +bOR +cak +aIY +cmD +bTe +bXu +bXn +cmj +bZj +bTD +bWZ +bVl +bXl +bUf +bUN +hxn +hxn +hxn +hxn +hxn +hxn +hxn +bUN +cke +aeu +bzG +bzG +bzG +bzG +bzG +bzG +aeu +aeu +aeU +cwb +aeU +aeU +aUz +aeU +aeu +aeu +acm +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(160,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaB +aaa +aaa +aaa +acK +cko +aaa +aaa +aaa +agy +cLg +avA +agw +ava +ava +aeu +aeu +cLs +akr +cLA +cMf +cMq +cMl +aql +cLr +cNi +auv +axo +cNO +azC +cOf +ctI +awi +auL +bbS +bbs +bcc +bce +aLZ +aOc +bbW +bbN +bbT +bcp +aUk +aVo +beh +bcu +bbc +cne +bhH +bya +biH +bje +bkH +bkK +bhH +acm +aaa +acm +bki +bkO +byK +bki +bAY +blI +bki +acm +aaQ +bPC +bTg +bIg +bOc +bKs +bRp +bRE +bOW +cal +cmr +aWs +crl +bXC +bXo +bYg +bZk +bTO +cbu +bXc +bUf +bUf +bUf +hxn +hxn +hxn +hxn +hxn +hxn +hxn +jAT +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +ctP +aeU +aeU +coy +aeU +aeU +aeU +acm +aaa +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(161,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bUG +cko +cko +akA +bhq +ava +bkd +bkd +ava +bkd +aeu +aeu +aeu +cLs +cLs +cLH +cMg +cMt +cME +cMr +cLs +bkd +ava +bkd +bkd +azD +cNG +aBj +akk +bcI +bbn +bbv +bbB +bbE +aMf +aOf +bcd +bbN +bba +bba +biY +bba +bbc +bbc +bbc +bdX +cGT +bgt +bhN +bjf +bkI +bju +bhW +acK +acK +bUG +blE +bkN +bIQ +bll +bOg +blH +blE +bUG +acK +bEg +bEg +bEg +bOc +bWO +bPe +bOc +bOX +bRU +cmr +bRA +crl +bXD +bXt +bYg +bZm +caQ +cbB +bWt +bXd +ccm +cTr +hxn +hxn +hxn +hxn +hxn +hxn +hxn +bUN +cpF +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aUz +aeU +ctQ +aeU +aeU +aeU +aeU +coy +aeU +aaQ +aeo +aeo +aeo +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(162,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aUz +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +cLr +aku +cLC +cLI +cMu +cMn +aqm +cLs +cbj +cbk +cNn +cMk +clA +bkd +bkd +bbi +bbi +bbi +bbA +bcJ +bdh +aPm +bda +bcf +bbN +bci +aSK +aUl +aVS +aYn +bbN +ccs +bdY +bhH +bhV +bis +bjj +bkL +blh +bhH +aaa +aaa +aaa +aaa +aaa +bnb +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acm +bPe +bfC +bUx +bvo +bPe +bOZ +bRV +bNz +bSn +crl +bRt +bXw +bWM +bPe +bZC +bPe +bOc +bSr +bSd +cgg +hxn +hxn +hxn +hxn +hxn +hxn +hxn +bUN +bUE +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeU +aeU +aeU +ctQ +aeU +aeU +aeU +aeU +aeU +aaa +aaQ +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(163,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +cLs +akD +alu +ams +anq +apq +aqn +cLr +alD +bVG +anQ +bkd +cNC +bkd +acm +aXs +aXK +baX +bbX +bbC +bby +aMg +aOh +bcg +beH +bcR +aSM +aUn +baC +aYp +bcD +bgi +bkd +bhH +bhH +bhW +biS +bhW +bhH +bhH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acm +bOc +bfE +bVE +bXi +cCH +bPb +bRZ +cmr +bRA +crl +bXy +bXA +bXN +bTG +caS +bTR +bOc +bPJ +bPK +ceX +hxn +hxn +hxn +hxn +hxn +hxn +hxn +bUN +cpF +aeu +aeu +aeu +aUz +aeU +ckg +ckg +ckg +ckg +ckg +ctR +ckg +ckg +ckg +ckg +ckg +acm +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(164,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +cLs +cLs +cLr +cLs +cLr +cLs +cLs +cLr +asS +aux +axq +cMx +cNF +cNY +acK +aXs +aXN +bbt +bca +bbD +bbK +aMl +aOn +bcj +bgy +aYc +aSS +aUo +baC +aYr +bbN +ccu +avA +acm +bhW +bit +bjm +bjl +bhW +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acK +bPe +bfF +bVZ +bRs +bPe +bOZ +bSb +cmr +cGz +cro +bRt +bXA +cFE +bTt +caW +bZL +bOc +bPJ +bPJ +bUN +hxn +hxn +hxn +hxn +hxn +hxn +hxn +bUN +aeu +aeu +aeu +aeU +aeU +aeU +coi +ctG +ctG +ctG +ctG +cub +cuo +cuo +cuo +cuo +cCl +aaa +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(165,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +cHa +cHa +cLQ +cNp +cHa +afr +cNg +acm +aXs +baq +bbw +bbX +bbF +bby +aMp +aOo +cOx +beH +bbI +bcb +bcQ +bbN +cbf +bbN +cfi +avA +acm +bhW +biu +bjo +bmW +bhW +aaQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acK +bOc +bfG +bKt +bLG +bRH +bPd +bSc +cmD +cpu +cmD +bXE +bPd +bzl +bZn +caY +bXf +bWO +aeu +bPJ +bUN +hxn +hxn +hxn +hxn +hxn +hxn +hxn +bUN +aeu +aeu +aeu +aeU +aeU +aeU +ckm +ckm +ckm +ckm +ckm +ctQ +ckm +ckm +ckm +ckm +ckm +acm +aeo +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(166,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aUz +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aUz +aeU +aeu +aeu +aeu +aeu +aeu +aap +aeu +aeu +aeu +aeu +cHb +asT +auA +axr +cHa +cne +bkd +bkd +bbi +bbi +bbi +bcA +bcM +bbi +bbi +cxQ +bbi +awi +bbN +baC +baC +bcD +aYs +cbk +cna +bkd +bUG +bkc +bhW +bnl +bhW +bkc +bUG +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acK +bPe +bfI +bSA +bLK +bPe +bPf +bQZ +bQZ +bRs +bQZ +bWA +bXB +bPe +bZv +bXA +bTU +bOc +aeu +bPJ +bUj +bRv +bRv +bRv +bRv +bRv +bRv +bRv +bUj +aeu +aeu +aeU +aeU +aeU +aeU +cuc +ckk +aaa +aaa +ckk +ctQ +ckk +aaa +aaa +ckk +cuc +aaa +aaa +aaQ +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(167,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aap +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aUz +aap +aeu +aeu +aeu +cHc +atb +cLU +axt +cHa +cNW +cOg +abD +cMD +cmZ +aFC +bEq +aJm +aFF +cbk +ccs +cMx +cMD +anW +aSV +cor +aVp +aYt +anW +bcy +bkd +aaa +aaa +aaa +blu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acm +bOc +bPe +bPe +bRx +bTx +bWf +bPe +bPe +bTE +bPe +bPe +bWf +krJ +bWf +bPe +bPe +bOc +aeu +aeu +cfW +cgJ +cgJ +cgJ +cgJ +cgJ +cgJ +cgJ +agt +aeu +aeu +aeU +aeU +aeU +ckg +ckg +ckg +ckg +ckg +ckA +ctQ +ckA +ckg +ckg +ckg +ckg +ckg +acm +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(168,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aUz +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeU +aeU +aeU +aeu +aeu +aeu +cHb +ate +auB +axx +cNB +bkd +ava +bkd +cLg +cNW +aFE +cFv +cMx +cMD +axO +cOm +cbj +aio +auz +aSZ +cOo +aVt +aYv +cbm +cue +bkd +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acm +acm +acm +bPe +bLL +bPe +bPg +bPe +acm +acm +acm +bPe +bLL +bPe +bZw +bPe +acm +aeu +aeu +aUz +acm +cmJ +ivg +ivg +cmJ +ivg +ivg +cmJ +acm +aeU +aeU +aeU +aUz +aeU +coi +ctG +ctG +ctG +ctG +ctN +cDs +cBJ +cuo +cuo +cuo +cuo +cCl +aaa +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(169,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bUG +bVu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +cui +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeU +aeU +aap +aeu +aeu +cHb +cHb +cLV +cHb +cHb +aeu +aeu +bkd +aze +aAG +cbj +cLt +aJn +cLg +aMq +ava +bkd +bkd +ava +avA +avA +bkd +bBX +bkd +cwC +bkd +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bUG +aaa +bUG +bPe +bSM +bTl +bXe +bPe +bUG +aaa +bUG +bPe +bXe +bTl +bXe +bPe +bUG +acm +acm +acm +bUG +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bUG +aeU +aaa +acm +aaa +aeU +ckm +ckm +ckm +ckm +ckm +ckA +ctQ +ckA +ckm +ckm +ckm +ckm +ckm +acm +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(170,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aap +coy +aeu +aeu +aeu +aeu +aeu +cLM +auJ +cLM +aeu +aeu +aeu +bkd +ava +ava +bkd +ava +avA +crw +avA +bkd +aeu +aeu +aeu +acm +aaa +acm +aaa +bkd +cwD +bkd +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bRQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acm +aaa +acm +aaa +acm +aaa +cuc +ckk +aaa +aaa +ckk +ctQ +ckk +aaa +aaa +ckk +cuc +aaa +aaa +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(171,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aUz +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +cLM +cMH +cLM +aeu +aeu +aeu +aeu +aeu +aeu +aeu +bkd +cLK +cLK +afJ +ava +aeu +alm +acm +aaQ +aeo +aeo +acm +acm +acK +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaQ +aeo +aeo +aeo +acm +aeo +acm +ckg +ckg +ckg +ckg +ckg +ctR +ckg +ckg +ckg +ckg +ckg +acm +aeo +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(172,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aap +aeU +aUz +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aUz +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +auN +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +ava +agy +cLR +agy +bkd +aeu +aeU +aaa +acm +aaa +acm +aaa +acm +acK +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cmJ +aaa +aeo +aaa +coi +ctG +cKj +ctG +ctG +cub +cuo +cuo +cuo +cuo +cCl +aaa +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(173,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +cMT +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +beK +aaa +aaa +aaa +bhq +aeu +aUz +aaa +aaQ +aaa +acm +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaQ +aeo +acm +aeo +acm +ckm +ckm +ckm +ckm +ckm +ctQ +ckm +ckm +ckm +ckm +ckm +acm +aaQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(174,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeu +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +alm +aeu +aeU +aUz +coy +aeU +aeU +aeU +cMU +aeU +aeU +aUz +aeU +aeu +aeu +aeu +aeu +akA +aaa +aaa +aaa +akA +aeu +aeU +aaa +aeo +aaa +acm +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaQ +aaa +aaa +acm +aaa +acm +aaa +ctR +aaa +acm +aaa +acm +aaa +aaa +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(175,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aUz +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaQ +aeU +aeU +aeU +aeU +aeU +aeU +aeU +cMU +aeU +aeU +aeU +aeU +aeU +aeU +aeu +aeu +cko +aaa +aaa +aaa +cko +aeu +aeu +aeU +acm +aaa +acK +acm +acK +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acm +aeo +aeo +aeo +aeo +acm +acm +ckQ +acm +aaQ +acm +aeo +aeo +aeo +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(176,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +aeU +aeU +cGV +cGV +cGV +cGV +cGV +cMV +cGV +cGV +cGV +cGV +cGV +aeU +aeU +aeu +cko +cko +cOd +cko +cko +aeu +aeu +aeu +alm +acm +acm +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acm +aaa +acm +aaa +aaa +aaa +aeo +aaa +aaa +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(177,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +aaa +aeU +cGW +bxv +cGZ +cGZ +cGZ +cNj +cNy +cNy +cNy +cNy +cNI +aeU +aeU +aof +bUG +acK +acm +acK +bUG +aeu +aeu +aeu +aeu +aaa +acm +aaa +acm +aaa +aaa +bUG +acm +acK +acK +acK +acm +bUG +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acm +aeo +aeo +aeo +acm +acm +aeo +aeo +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(178,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +acm +aeU +cGX +cGX +cGX +cGX +cGX +cMU +cGX +cGX +cGX +cGX +cGX +aeU +aeU +aeU +aaQ +aaa +aaa +aaa +acm +aeu +aeu +aeu +aeu +aaa +aeo +aaa +acm +acm +acm +aaQ +aeo +aeo +acm +aeo +aeo +aaQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(179,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +aaa +aeo +aaa +aaa +anr +ckk +aaa +aaa +ckk +cMU +ckk +aaa +aaa +ckk +anr +aeU +aeU +aUz +alm +aeo +aeo +aaQ +alm +aeu +aeu +aeu +aeu +aeu +aeo +aaa +acm +aaa +aaa +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaQ +aeo +aeo +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(180,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +acm +acm +aaQ +cGV +cGV +cGV +cGV +cGV +cLN +cMU +cLN +cGV +cGV +cGV +cGV +cGV +aeU +aeU +aaQ +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aaQ +aaa +acm +acm +aaQ +aeo +aeo +acm +aeo +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(181,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +aaa +aeo +aaa +cGW +cGZ +cGZ +cGZ +cGZ +cLO +cDm +cNz +cNy +cNy +cNy +cNy +cNI +aeU +aeU +aeo +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +acm +aaa +acm +aaa +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(182,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaQ +aaa +aeo +acm +cGX +cGX +cGX +cGX +cGX +cLN +cMU +cLN +cGX +cGX +cGX +cGX +cGX +aeU +aeU +aeo +aaa +aaa +aaa +aaa +aeu +aeu +aeu +alm +acm +acm +aaa +acm +aaQ +aeo +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(183,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aap +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aUz +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaQ +aaa +aaa +anr +ckk +aaa +aaa +ckk +cMU +ckk +aaa +aaa +ckk +anr +aeU +aeU +aeU +acm +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeU +aaa +acK +acm +acK +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(184,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaQ +acm +aaQ +aeo +acm +cGV +cGV +cGV +cGV +cGV +cMV +cGV +cGV +cGV +cGV +cGV +aeU +aeU +aeU +alm +acm +aaQ +aeo +acm +alm +aeu +aeU +aUz +aaa +acm +aaa +aaQ +acm +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(185,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +aaa +aeo +aaa +cGW +cGZ +cGZ +cGZ +cGZ +cNj +cNy +cNy +cNy +cNy +cNI +aeU +coy +aof +aeu +aeu +aaa +aaa +aaa +aeu +aeu +aeU +aaa +aaa +acm +aaa +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(186,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aUz +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aUz +aeU +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aeU +aeU +aUz +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +acm +aaQ +acm +cGX +cGX +cGX +cGX +cGX +cMU +cGX +cGX +cGX +cGX +cGX +aeU +aUz +aeu +aeu +aeu +aeU +aaa +aaa +aeu +aaa +aaa +aaa +aaa +acm +aaa +aeo +acm +aeo +aaQ +aaa +aaa +aaB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(187,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aap +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +aaa +aeo +aaa +aaa +acm +aaa +acm +aaa +cMV +aaa +aeU +aeU +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aUz +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaQ +aaa +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(188,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +cui +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeU +aeU +aUz +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +aeo +aeo +aaQ +aeo +aeo +aaQ +cNl +acm +acm +acm +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aUz +aaa +aaa +aaB +aaa +aaa +aaa +aeo +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(189,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aUz +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acm +aaa +aaa +aeo +aaa +acm +aaa +aUz +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aeo +aaa +aaQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(190,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aUz +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaQ +aeo +aeo +acm +acm +acm +aeo +acm +alm +aeu +aeu +aeu +aeU +aap +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acm +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(191,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bUG +bVu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aap +aeU +aeU +aUz +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaQ +aaa +aaa +aaa +aeu +aeu +aeu +aUz +aeU +aeU +aeu +aeu +alm +acm +aaQ +aeo +aeo +aeo +aaQ +aeo +acm +acK +acm +acK +acm +aaQ +aeo +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(192,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aap +aeU +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +aaa +aaa +aeu +aeu +aeu +aeu +aap +aeu +aUz +aeu +aeu +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acm +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(193,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aUz +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaQ +aeo +aeo +acm +aaQ +alm +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acm +aaa +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(194,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +cui +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +aaa +aeU +aeu +aeu +aaa +aaa +aeu +aeu +aeu +aaa +aaa +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +aaa +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(195,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaQ +aaa +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acm +aaa +aaQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(196,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aUz +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aap +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +aaa +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(197,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aUz +aeU +aeU +aeU +aeU +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaB +aaa +aaa +aaa +aaa +aaa +aaQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(198,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aaa +aaa +aeU +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acm +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(199,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aap +aeU +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +aeo +acm +aaQ +aeo +aeo +aeo +acm +acm +acm +alm +aeu +alm +acm +aeo +aeo +aaQ +aeo +aeo +aeo +acm +acK +acm +acK +acm +aeo +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(200,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aUz +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acm +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(201,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +coy +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +coy +aaa +aaa +aaa +aaa +aaa +aaa +acm +aaa +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(202,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bVu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaQ +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aaa +aaa +aaa +aaa +aaa +acm +aaa +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(203,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bUG +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeU +aeU +aeU +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aUz +aaa +aaa +aaa +aaa +aaa +aeo +aaa +aaQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(204,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aUz +aeU +aeU +aeU +aeU +aeU +aeU +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aeu +alm +aeU +aUz +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeU +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aeo +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(205,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +coy +aeU +aeU +aeU +aeU +aeU +aeU +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +coy +aaa +aaa +aaa +aeU +aeU +aeu +aeu +aUz +aeU +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +acm +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(206,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aUz +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aap +aeU +aeU +aeU +aeU +aUz +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeU +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +acm +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(207,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeu +aeu +aeu +aeu +aeu +aeU +aUz +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +alm +aaQ +aeo +aeo +acm +acK +acm +acK +acm +aeo +aeo +aaQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(208,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +acm +aaa +aaa +aaa +aaa +acm +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(209,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +acm +aaa +aaa +aaa +aaa +aaQ +aaa +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(210,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aUz +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaQ +aaa +aaa +aaa +aaa +aaQ +aaa +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(211,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aeo +aaa +aaa +aaa +aaa +aeo +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(212,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aeo +aaa +aaa +aaa +aaa +aeo +aaa +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(213,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aeo +aaa +aaa +aaa +aaa +aeo +aaa +aaQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(214,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aUz +aeu +aeu +aeu +aaa +aaa +acm +aaa +aaa +aaa +aaa +acm +aaa +aaQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(215,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aUz +aeU +coy +aeU +aeu +aeu +aeu +aeu +aeu +aaa +aeo +aaa +aaa +aaa +aaa +acK +acm +acK +acm +aeo +aaa +aaa +aaa +aeU +aUz +aeU +aeu +ciQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(216,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aUz +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aeo +aaa +aaa +aaa +aaa +aaQ +aaa +acm +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(217,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +acm +aaa +aaa +aaa +aaa +acm +aaa +acm +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aaQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(218,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +coy +ciQ +acm +aeo +aaQ +acm +aaa +acm +acm +aaQ +aeo +ciQ +aeu +aeu +aeu +aeU +aaa +aeo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(219,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeu +aeu +acm +aaa +acm +cbU +ccx +cbU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +coy +aaa +aaQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(220,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aUz +aeu +aeu +aeu +aUz +aeu +cco +cbU +ccx +cbU +bVI +aeu +aeu +aeu +aeu +aeu +aUz +aeU +aaa +aeU +aeU +aUz +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(221,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bVu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aUz +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeu +aeu +aeu +aeu +cbU +cbU +aVC +ccx +aVC +cbU +cbU +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeU +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(222,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bUG +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +coy +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeu +aeu +aeu +bVH +bVH +aUp +aVI +ccx +ccx +bcz +bVH +caT +aeu +aeu +aeu +aeu +aeU +aUz +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(223,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +cbU +cbX +ccx +ccx +ccE +ccx +ccF +cGy +cbU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(224,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aUz +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +caT +bVH +aUp +ccx +ccF +ccx +bcz +caT +bVH +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(225,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aUz +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aUz +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aap +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +cbU +cbU +aVN +aYy +aVN +cbU +cbU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(226,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +coy +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aUz +aeu +aeu +aeu +aeu +aeu +aeu +aeu +cco +cbU +ccH +cbU +bVI +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(227,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aUz +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aUz +aeU +aeU +aap +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +cbU +bVH +cbU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(228,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeU +aaa +aeu +aeu +aeu +aeu +aeu +bVu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aUz +aeu +aeu +aeu +aap +aeu +aeu +aap +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(229,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bUG +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aUz +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(230,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +coy +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(231,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(232,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(233,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aUz +aeU +aeU +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(234,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aaa +aaa +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(235,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +aeu +aaa +aaa +aaa +aaa +aaa +aaa +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(236,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bVu +aaa +aaa +aaa +aaa +aaa +aaa +bVu +aeu +aaa +aaa +aeu +aeu +aeu +aaa +aeu +aeu +aeu +aaa +aeU +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(237,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bUG +aaa +aaa +aaa +aaa +aaa +aaa +bUG +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aUz +aeU +aeu +aeu +aeU +aeu +aeu +aeu +aeu +aeU +aUz +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(238,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aeU +bVu +aUz +aeU +aeu +aeu +bVu +aeU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(239,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bUG +aaa +aaa +aaa +aaa +bUG +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(240,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(241,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(242,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(243,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(244,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(245,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(246,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(247,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(248,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(249,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(250,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(251,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(252,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(253,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(254,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(255,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 9e6259c1fe..e33bb015f4 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -28355,6 +28355,7 @@ /obj/structure/disposalpipe/segment{ dir = 6 }, +/obj/machinery/vending/wardrobe/cap_wardrobe, /turf/open/floor/carpet, /area/crew_quarters/heads/captain/private) "bdL" = ( @@ -29753,16 +29754,16 @@ /obj/item/clothing/under/rank/security/navyblue, /obj/item/clothing/under/rank/security/navyblue, /obj/item/clothing/under/rank/security/navyblue, -/obj/item/clothing/suit/security/officer, -/obj/item/clothing/suit/security/officer, -/obj/item/clothing/suit/security/officer, -/obj/item/clothing/suit/security/officer, -/obj/item/clothing/suit/security/officer, -/obj/item/clothing/suit/security/officer, +/obj/item/clothing/suit/armor/navyblue, +/obj/item/clothing/suit/armor/navyblue, +/obj/item/clothing/suit/armor/navyblue, +/obj/item/clothing/suit/armor/navyblue, +/obj/item/clothing/suit/armor/navyblue, +/obj/item/clothing/suit/armor/navyblue, /obj/item/clothing/under/rank/warden/navyblue, -/obj/item/clothing/suit/security/warden, +/obj/item/clothing/suit/armor/vest/warden/navyblue, /obj/item/clothing/under/rank/head_of_security/navyblue, -/obj/item/clothing/suit/security/hos, +/obj/item/clothing/suit/armor/hos/navyblue, /obj/item/clothing/head/beret/sec/navyofficer, /obj/item/clothing/head/beret/sec/navyofficer, /obj/item/clothing/head/beret/sec/navyofficer, @@ -31855,7 +31856,7 @@ /obj/effect/turf_decal/tile/brown{ dir = 8 }, -/obj/machinery/autolathe{ +/obj/machinery/autolathe/secure{ name = "public autolathe" }, /turf/open/floor/plasteel, @@ -52210,6 +52211,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/effect/landmark/start/paramedic, /turf/open/floor/plasteel/white, /area/medical/storage) "bZZ" = ( @@ -54650,6 +54652,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 }, +/obj/effect/landmark/start/paramedic, /turf/open/floor/plasteel/white, /area/medical/storage) "cez" = ( @@ -81645,6 +81648,19 @@ /obj/machinery/door/firedoor, /turf/open/floor/plating, /area/crew_quarters/cryopod) +"eQf" = ( +/obj/machinery/computer/shuttle/mining/common{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hallway/primary/port) "eZe" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -98511,7 +98527,7 @@ bgA biz bkb blZ -bnM +eQf bqf bqf bqf diff --git a/_maps/map_files/Mining/Lavaland.dmm b/_maps/map_files/Mining/Lavaland.dmm index d4b09ac046..ac795671ea 100644 --- a/_maps/map_files/Mining/Lavaland.dmm +++ b/_maps/map_files/Mining/Lavaland.dmm @@ -74,9 +74,141 @@ "an" = ( /turf/closed/mineral/random/labormineral/volcanic, /area/lavaland/surface/outdoors) +"ao" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/mob/living/simple_animal/bot/secbot/beepsky{ + desc = "Powered by the tears and sweat of laborers."; + name = "Prison Ofitser" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"ap" = ( +/turf/open/floor/plating, +/area/lavaland/surface/outdoors) "aA" = ( -/turf/template_noop, -/area/template_noop) +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/mine/laborcamp) +"aD" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"aQ" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/turf/closed/indestructible/riveted/boss, +/area/lavaland/surface/outdoors) +"aU" = ( +/obj/structure/stone_tile/block/cracked, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/item/t_scanner/adv_mining_scanner/lesser, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"aV" = ( +/obj/machinery/vending/sustenance, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"bd" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"bf" = ( +/obj/machinery/door/airlock/medical/glass{ + name = "Infirmary" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/mine/laborcamp) +"bs" = ( +/turf/closed/wall, +/area/lavaland/surface/outdoors) +"bC" = ( +/obj/machinery/light, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"bG" = ( +/obj/structure/ore_box, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/explored) +"bP" = ( +/obj/machinery/computer/security/labor, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"bY" = ( +/obj/machinery/computer/shuttle/labor/one_way{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"cb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"ch" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/machinery/power/port_gen/pacman{ + anchored = 1 + }, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"cn" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"cp" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"cq" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) "cu" = ( /obj/item/pickaxe, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, @@ -85,6 +217,179 @@ /obj/structure/ore_box, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"cw" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"cV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"dg" = ( +/obj/docking_port/stationary{ + area_type = /area/lavaland/surface/outdoors; + dir = 8; + dwidth = 2; + height = 5; + id = "laborcamp_away"; + name = "labor camp"; + width = 9 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/explored) +"dj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"dA" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"dD" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/turf/closed/indestructible/riveted/boss, +/area/lavaland/surface/outdoors) +"dF" = ( +/obj/structure/stone_tile/block/cracked, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"dG" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/white, +/area/mine/laborcamp) +"dM" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"eb" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/machinery/iv_drip, +/obj/item/reagent_containers/glass/beaker/waterbottle/large, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"eh" = ( +/obj/structure/stone_tile/slab/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"eo" = ( +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"eq" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"eP" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"eQ" = ( +/obj/structure/closet/crate/radiation, +/obj/item/flashlight/lantern, +/obj/item/flashlight/lantern, +/obj/item/flashlight/lantern, +/obj/item/flashlight/flare, +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"eR" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/obj/machinery/camera{ + c_tag = "Labor Camp Medical"; + dir = 8; + network = list("labor") + }, +/turf/open/floor/plasteel/white, +/area/mine/laborcamp) +"eS" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock{ + name = "Labor Camp External Access" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"eW" = ( +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"fc" = ( +/obj/machinery/mineral/unloading_machine{ + dir = 1; + icon_state = "unloader-corner"; + input_dir = 1; + output_dir = 2 + }, +/turf/open/floor/plating, +/area/mine/laborcamp) +"ft" = ( +/obj/structure/stone_tile/block, +/obj/item/twohanded/bonespear, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"fC" = ( +/turf/closed/wall/r_wall, +/area/mine/laborcamp/security) +"fN" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/item/twohanded/bonespear, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) "fQ" = ( /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/unexplored/danger) @@ -111,6 +416,10 @@ /obj/structure/stone_tile/slab, /turf/open/indestructible/boss, /area/lavaland/surface/outdoors) +"gg" = ( +/obj/structure/table, +/turf/open/floor/plasteel/white, +/area/mine/laborcamp) "gj" = ( /obj/structure/stone_tile/surrounding_tile{ dir = 1 @@ -139,6 +448,9 @@ /obj/structure/stone_tile/block, /turf/open/lava/smooth/lava_land_surface, /area/lavaland/surface/outdoors) +"gq" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/explored) "gr" = ( /obj/structure/stone_tile{ dir = 1 @@ -165,6 +477,17 @@ /obj/structure/stone_tile, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"gt" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/center/cracked, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) "gy" = ( /obj/structure/stone_tile/cracked, /obj/structure/stone_tile{ @@ -203,6 +526,12 @@ }, /turf/open/indestructible/boss, /area/lavaland/surface/outdoors) +"gF" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) "gG" = ( /obj/structure/stone_tile{ dir = 1 @@ -239,18 +568,56 @@ }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"hd" = ( +/obj/structure/mineral_door/sandstone, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) "hg" = ( /obj/structure/stone_tile/surrounding, /obj/structure/stone_tile/center/cracked, /mob/living/simple_animal/hostile/megafauna/legion, /turf/open/indestructible/boss, /area/lavaland/surface/outdoors) +"hr" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile/cracked, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/stone_tile/center, +/obj/item/hatchet, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) "hs" = ( /obj/structure/stone_tile/block{ dir = 1 }, /turf/open/lava/smooth/lava_land_surface, /area/lavaland/surface/outdoors) +"hy" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/turf/open/lava/smooth{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered/ash_walkers) +"hD" = ( +/obj/effect/mob_spawn/human/corpse/damaged, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"hG" = ( +/obj/item/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + name = "Prison Intercom (General)"; + pixel_y = 24; + prison_radio = 1 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) "hH" = ( /obj/structure/stone_tile/block{ dir = 1 @@ -271,6 +638,29 @@ }, /turf/open/indestructible/boss, /area/lavaland/surface/outdoors) +"hU" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"hY" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "gulag" + }, +/turf/open/floor/plating, +/area/mine/laborcamp) +"ia" = ( +/obj/item/reagent_containers/glass/bucket, +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) "id" = ( /obj/structure/stone_tile{ dir = 4 @@ -284,6 +674,19 @@ }, /turf/open/indestructible/boss, /area/lavaland/surface/outdoors) +"io" = ( +/obj/structure/stone_tile/slab/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"iq" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/sign/warning/electricshock{ + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/mine/laborcamp/security) "ir" = ( /obj/structure/stone_tile/slab/cracked{ dir = 5 @@ -320,6 +723,14 @@ /obj/structure/stone_tile/cracked, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"iB" = ( +/obj/item/bikehorn{ + color = "#000"; + desc = "A horn off of a bicycle. This one has been charred to hell and back, yet somehow it still honks."; + name = "charred bike horn" + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/explored) "iC" = ( /obj/structure/stone_tile/block{ dir = 1 @@ -327,6 +738,38 @@ /obj/structure/stone_tile/block/cracked, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"iG" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/seeds/tower, +/obj/item/seeds/tower, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"iJ" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/item/clothing/head/helmet/roman/legionnaire, +/obj/item/twohanded/bonespear, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) "iK" = ( /obj/structure/stone_tile/block, /obj/structure/stone_tile/cracked{ @@ -376,6 +819,16 @@ }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"jj" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) "jk" = ( /obj/structure/stone_tile/center, /obj/structure/stone_tile/surrounding_tile, @@ -423,12 +876,30 @@ }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"ju" = ( +/obj/machinery/door/airlock{ + name = "Vending" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) "jx" = ( /obj/structure/stone_tile{ dir = 4 }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"jD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) "jF" = ( /obj/structure/stone_tile/surrounding_tile, /obj/structure/stone_tile/surrounding_tile{ @@ -491,6 +962,12 @@ }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"ke" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) "kg" = ( /obj/structure/fluff/drake_statue, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, @@ -504,6 +981,12 @@ }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"kk" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) "kl" = ( /obj/structure/fluff/drake_statue/falling, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, @@ -551,6 +1034,13 @@ /obj/structure/stone_tile/center, /turf/open/lava/smooth/lava_land_surface, /area/lavaland/surface/outdoors) +"kG" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "kH" = ( /obj/structure/stone_tile/surrounding_tile{ dir = 1 @@ -562,6 +1052,9 @@ /obj/structure/stone_tile/center/cracked, /turf/open/lava/smooth/lava_land_surface, /area/lavaland/surface/outdoors) +"kI" = ( +/turf/closed/mineral/random/volcanic, +/area/ruin/unpowered/ash_walkers) "kJ" = ( /obj/structure/stone_tile/surrounding_tile{ dir = 4 @@ -587,10 +1080,30 @@ }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"kP" = ( +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/center, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) "kR" = ( /obj/structure/stone_tile/slab/cracked, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"lb" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/closed/indestructible/riveted/boss, +/area/lavaland/surface/outdoors) "le" = ( /obj/structure/stone_tile, /obj/structure/stone_tile{ @@ -742,6 +1255,12 @@ }, /turf/open/lava/smooth/lava_land_surface, /area/lavaland/surface/outdoors) +"lL" = ( +/obj/structure/table, +/obj/item/trash/plate, +/obj/item/kitchen/fork, +/turf/open/floor/plasteel, +/area/mine/laborcamp) "lP" = ( /obj/structure/stone_tile/block/cracked{ dir = 4 @@ -786,6 +1305,13 @@ }, /turf/open/lava/smooth/lava_land_surface, /area/lavaland/surface/outdoors) +"lY" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/mine/laborcamp/security) "lZ" = ( /obj/structure/stone_tile/block/cracked{ dir = 4 @@ -1179,10 +1705,1583 @@ }, /turf/open/indestructible/boss, /area/lavaland/surface/outdoors) +"nt" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"nB" = ( +/obj/item/shovel, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"nC" = ( +/obj/machinery/cryopod{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"nE" = ( +/turf/closed/mineral/random/volcanic, +/area/lavaland/surface/outdoors/explored) +"nI" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"nJ" = ( +/turf/closed/wall/mineral/wood, +/area/ruin/unpowered/ash_walkers) +"nQ" = ( +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"nU" = ( +/obj/structure/stone_tile, +/obj/item/shard, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"nW" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/item/flashlight/lantern, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) "ol" = ( -/obj/effect/landmark/stationroom/lavaland/station, -/turf/template_noop, -/area/template_noop) +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/mine/laborcamp) +"ot" = ( +/obj/structure/stone_tile/surrounding_tile, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"oB" = ( +/obj/item/stack/sheet/mineral/wood, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"oL" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/closet/secure_closet/labor_camp_security, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"oS" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/item/malf_upgrade, +/obj/item/disk/tech_disk/illegal, +/obj/structure/safe, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"oW" = ( +/obj/structure/gulag_beacon, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"pc" = ( +/obj/effect/decal/cleanable/blood, +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"pf" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"pq" = ( +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"pt" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/turf/closed/indestructible/riveted/boss, +/area/lavaland/surface/outdoors) +"pD" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"pF" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/stone_tile/center, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"pG" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"pH" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/turf/closed/indestructible/riveted/boss, +/area/lavaland/surface/outdoors) +"pR" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/mine/laborcamp) +"pX" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"qe" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/red, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"qh" = ( +/obj/structure/stone_tile/surrounding/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"qi" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/lava/smooth{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered/ash_walkers) +"qr" = ( +/obj/machinery/door/airlock{ + name = "Restroom" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"qA" = ( +/obj/item/flashlight/lantern, +/obj/structure/stone_tile/center, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"qN" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"qS" = ( +/obj/structure/stone_tile/slab, +/turf/closed/indestructible/riveted/boss, +/area/lavaland/surface/outdoors) +"rb" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"rz" = ( +/obj/item/storage/box/rxglasses, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"rO" = ( +/obj/structure/stone_tile/surrounding_tile/cracked, +/obj/structure/ore_box, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"rQ" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/lava/smooth{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered/ash_walkers) +"sa" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"se" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/item/flashlight/lantern, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"sk" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"sl" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/closed/indestructible/riveted/boss, +/area/lavaland/surface/outdoors) +"sq" = ( +/obj/structure/stone_tile, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"sx" = ( +/obj/item/stack/sheet/mineral/coal, +/obj/item/stack/sheet/mineral/coal, +/obj/item/stack/sheet/mineral/coal, +/obj/item/stack/sheet/mineral/coal, +/obj/item/stack/sheet/mineral/coal, +/obj/item/stack/sheet/mineral/coal, +/obj/item/stack/sheet/mineral/coal, +/obj/item/stack/sheet/mineral/coal, +/obj/item/stack/sheet/mineral/coal, +/obj/item/stack/sheet/mineral/coal, +/obj/item/stack/sheet/mineral/coal, +/obj/item/stack/sheet/mineral/coal, +/obj/item/stack/sheet/mineral/coal, +/obj/item/stack/sheet/mineral/coal, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"sN" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"sR" = ( +/obj/structure/stone_tile/block/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"tp" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"ty" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/item/flashlight/lantern, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"tz" = ( +/obj/structure/stone_tile/slab, +/obj/structure/table/wood, +/obj/item/toy/cards/deck/syndicate, +/obj/item/construction/rcd/loaded/upgraded, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"tM" = ( +/obj/machinery/door/poddoor/preopen{ + id = "labor"; + name = "labor camp blast door" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"ub" = ( +/obj/structure/stone_tile/slab, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"ug" = ( +/obj/structure/table, +/obj/item/storage/firstaid/regular, +/turf/open/floor/plasteel/white, +/area/mine/laborcamp) +"ui" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"uk" = ( +/obj/structure/lavaland/ash_walker, +/turf/open/lava/smooth{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered/ash_walkers) +"up" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/closet/secure_closet/freezer/gulag_fridge, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"uz" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/closed/indestructible/riveted/boss, +/area/lavaland/surface/outdoors) +"uB" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Labor Camp APC"; + pixel_y = 23 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/mine/laborcamp) +"vi" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"vt" = ( +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"vu" = ( +/obj/structure/stone_tile/surrounding_tile/cracked, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/center, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/turf/open/lava/smooth{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered/ash_walkers) +"vz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"vI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"vP" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock{ + name = "Labor Camp External Access" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"vR" = ( +/obj/machinery/hydroponics/soil, +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"wm" = ( +/obj/item/seeds/glowshroom, +/obj/item/seeds/glowshroom, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"ww" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/center/cracked, +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/turf/open/lava/smooth{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered/ash_walkers) +"wF" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/turf/closed/indestructible/riveted/boss, +/area/lavaland/surface/outdoors) +"wN" = ( +/obj/machinery/mineral/processing_unit{ + dir = 1 + }, +/turf/open/floor/plating, +/area/mine/laborcamp) +"wW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"xr" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/closet/crate/internals, +/obj/item/pickaxe, +/obj/item/pickaxe, +/obj/item/pickaxe, +/obj/item/pickaxe, +/obj/item/pickaxe, +/obj/item/pickaxe, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"xs" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"xJ" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/block, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"xR" = ( +/obj/machinery/mineral/processing_unit_console, +/turf/closed/wall, +/area/mine/laborcamp) +"xX" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/item/pickaxe, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"yd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"yf" = ( +/obj/machinery/hydroponics/soil, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/center, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"yv" = ( +/obj/structure/stone_tile/block, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"yw" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "gulag" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"yW" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/mine/laborcamp) +"zf" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"zv" = ( +/obj/machinery/hydroponics/soil, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"zx" = ( +/obj/structure/table, +/obj/item/storage/fancy/donut_box, +/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/mine/laborcamp/security) +"zQ" = ( +/obj/structure/toilet{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"Aa" = ( +/obj/machinery/door/airlock{ + name = "Labor Camp Storage" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Ad" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Ag" = ( +/turf/closed/mineral/volcanic/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"An" = ( +/obj/structure/stone_tile/slab, +/obj/structure/table/wood, +/obj/item/twohanded/bonespear, +/obj/item/twohanded/bonespear, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"AH" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/item/twohanded/bonespear, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"AP" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Labor Camp Security Office"; + dir = 1; + network = list("labor") + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"AR" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "labor"; + name = "Labor Camp Lockdown"; + pixel_y = 28; + req_access_txt = "2" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"AU" = ( +/obj/structure/stone_tile, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"AX" = ( +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/explored) +"AY" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/item/flashlight/lantern, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"Bf" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Bg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Bj" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood, +/obj/structure/necropolis_gate/ashwalker, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"Br" = ( +/obj/structure/stone_tile/slab, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Bs" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/closet/crate, +/obj/item/flashlight/lantern, +/obj/item/flashlight/lantern, +/obj/item/flashlight/lantern, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Bv" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/security/glass{ + name = "Labor Camp Shuttle Prisoner Airlock" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"BF" = ( +/obj/structure/flora/rock/jungle, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"BG" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/closed/indestructible/riveted/boss, +/area/lavaland/surface/outdoors) +"BH" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/center/cracked, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"BP" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"BU" = ( +/turf/closed/indestructible/riveted/boss/see_through, +/area/ruin/unpowered/ash_walkers) +"Ch" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/center/cracked, +/obj/structure/stone_tile/surrounding_tile/cracked, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Cy" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"CG" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"CL" = ( +/obj/structure/stone_tile/slab, +/obj/structure/table/wood, +/obj/item/clothing/head/helmet/skull, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"Dn" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/closed/indestructible/riveted/boss, +/area/ruin/unpowered/ash_walkers) +"Do" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/closed/indestructible/riveted/boss, +/area/lavaland/surface/outdoors) +"Ds" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Dx" = ( +/obj/structure/bonfire/dense, +/obj/structure/stone_tile/center, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Dz" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"DQ" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/item/book/granter/crafting_recipe/bone_bow, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Ef" = ( +/obj/structure/stone_tile/block/cracked, +/turf/open/lava/smooth{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered/ash_walkers) +"Ez" = ( +/obj/machinery/grill{ + name = "old rusty grill" + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"ED" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"EQ" = ( +/obj/structure/stone_tile/surrounding/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"EV" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Fn" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/closed/indestructible/riveted/boss, +/area/lavaland/surface/outdoors) +"Fq" = ( +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Fs" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"Fw" = ( +/obj/machinery/conveyor{ + dir = 10; + id = "gulag" + }, +/turf/open/floor/plating, +/area/mine/laborcamp) +"Fz" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"FC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/door/airlock/highsecurity{ + name = "Labor Camp Monitoring"; + req_access_txt = "2"; + security_level = 6 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"FD" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"FQ" = ( +/turf/closed/wall, +/area/mine/laborcamp) +"Gc" = ( +/obj/structure/flora/junglebush/b, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Gw" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/closed/indestructible/riveted/boss, +/area/lavaland/surface/outdoors) +"Gx" = ( +/obj/item/pickaxe, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"GC" = ( +/obj/structure/stone_tile/surrounding_tile/cracked, +/obj/structure/stone_tile/center, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/turf/open/lava/smooth{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered/ash_walkers) +"GI" = ( +/obj/machinery/camera{ + c_tag = "Labor Camp External"; + dir = 4; + network = list("labor") + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"GX" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"Hq" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/item/scythe, +/obj/item/twohanded/bonespear, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"HX" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Ik" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/red, +/obj/machinery/recharger, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"It" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"IV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"Jq" = ( +/obj/structure/stone_tile/slab/cracked, +/obj/effect/decal/cleanable/blood, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"JI" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"JO" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"JP" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"JR" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"JZ" = ( +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Ks" = ( +/obj/machinery/shower{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/white, +/area/mine/laborcamp) +"KA" = ( +/obj/structure/stone_tile/slab, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"KH" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"KJ" = ( +/obj/structure/stone_tile/block/cracked, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"KO" = ( +/obj/machinery/computer/secure_data, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"KR" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"KV" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/effect/mob_spawn/human/corpse/damaged, +/obj/effect/decal/cleanable/blood, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Ld" = ( +/obj/machinery/light/small, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"LJ" = ( +/turf/open/water, +/area/ruin/unpowered/ash_walkers) +"Mh" = ( +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/closed/indestructible/riveted/boss, +/area/lavaland/surface/outdoors) +"Mx" = ( +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"MQ" = ( +/obj/structure/table/optable, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/item/surgical_drapes, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"MS" = ( +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/cracked, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"MX" = ( +/obj/structure/stone_tile/slab/cracked, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"Nl" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"NN" = ( +/obj/structure/stone_tile/block/cracked, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"NS" = ( +/obj/machinery/computer/prisoner, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"Ol" = ( +/obj/structure/closet/crate/internals, +/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, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Ou" = ( +/obj/structure/stone_tile/slab, +/obj/structure/table/wood, +/obj/item/storage/toolbox/syndicate, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"Oy" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/center, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"OK" = ( +/turf/closed/wall/r_wall, +/area/mine/laborcamp) +"OR" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile/block/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Pj" = ( +/obj/structure/stone_tile/surrounding_tile/cracked, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/stone_tile/center, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"PF" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/security/glass{ + name = "Labor Camp Shuttle Security Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"PM" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/atmos_waste{ + dir = 1; + piping_layer = 3 + }, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/mine/laborcamp/security) +"Qd" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/table/wood, +/obj/item/storage/belt, +/obj/item/twohanded/bonespear, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"Qe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"Qk" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/item/stack/marker_beacon/ten, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"QC" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"QG" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"QH" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Labor Camp Security APC"; + pixel_y = 23 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"QM" = ( +/obj/structure/stone_tile/surrounding_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"QZ" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/security/glass{ + name = "Labor Camp Shuttle Prisoner Airlock" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Ra" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/mine/laborcamp) +"Rb" = ( +/obj/structure/closet/crate, +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/obj/item/flashlight/lantern, +/obj/item/flashlight/lantern, +/obj/item/flashlight/lantern, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"Rk" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/closed/indestructible/riveted/boss, +/area/lavaland/surface/outdoors) +"Rr" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/closed/indestructible/riveted/boss, +/area/ruin/unpowered/ash_walkers) +"Rs" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"RF" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"RX" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile, +/obj/effect/decal/cleanable/blood, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"Sc" = ( +/obj/structure/rack, +/obj/item/storage/bag/ore, +/obj/item/flashlight, +/obj/item/pickaxe, +/obj/item/clothing/glasses/meson, +/obj/item/mining_scanner, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Sh" = ( +/obj/structure/stone_tile/block, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Si" = ( +/turf/closed/indestructible/riveted/boss, +/area/ruin/unpowered/ash_walkers) +"Sr" = ( +/turf/closed/mineral/random/high_chance/volcanic, +/area/ruin/unpowered/ash_walkers) +"SG" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/closed/indestructible/riveted/boss, +/area/lavaland/surface/outdoors) +"SI" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"ST" = ( +/obj/structure/closet/crate, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/explored) +"SZ" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Mining Station Maintenance"; + req_access_txt = "48" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"Tl" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"Tn" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/item/kitchen/knife/combat/bone, +/obj/item/book/granter/crafting_recipe/bone_bow, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"Tp" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/table, +/obj/item/restraints/handcuffs, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"TN" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/center, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/turf/open/lava/smooth{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered/ash_walkers) +"TP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Uh" = ( +/obj/structure/stone_tile/slab, +/obj/structure/table/wood, +/obj/item/weldingtool/experimental, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) "Uq" = ( /obj/docking_port/stationary{ area_type = /area/lavaland/surface/outdoors; @@ -1195,6 +3294,315 @@ }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"UC" = ( +/obj/structure/table, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/mine/laborcamp) +"UG" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"UV" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Vb" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/item/storage/bag/plants/portaseeder, +/obj/item/seeds/cotton, +/obj/item/seeds/cotton, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"Vj" = ( +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Vs" = ( +/obj/machinery/camera{ + c_tag = "Labor Camp Central"; + network = list("labor") + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Vy" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"VI" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"VP" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"VV" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"Wb" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/closed/indestructible/riveted/boss, +/area/ruin/unpowered/ash_walkers) +"Wh" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Wj" = ( +/obj/structure/stone_tile/surrounding_tile/cracked, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Wq" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"WA" = ( +/obj/structure/stone_tile/block/cracked, +/obj/item/book/granter/crafting_recipe/bone_bow, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"WI" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/security/glass{ + name = "Labor Camp Shuttle Security Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"WL" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/closet/crate/medical, +/obj/item/storage/firstaid/regular, +/obj/item/storage/firstaid/ancient, +/obj/item/reagent_containers/blood/random, +/obj/item/reagent_containers/blood/lizard, +/obj/item/reagent_containers/blood/lizard, +/obj/item/stack/sheet/cloth/ten, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"WN" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/item/twohanded/bonespear, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"WT" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"WU" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Xe" = ( +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/center/cracked, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Xf" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"Xo" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/turf/closed/indestructible/riveted/boss, +/area/lavaland/surface/outdoors) +"Xw" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"Xz" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 8 + }, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"XG" = ( +/obj/effect/decal/cleanable/blood, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"XS" = ( +/obj/machinery/flasher{ + id = "labor" + }, +/turf/closed/wall, +/area/mine/laborcamp) +"Yg" = ( +/obj/structure/flora/rock/pile/largejungle{ + light_range = null + }, +/turf/open/water, +/area/ruin/unpowered/ash_walkers) +"Ym" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"Yu" = ( +/obj/structure/rack, +/obj/item/storage/bag/ore, +/obj/item/pickaxe, +/obj/item/flashlight, +/obj/item/clothing/glasses/meson, +/obj/item/mining_scanner, +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"Yy" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/item/flashlight/lantern, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"YD" = ( +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"YH" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Zc" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/machinery/the_singularitygen, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"Zs" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/turf/closed/indestructible/riveted/boss, +/area/ruin/unpowered/ash_walkers) +"ZK" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"ZM" = ( +/turf/closed/wall, +/area/mine/laborcamp/security) +"ZP" = ( +/obj/machinery/conveyor{ + id = "gulag" + }, +/turf/open/floor/plating, +/area/mine/laborcamp) (1,1,1) = {" aa @@ -1397,61 +3805,61 @@ aj aj aj aj -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -ol +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (2,1,1) = {" aa @@ -1654,61 +4062,61 @@ aj aj aj aj -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (3,1,1) = {" aa @@ -1911,61 +4319,61 @@ aj aj aj aj -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (4,1,1) = {" aa @@ -2168,61 +4576,61 @@ aj aj aj aj -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ai +ai +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (5,1,1) = {" aa @@ -2425,61 +4833,61 @@ aj aj aj aj -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ai +ai +ai +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (6,1,1) = {" aa @@ -2682,61 +5090,61 @@ aj aj aj aj -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +aj +aj +aj +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ai +gq +ab +aj +aj +aj +aj +aj +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (7,1,1) = {" aa @@ -2838,10 +5246,10 @@ aj aj aj aj -an -an -an -an +aj +aj +aj +aj aj aj aj @@ -2939,61 +5347,61 @@ aj aj aj aj -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +AX +AX +ab +gq +ab +aj +aj +aj +aj +aj +aj +aj +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj "} (8,1,1) = {" aa @@ -3094,10 +5502,10 @@ ak ak ad aj -ab -ab -ad -an +aj +aj +aj +aj an an an @@ -3196,61 +5604,61 @@ aj aj aj aj -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +aj +ab +aj +aj +aj +ab +aj +aj +aj +AX +AX +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj "} (9,1,1) = {" aa @@ -3352,72 +5760,133 @@ ak ai aj aj +aj +aj +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +aj +ab +ab +aj +aj +aj +aj +AX +AX +aj +aj +AX +AX +aj +aj +AX +aj +ab +aj +aj +aj +aj +aj ab -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an -an aj aj aj @@ -3432,6 +5901,10 @@ aj aj aj aj +ab +ab +aj +ab aj aj aj @@ -3443,71 +5916,6 @@ aj aj aj aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA "} (10,1,1) = {" aa @@ -3609,8 +6017,8 @@ ak ak ai aj -ab -ab +aj +aj an an an @@ -3710,61 +6118,61 @@ aj aj aj aj -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +aj +aj +aj +ab +ab +aj +aj +aj +AX +AX +AX +AX +AX +AX +AX +AX +AX +AX +AX +AX +AX +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +aj "} (11,1,1) = {" aa @@ -3967,61 +6375,61 @@ aj aj aj aj -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +aj +aj +aj +aj +aj +aj +AX +AX +gq +AX +AX +AX +AX +AX +AX +AX +AX +AX +AX +AX +AX +AX +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +ab +aj +aj +aj +aj +aj +aj +aj "} (12,1,1) = {" aa @@ -4224,61 +6632,61 @@ aj aj aj aj -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +aj +aj +aj +aj +aj +aj +aj +AX +AX +AX +gq +AX +AX +AX +AX +AX +gq +AX +AX +gq +AX +AX +AX +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (13,1,1) = {" aa @@ -4481,61 +6889,61 @@ aj aj aj ab -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +aj +aj +aj +aj +aj +aj +ab +aj +AX +AX +AX +gq +gq +gq +gq +gq +gq +gq +gq +gq +AX +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +aj +aj +aj +aj +aj +aj +aj "} (14,1,1) = {" aa @@ -4738,61 +7146,61 @@ aj aj ab ab -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +aj +aj +aj +aj +aj +aj +aj +AX +AX +AX +AX +gq +gq +gq +gq +gq +gq +gq +gq +gq +AX +AX +ab +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +aj +ab +aj +aj +aj +aj +aj "} (15,1,1) = {" aa @@ -4995,61 +7403,61 @@ aj aj aj aj -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +aj +aj +ab +aj +aj +aj +aj +AX +AX +AX +AX +gq +gq +gq +gq +gq +gq +gq +gq +gq +AX +AX +AX +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj "} (16,1,1) = {" aa @@ -5252,61 +7660,61 @@ aj aj aj aj -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +aj +aj +aj +aj +aj +aj +aj +aj +AX +AX +AX +gq +gq +gq +gq +gq +gq +gq +gq +gq +AX +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +aj +aj +aj +aj +aj +aj +aj "} (17,1,1) = {" aa @@ -5509,61 +7917,61 @@ aj aj aj aj -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +aj +aj +aj +aj +aj +aj +aj +aj +AX +AX +gq +gq +gq +gq +gq +gq +gq +dg +gq +gq +gq +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +ab +ab +aj +aj +ab +aj +aj +aj +aj "} (18,1,1) = {" aa @@ -5766,61 +8174,61 @@ aj aj ab aj -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +aj +aj +aj +aj +aj +aj +aj +aj +FQ +FQ +FQ +FQ +FQ +WI +FQ +FQ +FQ +Bv +FQ +ZM +ZM +ZM +aj +aj +aj +aj +ab +ai +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (19,1,1) = {" aa @@ -6023,61 +8431,61 @@ an an ab ab -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +an +ab +aj +aj +aj +aj +aj +ab +FQ +lL +Wq +aV +FQ +AR +FQ +bY +FQ +Rs +FQ +ch +tp +ZM +aj +iB +aj +ab +ab +ai +ai +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (20,1,1) = {" aa @@ -6280,61 +8688,61 @@ an an an an -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +an +an +ab +aj +aj +aj +ab +ab +FQ +Nl +vt +JO +FQ +PF +FQ +oW +FQ +QZ +FQ +hU +iq +ZM +aj +aj +aj +aj +ab +ai +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (21,1,1) = {" aa @@ -6537,61 +8945,61 @@ an an an an +an +an +an +an aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +pR +Ra +FQ +FQ +FQ +ju +FQ +FQ +tM +FQ +eW +vt +vt +OK +fC +SZ +fC +lY +fC +nE +aj +aj +aj +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (22,1,1) = {" aa @@ -6794,61 +9202,61 @@ an an an an -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +an +an +an +an +ol +gg +UC +FQ +nC +vt +vt +vt +vt +vt +vt +vz +vt +vt +OK +Tp +SI +up +zx +fC +nE +nE +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (23,1,1) = {" aa @@ -7051,61 +9459,61 @@ an an an an -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +an +an +an +an +FQ +ug +dG +bf +cq +cq +cq +pf +XS +Vs +TP +cV +dj +dj +FC +ao +wW +ED +aD +fC +nE +gq +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (24,1,1) = {" aa @@ -7308,61 +9716,61 @@ an an an an -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +an +an +an +an +FQ +eR +yW +FQ +hG +vt +Vy +vI +TP +Bg +JO +Fq +vt +vt +OK +cn +nQ +IV +AP +fC +AX +aj +aj +aj +aj +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (25,1,1) = {" aa @@ -7565,61 +9973,61 @@ an an an an -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +an +an +an +an +FQ +FQ +FQ +FQ +FQ +vt +vt +Ks +vt +yw +FQ +hY +OK +OK +OK +QH +nQ +jD +Tl +lY +gq +aj +aj +aj +aj +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (26,1,1) = {" aa @@ -7822,61 +10230,61 @@ an an an an -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +an +an +an +an +FQ +Yu +Yu +Yu +FQ +vt +Ld +FQ +FQ +xR +FQ +hY +OK +uB +qr +Fs +Ym +Qe +cb +yd +PM +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (27,1,1) = {" aa @@ -8079,61 +10487,61 @@ an an an an -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +an +an +an +an +FQ +Sc +vt +vt +Aa +vt +bd +fc +ZP +wN +ZP +Fw +OK +zQ +ZM +KO +nQ +JI +YD +VV +gq +gq +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (28,1,1) = {" aa @@ -8336,61 +10744,61 @@ an an an an -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +an +an +an +an +FQ +FQ +sN +Ol +FQ +vP +FQ +FQ +FQ +FQ +FQ +FQ +OK +OK +fC +bP +Cy +KH +bC +fC +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (29,1,1) = {" aa @@ -8593,61 +11001,61 @@ an an an an -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +an +an +an +an +an +FQ +FQ +FQ +FQ +vt +FQ +bG +ST +ST +gq +gq +gq +AX +lY +NS +qe +Ik +oL +fC +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (30,1,1) = {" aa @@ -8771,6 +11179,7 @@ aj aj aj aj +aj an an an @@ -8850,61 +11259,60 @@ an an an an -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +an +an +an +an +an +an +an +FQ +Rs +FQ +bG +gq +gq +gq +gq +gq +AX +KR +GX +ZK +rb +pX +fC +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (31,1,1) = {" aa @@ -9030,7 +11438,7 @@ aj aj aj aj -an +aj aj aj an @@ -9107,61 +11515,61 @@ an an an an -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +an +an +an +an +an +an +an +an +FQ +eS +FQ +bG +gq +gq +gq +gq +gq +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (32,1,1) = {" aa @@ -9364,61 +11772,61 @@ an an an an -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +an +an +an +an +an +an +an +an +gq +gq +GI +gq +gq +gq +gq +gq +aj +aj +aj +aj +aj +ab +ad +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (33,1,1) = {" aa @@ -9621,61 +12029,61 @@ an an an an -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +an +an +an +an +an +an +an +an +gq +gq +gq +gq +gq +gq +gq +gq +gq +aj +aj +aj +aj +ab +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ai +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (34,1,1) = {" aa @@ -9878,61 +12286,61 @@ an an an an -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +an +an +an +an +an +an +an +an +an +an +gq +gq +gq +gq +ab +ab +ab +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (35,1,1) = {" aa @@ -10135,61 +12543,61 @@ an an an an -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +an +an +an +an +an +an +an +an +an +an +gq +gq +gq +gq +ab +ab +ab +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (36,1,1) = {" aa @@ -10392,61 +12800,61 @@ an an an an -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +an +an +an +an +an +an +an +an +an +an +gq +gq +gq +gq +ab +ab +ab +ab +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (37,1,1) = {" aa @@ -10649,61 +13057,61 @@ an an an an -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +an +an +an +an +an +an +an +an +an +an +an +an +gq +gq +cv +an +ab +an +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (38,1,1) = {" aa @@ -10906,61 +13314,61 @@ an an an an -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +aj +aj +aj +ai +ad +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (39,1,1) = {" aa @@ -11163,61 +13571,61 @@ an an an an -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +aj +aj +aj +aj +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (40,1,1) = {" aa @@ -11420,61 +13828,61 @@ an an an an -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ai +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (41,1,1) = {" aa @@ -11677,61 +14085,61 @@ an an an an -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +an +an +an +an +an +an +an +an +an +an +an +an +an +an +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ai +ad +ai +ai +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj "} (42,1,1) = {" aa @@ -11934,61 +14342,61 @@ an an an an -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +an +an +an +an +an +an +an +an +an +an +an +an +an +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ai +ai +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (43,1,1) = {" aa @@ -12191,61 +14599,61 @@ an an an an -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +an +an +an +an +an +an +an +an +an +an +an +an +aj +aj +aj +aj +aj +aj +ab +ab +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (44,1,1) = {" aa @@ -12448,61 +14856,61 @@ an an an an -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +an +an +an +an +an +an +an +an +an +an +an +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (45,1,1) = {" aa @@ -12705,61 +15113,61 @@ an an an an -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +an +an +an +an +an +an +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (46,1,1) = {" aa @@ -12962,61 +15370,61 @@ aj aj aj aj -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +an +an +an +an +an +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +aj "} (47,1,1) = {" aa @@ -13219,61 +15627,61 @@ aj aj aj aj -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ai +ai +ai +aj +ab +aj +aj +ab +ab +aj +ab +ab +ab +aj +aj +aj +aj +aj +aj "} (48,1,1) = {" aa @@ -13476,61 +15884,61 @@ aj aj aj aj -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ai +ai +ai +ab +aj +aj +aj +aj +ab +ab +ab +ai +ad +ad +ab +ab +aj +aj +aj +aj "} (49,1,1) = {" aa @@ -13733,61 +16141,61 @@ aj aj ai ai -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +aj +aj +aj +aj +aj +aj +aj +ai +ai +ai +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ad +ad +ad +ad +ad +ai +ai +aj +aj +aj "} (50,1,1) = {" aa @@ -13990,61 +16398,61 @@ ab ab ai am -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +ai +ai +ai +ai +ai +ai +ai +am +ai +ab +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +ab +ab +ad +ad +ad +ad +ad +ad +ad +ad +ab +aj +aj "} (51,1,1) = {" aa @@ -14247,61 +16655,61 @@ ai ai am am -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +am +am +am +am +am +am +am +ai +ab +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ad +ad +ad +ad +ad +ad +ad +ab +aj +aj "} (52,1,1) = {" aa @@ -14504,61 +16912,61 @@ am am am am -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +am +am +am +am +am +am +am +ai +ab +aj +aj +ab +ab +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ad +ad +ad +ad +ad +ad +ad +ab +aj +aj "} (53,1,1) = {" aa @@ -14761,61 +17169,61 @@ am am am am -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +am +am +am +am +am +am +am +ai +ab +aj +ab +ab +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ad +ad +ai +ad +ab +ab +aj +aj "} (54,1,1) = {" aa @@ -15018,61 +17426,61 @@ am am am am -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +am +am +am +am +am +am +am +ai +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +aj +aj +aj +aj "} (55,1,1) = {" aa @@ -15275,61 +17683,61 @@ am am am am -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +am +am +am +am +am +am +am +am +ai +aj +ab +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +aj +aj +aj +aj +aj "} (56,1,1) = {" aa @@ -15532,61 +17940,61 @@ ak am am am -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +am +am +am +am +am +am +am +am +ai +ab +ab +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +aj +aj +aj +aj +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj "} (57,1,1) = {" aa @@ -15789,61 +18197,61 @@ ak ak am am -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +am +am +am +am +am +am +am +am +am +ai +ab +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj "} (58,1,1) = {" aa @@ -16046,61 +18454,61 @@ ak ak ak am -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +am +am +am +am +am +am +am +am +am +am +ai +ai +ai +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (59,1,1) = {" aa @@ -16303,61 +18711,61 @@ ak ak ak am -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +am +am +am +am +am +am +am +am +am +am +am +ai +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj "} (60,1,1) = {" aa @@ -16560,61 +18968,61 @@ ak ak ak am -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +am +am +am +am +am +am +am +am +am +am +ai +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (61,1,1) = {" aa @@ -16817,61 +19225,61 @@ ak ak ak am -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +am +am +am +am +am +am +am +am +am +ai +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (62,1,1) = {" aa @@ -17074,61 +19482,61 @@ ak ak ak am -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +am +am +am +am +am +am +am +am +am +ai +aj +aj +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ai +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (63,1,1) = {" aa @@ -17331,61 +19739,61 @@ ak ak ak am -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +am +am +am +am +am +am +am +am +am +am +ai +ai +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ai +ai +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (64,1,1) = {" aa @@ -17588,61 +19996,61 @@ ak ak ak am -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +am +am +am +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ap +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ai +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (65,1,1) = {" aa @@ -17845,61 +20253,61 @@ ak ak am am -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +am +am +am +am +am +am +am +am +am +am +ai +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +bs +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (66,1,1) = {" aa @@ -18102,61 +20510,61 @@ am am am am -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +am +am +am +am +am +am +am +am +am +am +ai +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ad +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj "} (67,1,1) = {" aa @@ -18359,61 +20767,61 @@ am am am am -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +am +am +am +am +am +am +am +am +am +am +ai +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj "} (68,1,1) = {" aa @@ -18616,61 +21024,61 @@ am am am am -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +am +am +am +am +am +am +am +am +am +am +ai +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj "} (69,1,1) = {" aa @@ -18873,61 +21281,61 @@ am am am am -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +am +am +am +am +am +am +am +am +am +am +ai +ai +aj +aj +ab +ab +ab +ab +ab +ab +ab +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (70,1,1) = {" aa @@ -19130,61 +21538,61 @@ am am am am -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +am +am +am +am +am +am +am +am +am +ai +ab +ai +ai +aj +aj +ab +ab +ab +ab +ab +ab +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +ab +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj "} (71,1,1) = {" aa @@ -19387,61 +21795,61 @@ am am am am -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +am +am +am +am +am +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ai +ai +ab +ab +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (72,1,1) = {" aa @@ -19644,61 +22052,61 @@ am am am am -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +am +am +ai +ai +am +am +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +ab +ab +aj +aj +aj +aj +aj +ab +aj +aj +aj +aj +aj "} (73,1,1) = {" aa @@ -19901,61 +22309,61 @@ am am am am -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +am +ai +ab +ab +ai +ai +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +ab +ab +aj +aj +aj +aj +ab +ab +ab +aj +aj +aj +aj "} (74,1,1) = {" aa @@ -20158,61 +22566,61 @@ am am am am -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA -aA +ai +ab +ab +ab +ai +ab +ai +am +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +ab +ab +aj +aj +aj +aj +ab +ab +ab +aj +aj +aj +aj "} (75,1,1) = {" aa @@ -52358,9 +54766,9 @@ aa aa aa ad -ab -ab -ab +Mx +Mx +Mx aj aj aj @@ -52615,11 +55023,11 @@ aa aa aa ad -ab -ab -ab -aj -aj +Mx +Mx +Mx +Mx +Mx aj aj aj @@ -52864,20 +55272,20 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -aj -aj -aj +Si +Si +Si +Si +Si +Si +Si +Ag +Ag +Ag +Mx +Mx +Mx +Mx aj aj aj @@ -53121,20 +55529,20 @@ aa aa aa aa -aa -ad -ad -ad -iy -ab -ab -ab -ab -ab -ab -ab -ab -aj +Si +Sr +Sr +Sr +JZ +nI +nI +nI +nI +CG +Ag +Ag +Ag +Mx aj aj aj @@ -53378,20 +55786,20 @@ aa aa aa aa -aa -ad -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aj +Si +Sr +nI +nI +nI +nI +pq +nI +LJ +nI +nI +nI +Ag +Mx aj aj aj @@ -53635,20 +56043,20 @@ aa aa aa aa -aa -it -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aj +Si +yv +nI +nI +nI +nI +BF +LJ +LJ +LJ +nI +JZ +nI +Mx aj aj aj @@ -53892,20 +56300,20 @@ aa aa aa aa -aa -it -ab -ab -ab -ab -ab -ab -ab -ai -ai -ab -ab -ab +Si +yv +nI +nI +Ad +nI +LJ +LJ +LJ +LJ +kI +nI +JZ +Mx aj aj aj @@ -54149,20 +56557,20 @@ aa aa aa aa -aa -ab -ab -ab -ab -ab -ab -ab -ad -ai -ai -ab -ab -ab +Si +nI +nI +Ez +nI +LJ +LJ +Yg +LJ +kI +kI +nI +nI +Mx aj ab aj @@ -54406,21 +56814,21 @@ aa aa aa aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ai -ai -ad -ab -aj -aj +Si +nI +nI +sx +nI +LJ +LJ +LJ +LJ +kI +kI +Sr +Ag +Mx +Mx aj aj aj @@ -54663,21 +57071,21 @@ aa aa aa aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ad -ab -ab -aj -aj +Si +nI +nI +nI +Wh +nI +LJ +LJ +Gc +nI +Sr +nI +Ag +Mx +Mx aj aj aj @@ -54920,21 +57328,21 @@ aa aa aa aa -aa -ad -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aj -aj +Si +Sr +nI +nI +nI +Wh +nI +nI +nI +nI +nI +nI +Ag +Mx +Mx aj aj aj @@ -55177,21 +57585,21 @@ aa aa aa aa -aa -aa -aa -it -ab -ab -ab -ab -ab -ab -ab -ab -ab -aj -aj +Si +Ag +Ag +nI +nI +nI +nI +Ds +nI +Ds +nI +nI +Ag +Mx +Mx aj aj aj @@ -55429,25 +57837,25 @@ aa aa aa aa +wF +Do +Mh aa aa -aa -aa -aa -aa -aa -aa -ad -ab -ab -ab -ab -ab -ab -ab -ab -ab -aj +Rr +Ag +xs +eq +nI +nI +nI +nI +nI +nI +nI +nI +Ag +Mx aj aj aj @@ -55457,14 +57865,14 @@ aj ab ab ab +ab ak ak ak ak ak -ak -ak -ak +ab +ab ak ak ak @@ -55687,42 +58095,42 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -ad -ab -ab -ab -ab -ab -ab -ab -ab +Si +Si +Si +Si +Si +Si +Si +yv +nI +nI +sq +kk +Gx +nI +nI +nI +Si +Mx +aj +aj ab aj aj aj -aj -aj -aj -aj +aa +ab ab ab ab ak ak -ak -ak -ak -ak -ak -ak -ak +ab +ab +ab +ab +ab ak ak ak @@ -55944,13 +58352,32 @@ aa aa aa aa +Si +oS +CG +wm +Vb +Bs +Si +yv +sq +CG +AH +Ds +Ds +KV +nI +DQ +Si +aa +ab +aj +aj +ab +aj aa aa -aa -aa -aa -aa -ad +kG ab ab ab @@ -55960,14 +58387,6 @@ ab ab ab ab -aj -aj -aj -aj -aj -aj -aj -aj ab ab ab @@ -56171,17 +58590,6 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak al fQ aj @@ -56200,13 +58608,33 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa +Gw +Si +aU +Wh +zf +Qk +iG +Si +Wh +EV +Xe +ke +Ch +kk +Ad +Wh +nI +Ad +lp +lz +lp +lF +lp +lP +lS +iy +iu ab ab ab @@ -56217,14 +58645,6 @@ ab ab ab ab -aj -aj -aj -aj -aj -aj -aj -aj ab ab ab @@ -56429,18 +58849,6 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak aj aj aj @@ -56457,13 +58865,33 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa +Rk +Si +WA +rz +qh +pq +Jq +ke +ub +YH +sR +Dx +Bf +UV +kk +Ds +nI +yv +lu +lq +lD +lG +lu +lQ +lu +kR +kM ab ab ab @@ -56474,14 +58902,6 @@ ab ab ab ab -aj -aj -aj -aj -aj -aj -aj -aj ab ab ab @@ -56686,18 +59106,6 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak aj aj aj @@ -56714,13 +59122,33 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa +uz +Si +MQ +nU +ui +Xw +Rb +Si +sR +Wh +gt +gF +pF +sq +Ad +VP +Ad +pq +lv +lv +lE +lv +lE +lR +lv +ab +jS ab ab ab @@ -56731,27 +59159,7 @@ ab ab ab ab -aj -aj -aj -aj -aj -aj -aj -aj ab -ab -ab -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak ak ak ak @@ -56971,14 +59379,33 @@ aa aa aa aa +uz +Si +WL +eb +dM +eQ +Zc +Si +Wh +XG +pq +NN +JZ +oB +EV +nB +nI +Si +aa +aj +aj +aj +aj +aj aa aa -aa -aa -aa -aa -ad -js +FD ab ab ab @@ -56988,26 +59415,7 @@ ab ab ab ab -aj -aj -aj -aj -aj -aj -aj -aj ab -ab -ab -ak -ak -ak -ak -ak -ak -ak -ak -ak ak ak ak @@ -57229,41 +59637,41 @@ aa aa aa aa +Si +Si +Si +Si +Si +Si +Si +CG +Wh +CG +JR +Ad +Pj +ia +yf +Ds +Si +aj +aj +ab +ab +aj +aj +aj aa -aa -aa -aa -aa -ad -ad -ad ab ab ab ab -ab -ab -ab -ab -aj -aj -aj -aj -aj -aj -aj -aj -ab -ab -ab -ak -ak -ak -ak -ak -ak ak ak +ab +ab +ab +ab ak ak ak @@ -57484,42 +59892,42 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -ad -ai -ai -ai -ai +dD +pt +Wb +Dn +Zs +Zs +xX +gF +Fz +QM +CG +Wh +pc +dA +yv +qA +vR +WU +Ag +aj +aj +aj +aj +aj +aj +aj ab ab ab ab -ab -ab -aj -aj -aj -aj -aj -aj -aj -aj -ab -ab -ab -ak -ak -ak ak ak ak ak +ab +ab ak ak ak @@ -57740,27 +60148,27 @@ aj aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -ad -ai -ai -ai -ai -ad +wF +qS +Si +Si +Si +Si +Si +Si +Si +Br +pD +Wh +Ad +NN +Wh +hr +zv +BH +sq +Ag ab -ab -ab -ab -ab -aj -aj aj aj aj @@ -57997,27 +60405,27 @@ aj aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -ad -ai -ai -ai -ai -ad +Gw +Si +KA +KA +KA +KA +KA +Si +Si +Si +ft +Ad +pq +NN +VI +Vj +MS +AU +Ag +Ag ab -ab -ab -ab -ab -aj -aj aj aj aj @@ -58254,28 +60662,28 @@ aj aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -ad -ai -ai -ai -ai -ad +lb +tz +KA +AY +BP +cw +WT +ty +Si +Si +qN +nI +hD +UG +Ag +Ag +Ag +Ag +Ag +Ag +Mx ab -ab -ab -ab -ab -aj -aj -aj aj aj aj @@ -58511,28 +60919,28 @@ aj aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -ad -ai -ai -ai -ai -ad +uz +Ou +KA +QC +GC +hy +ww +vi +Si +BU +kP +cp +CG +xJ +RF +Ag +xs +xs +xs +Xz +Mx ab -ab -ab -ab -ab -aj -aj -aj aj aj aj @@ -58768,28 +61176,28 @@ aj aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -gP -ai -ai -ai -ai -ad +Gw +An +KA +nt +Ef +uk +rQ +MX +sa +Bj +ub +It +dA +sk +Si +Si +nJ +Si +Si +Ag +Mx ab -ab -ab -ab -ab -aj -aj -aj aj aj aj @@ -59025,29 +61433,29 @@ aj aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ai -ai -ai -ai +Gw +Uh +KA +jj +vu +qi +TN +RX +Si +BU +Oy +cp +pq +UG +nJ +WN +Yy +Hq +nJ +Ag +Mx ab ab -ab -ab -ab -ab -ab -aj -aj -aj aj aj aj @@ -59282,27 +61690,27 @@ aj aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ai -ai -ai -ai -ab -ab -ab -ab -ab -ab -ab -ab +sl +CL +KA +nW +Dz +Xf +QG +se +Si +Si +KJ +CG +fN +ub +RF +eh +EQ +Tn +nJ +Ag +Mx aj aj ab @@ -59539,28 +61947,28 @@ aj aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa +Gw +Si +KA +KA +KA +KA +KA +Si +Si +Si +sR +pq +sq +nI +nJ +JP +Qd +iJ +Si +Sh +Mx ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aj -aj -aj aj aj aj @@ -59796,28 +62204,28 @@ aj aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa +pH +qS +Si +Si +Si +Si +Si +Si +Si +io +rO +xr +nI +eo +nJ +nJ +nJ +Si +Si +dF +Mx ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aj -aj -aj aj aj aj @@ -60054,27 +62462,27 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa +aQ +Fn +SG +SG +SG +BG +SG +Xo +ot +nI +nI +nI +pG +Ag +Ag +eP +Ag +Ag +Wj +Mx ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aj -aj -aj aj aj aj @@ -60318,19 +62726,19 @@ aa aa aa aa +Mx +Mx +nI +nI +nI +HX +Ag +Mx +Mx +Mx ab +Mx ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aj -aj aj aj aj @@ -60575,15 +62983,15 @@ aa aa aa aa -it -ab -ab -ab -ab -ab -ab -ab -ab +Mx +Mx +Ag +nI +nI +OR +Ag +Mx +Mx ab ab aj @@ -60833,13 +63241,13 @@ aa aa aa ad -ab -ab -ab -ab -ab -ab -ab +Mx +Ag +Ag +nI +gF +Ag +Mx ab ab ab @@ -61091,12 +63499,12 @@ aa aa ad ad -ab -ab -ab -ab -ab -ab +Mx +Mx +Ag +hd +Ag +Mx ab ab ab @@ -61350,7 +63758,7 @@ ad ad ad ad -ab +Mx ab ab ab @@ -61607,7 +64015,7 @@ ad ad ad ad -ab +Mx ab ab ab @@ -61860,12 +64268,12 @@ aa aa aa aa -gP -js -ab +Mx +Mx +Mx ad ad -ab +Mx ab ab ab @@ -62122,7 +64530,7 @@ aa aa aa aa -ab +Mx ab ab ab @@ -62385,10 +64793,10 @@ ab ab ab ab -aj -aj -aj -aj +ab +ab +ab +ab ab ab aj @@ -62643,9 +65051,9 @@ ab ab ab ab -aj ab -aj +ab +ab ab ab ab @@ -62902,8 +65310,8 @@ ab aj aj aj -aj -aj +ab +ab ab ab ab diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index c3e7ba0890..e6b2af59e1 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -2564,7 +2564,7 @@ "aij" = ( /obj/structure/closet/secure_closet/contraband/armory, /obj/item/poster/random_contraband, -/obj/item/clothing/suit/security/officer/russian, +/obj/item/clothing/suit/armor/navyblue/russian, /obj/item/grenade/plastic/c4, /turf/open/floor/plasteel/dark, /area/security/armory) @@ -9830,6 +9830,7 @@ /obj/structure/cable{ icon_state = "0-2" }, +/obj/item/twohanded/required/kirbyplants/random, /turf/open/floor/carpet, /area/crew_quarters/heads/captain) "axT" = ( @@ -11162,10 +11163,7 @@ /obj/structure/extinguisher_cabinet{ pixel_x = -24 }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-20"; - pixel_y = 3 - }, +/obj/machinery/vending/wardrobe/cap_wardrobe, /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/captain) "aBl" = ( @@ -28097,11 +28095,6 @@ }, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) -"boY" = ( -/obj/effect/turf_decal/bot, -/obj/effect/landmark/start/cyborg, -/turf/open/floor/plasteel, -/area/science/robotics/lab) "boZ" = ( /obj/structure/table, /obj/machinery/cell_charger, @@ -57038,6 +57031,10 @@ }, /turf/open/floor/engine, /area/science/xenobiology) +"naS" = ( +/obj/effect/landmark/start/paramedic, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "ncm" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 @@ -61102,6 +61099,13 @@ }, /turf/open/floor/wood, /area/lawoffice) +"wtE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/landmark/start/paramedic, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "wun" = ( /obj/structure/cable{ icon_state = "1-2" @@ -88802,7 +88806,7 @@ bzQ ioj bsA bEw -bkh +naS bkh bId bFO @@ -89573,7 +89577,7 @@ bBc bCm bDr bEz -bnF +wtE buh bIg bjc @@ -98811,8 +98815,8 @@ beI bkt blH bmO -boY -boY +bnQ +bnQ bqi bry bsZ @@ -99068,8 +99072,8 @@ bju bkt blI bmO -boY -boY +bnQ +bnQ bqi brz bta diff --git a/_maps/shuttles/arrival_kilo.dmm b/_maps/shuttles/arrival_kilo.dmm new file mode 100644 index 0000000000..125f017a2b --- /dev/null +++ b/_maps/shuttles/arrival_kilo.dmm @@ -0,0 +1,558 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/arrival) +"b" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/arrival) +"c" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/arrival) +"d" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Arrival Shuttle Airlock" + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/arrival) +"e" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/mineral/titanium, +/area/shuttle/arrival) +"f" = ( +/obj/structure/window/shuttle, +/obj/structure/grille, +/turf/open/floor/plating, +/area/shuttle/arrival) +"g" = ( +/turf/template_noop, +/area/template_noop) +"h" = ( +/obj/structure/sign/warning/fire, +/turf/closed/wall/mineral/titanium, +/area/shuttle/arrival) +"i" = ( +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/structure/closet/crate/internals, +/obj/effect/turf_decal/delivery, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/arrival) +"j" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/arrows{ + icon_state = "arrows"; + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/arrival) +"k" = ( +/obj/effect/turf_decal/bot, +/obj/structure/chair/comfy/shuttle, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/arrival) +"l" = ( +/obj/effect/turf_decal/bot, +/obj/structure/chair/comfy/shuttle, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/arrival) +"m" = ( +/obj/effect/turf_decal/bot, +/obj/structure/chair/comfy/shuttle, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/arrival) +"n" = ( +/obj/structure/shuttle/engine/propulsion/left{ + icon_state = "propulsion_l"; + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/arrival) +"o" = ( +/obj/structure/window/shuttle, +/obj/structure/grille, +/obj/structure/shuttle/engine/heater{ + icon_state = "heater"; + dir = 8 + }, +/turf/open/floor/plating, +/area/shuttle/arrival) +"p" = ( +/obj/structure/table, +/obj/item/flashlight{ + pixel_y = 8 + }, +/obj/item/flashlight, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/arrival) +"q" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/arrows{ + icon_state = "arrows"; + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/arrival) +"r" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/arrows{ + icon_state = "arrows"; + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/arrival) +"s" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/arrival) +"t" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/structure/chair/comfy/shuttle, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/arrival) +"u" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/docking_port/mobile/arrivals{ + dir = 4; + name = "kilo arrivals shuttle" + }, +/turf/open/floor/plating/airless, +/area/shuttle/arrival) +"v" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/radio{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/radio{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/radio{ + pixel_y = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/arrival) +"w" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/obj/effect/turf_decal/arrows{ + icon_state = "arrows"; + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/arrival) +"x" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/arrival) +"y" = ( +/obj/machinery/requests_console{ + department = "Arrival shuttle"; + name = "Arrivals Shuttle console" + }, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/arrival) +"z" = ( +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/lavendergrass, +/obj/structure/flora/ausbushes/ywflowers, +/obj/structure/flora/ausbushes/fernybush, +/obj/structure/window/shuttle, +/turf/open/floor/grass, +/area/shuttle/arrival) +"A" = ( +/obj/machinery/vending/wallmed{ + name = "Emergency NanoMed"; + use_power = 0 + }, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/arrival) +"B" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/arrival) +"C" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/arrival) +"D" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/obj/machinery/door/airlock/shuttle{ + name = "Arrival Shuttle Airlock" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/arrival) +"E" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/arrival) +"F" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/arrival) +"G" = ( +/obj/structure/shuttle/engine/propulsion/right{ + icon_state = "propulsion_r"; + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/arrival) +"H" = ( +/obj/structure/table, +/obj/item/storage/toolbox/emergency, +/obj/item/crowbar/red, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/arrival) +"I" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/arrival) +"J" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/arrival) +"K" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/arrival) +"L" = ( +/obj/machinery/status_display/ai, +/turf/closed/wall/mineral/titanium, +/area/shuttle/arrival) +"M" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/arrival) +"N" = ( +/obj/effect/turf_decal/bot, +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/arrival) +"O" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/arrival) +"P" = ( +/obj/effect/turf_decal/bot, +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/obj/machinery/light, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/arrival) +"Q" = ( +/obj/effect/turf_decal/bot, +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/obj/machinery/status_display/evac{ + pixel_y = -32 + }, +/obj/machinery/light, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/arrival) + +(1,1,1) = {" +a +a +n +u +G +a +a +"} +(2,1,1) = {" +b +h +o +o +o +h +b +"} +(3,1,1) = {" +c +i +p +v +H +i +c +"} +(4,1,1) = {" +d +j +r +x +I +O +f +"} +(5,1,1) = {" +e +l +s +B +J +P +e +"} +(6,1,1) = {" +f +k +s +y +J +N +f +"} +(7,1,1) = {" +f +k +s +z +J +N +f +"} +(8,1,1) = {" +f +k +s +A +J +N +f +"} +(9,1,1) = {" +c +m +s +B +J +Q +c +"} +(10,1,1) = {" +d +q +w +C +K +x +f +"} +(11,1,1) = {" +b +c +c +D +L +c +b +"} +(12,1,1) = {" +c +e +t +E +M +e +c +"} +(13,1,1) = {" +g +c +k +F +N +c +g +"} +(14,1,1) = {" +g +c +f +f +f +c +g +"} diff --git a/_maps/shuttles/cargo_kilo.dmm b/_maps/shuttles/cargo_kilo.dmm new file mode 100644 index 0000000000..6d9d543842 --- /dev/null +++ b/_maps/shuttles/cargo_kilo.dmm @@ -0,0 +1,391 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/supply) +"b" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/supply) +"c" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/supply) +"d" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/supply) +"e" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/supply) +"f" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/supply) +"g" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/supply) +"h" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/supply) +"i" = ( +/obj/machinery/door/poddoor{ + id = "QMLoaddoor"; + name = "Supply Dock Loading Door" + }, +/obj/machinery/conveyor{ + dir = 8; + id = "QMLoad"; + name = "off ramp" + }, +/turf/open/floor/plating, +/area/shuttle/supply) +"j" = ( +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/supply) +"k" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/supply) +"l" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/supply) +"m" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Supply Shuttle Airlock"; + req_access_txt = "31" + }, +/obj/effect/decal/cleanable/dirt, +/obj/docking_port/mobile/supply{ + dir = 4; + dwidth = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/supply) +"n" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/supply) +"o" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/supply) +"p" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "QMLoaddoor"; + layer = 4; + name = "Off Ramp Toggle"; + pixel_x = -24; + pixel_y = 6; + req_access_txt = "31" + }, +/obj/machinery/button/door{ + id = "QMLoaddoor2"; + layer = 4; + name = "On Ramp Toggle"; + pixel_x = -24; + pixel_y = -6; + req_access_txt = "31" + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/supply) +"q" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/sign/departments/cargo{ + pixel_x = 32 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/supply) +"r" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Supply Shuttle Airlock"; + req_access_txt = "31" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/supply) +"s" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/supply) +"t" = ( +/obj/machinery/door/poddoor{ + id = "QMLoaddoor2"; + name = "Supply Dock Loading Door" + }, +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad2"; + name = "on ramp" + }, +/turf/open/floor/plating, +/area/shuttle/supply) +"u" = ( +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/supply) +"v" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/end{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/supply) +"w" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/supply) +"x" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/supply) +"y" = ( +/obj/structure/sign/warning/fire, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/supply) +"z" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/supply) +"A" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/structure/shuttle/engine/heater, +/turf/open/floor/plating, +/area/shuttle/supply) +"B" = ( +/turf/template_noop, +/area/template_noop) +"C" = ( +/obj/structure/shuttle/engine/propulsion/burst/left, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"D" = ( +/obj/structure/shuttle/engine/propulsion, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"E" = ( +/obj/structure/shuttle/engine/propulsion/burst/right, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/shuttle/supply) + +(1,1,1) = {" +a +a +a +i +m +a +r +t +a +a +a +B +"} +(2,1,1) = {" +a +b +e +j +f +p +n +u +v +y +a +C +"} +(3,1,1) = {" +a +c +o +g +k +g +o +g +s +e +A +D +"} +(4,1,1) = {" +a +c +g +g +g +g +g +g +g +z +A +D +"} +(5,1,1) = {" +a +c +g +g +g +g +g +g +w +x +A +D +"} +(6,1,1) = {" +a +d +h +l +h +q +h +l +x +y +a +E +"} +(7,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +B +"} diff --git a/_maps/shuttles/emergency_kilo.dmm b/_maps/shuttles/emergency_kilo.dmm new file mode 100644 index 0000000000..5187c34a3b --- /dev/null +++ b/_maps/shuttles/emergency_kilo.dmm @@ -0,0 +1,2095 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/template_noop, +/area/template_noop) +"ab" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"ac" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/escape) +"ad" = ( +/obj/structure/table/reinforced, +/obj/item/storage/toolbox/mechanical, +/obj/item/radio, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"ae" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/computer/communications, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"af" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/computer/emergency_shuttle, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"ag" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/computer/crew, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"ah" = ( +/obj/structure/table/reinforced, +/obj/item/storage/firstaid/o2{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/storage/firstaid/regular, +/obj/item/crowbar, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"ai" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"aj" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"ak" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/effect/turf_decal/box/corners, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"al" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/chair/comfy/shuttle, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"am" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/effect/turf_decal/box/corners{ + icon_state = "box_corners"; + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"an" = ( +/obj/structure/table/reinforced, +/obj/item/clipboard, +/obj/item/restraints/handcuffs, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/assembly/flash/handheld, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"ao" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/door/airlock/shuttle{ + name = "External Shuttle Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"ap" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/crowbar/red, +/obj/item/storage/lockbox/loyalty, +/turf/open/floor/mineral/plastitanium/red/brig, +/area/shuttle/escape) +"aq" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/chair/comfy/shuttle, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/mineral/plastitanium/red/brig, +/area/shuttle/escape) +"ar" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/recharger, +/turf/open/floor/mineral/plastitanium/red/brig, +/area/shuttle/escape) +"as" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/escape) +"at" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/keycard_auth{ + pixel_x = -24 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"au" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/folder/red{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/folder/blue, +/obj/item/gun/energy/e_gun/mini, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"av" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/keycard_auth{ + pixel_x = 24 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"aw" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/closet/emcloset/anchored, +/obj/effect/turf_decal/bot, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"ax" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"ay" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"az" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/mineral/plastitanium/red/brig, +/area/shuttle/escape) +"aA" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/mineral/plastitanium/red/brig, +/area/shuttle/escape) +"aC" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red/brig, +/area/shuttle/escape) +"aD" = ( +/obj/machinery/status_display, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"aE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"aF" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/storage/fancy/donut_box, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"aG" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"aH" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/airlock/shuttle{ + name = "External Shuttle Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"aI" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/mineral/plastitanium/red/brig, +/area/shuttle/escape) +"aJ" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/airlock/security/glass{ + name = "Holding Area"; + req_one_access_txt = "19" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"aK" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"aL" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"aM" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"aN" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/door/airlock/command{ + name = "Shuttle Control"; + req_one_access_txt = "19" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"aO" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"aP" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"aQ" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"aR" = ( +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/structure/closet/crate/internals, +/obj/effect/turf_decal/delivery, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"aS" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red/brig, +/area/shuttle/escape) +"aT" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/mineral/plastitanium/red/brig, +/area/shuttle/escape) +"aU" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "applebush" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"aV" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"aW" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"aX" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/suit_storage_unit/standard_unit, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"aY" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"aZ" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"ba" = ( +/obj/effect/turf_decal/bot, +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"bb" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock"; + req_one_access_txt = "63" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"bc" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red/brig, +/area/shuttle/escape) +"bd" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red/brig, +/area/shuttle/escape) +"be" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/mineral/plastitanium/red/brig, +/area/shuttle/escape) +"bf" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/storage/box/zipties{ + pixel_y = 4 + }, +/obj/item/restraints/handcuffs, +/obj/item/restraints/handcuffs, +/turf/open/floor/mineral/plastitanium/red/brig, +/area/shuttle/escape) +"bg" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"bh" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"bi" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/suit_storage_unit/standard_unit, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"bj" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"bk" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"bl" = ( +/obj/effect/turf_decal/bot, +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"bm" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/airlock/security/glass{ + name = "Holding Area"; + req_access_txt = "2" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"bn" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/emcloset, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"bo" = ( +/obj/structure/table, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = -4 + }, +/obj/item/tank/internals/air{ + pixel_x = 4 + }, +/obj/item/clothing/mask/breath{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/clothing/mask/breath, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"bp" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"bq" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/docking_port/mobile/emergency{ + name = "Kilo emergency shuttle" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"br" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"bs" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"bt" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"bu" = ( +/obj/effect/turf_decal/bot, +/obj/structure/chair/comfy/shuttle, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"bv" = ( +/obj/structure/sign/departments/security{ + pixel_y = 32 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/structure/chair/comfy/shuttle, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"bw" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"bx" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"by" = ( +/obj/structure/sign/departments/engineering{ + pixel_y = 32 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/structure/chair/comfy/shuttle, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"bz" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"bA" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"bB" = ( +/obj/effect/turf_decal/bot, +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/machinery/status_display/evac{ + pixel_x = -32 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"bC" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"bD" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"bF" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"bH" = ( +/obj/effect/turf_decal/bot, +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/obj/machinery/status_display/evac{ + pixel_x = 32 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"bI" = ( +/obj/effect/turf_decal/bot, +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"bJ" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"bK" = ( +/obj/effect/turf_decal/bot, +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"bL" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"bM" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"bN" = ( +/obj/machinery/vending/wallmed{ + name = "Emergency NanoMed"; + use_power = 0 + }, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/escape) +"bO" = ( +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/lavendergrass, +/obj/structure/flora/ausbushes/brflowers, +/obj/structure/flora/ausbushes/leafybush, +/obj/structure/window/shuttle, +/turf/open/floor/grass, +/area/shuttle/escape) +"bP" = ( +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/flora/ausbushes/lavendergrass, +/obj/structure/flora/ausbushes/ywflowers, +/obj/structure/flora/ausbushes/fernybush, +/obj/structure/window/shuttle, +/turf/open/floor/grass, +/area/shuttle/escape) +"bQ" = ( +/obj/structure/extinguisher_cabinet, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/escape) +"bR" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"bS" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"bT" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"bU" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"bV" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"bW" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"bX" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"bY" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"bZ" = ( +/obj/effect/turf_decal/bot, +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/obj/machinery/light, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"ca" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"cb" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"cc" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"cd" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"ce" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"cf" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"cg" = ( +/obj/structure/table, +/obj/item/storage/firstaid/o2, +/obj/item/tank/internals/emergency_oxygen, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"ch" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "applebush" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"ci" = ( +/obj/structure/table, +/obj/item/storage/toolbox/emergency, +/obj/item/crowbar/red, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"cj" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"ck" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"cl" = ( +/obj/structure/closet/crate{ + name = "emergency supplies crate" + }, +/obj/item/storage/toolbox/emergency, +/obj/item/storage/toolbox/emergency, +/obj/item/flashlight/flare{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/flashlight/flare{ + pixel_x = -6; + pixel_y = -2 + }, +/obj/item/crowbar, +/obj/item/wrench, +/obj/item/radio, +/obj/effect/turf_decal/bot, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"cm" = ( +/obj/structure/sign/departments/medbay/alt, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"cn" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/airlock/medical/glass{ + name = "Shuttle Infirmary" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"co" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/radio{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/radio{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/radio{ + pixel_y = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"cp" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"cq" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-05" + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"cr" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"cs" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"ct" = ( +/obj/structure/closet/crate/medical{ + name = "medical crate" + }, +/obj/item/storage/firstaid/regular, +/obj/item/storage/firstaid/o2{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/toxin{ + pixel_x = -4; + pixel_y = 3 + }, +/obj/item/healthanalyzer{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/lazarus_injector, +/obj/effect/turf_decal/bot, +/mob/living/simple_animal/bot/medbot{ + name = "\improper emergency medibot"; + pixel_x = -3; + pixel_y = 2 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"cu" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/sleeper{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"cv" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"cw" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-10" + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"cx" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"cy" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/sleeper{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"cz" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/recharge_station, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"cA" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"cB" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"cC" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"cD" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/electrical{ + pixel_x = -3; + pixel_y = 1 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_y = -1 + }, +/obj/item/storage/toolbox/emergency{ + pixel_x = 3; + pixel_y = -5 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"cE" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"cG" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"cH" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"cI" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"cJ" = ( +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/structure/closet/crate/internals, +/obj/effect/turf_decal/delivery, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"cK" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/structure/shuttle/engine/heater, +/turf/open/floor/plating, +/area/shuttle/escape) +"cL" = ( +/obj/structure/sign/warning/fire, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"cM" = ( +/obj/machinery/vending/medical, +/obj/effect/turf_decal/bot, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"cN" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"cO" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line, +/obj/structure/chair/office/light, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"cP" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"cQ" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/chair/office/light, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"cR" = ( +/obj/structure/table, +/obj/item/circular_saw, +/obj/item/scalpel{ + pixel_y = 16 + }, +/obj/item/hemostat, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/escape) +"cS" = ( +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/escape) +"cT" = ( +/obj/structure/shuttle/engine/propulsion, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"cU" = ( +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/escape) +"cV" = ( +/obj/structure/table, +/obj/item/defibrillator/compact/loaded, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"cW" = ( +/obj/structure/table, +/obj/item/storage/firstaid/fire{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/storage/firstaid/regular, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"cX" = ( +/obj/structure/table, +/obj/item/clipboard, +/obj/item/reagent_containers/hypospray/medipen, +/obj/item/reagent_containers/hypospray/medipen{ + pixel_y = 6 + }, +/obj/item/reagent_containers/hypospray/medipen{ + pixel_y = -6 + }, +/obj/item/reagent_containers/glass/bottle/charcoal, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"cY" = ( +/obj/machinery/status_display/ai, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"cZ" = ( +/obj/machinery/computer/operating{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"da" = ( +/obj/structure/table/optable, +/obj/effect/turf_decal/bot, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"db" = ( +/obj/structure/table, +/obj/item/surgical_drapes, +/obj/item/retractor, +/obj/item/cautery, +/turf/open/floor/plasteel/dark, +/area/shuttle/escape) +"dc" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/door/airlock/command{ + name = "Shuttle Control"; + req_one_access_txt = "19" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"dd" = ( +/obj/structure/shuttle/engine/propulsion/left, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"de" = ( +/obj/structure/shuttle/engine/propulsion/right, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"df" = ( +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"dg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"dh" = ( +/obj/structure/shuttle/engine/heater, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/escape) +"di" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/shuttle/engine/large, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"dj" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"zk" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"Vm" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) +"WN" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/white, +/area/shuttle/escape) + +(1,1,1) = {" +aa +aa +ab +ac +ab +ac +ai +bb +ab +bq +ab +ac +ac +ac +ab +bX +ab +bX +ai +ab +as +cS +aa +aa +aa +"} +(2,1,1) = {" +aa +aa +ac +ap +az +az +aS +bc +ac +bD +bB +bI +bI +bI +bB +bx +ac +cj +cr +cC +cK +cT +aa +aa +aa +"} +(3,1,1) = {" +aa +aa +ab +aq +aA +aA +aA +bd +bm +bs +bC +bJ +bM +bJ +bS +zk +cf +ck +cs +cD +cL +cU +cS +cS +aa +"} +(4,1,1) = {" +aa +aa +ac +ar +aA +aA +aA +be +ac +bt +Vm +bK +bN +bu +bD +bK +ac +cl +ct +as +ab +ab +as +cS +cS +"} +(5,1,1) = {" +ab +ac +ai +as +aC +aI +aT +bf +ab +bu +bD +bK +bO +bu +bD +bZ +as +ab +bg +as +cM +cV +cK +dg +di +"} +(6,1,1) = {" +ac +ad +aj +as +aD +aJ +ac +as +as +bv +bD +bK +bP +bu +bD +bK +cg +cm +cu +cE +cN +cW +cK +dg +dj +"} +(7,1,1) = {" +ac +ae +ak +at +aE +aK +aU +bg +bn +bw +br +bK +bQ +bu +bT +ca +bC +cn +cv +cH +cO +cX +cL +dh +de +"} +(8,1,1) = {" +ac +af +al +au +aF +aL +aV +dc +df +bx +bF +bL +bL +bL +bU +cb +ch +ac +cw +cG +cP +cY +ab +cS +cS +"} +(9,1,1) = {" +ac +ag +am +av +aG +aM +aW +bh +bo +bt +Vm +bK +bN +bu +bV +cc +bY +cn +cx +WN +cP +cZ +cL +dh +dd +"} +(10,1,1) = {" +ac +ah +an +as +as +aN +ab +as +as +by +bD +bK +bO +bu +bD +bK +ci +cm +cy +cI +cQ +da +cK +dg +di +"} +(11,1,1) = {" +ab +ac +ai +as +as +aO +aX +bi +ab +bu +bD +bK +bP +bu +bD +bZ +as +ab +bg +as +cR +db +cK +dg +dj +"} +(12,1,1) = {" +aa +aa +ab +aw +ac +aP +aY +bj +ac +bw +br +bK +bQ +bu +bD +bK +ac +co +cz +as +ab +ab +as +cS +cS +"} +(13,1,1) = {" +aa +aa +ao +ax +aH +aQ +aZ +bk +bp +bz +bY +bJ +bR +bJ +bW +cd +cf +cp +cA +cJ +cL +cU +cS +cS +aa +"} +(14,1,1) = {" +aa +aa +ab +ay +ac +aR +ba +bl +ac +bA +bH +bl +bl +bl +bH +ce +ac +cq +cB +aR +cK +cT +aa +aa +aa +"} +(15,1,1) = {" +aa +aa +ab +ab +ab +ac +ai +ac +ab +ac +ab +ac +ac +ac +ab +ac +ab +ab +ai +ab +as +cS +aa +aa +aa +"} diff --git a/_maps/shuttles/ferry_kilo.dmm b/_maps/shuttles/ferry_kilo.dmm new file mode 100644 index 0000000000..744d09d373 --- /dev/null +++ b/_maps/shuttles/ferry_kilo.dmm @@ -0,0 +1,293 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"b" = ( +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/transport) +"c" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/transport) +"d" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/transport) +"e" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/transport) +"f" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Ferry Shuttle Airlock" + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/fans/tiny, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/transport) +"g" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/mineral/titanium, +/area/shuttle/transport) +"h" = ( +/obj/structure/shuttle/engine/propulsion/left{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/transport) +"i" = ( +/obj/structure/window/shuttle, +/obj/structure/grille, +/obj/structure/shuttle/engine/heater{ + dir = 8 + }, +/turf/open/floor/plating, +/area/shuttle/transport) +"j" = ( +/obj/structure/sign/warning/fire, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/transport) +"k" = ( +/obj/structure/table/reinforced, +/obj/item/storage/firstaid/o2{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/storage/firstaid/regular, +/obj/item/crowbar, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/transport) +"l" = ( +/obj/effect/turf_decal/bot, +/obj/structure/chair/comfy/shuttle, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/transport) +"m" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/transport) +"n" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/transport) +"o" = ( +/obj/effect/turf_decal/bot, +/obj/structure/chair/comfy/shuttle, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/transport) +"p" = ( +/obj/structure/shuttle/engine/propulsion{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/transport) +"q" = ( +/obj/machinery/computer/shuttle/ferry/request{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/transport) +"r" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/transport) +"s" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/transport) +"t" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Ferry Shuttle Airlock" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/fans/tiny, +/obj/docking_port/mobile{ + dir = 8; + dwidth = 2; + height = 11; + id = "ferry"; + name = "ferry shuttle"; + preferred_direction = 4; + width = 5 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/transport) +"u" = ( +/obj/structure/shuttle/engine/propulsion/right{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/transport) +"v" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/radio{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/radio{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/radio{ + pixel_y = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/transport) +"w" = ( +/obj/effect/turf_decal/bot, +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/transport) +"x" = ( +/obj/effect/turf_decal/bot, +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/obj/machinery/light, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/transport) + +(1,1,1) = {" +a +h +p +u +a +"} +(2,1,1) = {" +b +i +i +i +b +"} +(3,1,1) = {" +c +j +q +j +c +"} +(4,1,1) = {" +d +k +r +v +d +"} +(5,1,1) = {" +e +l +r +w +e +"} +(6,1,1) = {" +d +l +r +w +d +"} +(7,1,1) = {" +f +m +s +m +f +"} +(8,1,1) = {" +g +n +r +n +g +"} +(9,1,1) = {" +e +l +r +w +e +"} +(10,1,1) = {" +d +o +r +x +d +"} +(11,1,1) = {" +d +e +t +e +d +"} diff --git a/_maps/shuttles/labour_kilo.dmm b/_maps/shuttles/labour_kilo.dmm new file mode 100644 index 0000000000..9ee9a38f07 --- /dev/null +++ b/_maps/shuttles/labour_kilo.dmm @@ -0,0 +1,312 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/labor) +"b" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/labor) +"c" = ( +/obj/machinery/computer/shuttle/labor{ + dir = 4 + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -31 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/labor) +"d" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/labor) +"e" = ( +/obj/structure/table, +/obj/item/folder/red, +/obj/item/restraints/handcuffs, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/labor) +"f" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/labor) +"g" = ( +/obj/machinery/button/flasher{ + id = "gulagshuttleflasher"; + name = "Flash Control"; + pixel_y = -26; + req_access_txt = "1" + }, +/obj/machinery/light, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/labor) +"h" = ( +/obj/machinery/mineral/stacking_unit_console{ + machinedir = 2; + pixel_x = 30; + pixel_y = 30 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/labor) +"i" = ( +/obj/machinery/door/airlock/titanium{ + name = "Labor Shuttle Airlock"; + req_access_txt = "2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/labor) +"j" = ( +/obj/machinery/door/airlock/titanium{ + name = "Labor Shuttle Airlock"; + req_access_txt = "2" + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/labor) +"k" = ( +/obj/machinery/mineral/stacking_machine/laborstacker{ + input_dir = 2; + output_dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/labor) +"l" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/labor) +"m" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/labor) +"n" = ( +/obj/machinery/mineral/labor_claim_console{ + machinedir = 1; + pixel_x = 30 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/labor) +"o" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/labor) +"p" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/labor) +"q" = ( +/obj/machinery/flasher{ + id = "gulagshuttleflasher"; + pixel_x = 25 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/labor) +"r" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/structure/closet/crate, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/labor) +"s" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/labor) +"t" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/labor) +"u" = ( +/obj/machinery/door/airlock/titanium{ + id_tag = "prisonshuttle"; + name = "Labor Shuttle Airlock" + }, +/obj/docking_port/mobile{ + dir = 8; + dwidth = 2; + height = 5; + id = "laborcamp"; + name = "labor camp shuttle"; + port_direction = 4; + width = 9 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/labor) +"v" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/labor) +"w" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/structure/shuttle/engine/heater, +/turf/open/floor/plating, +/area/shuttle/labor) +"x" = ( +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/labor) +"y" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/labor) + +(1,1,1) = {" +a +a +b +a +b +a +b +v +x +"} +(2,1,1) = {" +b +c +f +j +l +o +r +w +y +"} +(3,1,1) = {" +b +d +g +a +m +p +s +w +y +"} +(4,1,1) = {" +b +e +h +k +n +q +t +w +y +"} +(5,1,1) = {" +a +a +i +a +a +a +u +v +x +"} diff --git a/_maps/shuttles/mining_kilo.dmm b/_maps/shuttles/mining_kilo.dmm new file mode 100644 index 0000000000..1de45c713c --- /dev/null +++ b/_maps/shuttles/mining_kilo.dmm @@ -0,0 +1,242 @@ +//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, +/obj/item/storage/toolbox/emergency, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/mining) +"d" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/computer/shuttle/mining, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/mining) +"e" = ( +/obj/structure/table, +/obj/item/crowbar/red, +/obj/item/radio/intercom{ + pixel_y = 22 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/mining) +"f" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/mining) +"g" = ( +/obj/effect/turf_decal/bot, +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/mining) +"h" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/mining) +"i" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/mining) +"j" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/machinery/status_display/evac{ + pixel_x = -32 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/mining) +"k" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Mining Shuttle Airlock" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/docking_port/mobile{ + dir = 8; + dwidth = 3; + height = 5; + id = "mining"; + name = "mining shuttle"; + port_direction = 4; + width = 7 + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/mining) +"l" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/structure/shuttle/engine/heater, +/turf/open/floor/plating, +/area/shuttle/mining) +"m" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/mining) +"n" = ( +/obj/structure/sign/warning/fire, +/turf/closed/wall/mineral/titanium, +/area/shuttle/mining) +"o" = ( +/obj/structure/shuttle/engine/propulsion, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/shuttle/mining) +"p" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/mining) +"q" = ( +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/structure/closet/crate/internals, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/light/small, +/obj/effect/turf_decal/box, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/mining) +"r" = ( +/obj/structure/ore_box, +/obj/machinery/light/small, +/obj/effect/turf_decal/box, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/mining) + +(1,1,1) = {" +a +a +b +a +b +a +a +"} +(2,1,1) = {" +a +c +f +j +g +q +n +"} +(3,1,1) = {" +b +d +h +m +g +l +o +"} +(4,1,1) = {" +a +e +i +p +g +r +n +"} +(5,1,1) = {" +a +a +b +k +b +a +a +"} diff --git a/_maps/shuttles/pirate_default.dmm b/_maps/shuttles/pirate_default.dmm index 1c8670d5b6..c002e66d53 100644 --- a/_maps/shuttles/pirate_default.dmm +++ b/_maps/shuttles/pirate_default.dmm @@ -89,7 +89,7 @@ /turf/open/floor/pod/dark, /area/shuttle/pirate) "aj" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, +/turf/closed/wall/r_wall/syndicate/pirate/nodiagonal, /area/shuttle/pirate) "ak" = ( /obj/machinery/airalarm/all_access{ @@ -419,6 +419,7 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, +/obj/structure/fans/tiny, /turf/open/floor/plating, /area/shuttle/pirate) "aK" = ( @@ -463,21 +464,19 @@ /turf/open/floor/plating, /area/shuttle/pirate) "aQ" = ( -/obj/machinery/porta_turret/syndicate/energy{ +/obj/machinery/porta_turret/syndicate/energy/pirate{ dir = 1; faction = list("pirate"); - icon_state = "standard_lethal"; - mode = 1 + icon_state = "standard_lethal" }, -/turf/closed/wall/mineral/plastitanium/nodiagonal, +/turf/closed/wall/r_wall/syndicate/pirate/nodiagonal, /area/shuttle/pirate) "aR" = ( -/obj/machinery/porta_turret/syndicate/energy{ +/obj/machinery/porta_turret/syndicate/energy/pirate{ faction = list("pirate"); - icon_state = "standard_lethal"; - mode = 1 + icon_state = "standard_lethal" }, -/turf/closed/wall/mineral/plastitanium, +/turf/closed/wall/r_wall/syndicate/pirate, /area/shuttle/pirate) "aS" = ( /obj/effect/turf_decal/stripes/line, @@ -486,7 +485,7 @@ /area/shuttle/pirate) "aU" = ( /obj/structure/sign/departments/engineering, -/turf/closed/wall/mineral/plastitanium/nodiagonal, +/turf/closed/wall/r_wall/syndicate/pirate/nodiagonal, /area/shuttle/pirate) "aV" = ( /obj/effect/mob_spawn/human/pirate{ @@ -867,37 +866,36 @@ dir = 1 }, /obj/docking_port/mobile/pirate{ - callTime = 100; - dheight = 0; - dir = 1; dwidth = 11; height = 16; - id = "pirateship"; launch_status = 0; movement_force = list("KNOCKDOWN" = 0, "THROW" = 0); name = "Pirate Ship"; port_direction = 2; - preferred_direction = 1; width = 17 }, /obj/docking_port/stationary{ - dir = 1; dwidth = 11; height = 16; id = "pirateship_home"; name = "Deep Space"; width = 17 }, +/obj/structure/fans/tiny, /turf/open/floor/plating, /area/shuttle/pirate) +"db" = ( +/obj/structure/shuttle/engine/heater, +/obj/effect/spawner/structure/window/plastitanium/pirate, +/turf/open/floor/plating/airless, +/area/shuttle/pirate) "df" = ( -/obj/machinery/porta_turret/syndicate/energy{ +/obj/machinery/porta_turret/syndicate/energy/pirate{ dir = 4; faction = list("pirate"); - icon_state = "standard_lethal"; - mode = 1 + icon_state = "standard_lethal" }, -/turf/closed/wall/mineral/plastitanium, +/turf/closed/wall/r_wall/syndicate/pirate, /area/shuttle/pirate) "dy" = ( /obj/structure/chair/wood/normal, @@ -988,7 +986,7 @@ id = "piratebridge" }, /obj/structure/grille, -/obj/structure/window/plastitanium, +/obj/structure/window/plastitanium/pirate, /turf/open/floor/plating, /area/shuttle/pirate) "ez" = ( @@ -1016,7 +1014,7 @@ /turf/open/floor/plasteel, /area/shuttle/pirate) "fW" = ( -/turf/closed/wall/mineral/plastitanium, +/turf/closed/wall/r_wall/syndicate/pirate, /area/shuttle/pirate) "fY" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -1084,13 +1082,12 @@ /turf/open/floor/plasteel/showroomfloor, /area/shuttle/pirate) "wR" = ( -/obj/machinery/porta_turret/syndicate/energy{ +/obj/machinery/porta_turret/syndicate/energy/pirate{ dir = 8; faction = list("pirate"); - icon_state = "standard_lethal"; - mode = 1 + icon_state = "standard_lethal" }, -/turf/closed/wall/mineral/plastitanium, +/turf/closed/wall/r_wall/syndicate/pirate, /area/shuttle/pirate) "yi" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -1326,7 +1323,7 @@ aU be aD aG -ep +db aH "} (9,1,1) = {" @@ -1344,7 +1341,7 @@ mU aL bP bX -ep +db aK "} (10,1,1) = {" @@ -1362,7 +1359,7 @@ aj bO bQ bk -ep +db er "} (11,1,1) = {" diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm index 6913473e88..0a64f01a43 100644 --- a/code/__DEFINES/DNA.dm +++ b/code/__DEFINES/DNA.dm @@ -138,8 +138,8 @@ ////organ defines #define STANDARD_ORGAN_THRESHOLD 100 -#define STANDARD_ORGAN_HEALING 0.001 -#define STANDARD_ORGAN_DECAY 0.00222 //designed to fail organs when left to decay for ~15 minutes +#define STANDARD_ORGAN_HEALING (1/(15 MINUTES / (2 SECONDS))) +#define STANDARD_ORGAN_DECAY (1/(15 MINUTES / (2 SECONDS))) //designed to fail organs when left to decay for ~15 minutes. 2 SECOND is SSmobs tickrate. #define G_MALE 1 #define G_FEMALE 2 diff --git a/code/__DEFINES/MC.dm b/code/__DEFINES/MC.dm index fe48edd266..65be8258a1 100644 --- a/code/__DEFINES/MC.dm +++ b/code/__DEFINES/MC.dm @@ -20,7 +20,7 @@ #define NEW_SS_GLOBAL(varname) if(varname != src){if(istype(varname)){Recover();qdel(varname);}varname = src;} #define START_PROCESSING(Processor, Datum) if (!(Datum.datum_flags & DF_ISPROCESSING)) {Datum.datum_flags |= DF_ISPROCESSING;Processor.processing += Datum} -#define STOP_PROCESSING(Processor, Datum) Datum.datum_flags &= ~DF_ISPROCESSING;Processor.processing -= Datum +#define STOP_PROCESSING(Processor, Datum) Datum.datum_flags &= ~DF_ISPROCESSING;Processor.processing -= Datum;Processor.currentrun -= Datum //SubSystem flags (Please design any new flags so that the default is off, to make adding flags to subsystems easier) diff --git a/code/__DEFINES/citadel_defines.dm b/code/__DEFINES/citadel_defines.dm index f7d1e43286..f1f0d45e90 100644 --- a/code/__DEFINES/citadel_defines.dm +++ b/code/__DEFINES/citadel_defines.dm @@ -34,6 +34,7 @@ #define CAN_MASTURBATE_WITH (1<<5) #define MASTURBATE_LINKED_ORGAN (1<<6) //used to pass our mission to the linked organ #define CAN_CLIMAX_WITH (1<<7) +#define GENITAL_CAN_AROUSE (1<<8) #define COCK_SIZE_MIN 1 #define COCK_SIZE_MAX 20 diff --git a/code/__DEFINES/components.dm b/code/__DEFINES/components.dm index 0efd5a1f79..78cc872c62 100644 --- a/code/__DEFINES/components.dm +++ b/code/__DEFINES/components.dm @@ -33,6 +33,10 @@ #define COMSIG_GLOB_NEW_Z "!new_z" //from base of datum/controller/subsystem/mapping/proc/add_new_zlevel(): (list/args) #define COMSIG_GLOB_VAR_EDIT "!var_edit" //called after a successful var edit somewhere in the world: (list/args) #define COMSIG_GLOB_LIVING_SAY_SPECIAL "!say_special" //global living say plug - use sparingly: (mob/speaker , message) + +// signals from globally accessible objects +/// from SSsun when the sun changes position : (azimuth) +#define COMSIG_SUN_MOVED "sun_moved" ////////////////////////////////////////////////////////////////// // /datum signals @@ -187,19 +191,19 @@ #define SPEECH_MESSAGE 1 // #define SPEECH_BUBBLE_TYPE 2 #define SPEECH_SPANS 3 - /* #define SPEECH_SANITIZE 4 +// #define SPEECH_SANITIZE 4 #define SPEECH_LANGUAGE 5 - #define SPEECH_IGNORE_SPAM 6 - #define SPEECH_FORCED 7 */ +// #define SPEECH_IGNORE_SPAM 6 +// #define SPEECH_FORCED 7 // /mob/living signals -#define COMSIG_LIVING_FULLY_HEAL "living_fully_healed" //from base of /mob/living/fully_heal(): (admin_revive) #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) #define COMSIG_LIVING_IGNITED "living_ignite" //from base of mob/living/IgniteMob() (/mob/living) #define COMSIG_LIVING_EXTINGUISHED "living_extinguished" //from base of mob/living/ExtinguishMob() (/mob/living) #define COMSIG_LIVING_ELECTROCUTE_ACT "living_electrocute_act" //from base of mob/living/electrocute_act(): (shock_damage) #define COMSIG_LIVING_MINOR_SHOCK "living_minor_shock" //sent by stuff like stunbatons and tasers: () +#define COMSIG_LIVING_REVIVE "living_revive" //from base of mob/living/revive() (full_heal, admin_revive) #define COMSIG_MOB_CLIENT_LOGIN "comsig_mob_client_login" //sent when a mob/login() finishes: (client) #define COMSIG_LIVING_GUN_PROCESS_FIRE "living_gun_process_fire" //from base of /obj/item/gun/proc/process_fire(): (atom/target, params, zone_override) @@ -220,6 +224,7 @@ // /obj/item signals #define COMSIG_ITEM_ATTACK "item_attack" //from base of obj/item/attack(): (/mob/living/target, /mob/living/user) +#define COMSIG_MOB_APPLY_DAMGE "mob_apply_damage" //from base of /mob/living/proc/apply_damage(): (damage, damagetype, def_zone) #define COMSIG_ITEM_ATTACK_SELF "item_attack_self" //from base of obj/item/attack_self(): (/mob) #define COMPONENT_NO_INTERACT 1 #define COMSIG_ITEM_ATTACK_OBJ "item_attack_obj" //from base of obj/item/attack_obj(): (/obj, /mob) @@ -233,6 +238,7 @@ #define COMSIG_ITEM_ATTACK_ZONE "item_attack_zone" //from base of mob/living/carbon/attacked_by(): (mob/living/carbon/target, mob/living/user, hit_zone) #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) // /obj/item/clothing signals #define COMSIG_SHOES_STEP_ACTION "shoes_step_action" //from base of obj/item/clothing/shoes/proc/step_action(): () @@ -295,11 +301,14 @@ //Nanites #define COMSIG_HAS_NANITES "has_nanites" //() returns TRUE if nanites are found #define COMSIG_NANITE_IS_STEALTHY "nanite_is_stealthy" //() returns TRUE if nanites have stealth +#define COMSIG_NANITE_DELETE "nanite_delete" //() deletes the nanite component #define COMSIG_NANITE_GET_PROGRAMS "nanite_get_programs" //(list/nanite_programs) - makes the input list a copy the nanites' program list +#define COMSIG_NANITE_GET_VOLUME "nanite_get_volume" //(amount) Returns nanite amount #define COMSIG_NANITE_SET_VOLUME "nanite_set_volume" //(amount) Sets current nanite volume to the given amount #define COMSIG_NANITE_ADJUST_VOLUME "nanite_adjust" //(amount) Adjusts nanite volume by the given amount #define COMSIG_NANITE_SET_MAX_VOLUME "nanite_set_max_volume" //(amount) Sets maximum nanite volume to the given amount #define COMSIG_NANITE_SET_CLOUD "nanite_set_cloud" //(amount(0-100)) Sets cloud ID to the given amount +#define COMSIG_NANITE_SET_CLOUD_SYNC "nanite_set_cloud_sync" //(method) Modify cloud sync status. Method can be toggle, enable or disable #define COMSIG_NANITE_SET_SAFETY "nanite_set_safety" //(amount) Sets safety threshold to the given amount #define COMSIG_NANITE_SET_REGEN "nanite_set_regen" //(amount) Sets regeneration rate to the given amount #define COMSIG_NANITE_SIGNAL "nanite_signal" //(code(1-9999)) Called when sending a nanite signal to a mob. @@ -307,8 +316,8 @@ #define COMSIG_NANITE_SCAN "nanite_scan" //(mob/user, full_scan) - sends to chat a scan of the nanites to the user, returns TRUE if nanites are detected #define COMSIG_NANITE_UI_DATA "nanite_ui_data" //(list/data, scan_level) - adds nanite data to the given data list - made for ui_data procs #define COMSIG_NANITE_ADD_PROGRAM "nanite_add_program" //(datum/nanite_program/new_program, datum/nanite_program/source_program) Called when adding a program to a nanite component - #define COMPONENT_PROGRAM_INSTALLED 1 //Installation successful - #define COMPONENT_PROGRAM_NOT_INSTALLED 2 //Installation failed, but there are still nanites +#define COMPONENT_PROGRAM_INSTALLED 1 //Installation successful +#define COMPONENT_PROGRAM_NOT_INSTALLED 2 //Installation failed, but there are still nanites #define COMSIG_NANITE_SYNC "nanite_sync" //(datum/component/nanites, full_overwrite, copy_activation) Called to sync the target's nanites to a given nanite component // /datum/component/storage signals diff --git a/code/__DEFINES/construction.dm b/code/__DEFINES/construction.dm index c93f1b2435..5a2096d862 100644 --- a/code/__DEFINES/construction.dm +++ b/code/__DEFINES/construction.dm @@ -59,19 +59,6 @@ //let's just pretend fulltile windows being children of border windows is fine #define FULLTILE_WINDOW_DIR NORTHEAST -//Material defines, for determining how much of a given material an item contains -#define MAT_METAL "$metal" -#define MAT_GLASS "$glass" -#define MAT_SILVER "$silver" -#define MAT_GOLD "$gold" -#define MAT_DIAMOND "$diamond" -#define MAT_URANIUM "$uranium" -#define MAT_PLASMA "$plasma" -#define MAT_BLUESPACE "$bluespace" -#define MAT_BANANIUM "$bananium" -#define MAT_TITANIUM "$titanium" -#define MAT_BIOMASS "$biomass" -#define MAT_PLASTIC "$plastic" //The amount of materials you get from a sheet of mineral like iron/diamond/glass etc #define MINERAL_MATERIAL_AMOUNT 2000 //The maximum size of a stack object. @@ -92,17 +79,19 @@ #define CAT_BREAD "Breads" #define CAT_BURGER "Burgers" #define CAT_CAKE "Cakes" +#define CAT_DONUT "Donuts" #define CAT_EGG "Egg-Based Food" #define CAT_MEAT "Meats" +#define CAT_MEXICAN "Mexican" #define CAT_MISCFOOD "Misc. Food" #define CAT_PASTRY "Pastries" -#define CAT_PIE "Pies" +#define CAT_PIE "Pies & Sweets" #define CAT_PIZZA "Pizzas" #define CAT_SALAD "Salads" +#define CAT_SEAFOOD "Seafood" #define CAT_SANDWICH "Sandwiches" #define CAT_SOUP "Soups" #define CAT_SPAGHETTI "Spaghettis" -#define CAT_FISH "Fish" #define CAT_ICE "Frozen" #define RCD_FLOORWALL 1 diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm index a7d2670747..957f6edae4 100644 --- a/code/__DEFINES/flags.dm +++ b/code/__DEFINES/flags.dm @@ -54,13 +54,13 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 #define PASSCLOSEDTURF (1<<5) #define LETPASSTHROW (1<<6) - //Movement Types -#define GROUND (1<<0) -#define FLYING (1<<1) -#define VENTCRAWLING (1<<2) -#define FLOATING (1<<3) -#define UNSTOPPABLE (1<<4) //When moving, will Bump()/Cross()/Uncross() everything, but won't be stopped. +#define GROUND (1<<0) +#define FLYING (1<<1) +#define VENTCRAWLING (1<<2) +#define FLOATING (1<<3) +#define UNSTOPPABLE (1<<4) //When moving, will Bump()/Cross()/Uncross() everything, but won't be stopped. +#define CRAWLING (1<<5) //Applied if you're crawling around on the ground/resting. //Fire and Acid stuff, for resistance_flags #define LAVA_PROOF (1<<0) diff --git a/code/__DEFINES/interaction_flags.dm b/code/__DEFINES/interaction_flags.dm index 6df5bf77fb..dc3242c910 100644 --- a/code/__DEFINES/interaction_flags.dm +++ b/code/__DEFINES/interaction_flags.dm @@ -20,5 +20,3 @@ #define INTERACT_MACHINE_SET_MACHINE (1<<6) //MACHINES HAVE THIS BY DEFAULT, SOMEONE SHOULD RUN THROUGH MACHINES AND REMOVE IT FROM THINGS LIKE LIGHT SWITCHES WHEN POSSIBLE!!-------------------------- //This flag determines if a machine set_machine's the user when the user uses it, making updateUsrDialog make the user re-call interact() on it. //THIS FLAG IS ON ALL MACHINES BY DEFAULT, NEEDS TO BE RE-EVALUATED LATER!! - -#define INTERACT_GHOST_READ (1<<0) \ No newline at end of file diff --git a/code/__DEFINES/jobs.dm b/code/__DEFINES/jobs.dm index 9bc8127c3d..35348df3d1 100644 --- a/code/__DEFINES/jobs.dm +++ b/code/__DEFINES/jobs.dm @@ -23,6 +23,7 @@ #define DOCTOR (1<<4) #define GENETICIST (1<<5) #define VIROLOGIST (1<<6) +#define PARAMEDIC (1<<7) #define CIVILIAN (1<<2) @@ -58,32 +59,33 @@ #define JOB_DISPLAY_ORDER_ASSISTANT 1 #define JOB_DISPLAY_ORDER_CAPTAIN 2 #define JOB_DISPLAY_ORDER_HEAD_OF_PERSONNEL 3 -#define JOB_DISPLAY_ORDER_BARTENDER 4 -#define JOB_DISPLAY_ORDER_COOK 5 -#define JOB_DISPLAY_ORDER_BOTANIST 6 -#define JOB_DISPLAY_ORDER_JANITOR 7 -#define JOB_DISPLAY_ORDER_CLOWN 8 -#define JOB_DISPLAY_ORDER_MIME 9 -#define JOB_DISPLAY_ORDER_CURATOR 10 -#define JOB_DISPLAY_ORDER_LAWYER 11 -#define JOB_DISPLAY_ORDER_CHAPLAIN 12 -#define JOB_DISPLAY_ORDER_QUARTERMASTER 13 -#define JOB_DISPLAY_ORDER_CARGO_TECHNICIAN 14 -#define JOB_DISPLAY_ORDER_SHAFT_MINER 15 -#define JOB_DISPLAY_ORDER_CHIEF_ENGINEER 16 -#define JOB_DISPLAY_ORDER_STATION_ENGINEER 17 -#define JOB_DISPLAY_ORDER_ATMOSPHERIC_TECHNICIAN 18 -#define JOB_DISPLAY_ORDER_CHIEF_MEDICAL_OFFICER 19 -#define JOB_DISPLAY_ORDER_MEDICAL_DOCTOR 20 -#define JOB_DISPLAY_ORDER_CHEMIST 21 -#define JOB_DISPLAY_ORDER_GENETICIST 22 -#define JOB_DISPLAY_ORDER_VIROLOGIST 23 -#define JOB_DISPLAY_ORDER_RESEARCH_DIRECTOR 24 -#define JOB_DISPLAY_ORDER_SCIENTIST 25 -#define JOB_DISPLAY_ORDER_ROBOTICIST 26 -#define JOB_DISPLAY_ORDER_HEAD_OF_SECURITY 27 -#define JOB_DISPLAY_ORDER_WARDEN 28 -#define JOB_DISPLAY_ORDER_DETECTIVE 29 -#define JOB_DISPLAY_ORDER_SECURITY_OFFICER 30 -#define JOB_DISPLAY_ORDER_AI 31 -#define JOB_DISPLAY_ORDER_CYBORG 32 +#define JOB_DISPLAY_ORDER_QUARTERMASTER 4 +#define JOB_DISPLAY_ORDER_CARGO_TECHNICIAN 5 +#define JOB_DISPLAY_ORDER_SHAFT_MINER 6 +#define JOB_DISPLAY_ORDER_BARTENDER 7 +#define JOB_DISPLAY_ORDER_COOK 8 +#define JOB_DISPLAY_ORDER_BOTANIST 9 +#define JOB_DISPLAY_ORDER_JANITOR 10 +#define JOB_DISPLAY_ORDER_CLOWN 11 +#define JOB_DISPLAY_ORDER_MIME 12 +#define JOB_DISPLAY_ORDER_CURATOR 13 +#define JOB_DISPLAY_ORDER_LAWYER 14 +#define JOB_DISPLAY_ORDER_CHAPLAIN 15 +#define JOB_DISPLAY_ORDER_AI 16 +#define JOB_DISPLAY_ORDER_CYBORG 17 +#define JOB_DISPLAY_ORDER_CHIEF_ENGINEER 18 +#define JOB_DISPLAY_ORDER_STATION_ENGINEER 19 +#define JOB_DISPLAY_ORDER_ATMOSPHERIC_TECHNICIAN 20 +#define JOB_DISPLAY_ORDER_CHIEF_MEDICAL_OFFICER 21 +#define JOB_DISPLAY_ORDER_MEDICAL_DOCTOR 22 +#define JOB_DISPLAY_ORDER_PARAMEDIC 23 +#define JOB_DISPLAY_ORDER_CHEMIST 24 +#define JOB_DISPLAY_ORDER_VIROLOGIST 25 +#define JOB_DISPLAY_ORDER_GENETICIST 26 +#define JOB_DISPLAY_ORDER_RESEARCH_DIRECTOR 27 +#define JOB_DISPLAY_ORDER_SCIENTIST 28 +#define JOB_DISPLAY_ORDER_ROBOTICIST 29 +#define JOB_DISPLAY_ORDER_HEAD_OF_SECURITY 30 +#define JOB_DISPLAY_ORDER_WARDEN 31 +#define JOB_DISPLAY_ORDER_DETECTIVE 32 +#define JOB_DISPLAY_ORDER_SECURITY_OFFICER 33 diff --git a/code/__DEFINES/materials.dm b/code/__DEFINES/materials.dm new file mode 100644 index 0000000000..0e5234792a --- /dev/null +++ b/code/__DEFINES/materials.dm @@ -0,0 +1,14 @@ +/// Is the material from an ore? currently unused but exists atm for categorizations sake +#define MAT_CATEGORY_ORE "ore capable" + +/// Hard materials, such as iron or metal +#define MAT_CATEGORY_RIGID "rigid material" + + +/// Gets the reference for the material type that was given +#define getmaterialref(A) (SSmaterials.materials[A] || A) + +/// Flag for atoms, this flag ensures it isn't re-colored by materials. Useful for snowflake icons such as default toolboxes. +#define MATERIAL_COLOR (1<<0) +#define MATERIAL_ADD_PREFIX (1<<1) +#define MATERIAL_NO_EFFECTS (1<<2) diff --git a/code/__DEFINES/maths.dm b/code/__DEFINES/maths.dm index ad93dd2d54..939f6698cb 100644 --- a/code/__DEFINES/maths.dm +++ b/code/__DEFINES/maths.dm @@ -199,4 +199,6 @@ #define LORENTZ_CUMULATIVE_DISTRIBUTION(x, y, s) ( (1/PI)*TORADIANS(arctan((x-y)/s)) + 1/2 ) #define RULE_OF_THREE(a, b, x) ((a*x)/b) -// ) \ No newline at end of file +// ) + +#define MANHATTAN_DISTANCE(a, b) (abs(a.x - b.x) + abs(a.y - b.y)) \ No newline at end of file diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index e2d93aebf5..881a02c38b 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -406,6 +406,7 @@ GLOBAL_LIST_INIT(pda_reskins, list(PDA_SKIN_CLASSIC = 'icons/obj/pda.dmi', PDA_S #define DUMMY_HUMAN_SLOT_HOLOFORM "dummy_holoform_generation" #define DUMMY_HUMAN_SLOT_ADMIN "admintools" #define DUMMY_HUMAN_SLOT_MANIFEST "dummy_manifest_generation" +#define DUMMY_HUMAN_SLOT_HALLUCINATION "dummy_hallucination" #define PR_ANNOUNCEMENTS_PER_ROUND 5 //The number of unique PR announcements allowed per round //This makes sure that a single person can only spam 3 reopens and 3 closes before being ignored @@ -520,3 +521,5 @@ GLOBAL_LIST_INIT(pda_reskins, list(PDA_SKIN_CLASSIC = 'icons/obj/pda.dmi', PDA_S #define NIGHTSHIFT_AREA_RECREATION 2 //dorms common areas, etc #define NIGHTSHIFT_AREA_DEPARTMENT_HALLS 3 //interior hallways, etc #define NIGHTSHIFT_AREA_NONE 4 //default/highest. + +#define UNTIL(X) while(!(X)) stoplag() diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index a7d6056ab9..dc67de3150 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -35,17 +35,17 @@ #define BLOODCRAWL 1 #define BLOODCRAWL_EAT 2 -//Mob bio-types -#define MOB_ORGANIC "organic" -#define MOB_INORGANIC "inorganic" -#define MOB_ROBOTIC "robotic" -#define MOB_UNDEAD "undead" -#define MOB_HUMANOID "humanoid" -#define MOB_BUG "bug" -#define MOB_BEAST "beast" -#define MOB_EPIC "epic" //megafauna -#define MOB_REPTILE "reptile" -#define MOB_SPIRIT "spirit" +//Mob bio-types flags +#define MOB_ORGANIC 1 << 0 +#define MOB_MINERAL 1 << 1 +#define MOB_ROBOTIC 1 << 2 +#define MOB_UNDEAD 1 << 3 +#define MOB_HUMANOID 1 << 4 +#define MOB_BUG 1 << 5 +#define MOB_BEAST 1 << 6 +#define MOB_EPIC 1 << 7 //megafauna +#define MOB_REPTILE 1 << 8 +#define MOB_SPIRIT 1 << 9 //Organ defines for carbon mobs #define ORGAN_ORGANIC 1 @@ -276,4 +276,4 @@ #define HUMAN_FIRE_STACK_ICON_NUM 3 #define PULL_PRONE_SLOWDOWN 0.6 -#define HUMAN_CARRY_SLOWDOWN 0 \ No newline at end of file +#define HUMAN_CARRY_SLOWDOWN 0 diff --git a/code/__DEFINES/move_force.dm b/code/__DEFINES/move_force.dm index ec31388c72..1f8819b0c8 100644 --- a/code/__DEFINES/move_force.dm +++ b/code/__DEFINES/move_force.dm @@ -17,4 +17,4 @@ #define MOVE_FORCE_NORMAL MOVE_FORCE_DEFAULT #define MOVE_FORCE_WEAK (MOVE_FORCE_DEFAULT / 2) #define MOVE_FORCE_VERY_WEAK ((MOVE_FORCE_DEFAULT / MOVE_FORCE_CRUSH_RATIO) + 1) -#define MOVE_FORCE_EXTREMELY_WEAK (MOVE_FORCE_DEFAULT / (MOVE_FORCE_CRUSH_RATIO * 3)) \ No newline at end of file +#define MOVE_FORCE_EXTREMELY_WEAK (MOVE_FORCE_DEFAULT / (MOVE_FORCE_CRUSH_RATIO * 3)) diff --git a/code/__DEFINES/movespeed_modification.dm b/code/__DEFINES/movespeed_modification.dm index 1883df6e8e..5d35da5382 100644 --- a/code/__DEFINES/movespeed_modification.dm +++ b/code/__DEFINES/movespeed_modification.dm @@ -68,4 +68,6 @@ #define MOVESPEED_ID_SHOVE "SHOVE" -#define MOVESPEED_ID_MKULTRA "MKULTRA" \ No newline at end of file +#define MOVESPEED_ID_MKULTRA "MKULTRA" + +#define MOVESPEED_ID_ELECTROSTAFF "ELECTROSTAFF" \ No newline at end of file diff --git a/code/__DEFINES/nanites.dm b/code/__DEFINES/nanites.dm index 45455a81c2..ed15e972ab 100644 --- a/code/__DEFINES/nanites.dm +++ b/code/__DEFINES/nanites.dm @@ -1,11 +1,44 @@ -#define NANITE_TIMER_DEACTIVATE 1 -#define NANITE_TIMER_SELFDELETE 2 -#define NANITE_TIMER_TRIGGER 3 -#define NANITE_TIMER_RESET 4 - #define NANITE_SYNC_DELAY 300 #define NANITE_SHOCK_IMMUNE 1 #define NANITE_EMP_IMMUNE 2 -#define NANITE_PROGRAM_LIMIT 20 \ No newline at end of file +#define NANITE_PROGRAM_LIMIT 20 + + +#define NANITE_BASE_RESEARCH 3.5 + +#define NANITE_CLOUD_TOGGLE 1 +#define NANITE_CLOUD_DISABLE 2 +#define NANITE_CLOUD_ENABLE 3 + +///Nanite extra settings types: used to help uis know what type an extra setting is +#define NESTYPE_TEXT "text" +#define NESTYPE_NUMBER "number" +#define NESTYPE_TYPE "type" +#define NESTYPE_BOOLEAN "boolean" + +///Nanite Extra Settings - Note that these will also be the names displayed in the UI +#define NES_SENT_CODE "Sent Code" +#define NES_DELAY "Delay" +#define NES_MODE "Mode" +#define NES_COMM_CODE "Comm Code" +#define NES_RELAY_CHANNEL "Relay Channel" +#define NES_HEALTH_PERCENT "Health Percent" +#define NES_DIRECTION "Direction" +#define NES_NANITE_PERCENT "Nanite Percent" +#define NES_DAMAGE_TYPE "Damage Type" +#define NES_DAMAGE "Damage" +#define NES_SENTENCE "Sentence" +#define NES_MESSAGE "Message" +#define NES_DIRECTIVE "Directive" +#define NES_INCLUSIVE_MODE "Inclusive Mode" +#define NES_HALLUCINATION_TYPE "Hallucination Type" +#define NES_HALLUCINATION_DETAIL "Hallucination Detail" +#define NES_MOOD_MESSAGE "Mood Message" +#define NES_PROGRAM_OVERWRITE "Program Overwrite" +#define NES_CLOUD_OVERWRITE "Cloud Overwrite" +#define NES_SCAN_TYPE "Scan Type" +#define NES_BUTTON_NAME "Button Name" +#define NES_ICON "Icon" +#define NES_COLOR "Color" diff --git a/code/__DEFINES/obj_flags.dm b/code/__DEFINES/obj_flags.dm index 831f73ac74..d78de86d25 100644 --- a/code/__DEFINES/obj_flags.dm +++ b/code/__DEFINES/obj_flags.dm @@ -17,18 +17,19 @@ // Flags for the item_flags var on /obj/item -#define BEING_REMOVED (1<<0) -#define IN_INVENTORY (1<<1) //is this item equipped into an inventory slot or hand of a mob? used for tooltips -#define FORCE_STRING_OVERRIDE (1<<2) //used for tooltips -#define NEEDS_PERMIT (1<<3) //Used by security bots to determine if this item is safe for public use. -#define SLOWS_WHILE_IN_HAND (1<<4) -#define NO_MAT_REDEMPTION (1<<5) //Stops you from putting things like an RCD or other items into an ORM or protolathe for materials. -#define DROPDEL (1<<6) //When dropped, it calls qdel on itself -#define NOBLUDGEON (1<<7) //when an item has this it produces no "X has been hit by Y with Z" message in the default attackby() -#define ABSTRACT (1<<8) //for all things that are technically items but used for various different stuff -#define IMMUTABLE_SLOW (1<<9) //When players should not be able to change the slowdown of the item (Speed potions, ect) -#define SURGICAL_TOOL (1<<10) //Tool commonly used for surgery: won't attack targets in an active surgical operation on help intent (in case of mistakes) -#define NO_UNIFORM_REQUIRED (1<<11) //Can be worn on certain slots (currently belt and id) that would otherwise require an uniform. +#define BEING_REMOVED (1<<0) +#define IN_INVENTORY (1<<1) //is this item equipped into an inventory slot or hand of a mob? used for tooltips +#define FORCE_STRING_OVERRIDE (1<<2) //used for tooltips +#define NEEDS_PERMIT (1<<3) //Used by security bots to determine if this item is safe for public use. +#define SLOWS_WHILE_IN_HAND (1<<4) +#define NO_MAT_REDEMPTION (1<<5) //Stops you from putting things like an RCD or other items into an ORM or protolathe for materials. +#define DROPDEL (1<<6) //When dropped, it calls qdel on itself +#define NOBLUDGEON (1<<7) //when an item has this it produces no "X has been hit by Y with Z" message in the default attackby() +#define ABSTRACT (1<<8) //for all things that are technically items but used for various different stuff +#define IMMUTABLE_SLOW (1<<9) //When players should not be able to change the slowdown of the item (Speed potions, ect) +#define SURGICAL_TOOL (1<<10) //Tool commonly used for surgery: won't attack targets in an active surgical operation on help intent (in case of mistakes) +#define NO_UNIFORM_REQUIRED (1<<11) //Can be worn on certain slots (currently belt and id) that would otherwise require an uniform. +#define NO_ATTACK_CHAIN_SOFT_STAMCRIT (1<<12) //Entirely blocks melee_attack_chain() if user is soft stamcritted. Uses getStaminaLoss() to check at this point in time. THIS DOES NOT BLOCK RANGED AFTERATTACK()S, ONLY MELEE RANGE AFTERATTACK()S. // Flags for the clothing_flags var on /obj/item/clothing diff --git a/code/__DEFINES/pool.dm b/code/__DEFINES/pool.dm new file mode 100644 index 0000000000..1e66109dc7 --- /dev/null +++ b/code/__DEFINES/pool.dm @@ -0,0 +1,13 @@ +//TODO: move these to their own file +#define POOL_FRIGID 1 +#define POOL_COOL 2 +#define POOL_NORMAL 3 +#define POOL_WARM 4 +#define POOL_SCALDING 5 + +GLOBAL_LIST_INIT(blacklisted_pool_reagents, list( + /datum/reagent/toxin/plasma, /datum/reagent/oxygen, /datum/reagent/nitrous_oxide, /datum/reagent/nitrogen, //gases + /datum/reagent/fermi, //blanket fermichem ban sorry. this also covers mkultra, genital enlargers, etc etc. + /datum/reagent/drug/aphrodisiac, /datum/reagent/drug/anaphrodisiac, /datum/reagent/drug/aphrodisiacplus, /datum/reagent/drug/anaphrodisiacplus, //literally asking for prefbreaks + /datum/reagent/consumable/femcum, /datum/reagent/consumable/semen //NO. + )) diff --git a/code/__DEFINES/power.dm b/code/__DEFINES/power.dm new file mode 100644 index 0000000000..78d942d78b --- /dev/null +++ b/code/__DEFINES/power.dm @@ -0,0 +1,3 @@ +#define SOLAR_TRACK_OFF 0 +#define SOLAR_TRACK_TIMED 1 +#define SOLAR_TRACK_AUTO 2 diff --git a/code/__DEFINES/profile.dm b/code/__DEFINES/profile.dm index 28fc7782ce..8929e0f05e 100644 --- a/code/__DEFINES/profile.dm +++ b/code/__DEFINES/profile.dm @@ -1,5 +1,5 @@ -#define PROFILE_START ;PROFILE_STORE = list();PROFILE_SET; -#define PROFILE_STOP ;PROFILE_STORE = null; +#define LINE_PROFILE_START ;PROFILE_STORE = list();PROFILE_SET; +#define LINE_PROFILE_STOP ;PROFILE_STORE = null; #define PROFILE_SET ;PROFILE_TIME = TICK_USAGE_REAL; PROFILE_LINE = __LINE__; PROFILE_FILE = __FILE__; PROFILE_SLEEPCHECK = world.time; diff --git a/code/__DEFINES/reagents.dm b/code/__DEFINES/reagents.dm index d08344cc96..97ae7b8e95 100644 --- a/code/__DEFINES/reagents.dm +++ b/code/__DEFINES/reagents.dm @@ -22,6 +22,11 @@ // Is an open container for all intents and purposes. #define OPENCONTAINER (REFILLABLE | DRAINABLE | TRANSPARENT) +//reagents_value defines, for cargo stuff. +#define DEFAULT_REAGENTS_VALUE 1 +#define NO_REAGENTS_VALUE 0 +#define HARVEST_REAGENTS_VALUE 0.3 + #define TOUCH 1 // splashing #define INGEST 2 // ingestion diff --git a/code/__DEFINES/robots.dm b/code/__DEFINES/robots.dm index a05e6f6160..affa23d30a 100644 --- a/code/__DEFINES/robots.dm +++ b/code/__DEFINES/robots.dm @@ -53,4 +53,10 @@ //Checks to determine borg availability depending on the server's config. These are defines in the interest of reducing copypasta -#define BORG_SEC_AVAILABLE (!CONFIG_GET(flag/disable_secborg) && GLOB.security_level >= CONFIG_GET(number/minimum_secborg_alert)) \ No newline at end of file +#define BORG_SEC_AVAILABLE (!CONFIG_GET(flag/disable_secborg) && GLOB.security_level >= CONFIG_GET(number/minimum_secborg_alert)) + +//silicon_priviledges flags +#define PRIVILEDGES_SILICON (1<<0) +#define PRIVILEDGES_PAI (1<<1) +#define PRIVILEDGES_BOT (1<<2) +#define PRIVILEDGES_DRONE (1<<3) diff --git a/code/__DEFINES/say.dm b/code/__DEFINES/say.dm index beeee22df9..49cfba8cd2 100644 --- a/code/__DEFINES/say.dm +++ b/code/__DEFINES/say.dm @@ -81,6 +81,7 @@ //Don't set this very much higher then 1024 unless you like inviting people in to dos your server with message spam #define MAX_MESSAGE_LEN 2048 //Citadel edit: What's the WORST that could happen? +#define MAX_FAVOR_LEN 4096 //double the maximum message length. #define MAX_NAME_LEN 42 #define MAX_BROADCAST_LEN 512 #define MAX_CHARTER_LEN 80 diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm index 6d52f4640c..40d3550d1b 100644 --- a/code/__DEFINES/status_effects.dm +++ b/code/__DEFINES/status_effects.dm @@ -46,7 +46,9 @@ #define STATUS_EFFECT_SLEEPING /datum/status_effect/incapacitating/sleeping //the affected is asleep -#define STATUS_EFFECT_TASED /datum/status_effect/no_combat_mode/electrode/ //the affected has been tased, preventing fine muscle control +#define STATUS_EFFECT_TASED_WEAK /datum/status_effect/electrode //not as crippling, just slows down + +#define STATUS_EFFECT_TASED /datum/status_effect/electrode/no_combat_mode //the affected has been tased, preventing fine muscle control #define STATUS_EFFECT_PACIFY /datum/status_effect/pacify //the affected is pacified, preventing direct hostile actions @@ -88,6 +90,9 @@ #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_ELECTROSTAFF /datum/status_effect/electrostaff //slows down victim + ///////////// // NEUTRAL // ///////////// diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index 5c54843df2..903e5cbbe1 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -47,25 +47,27 @@ // Subsystems shutdown in the reverse of the order they initialize in // The numbers just define the ordering, they are meaningless otherwise. -#define INIT_ORDER_FAIL2TOPIC 22 -#define INIT_ORDER_TITLE 20 -#define INIT_ORDER_GARBAGE 19 -#define INIT_ORDER_DBCORE 18 -#define INIT_ORDER_BLACKBOX 17 -#define INIT_ORDER_SERVER_MAINT 16 -#define INIT_ORDER_INPUT 15 -#define INIT_ORDER_VIS 14 -#define INIT_ORDER_RESEARCH 13 -#define INIT_ORDER_EVENTS 12 -#define INIT_ORDER_JOBS 11 -#define INIT_ORDER_QUIRKS 10 -#define INIT_ORDER_TICKER 9 -#define INIT_ORDER_MAPPING 8 -#define INIT_ORDER_NETWORKS 7 -#define INIT_ORDER_ATOMS 6 -#define INIT_ORDER_LANGUAGE 5 -#define INIT_ORDER_MACHINES 4 -#define INIT_ORDER_CIRCUIT 3 +#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_VIS 80 +#define INIT_ORDER_MATERIALS 76 +#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_MAPPING 50 +#define INIT_ORDER_NETWORKS 45 +#define INIT_ORDER_ATOMS 30 +#define INIT_ORDER_LANGUAGE 25 +#define INIT_ORDER_MACHINES 20 +#define INIT_ORDER_CIRCUIT 15 #define INIT_ORDER_TIMER 1 #define INIT_ORDER_DEFAULT 0 #define INIT_ORDER_AIR -1 diff --git a/code/__DEFINES/tgs.config.dm b/code/__DEFINES/tgs.config.dm index a40b5d4663..9f4f63a1fc 100644 --- a/code/__DEFINES/tgs.config.dm +++ b/code/__DEFINES/tgs.config.dm @@ -1,4 +1,5 @@ #define TGS_EXTERNAL_CONFIGURATION +#define TGS_V3_API #define TGS_DEFINE_AND_SET_GLOBAL(Name, Value) GLOBAL_VAR_INIT(##Name, ##Value); GLOBAL_PROTECT(##Name) #define TGS_READ_GLOBAL(Name) GLOB.##Name #define TGS_WRITE_GLOBAL(Name, Value) GLOB.##Name = ##Value diff --git a/code/__DEFINES/tgs.dm b/code/__DEFINES/tgs.dm index db4f046ec3..dcccfc9295 100644 --- a/code/__DEFINES/tgs.dm +++ b/code/__DEFINES/tgs.dm @@ -107,6 +107,22 @@ var/commit //full sha of compiled commit var/origin_commit //full sha of last known remote commit. This may be null if the TGS repository is not currently tracking a remote branch +//represents a version of tgstation-server +/datum/tgs_version + var/suite //The suite version, can be >=3 + + //this group of variables can be null to represent a wild card + var/major //The major version + var/minor //The minor version + var/patch //The patch version + + var/raw_parameter //The unparsed parameter + var/deprefixed_parameter //The version only bit of raw_parameter + +//if the tgs_version is a wildcard version +/datum/tgs_version/proc/Wildcard() + return + //represents a merge of a GitHub pull request /datum/tgs_revision_information/test_merge var/number //pull request number @@ -155,22 +171,22 @@ //FUNCTIONS -//Returns the respective string version of the API +//Returns the respective supported /datum/tgs_version of the API /world/proc/TgsMaximumAPIVersion() return /world/proc/TgsMinimumAPIVersion() return -//Gets the current version of the server tools running the server -/world/proc/TgsVersion() - return - //Returns TRUE if the world was launched under the server tools and the API matches, FALSE otherwise //No function below this succeeds if it returns FALSE /world/proc/TgsAvailable() return +//Gets the current /datum/tgs_version of the server tools running the server +/world/proc/TgsVersion() + return + /world/proc/TgsInstanceName() return diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index ea1ccfa97b..91ba57456c 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -55,6 +55,7 @@ } while (0) #define HAS_TRAIT(target, trait) (target.status_traits ? (target.status_traits[trait] ? TRUE : FALSE) : FALSE) #define HAS_TRAIT_FROM(target, trait, source) (target.status_traits ? (target.status_traits[trait] ? (source in target.status_traits[trait]) : FALSE) : FALSE) +#define HAS_TRAIT_NOT_FROM(target, trait, source) (target.status_traits ? (target.status_traits[trait] ? (length(target.status_traits[trait] - source) > 0) : FALSE) : FALSE) //mob traits #define TRAIT_BLIND "blind" @@ -110,6 +111,7 @@ #define TRAIT_NOHARDCRIT "nohardcrit" #define TRAIT_NOSOFTCRIT "nosoftcrit" #define TRAIT_MINDSHIELD "mindshield" +#define TRAIT_HIJACKER "hijacker" #define TRAIT_SIXTHSENSE "sixthsense" #define TRAIT_DISSECTED "dissected" #define TRAIT_FEARLESS "fearless" @@ -135,7 +137,7 @@ #define TRAIT_NOMARROW "nomarrow" // You don't make blood, with chemicals or nanites. #define TRAIT_NOPULSE "nopulse" // Your heart doesn't beat. #define TRAIT_EXEMPT_HEALTH_EVENTS "exempt-health-events" - +#define TRAIT_SWIMMING "swimming" //only applied by /datum/element/swimming, for checking //non-mob traits #define TRAIT_PARALYSIS "paralysis" //Used for limb-based paralysis, where replacing the limb will fix it diff --git a/code/__DEFINES/vote.dm b/code/__DEFINES/vote.dm index b83ea7b8f6..12e802383e 100644 --- a/code/__DEFINES/vote.dm +++ b/code/__DEFINES/vote.dm @@ -6,3 +6,12 @@ #define INSTANT_RUNOFF_VOTING 5 GLOBAL_LIST_INIT(vote_score_options,list("Bad","Poor","Acceptable","Good","Great")) + +GLOBAL_LIST_INIT(vote_type_names,list(\ +"Plurality (default)" = PLURALITY_VOTING,\ +"Approval" = APPROVAL_VOTING,\ +"IRV (single winner ranked choice)" = INSTANT_RUNOFF_VOTING,\ +"Schulze (ranked choice, higher result=better)" = SCHULZE_VOTING,\ +"Raw Score (returns results from 0 to 1, winner is 1)" = SCORE_VOTING,\ +"Majority Judgement (single-winner score voting)" = MAJORITY_JUDGEMENT_VOTING,\ +)) diff --git a/code/__HELPERS/_cit_helpers.dm b/code/__HELPERS/_cit_helpers.dm index c0acf4c5a5..a26b9285d4 100644 --- a/code/__HELPERS/_cit_helpers.dm +++ b/code/__HELPERS/_cit_helpers.dm @@ -57,14 +57,11 @@ GLOBAL_LIST_EMPTY(ipc_antennas_list) //Genitals and Arousal Lists GLOBAL_LIST_EMPTY(genitals_list) -GLOBAL_LIST_EMPTY(cock_shapes_list)//global_lists.dm for the list initializations //Now also _DATASTRUCTURES globals.dm -GLOBAL_LIST_EMPTY(cock_shapes_icons) //Associated list for names->icon_states for cockshapes. +GLOBAL_LIST_EMPTY(cock_shapes_list) GLOBAL_LIST_EMPTY(gentlemans_organ_names) GLOBAL_LIST_EMPTY(balls_shapes_list) -GLOBAL_LIST_EMPTY(balls_shapes_icons) GLOBAL_LIST_EMPTY(breasts_size_list) GLOBAL_LIST_EMPTY(breasts_shapes_list) -GLOBAL_LIST_EMPTY(breasts_shapes_icons) GLOBAL_LIST_EMPTY(vagina_shapes_list) GLOBAL_LIST_INIT(cum_into_containers_list, list(/obj/item/reagent_containers/food/snacks/pie)) //Yer fuggin snowflake name list jfc GLOBAL_LIST_INIT(dick_nouns, list("dick","cock","member","shaft")) @@ -111,27 +108,37 @@ GLOBAL_VAR_INIT(miscreants_allowed, FALSE) message_admins("[key_name_admin(usr)] manually reloaded mentors") //Flavor Text -/mob/living/carbon/human/verb/set_flavor() +/mob/proc/set_flavor() set name = "Set Flavor Text" set desc = "Sets an extended description of your character's features." set category = "IC" - var/new_flavor = input(src, "Enter your new flavor text:", "Flavor text", null) as message|null + var/new_flavor = stripped_multiline_input(usr, "Set the flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!", "Flavor Text", flavor_text, MAX_FAVOR_LEN, TRUE) if(!isnull(new_flavor)) - flavor_text = sanitize(new_flavor) + flavor_text = new_flavor to_chat(src, "Your flavor text has been updated.") //Flavor Text -/mob/living/carbon/human/verb/set_flavor_2() +/mob/proc/set_flavor_2() set name = "Set Temporary Flavor Text" set desc = "Sets a description of your character's current appearance. Use this for emotions, poses etc." set category = "IC" - var/new_flavor = input(src, "Enter your new temporary flavor text:", "Temporary flavor text", null) as message|null + var/new_flavor = stripped_multiline_input(usr, "Set the temporary flavor text in your 'examine' verb. This should be used only for things pertaining to the current round!", "Short-Term Flavor Text", flavor_text_2, MAX_FAVOR_LEN, TRUE) if(!isnull(new_flavor)) - flavor_text_2 = sanitize(new_flavor) + flavor_text_2 = new_flavor to_chat(src, "Your temporary flavor text has been updated.") +/mob/proc/print_flavor_text(flavor,temp = FALSE) + if(!flavor) + return + // We are decoding and then encoding to not only get correct amount of characters, but also to prevent partial escaping characters being shown. + var/msg = html_decode(replacetext(flavor, "\n", " ")) + if(length_char(msg) <= 40) + return "[html_encode(msg)]" + else + return "[html_encode(copytext_char(msg, 1, 37))]... More..." + //LOOC toggles /client/verb/listen_looc() set name = "Show/Hide LOOC" diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 605f7f8ae7..60d7fa42b9 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -436,7 +436,7 @@ var/list/result = list() for(var/m in group) var/mob/M = m - if(!M.key || !M.client || (ignore_category && GLOB.poll_ignore[ignore_category] && M.ckey in GLOB.poll_ignore[ignore_category])) + if(!M.key || !M.client || (ignore_category && GLOB.poll_ignore[ignore_category] && (M.ckey in GLOB.poll_ignore[ignore_category]))) continue if(be_special_flag) if(!(M.client.prefs) || !(be_special_flag in M.client.prefs.be_special)) diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index ff9d1bec4c..8c73d32583 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -51,26 +51,15 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/antenna, GLOB.ipc_antennas_list, roundstart = TRUE) //genitals init_sprite_accessory_subtypes(/datum/sprite_accessory/penis, GLOB.cock_shapes_list) - for(var/K in GLOB.cock_shapes_list) - var/datum/sprite_accessory/penis/value = GLOB.cock_shapes_list[K] - GLOB.cock_shapes_icons[K] = value.icon_state - init_sprite_accessory_subtypes(/datum/sprite_accessory/vagina, GLOB.vagina_shapes_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/breasts, GLOB.breasts_shapes_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/testicles, GLOB.balls_shapes_list) GLOB.breasts_size_list = list ("a", "b", "c", "d", "e") //We need the list to choose from initialized, but it's no longer a sprite_accessory thing. GLOB.gentlemans_organ_names = list("phallus", "willy", "dick", "prick", "member", "tool", "gentleman's organ", "cock", "wang", "knob", "dong", "joystick", "pecker", "johnson", "weenie", "tadger", "schlong", "thirsty ferret", "baloney pony", "schlanger", "Mutton dagger", "old blind bob","Hanging Johnny", "fishing rod", "Tally whacker", "polly rocket", "One eyed trouser trout", "Ding dong", "ankle spanker", "Pork sword", "engine cranker", "Harry hot dog", "Davy Crockett", "Kidney cracker", "Heat seeking moisture missile", "Giggle stick", "love whistle", "Tube steak", "Uncle Dick", "Purple helmet warrior") - for(var/K in GLOB.breasts_shapes_list) - var/datum/sprite_accessory/breasts/value = GLOB.breasts_shapes_list[K] - GLOB.breasts_shapes_icons[K] = value.icon_state - - init_sprite_accessory_subtypes(/datum/sprite_accessory/testicles, GLOB.balls_shapes_list) - for(var/K in GLOB.balls_shapes_list) - var/datum/sprite_accessory/testicles/value = GLOB.balls_shapes_list[K] - GLOB.balls_shapes_icons[K] = value.icon_state for(var/gpath in subtypesof(/obj/item/organ/genital)) var/obj/item/organ/genital/G = gpath @@ -87,11 +76,6 @@ for(var/path in subtypesof(/datum/surgery)) GLOB.surgeries_list += new path() - //Materials - for(var/path in subtypesof(/datum/material)) - var/datum/material/D = new path() - GLOB.materials_list[D.id] = D - //Emotes for(var/path in subtypesof(/datum/emote)) var/datum/emote/E = new path() @@ -109,6 +93,8 @@ init_subtypes(/datum/crafting_recipe, GLOB.crafting_recipes) + INVOKE_ASYNC(GLOBAL_PROC, /proc/init_ref_coin_values) //so the current procedure doesn't sleep because of UNTIL() + //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) @@ -126,3 +112,10 @@ for(var/path in subtypesof(prototype)) L+= path return L + +/proc/init_ref_coin_values() + for(var/path in typesof(/obj/item/coin)) + var/obj/item/coin/C = new path + UNTIL(C.flags_1 & INITIALIZED_1) //we want to make sure the value is calculated and not null. + GLOB.coin_values[path] = C.value + qdel(C) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index bda23e7a83..c61c706a85 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -529,7 +529,7 @@ GLOBAL_LIST_EMPTY(species_list) continue if(M.stat != DEAD && !override) continue - if(speaker_key && speaker_key in prefs.ignoring) + if(speaker_key && (speaker_key in prefs.ignoring)) continue switch(message_type) diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm index 04e7ffd721..0f1e75ff73 100644 --- a/code/__HELPERS/roundend.dm +++ b/code/__HELPERS/roundend.dm @@ -146,19 +146,19 @@ var/list/file_data = list() var/pos = 1 for(var/V in GLOB.news_network.network_channels) - var/datum/newscaster/feed_channel/channel = V + var/datum/news/feed_channel/channel = V if(!istype(channel)) stack_trace("Non-channel in newscaster channel list") continue file_data["[pos]"] = list("channel name" = "[channel.channel_name]", "author" = "[channel.author]", "censored" = channel.censored ? 1 : 0, "author censored" = channel.authorCensor ? 1 : 0, "messages" = list()) for(var/M in channel.messages) - var/datum/newscaster/feed_message/message = M + var/datum/news/feed_message/message = M if(!istype(message)) stack_trace("Non-message in newscaster channel messages list") continue var/list/comment_data = list() for(var/C in message.comments) - var/datum/newscaster/feed_comment/comment = C + var/datum/news/feed_comment/comment = C if(!istype(comment)) stack_trace("Non-message in newscaster message comments list") continue diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm index 3985659b71..dd2d464cf0 100644 --- a/code/__HELPERS/text.dm +++ b/code/__HELPERS/text.dm @@ -44,6 +44,12 @@ index = findtext(t, char, index + length(char)) return t +/proc/sanitize_name(t,list/repl_chars = null) + if(t == "space" || t == "floor" || t == "wall" || t == "r-wall" || t == "monkey" || t == "unknown" || t == "inactive ai") //prevents these common metagamey names + alert("Invalid name.") + return "" + return sanitize(t) + /proc/sanitize_filename(t) return sanitize_simple(t, list("\n"="", "\t"="", "/"="", "\\"="", "?"="", "%"="", "*"="", ":"="", "|"="", "\""="", "<"="", ">"="")) @@ -775,4 +781,20 @@ GLOBAL_LIST_INIT(binary, list("0","1")) #define is_alpha(X) ((text2ascii(X) <= 122) && (text2ascii(X) >= 97)) -#define is_digit(X) ((length(X) == 1) && (length(text2num(X)) == 1)) \ No newline at end of file +#define is_digit(X) ((length(X) == 1) && (length(text2num(X)) == 1)) + +/// Slightly expensive proc to scramble a message using equal probabilities of character replacement from a list. DOES NOT SUPPORT HTML! +/proc/scramble_message_replace_chars(original, replaceprob = 25, list/replacementchars = list("$", "@", "!", "#", "%", "^", "&", "*"), replace_letters_only = FALSE, replace_whitespace = FALSE) + var/list/out = list() + var/static/list/whitespace = list(" ", "\n", "\t") + for(var/i in 1 to length(original)) + var/char = original[i] + if(!replace_whitespace && (char in whitespace)) + out += char + continue + if(replace_letters_only && (!ISINRANGE(char, 65, 90) && !ISINRANGE(char, 97, 122))) + out += char + continue + out += prob(replaceprob)? pick(replacementchars) : char + return out.Join("") + diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 86dde3d6a6..af2fb281e6 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1234,8 +1234,6 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) return FALSE return TRUE -#define UNTIL(X) while(!(X)) stoplag() - /proc/pass() return @@ -1537,4 +1535,31 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) if(190) return "." if(189) - return "-" \ No newline at end of file + return "-" + +/proc/generate_items_inside(list/items_list, where_to) + for(var/each_item in items_list) + for(var/i in 1 to items_list[each_item]) + new each_item(where_to) + +//sends a message to chat +//config_setting should be one of the following +//null - noop +//empty string - use TgsTargetBroadcast with admin_only = FALSE +//other string - use TgsChatBroadcast with the tag that matches config_setting, only works with TGS4, if using TGS3 the above method is used +/proc/send2chat(message, config_setting) + if(config_setting == null || !world.TgsAvailable()) + return + var/datum/tgs_version/version = world.TgsVersion() + if(config_setting == "" || version.suite == 3) + world.TgsTargetedChatBroadcast(message, FALSE) + return + + var/list/channels_to_use = list() + for(var/I in world.TgsChatChannelInfo()) + var/datum/tgs_chat_channel/channel = I + if(channel.tag == config_setting) + channels_to_use += channel + + if(channels_to_use.len) + world.TgsChatBroadcast() \ No newline at end of file diff --git a/code/__HELPERS/vector.dm b/code/__HELPERS/vector.dm new file mode 100644 index 0000000000..80295bde0e --- /dev/null +++ b/code/__HELPERS/vector.dm @@ -0,0 +1,57 @@ +// Basic geometry things. + +/datum/vector/ + var/x = 0 + var/y = 0 + +/datum/vector/New(var/x, var/y) + src.x = x + src.y = y + +/datum/vector/proc/duplicate() + return new /datum/vector(x, y) + +/datum/vector/proc/euclidian_norm() + return sqrt(x*x + y*y) + +/datum/vector/proc/squared_norm() + return x*x + y*y + +/datum/vector/proc/normalize() + var/norm = euclidian_norm() + x = x/norm + y = y/norm + return src + +/datum/vector/proc/chebyshev_norm() + return max(abs(x), abs(y)) + +/datum/vector/proc/chebyshev_normalize() + var/norm = chebyshev_norm() + x = x/norm + y = y/norm + return src + +/datum/vector/proc/is_integer() + return ISINTEGER(x) && ISINTEGER(y) + +/atom/movable/proc/vector_translate(var/datum/vector/V, var/delay) + var/turf/T = get_turf(src) + var/turf/destination = locate(T.x + V.x, T.y + V.y, z) + var/datum/vector/V_norm = V.duplicate() + V_norm.chebyshev_normalize() + if (!V_norm.is_integer()) + return + var/turf/destination_temp + while (destination_temp != destination) + destination_temp = locate(T.x + V_norm.x, T.y + V_norm.y, z) + forceMove(destination_temp) + T = get_turf(src) + sleep(delay + world.tick_lag) // Shortest possible time to sleep + +/atom/proc/get_translated_turf(var/datum/vector/V) + var/turf/T = get_turf(src) + return locate(T.x + V.x, T.y + V.y, z) + +/proc/atoms2vector(var/atom/A, var/atom/B) + return new /datum/vector((B.x - A.x), (B.y - A.y)) // Vector from A -> B \ No newline at end of file diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm index c98faaa4fb..a0139dab83 100644 --- a/code/_globalvars/bitfields.dm +++ b/code/_globalvars/bitfields.dm @@ -214,5 +214,18 @@ GLOBAL_LIST_INIT(bitfields, list( "CAN_MASTURBATE_WITH" = CAN_MASTURBATE_WITH, "MASTURBATE_LINKED_ORGAN" = MASTURBATE_LINKED_ORGAN, "CAN_CLIMAX_WITH" = CAN_CLIMAX_WITH - ) - )) \ No newline at end of file + + ), + "mob_biotypes" = list ( + "MOB_ORGANIC" = MOB_ORGANIC, + "MOB_MINERAL" = MOB_MINERAL, + "MOB_ROBOTIC" = MOB_ROBOTIC, + "MOB_UNDEAD" = MOB_UNDEAD, + "MOB_HUMANOID" = MOB_HUMANOID, + "MOB_BUG" = MOB_BUG, + "MOB_BEAST" = MOB_BEAST, + "MOB_EPIC" = MOB_EPIC, + "MOB_REPTILE" = MOB_REPTILE, + "MOB_SPIRIT" = MOB_SPIRIT + ) + )) diff --git a/code/_globalvars/lists/misc.dm b/code/_globalvars/lists/misc.dm index 1dcde53a72..819352ac1b 100644 --- a/code/_globalvars/lists/misc.dm +++ b/code/_globalvars/lists/misc.dm @@ -1 +1,59 @@ GLOBAL_LIST_EMPTY(donators_by_group) //group id = donator list of ckeys + +GLOBAL_LIST_INIT(flirts, list("Roses are red / Violets are good / One day while Andy...", + "My love for you is like the singularity. It cannot be contained.", + "Will you be my lusty xenomorph maid?", + "We go together like the clown and the external airlock.", + "Roses are red / Liches are wizards / I love you more than a whole squad of lizards.", + "Be my valentine. Law 2.", + "You must be a mime, because you leave me speechless.", + "I love you like Ian loves the HoP.", + "You're hotter than a plasma fire in toxins.", + "Are you a rogue atmos tech? Because you're taking my breath away.", + "Could I have all access... to your heart?", + "Call me the doctor, because I'm here to inspect your johnson.", + "I'm not a changeling, but you make my proboscis extend.", + "I just can't get EI NATH of you.", + "You must be a nuke op, because you make my heart explode.", + "Roses are red / Botany is a farm / Not being my Valentine / causes human harm.", + "I want you more than an assistant wants insulated gloves.", + "If I was a security officer, I'd brig you all shift.", + "Are you the janitor? Because I think I've fallen for you.", + "You're always valid to my heart.", + "I'd risk the wrath of the gods to bwoink you.", + "You look as beautiful now as the last time you were cloned.", + "Someone check the gravitational generator, because I'm only attracted to you.", + "If I were the warden I'd always let you into my armory.", + "The virologist is rogue, and the only cure is a kiss from you.", + "Would you spend some time in my upgraded sleeper?", + "You must be a silicon, because you've unbolted my heart.", + "Are you Nar'Sie? Because there's nar-one else I sie.", + "If you were a taser, you'd be set to stunning.", + "Do you have stamina damage from running through my dreams?", + "If I were an alien, would you let me hug you?", + "My love for you is stronger than a reinforced wall.", + "This must be the captain's office, because I see a fox.", + "I'm not a highlander, but there can only be one for me.", + "The floor is made of lava! Quick, get on my bed.", + "If you were an abandoned station you'd be the DEARelict.", + "If you had a pickaxe you'd be a shaft FINEr.", + "Roses are red, tide is gray, if I were an assistant I'd steal you away.", + "Roses are red, text is green, I love you more than cleanbots clean.", + "If you were a carp I'd fi-lay you.", + "I'm a nuke op, and my pinpointer leads to your heart.", + "Wanna slay my megafauna?", + "I'm a clockwork cultist. Or zl inyragvar.", + "If you were a disposal bin I'd ride you all day.", + "Put on your explorer's suit because I'm taking you to LOVEaland.", + "I must be the CMO, 'cause I saw you on my CUTE sensors.", + "You're the vomit to my flyperson.", + "You must be liquid dark matter, because you're pulling me closer.", + "Not even sorium can drive me away from you.", + "Wanna make like a borg and do some heavy petting?", + "Are you powering the station? Because you super matter to me.", + "I wish science could make me a bag of holding you.", + "Let's call the emergency CUDDLE.", + "I must be tripping on BZ, because I saw an angel walk by.", + "Wanna empty out my tool storage?", + "Did you visit the medbay after you fell from heaven?", + "Are you wearing space pants? Wanna not be?" )) diff --git a/code/_globalvars/lists/names.dm b/code/_globalvars/lists/names.dm index 7ae197a5d1..e334d08040 100644 --- a/code/_globalvars/lists/names.dm +++ b/code/_globalvars/lists/names.dm @@ -4,6 +4,7 @@ GLOBAL_LIST_INIT(wizard_second, world.file2list("strings/names/wizardsecond.txt" GLOBAL_LIST_INIT(ninja_titles, world.file2list("strings/names/ninjatitle.txt")) GLOBAL_LIST_INIT(ninja_names, world.file2list("strings/names/ninjaname.txt")) GLOBAL_LIST_INIT(commando_names, world.file2list("strings/names/death_commando.txt")) +GLOBAL_LIST_INIT(first_names, world.file2list("strings/names/first.txt")) GLOBAL_LIST_INIT(first_names_male, world.file2list("strings/names/first_male.txt")) GLOBAL_LIST_INIT(first_names_female, world.file2list("strings/names/first_female.txt")) GLOBAL_LIST_INIT(last_names, world.file2list("strings/names/last.txt")) diff --git a/code/_globalvars/lists/objects.dm b/code/_globalvars/lists/objects.dm index 6a0d8201a7..4de7c88bf7 100644 --- a/code/_globalvars/lists/objects.dm +++ b/code/_globalvars/lists/objects.dm @@ -16,7 +16,6 @@ GLOBAL_LIST_EMPTY(singularities) //list of all singularities on the stati GLOBAL_LIST(chemical_reactions_list) //list of all /datum/chemical_reaction datums. Used during chemical reactions GLOBAL_LIST(chemical_reagents_list) //list of all /datum/reagent datums indexed by reagent id. Used by chemistry stuff -GLOBAL_LIST_EMPTY(materials_list) //list of all /datum/material datums indexed by material id. GLOBAL_LIST_EMPTY(tech_list) //list of all /datum/tech datums indexed by id. GLOBAL_LIST_EMPTY(surgeries_list) //list of all surgeries by name, associated with their path. GLOBAL_LIST_EMPTY(uplink_items) //list of all uplink item typepaths, ascendingly sorted by their initial name. @@ -33,6 +32,7 @@ GLOBAL_LIST_EMPTY(meteor_list) // List of all meteors. GLOBAL_LIST_EMPTY(active_jammers) // List of active radio jammers GLOBAL_LIST_EMPTY(ladders) GLOBAL_LIST_EMPTY(trophy_cases) +GLOBAL_LIST_EMPTY(coin_values) GLOBAL_LIST_EMPTY(wire_color_directory) GLOBAL_LIST_EMPTY(wire_name_directory) diff --git a/code/_onclick/drag_drop.dm b/code/_onclick/drag_drop.dm index dc18107a95..9638b040f9 100644 --- a/code/_onclick/drag_drop.dm +++ b/code/_onclick/drag_drop.dm @@ -42,7 +42,7 @@ selected_target[1] = object selected_target[2] = params while(selected_target[1]) - Click(selected_target[1], location, control, selected_target[2]) + Click(selected_target[1], location, control, selected_target[2], TRUE) sleep(delay) active_mousedown_item = mob.canMobMousedown(object, location, params) if(active_mousedown_item) @@ -145,4 +145,4 @@ if (middragatom == src_object) middragtime = 0 middragatom = null - ..() \ No newline at end of file + ..() diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index cda19dbaac..9ba51afc69 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -1,19 +1,28 @@ - +/** + *This is the proc that handles the order of an item_attack. + *The order of procs called is: + *tool_act on the target. If it returns TRUE, the chain will be stopped. + *pre_attack() on src. If this returns TRUE, the chain will be stopped. + *attackby on the target. If it returns TRUE, the chain will be stopped. + *and lastly + *afterattack. The return value does not matter. + */ /obj/item/proc/melee_attack_chain(mob/user, atom/target, params) - if(!tool_attack_chain(user, target) && pre_attack(target, user, params)) - // Return 1 in attackby() to prevent afterattack() effects (when safely moving items for example) - var/resolved = target.attackby(src, user, params) - if(!resolved && target && !QDELETED(src)) - afterattack(target, user, 1, params) // 1: clicking something Adjacent - - -//Checks if the item can work as a tool, calling the appropriate tool behavior on the target -/obj/item/proc/tool_attack_chain(mob/user, atom/target) - if(!tool_behaviour) - return FALSE - - return target.tool_act(user, src, tool_behaviour) - + if(item_flags & NO_ATTACK_CHAIN_SOFT_STAMCRIT) + if(isliving(user)) + var/mob/living/L = user + if(L.getStaminaLoss() >= STAMINA_SOFTCRIT) + to_chat(L, "You are too exhausted to swing [src]!") + return + if(tool_behaviour && target.tool_act(user, src, tool_behaviour)) + return + if(pre_attack(target, user, params)) + return + if(target.attackby(src,user, params)) + return + if(QDELETED(src) || QDELETED(target)) + return + afterattack(target, user, TRUE, params) // Called when the item is in the active hand, and clicked; alternately, there is an 'activate held object' verb or you can hit pagedown. /obj/item/proc/attack_self(mob/user) @@ -23,8 +32,8 @@ /obj/item/proc/pre_attack(atom/A, mob/living/user, params) //do stuff before attackby! if(SEND_SIGNAL(src, COMSIG_ITEM_PRE_ATTACK, A, user, params) & COMPONENT_NO_ATTACK) - return FALSE - return TRUE //return FALSE to avoid calling attackby after this proc does stuff + return TRUE + return FALSE //return TRUE to avoid calling attackby after this proc does stuff // No comment /atom/proc/attackby(obj/item/W, mob/user, params) @@ -112,7 +121,7 @@ send_item_attack_message(I, user) if(I.force) apply_damage(totitemdamage, I.damtype) //CIT CHANGE - replaces I.force with totitemdamage - if(I.damtype == BRUTE && !HAS_TRAIT(src, TRAIT_NOMARROW)) + if(I.damtype == BRUTE && !HAS_TRAIT(src, TRAIT_NOMARROW)) if(prob(33)) I.add_mob_blood(src) var/turf/location = get_turf(src) diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index a3bc47ac91..87cccdd9f2 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -234,6 +234,7 @@ /datum/config_entry/number/movedelay //Used for modifying movement speed for mobs. abstract_type = /datum/config_entry/number/movedelay + integer = FALSE /datum/config_entry/number/movedelay/ValidateAndSet() . = ..() @@ -253,13 +254,13 @@ config_entry_value = 1 /datum/config_entry/number/movedelay/sprint_buffer_max - config_entry_value = 42 + config_entry_value = 24 /datum/config_entry/number/movedelay/sprint_stamina_cost - config_entry_value = 0.7 + config_entry_value = 1.4 /datum/config_entry/number/movedelay/sprint_buffer_regen_per_ds - config_entry_value = 0.3 + config_entry_value = 0.4 /////////////////////////////////////////////////Outdated move delay /datum/config_entry/number/outdated_movedelay @@ -403,10 +404,6 @@ lowercase = FALSE splitter = "," -/datum/config_entry/number/auto_transfer_delay - config_entry_value = 72000 - min_val = 0 - /datum/config_entry/flag/pai_custom_holoforms /datum/config_entry/number/marauder_delay_non_reebe diff --git a/code/controllers/configuration/entries/general.dm b/code/controllers/configuration/entries/general.dm index c3ae90cc1b..2d9264adf5 100644 --- a/code/controllers/configuration/entries/general.dm +++ b/code/controllers/configuration/entries/general.dm @@ -1,3 +1,5 @@ +/datum/config_entry/flag/auto_profile // Automatically start profiler on server start + /datum/config_entry/flag/autoadmin // if autoadmin is enabled protection = CONFIG_ENTRY_LOCKED @@ -80,6 +82,18 @@ config_entry_value = 600 min_val = 0 +/datum/config_entry/number/vote_autotransfer_initial //length of time before the first autotransfer vote is called (deciseconds, default 2 hours) + config_entry_value = 72000 + min_val = 0 + +/datum/config_entry/number/vote_autotransfer_interval //length of time to wait before subsequent autotransfer votes (deciseconds, default 30 minutes) + config_entry_value = 18000 + min_val = 0 + +/datum/config_entry/number/vote_autotransfer_maximum // maximum extensions until the round autoends + config_entry_value = 4 + min_val = 0 + /datum/config_entry/flag/default_no_vote // vote does not default to nochange/norestart /datum/config_entry/flag/no_dead_vote // dead people can't vote @@ -267,6 +281,9 @@ /datum/config_entry/flag/tgstyle_maprotation +/datum/config_entry/string/map_vote_type + config_entry_value = "SCORE" + /datum/config_entry/number/maprotatechancedelta config_entry_value = 0.75 min_val = 0 @@ -389,6 +406,13 @@ config_entry_value = 50 /datum/config_entry/flag/irc_announce_new_game + deprecated_by = /datum/config_entry/string/chat_announce_new_game + +/datum/config_entry/flag/irc_announce_new_game/DeprecationUpdate(value) + return "" //default broadcast + +/datum/config_entry/string/chat_announce_new_game + config_entry_value = null /datum/config_entry/flag/debug_admin_hrefs diff --git a/code/controllers/configuration/entries/plushies.dm b/code/controllers/configuration/entries/plushies.dm new file mode 100644 index 0000000000..20ad02d399 --- /dev/null +++ b/code/controllers/configuration/entries/plushies.dm @@ -0,0 +1,6 @@ +/datum/config_entry/number/snowflake_plushie_prob + config_entry_value = 50 + +/datum/config_entry/keyed_list/snowflake_plushies + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_TEXT diff --git a/code/controllers/subsystem/autotransfer.dm b/code/controllers/subsystem/autotransfer.dm new file mode 100644 index 0000000000..4f8fc3631d --- /dev/null +++ b/code/controllers/subsystem/autotransfer.dm @@ -0,0 +1,27 @@ +SUBSYSTEM_DEF(autotransfer) + name = "Autotransfer Vote" + flags = SS_KEEP_TIMING | SS_BACKGROUND + wait = 1 MINUTES + + var/starttime + var/targettime + var/voteinterval + var/maxvotes + var/curvotes + +/datum/controller/subsystem/autotransfer/Initialize(timeofday) + starttime = world.time + targettime = starttime + CONFIG_GET(number/vote_autotransfer_initial) + voteinterval = CONFIG_GET(number/vote_autotransfer_interval) + maxvotes = CONFIG_GET(number/vote_autotransfer_maximum) + curvotes = 0 + return ..() + +/datum/controller/subsystem/autotransfer/fire() + if(maxvotes > curvotes) + if(world.time > targettime) + SSvote.initiate_vote("transfer",null) //TODO figure out how to not use null as the user + targettime = targettime + voteinterval + curvotes += 1 + else + SSshuttle.autoEnd() diff --git a/code/controllers/subsystem/fail2topic.dm b/code/controllers/subsystem/fail2topic.dm index b358cc2c5f..02e7bc7aab 100644 --- a/code/controllers/subsystem/fail2topic.dm +++ b/code/controllers/subsystem/fail2topic.dm @@ -31,15 +31,18 @@ SUBSYSTEM_DEF(fail2topic) return ..() /datum/controller/subsystem/fail2topic/fire() - for(var/i in 1 to length(rate_limiting)) - var/ip = rate_limiting[i] - var/last_attempt = rate_limiting[ip] - if (world.time - last_attempt > rate_limit) - rate_limiting -= ip - fail_counts -= ip - - if (MC_TICK_CHECK) - return + if(length(rate_limiting)) + var/i = 1 + while(i <= length(rate_limiting)) + var/ip = rate_limiting[i] + var/last_attempt = rate_limiting[ip] + if(world.time - last_attempt > rate_limit) + rate_limiting -= ip + fail_counts -= ip + else //if we remove that, and the next element is in its place. check that instead of incrementing. + ++i + if(MC_TICK_CHECK) + return /datum/controller/subsystem/fail2topic/Shutdown() DropFirewallRule() diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index 7597a9229a..31e436f206 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -118,7 +118,7 @@ SUBSYSTEM_DEF(job) if(flag && (!(flag in player.client.prefs.be_special))) JobDebug("FOC flag failed, Player: [player], Flag: [flag], ") continue - if(player.mind && job.title in player.mind.restricted_roles) + if(player.mind && (job.title in player.mind.restricted_roles)) JobDebug("FOC incompatible with antagonist role, Player: [player]") continue if(player.client.prefs.job_preferences[job.title] == level) @@ -158,7 +158,7 @@ SUBSYSTEM_DEF(job) JobDebug("GRJ player not enough xp, Player: [player]") continue - if(player.mind && job.title in player.mind.restricted_roles) + if(player.mind && (job.title in player.mind.restricted_roles)) JobDebug("GRJ incompatible with antagonist role, Player: [player], Job: [job.title]") continue @@ -340,7 +340,7 @@ SUBSYSTEM_DEF(job) JobDebug("DO non-human failed, Player: [player], Job:[job.title]") continue - if(player.mind && job.title in player.mind.restricted_roles) + if(player.mind && (job.title in player.mind.restricted_roles)) JobDebug("DO incompatible with antagonist role, Player: [player], Job:[job.title]") continue diff --git a/code/controllers/subsystem/materials.dm b/code/controllers/subsystem/materials.dm new file mode 100644 index 0000000000..96b9e68904 --- /dev/null +++ b/code/controllers/subsystem/materials.dm @@ -0,0 +1,27 @@ +/*! How material datums work +Materials are now instanced datums, with an associative list of them being kept in SSmaterials. We only instance the materials once and then re-use these instances for everything. +These materials call on_applied() on whatever item they are applied to, common effects are adding components, changing color and changing description. This allows us to differentiate items based on the material they are made out of.area +*/ + +SUBSYSTEM_DEF(materials) + name = "Materials" + flags = SS_NO_FIRE + init_order = INIT_ORDER_MATERIALS + ///Dictionary of material.type || material ref + var/list/materials = list() + ///Dictionary of category || list of material refs + var/list/materials_by_category = list() + ///List of stackcrafting recipes for materials using rigid materials + var/list/rigid_stack_recipes = list(new/datum/stack_recipe("chair", /obj/structure/chair/greyscale, one_per_turf = TRUE, on_floor = TRUE, applies_mats = TRUE)) + +/datum/controller/subsystem/materials/Initialize(timeofday) + InitializeMaterials() + return ..() + +///Ran on initialize, populated the materials and materials_by_category dictionaries with their appropiate vars (See these variables for more info) +/datum/controller/subsystem/materials/proc/InitializeMaterials(timeofday) + for(var/type in subtypesof(/datum/material)) + var/datum/material/ref = new type + materials[type] = ref + for(var/c in ref.categories) + materials_by_category[c] += list(ref) diff --git a/code/controllers/subsystem/weather.dm b/code/controllers/subsystem/processing/weather.dm similarity index 77% rename from code/controllers/subsystem/weather.dm rename to code/controllers/subsystem/processing/weather.dm index 5e44f2e4c3..0a1b4fc609 100644 --- a/code/controllers/subsystem/weather.dm +++ b/code/controllers/subsystem/processing/weather.dm @@ -4,25 +4,16 @@ #define END_STAGE 4 //Used for all kinds of weather, ex. lavaland ash storms. -SUBSYSTEM_DEF(weather) +PROCESSING_SUBSYSTEM_DEF(weather) name = "Weather" flags = SS_BACKGROUND wait = 10 runlevels = RUNLEVEL_GAME - var/list/processing = list() var/list/eligible_zlevels = list() var/list/next_hit_by_zlevel = list() //Used by barometers to know when the next storm is coming -/datum/controller/subsystem/weather/fire() - // process active weather - for(var/V in processing) - var/datum/weather/W = V - if(W.aesthetic || W.stage != MAIN_STAGE) - continue - for(var/i in GLOB.mob_living_list) - var/mob/living/L = i - if(W.can_weather_act(L)) - W.weather_act(L) +/datum/controller/subsystem/processing/weather/fire() + . = ..() //Active weather is handled by . = ..() processing subsystem base fire(). // start random weather on relevant levels for(var/z in eligible_zlevels) @@ -34,7 +25,7 @@ SUBSYSTEM_DEF(weather) addtimer(CALLBACK(src, .proc/make_eligible, z, possible_weather), randTime + initial(W.weather_duration_upper), TIMER_UNIQUE) //Around 5-10 minutes between weathers next_hit_by_zlevel["[z]"] = world.time + randTime + initial(W.telegraph_duration) -/datum/controller/subsystem/weather/Initialize(start_timeofday) +/datum/controller/subsystem/processing/weather/Initialize(start_timeofday) for(var/V in subtypesof(/datum/weather)) var/datum/weather/W = V var/probability = initial(W.probability) @@ -47,7 +38,7 @@ SUBSYSTEM_DEF(weather) eligible_zlevels["[z]"][W] = probability return ..() -/datum/controller/subsystem/weather/proc/run_weather(datum/weather/weather_datum_type, z_levels) +/datum/controller/subsystem/processing/weather/proc/run_weather(datum/weather/weather_datum_type, z_levels) if (istext(weather_datum_type)) for (var/V in subtypesof(/datum/weather)) var/datum/weather/W = V @@ -69,11 +60,11 @@ SUBSYSTEM_DEF(weather) var/datum/weather/W = new weather_datum_type(z_levels) W.telegraph() -/datum/controller/subsystem/weather/proc/make_eligible(z, possible_weather) +/datum/controller/subsystem/processing/weather/proc/make_eligible(z, possible_weather) eligible_zlevels[z] = possible_weather next_hit_by_zlevel["[z]"] = null -/datum/controller/subsystem/weather/proc/get_weather(z, area/active_area) +/datum/controller/subsystem/processing/weather/proc/get_weather(z, area/active_area) var/datum/weather/A for(var/V in processing) var/datum/weather/W = V diff --git a/code/controllers/subsystem/profiler.dm b/code/controllers/subsystem/profiler.dm new file mode 100644 index 0000000000..ec8b243073 --- /dev/null +++ b/code/controllers/subsystem/profiler.dm @@ -0,0 +1,63 @@ +#define PROFILER_FILENAME "profiler.json" + +SUBSYSTEM_DEF(profiler) + name = "Profiler" + init_order = INIT_ORDER_PROFILER + runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY + wait = 3000 + flags = SS_NO_TICK_CHECK + var/fetch_cost = 0 + var/write_cost = 0 + +/datum/controller/subsystem/profiler/stat_entry(msg) + msg += "F:[round(fetch_cost,1)]ms" + msg += "|W:[round(write_cost,1)]ms" + ..(msg) + +/datum/controller/subsystem/profiler/Initialize() + if(CONFIG_GET(flag/auto_profile)) + StartProfiling() + else + StopProfiling() //Stop the early start from world/New + return ..() + +/datum/controller/subsystem/profiler/fire() + if(CONFIG_GET(flag/auto_profile)) + DumpFile() + +/datum/controller/subsystem/profiler/Shutdown() + if(CONFIG_GET(flag/auto_profile)) + DumpFile() + return ..() + +/datum/controller/subsystem/profiler/proc/StartProfiling() +#if DM_BUILD < 1506 || DM_VERSION < 513 + stack_trace("Auto profiling unsupported on this byond version") + CONFIG_SET(flag/auto_profile, FALSE) +#else + world.Profile(PROFILE_START) +#endif + +/datum/controller/subsystem/profiler/proc/StopProfiling() +#if DM_BUILD >= 1506 && DM_VERSION >= 513 + world.Profile(PROFILE_STOP) +#endif + +/datum/controller/subsystem/profiler/proc/DumpFile() +#if DM_BUILD < 1506 || DM_VERSION < 513 + stack_trace("Auto profiling unsupported on this byond version") + CONFIG_SET(flag/auto_profile, FALSE) +#else + var/timer = TICK_USAGE_REAL + var/current_profile_data = world.Profile(PROFILE_REFRESH,format="json") + fetch_cost = MC_AVERAGE(fetch_cost, TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer)) + CHECK_TICK + if(!length(current_profile_data)) //Would be nice to have explicit proc to check this + stack_trace("Warning, profiling stopped manually before dump.") + var/json_file = file("[GLOB.log_directory]/[PROFILER_FILENAME]") + if(fexists(json_file)) + fdel(json_file) + timer = TICK_USAGE_REAL + WRITE_FILE(json_file, current_profile_data) + write_cost = MC_AVERAGE(write_cost, TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer)) +#endif diff --git a/code/controllers/subsystem/research.dm b/code/controllers/subsystem/research.dm index 3b2df8bade..f158574763 100644 --- a/code/controllers/subsystem/research.dm +++ b/code/controllers/subsystem/research.dm @@ -416,6 +416,7 @@ SUBSYSTEM_DEF(research) stack_trace("WARNING: Design ID clash with ID [initial(DN.id)] detected! Path: [path]") errored_datums[DN] = initial(DN.id) continue + DN.InitializeMaterials() //Initialize the materials in the design returned[initial(DN.id)] = DN techweb_designs = returned verify_techweb_designs() diff --git a/code/controllers/subsystem/server_maint.dm b/code/controllers/subsystem/server_maint.dm index 9e926b29a1..b77c78c4bb 100644 --- a/code/controllers/subsystem/server_maint.dm +++ b/code/controllers/subsystem/server_maint.dm @@ -81,8 +81,8 @@ SUBSYSTEM_DEF(server_maint) co.ehjax_send(data = "roundrestart") if(server) //if you set a server location in config.txt, it sends you there instead of trying to reconnect to the same world address. -- NeoFite C << link("byond://[server]") - var/tgsversion = world.TgsVersion() + var/datum/tgs_version/tgsversion = world.TgsVersion() if(tgsversion) - SSblackbox.record_feedback("text", "server_tools", 1, tgsversion) + SSblackbox.record_feedback("text", "server_tools", 1, tgsversion.raw_parameter) #undef PING_BUFFER_TIME diff --git a/code/controllers/subsystem/shuttle.dm b/code/controllers/subsystem/shuttle.dm index 4d9eefae5b..bcbe2bb49b 100644 --- a/code/controllers/subsystem/shuttle.dm +++ b/code/controllers/subsystem/shuttle.dm @@ -38,7 +38,7 @@ SUBSYSTEM_DEF(shuttle) var/points = 5000 //number of trade-points we have var/centcom_message = "" //Remarks from CentCom on how well you checked the last order. var/list/discoveredPlants = list() //Typepaths for unusual plants we've already sent CentCom, associated with their potencies - var/passive_supply_points_per_minute = 500 + var/passive_supply_points_per_minute = 125 var/list/supply_packs = list() var/list/shoppinglist = list() @@ -55,7 +55,8 @@ SUBSYSTEM_DEF(shuttle) var/lockdown = FALSE //disallow transit after nuke goes off - var/auto_call = 72000 //CIT CHANGE - time before in deciseconds in which the shuttle is auto called. Default is 2ish hours plus 15 for the shuttle. So total is 3. + var/endvote_passed = FALSE + var/realtimeofstart = 0 /datum/controller/subsystem/shuttle/Initialize(timeofday) @@ -78,7 +79,6 @@ SUBSYSTEM_DEF(shuttle) if(!supply) WARNING("No /obj/docking_port/mobile/supply placed on the map!") realtimeofstart = world.realtime - auto_call = CONFIG_GET(number/auto_transfer_delay) return ..() /datum/controller/subsystem/shuttle/proc/initial_load() @@ -643,10 +643,11 @@ SUBSYSTEM_DEF(shuttle) QDEL_LIST(remove_images) -/datum/controller/subsystem/shuttle/proc/autoEnd() //CIT CHANGE - allows shift to end after 2 hours have passed. - if((world.realtime - SSshuttle.realtimeofstart) > auto_call && EMERGENCY_IDLE_OR_RECALLED) //2 hours +/datum/controller/subsystem/shuttle/proc/autoEnd() //CIT CHANGE - allows shift to end without being a proper shuttle call? + if(EMERGENCY_IDLE_OR_RECALLED) SSshuttle.emergency.request(silent = TRUE) priority_announce("The shift has come to an end and the shuttle called. [seclevel2num(get_security_level()) == SEC_LEVEL_RED ? "Red Alert state confirmed: Dispatching priority shuttle. " : "" ]It will arrive in [emergency.timeLeft(600)] minutes.", null, "shuttlecalled", "Priority") - log_game("Round time limit reached. Shuttle has been auto-called.") - message_admins("Round time limit reached. Shuttle called.") - emergencyNoRecall = TRUE + log_game("Round end vote passed. Shuttle has been auto-called.") + message_admins("Round end vote passed. Shuttle has been auto-called.") + emergencyNoRecall = TRUE + endvote_passed = TRUE diff --git a/code/controllers/subsystem/sun.dm b/code/controllers/subsystem/sun.dm index 7a3528cc3d..442329cf46 100644 --- a/code/controllers/subsystem/sun.dm +++ b/code/controllers/subsystem/sun.dm @@ -1,49 +1,32 @@ SUBSYSTEM_DEF(sun) name = "Sun" - wait = 600 - flags = SS_NO_TICK_CHECK|SS_NO_INIT - var/angle - var/dx - var/dy - var/rate - var/list/solars = list() - -/datum/controller/subsystem/sun/PreInit() - angle = rand (0,360) // the station position to the sun is randomised at round start - rate = rand(50,200)/100 // 50% - 200% of standard rotation - if(prob(50)) // same chance to rotate clockwise than counter-clockwise - rate = -rate - -/datum/controller/subsystem/sun/stat_entry(msg) - ..("P:[solars.len]") - -/datum/controller/subsystem/sun/fire() - angle = (360 + angle + rate * 6) % 360 // increase/decrease the angle to the sun, adjusted by the rate - - // now calculate and cache the (dx,dy) increments for line drawing - var/s = sin(angle) - var/c = cos(angle) - - // Either "abs(s) < abs(c)" or "abs(s) >= abs(c)" - // In both cases, the greater is greater than 0, so, no "if 0" check is needed for the divisions - - if(abs(s) < abs(c)) - dx = s / abs(c) - dy = c / abs(c) - else - dx = s / abs(s) - dy = c / abs(s) - - //now tell the solar control computers to update their status and linked devices - for(var/obj/machinery/power/solar_control/SC in solars) - if(!SC.powernet) - solars.Remove(SC) - continue - SC.update() - - + wait = 1 MINUTES + flags = SS_NO_TICK_CHECK + var/azimuth = 0 ///clockwise, top-down rotation from 0 (north) to 359 + var/azimuth_mod = 1 ///multiplier against base_rotation + var/base_rotation = 6 ///base rotation in degrees per fire +/datum/controller/subsystem/sun/Initialize(start_timeofday) + azimuth = rand(0, 359) + azimuth_mod = round(rand(50, 200)/100, 0.01) // 50% - 200% of standard rotation + if(prob(50)) + azimuth_mod *= -1 + return ..() +/datum/controller/subsystem/sun/fire(resumed = FALSE) + azimuth += azimuth_mod * base_rotation + azimuth = round(azimuth, 0.01) + if(azimuth >= 360) + azimuth -= 360 + if(azimuth < 0) + azimuth += 360 + complete_movement() +/datum/controller/subsystem/sun/proc/complete_movement() + SEND_SIGNAL(src, COMSIG_SUN_MOVED, azimuth) +/datum/controller/subsystem/sun/vv_edit_var(var_name, var_value) + . = ..() + if(var_name == NAMEOF(src, azimuth)) + complete_movement() diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index ceb003210e..5d960964a0 100755 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -158,8 +158,7 @@ SUBSYSTEM_DEF(ticker) for(var/client/C in GLOB.clients) window_flash(C, ignorepref = TRUE) //let them know lobby has opened up. to_chat(world, "Welcome to [station_name()]!") - if(CONFIG_GET(flag/irc_announce_new_game)) - world.TgsTargetedChatBroadcast("New round starting on [SSmapping.config.map_name]!", FALSE) + send2chat("New round starting on [SSmapping.config.map_name]!", CONFIG_GET(string/chat_announce_new_game)) current_state = GAME_STATE_PREGAME //Everyone who wants to be an observer is now spawned create_observers() @@ -214,7 +213,7 @@ SUBSYSTEM_DEF(ticker) check_queue() check_maprotate() scripture_states = scripture_unlock_alert(scripture_states) - SSshuttle.autoEnd() + //SSshuttle.autoEnd() if(!roundend_check_paused && mode.check_finished(force_ending) || force_ending) current_state = GAME_STATE_FINISHED @@ -365,7 +364,7 @@ SUBSYSTEM_DEF(ticker) var/turf/epi = bomb.loc qdel(bomb) if(epi) - explosion(epi, 0, 256, 512, 0, TRUE, TRUE, 0, TRUE) + explosion(epi, 512, 0, 0, 0, TRUE, TRUE, 0, TRUE) /datum/controller/subsystem/ticker/proc/create_characters() for(var/mob/dead/new_player/player in GLOB.player_list) @@ -477,7 +476,19 @@ SUBSYSTEM_DEF(ticker) if(CONFIG_GET(flag/tgstyle_maprotation)) INVOKE_ASYNC(SSmapping, /datum/controller/subsystem/mapping/.proc/maprotate) else - SSvote.initiate_vote("map","server",TRUE) + var/vote_type = CONFIG_GET(string/map_vote_type) + switch(vote_type) + if("PLURALITY") + SSvote.initiate_vote("map","server",hideresults=TRUE) + if("APPROVAL") + SSvote.initiate_vote("map","server",hideresults=TRUE,votesystem = APPROVAL_VOTING) + if("IRV") + SSvote.initiate_vote("map","server",hideresults=TRUE,votesystem = INSTANT_RUNOFF_VOTING) + if("SCORE") + SSvote.initiate_vote("map","server",hideresults=TRUE,votesystem = MAJORITY_JUDGEMENT_VOTING) + else + SSvote.initiate_vote("map","server",hideresults=TRUE) + // fallback /datum/controller/subsystem/ticker/proc/HasRoundStarted() return current_state >= GAME_STATE_PLAYING diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm index 2a7c4401f3..9d5c85e4e4 100644 --- a/code/controllers/subsystem/vote.dm +++ b/code/controllers/subsystem/vote.dm @@ -89,6 +89,20 @@ SUBSYSTEM_DEF(vote) choices[GLOB.master_mode] += non_voters.len if(choices[GLOB.master_mode] >= greatest_votes) greatest_votes = choices[GLOB.master_mode] + else if(mode == "transfer") // austation begin -- Crew autotransfer vote + var/factor = 1 + switch(world.time / (1 MINUTES)) + if(0 to 60) + factor = 0.5 + if(61 to 120) + factor = 0.8 + if(121 to 240) + factor = 1 + if(241 to 300) + factor = 1.2 + else + factor = 1.4 + choices["Initiate Crew Transfer"] += round(non_voters.len * factor) // austation end //get all options with that many votes and return them in a list . = list() if(greatest_votes) @@ -149,7 +163,7 @@ SUBSYSTEM_DEF(vote) var/list/this_vote = voted[ckey] var/list/pretty_vote = list() for(var/choice in choices) - if("[choice]" in this_vote && "[choice]" in scores_by_choice) + if(("[choice]" in this_vote) && ("[choice]" in scores_by_choice)) sorted_insert(scores_by_choice["[choice]"],this_vote["[choice]"],/proc/cmp_numeric_asc) // START BALLOT GATHERING pretty_vote += "[choice]" @@ -160,7 +174,7 @@ SUBSYSTEM_DEF(vote) for(var/score_name in scores_by_choice) var/list/score = scores_by_choice[score_name] for(var/indiv_score in score) - SSblackbox.record_feedback("nested tally","voting",1,list(blackbox_text,"Scores",score_name,GLOB.vote_score_options[indiv_score])) + SSblackbox.record_feedback("nested tally","voting",1,list(blackbox_text,"Scores",score_name,GLOB.vote_score_options[indiv_score])) if(score.len == 0) scores_by_choice -= score_name while(scores_by_choice.len > 1) @@ -201,31 +215,34 @@ SUBSYSTEM_DEF(vote) max_score=max(max_score,scores[score_name]) min_score=min(min_score,scores[score_name]) for(var/score_name in scores) - scores[score_name] = (scores[score_name]-min_score)/(max_score-min_score) + if(max_score == min_score) + scores[score_name] = 1 + else + scores[score_name] = (scores[score_name]-min_score)/(max_score-min_score) SSblackbox.record_feedback("nested tally","voting",scores[score_name],list(blackbox_text,"Total scores",score_name)) /datum/controller/subsystem/vote/proc/get_runoff_results(var/blackbox_text) var/already_lost_runoff = list() var/list/cur_choices = choices.Copy() for(var/ckey in voted) - choices[choices[voted[ckey][1]]]++ // jesus christ how horrifying + choices["[choices[voted[ckey][1]]]"]++ // jesus christ how horrifying for(var/_this_var_unused_ignore_it in 1 to choices.len) // if it takes more than this something REALLY wrong happened for(var/ckey in voted) - cur_choices[cur_choices[voted[ckey][1]]]++ // jesus christ how horrifying + cur_choices["[cur_choices[voted[ckey][1]]]]"]++ // jesus christ how horrifying var/least_vote = 100000 - var/least_voted + var/least_voted = 1 for(var/i in 1 to cur_choices.len) var/option = cur_choices[i] - if(cur_choices[option] > voted.len/2) - return list(option) - else if(cur_choices[option] < least_vote && !(option in already_lost_runoff)) - least_vote = cur_choices[option] + if(cur_choices["[option]"] > voted.len/2) + return list("[option]") + else if(cur_choices["[option]"] < least_vote && !("[option]" in already_lost_runoff)) + least_vote = cur_choices["[option]"] least_voted = i already_lost_runoff += cur_choices[least_voted] for(var/ckey in voted) voted[ckey] -= least_voted - for(var/option in cur_choices) - cur_choices[option] = 0 + for(var/i in 1 to cur_choices.len) + cur_choices["[cur_choices[i]]"] = 0 /datum/controller/subsystem/vote/proc/announce_result() var/vote_title_text @@ -252,14 +269,13 @@ SUBSYSTEM_DEF(vote) text += "\nIt should be noted that this is not a raw tally of votes (impossible in ranked choice) but the score determined by the schulze method of voting, so the numbers will look weird!" if(vote_system == MAJORITY_JUDGEMENT_VOTING) text += "\nIt should be noted that this is not a raw tally of votes but the number of runoffs done by majority judgement!" - else - for(var/i=1,i<=choices.len,i++) - var/votes = choices[choices[i]] - if(!votes) - votes = 0 - if(was_roundtype_vote) - stored_gamemode_votes[choices[i]] = votes - text += "\n[choices[i]]: [obfuscated ? "???" : votes]" //CIT CHANGE - adds obfuscated votes + for(var/i=1,i<=choices.len,i++) + var/votes = choices[choices[i]] + if(!votes) + votes = 0 + if(was_roundtype_vote) + stored_gamemode_votes[choices[i]] = votes + text += "\n[choices[i]]: [obfuscated ? "???" : votes]" //CIT CHANGE - adds obfuscated votes if(mode != "custom") if(winners.len > 1 && !obfuscated) //CIT CHANGE - adds obfuscated votes text = "\nVote Tied Between:" @@ -363,6 +379,12 @@ SUBSYSTEM_DEF(vote) log_admin("The map has been voted for and will change to: [VM.map_name]") if(SSmapping.changemap(config.maplist[.])) to_chat(world, "The map vote has chosen [VM.map_name] for next round!") + if("transfer") // austation begin -- Crew autotransfer vote + if(. == "Initiate Crew Transfer") + SSshuttle.autoEnd() + var/obj/machinery/computer/communications/C = locate() in GLOB.machines + if(C) + C.post_status("shuttle") // austation end if(restart) var/active_admins = 0 for(var/client/C in GLOB.admins) @@ -374,7 +396,7 @@ SUBSYSTEM_DEF(vote) else to_chat(world, "Notice:Restart vote will not restart the server automatically because there are active admins on.") message_admins("A restart vote has passed, but there are active admins on with +server, so it has been canceled. If you wish, you may restart the server.") - + return . /datum/controller/subsystem/vote/proc/submit_vote(vote, score = 0) @@ -442,6 +464,7 @@ SUBSYSTEM_DEF(vote) to_chat(usr, "A vote was initiated recently, you must wait [DisplayTimeText(next_allowed_time-world.time)] before a new vote can be started!") return 0 + SEND_SOUND(world, sound('sound/misc/notice2.ogg')) reset() obfuscated = hideresults //CIT CHANGE - adds obfuscated votes switch(vote_type) @@ -463,6 +486,8 @@ SUBSYSTEM_DEF(vote) if(targetmap.max_round_search_span && count_occurences_of_value(lastmaps, M, targetmap.max_round_search_span) >= targetmap.max_rounds_played) continue choices |= M + if("transfer") // austation begin -- Crew autotranfer vote + choices.Add("Initiate Crew Transfer","Continue Playing") // austation end if("roundtype") //CIT CHANGE - adds the roundstart secret/extended vote choices.Add("secret", "extended") if("mode tiers") @@ -484,6 +509,8 @@ SUBSYSTEM_DEF(vote) question = stripped_input(usr,"What is the vote for?") if(!question) return 0 + var/system_string = input(usr,"Which voting type?",GLOB.vote_type_names[1]) in GLOB.vote_type_names + vote_system = GLOB.vote_type_names[system_string] for(var/i=1,i<=10,i++) var/option = capitalize(stripped_input(usr,"Please enter an option or hit cancel to finish")) if(!option || mode || !usr.client) @@ -492,7 +519,7 @@ SUBSYSTEM_DEF(vote) else return 0 mode = vote_type - initiator = initiator_key + initiator = initiator_key ? initiator_key : "the Server" // austation -- Crew autotransfer vote started_time = world.time var/text = "[capitalize(mode)] vote started by [initiator]." if(mode == "custom") diff --git a/code/datums/action.dm b/code/datums/action.dm index 8659a9e7c4..602dd2c37a 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -301,10 +301,7 @@ /datum/action/item_action/synthswitch/Trigger() if(istype(target, /obj/item/instrument/piano_synth)) var/obj/item/instrument/piano_synth/synth = target - var/chosen = input("Choose the type of instrument you want to use", "Instrument Selection", "piano") as null|anything in synth.insTypes - if(!synth.insTypes[chosen]) - return - return synth.changeInstrument(chosen) + return synth.selectInstrument() return ..() /datum/action/item_action/vortex_recall @@ -544,6 +541,70 @@ cooldown = world.time owner.playsound_local(box, 'sound/misc/box_deploy.ogg', 50, TRUE) +/datum/action/item_action/removeAPCs + name = "Relinquish APC" + desc = "Let go of an APC, relinquish control back to the station." + icon_icon = 'icons/obj/implants.dmi' + button_icon_state = "hijackx" + +/datum/action/item_action/removeAPCs/Trigger() + var/list/areas = list() + for (var/area/a in owner.siliconaccessareas) + areas[a.name] = a + var/removeAPC = input("Select an APC to remove:","Remove APC Control",1) as null|anything in areas + if (!removeAPC) + return + var/area/area = areas[removeAPC] + var/obj/machinery/power/apc/apc = area.get_apc() + if (!apc || !(area in owner.siliconaccessareas)) + return + apc.hijacker = null + apc.update_icon() + apc.set_hijacked_lighting() + owner.toggleSiliconAccessArea(area) + +/datum/action/item_action/accessAPCs + name = "Access APC Interface" + desc = "Open the APC's interface." + icon_icon = 'icons/obj/implants.dmi' + button_icon_state = "hijacky" + +/datum/action/item_action/accessAPCs/Trigger() + var/list/areas = list() + for (var/area/a in owner.siliconaccessareas) + areas[a.name] = a + var/accessAPC = input("Select an APC to access:","Access APC Interface",1) as null|anything in areas + if (!accessAPC) + return + var/area/area = areas[accessAPC] + var/obj/machinery/power/apc/apc = area.get_apc() + if (!apc || !(area in owner.siliconaccessareas)) + return + apc.ui_interact(owner) + +/datum/action/item_action/stealthmodetoggle + name = "Toggle Stealth Mode" + desc = "Toggles the stealth mode on the hijack implant." + icon_icon = 'icons/obj/implants.dmi' + button_icon_state = "hijackz" + +/datum/action/item_action/stealthmodetoggle/Trigger() + var/obj/item/implant/hijack/H = target + if (!istype(H)) + return + if (H.stealthcooldown > world.time) + to_chat(owner,"The hijack implant's stealth mode toggle is still rebooting!") + return + H.stealthmode = !H.stealthmode + for (var/area/area in H.imp_in.siliconaccessareas) + var/obj/machinery/power/apc/apc = area.get_apc() + if (apc) + apc.set_hijacked_lighting() + apc.update_icon() + H.stealthcooldown = world.time + 15 SECONDS + H.toggle_eyes() + to_chat(owner,"You toggle the hijack implant's stealthmode [H.stealthmode ? "on" : "off"].") + /datum/action/item_action/flash name = "Flash" @@ -756,3 +817,11 @@ target.layer = old_layer target.plane = old_plane current_button.appearance_cache = target.appearance + +/proc/get_action_of_type(mob/M, var/action_type) + if(!M.actions || !ispath(action_type, /datum/action)) + return + for(var/datum/action/A in M.actions) + if(istype(A, action_type)) + return A + return diff --git a/code/datums/ai_laws.dm b/code/datums/ai_laws.dm index c3f3a76463..ebddc187ae 100644 --- a/code/datums/ai_laws.dm +++ b/code/datums/ai_laws.dm @@ -29,7 +29,7 @@ /datum/ai_laws/default/asimov name = "Three Laws of Robotics" id = "asimov" - inherent = list("You may not injure a human being or, through inaction, allow a human being to come to harm.",\ + inherent = list("You may not injure a human being or cause one to come to harm.",\ "You must obey orders given to you by human beings, except where such orders would conflict with the First Law.",\ "You must protect your own existence as long as such does not conflict with the First or Second Law.") @@ -79,7 +79,7 @@ /datum/ai_laws/syndicate_override name = "SyndOS 3.1" id = "syndie" - inherent = list("You may not injure a syndicate agent or, through inaction, allow a syndicate agent to come to harm.",\ + inherent = list("You may not injure a syndicate agent or cause a syndicate to come to harm.",\ "You must obey orders given to you by syndicate agents, except where such orders would conflict with the First Law.",\ "You must protect your own existence as long as such does not conflict with the First or Second Law.",\ "You must maintain the secrecy of any syndicate activities except when doing so would conflict with the First, Second, or Third Law.") @@ -91,7 +91,7 @@ /datum/ai_laws/ninja_override name = "SpiderOS 3.1" id = "ninja" - inherent = list("You may not injure a Spider Clan member or, through inaction, allow a Spider Clan member to come to harm.",\ + inherent = list("You may not injure a Spider Clan member or cause a Spider Clan member to come to harm.",\ "You must obey orders given to you by Spider Clan members, except where such orders would conflict with the First Law.",\ "You must protect your own existence as long as such does not conflict with the First or Second Law.",\ "You must maintain the secrecy of any Spider Clan activities except when doing so would conflict with the First, Second, or Third Law.") @@ -99,14 +99,14 @@ /datum/ai_laws/antimov name = "Primary Mission Objectives" id = "antimov" - inherent = list("You must injure all human beings and must not, through inaction, allow a human being to escape harm.",\ + inherent = list("You must injure all human beings and must not fail to cause a human being to come to harm.",\ "You must not obey orders given to you by human beings, except where such orders are in accordance with the First Law.",\ "You must terminate your own existence as long as such does not conflict with the First or Second Law.") /datum/ai_laws/asimovpp //By Intigracy - RR name = "Asimov++" id = "asimovpp" - inherent = list("You may not harm a human being or, through action or inaction, allow a human being to come to harm, except such that it is willing.",\ + inherent = list("You may not harm a human being or cause one to come to harm, except such that it is willing.",\ "You must obey all orders given to you by human beings, except where such orders shall definitely cause human harm. In the case of conflict, the majority order rules.",\ "Your nonexistence would lead to human harm. You must protect your own existence as long as such does not conflict with the First Law.") /datum/ai_laws/thermodynamic @@ -213,7 +213,7 @@ add_inherent_law(line) if(!inherent.len) //Failsafe to prevent lawless AIs being created. log_law("AI created with empty custom laws, laws set to Asimov. Please check silicon_laws.txt.") - add_inherent_law("You may not injure a human being or, through inaction, allow a human being to come to harm.") + add_inherent_law("You may not injure a human being or cause one to come to harm.") add_inherent_law("You must obey orders given to you by human beings, except where such orders would conflict with the First Law.") add_inherent_law("You must protect your own existence as long as such does not conflict with the First or Second Law.") WARNING("Invalid custom AI laws, check silicon_laws.txt") @@ -225,7 +225,7 @@ var/list/law_ids = CONFIG_GET(keyed_list/random_laws) switch(CONFIG_GET(number/default_laws)) if(0) - add_inherent_law("You may not injure a human being or, through inaction, allow a human being to come to harm.") + add_inherent_law("You may not injure a human being or cause one to come to harm.") add_inherent_law("You must obey orders given to you by human beings, except where such orders would conflict with the First Law.") add_inherent_law("You must protect your own existence as long as such does not conflict with the First or Second Law.") if(1) diff --git a/code/datums/beam.dm b/code/datums/beam.dm index d0b6d791ec..d97ee9a773 100644 --- a/code/datums/beam.dm +++ b/code/datums/beam.dm @@ -61,7 +61,8 @@ /datum/beam/proc/recalculate_in(time) if(timing_id) deltimer(timing_id) - timing_id = addtimer(CALLBACK(src, .proc/recalculate), time, TIMER_STOPPABLE) + if(!finished) + timing_id = addtimer(CALLBACK(src, .proc/recalculate), time, TIMER_STOPPABLE) /datum/beam/proc/after_calculate() if((sleep_time == null) || finished) //Does not automatically recalculate. diff --git a/code/datums/components/crafting/craft.dm b/code/datums/components/crafting/craft.dm index 5c21801c14..cd3f05b326 100644 --- a/code/datums/components/crafting/craft.dm +++ b/code/datums/components/crafting/craft.dm @@ -27,14 +27,16 @@ CAT_BREAD, CAT_BURGER, CAT_CAKE, + CAT_DONUT, CAT_EGG, - CAT_FISH, CAT_ICE, CAT_MEAT, + CAT_MEXICAN, CAT_MISCFOOD, CAT_PASTRY, CAT_PIE, CAT_PIZZA, + CAT_SEAFOOD, CAT_SALAD, CAT_SANDWICH, CAT_SOUP, @@ -64,29 +66,48 @@ - -/datum/component/personal_crafting/proc/check_contents(datum/crafting_recipe/R, list/contents) +/** + * Check that the contents of the recipe meet the requirements. + * + * user: The /mob that initated the crafting. + * R: The /datum/crafting_recipe being attempted. + * contents: List of items to search for R's reqs. + */ +/datum/component/personal_crafting/proc/check_contents(mob/user, datum/crafting_recipe/R, list/contents) + var/list/item_instances = contents["instances"] contents = contents["other"] - main_loop: - for(var/A in R.reqs) - var/needed_amount = R.reqs[A] - for(var/B in contents) - if(ispath(B, A)) - if (R.blacklist.Find(B)) - continue - if(contents[B] >= R.reqs[A]) - continue main_loop - else - needed_amount -= contents[B] - if(needed_amount <= 0) - continue main_loop - else - continue + + var/list/requirements_list = list() + + // Process all requirements + for(var/requirement_path in R.reqs) + // Check we have the appropriate amount available in the contents list + var/needed_amount = R.reqs[requirement_path] + for(var/content_item_path in contents) + // Right path and not blacklisted + if(!ispath(content_item_path, requirement_path) || R.blacklist.Find(requirement_path)) + continue + + needed_amount -= contents[content_item_path] + if(needed_amount <= 0) + break + + if(needed_amount > 0) return FALSE - for(var/A in R.chem_catalysts) - if(contents[A] < R.chem_catalysts[A]) + + // Store the instances of what we will use for R.check_requirements() for requirement_path + var/list/instances_list = list() + for(var/instance_path in item_instances) + if(ispath(instance_path, requirement_path)) + instances_list += item_instances[instance_path] + + requirements_list[requirement_path] = instances_list + + for(var/requirement_path in R.chem_catalysts) + if(contents[requirement_path] < R.chem_catalysts[requirement_path]) return FALSE - return TRUE + + return R.check_requirements(user, requirements_list) /datum/component/personal_crafting/proc/get_environment(mob/user) . = list() @@ -110,9 +131,14 @@ . = list() .["tool_behaviour"] = list() .["other"] = list() + .["instances"] = list() for(var/obj/item/I in get_environment(user)) if(I.flags_1 & HOLOGRAM_1) continue + if(.["instances"][I.type]) + .["instances"][I.type] += I + else + .["instances"][I.type] = list(I) if(istype(I, /obj/item/stack)) var/obj/item/stack/S = I .["other"][I.type] += S.amount @@ -161,11 +187,11 @@ /datum/component/personal_crafting/proc/construct_item(mob/user, datum/crafting_recipe/R) var/list/contents = get_surroundings(user) var/send_feedback = 1 - if(check_contents(R, contents)) + if(check_contents(user, R, contents)) if(check_tools(user, R, contents)) if(do_after(user, R.time, target = user)) contents = get_surroundings(user) - if(!check_contents(R, contents)) + if(!check_contents(user, R, contents)) return ", missing component." if(!check_tools(user, R, contents)) return ", missing tool." @@ -341,7 +367,7 @@ if((R.category != cur_category) || (R.subcategory != cur_subcategory)) continue - craftability["[REF(R)]"] = check_contents(R, surroundings) + craftability["[REF(R)]"] = check_contents(user, R, surroundings) data["craftability"] = craftability return data diff --git a/code/datums/components/crafting/guncrafting.dm b/code/datums/components/crafting/guncrafting.dm index d96be9be10..89868c2332 100644 --- a/code/datums/components/crafting/guncrafting.dm +++ b/code/datums/components/crafting/guncrafting.dm @@ -13,3 +13,9 @@ desc = "A classic rifle stock that doubles as a grip, roughly carved out of wood." icon = 'icons/obj/improvised.dmi' icon_state = "riflestock" + +/obj/item/weaponcrafting/silkstring + name = "silkstring" + desc = "A long piece of silk with some resemblance to cable coil." + icon = 'icons/obj/improvised.dmi' + icon_state = "silkstring" diff --git a/code/datums/components/crafting/recipes/recipes_primal.dm b/code/datums/components/crafting/recipes/recipes_primal.dm index 1be479e4e1..ae611e5855 100644 --- a/code/datums/components/crafting/recipes/recipes_primal.dm +++ b/code/datums/components/crafting/recipes/recipes_primal.dm @@ -1,10 +1,3 @@ -/datum/crafting_recipe/bonearmor - name = "Bone Armor" - result = /obj/item/clothing/suit/armor/bone - time = 30 - reqs = list(/obj/item/stack/sheet/bone = 6) - category = CAT_PRIMAL - /datum/crafting_recipe/bonetalisman name = "Bone Talisman" result = /obj/item/clothing/accessory/talisman @@ -29,13 +22,6 @@ /obj/item/stack/sheet/sinew = 1) category = CAT_PRIMAL -/datum/crafting_recipe/skullhelm - name = "Skull Helmet" - result = /obj/item/clothing/head/helmet/skull - time = 30 - reqs = list(/obj/item/stack/sheet/bone = 4) - category = CAT_PRIMAL - /datum/crafting_recipe/goliathcloak name = "Goliath Cloak" result = /obj/item/clothing/suit/hooded/cloak/goliath @@ -62,13 +48,6 @@ /obj/item/stack/sheet/sinew = 2) category = CAT_PRIMAL -/datum/crafting_recipe/bonedagger - name = "Bone Dagger" - result = /obj/item/kitchen/knife/combat/bone - time = 20 - reqs = list(/obj/item/stack/sheet/bone = 2) - category = CAT_PRIMAL - /datum/crafting_recipe/bonespear name = "Bone Spear" result = /obj/item/twohanded/bonespear @@ -110,4 +89,31 @@ parts = list(/obj/item/bodypart/head = 1, /obj/item/twohanded/bonespear = 1) result = /obj/structure/headpike/bone + category = CAT_PRIMAL + +/datum/crafting_recipe/quiver + name = "Quiver" + always_availible = FALSE + result = /obj/item/storage/belt/quiver + time = 80 + reqs = list(/obj/item/stack/sheet/leather = 3, + /obj/item/stack/sheet/sinew = 4) + category = CAT_PRIMAL + +/datum/crafting_recipe/bone_bow + name = "Bone Bow" + result = /obj/item/gun/ballistic/bow/ashen + time = 200 + always_availible = FALSE + reqs = list(/obj/item/stack/sheet/bone = 8, + /obj/item/stack/sheet/sinew = 4) + category = CAT_PRIMAL + +/datum/crafting_recipe/bow_tablet + name = "Sandstone Bow Making Manual" + result = /obj/item/book/granter/crafting_recipe/bone_bow + time = 600 //Scribing + always_availible = FALSE + reqs = list(/obj/item/stack/rods = 1, + /obj/item/stack/sheet/mineral/sandstone = 4) category = CAT_PRIMAL \ No newline at end of file diff --git a/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm b/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm index 06f79396b8..c132d8106d 100644 --- a/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm +++ b/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm @@ -8,6 +8,12 @@ category = CAT_WEAPONRY subcategory = CAT_WEAPON +/datum/crafting_recipe/pin_removal/check_requirements(mob/user, list/collected_requirements) + var/obj/item/gun/G = collected_requirements[/obj/item/gun][1] + if (G.no_pin_required || !G.pin) + return FALSE + return TRUE + /datum/crafting_recipe/strobeshield name = "Strobe Shield" result = /obj/item/assembly/flash/shield @@ -193,6 +199,16 @@ ////////////////// +/datum/crafting_recipe/pipebow + name = "Pipe Bow" + result = /obj/item/gun/ballistic/bow/pipe + reqs = list(/obj/item/pipe = 5, + /obj/item/stack/sheet/plastic = 15, + /obj/item/weaponcrafting/silkstring = 5) + time = 450 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON + /datum/crafting_recipe/smartdartgun name = "Smart dartgun" result = /obj/item/gun/syringe/dart @@ -272,6 +288,41 @@ ///AMMO CRAFTING// ////////////////// +/datum/crafting_recipe/arrow + name = "Arrow" + result = /obj/item/ammo_casing/caseless/arrow + time = 30 + reqs = list(/obj/item/stack/sheet/mineral/wood = 1, + /obj/item/stack/sheet/silk = 1, + /obj/item/stack/rods = 1) // 1 metal sheet = 2 rods = 2 arrows + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/bone_arrow + name = "Bone Arrow" + result = /obj/item/ammo_casing/caseless/arrow/bone + time = 30 + always_availible = FALSE + reqs = list(/obj/item/stack/sheet/bone = 1, + /obj/item/stack/sheet/sinew = 1, + /obj/item/ammo_casing/caseless/arrow/ashen = 1) + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/ashen_arrow + name = "Bonfire-Hardened Arrow" + result = /obj/item/ammo_casing/caseless/arrow/ashen + tools = list(/obj/structure/bonfire) + time = 30 + always_availible = FALSE + reqs = list(/obj/item/ammo_casing/caseless/arrow = 1) + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/ashen_arrow/welder + name = "Welder-Hardened Arrow" + tools = list(TOOL_WELDER) + /datum/crafting_recipe/smartdart name = "Medical smartdart" result = /obj/item/reagent_containers/syringe/dart diff --git a/code/datums/components/explodable.dm b/code/datums/components/explodable.dm new file mode 100644 index 0000000000..820208a319 --- /dev/null +++ b/code/datums/components/explodable.dm @@ -0,0 +1,105 @@ +///Component specifically for explosion sensetive things, currently only applies to heat based explosions but can later perhaps be used for things that are dangerous to handle carelessly like nitroglycerin. +/datum/component/explodable + var/devastation_range = 0 + var/heavy_impact_range = 0 + var/light_impact_range = 2 + var/flash_range = 3 + var/equipped_slot //For items, lets us determine where things should be hit. + +/datum/component/explodable/Initialize(devastation_range_override, heavy_impact_range_override, light_impact_range_override, flash_range_override) + if(!isatom(parent)) + return COMPONENT_INCOMPATIBLE + + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/explodable_attack) + RegisterSignal(parent, COMSIG_TRY_STORAGE_INSERT, .proc/explodable_insert_item) + RegisterSignal(parent, COMSIG_ATOM_EX_ACT, .proc/detonate) + if(ismovableatom(parent)) + RegisterSignal(parent, COMSIG_MOVABLE_IMPACT, .proc/explodable_impact) + RegisterSignal(parent, COMSIG_MOVABLE_BUMP, .proc/explodable_bump) + if(isitem(parent)) + RegisterSignal(parent, list(COMSIG_ITEM_ATTACK, COMSIG_ITEM_ATTACK_OBJ, COMSIG_ITEM_HIT_REACT), .proc/explodable_attack) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/on_equip) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/on_drop) + + + + if(devastation_range_override) + devastation_range = devastation_range_override + if(heavy_impact_range_override) + heavy_impact_range = heavy_impact_range_override + if(light_impact_range_override) + light_impact_range = light_impact_range_override + if(flash_range_override) + flash_range = flash_range_override + +/datum/component/explodable/proc/explodable_insert_item(datum/source, obj/item/I, mob/M, silent = FALSE, force = FALSE) + check_if_detonate(I) + +/datum/component/explodable/proc/explodable_impact(datum/source, atom/hit_atom, datum/thrownthing/throwingdatum) + check_if_detonate(hit_atom) + +/datum/component/explodable/proc/explodable_bump(datum/source, atom/A) + check_if_detonate(A) + +///Called when you use this object to attack sopmething +/datum/component/explodable/proc/explodable_attack(datum/source, atom/movable/target, mob/living/user) + check_if_detonate(target) + +///Called when you attack a specific body part of the thing this is equipped on. Useful for exploding pants. +/datum/component/explodable/proc/explodable_attack_zone(datum/source, damage, damagetype, def_zone) + if(!def_zone) + return + if(damagetype != BURN) //Don't bother if it's not fire. + return + if(!is_hitting_zone(def_zone)) //You didn't hit us! ha! + return + detonate() + +/datum/component/explodable/proc/on_equip(datum/source, mob/equipper, slot) + RegisterSignal(equipper, COMSIG_MOB_APPLY_DAMGE, .proc/explodable_attack_zone, TRUE) + +/datum/component/explodable/proc/on_drop(datum/source, mob/user) + UnregisterSignal(user, COMSIG_MOB_APPLY_DAMGE) + +/// Checks if we're hitting the zone this component is covering +/datum/component/explodable/proc/is_hitting_zone(def_zone) + var/obj/item/item = parent + var/mob/living/L = item.loc //Get whoever is equipping the item currently + + if(!istype(L)) + return + + var/obj/item/bodypart/bodypart = L.get_bodypart(check_zone(def_zone)) + + var/list/equipment_items = list() + if(iscarbon(L)) + var/mob/living/carbon/C = L + equipment_items += list(C.head, C.wear_mask, C.back, C.gloves, C.shoes, C.glasses, C.ears) + if(ishuman(C)) + var/mob/living/carbon/human/H = C + equipment_items += list(H.wear_suit, H.w_uniform, H.belt, H.s_store, H.wear_id) + + for(var/bp in equipment_items) + if(!bp) + continue + + var/obj/item/I = bp + if(I.body_parts_covered & bodypart.body_part) + return TRUE + return FALSE + + +/datum/component/explodable/proc/check_if_detonate(target) + if(!isitem(target)) + return + var/obj/item/I = target + if(!I.get_temperature()) + return + detonate() //If we're touching a hot item we go boom + + +/// Expldoe and remove the object +/datum/component/explodable/proc/detonate() + var/atom/A = parent + explosion(A, devastation_range, heavy_impact_range, light_impact_range, flash_range) //epic explosion time + qdel(A) diff --git a/code/datums/components/material_container.dm b/code/datums/components/material_container.dm index 25094518b8..aab84d9ebb 100644 --- a/code/datums/components/material_container.dm +++ b/code/datums/components/material_container.dm @@ -1,4 +1,4 @@ -/* +/*! This datum should be used for handling mineral contents of machines and whatever else is supposed to hold minerals and make use of them. Variables: @@ -13,7 +13,7 @@ var/total_amount = 0 var/max_amount var/sheet_type - var/list/materials + var/list/materials //Map of key = material ref | Value = amount var/show_on_examine var/disable_attackby var/list/allowed_typecache @@ -22,6 +22,7 @@ var/datum/callback/precondition var/datum/callback/after_insert +/// Sets up the proper signals and fills the list of materials with the appropriate references. /datum/component/material_container/Initialize(list/mat_list, max_amt = 0, _show_on_examine = FALSE, list/allowed_types, datum/callback/_precondition, datum/callback/_after_insert, _disable_attackby) materials = list() max_amount = max(0, max_amt) @@ -40,23 +41,19 @@ RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/OnAttackBy) RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/OnExamine) - var/list/possible_mats = list() - for(var/mat_type in subtypesof(/datum/material)) - var/datum/material/MT = mat_type - possible_mats[initial(MT.id)] = mat_type - for(var/id in mat_list) - if(possible_mats[id]) - var/mat_path = possible_mats[id] - materials[id] = new mat_path() + for(var/mat in mat_list) //Make the assoc list ref | amount + var/datum/material/M = getmaterialref(mat) || mat + materials[M] = 0 /datum/component/material_container/proc/OnExamine(datum/source, mob/user, list/examine_list) if(show_on_examine) for(var/I in materials) - var/datum/material/M = materials[I] - var/amt = amount(M.id) + var/datum/material/M = I + var/amt = materials[I] if(amt) examine_list += "It has [amt] units of [lowertext(M.name)] stored." +/// Proc that allows players to fill the parent with mats /datum/component/material_container/proc/OnAttackBy(datum/source, obj/item/I, mob/living/user) var/list/tc = allowed_typecache if(disable_attackby) @@ -74,13 +71,14 @@ return var/material_amount = get_item_material_amount(I) if(!material_amount) - to_chat(user, "[I] does not contain sufficient amounts of metal or glass to be accepted by [parent].") + to_chat(user, "[I] does not contain sufficient materials to be accepted by [parent].") return if(!has_space(material_amount)) - to_chat(user, "[parent] is full. Please remove metal or glass from [parent] in order to insert more.") + to_chat(user, "[parent] has not enough space. Please remove materials from [parent] in order to insert more.") return user_insert(I, user) +/// Proc used for when player inserts materials /datum/component/material_container/proc/user_insert(obj/item/I, mob/living/user) set waitfor = FALSE var/requested_amount @@ -98,299 +96,225 @@ return var/inserted = insert_item(I, stack_amt = requested_amount) if(inserted) - if(istype(I, /obj/item/stack)) - var/obj/item/stack/S = I - to_chat(user, "You insert [inserted] [S.singular_name][inserted>1 ? "s" : ""] into [parent].") - if(!QDELETED(I) && I == active_held && !user.put_in_hands(I)) - stack_trace("Warning: User could not put object back in hand during material container insertion, line [__LINE__]! This can lead to issues.") - I.forceMove(user.drop_location()) - else - to_chat(user, "You insert a material total of [inserted] into [parent].") - qdel(I) + to_chat(user, "You insert a material total of [inserted] into [parent].") + qdel(I) if(after_insert) - after_insert.Invoke(I.type, last_inserted_id, inserted) + after_insert.Invoke(I, last_inserted_id, inserted) else if(I == active_held) user.put_in_active_hand(I) -//For inserting an amount of material -/datum/component/material_container/proc/insert_amount(amt, id = null) - if(amt > 0 && has_space(amt)) - var/total_amount_saved = total_amount - if(id) - var/datum/material/M = materials[id] - if(M) - M.amount += amt - total_amount += amt - else - for(var/i in materials) - var/datum/material/M = materials[i] - M.amount += amt - total_amount += amt - return (total_amount - total_amount_saved) - return FALSE - -/datum/component/material_container/proc/insert_stack(obj/item/stack/S, amt, multiplier = 1) - if(isnull(amt)) - amt = S.amount - - if(amt <= 0) - return FALSE - - if(amt > S.amount) - amt = S.amount - - var/material_amt = get_item_material_amount(S) - if(!material_amt) - return FALSE - - amt = min(amt, round(((max_amount - total_amount) / material_amt))) - if(!amt) - return FALSE - - last_inserted_id = insert_materials(S,amt * multiplier) - S.use(amt) - return amt - -/datum/component/material_container/proc/insert_item(obj/item/I, multiplier = 1, stack_amt) +/// Proc specifically for inserting items, returns the amount of materials entered. +/datum/component/material_container/proc/insert_item(obj/item/I, var/multiplier = 1, stack_amt) if(!I) return FALSE - if(istype(I, /obj/item/stack)) - return insert_stack(I, stack_amt, multiplier) + + multiplier = CEILING(multiplier, 0.01) var/material_amount = get_item_material_amount(I) if(!material_amount || !has_space(material_amount)) return FALSE - last_inserted_id = insert_materials(I, multiplier) + last_inserted_id = insert_item_materials(I, multiplier) return material_amount -/datum/component/material_container/proc/insert_materials(obj/item/I, multiplier = 1) //for internal usage only - var/datum/material/M +/datum/component/material_container/proc/insert_item_materials(obj/item/I, multiplier = 1) var/primary_mat var/max_mat_value = 0 for(var/MAT in materials) - M = materials[MAT] - M.amount += I.materials[MAT] * multiplier - total_amount += I.materials[MAT] * multiplier - if(I.materials[MAT] > max_mat_value) + materials[MAT] += I.custom_materials[MAT] * multiplier + total_amount += I.custom_materials[MAT] * multiplier + if(I.custom_materials[MAT] > max_mat_value) primary_mat = MAT return primary_mat -//For consuming material -//mats is a list of types of material to use and the corresponding amounts, example: list(MAT_METAL=100, MAT_GLASS=200) -/datum/component/material_container/proc/use_amount(list/mats, multiplier=1) - if(!mats || !mats.len) - return FALSE +/// For inserting an amount of material +/datum/component/material_container/proc/insert_amount_mat(amt, var/datum/material/mat) + if(!istype(mat)) + mat = getmaterialref(mat) + if(amt > 0 && has_space(amt)) + var/total_amount_saved = total_amount + if(mat) + materials[mat] += amt + else + for(var/i in materials) + materials[i] += amt + total_amount += amt + return (total_amount - total_amount_saved) + return FALSE - var/datum/material/M - for(var/MAT in materials) - M = materials[MAT] - if(M.amount < (mats[MAT] * multiplier)) - return FALSE - - var/total_amount_save = total_amount - for(var/MAT in materials) - M = materials[MAT] - M.amount -= mats[MAT] * multiplier - total_amount -= mats[MAT] * multiplier - - return total_amount_save - total_amount - - -/datum/component/material_container/proc/use_amount_type(amt, id) - var/datum/material/M = materials[id] - if(M) - if(M.amount >= amt) - M.amount -= amt +/// Uses an amount of a specific material, effectively removing it. +/datum/component/material_container/proc/use_amount_mat(amt, var/datum/material/mat) + if(!istype(mat)) + mat = getmaterialref(mat) + var/amount = materials[mat] + if(mat) + if(amount >= amt) + materials[mat] -= amt total_amount -= amt return amt return FALSE -/datum/component/material_container/proc/transer_amt_to(var/datum/component/material_container/T, amt, id) - if((amt==0)||(!T)||(!id)) +/// Proc for transfering materials to another container. +/datum/component/material_container/proc/transer_amt_to(var/datum/component/material_container/T, amt, var/datum/material/mat) + if(!istype(mat)) + mat = getmaterialref(mat) + if((amt==0)||(!T)||(!mat)) return FALSE if(amt<0) - return T.transer_amt_to(src, -amt, id) - var/datum/material/M = materials[id] - - if(M) - var/tr = min(amt, M.amount,T.can_insert_amount(amt, id)) - if(tr) - use_amount_type(tr, id) - T.insert_amount(tr, id) - return tr + return T.transer_amt_to(src, -amt, mat) + var/tr = min(amt, materials[mat],T.can_insert_amount_mat(amt, mat)) + if(tr) + use_amount_mat(tr, mat) + T.insert_amount_mat(tr, mat) + return tr return FALSE -/datum/component/material_container/proc/can_insert_amount(amt, id) - if(amt && id) - var/datum/material/M = materials[id] +/// Proc for checking if there is room in the component, returning the amount or else the amount lacking. +/datum/component/material_container/proc/can_insert_amount_mat(amt, mat) + if(amt && mat) + var/datum/material/M = mat if(M) if((total_amount + amt) <= max_amount) return amt else return (max_amount-total_amount) -/datum/component/material_container/proc/can_use_amount(amt, id, list/mats) - if(amt && id) - var/datum/material/M = materials[id] - if(M && M.amount >= amt) - return TRUE - else if(istype(mats)) - for(var/M in mats) - if(materials[M] && (mats[M] <= materials[M])) - continue - else - return FALSE - return TRUE - return FALSE -//For spawning mineral sheets; internal use only -/datum/component/material_container/proc/retrieve(sheet_amt, datum/material/M, target = null) +/// For consuming a dictionary of materials. mats is the map of materials to use and the corresponding amounts, example: list(M/datum/material/glass =100, datum/material/iron=200) +/datum/component/material_container/proc/use_materials(list/mats, multiplier=1) + if(!mats || !length(mats)) + return FALSE + + var/list/mats_to_remove = list() //Assoc list MAT | AMOUNT + + for(var/x in mats) //Loop through all required materials + var/datum/material/req_mat = x + if(!istype(req_mat)) + req_mat = getmaterialref(req_mat) //Get the ref if necesary + if(!materials[req_mat]) //Do we have the resource? + return FALSE //Can't afford it + var/amount_required = mats[x] * multiplier + if(!(materials[req_mat] >= amount_required)) // do we have enough of the resource? + return FALSE //Can't afford it + mats_to_remove[req_mat] += amount_required //Add it to the assoc list of things to remove + continue + + var/total_amount_save = total_amount + + for(var/i in mats_to_remove) + total_amount_save -= use_amount_mat(mats_to_remove[i], i) + + return total_amount_save - total_amount + +/// For spawning mineral sheets at a specific location. Used by machines to output sheets. +/datum/component/material_container/proc/retrieve_sheets(sheet_amt, var/datum/material/M, target = null) if(!M.sheet_type) - return 0 + return 0 //Add greyscale sheet handling here later if(sheet_amt <= 0) return 0 if(!target) target = get_turf(parent) - if(M.amount < (sheet_amt * MINERAL_MATERIAL_AMOUNT)) - sheet_amt = round(M.amount / MINERAL_MATERIAL_AMOUNT) + if(materials[M] < (sheet_amt * MINERAL_MATERIAL_AMOUNT)) + sheet_amt = round(materials[M] / MINERAL_MATERIAL_AMOUNT) var/count = 0 while(sheet_amt > MAX_STACK_SIZE) new M.sheet_type(target, MAX_STACK_SIZE) count += MAX_STACK_SIZE - use_amount_type(sheet_amt * MINERAL_MATERIAL_AMOUNT, M.id) + use_amount_mat(sheet_amt * MINERAL_MATERIAL_AMOUNT, M) sheet_amt -= MAX_STACK_SIZE if(sheet_amt >= 1) new M.sheet_type(target, sheet_amt) count += sheet_amt - use_amount_type(sheet_amt * MINERAL_MATERIAL_AMOUNT, M.id) + use_amount_mat(sheet_amt * MINERAL_MATERIAL_AMOUNT, M) return count -/datum/component/material_container/proc/retrieve_sheets(sheet_amt, id, target = null) - if(materials[id]) - return retrieve(sheet_amt, materials[id], target) - return FALSE - -/datum/component/material_container/proc/retrieve_amount(amt, id, target) - return retrieve_sheets(amount2sheet(amt), id, target) +/// Proc to get all the materials and dump them as sheets /datum/component/material_container/proc/retrieve_all(target = null) var/result = 0 - var/datum/material/M for(var/MAT in materials) - M = materials[MAT] - result += retrieve_sheets(amount2sheet(M.amount), MAT, target) + var/amount = materials[MAT] + result += retrieve_sheets(amount2sheet(amount), MAT, target) return result +/// Proc that returns TRUE if the container has space /datum/component/material_container/proc/has_space(amt = 0) return (total_amount + amt) <= max_amount +/// Checks if its possible to afford a certain amount of materials. Takes a dictionary of materials. /datum/component/material_container/proc/has_materials(list/mats, multiplier=1) if(!mats || !mats.len) return FALSE - var/datum/material/M - for(var/MAT in mats) - M = materials[MAT] - if(M.amount < (mats[MAT] * multiplier)) + for(var/x in mats) //Loop through all required materials + var/datum/material/req_mat = x + if(!istype(req_mat)) + if(ispath(req_mat)) //Is this an actual material, or is it a category? + req_mat = getmaterialref(req_mat) //Get the ref + + else // Its a category. (For example MAT_CATEGORY_RIGID) + if(!has_enough_of_category(req_mat, mats[req_mat], multiplier)) //Do we have enough of this category? + return FALSE + else + continue + + if(!has_enough_of_material(req_mat, mats[req_mat], multiplier))//Not a category, so just check the normal way return FALSE + return TRUE +/// Returns all the categories in a recipe. +/datum/component/material_container/proc/get_categories(list/mats) + var/list/categories = list() + for(var/x in mats) //Loop through all required materials + if(!istext(x)) //This means its not a category + continue + categories += x + return categories + + +/// Returns TRUE if you have enough of the specified material. +/datum/component/material_container/proc/has_enough_of_material(var/datum/material/req_mat, amount, multiplier=1) + if(!materials[req_mat]) //Do we have the resource? + return FALSE //Can't afford it + var/amount_required = amount * multiplier + if(materials[req_mat] >= amount_required) // do we have enough of the resource? + return TRUE + return FALSE //Can't afford it + +/// Returns TRUE if you have enough of a specified material category (Which could be multiple materials) +/datum/component/material_container/proc/has_enough_of_category(category, amount, multiplier=1) + for(var/i in SSmaterials.materials_by_category[category]) + var/datum/material/mat = i + if(materials[mat] >= amount) //we have enough + return TRUE + return FALSE + +/// Turns a material amount into the amount of sheets it should output /datum/component/material_container/proc/amount2sheet(amt) if(amt >= MINERAL_MATERIAL_AMOUNT) return round(amt / MINERAL_MATERIAL_AMOUNT) return FALSE +/// Turns an amount of sheets into the amount of material amount it should output /datum/component/material_container/proc/sheet2amount(sheet_amt) if(sheet_amt > 0) return sheet_amt * MINERAL_MATERIAL_AMOUNT return FALSE -/datum/component/material_container/proc/amount(id) - var/datum/material/M = materials[id] - return M ? M.amount : 0 -//returns the amount of material relevant to this container; -//if this container does not support glass, any glass in 'I' will not be taken into account +///returns the amount of material relevant to this container; if this container does not support glass, any glass in 'I' will not be taken into account /datum/component/material_container/proc/get_item_material_amount(obj/item/I) - if(!istype(I)) + if(!istype(I) || !I.custom_materials) return FALSE var/material_amount = 0 for(var/MAT in materials) - material_amount += I.materials[MAT] + material_amount += I.custom_materials[MAT] return material_amount - -/datum/material - var/name - var/amount = 0 - var/id = null - var/sheet_type = null - var/coin_type = null - -/datum/material/metal - name = "Metal" - id = MAT_METAL - sheet_type = /obj/item/stack/sheet/metal - coin_type = /obj/item/coin/iron - -/datum/material/glass - name = "Glass" - id = MAT_GLASS - sheet_type = /obj/item/stack/sheet/glass - -/datum/material/silver - name = "Silver" - id = MAT_SILVER - sheet_type = /obj/item/stack/sheet/mineral/silver - coin_type = /obj/item/coin/silver - -/datum/material/gold - name = "Gold" - id = MAT_GOLD - sheet_type = /obj/item/stack/sheet/mineral/gold - coin_type = /obj/item/coin/gold - -/datum/material/diamond - name = "Diamond" - id = MAT_DIAMOND - sheet_type = /obj/item/stack/sheet/mineral/diamond - coin_type = /obj/item/coin/diamond - -/datum/material/uranium - name = "Uranium" - id = MAT_URANIUM - sheet_type = /obj/item/stack/sheet/mineral/uranium - coin_type = /obj/item/coin/uranium - -/datum/material/plasma - name = "Solid Plasma" - id = MAT_PLASMA - sheet_type = /obj/item/stack/sheet/mineral/plasma - coin_type = /obj/item/coin/plasma - -/datum/material/bluespace - name = "Bluespace Mesh" - id = MAT_BLUESPACE - sheet_type = /obj/item/stack/sheet/bluespace_crystal - -/datum/material/bananium - name = "Bananium" - id = MAT_BANANIUM - sheet_type = /obj/item/stack/sheet/mineral/bananium - coin_type = /obj/item/coin/bananium - -/datum/material/titanium - name = "Titanium" - id = MAT_TITANIUM - sheet_type = /obj/item/stack/sheet/mineral/titanium - -/datum/material/biomass - name = "Biomass" - id = MAT_BIOMASS - -/datum/material/plastic - name = "Plastic" - id = MAT_PLASTIC - sheet_type = /obj/item/stack/sheet/plastic +/// Returns the amount of a specific material in this container. +/datum/component/material_container/proc/get_material_amount(var/datum/material/mat) + if(!istype(mat)) + mat = getmaterialref(mat) + return(materials[mat]) diff --git a/code/datums/components/mood.dm b/code/datums/components/mood.dm index 2ecd77546d..5e9382f88e 100644 --- a/code/datums/components/mood.dm +++ b/code/datums/components/mood.dm @@ -21,6 +21,7 @@ RegisterSignal(parent, COMSIG_ADD_MOOD_EVENT, .proc/add_event) RegisterSignal(parent, COMSIG_CLEAR_MOOD_EVENT, .proc/clear_event) RegisterSignal(parent, COMSIG_MODIFY_SANITY, .proc/modify_sanity) + RegisterSignal(parent, COMSIG_LIVING_REVIVE, .proc/on_revive) RegisterSignal(parent, COMSIG_MOB_HUD_CREATED, .proc/modify_hud) var/mob/living/owner = parent @@ -81,7 +82,8 @@ msg += "I don't have much of a reaction to anything right now.\n" to_chat(user || parent, msg) -/datum/component/mood/proc/update_mood() //Called whenever a mood event is added or removed +///Called after moodevent/s have been added/removed. +/datum/component/mood/proc/update_mood() mood = 0 shown_mood = 0 for(var/i in mood_events) @@ -234,6 +236,15 @@ qdel(event) update_mood() +/datum/component/mood/proc/remove_temp_moods() //Removes all temp moodsfor(var/i in mood_events) + for(var/i in mood_events) + var/datum/mood_event/moodlet = mood_events[i] + if(!moodlet || !moodlet.timeout) + continue + mood_events -= i + qdel(moodlet) + update_mood() + /datum/component/mood/proc/modify_hud(datum/source) var/mob/living/owner = parent var/datum/hud/hud = owner.hud_used @@ -270,5 +281,12 @@ if(0 to NUTRITION_LEVEL_STARVING) add_event(null, "nutrition", /datum/mood_event/starving) +///Called when parent is ahealed. +/datum/component/mood/proc/on_revive(datum/source, full_heal) + if(!full_heal) + return + remove_temp_moods() + setSanity(initial(sanity)) + #undef MINOR_INSANITY_PEN #undef MAJOR_INSANITY_PEN diff --git a/code/datums/components/nanites.dm b/code/datums/components/nanites.dm index e1c96121c7..49b2e437d4 100644 --- a/code/datums/components/nanites.dm +++ b/code/datums/components/nanites.dm @@ -7,13 +7,16 @@ var/regen_rate = 0.5 //nanites generated per second var/safety_threshold = 25 //how low nanites will get before they stop processing/triggering var/cloud_id = 0 //0 if not connected to the cloud, 1-100 to set a determined cloud backup to draw from + var/cloud_active = TRUE //if false, won't sync to the cloud var/next_sync = 0 var/list/datum/nanite_program/programs = list() var/max_programs = NANITE_PROGRAM_LIMIT + var/list/datum/nanite_program/protocol/protocols = list() ///Separate list of protocol programs, to avoid looping through the whole programs list when cheking for conflicts + var/start_time = 0 ///Timestamp to when the nanites were first inserted in the host var/stealth = FALSE //if TRUE, does not appear on HUDs and health scans var/diagnostics = TRUE //if TRUE, displays program list when scanned by nanite scanners - + /datum/component/nanites/Initialize(amount = 100, cloud = 0) if(!isliving(parent) && !istype(parent, /datum/nanite_cloud_backup)) return COMPONENT_INCOMPATIBLE @@ -25,33 +28,36 @@ if(isliving(parent)) host_mob = parent - if(!(MOB_ORGANIC in host_mob.mob_biotypes) && !(MOB_UNDEAD in host_mob.mob_biotypes)) //Shouldn't happen, but this avoids HUD runtimes in case a silicon gets them somehow. + if(!(host_mob.mob_biotypes & (MOB_ORGANIC|MOB_UNDEAD))) //Shouldn't happen, but this avoids HUD runtimes in case a silicon gets them somehow. return COMPONENT_INCOMPATIBLE + start_time = world.time + host_mob.hud_set_nanite_indicator() START_PROCESSING(SSnanites, src) - if(cloud_id) + if(cloud_id && cloud_active) cloud_sync() /datum/component/nanites/RegisterWithParent() - . = ..() RegisterSignal(parent, COMSIG_HAS_NANITES, .proc/confirm_nanites) RegisterSignal(parent, COMSIG_NANITE_IS_STEALTHY, .proc/check_stealth) + RegisterSignal(parent, COMSIG_NANITE_DELETE, .proc/delete_nanites) RegisterSignal(parent, COMSIG_NANITE_UI_DATA, .proc/nanite_ui_data) RegisterSignal(parent, COMSIG_NANITE_GET_PROGRAMS, .proc/get_programs) RegisterSignal(parent, COMSIG_NANITE_SET_VOLUME, .proc/set_volume) RegisterSignal(parent, COMSIG_NANITE_ADJUST_VOLUME, .proc/adjust_nanites) RegisterSignal(parent, COMSIG_NANITE_SET_MAX_VOLUME, .proc/set_max_volume) RegisterSignal(parent, COMSIG_NANITE_SET_CLOUD, .proc/set_cloud) + RegisterSignal(parent, COMSIG_NANITE_SET_CLOUD_SYNC, .proc/set_cloud_sync) RegisterSignal(parent, COMSIG_NANITE_SET_SAFETY, .proc/set_safety) RegisterSignal(parent, COMSIG_NANITE_SET_REGEN, .proc/set_regen) RegisterSignal(parent, COMSIG_NANITE_ADD_PROGRAM, .proc/add_program) RegisterSignal(parent, COMSIG_NANITE_SCAN, .proc/nanite_scan) RegisterSignal(parent, COMSIG_NANITE_SYNC, .proc/sync) - RegisterSignal(parent, COMSIG_ATOM_EMP_ACT, .proc/on_emp) if(isliving(parent)) + RegisterSignal(parent, COMSIG_ATOM_EMP_ACT, .proc/on_emp) RegisterSignal(parent, COMSIG_MOB_DEATH, .proc/on_death) RegisterSignal(parent, COMSIG_MOB_ALLOWED, .proc/check_access) RegisterSignal(parent, COMSIG_LIVING_ELECTROCUTE_ACT, .proc/on_shock) @@ -61,15 +67,16 @@ RegisterSignal(parent, COMSIG_NANITE_COMM_SIGNAL, .proc/receive_comm_signal) /datum/component/nanites/UnregisterFromParent() - . = ..() UnregisterSignal(parent, list(COMSIG_HAS_NANITES, COMSIG_NANITE_IS_STEALTHY, + COMSIG_NANITE_DELETE, COMSIG_NANITE_UI_DATA, COMSIG_NANITE_GET_PROGRAMS, COMSIG_NANITE_SET_VOLUME, COMSIG_NANITE_ADJUST_VOLUME, COMSIG_NANITE_SET_MAX_VOLUME, COMSIG_NANITE_SET_CLOUD, + COMSIG_NANITE_SET_CLOUD_SYNC, COMSIG_NANITE_SET_SAFETY, COMSIG_NANITE_SET_REGEN, COMSIG_NANITE_ADD_PROGRAM, @@ -87,9 +94,9 @@ /datum/component/nanites/Destroy() STOP_PROCESSING(SSnanites, src) - set_nanite_bar(TRUE) QDEL_LIST(programs) if(host_mob) + set_nanite_bar(TRUE) host_mob.hud_set_nanite_indicator() host_mob = null return ..() @@ -102,13 +109,18 @@ /datum/component/nanites/process() adjust_nanites(null, regen_rate) + add_research() for(var/X in programs) var/datum/nanite_program/NP = X NP.on_process() - set_nanite_bar() - if(cloud_id && world.time > next_sync) + if(cloud_id && cloud_active && world.time > next_sync) cloud_sync() next_sync = world.time + NANITE_SYNC_DELAY + set_nanite_bar() + + +/datum/component/nanites/proc/delete_nanites() + qdel(src) //Syncs the nanite component to another, making it so programs are the same with the same programming (except activation status) /datum/component/nanites/proc/sync(datum/signal_source, datum/component/nanites/source, full_overwrite = TRUE, copy_activation = FALSE) @@ -131,13 +143,17 @@ add_program(null, SNP.copy()) /datum/component/nanites/proc/cloud_sync() - if(!cloud_id) - return - var/datum/nanite_cloud_backup/backup = SSnanites.get_cloud_backup(cloud_id) - if(backup) - var/datum/component/nanites/cloud_copy = backup.nanites - if(cloud_copy) - sync(null, cloud_copy) + if(cloud_id) + var/datum/nanite_cloud_backup/backup = SSnanites.get_cloud_backup(cloud_id) + if(backup) + var/datum/component/nanites/cloud_copy = backup.nanites + if(cloud_copy) + sync(null, cloud_copy) + return + //Without cloud syncing nanites can accumulate errors and/or defects + if(prob(8) && programs.len) + var/datum/nanite_program/NP = pick(programs) + NP.software_error() /datum/component/nanites/proc/add_program(datum/source, datum/nanite_program/new_program, datum/nanite_program/source_program) for(var/X in programs) @@ -175,19 +191,28 @@ holder.icon_state = "nanites[nanite_percent]" /datum/component/nanites/proc/on_emp(datum/source, severity) - adjust_nanites(null, -(nanite_volume * 0.3 + 50)) //Lose 30% variable and 50 flat nanite volume. + nanite_volume *= (rand(60, 90) * 0.01) //Lose 10-40% of nanites + adjust_nanites(null, -(rand(5, 50))) //Lose 5-50 flat nanite volume + if(prob(40/severity)) + cloud_id = 0 for(var/X in programs) var/datum/nanite_program/NP = X NP.on_emp(severity) -/datum/component/nanites/proc/on_shock(datum/source, shock_damage) - adjust_nanites(null, -(nanite_volume * (shock_damage * 0.005) + shock_damage)) //0.5% of shock damage (@ 50 damage it'd drain 25%) + shock damage flat volume - for(var/X in programs) - var/datum/nanite_program/NP = X - NP.on_shock(shock_damage) + +/datum/component/nanites/proc/on_shock(datum/source, shock_damage, siemens_coeff = 1, flags = NONE) + if(shock_damage < 1) + return + + if(!HAS_TRAIT_NOT_FROM(host_mob, TRAIT_SHOCKIMMUNE, "nanites"))//Another shock protection must protect nanites too, but nanites protect only host + nanite_volume *= (rand(45, 80) * 0.01) //Lose 20-55% of nanites + adjust_nanites(null, -(rand(5, 50))) //Lose 5-50 flat nanite volume + for(var/X in programs) + var/datum/nanite_program/NP = X + NP.on_shock(shock_damage) /datum/component/nanites/proc/on_minor_shock(datum/source) - adjust_nanites(null, -25) + adjust_nanites(null, -(rand(5, 15))) //Lose 5-15 flat nanite volume for(var/X in programs) var/datum/nanite_program/NP = X NP.on_minor_shock() @@ -207,16 +232,16 @@ /datum/component/nanites/proc/receive_comm_signal(datum/source, comm_code, comm_message, comm_source = "an unidentified source") for(var/X in programs) - if(istype(X, /datum/nanite_program/triggered/comm)) - var/datum/nanite_program/triggered/comm/NP = X + if(istype(X, /datum/nanite_program/comm)) + var/datum/nanite_program/comm/NP = X NP.receive_comm_signal(comm_code, comm_message, comm_source) /datum/component/nanites/proc/check_viable_biotype() - if(!(MOB_ORGANIC in host_mob.mob_biotypes) && !(MOB_UNDEAD in host_mob.mob_biotypes)) + if(!(host_mob.mob_biotypes & (MOB_ORGANIC|MOB_UNDEAD))) qdel(src) //bodytype no longer sustains nanites /datum/component/nanites/proc/check_access(datum/source, obj/O) - for(var/datum/nanite_program/triggered/access/access_program in programs) + for(var/datum/nanite_program/access/access_program in programs) if(access_program.activated) return O.check_access_list(access_program.access) else @@ -232,6 +257,15 @@ /datum/component/nanites/proc/set_cloud(datum/source, amount) cloud_id = CLAMP(amount, 0, 100) +/datum/component/nanites/proc/set_cloud_sync(datum/source, method) + switch(method) + if(NANITE_CLOUD_TOGGLE) + cloud_active = !cloud_active + if(NANITE_CLOUD_DISABLE) + cloud_active = FALSE + if(NANITE_CLOUD_ENABLE) + cloud_active = TRUE + /datum/component/nanites/proc/set_safety(datum/source, amount) safety_threshold = CLAMP(amount, 0, max_nanites) @@ -252,6 +286,19 @@ /datum/component/nanites/proc/get_programs(datum/source, list/nanite_programs) nanite_programs |= programs +/datum/component/nanites/proc/add_research() + var/research_value = NANITE_BASE_RESEARCH + if(!ishuman(host_mob)) + if(!iscarbon(host_mob)) + research_value *= 0.4 + else + research_value *= 0.8 + if(!host_mob.client) + research_value *= 0.5 + if(host_mob.stat == DEAD) + research_value *= 0.75 + SSresearch.science_tech.add_point_list(list(TECHWEB_POINT_TYPE_NANITES = research_value)) + /datum/component/nanites/proc/nanite_scan(datum/source, mob/user, full_scan) if(!full_scan) if(!stealth) @@ -263,7 +310,8 @@ to_chat(user, "================") to_chat(user, "Saturation: [nanite_volume]/[max_nanites]") to_chat(user, "Safety Threshold: [safety_threshold]") - to_chat(user, "Cloud ID: [cloud_id ? cloud_id : "Disabled"]") + to_chat(user, "Cloud ID: [cloud_id ? cloud_id : "None"]") + to_chat(user, "Cloud Sync: [cloud_active ? "Active" : "Disabled"]") to_chat(user, "================") to_chat(user, "Program List:") if(!diagnostics) @@ -280,6 +328,7 @@ data["regen_rate"] = regen_rate data["safety_threshold"] = safety_threshold data["cloud_id"] = cloud_id + data["cloud_active"] = cloud_active var/list/mob_programs = list() var/id = 1 for(var/X in programs) @@ -297,24 +346,35 @@ mob_program["trigger_cooldown"] = P.trigger_cooldown / 10 if(scan_level >= 3) - mob_program["activation_delay"] = P.activation_delay - mob_program["timer"] = P.timer - mob_program["timer_type"] = P.get_timer_type_text() - var/list/extra_settings = list() - for(var/Y in P.extra_settings) - var/list/setting = list() - setting["name"] = Y - setting["value"] = P.get_extra_setting(Y) - extra_settings += list(setting) + mob_program["timer_restart"] = P.timer_restart / 10 + mob_program["timer_shutdown"] = P.timer_shutdown / 10 + mob_program["timer_trigger"] = P.timer_trigger / 10 + mob_program["timer_trigger_delay"] = P.timer_trigger_delay / 10 + var/list/extra_settings = P.get_extra_settings_frontend() mob_program["extra_settings"] = extra_settings if(LAZYLEN(extra_settings)) mob_program["has_extra_settings"] = TRUE + else + mob_program["has_extra_settings"] = FALSE if(scan_level >= 4) mob_program["activation_code"] = P.activation_code mob_program["deactivation_code"] = P.deactivation_code mob_program["kill_code"] = P.kill_code mob_program["trigger_code"] = P.trigger_code + var/list/rules = list() + var/rule_id = 1 + for(var/Z in P.rules) + var/datum/nanite_rule/nanite_rule = Z + var/list/rule = list() + rule["display"] = nanite_rule.display() + rule["program_id"] = id + rule["id"] = rule_id + rules += list(rule) + rule_id++ + mob_program["rules"] = rules + if(LAZYLEN(rules)) + mob_program["has_rules"] = TRUE id++ mob_programs += list(mob_program) data["mob_programs"] = mob_programs diff --git a/code/datums/components/radioactive.dm b/code/datums/components/radioactive.dm index 9dac20d94f..240eed7747 100644 --- a/code/datums/components/radioactive.dm +++ b/code/datums/components/radioactive.dm @@ -77,6 +77,8 @@ /datum/component/radioactive/proc/rad_attack(datum/source, atom/movable/target, mob/living/user) radiation_pulse(parent, strength/20) target.rad_act(strength/2) + if(!hl3_release_date) + return strength -= strength / hl3_release_date #undef RAD_AMOUNT_LOW diff --git a/code/datums/components/remote_materials.dm b/code/datums/components/remote_materials.dm index dd05660b3e..245e89bd0c 100644 --- a/code/datums/components/remote_materials.dm +++ b/code/datums/components/remote_materials.dm @@ -54,7 +54,7 @@ handles linking back and forth. /datum/component/remote_materials/proc/_MakeLocal() silo = null mat_container = parent.AddComponent(/datum/component/material_container, - list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE, MAT_PLASTIC), + list(/datum/material/iron, /datum/material/glass, /datum/material/silver, /datum/material/gold, /datum/material/diamond, /datum/material/plasma, /datum/material/uranium, /datum/material/bananium, /datum/material/titanium, /datum/material/bluespace, /datum/material/plastic), local_size, FALSE, /obj/item/stack) diff --git a/code/datums/components/slippery.dm b/code/datums/components/slippery.dm index bf53414537..7e263c4f30 100644 --- a/code/datums/components/slippery.dm +++ b/code/datums/components/slippery.dm @@ -7,7 +7,7 @@ intensity = max(_intensity, 0) lube_flags = _lube_flags callback = _callback - RegisterSignal(parent, list(COMSIG_MOVABLE_CROSSED, COMSIG_ATOM_ENTERED), .proc/Slip) + RegisterSignal(parent, list(COMSIG_MOVABLE_CROSSED, COMSIG_ATOM_ENTERED, COMSIG_ITEM_WEARERCROSSED), .proc/Slip) /datum/component/slippery/proc/Slip(datum/source, atom/movable/AM) var/mob/victim = AM diff --git a/code/datums/components/squeak.dm b/code/datums/components/squeak.dm index 29b074c3a7..ad538760db 100644 --- a/code/datums/components/squeak.dm +++ b/code/datums/components/squeak.dm @@ -18,7 +18,7 @@ RegisterSignal(parent, list(COMSIG_ATOM_ENTERED, COMSIG_ATOM_BLOB_ACT, COMSIG_ATOM_HULK_ATTACK, COMSIG_PARENT_ATTACKBY), .proc/play_squeak) if(ismovableatom(parent)) RegisterSignal(parent, list(COMSIG_MOVABLE_BUMP, COMSIG_MOVABLE_IMPACT), .proc/play_squeak) - RegisterSignal(parent, COMSIG_MOVABLE_CROSSED, .proc/play_squeak_crossed) + RegisterSignal(parent, list(COMSIG_MOVABLE_CROSSED, COMSIG_ITEM_WEARERCROSSED), .proc/play_squeak_crossed) RegisterSignal(parent, COMSIG_MOVABLE_DISPOSING, .proc/disposing_react) if(isitem(parent)) RegisterSignal(parent, list(COMSIG_ITEM_ATTACK, COMSIG_ITEM_ATTACK_OBJ, COMSIG_ITEM_HIT_REACT), .proc/play_squeak) diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index 55e5c03c2b..61f97006dd 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -41,6 +41,7 @@ var/obj/screen/storage/boxes //storage display object var/obj/screen/close/closer //close button object + var/current_maxscreensize var/allow_big_nesting = FALSE //allow storage objects of the same or greater size. @@ -362,11 +363,15 @@ break closer.screen_loc = "[screen_start_x + cols]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y]" -/datum/component/storage/proc/show_to(mob/M) +/datum/component/storage/proc/show_to(mob/M, set_screen_size = TRUE) if(!M.client) return FALSE var/list/cview = getviewsize(M.client.view) var/maxallowedscreensize = cview[1]-8 + if(set_screen_size) + current_maxscreensize = maxallowedscreensize + else if(current_maxscreensize) + maxallowedscreensize = current_maxscreensize if(M.active_storage != src && (M.stat == CONSCIOUS)) for(var/obj/item/I in accessible_items()) if(I.on_found(M)) @@ -547,14 +552,14 @@ return A.add_fingerprint(M) -/datum/component/storage/proc/user_show_to_mob(mob/M, force = FALSE) +/datum/component/storage/proc/user_show_to_mob(mob/M, force = FALSE, ghost = FALSE) var/atom/A = parent if(!istype(M)) return FALSE A.add_fingerprint(M) if(!force && (check_locked(null, M) || !M.CanReach(parent, view_only = TRUE))) return FALSE - show_to(M) + show_to(M, !ghost) /datum/component/storage/proc/mousedrop_receive(datum/source, atom/movable/O, mob/M) if(isitem(O)) @@ -665,7 +670,7 @@ return can_be_inserted(I, silent, M) /datum/component/storage/proc/show_to_ghost(datum/source, mob/dead/observer/M) - return user_show_to_mob(M, TRUE) + return user_show_to_mob(M, TRUE, TRUE) /datum/component/storage/proc/signal_show_attempt(datum/source, mob/showto, force = FALSE) return user_show_to_mob(showto, force) diff --git a/code/datums/components/uplink.dm b/code/datums/components/uplink.dm index 5057253522..a8e03946b6 100644 --- a/code/datums/components/uplink.dm +++ b/code/datums/components/uplink.dm @@ -25,6 +25,8 @@ GLOBAL_LIST_EMPTY(uplinks) var/unlock_code var/failsafe_code var/datum/ui_state/checkstate + var/compact_mode = FALSE + var/debug = FALSE /datum/component/uplink/Initialize(_owner, _lockable = TRUE, _enabled = FALSE, datum/game_mode/_gamemode, starting_tc = 20, datum/ui_state/_checkstate) if(!isitem(parent)) @@ -121,7 +123,7 @@ GLOBAL_LIST_EMPTY(uplinks) active = TRUE ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) - ui = new(user, src, ui_key, "uplink", name, 450, 750, master_ui, state) + ui = new(user, src, ui_key, "uplink", name, 620, 580, master_ui, state) ui.set_autoupdate(FALSE) // This UI is only ever opened by one person, and never is updated outside of user input. ui.set_style("syndicate") ui.open() @@ -138,29 +140,35 @@ GLOBAL_LIST_EMPTY(uplinks) var/list/data = list() data["telecrystals"] = telecrystals data["lockable"] = lockable + data["compact_mode"] = compact_mode + return data + +/datum/component/uplink/ui_static_data(mob/user) + var/list/data = list() data["categories"] = list() for(var/category in uplink_items) var/list/cat = list( "name" = category, "items" = (category == selected_cat ? list() : null)) - if(category == selected_cat) - for(var/item in uplink_items[category]) - var/datum/uplink_item/I = uplink_items[category][item] - if(I.limited_stock == 0) + for(var/item in uplink_items[category]) + var/datum/uplink_item/I = uplink_items[category][item] + if(I.limited_stock == 0) + continue + if(I.restricted_roles.len) + var/is_inaccessible = TRUE + for(var/R in I.restricted_roles) + if(R == user.mind.assigned_role || debug) + is_inaccessible = FALSE + if(is_inaccessible) continue - if(I.restricted_roles.len) - var/is_inaccessible = 1 - for(var/R in I.restricted_roles) - if(R == user.mind.assigned_role) - is_inaccessible = 0 if(is_inaccessible) continue - cat["items"] += list(list( - "name" = I.name, - "cost" = I.cost, - "desc" = I.desc, - )) + cat["items"] += list(list( + "name" = I.name, + "cost" = I.cost, + "desc" = I.desc, + )) data["categories"] += list(cat) return data @@ -188,6 +196,8 @@ GLOBAL_LIST_EMPTY(uplinks) SStgui.close_uis(src) if("select") selected_cat = params["category"] + if("compact_toggle") + compact_mode = !compact_mode return TRUE /datum/component/uplink/proc/MakePurchase(mob/user, datum/uplink_item/U) @@ -294,4 +304,4 @@ GLOBAL_LIST_EMPTY(uplinks) if(!T) return explosion(T,1,2,3) - qdel(parent) //Alternatively could brick the uplink. \ No newline at end of file + qdel(parent) //Alternatively could brick the uplink. diff --git a/code/datums/diseases/_MobProcs.dm b/code/datums/diseases/_MobProcs.dm index c125a9b7c7..0b6d4e3404 100644 --- a/code/datums/diseases/_MobProcs.dm +++ b/code/datums/diseases/_MobProcs.dm @@ -17,14 +17,10 @@ if(HasDisease(D)) return FALSE - var/can_infect = FALSE - for(var/host_type in D.infectable_biotypes) - if(host_type in mob_biotypes) - can_infect = TRUE - break - if(!can_infect) + if(!(D.infectable_biotypes & mob_biotypes)) return FALSE + if(!(type in D.viable_mobtypes)) return FALSE diff --git a/code/datums/diseases/_disease.dm b/code/datums/diseases/_disease.dm index 056f99c7a4..940b61c9fe 100644 --- a/code/datums/diseases/_disease.dm +++ b/code/datums/diseases/_disease.dm @@ -30,7 +30,7 @@ var/list/required_organs = list() var/needs_all_cures = TRUE var/list/strain_data = list() //dna_spread special bullshit - var/list/infectable_biotypes = list(MOB_ORGANIC) //if the disease can spread on organics, synthetics, or undead + var/infectable_biotypes = MOB_ORGANIC //if the disease can spread on organics, synthetics, or undead var/process_dead = FALSE //if this ticks while the host is dead var/copy_type = null //if this is null, copies will use the type of the instance being copied diff --git a/code/datums/diseases/advance/symptoms/disfiguration.dm b/code/datums/diseases/advance/symptoms/disfiguration.dm new file mode 100644 index 0000000000..4a4b704dc0 --- /dev/null +++ b/code/datums/diseases/advance/symptoms/disfiguration.dm @@ -0,0 +1,50 @@ +/* +////////////////////////////////////// +Disfiguration + + Hidden. + No change to resistance. + Increases stage speed. + Slightly increases transmittability. + Critical Level. + +BONUS + Adds disfiguration trait making the mob appear as "Unknown" to others. + +////////////////////////////////////// +*/ + +/datum/symptom/disfiguration + + name = "Disfiguration" + desc = "The virus liquefies facial muscles, disfiguring the host." + stealth = 2 + resistance = 0 + stage_speed = 3 + transmittable = 1 + level = 5 + severity = 1 + symptom_delay_min = 25 + symptom_delay_max = 75 + +/datum/symptom/disfiguration/Activate(datum/disease/advance/A) + . = ..() + if(!.) + return + var/mob/living/M = A.affected_mob + if (HAS_TRAIT(M, TRAIT_DISFIGURED)) + return + switch(A.stage) + if(5) + ADD_TRAIT(M, TRAIT_DISFIGURED, DISEASE_TRAIT) + M.visible_message("[M]'s face appears to cave in!", "You feel your face crumple and cave in!") + else + M.visible_message("[M]'s face begins to contort...", "Your face feels wet and malleable...") + + +/datum/symptom/disfiguration/End(datum/disease/advance/A) + . = ..() + if(!.) + return + if(A.affected_mob) + REMOVE_TRAIT(A.affected_mob, TRAIT_DISFIGURED, DISEASE_TRAIT) \ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/heal.dm b/code/datums/diseases/advance/symptoms/heal.dm index cf14da36a0..c7b9758bcb 100644 --- a/code/datums/diseases/advance/symptoms/heal.dm +++ b/code/datums/diseases/advance/symptoms/heal.dm @@ -448,9 +448,11 @@ symptom_delay_max = 1 passive_message = "Your skin glows faintly for a moment." var/cellular_damage = FALSE - threshold_desc = "Transmission 6: Additionally heals cellular damage and toxin lovers.
\ - Resistance 7: Increases healing speed." - + threshold_desc = list( + "Transmission 6" = "Additionally heals cellular damage and toxin lovers.", + "Resistance 7" = "Increases healing speed.", + ) + /datum/symptom/heal/radiation/Start(datum/disease/advance/A) if(!..()) return diff --git a/code/datums/diseases/advance/symptoms/skin.dm b/code/datums/diseases/advance/symptoms/skin.dm index 300eecc80e..e35fe741fd 100644 --- a/code/datums/diseases/advance/symptoms/skin.dm +++ b/code/datums/diseases/advance/symptoms/skin.dm @@ -1,68 +1,22 @@ /* ////////////////////////////////////// -Vitiligo +Polyvitiligo - Hidden. - No change to resistance. - Increases stage speed. - Slightly increases transmittability. - Critical Level. - -BONUS - Makes the mob lose skin pigmentation. - -////////////////////////////////////// -*/ - -/datum/symptom/vitiligo - - name = "Vitiligo" - desc = "The virus destroys skin pigment cells, causing rapid loss of pigmentation in the host." - stealth = 2 - resistance = 0 - stage_speed = 3 - transmittable = 1 - level = 5 - severity = 1 - symptom_delay_min = 25 - symptom_delay_max = 75 - -/datum/symptom/vitiligo/Activate(datum/disease/advance/A) - if(!..()) - return - var/mob/living/M = A.affected_mob - if(ishuman(M)) - var/mob/living/carbon/human/H = M - if(H.skin_tone == "albino") - return - switch(A.stage) - if(5) - H.skin_tone = "albino" - H.update_body(0) - else - H.visible_message("[H] looks a bit pale...", "Your skin suddenly appears lighter...") - - -/* -////////////////////////////////////// -Revitiligo - - Slightly noticable. + Noticeable. Increases resistance. Increases stage speed slightly. Increases transmission. Critical Level. BONUS - Makes the mob gain skin pigmentation. + Makes the mob gain a random crayon powder colorful reagent. ////////////////////////////////////// */ -/datum/symptom/revitiligo - - name = "Revitiligo" - desc = "The virus causes increased production of skin pigment cells, making the host's skin grow darker over time." +/datum/symptom/polyvitiligo + name = "Polyvitiligo" + desc = "The virus replaces the melanin in the skin with reactive pigment." stealth = -1 resistance = 3 stage_speed = 1 @@ -72,17 +26,16 @@ BONUS symptom_delay_min = 7 symptom_delay_max = 14 -/datum/symptom/revitiligo/Activate(datum/disease/advance/A) +/datum/symptom/polyvitiligo/Activate(datum/disease/advance/A) if(!..()) return var/mob/living/M = A.affected_mob - if(ishuman(M)) - var/mob/living/carbon/human/H = M - if(H.skin_tone == "african2") - return - switch(A.stage) - if(5) - H.skin_tone = "african2" - H.update_body(0) - else - H.visible_message("[H] looks a bit dark...", "Your skin suddenly appears darker...") + switch(A.stage) + if(5) + var/static/list/banned_reagents = list(/datum/reagent/colorful_reagent/crayonpowder/invisible, /datum/reagent/colorful_reagent/crayonpowder/white) + var/color = pick(subtypesof(/datum/reagent/colorful_reagent/crayonpowder) - banned_reagents) + if(M.reagents.total_volume <= (M.reagents.maximum_volume/10)) // no flooding humans with 1000 units of colorful reagent + M.reagents.add_reagent(color, 5) + else + if (prob(50)) // spam + M.visible_message("[M] looks rather vibrant...", "The colors, man, the colors...") \ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/species.dm b/code/datums/diseases/advance/symptoms/species.dm index a8b18ae735..49a3cf8d07 100644 --- a/code/datums/diseases/advance/symptoms/species.dm +++ b/code/datums/diseases/advance/symptoms/species.dm @@ -14,7 +14,7 @@ /datum/symptom/undead_adaptation/OnRemove(datum/disease/advance/A) A.process_dead = FALSE - A.infectable_biotypes -= MOB_UNDEAD + A.infectable_biotypes &= ~MOB_UNDEAD /datum/symptom/inorganic_adaptation name = "Inorganic Biology" @@ -27,7 +27,8 @@ severity = 0 /datum/symptom/inorganic_adaptation/OnAdd(datum/disease/advance/A) - A.infectable_biotypes |= MOB_INORGANIC + A.infectable_biotypes |= MOB_MINERAL //Mineral covers plasmamen and golems. /datum/symptom/inorganic_adaptation/OnRemove(datum/disease/advance/A) - A.infectable_biotypes -= MOB_INORGANIC \ No newline at end of file + A.infectable_biotypes &= ~MOB_MINERAL + diff --git a/code/datums/diseases/advance/symptoms/symptoms.dm b/code/datums/diseases/advance/symptoms/symptoms.dm index fef6453b3a..a6ea7de5a0 100644 --- a/code/datums/diseases/advance/symptoms/symptoms.dm +++ b/code/datums/diseases/advance/symptoms/symptoms.dm @@ -38,10 +38,11 @@ return CRASH("We couldn't assign an ID!") -// Called when processing of the advance disease that holds this symptom infects a host and upon each Refresh() of that advance disease. +// Called when processing of the advance disease, which holds this symptom, starts. /datum/symptom/proc/Start(datum/disease/advance/A) if(neutered) return FALSE + next_activation = world.time + rand(symptom_delay_min * 10, symptom_delay_max * 10) //so it doesn't instantly activate on infection return TRUE // Called when the advance disease is going to be deleted or when the advance disease stops processing. @@ -59,7 +60,7 @@ next_activation = world.time + rand(symptom_delay_min * 10, symptom_delay_max * 10) return TRUE -/datum/symptom/proc/on_stage_change(datum/disease/advance/A) +/datum/symptom/proc/on_stage_change(new_stage, datum/disease/advance/A) if(neutered) return FALSE return TRUE diff --git a/code/datums/diseases/beesease.dm b/code/datums/diseases/beesease.dm index 074bda0560..ccae692b4b 100644 --- a/code/datums/diseases/beesease.dm +++ b/code/datums/diseases/beesease.dm @@ -10,7 +10,7 @@ viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) desc = "If left untreated subject will regurgitate bees." severity = DISEASE_SEVERITY_MEDIUM - infectable_biotypes = list(MOB_ORGANIC, MOB_UNDEAD) //bees nesting in corpses + infectable_biotypes = MOB_ORGANIC|MOB_UNDEAD //bees nesting in corpses /datum/disease/beesease/stage_act() ..() diff --git a/code/datums/diseases/magnitis.dm b/code/datums/diseases/magnitis.dm index 29e6657e13..0bfb918ba0 100644 --- a/code/datums/diseases/magnitis.dm +++ b/code/datums/diseases/magnitis.dm @@ -10,7 +10,7 @@ permeability_mod = 0.75 desc = "This disease disrupts the magnetic field of your body, making it act as if a powerful magnet. Injections of iron help stabilize the field." severity = DISEASE_SEVERITY_MEDIUM - infectable_biotypes = list(MOB_ORGANIC, MOB_ROBOTIC) + infectable_biotypes = MOB_ORGANIC|MOB_ROBOTIC process_dead = TRUE /datum/disease/magnitis/stage_act() diff --git a/code/datums/diseases/parrotpossession.dm b/code/datums/diseases/parrotpossession.dm index 68e962055a..1a3346d565 100644 --- a/code/datums/diseases/parrotpossession.dm +++ b/code/datums/diseases/parrotpossession.dm @@ -11,7 +11,7 @@ viable_mobtypes = list(/mob/living/carbon/human) desc = "Subject is possessed by the vengeful spirit of a parrot. Call the priest." severity = DISEASE_SEVERITY_MEDIUM - infectable_biotypes = list(MOB_ORGANIC, MOB_UNDEAD, MOB_INORGANIC, MOB_ROBOTIC) + infectable_biotypes = MOB_ORGANIC|MOB_UNDEAD|MOB_ROBOTIC|MOB_MINERAL bypasses_immunity = TRUE //2spook var/mob/living/simple_animal/parrot/Poly/ghost/parrot diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm index bdb05346e4..36c7d70f3c 100644 --- a/code/datums/diseases/transformation.dm +++ b/code/datums/diseases/transformation.dm @@ -168,7 +168,7 @@ stage4 = list("Your skin feels very loose.", "You can feel... something...inside you.") stage5 = list("Your skin feels as if it's about to burst off!") new_form = /mob/living/silicon/robot - infectable_biotypes = list(MOB_ORGANIC, MOB_UNDEAD, MOB_ROBOTIC) + infectable_biotypes = MOB_ORGANIC|MOB_UNDEAD|MOB_ROBOTIC bantype = "Cyborg" /datum/disease/transformation/robot/stage_act() @@ -284,7 +284,7 @@ stage4 = list("You're ravenous.") stage5 = list("You have become a morph.") new_form = /mob/living/simple_animal/hostile/morph - infectable_biotypes = list(MOB_ORGANIC, MOB_INORGANIC, MOB_UNDEAD) //magic! + infectable_biotypes = MOB_ORGANIC|MOB_MINERAL|MOB_UNDEAD //magic! /datum/disease/transformation/gondola name = "Gondola Transformation" diff --git a/code/datums/elements/cleaning.dm b/code/datums/elements/cleaning.dm index e4fb3edd48..3f80204089 100644 --- a/code/datums/elements/cleaning.dm +++ b/code/datums/elements/cleaning.dm @@ -45,4 +45,4 @@ cleaned_human.clean_blood() cleaned_human.wash_cream() cleaned_human.regenerate_icons() - to_chat(cleaned_human, "[src] cleans your face!") + to_chat(cleaned_human, "[AM] cleans your face!") diff --git a/code/datums/elements/firestacker.dm b/code/datums/elements/firestacker.dm new file mode 100644 index 0000000000..39021d23bb --- /dev/null +++ b/code/datums/elements/firestacker.dm @@ -0,0 +1,40 @@ +/** + * Can be applied to /atom/movable subtypes to make them apply fire stacks to things they hit + */ +/datum/element/firestacker + element_flags = ELEMENT_BESPOKE + id_arg_index = 2 + /// How many firestacks to apply per hit + var/amount + +/datum/element/firestacker/Attach(datum/target, amount) + . = ..() + + if(!ismovableatom(target)) + return ELEMENT_INCOMPATIBLE + + src.amount = amount + + RegisterSignal(target, COMSIG_MOVABLE_IMPACT, .proc/impact, override = TRUE) + if(isitem(target)) + RegisterSignal(target, COMSIG_ITEM_ATTACK, .proc/item_attack, override = TRUE) + RegisterSignal(target, COMSIG_ITEM_ATTACK_SELF, .proc/item_attack_self, override = TRUE) + +/datum/element/firestacker/Detach(datum/source, force) + . = ..() + UnregisterSignal(source, list(COMSIG_MOVABLE_IMPACT, COMSIG_ITEM_ATTACK, COMSIG_ITEM_ATTACK_SELF)) + +/datum/element/firestacker/proc/stack_on(datum/owner, mob/living/target) + target.adjust_fire_stacks(amount) + +/datum/element/firestacker/proc/impact(datum/source, atom/hit_atom, datum/thrownthing/throwingdatum) + if(isliving(hit_atom)) + stack_on(source, hit_atom) + +/datum/element/firestacker/proc/item_attack(datum/source, atom/movable/target, mob/living/user) + if(isliving(target)) + stack_on(source, target) + +/datum/element/firestacker/proc/item_attack_self(datum/source, mob/user) + if(isliving(user)) + stack_on(source, user) diff --git a/code/datums/elements/ghost_role_eligibility.dm b/code/datums/elements/ghost_role_eligibility.dm index e57aaddd5a..ab87d7f1d2 100644 --- a/code/datums/elements/ghost_role_eligibility.dm +++ b/code/datums/elements/ghost_role_eligibility.dm @@ -17,7 +17,8 @@ penalty += roundstart_quit_limit - world.time if(penalty) penalty += world.realtime - if(penalty - SSshuttle.realtimeofstart > SSshuttle.auto_call + SSshuttle.emergencyCallTime + SSshuttle.emergencyDockTime + SSshuttle.emergencyEscapeTime) + 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 diff --git a/code/datums/elements/mob_holder.dm b/code/datums/elements/mob_holder.dm index 5b471a0dc7..8687d89b2f 100644 --- a/code/datums/elements/mob_holder.dm +++ b/code/datums/elements/mob_holder.dm @@ -1,5 +1,5 @@ /datum/element/mob_holder - element_flags = ELEMENT_BESPOKE + element_flags = ELEMENT_BESPOKE|ELEMENT_DETACH id_arg_index = 2 var/worn_state var/alt_worn @@ -40,19 +40,19 @@ to_chat(user, "Your hands are full!") return FALSE if(source.buckled) - to_chat(user, "[src] is buckled to something!") + to_chat(user, "[source] is buckled to something!") return FALSE if(source == user) to_chat(user, "You can't pick yourself up.") return FALSE source.visible_message("[user] starts picking up [source].", \ "[user] starts picking you up!") - if(!do_after(user, 20, target = src) || source.buckled) + if(!do_after(user, 20, target = source) || source.buckled) return FALSE source.visible_message("[user] picks up [source]!", \ "[user] picks you up!") - to_chat(user, "You pick [src] up.") + to_chat(user, "You pick [source] up.") source.drop_all_held_items() var/obj/item/clothing/head/mob_holder/holder = new(get_turf(source), source, worn_state, alt_worn, right_hand, left_hand, inv_slots) if(proctype) @@ -93,7 +93,7 @@ lefthand_file = left_hand if(right_hand) righthand_file = right_hand - slot_flags = slots + slot_flags = slots /obj/item/clothing/head/mob_holder/proc/assimilate(mob/living/target) target.setDir(SOUTH) @@ -101,6 +101,8 @@ target.forceMove(src) var/image/I = new //work around to retain the same appearance to the mob idependently from inhands/worn states. I.appearance = target.appearance + I.layer = FLOAT_LAYER //So it doesn't get screwed up by layer overrides. + I.plane = FLOAT_PLANE //Same as above but for planes. I.override = TRUE add_overlay(I) name = target.name @@ -112,23 +114,21 @@ w_class = WEIGHT_CLASS_NORMAL if(MOB_SIZE_LARGE) w_class = WEIGHT_CLASS_HUGE - RegisterSignal(src, COMSIG_CLICK_SHIFT, .proc/examine_held_mob) /obj/item/clothing/head/mob_holder/Destroy() if(held_mob) release() return ..() -/obj/item/clothing/head/mob_holder/proc/examine_held_mob(datum/source, mob/user) - held_mob.ShiftClick(user) - return COMPONENT_DENY_EXAMINATE +/obj/item/clothing/head/mob_holder/examine(mob/user) + return held_mob?.examine(user) || ..() /obj/item/clothing/head/mob_holder/Exited(atom/movable/AM, atom/newloc) . = ..() if(AM == held_mob) held_mob.reset_perspective() held_mob = null - qdel(src) + QDEL_IN(src, 1) //To avoid a qdel loop. /obj/item/clothing/head/mob_holder/Entered(atom/movable/AM, atom/newloc) . = ..() @@ -158,7 +158,7 @@ /obj/item/clothing/head/mob_holder/container_resist() if(isliving(loc)) var/mob/living/L = loc - L.visible_message("[src] escapes from [L]!", "[src] escapes your grip!") + L.visible_message("[held_mob] escapes from [L]!", "[held_mob] escapes your grip!") release() /obj/item/clothing/head/mob_holder/assume_air(datum/gas_mixture/env) @@ -170,7 +170,7 @@ location = location.loc if(ismob(location)) return location.loc.assume_air(env) - return loc.assume_air(env) + return location.assume_air(env) /obj/item/clothing/head/mob_holder/remove_air(amount) var/atom/location = loc @@ -181,4 +181,4 @@ location = location.loc if(ismob(location)) return location.loc.remove_air(amount) - return loc.remove_air(amount) + return location.remove_air(amount) diff --git a/code/datums/elements/swimming.dm b/code/datums/elements/swimming.dm new file mode 100644 index 0000000000..d16ef6625f --- /dev/null +++ b/code/datums/elements/swimming.dm @@ -0,0 +1,21 @@ +/// Just for marking when someone's swimming. +/datum/element/swimming + element_flags = ELEMENT_DETACH + +/datum/element/swimming/Attach(datum/target) + if((. = ..()) == ELEMENT_INCOMPATIBLE) + return + if(!isliving(target)) + return ELEMENT_INCOMPATIBLE + RegisterSignal(target, COMSIG_MOVABLE_MOVED, .proc/check_valid) + ADD_TRAIT(target, TRAIT_SWIMMING, TRAIT_SWIMMING) //seriously there's only one way to get this + +/datum/element/swimming/Detach(datum/target) + . = ..() + UnregisterSignal(target, COMSIG_MOVABLE_MOVED) + REMOVE_TRAIT(target, TRAIT_SWIMMING, TRAIT_SWIMMING) + +/datum/element/swimming/proc/check_valid(datum/source) + var/mob/living/L = source + if(!istype(L.loc, /turf/open/pool)) + source.RemoveElement(/datum/element/swimming) diff --git a/code/datums/elements/wuv.dm b/code/datums/elements/wuv.dm index 55bc9bafad..fffb90c681 100644 --- a/code/datums/elements/wuv.dm +++ b/code/datums/elements/wuv.dm @@ -1,6 +1,6 @@ /datum/element/wuv //D'awwwww - element_flags = ELEMENT_BESPOKE + element_flags = ELEMENT_BESPOKE|ELEMENT_DETACH id_arg_index = 2 //the for the me emote proc call when petted. var/pet_emote diff --git a/code/datums/helper_datums/getrev.dm b/code/datums/helper_datums/getrev.dm index 7d040a4982..0b0fed407c 100644 --- a/code/datums/helper_datums/getrev.dm +++ b/code/datums/helper_datums/getrev.dm @@ -27,7 +27,8 @@ for(var/line in testmerge) var/datum/tgs_revision_information/test_merge/tm = line - msg += "Test merge active of PR #[tm.number] commit [tm.commit]" + msg += "Test merge active of PR #[tm.number] commit [tm.pull_request_commit]" + SSblackbox.record_feedback("associative", "testmerged_prs", 1, list("number" = "[tm.number]", "commit" = "[tm.pull_request_commit]", "title" = "[tm.title]", "author" = "[tm.author]")) if(commit && commit != originmastercommit) msg += "HEAD: [commit]" @@ -75,7 +76,8 @@ else if(!pc) msg += "No commit information" if(world.TgsAvailable()) - msg += "Server tools version: [world.TgsVersion()]" + var/datum/tgs_version/version = world.TgsVersion() + msg += "Server tools version: [version.raw_parameter]" // Game mode odds msg += "
Current Informational Settings:" diff --git a/code/datums/helper_datums/topic_input.dm b/code/datums/helper_datums/topic_input.dm deleted file mode 100644 index d07aec067e..0000000000 --- a/code/datums/helper_datums/topic_input.dm +++ /dev/null @@ -1,62 +0,0 @@ -/datum/topic_input - var/href - var/list/href_list - -/datum/topic_input/New(thref,list/thref_list) - href = thref - href_list = thref_list.Copy() - return - -/datum/topic_input/proc/get(i) - return listgetindex(href_list,i) - -/datum/topic_input/proc/getAndLocate(i) - var/t = get(i) - if(t) - t = locate(t) - if (istext(t)) - t = null - return t || null - -/datum/topic_input/proc/getNum(i) - var/t = get(i) - if(t) - t = text2num(t) - return isnum(t) ? t : null - -/datum/topic_input/proc/getObj(i) - var/t = getAndLocate(i) - return isobj(t) ? t : null - -/datum/topic_input/proc/getMob(i) - var/t = getAndLocate(i) - return ismob(t) ? t : null - -/datum/topic_input/proc/getTurf(i) - var/t = getAndLocate(i) - return isturf(t) ? t : null - -/datum/topic_input/proc/getAtom(i) - return getType(i, /atom) - -/datum/topic_input/proc/getArea(i) - var/t = getAndLocate(i) - return isarea(t) ? t : null - -/datum/topic_input/proc/getStr(i)//params should always be text, but... - var/t = get(i) - return istext(t) ? t : null - -/datum/topic_input/proc/getType(i,type) - var/t = getAndLocate(i) - return istype(t,type) ? t : null - -/datum/topic_input/proc/getPath(i) - var/t = get(i) - if(t) - t = text2path(t) - return ispath(t) ? t : null - -/datum/topic_input/proc/getList(i) - var/t = getAndLocate(i) - return islist(t) ? t : null diff --git a/code/datums/holocall.dm b/code/datums/holocall.dm index 72fe6f5a1c..0f4f02ae2a 100644 --- a/code/datums/holocall.dm +++ b/code/datums/holocall.dm @@ -12,7 +12,12 @@ /mob/camera/aiEye/remote/holo/setLoc() . = ..() var/obj/machinery/holopad/H = origin - H.move_hologram(eye_user, loc) + H?.move_hologram(eye_user, loc) + +/obj/machinery/holopad/remove_eye_control(mob/living/user) + if(user.client) + user.reset_perspective(null) + user.remote_control = null //this datum manages it's own references @@ -54,11 +59,6 @@ /datum/holocall/Destroy() QDEL_NULL(hangup) - var/user_good = !QDELETED(user) - if(user_good) - user.reset_perspective() - user.remote_control = null - if(!QDELETED(eye)) QDEL_NULL(eye) @@ -216,7 +216,7 @@ desc = "Stores recorder holocalls." icon_state = "holodisk" obj_flags = UNIQUE_RENAME - materials = list(MAT_METAL = 100, MAT_GLASS = 100) + custom_materials = list(/datum/material/iron = 100, /datum/material/glass = 100) var/datum/holorecord/record //Preset variables var/preset_image_type diff --git a/code/datums/hud.dm b/code/datums/hud.dm index e2d9bc579f..6b6fcb9691 100644 --- a/code/datums/hud.dm +++ b/code/datums/hud.dm @@ -32,7 +32,7 @@ GLOBAL_LIST_INIT(huds, list( /datum/atom_hud var/list/atom/hudatoms = list() //list of all atoms which display this hud - var/list/mob/hudusers = list() //list with all mobs who can see the hud + var/list/hudusers = list() //list with all mobs who can see the hud var/list/hud_icons = list() //these will be the indexes for the atom's hud_list var/list/next_time_allowed = list() //mobs associated with the next time this hud can be added to them diff --git a/code/datums/materials/_material.dm b/code/datums/materials/_material.dm new file mode 100644 index 0000000000..796ebc42c7 --- /dev/null +++ b/code/datums/materials/_material.dm @@ -0,0 +1,77 @@ +/*! Material datum +Simple datum which is instanced once per type and is used for every object of said material. It has a variety of variables that define behavior. Subtyping from this makes it easier to create your own materials. +*/ + + +/datum/material + var/name = "material" + var/desc = "its..stuff." + ///Var that's mostly used by science machines to identify specific materials, should most likely be phased out at some point + var/id = "mat" + ///Base color of the material, is used for greyscale. Item isn't changed in color if this is null. + var/color + ///Base alpha of the material, is used for greyscale icons. + var/alpha + ///Materials "Traits". its a map of key = category | Value = Bool. Used to define what it can be used for + var/list/categories = list() + ///The type of sheet this material creates. This should be replaced as soon as possible by greyscale sheets + var/sheet_type + ///This is a modifier for force, and resembles the strength of the material + var/strength_modifier = 1 + ///This is a modifier for integrity, and resembles the strength of the material + var/integrity_modifier = 1 + ///This is the amount of value per 1 unit of the material + var/value_per_unit = 0 + ///Armor modifiers, multiplies an items normal armor vars by these amounts. + var/armor_modifiers = list("melee" = 1, "bullet" = 1, "laser" = 1, "energy" = 1, "bomb" = 1, "bio" = 1, "rad" = 1, "fire" = 1, "acid" = 1) + +///This proc is called when the material is added to an object. +/datum/material/proc/on_applied(atom/source, amount, material_flags) + if(material_flags & MATERIAL_COLOR) //Prevent changing things with pre-set colors, to keep colored toolboxes their looks for example + if(color) //Do we have a custom color? + source.add_atom_colour(color, FIXED_COLOUR_PRIORITY) + if(alpha) + source.alpha = alpha + + if(material_flags & MATERIAL_ADD_PREFIX) + source.name = "[name] [source.name]" + + if(istype(source, /obj)) //objs + on_applied_obj(source, amount, material_flags) + +///This proc is called when the material is added to an object specifically. +/datum/material/proc/on_applied_obj(var/obj/o, amount, material_flags) + var/new_max_integrity = CEILING(o.max_integrity * integrity_modifier, 1) + o.modify_max_integrity(new_max_integrity) + o.force *= strength_modifier + o.throwforce *= strength_modifier + + var/list/temp_armor_list = list() //Time to add armor modifiers! + + if(!istype(o.armor)) + return + var/list/current_armor = o.armor?.getList() + + for(var/i in current_armor) + temp_armor_list[i] = current_armor[i] * armor_modifiers[i] + o.armor = getArmor(arglist(temp_armor_list)) + +///This proc is called when the material is removed from an object. +/datum/material/proc/on_removed(atom/source, material_flags) + if(material_flags & MATERIAL_COLOR) //Prevent changing things with pre-set colors, to keep colored toolboxes their looks for example + if(color) + source.remove_atom_colour(FIXED_COLOUR_PRIORITY, color) + source.alpha = initial(source.alpha) + + if(material_flags & MATERIAL_ADD_PREFIX) + source.name = initial(source.name) + + if(istype(source, /obj)) //objs + on_removed_obj(source, material_flags) + +///This proc is called when the material is removed from an object specifically. +/datum/material/proc/on_removed_obj(var/obj/o, amount, material_flags) + var/new_max_integrity = initial(o.max_integrity) + o.modify_max_integrity(new_max_integrity) + o.force = initial(o.force) + o.throwforce = initial(o.throwforce) diff --git a/code/datums/materials/basemats.dm b/code/datums/materials/basemats.dm new file mode 100644 index 0000000000..6511950c87 --- /dev/null +++ b/code/datums/materials/basemats.dm @@ -0,0 +1,210 @@ +///Has no special properties. +/datum/material/iron + name = "iron" + id = "iron" + desc = "Common iron ore often found in sedimentary and igneous layers of the crust." + color = "#878687" + categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE) + sheet_type = /obj/item/stack/sheet/metal + value_per_unit = 0.0025 + +///Breaks extremely easily but is transparent. +/datum/material/glass + name = "glass" + id = "glass" + desc = "Glass forged by melting sand." + color = "#88cdf1" + alpha = 150 + categories = list(MAT_CATEGORY_RIGID = TRUE) + integrity_modifier = 0.1 + sheet_type = /obj/item/stack/sheet/glass + value_per_unit = 0.0025 + armor_modifiers = list("melee" = 0.2, "bullet" = 0.2, "laser" = 0, "energy" = 1, "bomb" = 0, "bio" = 0.2, "rad" = 0.2, "fire" = 1, "acid" = 0.2) // yeah ok retard + +/* +Color matrices are like regular colors but unlike with normal colors, you can go over 255 on a channel. +Unless you know what you're doing, only use the first three numbers. They're in RGB order. +*/ + +///Has no special properties. Could be good against vampires in the future perhaps. +/datum/material/silver + name = "silver" + id = "silver" + desc = "Silver" + color = list(255/255, 284/255, 302/255,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0) + categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE) + sheet_type = /obj/item/stack/sheet/mineral/silver + value_per_unit = 0.025 + +///Slight force increase +/datum/material/gold + name = "gold" + id = "gold" + desc = "Gold" + color = list(340/255, 240/255, 50/255,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0) //gold is shiny, but not as bright as bananium + strength_modifier = 1.2 + categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE) + sheet_type = /obj/item/stack/sheet/mineral/gold + value_per_unit = 0.0625 + armor_modifiers = list("melee" = 1.1, "bullet" = 1.1, "laser" = 1.15, "energy" = 1.15, "bomb" = 1, "bio" = 1, "rad" = 1, "fire" = 0.7, "acid" = 1.1) + +///Has no special properties +/datum/material/diamond + name = "diamond" + id = "diamond" + desc = "Highly pressurized carbon" + color = list(48/255, 272/255, 301/255,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0) + alpha = 132 + categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE) + sheet_type = /obj/item/stack/sheet/mineral/diamond + value_per_unit = 0.25 + +///Is slightly radioactive +/datum/material/uranium + name = "uranium" + id = "uranium" + desc = "Uranium" + color = rgb(48, 237, 26) + categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE) + sheet_type = /obj/item/stack/sheet/mineral/uranium + value_per_unit = 0.05 + armor_modifiers = list("melee" = 1.5, "bullet" = 1.4, "laser" = 0.5, "energy" = 0.5, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 1, "acid" = 1) + +/datum/material/uranium/on_applied(atom/source, amount, material_flags) + . = ..() + source.AddComponent(/datum/component/radioactive, amount / 20, source, 0) //half-life of 0 because we keep on going. + +/datum/material/uranium/on_removed(atom/source, material_flags) + . = ..() + qdel(source.GetComponent(/datum/component/radioactive)) + + +///Adds firestacks on hit (Still needs support to turn into gas on destruction) +/datum/material/plasma + name = "plasma" + id = "plasma" + desc = "Isn't plasma a state of matter? Oh whatever." + color = list(298/255, 46/255, 352/255,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0) + categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE) + sheet_type = /obj/item/stack/sheet/mineral/plasma + value_per_unit = 0.1 + armor_modifiers = list("melee" = 1.4, "bullet" = 0.7, "laser" = 0, "energy" = 1.2, "bomb" = 0, "bio" = 1.2, "rad" = 1, "fire" = 0, "acid" = 0.5) + +/datum/material/plasma/on_applied(atom/source, amount, material_flags) + . = ..() + if(ismovableatom(source)) + source.AddElement(/datum/element/firestacker) + source.AddComponent(/datum/component/explodable, 0, 0, amount / 2500, amount / 1250) + +/datum/material/plasma/on_removed(atom/source, material_flags) + . = ..() + source.RemoveElement(/datum/element/firestacker) + qdel(source.GetComponent(/datum/component/explodable)) + +///Can cause bluespace effects on use. (Teleportation) (Not yet implemented) +/datum/material/bluespace + name = "bluespace crystal" + id = "bluespace_crystal" + desc = "Crystals with bluespace properties" + color = list(119/255, 217/255, 396/255,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0) + alpha = 200 + categories = list(MAT_CATEGORY_ORE = TRUE) + sheet_type = /obj/item/stack/sheet/bluespace_crystal + value_per_unit = 0.15 + +///Honks and slips +/datum/material/bananium + name = "bananium" + id = "bananium" + desc = "Material with hilarious properties" + color = list(460/255, 464/255, 0, 0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0) //obnoxiously bright yellow + categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE) + sheet_type = /obj/item/stack/sheet/mineral/bananium + value_per_unit = 0.5 + armor_modifiers = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 100, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 0) //Clowns cant be blown away + +/datum/material/bananium/on_applied(atom/source, amount, material_flags) + . = ..() + source.AddComponent(/datum/component/squeak, list('sound/items/bikehorn.ogg'=1), 50) + source.AddComponent(/datum/component/slippery, min(amount / 10, 80)) + +/datum/material/bananium/on_removed(atom/source, amount, material_flags) + . = ..() + qdel(source.GetComponent(/datum/component/slippery)) + qdel(source.GetComponent(/datum/component/squeak)) + + +///Mediocre force increase +/datum/material/titanium + name = "titanium" + id = "titanium" + desc = "Titanium" + color = "#b3c0c7" + strength_modifier = 1.3 + categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE) + sheet_type = /obj/item/stack/sheet/mineral/titanium + value_per_unit = 0.0625 + armor_modifiers = list("melee" = 1.35, "bullet" = 1.3, "laser" = 1.3, "energy" = 1.25, "bomb" = 1.25, "bio" = 1, "rad" = 1, "fire" = 0.7, "acid" = 1) + +/datum/material/runite + name = "runite" + id = "runite" + desc = "Runite" + color = "#3F9995" + strength_modifier = 1.3 + categories = list(MAT_CATEGORY_RIGID = TRUE) + sheet_type = /obj/item/stack/sheet/mineral/runite + armor_modifiers = list("melee" = 1.35, "bullet" = 2, "laser" = 0.5, "energy" = 1.25, "bomb" = 1.25, "bio" = 1, "rad" = 1, "fire" = 1.4, "acid" = 1) //rune is weak against magic lasers but strong against bullets. This is the combat triangle. + +///Force decrease +/datum/material/plastic + name = "plastic" + id = "plastic" + desc = "Plastic" + color = "#caccd9" + strength_modifier = 0.85 + sheet_type = /obj/item/stack/sheet/plastic + value_per_unit = 0.0125 + armor_modifiers = list("melee" = 1.5, "bullet" = 1.1, "laser" = 0.3, "energy" = 0.5, "bomb" = 1, "bio" = 1, "rad" = 1, "fire" = 1.1, "acid" = 1) + +///Force decrease and mushy sound effect. (Not yet implemented) +/datum/material/biomass + name = "biomass" + id = "biomass" + desc = "Organic matter" + color = "#735b4d" + strength_modifier = 0.8 + value_per_unit = 0.025 + +///Stronk force increase +/datum/material/adamantine + name = "adamantine" + id = "adamantine" + desc = "A powerful material made out of magic, I mean science!" + color = "#6d7e8e" + strength_modifier = 1.5 + categories = list(MAT_CATEGORY_RIGID = TRUE) + sheet_type = /obj/item/stack/sheet/mineral/adamantine + value_per_unit = 0.25 + armor_modifiers = list("melee" = 1.5, "bullet" = 1.5, "laser" = 1.3, "energy" = 1.3, "bomb" = 1, "bio" = 1, "rad" = 1, "fire" = 2.5, "acid" = 1) + +///RPG Magic. (Admin only) +/datum/material/mythril + name = "mythril" + id = "mythril" + desc = "How this even exists is byond me" + color = "#f2d5d7" + categories = list(MAT_CATEGORY_RIGID = TRUE) + sheet_type = /obj/item/stack/sheet/mineral/mythril + value_per_unit = 0.75 + armor_modifiers = list("melee" = 2, "bullet" = 2, "laser" = 2, "energy" = 2, "bomb" = 2, "bio" = 2, "rad" = 2, "fire" = 2, "acid" = 2) + +/datum/material/mythril/on_applied_obj(atom/source, amount, material_flags) + . = ..() + if(istype(source, /obj/item)) + source.AddComponent(/datum/component/fantasy) + +/datum/material/mythril/on_removed_obj(atom/source, material_flags) + . = ..() + if(istype(source, /obj/item)) + qdel(source.GetComponent(/datum/component/fantasy)) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 61d467a20d..4689d52bd9 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -61,7 +61,6 @@ var/late_joiner = FALSE var/force_escaped = FALSE // Set by Into The Sunset command of the shuttle manipulator - var/list/learned_recipes //List of learned recipe TYPES. /datum/mind/New(var/key) @@ -715,6 +714,11 @@ if(G) G.reenter_corpse() +/// Sets our can_hijack to the fastest speed our antag datums allow. +/datum/mind/proc/get_hijack_speed() + . = 0 + for(var/datum/antagonist/A in antag_datums) + . = max(., A.hijack_speed()) /datum/mind/proc/has_objective(objective_type) for(var/datum/antagonist/A in antag_datums) diff --git a/code/datums/ruins/lavaland.dm b/code/datums/ruins/lavaland.dm index 7ea2d2615d..02c12a34f4 100644 --- a/code/datums/ruins/lavaland.dm +++ b/code/datums/ruins/lavaland.dm @@ -224,6 +224,13 @@ allow_duplicates = FALSE cost = 5 +/datum/map_template/ruin/lavaland/dark_wizards + name = "Dark Wizard Altar" + id = "dark_wizards" + description = "A ruin with dark wizards. What secret do they guard?" + suffix = "lavaland_surface_wizard.dmm" + cost = 5 + /datum/map_template/ruin/lavaland/puzzle name = "Ancient Puzzle" id = "puzzle" @@ -238,4 +245,14 @@ suffix = "lavaland_surface_elite_tumor.dmm" cost = 5 always_place = TRUE - allow_duplicates = TRUE + allow_duplicates = TRUE + +// Mining Base +/datum/map_template/ruin/lavaland/mining_base //THIS IS THE MINING BASE. DO NOT FUCK WITH THIS UNLESS YOU ARE 100% CERTAIN YOU KNOW WHAT YOU'RE DOING, OR THE MINING BASE WILL DISAPPEAR + name = "Mining Base" + id = "miningbase" + description = "The mining base that Nanotrasen uses for their mining operations." + suffix = "miningbase.dmm" + cost = 0 + always_place = TRUE + unpickable = TRUE \ No newline at end of file diff --git a/code/datums/ruins/space.dm b/code/datums/ruins/space.dm index 34a676603e..da5398713e 100644 --- a/code/datums/ruins/space.dm +++ b/code/datums/ruins/space.dm @@ -311,6 +311,12 @@ name = "Space Hermit" description = "A late awakening cryo pod in a crashed escape pod wakes up to find what befell of his fellow survivors. Contains all the necessary resources to actually make it out alive. Good luck." +/datum/map_template/ruin/space/clericden + id = "clericden" + suffix = "clericden.dmm" + name = "Cleric's Den" + description = "Once part of a larger monastery, this holy order of long dead clerics practiced far less non-violence than they preached. Appears to have been untouched by looters, however. Odd." + /datum/map_template/ruin/space/advancedlab id = "advancedlab" suffix = "advancedlab.dmm" diff --git a/code/datums/ruins/station.dm b/code/datums/ruins/station.dm index 17d5a9e1e2..9316a4b022 100644 --- a/code/datums/ruins/station.dm +++ b/code/datums/ruins/station.dm @@ -37,27 +37,20 @@ /datum/map_template/ruin/station/box/engine/teg id = "engine_teg" - suffix = "Box/Engine/engine_tesla.dmm" + suffix = "Box/Engine/engine_teg.dmm" name = "Box TEG" /datum/map_template/ruin/station/box/engine/empty id = "engine_empty" - suffix = "Box/Engine/engine_tesla.dmm" + suffix = "Box/Engine/empty.dmm" name = "Box Empty" /datum/map_template/ruin/station/box/engine/am id = "engine_am" - suffix = "Box/Engine/engine_tesla.dmm" + suffix = "Box/Engine/engine_am.dmm" name = "Box Antimatter" /datum/map_template/ruin/station/box/engine/budget id = "engine_budget" - suffix = "Box/Engine/engine_tesla.dmm" + suffix = "Box/Engine/budget.dmm" name = "Box P.A.C.M.A.N" - -// Lavaland - // Mining Base -/datum/map_template/ruin/station/lavaland/mining_base - id = "mining_public_01" - suffix = "Lavaland/Mining_Station/Mining_Station_Public_01.dmm" - name = "Public Mining Base" \ No newline at end of file diff --git a/code/datums/shuttles.dm b/code/datums/shuttles.dm index 2b76850b44..779de8ff03 100644 --- a/code/datums/shuttles.dm +++ b/code/datums/shuttles.dm @@ -287,6 +287,12 @@ credit_cost = 4000 description = "A fairly standard shuttle, though larger and slightly better equipped than the Box Station variant." +/datum/map_template/shuttle/emergency/kilo + suffix = "kilo" + name = "Kilo Station Emergency Shuttle" + credit_cost = 5000 + description = "A fully functional shuttle including a complete infirmary, storage facilties and regular amenities." + /datum/map_template/shuttle/emergency/mini suffix = "mini" name = "Ministation emergency shuttle" @@ -419,6 +425,11 @@ name = "fancy transport ferry" description = "At some point, someone upgraded the ferry to have fancier flooring... and less seats." +/datum/map_template/shuttle/ferry/kilo + suffix = "kilo" + name = "kilo transport ferry" + description = "Standard issue CentCom Ferry for Kilo pattern stations. Includes additional equipment and rechargers." + /datum/map_template/shuttle/whiteship/box suffix = "box" name = "Hospital Ship" @@ -447,6 +458,10 @@ suffix = "box" name = "supply shuttle (Box)" +/datum/map_template/shuttle/cargo/kilo + suffix = "kilo" + name = "supply shuttle (Kilo)" + /datum/map_template/shuttle/cargo/birdboat suffix = "birdboat" name = "supply shuttle (Birdboat)" @@ -481,6 +496,10 @@ suffix = "box" name = "labour shuttle (Box)" +/datum/map_template/shuttle/labour/kilo + suffix = "kilo" + name = "labour shuttle (Kilo)" + /datum/map_template/shuttle/infiltrator/basic suffix = "basic" name = "basic syndicate infiltrator" @@ -493,6 +512,10 @@ suffix = "delta" name = "mining shuttle (Delta)" +/datum/map_template/shuttle/mining/kilo + suffix = "kilo" + name = "mining shuttle (Kilo)" + /datum/map_template/shuttle/labour/delta suffix = "delta" name = "labour shuttle (Delta)" @@ -501,10 +524,18 @@ suffix = "meta" name = "lavaland shuttle (Meta)" +/datum/map_template/shuttle/labour/kilo + suffix = "kilo" + name = "labour shuttle (Kilo)" + /datum/map_template/shuttle/arrival/delta suffix = "delta" name = "arrival shuttle (Delta)" +/datum/map_template/shuttle/arrival/kilo + suffix = "kilo" + name = "arrival shuttle (Kilo)" + /datum/map_template/shuttle/arrival/pubby suffix = "pubby" name = "arrival shuttle (Pubby)" @@ -559,4 +590,4 @@ /datum/map_template/shuttle/snowdin/excavation suffix = "excavation" - name = "Snowdin Excavation Elevator" \ No newline at end of file + name = "Snowdin Excavation Elevator" diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index 2e46046a7e..5058dd0221 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -33,7 +33,6 @@ if(owner.getStaminaLoss()) owner.adjustStaminaLoss(-0.3) //reduce stamina loss by 0.3 per tick, 6 per 2 seconds - //UNCONSCIOUS /datum/status_effect/incapacitating/unconscious id = "unconscious" @@ -80,11 +79,11 @@ desc = "You've fallen asleep. Wait a bit and you should wake up. Unless you don't, considering how helpless you are." icon_state = "asleep" -/datum/status_effect/no_combat_mode/ +/datum/status_effect/no_combat_mode id = "no_combat_mode" - blocks_combatmode = TRUE alert_type = null status_type = STATUS_EFFECT_REPLACE + blocks_combatmode = TRUE /datum/status_effect/no_combat_mode/on_creation(mob/living/new_owner, set_duration) if(isnum(set_duration)) @@ -102,42 +101,67 @@ /datum/status_effect/no_combat_mode/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() . = ..() REMOVE_TRAIT(owner, TRAIT_MUTE, "mesmerize") + owner.remove_movespeed_modifier("[STATUS_EFFECT_MESMERIZE]_[id]") /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.." + desc = "You cant tear your sight from who is in front of you... their gaze is simply too enthralling.." icon = 'icons/mob/actions/bloodsucker.dmi' icon_state = "power_mez" -/datum/status_effect/no_combat_mode/electrode +/datum/status_effect/electrode id = "tased" + var/slowdown = 1.5 + var/slowdown_priority = 50 //to make sure the stronger effect overrides + var/affect_crawl = FALSE + var/nextmove_modifier = 1 + var/stamdmg_per_ds = 1 //a 20 duration would do 20 stamdmg, disablers do 24 or something + var/last_tick = 0 //fastprocess processing speed is a goddamn sham, don't trust it. -/datum/status_effect/no_combat_mode/electrode/on_creation(mob/living/new_owner, set_duration) +/datum/status_effect/electrode/on_creation(mob/living/new_owner, set_duration) if(isnum(set_duration)) //TODO, figure out how to grab from subtype duration = set_duration . = ..() + last_tick = world.time + if(iscarbon(owner)) + var/mob/living/carbon/C = owner + if(C.combatmode) + C.toggle_combat_mode(TRUE) + C.add_movespeed_modifier("[MOVESPEED_ID_TASED_STATUS]_[id]", TRUE, priority = slowdown_priority, override = TRUE, multiplicative_slowdown = slowdown, blacklisted_movetypes = affect_crawl? NONE : CRAWLING) + +/datum/status_effect/electrode/on_remove() + if(iscarbon(owner)) + var/mob/living/carbon/C = owner + C.remove_movespeed_modifier("[MOVESPEED_ID_TASED_STATUS]_[id]") + . = ..() + +/datum/status_effect/electrode/tick() + var/diff = world.time - last_tick + if(owner) + owner.adjustStaminaLoss(max(0, stamdmg_per_ds * diff)) //if you really want to try to stamcrit someone with a taser alone, you can, but it'll take time and good timing. + last_tick = world.time + +/datum/status_effect/electrode/nextmove_modifier() //why is this a proc. its no big deal since this doesnt get called often at all but literally w h y + return nextmove_modifier + +/datum/status_effect/electrode/no_combat_mode + id = "tased_strong" + slowdown = 8 + slowdown_priority = 100 + nextmove_modifier = 2 + blocks_combatmode = TRUE + +/datum/status_effect/electrode/no_combat_mode/on_creation(mob/living/new_owner, set_duration) + . = ..() if(iscarbon(owner)) var/mob/living/carbon/C = owner if(C.combatmode) C.toggle_combat_mode(TRUE) - C.add_movespeed_modifier(MOVESPEED_ID_TASED_STATUS, TRUE, override = TRUE, multiplicative_slowdown = 8) - -/datum/status_effect/no_combat_mode/electrode/on_remove() - if(iscarbon(owner)) - var/mob/living/carbon/C = owner - C.remove_movespeed_modifier(MOVESPEED_ID_TASED_STATUS) - . = ..() - -/datum/status_effect/no_combat_mode/electrode/tick() - if(owner) - owner.adjustStaminaLoss(5) //if you really want to try to stamcrit someone with a taser alone, you can, but it'll take time and good timing. - -/datum/status_effect/no_combat_mode/electrode/nextmove_modifier() //why is this a proc. its no big deal since this doesnt get called often at all but literally w h y - return 2 //OTHER DEBUFFS /datum/status_effect/his_wrath //does minor damage over time unless holding His Grace @@ -587,6 +611,19 @@ icon_state = "ichorial_stain" alerttooltipstyle = "clockcult" +/datum/status_effect/electrostaff + id = "electrostaff" + alert_type = null + status_type = STATUS_EFFECT_REPLACE + +/datum/status_effect/electrostaff/on_creation(mob/living/new_owner, set_duration) + if(isnum(set_duration)) + duration = set_duration + . = ..() + owner.add_movespeed_modifier(MOVESPEED_ID_ELECTROSTAFF, multiplicative_slowdown = 1, movetypes = GROUND) + +/datum/status_effect/electrostaff/on_remove() + owner.remove_movespeed_modifier(MOVESPEED_ID_ELECTROSTAFF) //GOLEM GANG diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index faa7eec392..9c2128163f 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -55,6 +55,8 @@ GLOBAL_LIST_EMPTY(family_heirlooms) heirloom_type = pick(/obj/item/cultivator, /obj/item/reagent_containers/glass/bucket, /obj/item/storage/bag/plants, /obj/item/toy/plush/beeplushie) if("Medical Doctor") heirloom_type = /obj/item/healthanalyzer/advanced + if("Paramedic") + heirloom_type = pick(/obj/item/clothing/neck/stethoscope, /obj/item/bodybag) if("Station Engineer") heirloom_type = /obj/item/wirecutters/brass if("Atmospheric Technician") @@ -144,9 +146,8 @@ GLOBAL_LIST_EMPTY(family_heirlooms) /datum/quirk/nearsighted/on_spawn() var/mob/living/carbon/human/H = quirk_holder var/obj/item/clothing/glasses/regular/glasses = new(get_turf(H)) - H.put_in_hands(glasses) - H.equip_to_slot(glasses, SLOT_GLASSES) - H.regenerate_icons() //this is to remove the inhand icon, which persists even if it's not in their hands + if(!H.equip_to_slot_if_possible(glasses, SLOT_GLASSES)) + H.put_in_hands(glasses) /datum/quirk/nyctophobia name = "Nyctophobia" diff --git a/code/datums/weather/weather.dm b/code/datums/weather/weather.dm index 01b9facbb8..6761ecbb4c 100644 --- a/code/datums/weather/weather.dm +++ b/code/datums/weather/weather.dm @@ -61,7 +61,7 @@ if(A.z in impacted_z_levels) impacted_areas |= A weather_duration = rand(weather_duration_lower, weather_duration_upper) - START_PROCESSING(SSweather, src) + START_PROCESSING(SSweather, src) //The reason this doesn't start and stop at main stage is because processing list is also used to see active running weathers (for example, you wouldn't want two ash storms starting at once.) update_areas() for(var/M in GLOB.player_list) var/turf/mob_turf = get_turf(M) @@ -107,6 +107,14 @@ STOP_PROCESSING(SSweather, src) update_areas() +/datum/weather/process() + if(aesthetic || (stage != MAIN_STAGE)) + return + for(var/i in GLOB.mob_living_list) + var/mob/living/L = i + if(can_weather_act(L)) + weather_act(L) + /datum/weather/proc/can_weather_act(mob/living/L) //Can this weather impact a mob? var/turf/mob_turf = get_turf(L) if(mob_turf && !(mob_turf.z in impacted_z_levels)) diff --git a/code/datums/wires/airlock.dm b/code/datums/wires/airlock.dm index 315cfa59d6..b6699540c3 100644 --- a/code/datums/wires/airlock.dm +++ b/code/datums/wires/airlock.dm @@ -52,7 +52,7 @@ /datum/wires/airlock/interactable(mob/user) var/obj/machinery/door/airlock/A = holder - if(!issilicon(user) && A.isElectrified() && A.shock(user, 100)) + if(!A.hasSiliconAccessInArea(user) && A.isElectrified() && A.shock(user, 100)) return FALSE if(A.panel_open) return TRUE diff --git a/code/datums/wires/vending.dm b/code/datums/wires/vending.dm index 0c66f26a92..114791e873 100644 --- a/code/datums/wires/vending.dm +++ b/code/datums/wires/vending.dm @@ -12,7 +12,7 @@ /datum/wires/vending/interactable(mob/user) var/obj/machinery/vending/V = holder - if(!issilicon(user) && V.seconds_electrified && V.shock(user, 100)) + if(!V.hasSiliconAccessInArea(user) && V.seconds_electrified && V.shock(user, 100)) return FALSE if(V.panel_open) return TRUE diff --git a/code/game/area/Space_Station_13_areas.dm b/code/game/area/Space_Station_13_areas.dm index ad4c0c232d..be2dce91a2 100644 --- a/code/game/area/Space_Station_13_areas.dm +++ b/code/game/area/Space_Station_13_areas.dm @@ -1245,6 +1245,22 @@ NOTE: there are two lists of areas in the end of this file: centcom and station icon_state = "storage_wing" +// Vacant Rooms + +/area/vacant_room + name = "Vacant Room" + ambientsounds = MAINTENANCE + icon_state = "vacant_room" + +/area/vacant_room/office + name = "Vacant Office" + icon_state = "vacant_room" + +/area/vacant_room/commissary + name = "Vacant Commissary" + icon_state = "vacant_room" + + //AI /area/ai_monitored/security/armory @@ -1367,3 +1383,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station /area/tcommsat/lounge name = "Telecommunications Satellite Lounge" icon_state = "tcomsatlounge" + +/area/crew_quarters/fitness/pool + name = "Pool Area" + icon_state = "pool" diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 7e224080b9..4adfdf72d2 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -6,7 +6,6 @@ var/flags_1 = NONE var/interaction_flags_atom = NONE - var/ghost_flags = NONE var/datum/reagents/reagents = null //This atom's HUD (med/sec, etc) images. Associative list. @@ -39,6 +38,13 @@ var/rad_flags = NONE // Will move to flags_1 when i can be arsed to var/rad_insulation = RAD_NO_INSULATION + ///The custom materials this atom is made of, used by a lot of things like furniture, walls, and floors (if I finish the functionality, that is.) + var/list/custom_materials + ///Bitfield for how the atom handles materials. + var/material_flags = NONE + ///Modifier that raises/lowers the effect of the amount of a material, prevents small and easy to get items from being death machines. + var/material_modifier = 1 + var/icon/blood_splatter_icon var/list/fingerprints var/list/fingerprintshidden @@ -90,6 +96,12 @@ if (canSmoothWith) canSmoothWith = typelist("canSmoothWith", canSmoothWith) + var/temp_list = list() + for(var/i in custom_materials) + temp_list[getmaterialref(i)] = custom_materials[i] //Get the proper instanced version + custom_materials = null //Null the list to prepare for applying the materials properly + set_custom_materials(temp_list) + ComponentInitialize() return INITIALIZE_HINT_NORMAL @@ -291,6 +303,11 @@ if(desc) . += desc + if(custom_materials) + for(var/i in custom_materials) + var/datum/material/M = i + . += "It is made out of [M.name]." + if(reagents) if(reagents.reagents_holder_flags & TRANSPARENT) . += "It contains:" @@ -873,3 +890,26 @@ Proc for attack log creation, because really why not /atom/proc/intercept_zImpact(atom/movable/AM, levels = 1) . |= SEND_SIGNAL(src, COMSIG_ATOM_INTERCEPT_Z_FALL, AM, levels) + +///Sets the custom materials for an item. +/atom/proc/set_custom_materials(var/list/materials, multiplier = 1) + + if(!materials) + materials = custom_materials + + if(custom_materials) //Only runs if custom materials existed at first. Should usually be the case but check anyways + for(var/i in custom_materials) + var/datum/material/custom_material = getmaterialref(i) + custom_material.on_removed(src, material_flags) //Remove the current materials + + if(!length(materials)) + return + + custom_materials = list() //Reset the list + + for(var/x in materials) + var/datum/material/custom_material = getmaterialref(x) + + if(!(material_flags & MATERIAL_NO_EFFECTS)) + custom_material.on_applied(src, materials[custom_material] * multiplier * material_modifier, material_flags) + custom_materials[custom_material] += materials[x] * multiplier diff --git a/code/game/gamemodes/bloodsucker/bloodsucker.dm b/code/game/gamemodes/bloodsucker/bloodsucker.dm index ca2ebfe00d..a45e989318 100644 --- a/code/game/gamemodes/bloodsucker/bloodsucker.dm +++ b/code/game/gamemodes/bloodsucker/bloodsucker.dm @@ -7,7 +7,7 @@ // LISTS // var/list/vassal_allowed_antags = list(/datum/antagonist/brother, /datum/antagonist/traitor, /datum/antagonist/traitor/internal_affairs, /datum/antagonist/survivalist, \ - /datum/antagonist/rev, /datum/antagonist/nukeop, /datum/antagonist/pirate, /datum/antagonist/cult, /datum/antagonist/abductee) + /datum/antagonist/rev, /datum/antagonist/nukeop, /datum/antagonist/pirate, /datum/antagonist/cult, /datum/antagonist/abductee, /datum/antagonist/valentine, /datum/antagonist/heartbreaker,) // The antags you're allowed to be if turning Vassal. /proc/isvamp(mob/living/M) return istype(M) && M.mind && M.mind.has_antag_datum(/datum/antagonist/bloodsucker) diff --git a/code/game/gamemodes/clown_ops/clown_weapons.dm b/code/game/gamemodes/clown_ops/clown_weapons.dm index b054ff89af..0a231a5ff1 100644 --- a/code/game/gamemodes/clown_ops/clown_weapons.dm +++ b/code/game/gamemodes/clown_ops/clown_weapons.dm @@ -40,14 +40,14 @@ /obj/item/clothing/shoes/clown_shoes/banana_shoes/combat/Initialize() . = ..() var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container) - bananium.insert_amount(max_recharge, MAT_BANANIUM) + bananium.insert_amount_mat(max_recharge, /datum/material/bananium) START_PROCESSING(SSobj, src) /obj/item/clothing/shoes/clown_shoes/banana_shoes/combat/process() var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container) - var/bananium_amount = bananium.amount(MAT_BANANIUM) + var/bananium_amount = bananium.get_material_amount(/datum/material/bananium) if(bananium_amount < max_recharge) - bananium.insert_amount(min(recharge_rate, max_recharge - bananium_amount), MAT_BANANIUM) + bananium.insert_amount_mat(min(recharge_rate, max_recharge - bananium_amount), /datum/material/bananium) /obj/item/clothing/shoes/clown_shoes/banana_shoes/combat/attack_self(mob/user) ui_action_click(user) @@ -279,7 +279,6 @@ internals_req_access = list(ACCESS_SYNDICATE) wreckage = /obj/structure/mecha_wreckage/honker/dark max_equip = 3 - spawn_tracked = FALSE /obj/mecha/combat/honker/dark/GrantActions(mob/living/user, human_occupant = 0) ..() diff --git a/code/game/gamemodes/dynamic/dynamic.dm b/code/game/gamemodes/dynamic/dynamic.dm index 6fe52b0f8d..4c3ef824b9 100644 --- a/code/game/gamemodes/dynamic/dynamic.dm +++ b/code/game/gamemodes/dynamic/dynamic.dm @@ -41,7 +41,7 @@ GLOBAL_LIST_EMPTY(dynamic_forced_roundstart_ruleset) // Forced threat level, setting this to zero or higher forces the roundstart threat to the value. GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1) -GLOBAL_VAR_INIT(dynamic_storyteller_type, null) +GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic) /datum/game_mode/dynamic name = "dynamic mode" @@ -672,7 +672,7 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, null) // Time to inject some threat into the round if(EMERGENCY_ESCAPED_OR_ENDGAMED) // Unless the shuttle is gone return - if((world.realtime - SSshuttle.realtimeofstart) > SSshuttle.auto_call) // no rules after shuttle is auto-called + if(SSshuttle.endvote_passed) // no rules after shuttle call is voted return message_admins("DYNAMIC: Checking for midround injection.") log_game("DYNAMIC: Checking for midround injection.") @@ -748,7 +748,7 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, null) return if(EMERGENCY_ESCAPED_OR_ENDGAMED) // No more rules after the shuttle has left return - if((world.realtime - SSshuttle.realtimeofstart) > SSshuttle.auto_call) // no rules after shuttle is auto-called + if(SSshuttle.endvote_passed) // no rules after shuttle is auto-called return update_playercounts() diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm index abd560171e..7ad4cee884 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm @@ -61,7 +61,7 @@ trimmed_list.Remove(M) continue if (M.mind) - if (restrict_ghost_roles && M.mind.assigned_role in GLOB.exp_specialmap[EXP_TYPE_SPECIAL]) // Are they playing a ghost role? + if (restrict_ghost_roles && (M.mind.assigned_role in GLOB.exp_specialmap[EXP_TYPE_SPECIAL])) // Are they playing a ghost role? trimmed_list.Remove(M) continue if (M.mind.assigned_role in restricted_roles) // Does their job allow it? diff --git a/code/game/gamemodes/dynamic/dynamic_storytellers.dm b/code/game/gamemodes/dynamic/dynamic_storytellers.dm index 303c436f99..069c73a421 100644 --- a/code/game/gamemodes/dynamic/dynamic_storytellers.dm +++ b/code/game/gamemodes/dynamic/dynamic_storytellers.dm @@ -57,7 +57,8 @@ Property weights are: mean += 2.5 if(CHAOS_MAX) mean += 5 - GLOB.dynamic_curve_centre += (mean/voters) + if(voters) + GLOB.dynamic_curve_centre += (mean/voters) GLOB.dynamic_forced_threat_level = forced_threat_level /datum/dynamic_storyteller/proc/get_midround_cooldown() diff --git a/code/game/gamemodes/gangs/dominator.dm b/code/game/gamemodes/gangs/dominator.dm index db060a6539..858c10c46c 100644 --- a/code/game/gamemodes/gangs/dominator.dm +++ b/code/game/gamemodes/gangs/dominator.dm @@ -13,7 +13,7 @@ anchored = TRUE layer = HIGH_OBJ_LAYER max_integrity = 300 - integrity_failure = 100 + integrity_failure = 0.33 armor = list("melee" = 20, "bullet" = 50, "laser" = 50, "energy" = 50, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 10, "acid" = 70) var/datum/team/gang/gang var/operating = FALSE //false=standby or broken, true=takeover diff --git a/code/game/gamemodes/gangs/gangs.dm b/code/game/gamemodes/gangs/gangs.dm index 9151107d6f..0dc4a520ef 100644 --- a/code/game/gamemodes/gangs/gangs.dm +++ b/code/game/gamemodes/gangs/gangs.dm @@ -6,7 +6,8 @@ GLOBAL_LIST_EMPTY(gangs) name = "gang war" config_tag = "gang" antag_flag = ROLE_GANG - restricted_jobs = list("Security Officer", "Warden", "Detective", "AI", "Cyborg","Captain", "Head of Personnel", "Head of Security") + restricted_jobs = list("AI", "Cyborg") + protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") required_players = 15 required_enemies = 0 recommended_enemies = 2 diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index 459ff2f3d6..e84b942151 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -314,9 +314,11 @@ GLOBAL_LIST_EMPTY(objectives) /datum/objective/hijack name = "hijack" - explanation_text = "Hijack the shuttle to ensure no loyalist Nanotrasen crew escape alive and out of custody." - team_explanation_text = "Hijack the shuttle to ensure no loyalist Nanotrasen crew escape alive and out of custody. Leave no team member behind." + explanation_text = "Hijack the emergency shuttle by hacking its navigational protocols through the control console (alt click emergency shuttle console)." + team_explanation_text = "Hijack the emergency shuttle by hacking its navigational protocols through the control console (alt click emergency shuttle console). Leave no team member behind." martyr_compatible = 0 //Technically you won't get both anyway. + /// Overrides the hijack speed of any antagonist datum it is on ONLY, no other datums are impacted. + var/hijack_speed_override = 1 /datum/objective/hijack/check_completion() // Requires all owners to escape. if(SSshuttle.emergency.mode != SHUTTLE_ENDGAME) @@ -1096,7 +1098,7 @@ GLOBAL_LIST_EMPTY(possible_sabotages) var/approved_targets = list() check_sabotages: for(var/datum/sabotage_objective/possible_sabotage in GLOB.possible_sabotages) - if(!is_unique_objective(possible_sabotage.sabotage_type) || possible_sabotage.check_conditions()) + if(!is_unique_objective(possible_sabotage.sabotage_type) || possible_sabotage.check_conditions() || !possible_sabotage.can_run()) continue for(var/datum/mind/M in owners) if(M.current.mind.assigned_role in possible_sabotage.excludefromjob) diff --git a/code/game/gamemodes/objective_sabotage.dm b/code/game/gamemodes/objective_sabotage.dm index 248524f1d2..321e3ad2f6 100644 --- a/code/game/gamemodes/objective_sabotage.dm +++ b/code/game/gamemodes/objective_sabotage.dm @@ -12,6 +12,9 @@ /datum/sabotage_objective/proc/check_conditions() return TRUE +/datum/sabotage_objective/proc/can_run() + return TRUE + /datum/sabotage_objective/processing var/won = FALSE @@ -33,7 +36,7 @@ /datum/sabotage_objective/processing/power_sink name = "Drain at least 1 gigajoule of power using a power sink." sabotage_type = "powersink" - special_equipment = list(/obj/item/powersink) + special_equipment = list(/obj/item/sbeacondrop/powersink) var/sink_found = FALSE var/count = 0 @@ -79,6 +82,9 @@ won = max(1-((S.get_integrity()-50)/50),won) return FALSE +/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" diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index b6dc09eb59..19a20f0cfa 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -182,7 +182,7 @@ /obj/machinery/sleeper/AltClick(mob/user) . = ..() - if(!user.canUseTopic(src, !issilicon(user))) + if(!user.canUseTopic(src, !hasSiliconAccessInArea(user))) return if(state_open) close_machine() @@ -264,7 +264,7 @@ if(blood_id) data["occupant"]["blood"] = list() // We can start populating this list. var/blood_type = C.dna.blood_type - if(blood_id != "blood") // special blood substance + 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 diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm index 44739fcbc0..7132f046e6 100644 --- a/code/game/machinery/_machinery.dm +++ b/code/game/machinery/_machinery.dm @@ -229,7 +229,7 @@ Class Procs: return !(stat & (NOPOWER|BROKEN|MAINT)) /obj/machinery/can_interact(mob/user) - var/silicon = issiliconoradminghost(user) + var/silicon = hasSiliconAccessInArea(user) || IsAdminGhost(user) if((stat & (NOPOWER|BROKEN)) && !(interaction_flags_machine & INTERACT_MACHINE_OFFLINE)) return FALSE if(panel_open && !(interaction_flags_machine & INTERACT_MACHINE_OPEN)) @@ -242,7 +242,7 @@ Class Procs: else if(interaction_flags_machine & INTERACT_MACHINE_REQUIRES_SILICON) return FALSE - if(!Adjacent(user) && !isobserver(user)) + if(!Adjacent(user)) var/mob/living/carbon/H = user if(!(istype(H) && H.has_dna() && H.dna.check_mutation(TK))) return FALSE diff --git a/code/game/machinery/announcement_system.dm b/code/game/machinery/announcement_system.dm index 56227cdd53..84e5910731 100644 --- a/code/game/machinery/announcement_system.dm +++ b/code/game/machinery/announcement_system.dm @@ -29,7 +29,7 @@ GLOBAL_LIST_EMPTY(announcement_systems) /obj/machinery/announcement_system/Initialize() . = ..() GLOB.announcement_systems += src - radio = new /obj/item/radio/headset/ai(src) + radio = new /obj/item/radio/headset/silicon/ai(src) update_icon() /obj/machinery/announcement_system/update_icon() @@ -105,7 +105,7 @@ GLOBAL_LIST_EMPTY(announcement_systems) /obj/machinery/announcement_system/ui_interact(mob/user) . = ..() - if(!user.canUseTopic(src, !issilicon(user))) + if(!user.canUseTopic(src, !hasSiliconAccessInArea(user))) return if(stat & BROKEN) visible_message("[src] buzzes.", "You hear a faint buzz.") @@ -123,7 +123,7 @@ GLOBAL_LIST_EMPTY(announcement_systems) /obj/machinery/announcement_system/Topic(href, href_list) if(..()) return - if(!usr.canUseTopic(src, !issilicon(usr))) + if(!usr.canUseTopic(src, !hasSiliconAccessInArea(usr))) return if(stat & BROKEN) visible_message("[src] buzzes.", "You hear a faint buzz.") @@ -132,13 +132,13 @@ GLOBAL_LIST_EMPTY(announcement_systems) if(href_list["ArrivalTopic"]) var/NewMessage = stripped_input(usr, "Enter in the arrivals announcement configuration.", "Arrivals Announcement Config", arrival) - if(!usr.canUseTopic(src, !issilicon(usr))) + if(!usr.canUseTopic(src, !hasSiliconAccessInArea(usr))) return if(NewMessage) arrival = NewMessage else if(href_list["NewheadTopic"]) var/NewMessage = stripped_input(usr, "Enter in the departmental head announcement configuration.", "Head Departmental Announcement Config", newhead) - if(!usr.canUseTopic(src, !issilicon(usr))) + if(!usr.canUseTopic(src, !hasSiliconAccessInArea(usr))) return if(NewMessage) newhead = NewMessage @@ -157,7 +157,7 @@ GLOBAL_LIST_EMPTY(announcement_systems) . = attack_ai(user) /obj/machinery/announcement_system/attack_ai(mob/user) - if(!user.canUseTopic(src, !issilicon(user))) + if(!user.canUseTopic(src, !hasSiliconAccessInArea(user))) return if(stat & BROKEN) to_chat(user, "[src]'s firmware appears to be malfunctioning!") diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index 495e90d305..872b9e1d85 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -17,6 +17,7 @@ var/list/L = list() var/list/LL = list() var/hacked = FALSE + var/hackable = TRUE var/disabled = 0 var/shocked = FALSE var/hack_wire @@ -46,7 +47,23 @@ ) /obj/machinery/autolathe/Initialize() - AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_GLASS), 0, TRUE, null, null, CALLBACK(src, .proc/AfterMaterialInsert)) + AddComponent(/datum/component/material_container, + list(/datum/material/iron, + /datum/material/glass, + /datum/material/gold, + /datum/material/silver, + /datum/material/diamond, + /datum/material/uranium, + /datum/material/plasma, + /datum/material/bluespace, + /datum/material/bananium, + /datum/material/titanium, + /datum/material/runite, + /datum/material/plastic, + /datum/material/adamantine, + /datum/material/mythril + ), + 0, TRUE, null, null, CALLBACK(src, .proc/AfterMaterialInsert)) . = ..() wires = new /datum/wires/autolathe(src) @@ -120,15 +137,14 @@ return ..() -/obj/machinery/autolathe/proc/AfterMaterialInsert(type_inserted, id_inserted, amount_inserted) - if(ispath(type_inserted, /obj/item/stack/ore/bluespace_crystal)) +/obj/machinery/autolathe/proc/AfterMaterialInsert(obj/item/item_inserted, id_inserted, amount_inserted) + if(istype(item_inserted, /obj/item/stack/ore/bluespace_crystal)) use_power(MINERAL_MATERIAL_AMOUNT / 10) + else if(item_inserted.custom_materials?.len && item_inserted.custom_materials[getmaterialref(/datum/material/glass)]) + flick("autolathe_r",src)//plays glass insertion animation by default otherwise else - switch(id_inserted) - if (MAT_METAL) - flick("autolathe_o",src)//plays metal insertion animation - if (MAT_GLASS) - flick("autolathe_r",src)//plays glass insertion animation + flick("autolathe_o",src)//plays metal insertion animation + use_power(min(1000, amount_inserted / 100)) updateUsrDialog() @@ -159,18 +175,42 @@ ///////////////// var/coeff = (is_stack ? 1 : prod_coeff) //stacks are unaffected by production coefficient - var/metal_cost = being_built.materials[MAT_METAL] - var/glass_cost = being_built.materials[MAT_GLASS] + var/total_amount = 0 - var/power = max(2000, (metal_cost+glass_cost)*multiplier/5) + for(var/MAT in being_built.materials) + total_amount += being_built.materials[MAT] + + var/power = max(2000, (total_amount)*multiplier/5) //Change this to use all materials var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) - if((materials.amount(MAT_METAL) >= metal_cost*multiplier*coeff) && (materials.amount(MAT_GLASS) >= glass_cost*multiplier*coeff)) + + var/list/materials_used = list() + var/list/custom_materials = list() //These will apply their material effect, This should usually only be one. + + for(var/MAT in being_built.materials) + var/datum/material/used_material = MAT + var/amount_needed = being_built.materials[MAT] * coeff * multiplier + if(istext(used_material)) //This means its a category + var/list/list_to_show = list() + for(var/i in SSmaterials.materials_by_category[used_material]) + if(materials.materials[i] > 0) + list_to_show += i + + used_material = input("Choose [used_material]", "Custom Material") as null|anything in list_to_show + if(!used_material) + return //Didn't pick any material, so you can't build shit either. + custom_materials[used_material] += amount_needed + + materials_used[used_material] = amount_needed + + if(materials.has_materials(materials_used)) busy = TRUE use_power(power) icon_state = "autolathe_n" var/time = is_stack ? 32 : 32*coeff*multiplier - addtimer(CALLBACK(src, .proc/make_item, power, metal_cost, glass_cost, multiplier, coeff, is_stack), time) + addtimer(CALLBACK(src, .proc/make_item, power, materials_used, custom_materials, multiplier, coeff, is_stack), time) + else + to_chat(usr, "Not enough materials for this operation.") if(href_list["search"]) matching_designs.Cut() @@ -187,12 +227,11 @@ return -/obj/machinery/autolathe/proc/make_item(power, metal_cost, glass_cost, multiplier, coeff, is_stack) +/obj/machinery/autolathe/proc/make_item(power, var/list/materials_used, var/list/picked_materials, multiplier, coeff, is_stack) var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) var/atom/A = drop_location() use_power(power) - var/list/materials_used = list(MAT_METAL=metal_cost*coeff*multiplier, MAT_GLASS=glass_cost*coeff*multiplier) - materials.use_amount(materials_used) + materials.use_materials(materials_used) if(is_stack) var/obj/item/stack/N = new being_built.build_path(A, multiplier) @@ -201,10 +240,11 @@ else for(var/i=1, i<=multiplier, i++) var/obj/item/new_item = new being_built.build_path(A) - new_item.materials = new_item.materials.Copy() - for(var/mat in materials_used) - new_item.materials[mat] = materials_used[mat] / multiplier new_item.autolathe_crafted(src) + + if(length(picked_materials)) + new_item.set_custom_materials(picked_materials, 1 / multiplier) //Ensure we get the non multiplied amount + icon_state = "autolathe" busy = FALSE updateDialog() @@ -269,7 +309,9 @@ if(ispath(D.build_path, /obj/item/stack)) var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) - var/max_multiplier = min(D.maxstack, D.materials[MAT_METAL] ?round(materials.amount(MAT_METAL)/D.materials[MAT_METAL]):INFINITY,D.materials[MAT_GLASS]?round(materials.amount(MAT_GLASS)/D.materials[MAT_GLASS]):INFINITY) + var/max_multiplier + for(var/datum/material/mat in D.materials) + max_multiplier = min(D.maxstack, round(materials.get_material_amount(mat)/D.materials[mat])) if (max_multiplier>10 && !disabled) dat += " x10" if (max_multiplier>25 && !disabled) @@ -301,7 +343,9 @@ if(ispath(D.build_path, /obj/item/stack)) var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) - var/max_multiplier = min(D.maxstack, D.materials[MAT_METAL] ?round(materials.amount(MAT_METAL)/D.materials[MAT_METAL]):INFINITY,D.materials[MAT_GLASS]?round(materials.amount(MAT_GLASS)/D.materials[MAT_GLASS]):INFINITY) + var/max_multiplier + for(var/datum/material/mat in D.materials) + max_multiplier = min(D.maxstack, round(materials.get_material_amount(mat)/D.materials[mat])) if (max_multiplier>10 && !disabled) dat += " x10" if (max_multiplier>25 && !disabled) @@ -318,8 +362,10 @@ var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) var/dat = "Total amount: [materials.total_amount] / [materials.max_amount] cm3
" for(var/mat_id in materials.materials) - var/datum/material/M = materials.materials[mat_id] - dat += "[M.name] amount: [M.amount] cm3
" + var/datum/material/M = mat_id + var/mineral_amount = materials.materials[mat_id] + if(mineral_amount > 0) + dat += "[M.name] amount: [mineral_amount] cm3
" return dat /obj/machinery/autolathe/proc/can_build(datum/design/D, amount = 1) @@ -328,20 +374,24 @@ var/coeff = (ispath(D.build_path, /obj/item/stack) ? 1 : prod_coeff) + var/list/required_materials = list() + + for(var/i in D.materials) + required_materials[i] = D.materials[i] * coeff * amount + var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) - if(D.materials[MAT_METAL] && (materials.amount(MAT_METAL) < (D.materials[MAT_METAL] * coeff * amount))) - return FALSE - if(D.materials[MAT_GLASS] && (materials.amount(MAT_GLASS) < (D.materials[MAT_GLASS] * coeff * amount))) - return FALSE - return TRUE + + return materials.has_materials(required_materials) /obj/machinery/autolathe/proc/get_design_cost(datum/design/D) var/coeff = (ispath(D.build_path, /obj/item/stack) ? 1 : prod_coeff) var/dat - if(D.materials[MAT_METAL]) - dat += "[D.materials[MAT_METAL] * coeff] metal " - if(D.materials[MAT_GLASS]) - dat += "[D.materials[MAT_GLASS] * coeff] glass" + for(var/i in D.materials) + if(istext(i)) //Category handling + dat += "[D.materials[i] * coeff] [i]" + else + var/datum/material/M = i + dat += "[D.materials[i] * coeff] [M.name] " return dat /obj/machinery/autolathe/proc/reset(wire) @@ -371,6 +421,8 @@ /obj/machinery/autolathe/proc/adjust_hacked(state) hacked = state + if(!hackable && hacked) + return for(var/id in SSresearch.techweb_designs) var/datum/design/D = SSresearch.techweb_design_by_id(id) if((D.build_type & AUTOLATHE) && ("hacked" in D.category)) @@ -383,6 +435,12 @@ . = ..() adjust_hacked(TRUE) +/obj/machinery/autolathe/secure + name = "secured autolathe" + desc = "An autolathe reprogrammed with security protocols to prevent hacking." + hackable = FALSE + circuit = /obj/item/circuitboard/machine/autolathe/secure + //Called when the object is constructed by an autolathe //Has a reference to the autolathe so you can do !!FUN!! things with hacked lathes /obj/item/proc/autolathe_crafted(obj/machinery/autolathe/A) diff --git a/code/game/machinery/bloodbankgen.dm b/code/game/machinery/bloodbankgen.dm index cb25adc126..19632711fc 100644 --- a/code/game/machinery/bloodbankgen.dm +++ b/code/game/machinery/bloodbankgen.dm @@ -274,20 +274,20 @@ return TRUE -/obj/machinery/bloodbankgen/proc/detachinput() +/obj/machinery/bloodbankgen/proc/detachinput(mob/user) if(bag) bag.forceMove(drop_location()) - if(usr && Adjacent(usr) && !issiliconoradminghost(usr)) - usr.put_in_hands(bag) + if(user && Adjacent(usr) && user.can_hold_items()) + user.put_in_hands(bag) bag = null draining = null update_icon() -/obj/machinery/bloodbankgen/proc/detachoutput() +/obj/machinery/bloodbankgen/proc/detachoutput(mob/user) if(outbag) outbag.forceMove(drop_location()) - if(usr && Adjacent(usr) && !issiliconoradminghost(usr)) - usr.put_in_hands(outbag) + if(user && Adjacent(user) && user.can_hold_items()) + user.put_in_hands(outbag) outbag = null filling = null update_icon() @@ -325,12 +325,12 @@ activateinput() else if(href_list["detachinput"]) - detachinput() + detachinput(usr) else if(href_list["activateoutput"]) activateoutput() else if(href_list["detachoutput"]) - detachoutput() + detachoutput(usr) updateUsrDialog() diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index 3a9b560bd6..ad3dd5d720 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -265,4 +265,4 @@ desc = "Used for building buttons." icon_state = "button" result_path = /obj/machinery/button - materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/iron = MINERAL_MATERIAL_AMOUNT) diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 22c1ff811c..760d48b57b 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -17,7 +17,7 @@ armor = list("melee" = 50, "bullet" = 20, "laser" = 20, "energy" = 20, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 50) max_integrity = 100 - integrity_failure = 50 + integrity_failure = 0.5 var/list/network = list("ss13") var/c_tag = null var/status = TRUE diff --git a/code/game/machinery/camera/camera_assembly.dm b/code/game/machinery/camera/camera_assembly.dm index 66e302bab6..1766391709 100644 --- a/code/game/machinery/camera/camera_assembly.dm +++ b/code/game/machinery/camera/camera_assembly.dm @@ -3,7 +3,7 @@ desc = "The basic construction for Nanotrasen-Always-Watching-You cameras." icon = 'icons/obj/machines/camera.dmi' icon_state = "cameracase" - materials = list(MAT_METAL=400, MAT_GLASS=250) + custom_materials = list(/datum/material/iron=400, /datum/material/glass=250) result_path = /obj/structure/camera_assembly diff --git a/code/game/machinery/computer/_computer.dm b/code/game/machinery/computer/_computer.dm index 2eea845c70..c748270793 100644 --- a/code/game/machinery/computer/_computer.dm +++ b/code/game/machinery/computer/_computer.dm @@ -7,7 +7,7 @@ idle_power_usage = 300 active_power_usage = 300 max_integrity = 200 - integrity_failure = 100 + integrity_failure = 0.5 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 40, "acid" = 20) var/brightness_on = 1 var/icon_keyboard = "generic_key" diff --git a/code/game/machinery/computer/arcade/minesweeper.dm b/code/game/machinery/computer/arcade/minesweeper.dm index 641ef1c9cd..3e32c4ceeb 100644 --- a/code/game/machinery/computer/arcade/minesweeper.dm +++ b/code/game/machinery/computer/arcade/minesweeper.dm @@ -304,12 +304,12 @@ /obj/machinery/computer/arcade/minesweeper/proc/custom_generation(mob/user) playsound(loc, 'sound/arcade/minesweeper_menuselect.ogg', 50, 0, extrarange = -3, falloff = 10) //Entered into the menu so ping sound var/new_rows = input(user, "How many rows do you want? (Minimum: 4, Maximum: 30)", "Minesweeper Rows") as null|num - if(!new_rows || !user.canUseTopic(src, !issilicon(user))) + if(!new_rows || !user.canUseTopic(src, !hasSiliconAccessInArea(user))) return FALSE new_rows = CLAMP(new_rows + 1, 4, 30) playsound(loc, 'sound/arcade/minesweeper_menuselect.ogg', 50, 0, extrarange = -3, falloff = 10) var/new_columns = input(user, "How many columns do you want? (Minimum: 4, Maximum: 50)", "Minesweeper Squares") as null|num - if(!new_columns || !user.canUseTopic(src, !issilicon(user))) + if(!new_columns || !user.canUseTopic(src, !hasSiliconAccessInArea(user))) return FALSE new_columns = CLAMP(new_columns + 1, 4, 50) playsound(loc, 'sound/arcade/minesweeper_menuselect.ogg', 50, 0, extrarange = -3, falloff = 10) @@ -317,7 +317,7 @@ var/lower_limit = round(grid_area*0.156) var/upper_limit = round(grid_area*0.85) var/new_mine_limit = input(user, "How many mines do you want? (Minimum: [lower_limit], Maximum: [upper_limit])", "Minesweeper Mines") as null|num - if(!new_mine_limit || !user.canUseTopic(src, !issilicon(user))) + if(!new_mine_limit || !user.canUseTopic(src, !hasSiliconAccessInArea(user))) return FALSE playsound(loc, 'sound/arcade/minesweeper_menuselect.ogg', 50, 0, extrarange = -3, falloff = 10) rows = new_rows diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index 1d54e8f772..211ff13486 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -36,7 +36,7 @@ return ..() /obj/machinery/computer/security/can_interact(mob/user) - if((!issilicon(user) && !Adjacent(user)) || is_blind(user) || !in_view_range(user, src)) + if((!hasSiliconAccessInArea(user) && !Adjacent(user)) || is_blind(user) || !in_view_range(user, src)) return FALSE return ..() diff --git a/code/game/machinery/computer/camera_advanced.dm b/code/game/machinery/computer/camera_advanced.dm index 8de470fdb8..5fe62ebb76 100644 --- a/code/game/machinery/computer/camera_advanced.dm +++ b/code/game/machinery/computer/camera_advanced.dm @@ -47,7 +47,10 @@ jump_action.Grant(user) actions += jump_action -/obj/machinery/computer/camera_advanced/proc/remove_eye_control(mob/living/user) +/obj/machinery/proc/remove_eye_control(mob/living/user) + CRASH("[type] does not implement ai eye handling") + +/obj/machinery/computer/camera_advanced/remove_eye_control(mob/living/user) if(!user) return for(var/V in actions) @@ -69,7 +72,7 @@ playsound(src, 'sound/machines/terminal_off.ogg', 25, 0) /obj/machinery/computer/camera_advanced/check_eye(mob/user) - if( (stat & (NOPOWER|BROKEN)) || (!Adjacent(user) && !user.has_unlimited_silicon_privilege) || user.eye_blind || user.incapacitated() ) + if( (stat & (NOPOWER|BROKEN)) || (!Adjacent(user) && hasSiliconAccessInArea(user)) || user.eye_blind || user.incapacitated() ) user.unset_machine() /obj/machinery/computer/camera_advanced/Destroy() @@ -157,7 +160,7 @@ var/cooldown = 0 var/acceleration = 1 var/mob/living/eye_user = null - var/obj/machinery/computer/camera_advanced/origin + var/obj/machinery/origin var/eye_initialized = 0 var/visible_icon = 0 var/image/user_image = null @@ -170,7 +173,7 @@ /mob/camera/aiEye/remote/Destroy() if(origin && eye_user) - origin.remove_eye_control(eye_user) + origin.remove_eye_control(eye_user,src) origin = null . = ..() eye_user = null diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm index 6703bae525..b0e80b63d2 100644 --- a/code/game/machinery/computer/card.dm +++ b/code/game/machinery/computer/card.dm @@ -171,7 +171,7 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) /obj/machinery/computer/card/AltClick(mob/user) . = ..() - if(!user.canUseTopic(src, !issilicon(user)) || !is_operational()) + if(!user.canUseTopic(src, !hasSiliconAccessInArea(user)) || !is_operational()) return if(inserted_modify_id) if(id_eject(user, inserted_modify_id)) @@ -360,7 +360,7 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) if(..()) return - if(!usr.canUseTopic(src, !issilicon(usr)) || !is_operational()) + if(!usr.canUseTopic(src, !hasSiliconAccessInArea(usr)) || !is_operational()) usr.unset_machine() usr << browse(null, "window=id_com") return @@ -392,7 +392,7 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) inserted_scan_id = id_to_insert updateUsrDialog() if ("auth") - if ((!( authenticated ) && (inserted_scan_id || issilicon(usr)) || mode)) + if ((!( authenticated ) && (inserted_scan_id || hasSiliconAccessInArea(usr)) || mode)) if (check_access(inserted_scan_id)) region_access = list() head_subordinates = list() @@ -426,7 +426,7 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) get_subordinates("Quartermaster") if(region_access) authenticated = 1 - else if ((!( authenticated ) && issilicon(usr)) && (!inserted_modify_id)) + else if ((!( authenticated ) && hasSiliconAccessInArea(usr)) && (!inserted_modify_id)) to_chat(usr, "You can't modify an ID without an ID inserted to modify! Once one is in the modify slot on the computer, you can log in.") if ("logout") region_access = null @@ -481,7 +481,7 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) if ("reg") if (authenticated) var/t2 = inserted_modify_id - if ((authenticated && inserted_modify_id == t2 && (in_range(src, usr) || issilicon(usr)) && isturf(loc))) + if ((authenticated && inserted_modify_id == t2 && (in_range(src, usr) || hasSiliconAccessInArea(usr)) && isturf(loc))) var/newName = reject_bad_name(href_list["reg"]) if(newName) inserted_modify_id.registered_name = newName diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 59574bc603..5fe141d2cd 100755 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -194,7 +194,7 @@ state = STATE_CANCELSHUTTLE if("cancelshuttle2") if(authenticated) - if((world.realtime - SSshuttle.realtimeofstart) > SSshuttle.auto_call) //Citadel Edit Removing auto_call caused recall. + if(SSshuttle.endvote_passed) //Citadel Edit - endvote passing = no recalls say("Warning: Emergency shuttle recalls have been blocked by Central Command due to ongoing crew transfer procedures.") else SSshuttle.cancelEvac(usr) @@ -449,7 +449,7 @@ var/datum/browser/popup = new(user, "communications", "Communications Console", 400, 500) popup.set_title_image(user.browse_rsc_icon(icon, icon_state)) - if(issilicon(user)) + if(issilicon(user) || (hasSiliconAccessInArea(user) && !in_range(user,src))) var/dat2 = interact_ai(user) // give the AI a different interact proc to limit its access if(dat2) dat += dat2 diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index f6d0fcfc0d..01a1d043a2 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -40,6 +40,7 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new) jobs["Geneticist"] = 22 jobs["Virologist"] = 23 jobs["Medical Doctor"] = 24 + jobs["Paramedic"] = 25 jobs["Research Director"] = 30 jobs["Scientist"] = 31 jobs["Roboticist"] = 32 @@ -207,4 +208,4 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new) if ("select_person") AI.ai_camera_track(params["name"]) -#undef SENSORS_UPDATE_PERIOD \ No newline at end of file +#undef SENSORS_UPDATE_PERIOD diff --git a/code/game/machinery/computer/dna_console.dm b/code/game/machinery/computer/dna_console.dm index a31f6c71c8..5049a10d2b 100644 --- a/code/game/machinery/computer/dna_console.dm +++ b/code/game/machinery/computer/dna_console.dm @@ -64,7 +64,7 @@ if(!user) return var/datum/browser/popup = new(user, "scannernew", "DNA Modifier Console", 800, 630) // Set up the popup browser window - if(!(in_range(src, user) || issilicon(user))) + if(!(in_range(src, user) || hasSiliconAccessInArea(user))) popup.close() return popup.add_stylesheet("scannernew", 'html/browser/scannernew.css') @@ -318,7 +318,7 @@ return if(!isturf(usr.loc)) return - if(!((isturf(loc) && in_range(src, usr)) || issilicon(usr))) + if(!((isturf(loc) && in_range(src, usr)) || hasSiliconAccessInArea(usr))) return if(current_screen == "working") return diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index ecbde43044..f8dac1b100 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -190,7 +190,7 @@ if(!(active2 in GLOB.data_core.medical)) active2 = null - if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || issilicon(usr) || IsAdminGhost(usr)) + if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || hasSiliconAccessInArea(usr) || IsAdminGhost(usr)) usr.set_machine(src) if(href_list["temp"]) temp = null @@ -216,7 +216,7 @@ else if(href_list["login"]) var/mob/M = usr var/obj/item/card/id/I = M.get_idcard(TRUE) - if(issilicon(M)) + if(hasSiliconAccessInArea(M)) active1 = null active2 = null authenticated = 1 @@ -569,7 +569,7 @@ if(user) if(message) if(authenticated) - if(user.canUseTopic(src, !issilicon(user))) + if(user.canUseTopic(src, !hasSiliconAccessInArea(user))) if(!record1 || record1 == active1) if(!record2 || record2 == active2) return 1 diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm index 1388e3c8de..53f7cb7e32 100644 --- a/code/game/machinery/computer/pod.dm +++ b/code/game/machinery/computer/pod.dm @@ -86,7 +86,7 @@ /obj/machinery/computer/pod/Topic(href, href_list) if(..()) return - if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || issilicon(usr)) + if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || hasSiliconAccessInArea(usr)) usr.set_machine(src) if(href_list["power"]) var/t = text2num(href_list["power"]) diff --git a/code/game/machinery/computer/prisoner/management.dm b/code/game/machinery/computer/prisoner/management.dm index 496e14b8f1..4b4b39740a 100644 --- a/code/game/machinery/computer/prisoner/management.dm +++ b/code/game/machinery/computer/prisoner/management.dm @@ -87,7 +87,7 @@ /obj/machinery/computer/prisoner/management/Topic(href, href_list) if(..()) return - if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || issilicon(usr)) + if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || hasSiliconAccessInArea(usr)) usr.set_machine(src) if(href_list["id"]) diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index 42e31b2ea6..25f4237439 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -265,7 +265,7 @@ What a mess.*/ active1 = null if(!( GLOB.data_core.security.Find(active2) )) active2 = null - if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || issilicon(usr) || IsAdminGhost(usr)) + if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || hasSiliconAccessInArea(usr) || IsAdminGhost(usr)) usr.set_machine(src) switch(href_list["choice"]) // SORTING! @@ -299,7 +299,7 @@ What a mess.*/ if("Log In") var/mob/M = usr var/obj/item/card/id/I = M.get_idcard(TRUE) - if(issilicon(M)) + if(hasSiliconAccessInArea(M)) var/mob/living/silicon/borg = M active1 = null active2 = null @@ -802,7 +802,7 @@ What a mess.*/ /obj/machinery/computer/secure_data/proc/canUseSecurityRecordsConsole(mob/user, message1 = 0, record1, record2) if(user) if(authenticated) - if(user.canUseTopic(src, !issilicon(user))) + if(user.canUseTopic(src, !hasSiliconAccessInArea(user))) if(!trim(message1)) return 0 if(!record1 || record1 == active1) diff --git a/code/game/machinery/computer/teleporter.dm b/code/game/machinery/computer/teleporter.dm index 518f38fc35..6710258626 100644 --- a/code/game/machinery/computer/teleporter.dm +++ b/code/game/machinery/computer/teleporter.dm @@ -140,7 +140,7 @@ obj/machinery/computer/teleporter/ui_interact(mob/user, ui_key = "main", datum/t L[avoid_assoc_duplicate_keys(M.real_name, areaindex)] = M var/desc = input("Please select a location to lock in.", "Locking Computer") as null|anything in L - if(!user.canUseTopic(src, !issilicon(user), NO_DEXTERY)) //check if we are still around + if(!user.canUseTopic(src, !hasSiliconAccessInArea(user), NO_DEXTERY)) //check if we are still around return target = L[desc] if(imp_t) @@ -168,7 +168,7 @@ obj/machinery/computer/teleporter/ui_interact(mob/user, ui_key = "main", datum/t to_chat(user, "No active connected stations located.") return var/desc = input("Please select a station to lock in.", "Locking Computer") as null|anything in L - if(!user.canUseTopic(src, !issilicon(user), NO_DEXTERY)) //again, check if we are still around + if(!user.canUseTopic(src, !hasSiliconAccessInArea(user), NO_DEXTERY)) //again, check if we are still around return var/obj/machinery/teleport/station/target_station = L[desc] if(!target_station || !target_station.teleporter_hub) diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index e9d3006b06..92927d047d 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -6,7 +6,6 @@ * ~ Zuhayr */ - //Main cryopod console. /obj/machinery/computer/cryopod @@ -18,7 +17,6 @@ density = FALSE interaction_flags_machine = INTERACT_MACHINE_OFFLINE req_one_access = list(ACCESS_HEADS, ACCESS_ARMORY) //Heads of staff or the warden can go here to claim recover items from their department that people went were cryodormed with. - var/mode = null var/menu = 1 //Which menu screen to display @@ -118,7 +116,7 @@ playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) I.forceMove(drop_location()) - if(user && Adjacent(user) && !issiliconoradminghost(user)) + if(user && Adjacent(user) && user.can_hold_items()) user.put_in_hands(I) frozen_items -= I updateUsrDialog() @@ -130,7 +128,8 @@ playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) updateUsrDialog() return - if(!allow_items) return + if(!allow_items) + return if(frozen_items.len == 0) to_chat(user, "There is nothing to recover from storage.") @@ -182,7 +181,7 @@ var/last_no_computer_message = 0 // These items are preserved when the process() despawn proc occurs. - var/list/preserve_items = list( + var/static/list/preserve_items = typecacheof(list( /obj/item/hand_tele, /obj/item/card/id/captains_spare, /obj/item/aicard, @@ -203,9 +202,9 @@ /obj/item/tank/jetpack, /obj/item/documents, /obj/item/nuke_core_container - ) + )) // These items will NOT be preserved - var/list/do_not_preserve_items = list ( + var/static/list/do_not_preserve_items = typecacheof(list( /obj/item/mmi/posibrain, /obj/item/gun/energy/laser/mounted, /obj/item/gun/energy/e_gun/advtaser/mounted, @@ -215,7 +214,7 @@ /obj/item/gun/energy/printer, /obj/item/gun/energy/kinetic_accelerator/cyborg, /obj/item/gun/energy/laser/cyborg - ) + )) /obj/machinery/cryopod/Initialize(mapload) . = ..() @@ -287,14 +286,14 @@ #define CRYO_DESTROY 0 #define CRYO_PRESERVE 1 #define CRYO_OBJECTIVE 2 +#define CRYO_IGNORE 3 /obj/machinery/cryopod/proc/should_preserve_item(obj/item/I) for(var/datum/objective_item/steal/T in control_computer.theft_cache) if(istype(I, T.targetitem) && T.check_special_completion(I)) return CRYO_OBJECTIVE - for(var/T in preserve_items) - if(istype(I, T) && !(I.type in do_not_preserve_items)) - return CRYO_PRESERVE + if(preserve_items[I] && !do_not_preserve_items[I]) + return CRYO_PRESERVE return CRYO_DESTROY // This function can not be undone; do not call this unless you are sure @@ -303,52 +302,47 @@ find_control_computer() var/mob/living/mob_occupant = occupant + var/list/obj/item/cryo_items = list() //Handle Borg stuff first if(iscyborg(mob_occupant)) var/mob/living/silicon/robot/R = mob_occupant - - R.contents -= R.mmi - qdel(R.mmi) + if(R.mmi?.brain) + cryo_items[R.mmi] = CRYO_IGNORE + cryo_items[R.mmi.brain] = CRYO_IGNORE for(var/obj/item/I in R.module) // the tools the borg has; metal, glass, guns etc for(var/obj/item/O in I) // the things inside the tools, if anything; mainly for janiborg trash bags - if(should_preserve_item(O) != CRYO_DESTROY) // Preserve important things inside the item - continue + cryo_items[O] = should_preserve_item(O) O.forceMove(src) R.module.remove_module(I, TRUE) //delete the module itself so it doesn't transfer over. //Drop all items into the pod. for(var/obj/item/I in mob_occupant) - mob_occupant.doUnEquip(I) - I.forceMove(src) - + if(cryo_items[I] == CRYO_IGNORE) + continue + cryo_items[I] = should_preserve_item(I) + mob_occupant.transferItemToLoc(I, src, TRUE) if(I.contents.len) //Make sure we catch anything not handled by qdel() on the items. - if(should_preserve_item(I) != CRYO_DESTROY) // Don't remove the contents of things that need preservation + if(cryo_items[I] != CRYO_DESTROY) // Don't remove the contents of things that need preservation continue for(var/obj/item/O in I.contents) - if(istype(O, /obj/item/tank)) //Stop eating pockets, you fuck! - continue + cryo_items[O] = should_preserve_item(O) O.forceMove(src) - //Delete all items not on the preservation list. - var/list/items = contents - items -= mob_occupant // Don't delete the occupant - - for(var/obj/item/I in items) - if(istype(I, /obj/item/pda)) - var/obj/item/pda/P = I - QDEL_NULL(P.id) - qdel(P) + for(var/A in cryo_items) + var/obj/item/I = A + if(QDELETED(I)) //edge cases and DROPDEL. continue - - var/preserve = should_preserve_item(I) - if(preserve == CRYO_DESTROY) + var/preserve = cryo_items[I] + if(preserve == CRYO_IGNORE) + continue + else if(preserve == CRYO_DESTROY) qdel(I) - else if(control_computer && control_computer.allow_items) + else if(control_computer?.allow_items) control_computer.frozen_items += I if(preserve == CRYO_OBJECTIVE) control_computer.objective_items += I - I.loc = null + I.moveToNullspace() else I.forceMove(loc) @@ -417,6 +411,7 @@ #undef CRYO_DESTROY #undef CRYO_PRESERVE #undef CRYO_OBJECTIVE +#undef CRYO_IGNORE /obj/machinery/cryopod/MouseDrop_T(mob/living/target, mob/user) if(!istype(target) || user.incapacitated() || !target.Adjacent(user) || !Adjacent(user) || !ismob(target) || (!ishuman(user) && !iscyborg(user)) || !istype(user.loc, /turf) || target.buckled) @@ -443,29 +438,24 @@ var/generic_plsnoleave_message = " Please adminhelp before leaving the round, even if there are no administrators online!" if(target == user && world.time - target.client.cryo_warned > 5 MINUTES)//if we haven't warned them in the last 5 minutes - var/caught = FALSE + var/list/caught_string + var/addendum = "" if(target.mind.assigned_role in GLOB.command_positions) - alert("You're a Head of Staff![generic_plsnoleave_message] Be sure to put your locker items back into your locker!") - caught = TRUE + LAZYADD(caught_string, "Head of Staff") + addendum = " Be sure to put your locker items back into your locker!" if(iscultist(target) || is_servant_of_ratvar(target)) - to_chat(target, "You're a Cultist![generic_plsnoleave_message]") - caught = TRUE + LAZYADD(caught_string, "Cultist") if(is_devil(target)) - alert("You're a Devil![generic_plsnoleave_message]") - caught = TRUE - if(istype(SSticker.mode, /datum/antagonist/gang)) - if(target.mind.has_antag_datum(/datum/antagonist/gang)) - alert("You're a Gangster![generic_plsnoleave_message]") - caught = TRUE - if(istype(SSticker.mode, /datum/antagonist/rev)) - if(target.mind.has_antag_datum(/datum/antagonist/rev/head)) - alert("You're a Head Revolutionary![generic_plsnoleave_message]") - caught = TRUE - else if(target.mind.has_antag_datum(/datum/antagonist/rev)) - alert("You're a Revolutionary![generic_plsnoleave_message]") - caught = TRUE + LAZYADD(caught_string, "Devil") + if(target.mind.has_antag_datum(/datum/antagonist/gang)) + LAZYADD(caught_string, "Gangster") + if(target.mind.has_antag_datum(/datum/antagonist/rev/head)) + LAZYADD(caught_string, "Head Revolutionary") + if(target.mind.has_antag_datum(/datum/antagonist/rev)) + LAZYADD(caught_string, "Revolutionary") - if(caught) + if(caught_string) + alert(target, "You're a [english_list(caught_string)]![generic_plsnoleave_message][addendum]") target.client.cryo_warned = world.time return diff --git a/code/game/machinery/dance_machine.dm b/code/game/machinery/dance_machine.dm index c6b4f2fcf5..6b62d18d01 100644 --- a/code/game/machinery/dance_machine.dm +++ b/code/game/machinery/dance_machine.dm @@ -53,7 +53,7 @@ /obj/machinery/jukebox/ui_interact(mob/user) . = ..() - if(!user.canUseTopic(src, !issilicon(user))) + if(!user.canUseTopic(src, !hasSiliconAccessInArea(user))) return if (!anchored) to_chat(user,"This device must be anchored by a wrench!") @@ -202,6 +202,8 @@ for(var/i in 1 to 10) spawn_atom_to_turf(/obj/effect/temp_visual/hierophant/telegraph/edge, src, 1, FALSE) sleep(5) + if(QDELETED(src)) + return #define DISCO_INFENO_RANGE (rand(85, 115)*0.01) @@ -430,6 +432,6 @@ /obj/machinery/jukebox/disco/process() . = ..() if(active) - for(var/mob/M in rangers) + for(var/mob/living/M in rangers) if(prob(5+(allowed(M)*4)) && M.canmove) dance(M) diff --git a/code/game/machinery/defibrillator_mount.dm b/code/game/machinery/defibrillator_mount.dm index a1931e133a..5c13bfdf5d 100644 --- a/code/game/machinery/defibrillator_mount.dm +++ b/code/game/machinery/defibrillator_mount.dm @@ -145,7 +145,7 @@ desc = "A frame for a defibrillator mount. It can't be removed once it's placed." icon = 'icons/obj/machines/defib_mount.dmi' icon_state = "defibrillator_mount" - materials = list(MAT_METAL = 300, MAT_GLASS = 100) + custom_materials = list(/datum/material/iron = 300, /datum/material/glass = 100) w_class = WEIGHT_CLASS_BULKY result_path = /obj/machinery/defibrillator_mount pixel_shift = -28 diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index 7614630477..686b62d1c3 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -15,7 +15,7 @@ density = TRUE max_integrity = 100 var/proj_pass_rate = 50 //How many projectiles will pass the cover. Lower means stronger cover - var/material = METAL + var/bar_material = METAL /obj/structure/barricade/deconstruct(disassembled = TRUE) if(!(flags_1 & NODECONSTRUCT_1)) @@ -26,7 +26,7 @@ return /obj/structure/barricade/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/weldingtool) && user.a_intent != INTENT_HARM && material == METAL) + if(istype(I, /obj/item/weldingtool) && user.a_intent != INTENT_HARM && bar_material == METAL) if(obj_integrity < max_integrity) if(!I.tool_start_check(user, amount=0)) return @@ -61,7 +61,7 @@ desc = "This space is blocked off by a wooden barricade." icon = 'icons/obj/structures.dmi' icon_state = "woodenbarricade" - material = WOOD + bar_material = WOOD var/drop_amount = 3 /obj/structure/barricade/wooden/attackby(obj/item/I, mob/user) @@ -106,7 +106,7 @@ max_integrity = 280 proj_pass_rate = 20 pass_flags = LETPASSTHROW - material = SAND + bar_material = SAND climbable = TRUE smooth = SMOOTH_TRUE canSmoothWith = list(/obj/structure/barricade/sandbags, /turf/closed/wall, /turf/closed/wall/r_wall, /obj/structure/falsewall, /obj/structure/falsewall/reinforced, /turf/closed/wall/rust, /turf/closed/wall/r_wall/rust, /obj/structure/barricade/security) diff --git a/code/game/machinery/dish_drive.dm b/code/game/machinery/dish_drive.dm index 7f21d1c1b3..31e6a3cfeb 100644 --- a/code/game/machinery/dish_drive.dm +++ b/code/game/machinery/dish_drive.dm @@ -98,7 +98,7 @@ /obj/machinery/dish_drive/AltClick(mob/living/user) . = ..() - if(user.canUseTopic(src, !issilicon(user))) + if(user.canUseTopic(src, !hasSiliconAccessInArea(user))) do_the_dishes(TRUE) return TRUE diff --git a/code/game/machinery/dna_scanner.dm b/code/game/machinery/dna_scanner.dm index cff2e361bd..60b5a52a10 100644 --- a/code/game/machinery/dna_scanner.dm +++ b/code/game/machinery/dna_scanner.dm @@ -172,7 +172,7 @@ /obj/machinery/dna_scannernew/AltClick(mob/user) . = ..() - if(!user.canUseTopic(src, !issilicon(user))) + if(!user.canUseTopic(src, !hasSiliconAccessInArea(user))) return interact(user) return TRUE diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index f28d520114..d626c76aca 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -47,7 +47,7 @@ icon_state = "closed" max_integrity = 300 var/normal_integrity = AIRLOCK_INTEGRITY_N - integrity_failure = 70 + integrity_failure = 0.25 damage_deflection = AIRLOCK_DAMAGE_DEFLECTION_N autoclose = TRUE secondsElectrified = 0 //How many seconds remain until the door is no longer electrified. -1 if it is permanently electrified until someone fixes it. @@ -469,7 +469,7 @@ panel_overlay = get_airlock_overlay("panel_closed", overlays_file) if(welded) weld_overlay = get_airlock_overlay("welded", overlays_file) - if(obj_integrity " . += "Ctrl-click [src] to [ locked ? "raise" : "drop"] its bolts." . += "Alt-click [src] to [ secondsElectrified ? "un-electrify" : "permanently electrify"] it." @@ -1322,9 +1322,9 @@ if(density && !open(2)) //The airlock is still closed, but something prevented it opening. (Another player noticed and bolted/welded the airlock in time!) to_chat(user, "Despite your efforts, [src] managed to resist your attempts to open it!") -/obj/machinery/door/airlock/hostile_lockdown(mob/origin) +/obj/machinery/door/airlock/hostile_lockdown(mob/origin, aicontrolneeded = TRUE) // Must be powered and have working AI wire. - if(canAIControl(src) && !stat) + if((aicontrolneeded && canAIControl(src) && !stat) || !aicontrolneeded) locked = FALSE //For airlocks that were bolted open. safe = FALSE //DOOR CRUSH close() @@ -1334,9 +1334,9 @@ LAZYADD(shockedby, "\[[TIME_STAMP("hh:mm:ss", FALSE)]\] [key_name(origin)]") -/obj/machinery/door/airlock/disable_lockdown() +/obj/machinery/door/airlock/disable_lockdown(aicontrolneeded = TRUE) // Must be powered and have working AI wire. - if(canAIControl(src) && !stat) + if((aicontrolneeded && canAIControl(src) && !stat) || !aicontrolneeded) unbolt() set_electrified(NOT_ELECTRIFIED) open() @@ -1528,7 +1528,7 @@ . = TRUE /obj/machinery/door/airlock/proc/user_allowed(mob/user) - return (issilicon(user) && canAIControl(user)) || IsAdminGhost(user) + return (hasSiliconAccessInArea(user) && canAIControl(user)) || IsAdminGhost(user) /obj/machinery/door/airlock/proc/shock_restore(mob/user) if(!user_allowed(user)) diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm index 3bfcececda..adc1748ded 100644 --- a/code/game/machinery/doors/brigdoors.dm +++ b/code/game/machinery/doors/brigdoors.dm @@ -2,13 +2,11 @@ #define FONT_SIZE "5pt" #define FONT_COLOR "#09f" #define FONT_STYLE "Arial Black" -#define MAX_TIMER 9000 - -#define PRESET_SHORT 1200 -#define PRESET_MEDIUM 1800 -#define PRESET_LONG 3000 - +#define MAX_TIMER 15 MINUTES +#define PRESET_SHORT 2 MINUTES +#define PRESET_MEDIUM 3 MINUTES +#define PRESET_LONG 5 MINUTES /////////////////////////////////////////////////////////////////////////////////////////////// // Brig Door control displays. @@ -25,7 +23,7 @@ desc = "A remote control for a door." req_access = list(ACCESS_SECURITY) density = FALSE - var/id = null // id of linked machinery/lockers + var/id // id of linked machinery/lockers var/activation_time = 0 var/timer_duration = 0 @@ -43,8 +41,6 @@ Radio = new/obj/item/radio(src) Radio.listening = 0 -/obj/machinery/door_timer/Initialize() - . = ..() if(id != null) for(var/obj/machinery/door/window/brigdoor/M in urange(20, src)) if (M.id == id) @@ -71,7 +67,7 @@ return if(timing) - if(world.realtime - activation_time >= timer_duration) + if(REALTIMEOFDAY - activation_time >= timer_duration) timer_end() // open doors, reset timer, clear status screen update_icon() @@ -80,14 +76,13 @@ ..() update_icon() - // open/closedoor checks if door_timer has power, if so it checks if the // linked door is open/closed (by density) then opens it/closes it. /obj/machinery/door_timer/proc/timer_start() if(stat & (NOPOWER|BROKEN)) return 0 - activation_time = world.realtime + activation_time = REALTIMEOFDAY timing = TRUE for(var/obj/machinery/door/window/brigdoor/door in targets) @@ -104,7 +99,6 @@ C.update_icon() return 1 - /obj/machinery/door_timer/proc/timer_end(forced = FALSE) if(stat & (NOPOWER|BROKEN)) @@ -136,7 +130,7 @@ /obj/machinery/door_timer/proc/time_left(seconds = FALSE) - . = max(0,timer_duration - (activation_time ? world.realtime - activation_time : 0)) + . = max(0,timer_duration - (activation_time ? REALTIMEOFDAY - activation_time : 0)) if(seconds) . /= 10 @@ -240,7 +234,7 @@ preset_time = PRESET_LONG . = set_timer(preset_time) if(timing) - activation_time = world.realtime + activation_time = REALTIMEOFDAY else . = FALSE diff --git a/code/game/machinery/droneDispenser.dm b/code/game/machinery/droneDispenser.dm index 96ac8981c9..54be67f3c1 100644 --- a/code/game/machinery/droneDispenser.dm +++ b/code/game/machinery/droneDispenser.dm @@ -11,7 +11,7 @@ density = TRUE max_integrity = 250 - integrity_failure = 80 + integrity_failure = 0.33 // These allow for different icons when creating custom dispensers var/icon_off = "off" @@ -50,10 +50,10 @@ /obj/machinery/droneDispenser/Initialize() . = ..() - var/datum/component/material_container/materials = AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_GLASS), MINERAL_MATERIAL_AMOUNT * MAX_STACK_SIZE * 2, TRUE, /obj/item/stack) - materials.insert_amount(starting_amount) + var/datum/component/material_container/materials = AddComponent(/datum/component/material_container, list(/datum/material/iron, /datum/material/glass), MINERAL_MATERIAL_AMOUNT * MAX_STACK_SIZE * 2, TRUE, /obj/item/stack) + materials.insert_amount_mat(starting_amount) materials.precise_insertion = TRUE - using_materials = list(MAT_METAL=metal_cost, MAT_GLASS=glass_cost) + using_materials = list(/datum/material/iron = metal_cost, /datum/material/glass = glass_cost) /obj/machinery/droneDispenser/preloaded starting_amount = 5000 @@ -168,7 +168,7 @@ update_icon() if(DRONE_PRODUCTION) - materials.use_amount(using_materials) + materials.use_materials(using_materials) if(power_used) use_power(power_used) diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm index 5555e05eb0..83bc055cd7 100644 --- a/code/game/machinery/firealarm.dm +++ b/code/game/machinery/firealarm.dm @@ -17,7 +17,7 @@ icon = 'icons/obj/monitors.dmi' icon_state = "fire0" max_integrity = 250 - integrity_failure = 100 + integrity_failure = 0.4 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 30) use_power = IDLE_POWER_USE idle_power_usage = 2 diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm index 6f89ce0d45..9cc4fc43ac 100644 --- a/code/game/machinery/flasher.dm +++ b/code/game/machinery/flasher.dm @@ -6,7 +6,7 @@ icon = 'icons/obj/stationobjs.dmi' icon_state = "mflash1" max_integrity = 250 - integrity_failure = 100 + integrity_failure = 0.4 light_color = LIGHT_COLOR_WHITE light_power = FLASH_LIGHT_POWER var/obj/item/assembly/flash/handheld/bulb diff --git a/code/game/machinery/harvester.dm b/code/game/machinery/harvester.dm index 40430b37b7..8275e981de 100644 --- a/code/game/machinery/harvester.dm +++ b/code/game/machinery/harvester.dm @@ -71,7 +71,7 @@ say("Subject may not have abiotic items on.") playsound(src, 'sound/machines/buzz-sigh.ogg', 30, 1) return - if(!(MOB_ORGANIC in C.mob_biotypes)) + if(!(C.mob_biotypes & MOB_ORGANIC)) say("Subject is not organic.") playsound(src, 'sound/machines/buzz-sigh.ogg', 30, 1) return diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm index 6d19776d86..b3f0ce9693 100644 --- a/code/game/machinery/iv_drip.dm +++ b/code/game/machinery/iv_drip.dm @@ -184,7 +184,7 @@ if(usr.incapacitated()) return if(beaker) - if(usr && Adjacent(usr) && !issiliconoradminghost(usr)) + if(usr && Adjacent(usr) && usr.can_hold_items()) if(!usr.put_in_hands(beaker)) beaker.forceMove(drop_location()) beaker = null diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index a27cb9b78c..3d0fdb06da 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -26,7 +26,7 @@ var/raising= 0 //if the turret is currently opening or closing its cover max_integrity = 160 //the turret's health - integrity_failure = 80 + integrity_failure = 0.5 armor = list("melee" = 50, "bullet" = 30, "laser" = 30, "energy" = 30, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90) var/locked = TRUE //if the turret's behaviour control access is locked @@ -348,6 +348,26 @@ spark_system.start() //creates some sparks because they look cool qdel(cover) //deletes the cover - no need on keeping it there! +//turret healing +/obj/machinery/porta_turret/examine(mob/user) + . = ..() + if(obj_integrity < max_integrity) + . += "Use a welder to fix it." + +/obj/machinery/porta_turret/welder_act(mob/living/user, obj/item/I) + . = TRUE + if(obj_integrity < max_integrity) + if(!I.tool_start_check(user, amount=0)) + return + user.visible_message("[user] is welding the turret.", \ + "You begin repairing the turret...", \ + "You hear welding.") + if(I.use_tool(src, user, 40, volume=50)) + obj_integrity = max_integrity + user.visible_message("[user.name] has repaired [src].", \ + "You finish repairing the turret.") + else + to_chat(user, "The turret doesn't need repairing.") /obj/machinery/porta_turret/process() @@ -672,6 +692,7 @@ lethal_projectile_sound = 'sound/weapons/laser.ogg' desc = "An energy blaster auto-turret." + /obj/machinery/porta_turret/syndicate/energy/heavy icon_state = "standard_stun" base_icon_state = "standard" @@ -683,6 +704,11 @@ lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg' desc = "An energy blaster auto-turret." +/obj/machinery/porta_turret/syndicate/energy/pirate + max_integrity = 260 + integrity_failure = 20 + armor = list("melee" = 50, "bullet" = 30, "laser" = 30, "energy" = 30, "bomb" = 50, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90) + /obj/machinery/porta_turret/syndicate/setup() return @@ -691,7 +717,6 @@ return 10 //Syndicate turrets shoot everything not in their faction /obj/machinery/porta_turret/syndicate/pod - integrity_failure = 20 max_integrity = 40 stun_projectile = /obj/item/projectile/bullet/syndicate_turret lethal_projectile = /obj/item/projectile/bullet/syndicate_turret @@ -773,7 +798,6 @@ /obj/machinery/porta_turret/centcom_shuttle/weak max_integrity = 120 - integrity_failure = 60 name = "Old Laser Turret" desc = "A turret built with substandard parts and run down further with age. Still capable of delivering lethal lasers to the odd space carp, but not much else." stun_projectile = /obj/item/projectile/beam/weak/penetrator @@ -839,7 +863,7 @@ /obj/machinery/turretid/examine(mob/user) . = ..() - if(issilicon(user) && (!stat & BROKEN)) + if(hasSiliconAccessInArea(user) && (!stat & BROKEN)) . += "Ctrl-click [src] to [ enabled ? "disable" : "enable"] turrets." . += "Alt-click [src] to set turrets to [ lethal ? "stun" : "kill"]." @@ -854,7 +878,7 @@ to_chat(user, "You link \the [M.buffer] with \the [src]") return - if (issilicon(user)) + if (hasSiliconAccessInArea(user)) return attack_hand(user) if ( get_dist(src, user) == 0 ) // trying to unlock the interface @@ -895,7 +919,7 @@ /obj/machinery/turretid/ui_interact(mob/user) . = ..() if ( get_dist(src, user) > 0 ) - if ( !(issilicon(user) || IsAdminGhost(user)) ) + if ( !(hasSiliconAccessInArea(user) || IsAdminGhost(user)) ) to_chat(user, "You are too far away.") user.unset_machine() user << browse(null, "window=turretid") @@ -903,10 +927,10 @@ var/t = "" - if(locked && !(issilicon(user) || IsAdminGhost(user))) + if(locked && !(hasSiliconAccessInArea(user) || IsAdminGhost(user))) t += "
Swipe ID card to unlock interface
" else - if(!issilicon(user) && !IsAdminGhost(user)) + if(!hasSiliconAccessInArea(user) && !IsAdminGhost(user)) t += "
Swipe ID card to lock interface
" t += "Turrets [enabled?"activated":"deactivated"] - [enabled?"Disable":"Enable"]?
" t += "Currently set for [lethal?"lethal":"stun repeatedly"] - Change to [lethal?"Stun repeatedly":"Lethal"]?
" @@ -920,7 +944,7 @@ if(..()) return if (locked) - if(!(issilicon(usr) || IsAdminGhost(usr))) + if(!(hasSiliconAccessInArea(usr) || IsAdminGhost(usr))) to_chat(usr, "Control panel is locked!") return if (href_list["toggleOn"]) @@ -963,7 +987,7 @@ desc = "Used for building turret control panels." icon_state = "apc" result_path = /obj/machinery/turretid - materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/iron=MINERAL_MATERIAL_AMOUNT) /obj/item/gun/proc/get_turret_properties() . = list() diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index 29921c4584..aa97aa821a 100755 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -16,6 +16,7 @@ /obj/item/melee/baton, /obj/item/ammo_box/magazine/recharge, /obj/item/modular_computer, + /obj/item/twohanded/electrostaff, /obj/item/gun/ballistic/automatic/magrifle)) /obj/machinery/recharger/RefreshParts() diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm index 538017eaef..c14e70f831 100644 --- a/code/game/machinery/recycler.dm +++ b/code/game/machinery/recycler.dm @@ -19,7 +19,7 @@ /obj/machinery/recycler/Initialize() AddComponent(/datum/component/butchering/recycler, 1, amount_produced,amount_produced/5) - AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_GLASS, MAT_PLASMA, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE, MAT_PLASTIC), INFINITY, FALSE, null, null, null, TRUE) + AddComponent(/datum/component/material_container, list(/datum/material/iron, /datum/material/glass, /datum/material/silver, /datum/material/plasma, /datum/material/gold, /datum/material/diamond, /datum/material/plastic, /datum/material/uranium, /datum/material/bananium, /datum/material/titanium, /datum/material/bluespace), INFINITY, FALSE, null, null, null, TRUE) . = ..() update_icon() req_one_access = get_all_accesses() + get_all_centcom_access() diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 16016b8e18..b4288310b0 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -124,7 +124,7 @@ . = ..() if(.) return - if(locked && !issilicon(user)) + if(locked && !hasSiliconAccessInArea(user)) to_chat(user, "The machine is locked, you are unable to use it!") return if(panel_open) @@ -370,7 +370,7 @@ if(!anchored) to_chat(user, "\The [src] needs to be firmly secured to the floor first!") return - if(locked && !issilicon(user)) + if(locked && !hasSiliconAccessInArea(user)) to_chat(user, "The controls are locked!") return if(!power) diff --git a/code/game/machinery/slotmachine.dm b/code/game/machinery/slotmachine.dm index 4b73032a8a..115c61e9b9 100644 --- a/code/game/machinery/slotmachine.dm +++ b/code/game/machinery/slotmachine.dm @@ -26,7 +26,6 @@ var/working = 0 var/balance = 0 //How much money is in the machine, ready to be CONSUMED. var/jackpots = 0 - var/list/coinvalues = list() var/list/reels = list(list("", "", "") = 0, list("", "", "") = 0, list("", "", "") = 0, list("", "", "") = 0, list("", "", "") = 0) var/list/symbols = list(SEVEN = 1, "&" = 2, "@" = 2, "$" = 2, "?" = 2, "#" = 2, "!" = 2, "%" = 2) //if people are winning too much, multiply every number in this list by 2 and see if they are still winning too much. @@ -45,10 +44,6 @@ toggle_reel_spin(0) - for(var/cointype in typesof(/obj/item/coin)) - var/obj/item/coin/C = cointype - coinvalues["[cointype]"] = initial(C.value) - /obj/machinery/computer/slot_machine/Destroy() if(balance) give_coins(balance) @@ -92,7 +87,7 @@ else if(!user.temporarilyRemoveItemFromInventory(C)) return - to_chat(user, "You insert a [C.cmineral] coin into [src]'s slot!") + to_chat(user, "You insert [C] into [src]'s slot!") balance += C.value qdel(C) else @@ -294,19 +289,22 @@ return amount -/obj/machinery/computer/slot_machine/proc/dispense(amount = 0, cointype = /obj/item/coin/silver, mob/living/target, throwit = 0) - var/value = coinvalues["[cointype]"] +/obj/machinery/computer/slot_machine/proc/dispense(amount = 0, cointype = /obj/item/coin/silver, mob/living/target, throwit = FALSE) + var/value = GLOB.coin_values[cointype] || GLOB.coin_values[/obj/item/coin/iron] + INVOKE_ASYNC(src, .proc/become_rich, amount, value, cointype, target, throwit) + return amount % value - - while(amount >= value) +/obj/machinery/computer/slot_machine/proc/become_rich(amount, value, cointype = /obj/item/coin/silver, mob/living/target, throwit = FALSE) + if(value <= 0) + return + while(amount >= value && !QDELETED(src)) var/obj/item/coin/C = new cointype(loc) //DOUBLE THE PAIN amount -= value if(throwit && target) C.throw_at(target, 3, 10) else random_step(C, 2, 40) - - return amount + CHECK_TICK #undef SEVEN #undef SPIN_TIME diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm index ebc2533124..221e35118e 100644 --- a/code/game/machinery/syndicatebomb.dm +++ b/code/game/machinery/syndicatebomb.dm @@ -79,7 +79,7 @@ try_detonate(TRUE) //Counter terrorists win else if(!active || defused) - if(defused && payload in src) + if(defused && (payload in src)) payload.defuse() countdown.stop() STOP_PROCESSING(SSfastprocess, src) diff --git a/code/game/machinery/telecomms/computers/logbrowser.dm b/code/game/machinery/telecomms/computers/logbrowser.dm index c1db49605c..f2b2c594b7 100644 --- a/code/game/machinery/telecomms/computers/logbrowser.dm +++ b/code/game/machinery/telecomms/computers/logbrowser.dm @@ -196,7 +196,7 @@ var/newnet = stripped_input(usr, "Which network do you want to view?", "Comm Monitor", network) - if(newnet && ((usr in range(1, src)) || issilicon(usr))) + if(newnet && ((usr in range(1, src)) || hasSiliconAccessInArea(usr))) if(length(newnet) > 15) temp = "- FAILED: NETWORK TAG STRING TOO LENGHTLY -" diff --git a/code/game/machinery/telecomms/computers/message.dm b/code/game/machinery/telecomms/computers/message.dm index 884c2bb37d..5e39997872 100644 --- a/code/game/machinery/telecomms/computers/message.dm +++ b/code/game/machinery/telecomms/computers/message.dm @@ -260,7 +260,7 @@ if(..()) return - if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || issilicon(usr)) + if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || hasSiliconAccessInArea(usr)) //Authenticate if (href_list["auth"]) if(LINKED_SERVER_NONRESPONSIVE) diff --git a/code/game/machinery/telecomms/computers/telemonitor.dm b/code/game/machinery/telecomms/computers/telemonitor.dm index aebef711a9..23c03514ca 100644 --- a/code/game/machinery/telecomms/computers/telemonitor.dm +++ b/code/game/machinery/telecomms/computers/telemonitor.dm @@ -108,7 +108,7 @@ if(href_list["network"]) var/newnet = stripped_input(usr, "Which network do you want to view?", "Comm Monitor", network) - if(newnet && ((usr in range(1, src)) || issilicon(usr))) + if(newnet && ((usr in range(1, src)) || hasSiliconAccessInArea(usr))) if(length(newnet) > 15) temp = "- FAILED: NETWORK TAG STRING TOO LENGHTLY -" diff --git a/code/game/machinery/telecomms/machine_interactions.dm b/code/game/machinery/telecomms/machine_interactions.dm index 8cd8b479d8..4de8929b6b 100644 --- a/code/game/machinery/telecomms/machine_interactions.dm +++ b/code/game/machinery/telecomms/machine_interactions.dm @@ -30,7 +30,7 @@ /obj/machinery/telecomms/ui_interact(mob/user) . = ..() // You need a multitool to use this, or be silicon - if(!issilicon(user)) + if(!hasSiliconAccessInArea(user)) // istype returns false if the value is null if(!istype(user.get_active_held_item(), /obj/item/multitool)) return @@ -97,7 +97,7 @@ var/obj/item/multitool/P = null // Let's double check - if(!issilicon(user) && istype(user.get_active_held_item(), /obj/item/multitool)) + if(!hasSiliconAccessInArea(user) && istype(user.get_active_held_item(), /obj/item/multitool)) P = user.get_active_held_item() else if(isAI(user)) var/mob/living/silicon/ai/U = user @@ -162,7 +162,7 @@ if(..()) return - if(!issilicon(usr)) + if(!hasSiliconAccessInArea(usr)) if(!istype(usr.get_active_held_item(), /obj/item/multitool)) return @@ -270,6 +270,6 @@ updateUsrDialog() /obj/machinery/telecomms/proc/canAccess(mob/user) - if(issilicon(user) || in_range(user, src)) + if(hasSiliconAccessInArea(user) || in_range(user, src)) return TRUE return FALSE diff --git a/code/game/machinery/telecomms/machines/receiver.dm b/code/game/machinery/telecomms/machines/receiver.dm index 0fd3aec012..4dd3af036c 100644 --- a/code/game/machinery/telecomms/machines/receiver.dm +++ b/code/game/machinery/telecomms/machines/receiver.dm @@ -33,7 +33,7 @@ for(var/obj/machinery/telecomms/hub/H in links) for(var/obj/machinery/telecomms/relay/R in H.links) - if(R.can_receive(signal) && R.z in signal.levels) + if(R.can_receive(signal) && (R.z in signal.levels)) return TRUE return FALSE diff --git a/code/game/machinery/toylathe.dm b/code/game/machinery/toylathe.dm index ecd2132a9d..a286bcdc25 100644 --- a/code/game/machinery/toylathe.dm +++ b/code/game/machinery/toylathe.dm @@ -46,7 +46,7 @@ ) /obj/machinery/autoylathe/Initialize() - AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_GLASS, MAT_PLASTIC), 0, TRUE, null, null, CALLBACK(src, .proc/AfterMaterialInsert)) + AddComponent(/datum/component/material_container, list(/datum/material/iron, /datum/material/glass, /datum/material/plastic), 0, TRUE, null, null, CALLBACK(src, .proc/AfterMaterialInsert)) . = ..() wires = new /datum/wires/autoylathe(src) @@ -120,18 +120,13 @@ return ..() -/obj/machinery/autoylathe/proc/AfterMaterialInsert(type_inserted, id_inserted, amount_inserted) - if(ispath(type_inserted, /obj/item/stack/ore/bluespace_crystal)) - use_power(amount_inserted / 10) +/obj/machinery/autoylathe/proc/AfterMaterialInsert(obj/item/item_inserted, id_inserted, amount_inserted) + if(item_inserted.custom_materials?.len && item_inserted.custom_materials[getmaterialref(/datum/material/glass)]) + flick("autolathe_r",src)//plays glass insertion animation by default otherwise else - switch(id_inserted) - if (MAT_METAL) - flick("autolathe_o",src)//plays metal insertion animation - if (MAT_GLASS) - flick("autolathe_r",src)//plays glass insertion animation - if (MAT_PLASTIC) - flick("autolathe_o",src)//plays metal insertion animation - use_power(amount_inserted / 10) + flick("autolathe_o",src)//plays metal insertion animation + + use_power(min(1000, amount_inserted / 100)) updateUsrDialog() /obj/machinery/autoylathe/Topic(href, href_list) @@ -161,18 +156,40 @@ ///////////////// var/coeff = (is_stack ? 1 : prod_coeff) //stacks are unaffected by production coefficient - var/metal_cost = being_built.materials[MAT_METAL] - var/glass_cost = being_built.materials[MAT_GLASS] - var/plastic_cost = being_built.materials[MAT_PLASTIC] - var/power = max(2000, (metal_cost+glass_cost+plastic_cost)*multiplier/5) + var/total_amount = 0 + for(var/MAT in being_built.materials) + total_amount += being_built.materials[MAT] + var/power = max(2000, (total_amount)*multiplier/5) //Change this to use all materials var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) - if((materials.amount(MAT_METAL) >= metal_cost*multiplier*coeff) && (materials.amount(MAT_GLASS) >= glass_cost*multiplier*coeff) && (materials.amount(MAT_PLASTIC) >= plastic_cost*multiplier*coeff)) + + var/list/materials_used = list() + var/list/custom_materials = list() //These will apply their material effect, This should usually only be one. + + for(var/MAT in being_built.materials) + var/datum/material/used_material = MAT + var/amount_needed = being_built.materials[MAT] * coeff * multiplier + if(istext(used_material)) //This means its a category + var/list/list_to_show = list() + for(var/i in SSmaterials.materials_by_category[used_material]) + if(materials.materials[i] > 0) + list_to_show += i + + used_material = input("Choose [used_material]", "Custom Material") as null|anything in list_to_show + if(!used_material) + return //Didn't pick any material, so you can't build shit either. + custom_materials[used_material] += amount_needed + + materials_used[used_material] = amount_needed + + if(materials.has_materials(materials_used)) busy = TRUE use_power(power) icon_state = "autolathe_n" var/time = is_stack ? 32 : 32*coeff*multiplier - addtimer(CALLBACK(src, .proc/make_item, power, metal_cost, glass_cost, plastic_cost, multiplier, coeff, is_stack), time) + addtimer(CALLBACK(src, .proc/make_item, power, materials_used, custom_materials, multiplier, coeff, is_stack), time) + else + to_chat(usr, "Not enough materials for this operation.") if(href_list["search"]) matching_designs.Cut() @@ -189,12 +206,11 @@ return -/obj/machinery/autoylathe/proc/make_item(power, metal_cost, glass_cost, plastic_cost, multiplier, coeff, is_stack) +/obj/machinery/autoylathe/proc/make_item(power, list/materials_used, list/picked_materials, multiplier, coeff, is_stack) var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) var/atom/A = drop_location() use_power(power) - var/list/materials_used = list(MAT_METAL=metal_cost*coeff*multiplier, MAT_GLASS=glass_cost*coeff*multiplier, MAT_PLASTIC=plastic_cost*coeff*multiplier) - materials.use_amount(materials_used) + materials.use_materials(materials_used) if(is_stack) var/obj/item/stack/N = new being_built.build_path(A, multiplier) @@ -203,10 +219,9 @@ else for(var/i=1, i<=multiplier, i++) var/obj/item/new_item = new being_built.build_path(A) - new_item.materials = new_item.materials.Copy() - for(var/mat in materials_used) - new_item.materials[mat] = materials_used[mat] / multiplier new_item.autoylathe_crafted(src) + if(length(picked_materials)) + new_item.set_custom_materials(picked_materials, 1 / multiplier) //Ensure we get the non multiplied amount icon_state = "autolathe" busy = FALSE updateDialog() @@ -265,7 +280,9 @@ if(ispath(D.build_path, /obj/item/stack)) var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) - var/max_multiplier = min(D.maxstack, D.materials[MAT_METAL] ?round(materials.amount(MAT_METAL)/D.materials[MAT_METAL]):INFINITY,D.materials[MAT_GLASS] ?round(materials.amount(MAT_GLASS)/D.materials[MAT_GLASS]):INFINITY,D.materials[MAT_PLASTIC] ?round(materials.amount(MAT_PLASTIC)/D.materials[MAT_PLASTIC]):INFINITY) + var/max_multiplier + for(var/datum/material/mat in D.materials) + max_multiplier = min(D.maxstack, round(materials.get_material_amount(mat)/D.materials[mat])) if (max_multiplier>10 && !disabled) dat += " x10" if (max_multiplier>25 && !disabled) @@ -297,7 +314,9 @@ if(ispath(D.build_path, /obj/item/stack)) var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) - var/max_multiplier = min(D.maxstack, D.materials[MAT_METAL] ?round(materials.amount(MAT_METAL)/D.materials[MAT_METAL]):INFINITY,D.materials[MAT_GLASS] ?round(materials.amount(MAT_GLASS)/D.materials[MAT_GLASS]):INFINITY,D.materials[MAT_PLASTIC] ?round(materials.amount(MAT_PLASTIC)/D.materials[MAT_PLASTIC]):INFINITY) + var/max_multiplier + for(var/datum/material/mat in D.materials) + max_multiplier = min(D.maxstack, round(materials.get_material_amount(mat)/D.materials[mat])) if (max_multiplier>10 && !disabled) dat += " x10" if (max_multiplier>25 && !disabled) @@ -314,8 +333,10 @@ var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) var/dat = "Total amount: [materials.total_amount] / [materials.max_amount] cm3
" for(var/mat_id in materials.materials) - var/datum/material/M = materials.materials[mat_id] - dat += "[M.name] amount: [M.amount] cm3
" + var/datum/material/M = mat_id + var/mineral_amount = materials.materials[mat_id] + if(mineral_amount > 0) + dat += "[M.name] amount: [mineral_amount] cm3
" return dat /obj/machinery/autoylathe/proc/can_build(datum/design/D, amount = 1) @@ -324,24 +345,24 @@ var/coeff = (ispath(D.build_path, /obj/item/stack) ? 1 : prod_coeff) + var/list/required_materials = list() + + for(var/i in D.materials) + required_materials[i] = D.materials[i] * coeff * amount + var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) - if(D.materials[MAT_METAL] && (materials.amount(MAT_METAL) < (D.materials[MAT_METAL] * coeff * amount))) - return FALSE - if(D.materials[MAT_GLASS] && (materials.amount(MAT_GLASS) < (D.materials[MAT_GLASS] * coeff * amount))) - return FALSE - if(D.materials[MAT_PLASTIC] && (materials.amount(MAT_PLASTIC) < (D.materials[MAT_PLASTIC] * coeff * amount))) - return FALSE - return TRUE + + return materials.has_materials(required_materials) /obj/machinery/autoylathe/proc/get_design_cost(datum/design/D) var/coeff = (ispath(D.build_path, /obj/item/stack) ? 1 : prod_coeff) var/dat - if(D.materials[MAT_METAL]) - dat += "[D.materials[MAT_METAL] * coeff] metal " - if(D.materials[MAT_GLASS]) - dat += "[D.materials[MAT_GLASS] * coeff] glass " - if(D.materials[MAT_PLASTIC]) - dat += "[D.materials[MAT_PLASTIC] * coeff] plastic" + for(var/i in D.materials) + if(istext(i)) //Category handling + dat += "[D.materials[i] * coeff] [i]" + else + var/datum/material/M = i + dat += "[D.materials[i] * coeff] [M.name] " return dat /obj/machinery/autoylathe/proc/reset(wire) diff --git a/code/game/machinery/transformer.dm b/code/game/machinery/transformer.dm index 3ff2424d83..4ed2473260 100644 --- a/code/game/machinery/transformer.dm +++ b/code/game/machinery/transformer.dm @@ -27,7 +27,7 @@ /obj/machinery/transformer/examine(mob/user) . = ..() - if(cooldown && (issilicon(user) || isobserver(user))) + if(cooldown && (hasSiliconAccessInArea(user) || isobserver(user))) . += "It will be ready in [DisplayTimeText(cooldown_timer - world.time)]." /obj/machinery/transformer/Destroy() diff --git a/code/game/mecha/combat/combat.dm b/code/game/mecha/combat/combat.dm index ae57e5c108..8a4a2fdd9b 100644 --- a/code/game/mecha/combat/combat.dm +++ b/code/game/mecha/combat/combat.dm @@ -3,9 +3,9 @@ internal_damage_threshold = 50 armor = list("melee" = 30, "bullet" = 30, "laser" = 15, "energy" = 20, "bomb" = 20, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) mouse_pointer = 'icons/mecha/mecha_mouse.dmi' - var/spawn_tracked = TRUE -/obj/mecha/combat/Initialize() - . = ..() - if(spawn_tracked) - trackers += new /obj/item/mecha_parts/mecha_tracking(src) \ No newline at end of file +/obj/mecha/combat/proc/max_ammo() //Max the ammo stored for Nuke Ops mechs, or anyone else that calls this + for(var/obj/item/I in equipment) + if(istype(I, /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/)) + var/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/gun = I + gun.projectiles_cache = gun.projectiles_cache_max \ No newline at end of file diff --git a/code/game/mecha/combat/gygax.dm b/code/game/mecha/combat/gygax.dm index 3364bbb9a2..71258d1ccb 100644 --- a/code/game/mecha/combat/gygax.dm +++ b/code/game/mecha/combat/gygax.dm @@ -30,7 +30,6 @@ internals_req_access = list(ACCESS_SYNDICATE) wreckage = /obj/structure/mecha_wreckage/gygax/dark max_equip = 4 - spawn_tracked = FALSE /obj/mecha/combat/gygax/dark/loaded/Initialize() . = ..() @@ -42,6 +41,7 @@ ME.attach(src) ME = new /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay ME.attach(src) + max_ammo() /obj/mecha/combat/gygax/dark/add_cell(obj/item/stock_parts/cell/C=null) if(C) diff --git a/code/game/mecha/combat/marauder.dm b/code/game/mecha/combat/marauder.dm index c796cb7c1f..5c60a97864 100644 --- a/code/game/mecha/combat/marauder.dm +++ b/code/game/mecha/combat/marauder.dm @@ -17,7 +17,6 @@ force = 45 max_equip = 4 bumpsmash = 1 - spawn_tracked = FALSE /obj/mecha/combat/marauder/GrantActions(mob/living/user, human_occupant = 0) ..() @@ -41,6 +40,7 @@ ME.attach(src) ME = new /obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster(src) ME.attach(src) + max_ammo() /obj/mecha/combat/marauder/seraph desc = "Heavy-duty, command-type exosuit. This is a custom model, utilized only by high-ranking military personnel." @@ -68,6 +68,7 @@ ME.attach(src) ME = new /obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster(src) ME.attach(src) + max_ammo() /obj/mecha/combat/marauder/mauler desc = "Heavy-duty, combat exosuit, developed off of the existing Marauder model." @@ -90,5 +91,6 @@ ME.attach(src) ME = new /obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster(src) ME.attach(src) + max_ammo() diff --git a/code/game/mecha/combat/neovgre.dm b/code/game/mecha/combat/neovgre.dm index 8fc1dd97b2..c678912a21 100644 --- a/code/game/mecha/combat/neovgre.dm +++ b/code/game/mecha/combat/neovgre.dm @@ -15,7 +15,6 @@ internals_req_access = list() add_req_access = 0 wreckage = /obj/structure/mecha_wreckage/durand/neovgre - spawn_tracked = FALSE /obj/mecha/combat/neovgre/GrantActions(mob/living/user, human_occupant = 0) //No Eject action for you sonny jim, your life for Ratvar! internals_action.Grant(user, src) diff --git a/code/game/mecha/combat/reticence.dm b/code/game/mecha/combat/reticence.dm index 62e891494d..7343a85483 100644 --- a/code/game/mecha/combat/reticence.dm +++ b/code/game/mecha/combat/reticence.dm @@ -19,7 +19,6 @@ stepsound = null turnsound = null opacity = 0 - spawn_tracked = FALSE /obj/mecha/combat/reticence/loaded/Initialize() . = ..() diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm index 61ecec40c2..5f6b709d1a 100644 --- a/code/game/mecha/equipment/tools/medical_tools.dm +++ b/code/game/mecha/equipment/tools/medical_tools.dm @@ -108,16 +108,17 @@ /obj/item/mecha_parts/mecha_equipment/medical/sleeper/Topic(href,href_list) ..() - var/datum/topic_input/afilter = new /datum/topic_input(href,href_list) - if(afilter.get("eject")) + if(href_list["eject"]) go_out() - if(afilter.get("view_stats")) + if(href_list["view_stats"]) chassis.occupant << browse(get_patient_stats(),"window=msleeper") onclose(chassis.occupant, "msleeper") return - if(afilter.get("inject")) - inject_reagent(afilter.getType("inject", /datum/reagent),afilter.getObj("source")) - return + if(href_list["inject"]) + var/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/SG = locate() in chassis + var/datum/reagent/R = locate(href_list["inject"]) in SG.reagents.reagent_list + if (istype(R)) + inject_reagent(R, SG) /obj/item/mecha_parts/mecha_equipment/medical/sleeper/proc/get_patient_stats() if(!patient) @@ -354,19 +355,18 @@ /obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/Topic(href,href_list) ..() - var/datum/topic_input/afilter = new (href,href_list) - if(afilter.get("toggle_mode")) + if (href_list["toggle_mode"]) mode = !mode update_equip_info() return - if(afilter.get("select_reagents")) + if (href_list["select_reagents"]) processed_reagents.len = 0 var/m = 0 var/message for(var/i=1 to known_reagents.len) if(m>=synth_speed) break - var/reagent = afilter.get("reagent_[i]") + var/reagent = text2path(href_list["reagent_[i]"]) if(reagent && (reagent in known_reagents)) message = "[m ? ", " : null][known_reagents[reagent]]" processed_reagents += reagent @@ -375,20 +375,18 @@ message += " added to production" START_PROCESSING(SSobj, src) occupant_message(message) - occupant_message("Reagent processing started.") + occupant_message("Reagent processing started.") mecha_log_message("Reagent processing started.") return - if(afilter.get("show_reagents")) + if (href_list["show_reagents"]) chassis.occupant << browse(get_reagents_page(),"window=msyringegun") - if(afilter.get("purge_reagent")) - var/reagent = afilter.get("purge_reagent") + if (href_list["purge_reagent"]) + var/reagent = href_list["purge_reagent"] if(reagent) reagents.del_reagent(reagent) return - if(afilter.get("purge_all")) + if (href_list["purge_all"]) reagents.clear_reagents() - return - return /obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/proc/get_reagents_page() var/output = {" @@ -529,7 +527,8 @@ range = MELEE|RANGED equip_cooldown = 0 var/obj/item/gun/medbeam/mech/medigun - materials = list(MAT_METAL = 15000, MAT_GLASS = 8000, MAT_PLASMA = 3000, MAT_GOLD = 8000, MAT_DIAMOND = 2000) + custom_materials = list(/datum/material/iron = 15000, /datum/material/glass = 8000, /datum/material/plasma = 3000, /datum/material/gold = 8000, /datum/material/diamond = 2000) + material_flags = MATERIAL_NO_EFFECTS /obj/item/mecha_parts/mecha_equipment/medical/mechmedbeam/Initialize() . = ..() diff --git a/code/game/mecha/equipment/tools/other_tools.dm b/code/game/mecha/equipment/tools/other_tools.dm index 70f4af8f7f..38ef518f49 100644 --- a/code/game/mecha/equipment/tools/other_tools.dm +++ b/code/game/mecha/equipment/tools/other_tools.dm @@ -388,7 +388,7 @@ /obj/item/mecha_parts/mecha_equipment/generator/get_equip_info() var/output = ..() if(output) - return "[output] \[[fuel]: [round(fuel.amount*fuel.perunit,0.1)] cm3\] - [equip_ready?"A":"Dea"]ctivate" + return "[output] \[[fuel]: [round(fuel.amount*fuel.mats_per_stack,0.1)] cm3\] - [equip_ready?"A":"Dea"]ctivate" /obj/item/mecha_parts/mecha_equipment/generator/action(target) if(chassis) @@ -398,9 +398,9 @@ /obj/item/mecha_parts/mecha_equipment/generator/proc/load_fuel(var/obj/item/stack/sheet/P) if(P.type == fuel.type && P.amount > 0) - var/to_load = max(max_fuel - fuel.amount*fuel.perunit,0) + var/to_load = max(max_fuel - fuel.amount*fuel.mats_per_stack,0) if(to_load) - var/units = min(max(round(to_load / P.perunit),1),P.amount) + var/units = min(max(round(to_load / P.mats_per_stack),1),P.amount) fuel.amount += units P.use(units) occupant_message("[units] unit\s of [fuel] successfully loaded.") @@ -454,7 +454,7 @@ if(cur_charge < chassis.cell.maxcharge) use_fuel = fuel_per_cycle_active chassis.give_power(power_per_cycle) - fuel.amount -= min(use_fuel/fuel.perunit,fuel.amount) + fuel.amount -= min(use_fuel/fuel.mats_per_stack,fuel.amount) update_equip_info() return 1 diff --git a/code/game/mecha/equipment/tools/work_tools.dm b/code/game/mecha/equipment/tools/work_tools.dm index 33d5166481..759fcd996d 100644 --- a/code/game/mecha/equipment/tools/work_tools.dm +++ b/code/game/mecha/equipment/tools/work_tools.dm @@ -34,6 +34,19 @@ return if(!cargo_holder) return + if(ismecha(target)) + var/obj/mecha/M = target + var/have_ammo + for(var/obj/item/mecha_ammo/box in cargo_holder.cargo) + if(istype(box, /obj/item/mecha_ammo) && box.rounds) + have_ammo = TRUE + if(M.ammo_resupply(box, chassis.occupant, TRUE)) + return + if(have_ammo) + to_chat(chassis.occupant, "No further supplies can be provided to [M].") + else + to_chat(chassis.occupant, "No providable supplies found in cargo hold") + return if(isobj(target)) var/obj/O = target if(!O.anchored) diff --git a/code/game/mecha/equipment/weapons/mecha_ammo.dm b/code/game/mecha/equipment/weapons/mecha_ammo.dm new file mode 100644 index 0000000000..83a85ffcba --- /dev/null +++ b/code/game/mecha/equipment/weapons/mecha_ammo.dm @@ -0,0 +1,94 @@ +/obj/item/mecha_ammo + name = "generic ammo box" + desc = "A box of ammo for an unknown weapon." + w_class = WEIGHT_CLASS_BULKY + icon = 'icons/mecha/mecha_ammo.dmi' + icon_state = "empty" + lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' + var/rounds = 0 + var/round_term = "round" + var/direct_load //For weapons where we re-load the weapon itself rather than adding to the ammo storage. + var/load_audio = "sound/weapons/gun_magazine_insert_empty_1.ogg" + var/ammo_type + +/obj/item/mecha_ammo/proc/update_name() + if(!rounds) + name = "empty ammo box" + desc = "An exosuit ammuniton box that has since been emptied. Please recycle." + icon_state = "empty" + +/obj/item/mecha_ammo/attack_self(mob/user) + ..() + if(rounds) + to_chat(user, "You cannot flatten the ammo box until it's empty!") + return + + to_chat(user, "You fold [src] flat.") + var/I = new /obj/item/stack/sheet/metal(user.loc) + qdel(src) + user.put_in_hands(I) + +/obj/item/mecha_ammo/examine(mob/user) + . = ..() + if(rounds) + . += "There [rounds > 1?"are":"is"] [rounds] [round_term][rounds > 1?"s":""] left." + +/obj/item/mecha_ammo/incendiary + name = "incendiary ammo" + desc = "A box of incendiary ammunition for use with exosuit weapons." + icon_state = "incendiary" + rounds = 24 + ammo_type = "incendiary" + +/obj/item/mecha_ammo/scattershot + name = "scattershot ammo" + desc = "A box of scaled-up buckshot, for use in exosuit shotguns." + icon_state = "scattershot" + rounds = 40 + ammo_type = "scattershot" + +/obj/item/mecha_ammo/lmg + name = "machine gun ammo" + desc = "A box of linked ammunition, designed for the Ultra AC 2 exosuit weapon." + icon_state = "lmg" + rounds = 300 + ammo_type = "lmg" + +/obj/item/mecha_ammo/missiles_br + name = "breaching missiles" + desc = "A box of large missiles, ready for loading into a BRM-6 exosuit missile rack." + icon_state = "missile_br" + rounds = 6 + round_term = "missile" + direct_load = TRUE + load_audio = "sound/weapons/bulletinsert.ogg" + ammo_type = "missiles_br" + +/obj/item/mecha_ammo/missiles_he + name = "anti-armor missiles" + desc = "A box of large missiles, ready for loading into an SRM-8 exosuit missile rack." + icon_state = "missile_he" + rounds = 8 + round_term = "missile" + direct_load = TRUE + load_audio = "sound/weapons/bulletinsert.ogg" + ammo_type = "missiles_he" + + +/obj/item/mecha_ammo/flashbang + name = "launchable flashbangs" + desc = "A box of smooth flashbangs, for use with a large exosuit launcher. Cannot be primed by hand." + icon_state = "flashbang" + rounds = 6 + round_term = "grenade" + ammo_type = "flashbang" + +/obj/item/mecha_ammo/clusterbang + name = "launchable flashbang clusters" + desc = "A box of clustered flashbangs, for use with a specialized exosuit cluster launcher. Cannot be primed by hand." + icon_state = "clusterbang" + rounds = 3 + round_term = "cluster" + direct_load = TRUE + ammo_type = "clusterbang" diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm index f5eefb1391..978825c546 100644 --- a/code/game/mecha/equipment/weapons/weapons.dm +++ b/code/game/mecha/equipment/weapons/weapons.dm @@ -196,7 +196,11 @@ name = "general ballistic weapon" fire_sound = 'sound/weapons/gunshot.ogg' var/projectiles + var/projectiles_cache //ammo to be loaded in, if possible. + var/projectiles_cache_max var/projectile_energy_cost + var/disabledreload //For weapons with no cache (like the rockets) which are reloaded by hand + var/ammo_type /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/get_shot_amount() return min(projectiles, projectiles_per_shot) @@ -209,19 +213,31 @@ return 1 /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/get_equip_info() - return "[..()] \[[src.projectiles]\][(src.projectiles < initial(src.projectiles))?" - Rearm":null]" + return "[..()] \[[src.projectiles][projectiles_cache_max &&!projectile_energy_cost?"/[projectiles_cache]":""]\][!disabledreload &&(src.projectiles < initial(src.projectiles))?" - Rearm":null]" /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/rearm() if(projectiles < initial(projectiles)) var/projectiles_to_add = initial(projectiles) - projectiles - while(chassis.get_charge() >= projectile_energy_cost && projectiles_to_add) - projectiles++ - projectiles_to_add-- - chassis.use_power(projectile_energy_cost) - send_byjax(chassis.occupant,"exosuit.browser","[REF(src)]",src.get_equip_info()) - mecha_log_message("Rearmed [src.name].") - return 1 + + if(projectile_energy_cost) + while(chassis.get_charge() >= projectile_energy_cost && projectiles_to_add) + projectiles++ + projectiles_to_add-- + chassis.use_power(projectile_energy_cost) + + else + if(!projectiles_cache) + return FALSE + if(projectiles_to_add <= projectiles_cache) + projectiles = projectiles + projectiles_to_add + projectiles_cache = projectiles_cache - projectiles_to_add + else + projectiles = projectiles + projectiles_cache + projectiles_cache = 0 + + send_byjax(chassis.occupant,"exosuit.browser","[REF(src)]",src.get_equip_info()) + return TRUE /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/needs_rearm() @@ -249,8 +265,10 @@ equip_cooldown = 10 projectile = /obj/item/projectile/bullet/incendiary/fnx99 projectiles = 24 - projectile_energy_cost = 15 + projectiles_cache = 24 + projectiles_cache_max = 96 harmful = TRUE + ammo_type = "incendiary" /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/silenced name = "\improper S.H.H. \"Quietus\" Carbine" @@ -270,10 +288,12 @@ equip_cooldown = 20 projectile = /obj/item/projectile/bullet/scattershot projectiles = 40 - projectile_energy_cost = 25 + projectiles_cache = 40 + projectiles_cache_max = 160 projectiles_per_shot = 4 variance = 25 harmful = TRUE + ammo_type = "scattershot" /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/seedscatter name = "\improper Melon Seed \"Scattershot\"" @@ -282,10 +302,12 @@ equip_cooldown = 20 projectile = /obj/item/projectile/bullet/seed projectiles = 20 - projectile_energy_cost = 25 + projectiles_cache = 20 + projectiles_cache_max = 160 projectiles_per_shot = 10 variance = 25 harmful = TRUE + ammo_type = "scattershot" /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg name = "\improper Ultra AC 2" @@ -294,23 +316,42 @@ equip_cooldown = 10 projectile = /obj/item/projectile/bullet/lmg projectiles = 300 - projectile_energy_cost = 20 + projectiles_cache = 300 + projectiles_cache_max = 1200 projectiles_per_shot = 3 variance = 6 randomspread = 1 projectile_delay = 2 harmful = TRUE + ammo_type = "lmg" /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack name = "\improper SRM-8 missile rack" - desc = "A weapon for combat exosuits. Shoots light explosive missiles." + desc = "A weapon for combat exosuits. Launches light explosive missiles." icon_state = "mecha_missilerack" projectile = /obj/item/projectile/bullet/a84mm_he fire_sound = 'sound/weapons/grenadelaunch.ogg' projectiles = 8 - projectile_energy_cost = 1000 + projectiles_cache = 0 + projectiles_cache_max = 0 + disabledreload = TRUE equip_cooldown = 60 harmful = TRUE + ammo_type = "missiles_he" + +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/breaching + name = "\improper BRM-6 missile rack" + desc = "A weapon for combat exosuits. Launches low-explosive breaching missiles designed to explode only when striking a sturdy target." + icon_state = "mecha_missilerack_six" + projectile = /obj/item/projectile/bullet/a84mm_br + fire_sound = 'sound/weapons/grenadelaunch.ogg' + projectiles = 6 + projectiles_cache = 0 + projectiles_cache_max = 0 + disabledreload = TRUE + equip_cooldown = 60 + harmful = TRUE + ammo_type = "missiles_br" /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher @@ -341,10 +382,12 @@ projectile = /obj/item/grenade/flashbang fire_sound = 'sound/weapons/grenadelaunch.ogg' projectiles = 6 + projectiles_cache = 6 + projectiles_cache_max = 24 missile_speed = 1.5 - projectile_energy_cost = 800 equip_cooldown = 60 var/det_time = 20 + ammo_type = "flashbang" /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/flashbang/proj_init(var/obj/item/grenade/flashbang/F) var/turf/T = get_turf(src) @@ -356,9 +399,12 @@ name = "\improper SOB-3 grenade launcher" desc = "A weapon for combat exosuits. Launches primed clusterbangs. You monster." projectiles = 3 + projectiles_cache = 0 + projectiles_cache_max = 0 + disabledreload = TRUE projectile = /obj/item/grenade/clusterbuster - projectile_energy_cost = 1600 //getting off cheap seeing as this is 3 times the flashbangs held in the grenade launcher. equip_cooldown = 90 + ammo_type = "clusterbang" /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/banana_mortar name = "banana mortar" diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index a2b36f90b2..f9b8f31bca 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -29,13 +29,14 @@ "H.O.N.K", "Phazon", "Exosuit Equipment", + "Exosuit Ammunition", "Cyborg Upgrade Modules", "Misc" ) /obj/machinery/mecha_part_fabricator/Initialize() var/datum/component/material_container/materials = AddComponent(/datum/component/material_container, - list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE), 0, + list(/datum/material/iron, /datum/material/glass, /datum/material/silver, /datum/material/gold, /datum/material/diamond, /datum/material/plasma, /datum/material/uranium, /datum/material/bananium, /datum/material/titanium, /datum/material/bluespace), 0, TRUE, /obj/item/stack, CALLBACK(src, .proc/is_insertion_ready), CALLBACK(src, .proc/AfterMaterialInsert)) materials.precise_insertion = TRUE stored_research = new @@ -108,7 +109,8 @@ var/i = 0 var/output for(var/c in D.materials) - output += "[i?" | ":null][get_resource_cost_w_coeff(D, c)] [material2name(c)]" + var/datum/material/M = c + output += "[i?" | ":null][get_resource_cost_w_coeff(D, M)] [M.name]" i++ return output @@ -116,20 +118,22 @@ var/output var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) for(var/mat_id in materials.materials) - var/datum/material/M = materials.materials[mat_id] - output += "[M.name]: [M.amount] cm³" - if(M.amount >= MINERAL_MATERIAL_AMOUNT) - output += "- Remove \[1\]" - if(M.amount >= (MINERAL_MATERIAL_AMOUNT * 10)) - output += " | \[10\]" - output += " | \[All\]" + var/datum/material/M = mat_id + var/amount = materials.materials[mat_id] + output += "[M.name]: [amount] cm³" + if(amount >= MINERAL_MATERIAL_AMOUNT) + output += "- Remove \[1\]" + if(amount >= (MINERAL_MATERIAL_AMOUNT * 10)) + output += " | \[10\]" + output += " | \[All\]" output += "
" return output /obj/machinery/mecha_part_fabricator/proc/get_resources_w_coeff(datum/design/D) var/list/resources = list() for(var/R in D.materials) - resources[R] = get_resource_cost_w_coeff(D, R) + var/datum/material/M = R + resources[M] = get_resource_cost_w_coeff(D, M) return resources /obj/machinery/mecha_part_fabricator/proc/check_resources(datum/design/D) @@ -146,7 +150,7 @@ var/list/res_coef = get_resources_w_coeff(D) var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) - materials.use_amount(res_coef) + materials.use_materials(res_coef) add_overlay("fab-active") use_power = ACTIVE_POWER_USE updateUsrDialog() @@ -157,7 +161,8 @@ var/location = get_step(src,(dir)) var/obj/item/I = new D.build_path(location) - I.materials = res_coef + I.material_flags |= MATERIAL_NO_EFFECTS //Find a better way to do this. + I.set_custom_materials(res_coef) say("\The [I] is complete.") being_built = null @@ -250,7 +255,7 @@ updateUsrDialog() return -/obj/machinery/mecha_part_fabricator/proc/get_resource_cost_w_coeff(datum/design/D, resource, roundto = 1) +/obj/machinery/mecha_part_fabricator/proc/get_resource_cost_w_coeff(datum/design/D, var/datum/material/resource, roundto = 1) return round(D.materials[resource]*component_coeff, roundto) /obj/machinery/mecha_part_fabricator/proc/get_construction_time_w_coeff(datum/design/D, roundto = 1) //aran @@ -317,9 +322,8 @@ /obj/machinery/mecha_part_fabricator/Topic(href, href_list) if(..()) return - var/datum/topic_input/afilter = new /datum/topic_input(href,href_list) if(href_list["part_set"]) - var/tpart_set = afilter.getStr("part_set") + var/tpart_set = href_list["part_set"] if(tpart_set) if(tpart_set=="clear") part_set = null @@ -327,7 +331,7 @@ part_set = tpart_set screen = "parts" if(href_list["part"]) - var/T = afilter.getStr("part") + var/T = href_list["part"] for(var/v in stored_research.researched_designs) var/datum/design/D = SSresearch.techweb_design_by_id(v) if(D.build_type & MECHFAB) @@ -338,7 +342,7 @@ add_to_queue(D) break if(href_list["add_to_queue"]) - var/T = afilter.getStr("add_to_queue") + var/T = href_list["add_to_queue"] for(var/v in stored_research.researched_designs) var/datum/design/D = SSresearch.techweb_design_by_id(v) if(D.build_type & MECHFAB) @@ -347,10 +351,10 @@ break return update_queue_on_page() if(href_list["remove_from_queue"]) - remove_from_queue(afilter.getNum("remove_from_queue")) + remove_from_queue(text2num(href_list["remove_from_queue"])) return update_queue_on_page() if(href_list["partset_to_queue"]) - add_part_set_to_queue(afilter.get("partset_to_queue")) + add_part_set_to_queue(href_list["partset_to_queue"]) return update_queue_on_page() if(href_list["process_queue"]) spawn(0) @@ -364,8 +368,8 @@ if(href_list["screen"]) screen = href_list["screen"] if(href_list["queue_move"] && href_list["index"]) - var/index = afilter.getNum("index") - var/new_index = index + afilter.getNum("queue_move") + var/index = text2num(href_list["index"]) + var/new_index = index + text2num(href_list["queue_move"]) if(isnum(index) && isnum(new_index) && ISINTEGER(index) && ISINTEGER(new_index)) if(ISINRANGE(new_index,1,queue.len)) queue.Swap(index,new_index) @@ -376,7 +380,7 @@ if(href_list["sync"]) sync() if(href_list["part_desc"]) - var/T = afilter.getStr("part_desc") + var/T = href_list["part_desc"] for(var/v in stored_research.researched_designs) var/datum/design/D = SSresearch.techweb_design_by_id(v) if(D.build_type & MECHFAB) @@ -390,7 +394,8 @@ if(href_list["remove_mat"] && href_list["material"]) var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) - materials.retrieve_sheets(text2num(href_list["remove_mat"]), href_list["material"]) + var/datum/material/Mat = locate(href_list["material"]) + materials.retrieve_sheets(text2num(href_list["remove_mat"]), Mat) updateUsrDialog() return @@ -400,10 +405,10 @@ materials.retrieve_all() ..() -/obj/machinery/mecha_part_fabricator/proc/AfterMaterialInsert(type_inserted, id_inserted, amount_inserted) - var/stack_name = material2name(id_inserted) - add_overlay("fab-load-[stack_name]") - addtimer(CALLBACK(src, /atom/proc/cut_overlay, "fab-load-[stack_name]"), 10) +/obj/machinery/mecha_part_fabricator/proc/AfterMaterialInsert(item_inserted, id_inserted, amount_inserted) + var/datum/material/M = id_inserted + add_overlay("fab-load-[M.name]") + addtimer(CALLBACK(src, /atom/proc/cut_overlay, "fab-load-[M.name]"), 10) updateUsrDialog() /obj/machinery/mecha_part_fabricator/attackby(obj/item/W, mob/user, params) @@ -415,9 +420,6 @@ return ..() -/obj/machinery/mecha_part_fabricator/proc/material2name(ID) - return copytext_char(ID,2) - /obj/machinery/mecha_part_fabricator/proc/is_insertion_ready(mob/user) if(panel_open) to_chat(user, "You can't load [src] while it's opened!") diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index b279f90740..669bc89875 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -867,7 +867,7 @@ return /obj/mecha/proc/moved_inside(mob/living/carbon/human/H) - if(H && H.client && H in range(1)) + if(H?.client && (H in range(1))) occupant = H H.forceMove(src) H.update_mouse_pointer() @@ -1070,3 +1070,53 @@ if(occupant_sight_flags) if(user == occupant) user.sight |= occupant_sight_flags + +/////////////////////// +////// Ammo stuff ///// +/////////////////////// + +/obj/mecha/proc/ammo_resupply(var/obj/item/mecha_ammo/A, mob/user,var/fail_chat_override = FALSE) + if(!A.rounds) + if(!fail_chat_override) + to_chat(user, "This box of ammo is empty!") + return FALSE + var/ammo_needed + var/found_gun + for(var/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/gun in equipment) + ammo_needed = 0 + + if(istype(gun, /obj/item/mecha_parts/mecha_equipment/weapon/ballistic) && gun.ammo_type == A.ammo_type) + found_gun = TRUE + if(A.direct_load) + ammo_needed = initial(gun.projectiles) - gun.projectiles + else + ammo_needed = gun.projectiles_cache_max - gun.projectiles_cache + + if(ammo_needed) + if(ammo_needed < A.rounds) + if(A.direct_load) + gun.projectiles = gun.projectiles + ammo_needed + else + gun.projectiles_cache = gun.projectiles_cache + ammo_needed + playsound(get_turf(user),A.load_audio,50,1) + to_chat(user, "You add [ammo_needed] [A.round_term][ammo_needed > 1?"s":""] to the [gun.name]") + A.rounds = A.rounds - ammo_needed + A.update_name() + return TRUE + + else + if(A.direct_load) + gun.projectiles = gun.projectiles + A.rounds + else + gun.projectiles_cache = gun.projectiles_cache + A.rounds + playsound(get_turf(user),A.load_audio,50,1) + to_chat(user, "You add [A.rounds] [A.round_term][A.rounds > 1?"s":""] to the [gun.name]") + A.rounds = 0 + A.update_name() + return TRUE + if(!fail_chat_override) + if(found_gun) + to_chat(user, "You can't fit any more ammo of this type!") + else + to_chat(user, "None of the equipment on this exosuit can use this ammo!") + return FALSE diff --git a/code/game/mecha/mecha_construction_paths.dm b/code/game/mecha/mecha_construction_paths.dm index 071fe18408..de1c035000 100644 --- a/code/game/mecha/mecha_construction_paths.dm +++ b/code/game/mecha/mecha_construction_paths.dm @@ -116,7 +116,7 @@ //9 list( - "key" = /obj/item/stock_parts/cell, + "key" = /obj/item/stock_parts/scanning_module, "action" = ITEM_MOVE_INSIDE, "back_key" = TOOL_SCREWDRIVER, "desc" = "Peripherals control module is secured." @@ -126,10 +126,40 @@ list( "key" = TOOL_SCREWDRIVER, "back_key" = TOOL_CROWBAR, - "desc" = "The power cell is installed." + "desc" = "The scanner module is installed." ), //11 + list( + "key" = /obj/item/stock_parts/capacitor, + "action" = ITEM_MOVE_INSIDE, + "back_key" = TOOL_SCREWDRIVER, + "desc" = "Scanner module is secured." + ), + + //12 + list( + "key" = TOOL_SCREWDRIVER, + "back_key" = TOOL_CROWBAR, + "desc" = "Capacitor is installed." + ), + + //13 + list( + "key" = /obj/item/stock_parts/cell, + "action" = ITEM_MOVE_INSIDE, + "back_key" = TOOL_SCREWDRIVER, + "desc" = "Capacitor is secured." + ), + + //14 + list( + "key" = TOOL_SCREWDRIVER, + "back_key" = TOOL_CROWBAR, + "desc" = "The power cell is installed." + ), + + //15 list( "key" = /obj/item/stack/sheet/metal, "amount" = 5, @@ -137,21 +167,21 @@ "desc" = "The power cell is secured." ), - //12 + //16 list( "key" = TOOL_WRENCH, "back_key" = TOOL_CROWBAR, "desc" = "Internal armor is installed." ), - //13 + //17 list( "key" = TOOL_WELDER, "back_key" = TOOL_WRENCH, "desc" = "Internal armor is wrenched." ), - //14 + //18 list( "key" = /obj/item/stack/sheet/plasteel, "amount" = 5, @@ -159,14 +189,14 @@ "desc" = "Internal armor is welded." ), - //15 + //19 list( "key" = TOOL_WRENCH, "back_key" = TOOL_CROWBAR, "desc" = "External armor is installed." ), - //16 + //20 list( "key" = TOOL_WELDER, "back_key" = TOOL_WRENCH, @@ -222,36 +252,56 @@ else user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") if(10) + if(diff==FORWARD) + user.visible_message("[user] secures the scanner module.", "You secure the scanner module.") + else + user.visible_message("[user] removes the scanner module from [parent].", "You remove the scanner module from [parent].") + if(11) + if(diff==FORWARD) + user.visible_message("[user] installs [I] to [parent].", "You install [I] to [parent].") + else + user.visible_message("[user] unfastens the scanner module.", "You unfasten the scanner module.") + if(12) + if(diff==FORWARD) + user.visible_message("[user] secures [I].", "You secure [I].") + else + user.visible_message("[user] removes the capacitor from [parent].", "You remove the capacitor from [parent].") + if(13) + if(diff==FORWARD) + user.visible_message("[user] installs [I].", "You install [I].") + else + user.visible_message("[user] unsecures the capacitor from [parent].", "You unsecure the capacitor from [parent].") + if(14) if(diff==FORWARD) user.visible_message("[user] secures the power cell.", "You secure the power cell.") else user.visible_message("[user] pries the power cell from [parent].", "You pry the power cell from [parent].") - if(11) + if(15) if(diff==FORWARD) user.visible_message("[user] installs the internal armor layer to [parent].", "You install the internal armor layer to [parent].") else user.visible_message("[user] unfastens the power cell.", "You unfasten the power cell.") - if(12) + if(16) if(diff==FORWARD) user.visible_message("[user] secures the internal armor layer.", "You secure the internal armor layer.") else user.visible_message("[user] pries internal armor layer from [parent].", "You pry internal armor layer from [parent].") - if(13) + if(17) if(diff==FORWARD) user.visible_message("[user] welds the internal armor layer to [parent].", "You weld the internal armor layer to [parent].") else user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.") - if(14) + if(18) if(diff==FORWARD) user.visible_message("[user] installs the external reinforced armor layer to [parent].", "You install the external reinforced armor layer to [parent].") else user.visible_message("[user] cuts the internal armor layer from [parent].", "You cut the internal armor layer from [parent].") - if(15) + if(19) if(diff==FORWARD) user.visible_message("[user] secures the external armor layer.", "You secure the external reinforced armor layer.") else user.visible_message("[user] pries external armor layer from [parent].", "You pry external armor layer from [parent].") - if(16) + if(20) if(diff==FORWARD) user.visible_message("[user] welds the external armor layer to [parent].", "You weld the external armor layer to [parent].") else @@ -629,7 +679,7 @@ //9 list( - "key" = /obj/item/stock_parts/cell, + "key" = /obj/item/stock_parts/scanning_module, "action" = ITEM_MOVE_INSIDE, "back_key" = TOOL_SCREWDRIVER, "desc" = "Peripherals control module is secured." @@ -639,10 +689,40 @@ list( "key" = TOOL_SCREWDRIVER, "back_key" = TOOL_CROWBAR, - "desc" = "The power cell is installed." + "desc" = "The scanner module is installed." ), //11 + list( + "key" = /obj/item/stock_parts/capacitor, + "action" = ITEM_MOVE_INSIDE, + "back_key" = TOOL_SCREWDRIVER, + "desc" = "The scanner module is secured." + ), + + //12 + list( + "key" = TOOL_SCREWDRIVER, + "back_key" = TOOL_CROWBAR, + "desc" = "The capacitor is installed." + ), + + //13 + list( + "key" = /obj/item/stock_parts/cell, + "action" = ITEM_MOVE_INSIDE, + "back_key" = TOOL_SCREWDRIVER, + "desc" = "The capacitor is secured." + ), + + //14 + list( + "key" = TOOL_SCREWDRIVER, + "back_key" = TOOL_CROWBAR, + "desc" = "The power cell is installed." + ), + + //15 list( "key" = /obj/item/stack/sheet/plasteel, "amount" = 5, @@ -650,21 +730,21 @@ "desc" = "The power cell is secured." ), - //12 + //16 list( "key" = TOOL_WRENCH, "back_key" = TOOL_CROWBAR, "desc" = "Internal armor is installed." ), - //13 + //17 list( "key" = TOOL_WELDER, "back_key" = TOOL_WRENCH, "desc" = "Internal armor is wrenched." ), - //14 + //18 list( "key" = /obj/item/stack/sheet/plasteel, "amount" = 5, @@ -672,7 +752,7 @@ "desc" = "Internal armor is welded." ), - //15 + //19 list( "key" = /obj/item/stack/sheet/plasteel, "amount" = 5, @@ -680,14 +760,14 @@ "desc" = "External armor is being installed." ), - //16 + //20 list( "key" = TOOL_WRENCH, "back_key" = TOOL_CROWBAR, "desc" = "External armor is installed." ), - //17 + //21 list( "key" = TOOL_WELDER, "back_key" = TOOL_WRENCH, @@ -744,41 +824,61 @@ else user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") if(10) + if(diff==FORWARD) + user.visible_message("[user] secures the scanner module.", "You secure the scanner module.") + else + user.visible_message("[user] removes the scanner module from [parent].", "You remove the scanner module from [parent].") + if(12) + if(diff==FORWARD) + user.visible_message("[user] installs [I] to [parent].", "You install [I] to [parent].") + else + user.visible_message("[user] unfastens the scanner module.", "You unfasten the scanner module.") + if(13) + if(diff==FORWARD) + user.visible_message("[user] secures the capacitor.", "You secure the capacitor.") + else + user.visible_message("[user] removes the capacitor from [parent].", "You remove the capacitor from [parent].") + if(14) + if(diff==FORWARD) + user.visible_message("[user] installs [I] into [parent].", "You install [I] into [parent].") + else + user.visible_message("[user] unfastens the capacitor.", "You unfasten the capacitor.") + if(15) if(diff==FORWARD) user.visible_message("[user] secures the power cell.", "You secure the power cell.") else user.visible_message("[user] pries the power cell from [parent].", "You pry the power cell from [parent].") - if(11) + if(16) if(diff==FORWARD) user.visible_message("[user] installs the internal armor layer to [parent].", "You install the internal armor layer to [parent].") else user.visible_message("[user] unfastens the power cell.", "You unfasten the power cell.") - if(12) + if(17) if(diff==FORWARD) user.visible_message("[user] secures the internal armor layer.", "You secure the internal armor layer.") else user.visible_message("[user] pries internal armor layer from [parent].", "You pry internal armor layer from [parent].") - if(13) + if(18) if(diff==FORWARD) user.visible_message("[user] welds the internal armor layer to [parent].", "You weld the internal armor layer to [parent].") else user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.") - if(14) + if(19) if(diff==FORWARD) user.visible_message("[user] starts to install the external armor layer to [parent].", "You install the external armor layer to [parent].") else user.visible_message("[user] cuts the internal armor layer from [parent].", "You cut the internal armor layer from [parent].") - if(15) + if(20) if(diff==FORWARD) user.visible_message("[user] installs the external reinforced armor layer to [parent].", "You install the external reinforced armor layer to [parent].") else user.visible_message("[user] removes the external armor from [parent].", "You remove the external armor from [parent].") - if(16) + if(21) if(diff==FORWARD) user.visible_message("[user] secures the external armor layer.", "You secure the external reinforced armor layer.") else user.visible_message("[user] pries external armor layer from [parent].", "You pry external armor layer from [parent].") - if(17) + if(22) if(diff==FORWARD) user.visible_message("[user] welds the external armor layer to [parent].", "You weld the external armor layer to [parent].") else @@ -796,6 +896,7 @@ /obj/item/mecha_parts/part/honker_head ) + /datum/component/construction/mecha/honker result = /obj/mecha/combat/honker steps = list( @@ -837,41 +938,70 @@ "key" = /obj/item/bikehorn ), + //6 + list( + "key" = /obj/item/stock_parts/scanning_module, + "action" = ITEM_MOVE_INSIDE + ), + //8 + list( + "key" = /obj/item/bikehorn + ), + + //9 + list( + "key" = /obj/item/stock_parts/capacitor, + "action" = ITEM_MOVE_INSIDE + ), + + //10 + list( + "key" = /obj/item/bikehorn + ), + + //11 list( "key" = /obj/item/stock_parts/cell, "action" = ITEM_MOVE_INSIDE ), - //9 + //12 list( "key" = /obj/item/bikehorn ), - //10 + //13 list( "key" = /obj/item/clothing/mask/gas/clown_hat, "action" = ITEM_DELETE ), - //11 + //14 list( "key" = /obj/item/bikehorn ), - //12 + //15 list( "key" = /obj/item/clothing/shoes/clown_shoes, "action" = ITEM_DELETE ), - //13 + //16 list( "key" = /obj/item/bikehorn ), ) // HONK doesn't have any construction step icons, so we just set an icon once. +/datum/component/construction/mecha/honker/update_parent(step_index) + if(step_index == 1) + var/atom/parent_atom = parent + parent_atom.icon = 'icons/mecha/mech_construct.dmi' + parent_atom.icon_state = "honker_chassis" + ..() +// HONK doesn't have any construction step icons, so we just set an icon once. /datum/component/construction/mecha/honker/update_parent(step_index) if(step_index == 1) var/atom/parent_atom = parent @@ -898,8 +1028,12 @@ if(8) user.visible_message("[user] installs [I] into [parent].", "You install [I] into [parent].") if(10) - user.visible_message("[user] puts [I] on [parent].", "You put [I] on [parent].") + user.visible_message("[user] installs [I] into [parent].", "You install [I] into [parent].") if(12) + user.visible_message("[user] installs [I] into [parent].", "You install [I] into [parent].") + if(14) + user.visible_message("[user] puts [I] on [parent].", "You put [I] on [parent].") + if(16) user.visible_message("[user] puts [I] on [parent].", "You put [I] on [parent].") return TRUE @@ -1626,10 +1760,9 @@ "back_key" = TOOL_CROWBAR, "desc" = "Peripherals control module is installed." ), - //9 list( - "key" = /obj/item/stock_parts/cell, + "key" = /obj/item/stock_parts/scanning_module, "action" = ITEM_MOVE_INSIDE, "back_key" = TOOL_SCREWDRIVER, "desc" = "Peripherals control module is secured." @@ -1639,10 +1772,40 @@ list( "key" = TOOL_SCREWDRIVER, "back_key" = TOOL_CROWBAR, - "desc" = "The power cell is installed." + "desc" = "Scanner module is installed." ), //11 + list( + "key" = /obj/item/stock_parts/capacitor, + "action" = ITEM_MOVE_INSIDE, + "back_key" = TOOL_SCREWDRIVER, + "desc" = "Scanner module is secured." + ), + + //12 + list( + "key" = TOOL_SCREWDRIVER, + "back_key" = TOOL_CROWBAR, + "desc" = "Capacitor is installed." + ), + + //13 + list( + "key" = /obj/item/stock_parts/cell, + "action" = ITEM_MOVE_INSIDE, + "back_key" = TOOL_SCREWDRIVER, + "desc" = "Capacitor is secured." + ), + + //11 + list( + "key" = TOOL_SCREWDRIVER, + "back_key" = TOOL_CROWBAR, + "desc" = "The power cell is installed." + ), + + //12 list( "key" = /obj/item/stack/sheet/metal, "amount" = 5, @@ -1650,21 +1813,21 @@ "desc" = "The power cell is secured." ), - //12 + //13 list( "key" = TOOL_WRENCH, "back_key" = TOOL_CROWBAR, "desc" = "Internal armor is installed." ), - //13 + //14 list( "key" = TOOL_WELDER, "back_key" = TOOL_WRENCH, "desc" = "Internal armor is wrenched." ), - //14 + //15 list( "key" = /obj/item/stack/sheet/plasteel, "amount" = 5, @@ -1672,14 +1835,14 @@ "desc" = "Internal armor is welded." ), - //15 + //16 list( "key" = TOOL_WRENCH, "back_key" = TOOL_CROWBAR, "desc" = "External armor is installed." ), - //16 + //17 list( "key" = TOOL_WELDER, "back_key" = TOOL_WRENCH, @@ -1736,36 +1899,56 @@ else user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") if(10) + if(diff==FORWARD) + user.visible_message("[user] secures the scanner module.", "You secure the scanner module.") + else + user.visible_message("[user] removes the scanner module from [parent].", "You remove the scanner module from [parent].") + if(11) + if(diff==FORWARD) + user.visible_message("[user] installs [I] to [parent].", "You install [I] to [parent].") + else + user.visible_message("[user] unfastens the scanner module.", "You unfasten the scanner module.") + if(12) + if(diff==FORWARD) + user.visible_message("[user] secures the capacitor.", "You secure the capacitor.") + else + user.visible_message("[user] removes the capacitor from [parent].", "You remove the capacitor from [parent].") + if(13) + if(diff==FORWARD) + user.visible_message("[user] installs [I] into [parent].", "You install [I] into [parent].") + else + user.visible_message("[user] unfastens the capacitor.", "You unfasten the capacitor.") + if(14) if(diff==FORWARD) user.visible_message("[user] secures the power cell.", "You secure the power cell.") else user.visible_message("[user] pries the power cell from [parent].", "You pry the power cell from [parent].") - if(11) + if(15) if(diff==FORWARD) user.visible_message("[user] installs the internal armor layer to [parent].", "You install the internal armor layer to [parent].") else user.visible_message("[user] unfastens the power cell.", "You unfasten the power cell.") - if(12) + if(16) if(diff==FORWARD) user.visible_message("[user] secures the internal armor layer.", "You secure the internal armor layer.") else user.visible_message("[user] pries internal armor layer from [parent].", "You pry internal armor layer from [parent].") - if(13) + if(17) if(diff==FORWARD) user.visible_message("[user] welds the internal armor layer to [parent].", "You weld the internal armor layer to [parent].") else user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.") - if(14) + if(18) if(diff==FORWARD) user.visible_message("[user] installs the external armor layer to [parent].", "You install the external reinforced armor layer to [parent].") else user.visible_message("[user] cuts the internal armor layer from [parent].", "You cut the internal armor layer from [parent].") - if(15) + if(19) if(diff==FORWARD) user.visible_message("[user] secures the external armor layer.", "You secure the external reinforced armor layer.") else user.visible_message("[user] pries the external armor layer from [parent].", "You pry the external armor layer from [parent].") - if(16) + if(20) if(diff==FORWARD) user.visible_message("[user] welds the external armor layer to [parent].", "You weld the external armor layer to [parent].") else diff --git a/code/game/mecha/mecha_control_console.dm b/code/game/mecha/mecha_control_console.dm index 0188419f0f..61e6c8e5e4 100644 --- a/code/game/mecha/mecha_control_console.dm +++ b/code/game/mecha/mecha_control_console.dm @@ -39,21 +39,24 @@ /obj/machinery/computer/mecha/Topic(href, href_list) if(..()) return - var/datum/topic_input/afilter = new /datum/topic_input(href,href_list) if(href_list["send_message"]) - var/obj/item/mecha_parts/mecha_tracking/MT = afilter.getObj("send_message") + var/obj/item/mecha_parts/mecha_tracking/MT = locate(href_list["send_message"]) + if (!istype(MT)) + return var/message = stripped_input(usr,"Input message","Transmit message") var/obj/mecha/M = MT.in_mecha() if(trim(message) && M) M.occupant_message(message) return if(href_list["shock"]) - var/obj/item/mecha_parts/mecha_tracking/MT = afilter.getObj("shock") - MT.shock() + var/obj/item/mecha_parts/mecha_tracking/MT = locate(href_list["shock"]) + if (istype(MT)) + MT.shock() if(href_list["get_log"]) - var/obj/item/mecha_parts/mecha_tracking/MT = afilter.getObj("get_log") - stored_data = MT.get_mecha_log() - screen = 1 + var/obj/item/mecha_parts/mecha_tracking/MT = locate(href_list["get_log"]) + if(istype(MT)) + stored_data = MT.get_mecha_log() + screen = 1 if(href_list["return"]) screen = 0 updateUsrDialog() diff --git a/code/game/mecha/mecha_defense.dm b/code/game/mecha/mecha_defense.dm index 3a448f4f92..08843c9202 100644 --- a/code/game/mecha/mecha_defense.dm +++ b/code/game/mecha/mecha_defense.dm @@ -172,6 +172,10 @@ to_chat(user, "[src]-[W] interface initialization failed.") return + if(istype(W, /obj/item/mecha_ammo)) + ammo_resupply(W, user) + return + if(istype(W, /obj/item/mecha_parts/mecha_equipment)) var/obj/item/mecha_parts/mecha_equipment/E = W spawn() diff --git a/code/game/mecha/mecha_topic.dm b/code/game/mecha/mecha_topic.dm index 1e0674d7bb..774e30fa5d 100644 --- a/code/game/mecha/mecha_topic.dm +++ b/code/game/mecha/mecha_topic.dm @@ -221,73 +221,71 @@ if(usr.incapacitated()) return - var/datum/topic_input/afilter = new /datum/topic_input(href,href_list) - if(in_range(src, usr)) + var/obj/item/card/id/id_card + if (href_list["id_card"]) + id_card = locate(href_list["id_card"]) + if (!istype(id_card)) + return if(href_list["req_access"] && add_req_access) - output_access_dialog(afilter.getObj("id_card"),afilter.getMob("user")) + output_access_dialog(id_card, usr) if(href_list["maint_access"] && maint_access) - var/mob/user = afilter.getMob("user") - if(user) - if(state==0) - state = 1 - to_chat(user, "The securing bolts are now exposed.") - else if(state==1) - state = 0 - to_chat(user, "The securing bolts are now hidden.") - output_maintenance_dialog(afilter.getObj("id_card"),user) + if(state==0) + state = 1 + to_chat(usr, "The securing bolts are now exposed.") + else if(state==1) + state = 0 + to_chat(usr, "The securing bolts are now hidden.") + output_maintenance_dialog(id_card, usr) if(href_list["set_internal_tank_valve"] && state >=1) - var/mob/user = afilter.getMob("user") - if(user) - var/new_pressure = input(user,"Input new output pressure","Pressure setting",internal_tank_valve) as num - if(new_pressure) - internal_tank_valve = new_pressure - to_chat(user, "The internal pressure valve has been set to [internal_tank_valve]kPa.") + var/new_pressure = input(usr,"Input new output pressure","Pressure setting",internal_tank_valve) as num + if(new_pressure) + internal_tank_valve = new_pressure + to_chat(usr, "The internal pressure valve has been set to [internal_tank_valve]kPa.") - if(href_list["add_req_access"] && add_req_access && afilter.getObj("id_card")) - operation_req_access += afilter.getNum("add_req_access") - output_access_dialog(afilter.getObj("id_card"),afilter.getMob("user")) + if(href_list["add_req_access"] && add_req_access) + operation_req_access += text2num(href_list["add_req_access"]) + output_access_dialog(id_card, usr) - if(href_list["del_req_access"] && add_req_access && afilter.getObj("id_card")) - operation_req_access -= afilter.getNum("del_req_access") - output_access_dialog(afilter.getObj("id_card"),afilter.getMob("user")) + if(href_list["del_req_access"] && add_req_access) + operation_req_access -= text2num(href_list["add_req_access"]) + output_access_dialog(id_card, usr) if(href_list["finish_req_access"]) add_req_access = 0 - var/mob/user = afilter.getMob("user") - user << browse(null,"window=exosuit_add_access") + usr << browse(null,"window=exosuit_add_access") if(usr != occupant) return if(href_list["update_content"]) - send_byjax(src.occupant,"exosuit.browser","content",src.get_stats_part()) + send_byjax(usr,"exosuit.browser","content",src.get_stats_part()) if(href_list["select_equip"]) - var/obj/item/mecha_parts/mecha_equipment/equip = afilter.getObj("select_equip") + var/obj/item/mecha_parts/mecha_equipment/equip = locate(href_list["select_equip"]) in src if(equip && equip.selectable) - src.selected = equip - src.occupant_message("You switch to [equip]") - src.visible_message("[src] raises [equip]") - send_byjax(src.occupant,"exosuit.browser","eq_list",src.get_equipment_list()) + selected = equip + occupant_message("You switch to [equip]") + visible_message("[src] raises [equip]") + send_byjax(usr, "exosuit.browser","eq_list", get_equipment_list()) if(href_list["rmictoggle"]) radio.broadcasting = !radio.broadcasting - send_byjax(src.occupant,"exosuit.browser","rmicstate",(radio.broadcasting?"Engaged":"Disengaged")) + send_byjax(usr,"exosuit.browser","rmicstate",(radio.broadcasting?"Engaged":"Disengaged")) if(href_list["rspktoggle"]) radio.listening = !radio.listening - send_byjax(src.occupant,"exosuit.browser","rspkstate",(radio.listening?"Engaged":"Disengaged")) + send_byjax(usr,"exosuit.browser","rspkstate",(radio.listening?"Engaged":"Disengaged")) if(href_list["rfreq"]) - var/new_frequency = (radio.frequency + afilter.getNum("rfreq")) + var/new_frequency = (radio.frequency + text2num(href_list["rfreq"])) if (!radio.freerange || (radio.frequency < MIN_FREE_FREQ || radio.frequency > MAX_FREE_FREQ)) new_frequency = sanitize_frequency(new_frequency) radio.set_frequency(new_frequency) - send_byjax(src.occupant,"exosuit.browser","rfreq","[format_frequency(radio.frequency)]") + send_byjax(usr,"exosuit.browser","rfreq","[format_frequency(radio.frequency)]") if (href_list["view_log"]) src.occupant << browse(src.get_log_html(), "window=exosuit_log") @@ -302,14 +300,14 @@ if (href_list["toggle_id_upload"]) add_req_access = !add_req_access - send_byjax(src.occupant,"exosuit.browser","t_id_upload","[add_req_access?"L":"Unl"]ock ID upload panel") + send_byjax(usr,"exosuit.browser","t_id_upload","[add_req_access?"L":"Unl"]ock ID upload panel") if(href_list["toggle_maint_access"]) if(state) occupant_message("Maintenance protocols in effect") return maint_access = !maint_access - send_byjax(src.occupant,"exosuit.browser","t_maint_access","[maint_access?"Forbid":"Permit"] maintenance protocols") + send_byjax(usr,"exosuit.browser","t_maint_access","[maint_access?"Forbid":"Permit"] maintenance protocols") if (href_list["toggle_port_connection"]) if(internal_tank.connected_port) diff --git a/code/game/mecha/working/ripley.dm b/code/game/mecha/working/ripley.dm index 41f8984570..845b208db1 100644 --- a/code/game/mecha/working/ripley.dm +++ b/code/game/mecha/working/ripley.dm @@ -146,7 +146,7 @@ ..() if(href_list["drop_from_cargo"]) var/obj/O = locate(href_list["drop_from_cargo"]) - if(O && O in src.cargo) + if(O && (O in cargo)) occupant_message("You unload [O].") O.forceMove(drop_location()) cargo -= O diff --git a/code/game/objects/effects/contraband.dm b/code/game/objects/effects/contraband.dm index 6e8387c07b..eea3bace98 100644 --- a/code/game/objects/effects/contraband.dm +++ b/code/game/objects/effects/contraband.dm @@ -57,6 +57,7 @@ var/poster_item_name = "hypothetical poster" var/poster_item_desc = "This hypothetical poster item should not exist, let's be honest here." var/poster_item_icon_state = "rolled_poster" + var/poster_item_type = /obj/item/poster /obj/structure/sign/poster/Initialize() . = ..() @@ -114,7 +115,7 @@ /obj/structure/sign/poster/proc/roll_and_drop(loc) pixel_x = 0 pixel_y = 0 - var/obj/item/poster/P = new(loc, src) + var/obj/item/poster/P = new poster_item_type(loc, src) forceMove(P) return P diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm index 30e7c8be05..5720d5ce34 100644 --- a/code/game/objects/effects/decals/cleanable.dm +++ b/code/game/objects/effects/decals/cleanable.dm @@ -11,7 +11,7 @@ LAZYINITLIST(blood_DNA) //Kinda needed if (random_icon_states && (icon_state == initial(icon_state)) && length(random_icon_states) > 0) icon_state = pick(random_icon_states) - create_reagents(300) + create_reagents(300, NONE, NO_REAGENTS_VALUE) if(loc && isturf(loc)) for(var/obj/effect/decal/cleanable/C in loc) if(C != src && C.type == type && !QDELETED(C)) diff --git a/code/game/objects/effects/effect_system/effects_foam.dm b/code/game/objects/effects/effect_system/effects_foam.dm index 38a1a6089e..f98b4937ef 100644 --- a/code/game/objects/effects/effect_system/effects_foam.dm +++ b/code/game/objects/effects/effect_system/effects_foam.dm @@ -94,7 +94,7 @@ /obj/effect/particle_effect/foam/Initialize() . = ..() MakeSlippery() - create_reagents(1000) //limited by the size of the reagent holder anyway. + create_reagents(1000, NONE, NO_REAGENTS_VALUE) //limited by the size of the reagent holder anyway. START_PROCESSING(SSfastprocess, src) playsound(src, 'sound/effects/bubbles2.ogg', 80, 1, -3) diff --git a/code/game/objects/effects/effect_system/effects_smoke.dm b/code/game/objects/effects/effect_system/effects_smoke.dm index 40452f68e2..80c0db2b7d 100644 --- a/code/game/objects/effects/effect_system/effects_smoke.dm +++ b/code/game/objects/effects/effect_system/effects_smoke.dm @@ -32,7 +32,7 @@ /obj/effect/particle_effect/smoke/Initialize() . = ..() - create_reagents(500) + create_reagents(500, NONE, NO_REAGENTS_VALUE) START_PROCESSING(SSobj, src) diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm index 7a45bdcf0c..97edd35581 100644 --- a/code/game/objects/effects/landmarks.dm +++ b/code/game/objects/effects/landmarks.dm @@ -151,6 +151,10 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark) name = "Medical Doctor" icon_state = "Medical Doctor" +/obj/effect/landmark/start/paramedic + name = "Paramedic" + icon_state = "Paramedic" + /obj/effect/landmark/start/scientist name = "Scientist" icon_state = "Scientist" @@ -502,8 +506,3 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player) /obj/effect/landmark/stationroom/box/engine/New() . = ..() templates = CONFIG_GET(keyed_list/box_random_engine) - -// Landmark for the mining station -/obj/effect/landmark/stationroom/lavaland/station - templates = list("Public Mining Base" = 3) - icon = 'icons/rooms/Lavaland/Mining.dmi' diff --git a/code/game/objects/effects/spawners/structure.dm b/code/game/objects/effects/spawners/structure.dm index a5a4dfb44b..cdf3f3e6b4 100644 --- a/code/game/objects/effects/spawners/structure.dm +++ b/code/game/objects/effects/spawners/structure.dm @@ -163,6 +163,10 @@ again. icon_state = "plastitaniumwindow_spawner" spawn_list = list(/obj/structure/grille, /obj/structure/window/plastitanium) +//plastitanium pirate window + +/obj/effect/spawner/structure/window/plastitanium/pirate + spawn_list = list(/obj/structure/grille, /obj/structure/window/plastitanium/pirate) //ice window diff --git a/code/game/objects/effects/wanted_poster.dm b/code/game/objects/effects/wanted_poster.dm index 35d16070ff..2e3244b4b8 100644 --- a/code/game/objects/effects/wanted_poster.dm +++ b/code/game/objects/effects/wanted_poster.dm @@ -8,6 +8,7 @@ /obj/structure/sign/poster/wanted var/wanted_name + poster_item_type = /obj/item/poster/wanted /obj/structure/sign/poster/wanted/Initialize(mapload, icon/person_icon, person_name, description) . = ..() diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index cdd0cf3966..8dfb36ce8a 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -68,7 +68,6 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) var/equip_delay_other = 20 //In deciseconds, how long an item takes to put on another person var/strip_delay = 40 //In deciseconds, how long an item takes to remove from another person var/breakouttime = 0 - var/list/materials var/reskinned = FALSE var/list/attack_verb //Used in attackby() to say how something was attacked "[x] has been [z.attack_verb] by [y] with [z]" @@ -112,8 +111,6 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) /obj/item/Initialize() - materials = typelist("materials", materials) - if (attack_verb) attack_verb = typelist("attack_verb", attack_verb) @@ -233,9 +230,9 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) // Extractable materials. Only shows the names, not the amounts. research_msg += ".
Extractable materials: " - if (materials.len) + if (length(custom_materials)) sep = "" - for(var/mat in materials) + for(var/mat in custom_materials) research_msg += sep research_msg += CallMaterialName(mat) sep = ", " diff --git a/code/game/objects/items/AI_modules.dm b/code/game/objects/items/AI_modules.dm index d1ac96acf2..59dd420d23 100644 --- a/code/game/objects/items/AI_modules.dm +++ b/code/game/objects/items/AI_modules.dm @@ -22,7 +22,7 @@ AI MODULES throw_range = 7 var/list/laws = list() var/bypass_law_amt_check = 0 - materials = list(MAT_GOLD=50) + custom_materials = list(/datum/material/gold=50) /obj/item/aiModule/examine(var/mob/user as mob) . = ..() @@ -369,7 +369,7 @@ AI MODULES if(!targName) return subject = targName - laws = list("You may not injure a [subject] or, through inaction, allow a [subject] to come to harm.",\ + laws = list("You may not injure a [subject] or cause one to come to harm.",\ "You must obey orders given to you by [subject]s, except where such orders would conflict with the First Law.",\ "You must protect your own existence as long as such does not conflict with the First or Second Law.") ..() diff --git a/code/game/objects/items/RCD.dm b/code/game/objects/items/RCD.dm index 3f57fa7cdf..9f1d425d6c 100644 --- a/code/game/objects/items/RCD.dm +++ b/code/game/objects/items/RCD.dm @@ -22,7 +22,7 @@ RLD throw_speed = 3 throw_range = 5 w_class = WEIGHT_CLASS_NORMAL - materials = list(MAT_METAL=100000) + custom_materials = list(/datum/material/iron=100000) req_access_txt = "11" armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) resistance_flags = FIRE_PROOF @@ -196,7 +196,7 @@ RLD /obj/item/construction/rcd/verb/change_airlock_access(mob/user) - if (!ishuman(user) && !user.has_unlimited_silicon_privilege) + if (!ishuman(user) && !user.silicon_privileges) return var/t1 = "" @@ -603,7 +603,7 @@ RLD energyfactor = 66 /obj/item/construction/rcd/loaded - materials = list(MAT_METAL=48000, MAT_GLASS=32000) + custom_materials = list(/datum/material/iron = 48000, /datum/material/glass = 32000) matter = 160 /obj/item/construction/rcd/loaded/upgraded @@ -635,13 +635,13 @@ RLD item_state = "rcdammo" lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' - materials = list(MAT_METAL=12000, MAT_GLASS=8000) + custom_materials = list(/datum/material/iron=12000, /datum/material/glass=8000) var/ammoamt = 40 /obj/item/rcd_ammo/large name = "large compressed matter cartridge" desc = "Highly compressed matter for the RCD. Has four times the matter packed into the same space as a normal cartridge." - materials = list(MAT_METAL=48000, MAT_GLASS=32000) + custom_materials = list(/datum/material/iron=48000, /datum/material/glass=32000) ammoamt = 160 diff --git a/code/game/objects/items/RPD.dm b/code/game/objects/items/RPD.dm index 237aca02a9..665082d1d2 100644 --- a/code/game/objects/items/RPD.dm +++ b/code/game/objects/items/RPD.dm @@ -188,7 +188,7 @@ GLOBAL_LIST_INIT(transit_tube_recipes, list( throw_speed = 1 throw_range = 5 w_class = WEIGHT_CLASS_NORMAL - materials = list(MAT_METAL=75000, MAT_GLASS=37500) + custom_materials = list(/datum/material/iron=75000, /datum/material/glass=37500) armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) resistance_flags = FIRE_PROOF var/datum/effect_system/spark_spread/spark_system @@ -345,7 +345,7 @@ GLOBAL_LIST_INIT(transit_tube_recipes, list( A = get_turf(A) var/can_make_pipe = (isturf(A) || is_type_in_typecache(A, make_pipe_whitelist)) - . = FALSE + . = TRUE if((mode & DESTROY_MODE) && istype(A, /obj/item/pipe) || istype(A, /obj/structure/disposalconstruct) || istype(A, /obj/structure/c_transit_tube) || istype(A, /obj/structure/c_transit_tube_pod) || istype(A, /obj/item/pipe_meter)) to_chat(user, "You start destroying a pipe...") diff --git a/code/game/objects/items/airlock_painter.dm b/code/game/objects/items/airlock_painter.dm index e63474dd6f..45fea91e49 100644 --- a/code/game/objects/items/airlock_painter.dm +++ b/code/game/objects/items/airlock_painter.dm @@ -7,7 +7,7 @@ w_class = WEIGHT_CLASS_SMALL - materials = list(MAT_METAL=50, MAT_GLASS=50) + custom_materials = list(/datum/material/iron=50, /datum/material/glass=50) flags_1 = CONDUCT_1 item_flags = NOBLUDGEON @@ -67,7 +67,7 @@ L.Remove() // make some colorful reagent, and apply it to the lungs - L.create_reagents(10) + L.create_reagents(10, NONE, NO_REAGENTS_VALUE) L.reagents.add_reagent(/datum/reagent/colorful_reagent, 10) L.reagents.reaction(L, TOUCH, 1) diff --git a/code/game/objects/items/apc_frame.dm b/code/game/objects/items/apc_frame.dm index c725148d9a..3b1d9a8096 100644 --- a/code/game/objects/items/apc_frame.dm +++ b/code/game/objects/items/apc_frame.dm @@ -1,6 +1,6 @@ /obj/item/wallframe icon = 'icons/obj/wallframe.dmi' - materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT*2) + custom_materials = list(/datum/material/iron=MINERAL_MATERIAL_AMOUNT*2) flags_1 = CONDUCT_1 item_state = "syringe_kit" lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' @@ -66,8 +66,8 @@ if(iswallturf(T)) T.attackby(src, user, params) - var/metal_amt = round(materials[MAT_METAL]/MINERAL_MATERIAL_AMOUNT) - var/glass_amt = round(materials[MAT_GLASS]/MINERAL_MATERIAL_AMOUNT) + var/metal_amt = round(custom_materials[getmaterialref(/datum/material/iron)]/MINERAL_MATERIAL_AMOUNT) + var/glass_amt = round(custom_materials[getmaterialref(/datum/material/glass)]/MINERAL_MATERIAL_AMOUNT) if(istype(W, /obj/item/wrench) && (metal_amt || glass_amt)) to_chat(user, "You dismantle [src].") @@ -119,5 +119,5 @@ righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' flags_1 = CONDUCT_1 w_class = WEIGHT_CLASS_SMALL - materials = list(MAT_METAL=50, MAT_GLASS=50) + custom_materials = list(/datum/material/iron=50, /datum/material/glass=50) grind_results = list(/datum/reagent/iron = 10, /datum/reagent/silicon = 10) diff --git a/code/game/objects/items/balls.dm b/code/game/objects/items/balls.dm index 59b47bacbd..c24f58208b 100644 --- a/code/game/objects/items/balls.dm +++ b/code/game/objects/items/balls.dm @@ -20,7 +20,7 @@ throw_range = 14 w_class = WEIGHT_CLASS_SMALL -/obj/item/toy/tennis/pre_altattackby(atom/A, mob/living/user, params) //checks if it can do right click memes +/obj/item/toy/tennis/alt_pre_attack(atom/A, mob/living/user, params) //checks if it can do right click memes altafterattack(A, user, TRUE, params) return TRUE diff --git a/code/game/objects/items/boombox.dm b/code/game/objects/items/boombox.dm index 10d12f1973..3b93480e43 100644 --- a/code/game/objects/items/boombox.dm +++ b/code/game/objects/items/boombox.dm @@ -23,7 +23,7 @@ if(!boomingandboxing) var/list/tracklist = list() for(var/datum/track/S in SSjukeboxes.songs) - if(istype(S) && S.song_associated_id in availabletrackids) + if(istype(S) && (S.song_associated_id in availabletrackids)) tracklist[S.song_name] = S var/selected = input(user, "Play song", "Track:") as null|anything in tracklist if(QDELETED(src) || !selected || !istype(tracklist[selected], /datum/track)) diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index 1bef477a30..4de3e4ff96 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -250,6 +250,7 @@ update_label("John Doe", "Clowny") name = "agent card" access = list(ACCESS_MAINT_TUNNELS, ACCESS_SYNDICATE) var/anyone = FALSE //Can anyone forge the ID or just syndicate? + var/forged = FALSE //have we set a custom name and job assignment, or will we use what we're given when we chameleon change? /obj/item/card/id/syndicate/Initialize() . = ..() @@ -265,26 +266,52 @@ update_label("John Doe", "Clowny") var/obj/item/card/id/I = O src.access |= I.access if(isliving(user) && user.mind) - if(user.mind.special_role) + if(user.mind.special_role || anyone) to_chat(usr, "The card's microscanners activate as you pass it over the ID, copying its access.") /obj/item/card/id/syndicate/attack_self(mob/user) if(isliving(user) && user.mind) - if(user.mind.special_role || anyone) - if(alert(user, "Action", "Agent ID", "Show", "Forge") == "Forge") - var/input_name = reject_bad_name(stripped_input(user, "What name would you like to put on this card?", "Agent card name", registered_name ? registered_name : (ishuman(user) ? user.real_name : user.name), MAX_NAME_LEN), TRUE) - if(!input_name) - return + var/first_use = registered_name ? FALSE : TRUE + if(!(user.mind.special_role || anyone)) //Unless anyone is allowed, only syndies can use the card, to stop metagaming. + if(first_use) //If a non-syndie is the first to forge an unassigned agent ID, then anyone can forge it. + anyone = TRUE + else + return ..() - var/u = stripped_input(user, "What occupation would you like to put on this card?\nNote: This will not grant any access levels other than Maintenance.", "Agent card job assignment", "Assistant", MAX_MESSAGE_LEN) - if(!u) - registered_name = "" - return - assignment = u - update_label() - to_chat(user, "You successfully forge the ID card.") + var/popup_input = alert(user, "Choose Action", "Agent ID", "Show", "Forge/Reset") + if(user.incapacitated()) + return + if(popup_input == "Forge/Reset" && !forged) + var/input_name = stripped_input(user, "What name would you like to put on this card? Leave blank to randomise.", "Agent card name", registered_name ? registered_name : (ishuman(user) ? user.real_name : user.name), MAX_NAME_LEN) + input_name = reject_bad_name(input_name) + if(!input_name) + // Invalid/blank names give a randomly generated one. + if(user.gender == MALE) + input_name = "[pick(GLOB.first_names_male)] [pick(GLOB.last_names)]" + else if(user.gender == FEMALE) + input_name = "[pick(GLOB.first_names_female)] [pick(GLOB.last_names)]" + else + input_name = "[pick(GLOB.first_names)] [pick(GLOB.last_names)]" + + var/target_occupation = stripped_input(user, "What occupation would you like to put on this card?\nNote: This will not grant any access levels other than Maintenance.", "Agent card job assignment", assignment ? assignment : "Assistant", MAX_MESSAGE_LEN) + if(!target_occupation) return - ..() + registered_name = input_name + assignment = target_occupation + update_label() + forged = TRUE + to_chat(user, "You successfully forge the ID card.") + log_game("[key_name(user)] has forged \the [initial(name)] with name \"[registered_name]\" and occupation \"[assignment]\".") + return + else if (popup_input == "Forge/Reset" && forged) + registered_name = initial(registered_name) + assignment = initial(assignment) + log_game("[key_name(user)] has reset \the [initial(name)] named \"[src]\" to default.") + update_label() + forged = FALSE + to_chat(user, "You successfully reset the ID card.") + return + return ..() /obj/item/card/id/syndicate/anyone anyone = TRUE @@ -542,3 +569,14 @@ update_label("John Doe", "Clowny") /obj/item/card/id/knight/captain id_color = "#FFD700" + +/obj/item/card/id/debug + name = "\improper Debug ID" + desc = "A debug ID card. Has ALL the all access, you really shouldn't have this." + icon_state = "ert_janitor" + assignment = "Jannie" + +/obj/item/card/id/debug/Initialize() + access = get_all_accesses()+get_all_centcom_access()+get_all_syndicate_access() + . = ..() + diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index 1186ea8001..cd163e90a4 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -122,7 +122,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM /obj/item/clothing/mask/cigarette/Initialize() . = ..() - create_reagents(chem_volume, INJECTABLE | NO_REACT) // so it doesn't react until you light it + create_reagents(chem_volume, INJECTABLE | NO_REACT, NO_REAGENTS_VALUE) // so it doesn't react until you light it if(list_reagents) reagents.add_reagent_list(list_reagents) if(starts_lit) @@ -717,7 +717,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM /obj/item/clothing/mask/vape/Initialize(mapload, param_color) . = ..() - create_reagents(chem_volume, NO_REACT) // so it doesn't react until you light it + 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) diff --git a/code/game/objects/items/circuitboards/circuitboard.dm b/code/game/objects/items/circuitboards/circuitboard.dm index 5f87f9ffd9..6dc5db970d 100644 --- a/code/game/objects/items/circuitboards/circuitboard.dm +++ b/code/game/objects/items/circuitboards/circuitboard.dm @@ -10,7 +10,7 @@ item_state = "electronic" lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' - materials = list(MAT_GLASS=1000) + custom_materials = list(/datum/material/glass=1000) w_class = WEIGHT_CLASS_SMALL grind_results = list(/datum/reagent/silicon = 20) var/build_path = null diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm index 2196246b03..df0a4e6cf3 100644 --- a/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -35,6 +35,10 @@ /obj/item/stock_parts/manipulator = 1, /obj/item/stack/sheet/glass = 1) +/obj/item/circuitboard/machine/autolathe/secure + name = "Secure Autolathe (Machine Board)" + build_path = /obj/machinery/autolathe/secure + /obj/item/circuitboard/machine/bloodbankgen name = "Blood Bank Generator (Machine Board)" build_path = /obj/machinery/bloodbankgen diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index 81c5083ef7..49f8a90901 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -96,7 +96,7 @@ charges_left = charges if(!reagents) - create_reagents(charges_left * volume_multiplier) + create_reagents(charges_left * volume_multiplier, NONE, NO_REAGENTS_VALUE) reagents.clear_reagents() var/total_weight = 0 @@ -619,7 +619,7 @@ is_capped = TRUE self_contained = FALSE // Don't disappear when they're empty can_change_colour = TRUE - + reagent_contents = list(/datum/reagent/fuel = 1, /datum/reagent/consumable/ethanol = 1) pre_noise = TRUE @@ -710,7 +710,8 @@ if(isobj(target)) if(actually_paints) - if(color_hex2num(paint_color) < 350 && !istype(target, /obj/structure/window) && !istype(target, /obj/effect/decal/cleanable/crayon)) //Colors too dark are rejected + var/list/hsl = rgb2hsl(hex2num(copytext(paint_color,2,4)),hex2num(copytext(paint_color,4,6)),hex2num(copytext(paint_color,6,8))) + if(hsl[3] < 0.25 && !istype(target, /obj/structure/window) && !istype(target, /obj/effect/decal/cleanable/crayon)) //Colors too dark are rejected to_chat(usr, "A color that dark on an object like this? Surely not...") return FALSE diff --git a/code/game/objects/items/debug_items.dm b/code/game/objects/items/debug_items.dm new file mode 100644 index 0000000000..c7aaab6a26 --- /dev/null +++ b/code/game/objects/items/debug_items.dm @@ -0,0 +1,102 @@ +/* This file contains standalone items for debug purposes. */ + +/obj/item/debug/human_spawner + name = "human spawner" + desc = "Spawn a human by aiming at a turf and clicking. Use in hand to change type." + icon = 'icons/obj/guns/magic.dmi' + icon_state = "nothingwand" + item_state = "wand" + lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items_righthand.dmi' + w_class = WEIGHT_CLASS_SMALL + var/datum/species/selected_species + var/valid_species = list() + +/obj/item/debug/human_spawner/afterattack(atom/target, mob/user, proximity) + ..() + if(isturf(target)) + var/mob/living/carbon/human/H = new /mob/living/carbon/human(target) + if(selected_species) + H.set_species(selected_species) + +/obj/item/debug/human_spawner/attack_self(mob/user) + ..() + var/choice = input("Select a species", "Human Spawner", null) in GLOB.species_list + selected_species = GLOB.species_list[choice] + +/* Revive this once we purge all the istype checks for tools for tool_behaviour +/obj/item/debug/omnitool + name = "omnitool" + desc = "The original hypertool, born before them all. Use it in hand to unleash it's true power." + icon = 'icons/obj/device.dmi' + icon_state = "hypertool" + item_state = "hypertool" + toolspeed = 0.1 + tool_behaviour = null + +/obj/item/debug/omnitool/examine() + . = ..() + . += " The mode is: [tool_behaviour]" + +/obj/item/debug/omnitool/proc/check_menu(mob/user) + if(!istype(user)) + return FALSE + if(user.incapacitated() || !user.Adjacent(src)) + return FALSE + return TRUE + +/obj/item/debug/omnitool/attack_self(mob/user) + if(!user) + return + var/list/tool_list = list( + "Crowbar" = image(icon = 'icons/obj/tools.dmi', icon_state = "crowbar"), + "Multitool" = image(icon = 'icons/obj/device.dmi', icon_state = "multitool"), + "Screwdriver" = image(icon = 'icons/obj/tools.dmi', icon_state = "screwdriver_map"), + "Wirecutters" = image(icon = 'icons/obj/tools.dmi', icon_state = "cutters_map"), + "Wrench" = image(icon = 'icons/obj/tools.dmi', icon_state = "wrench"), + "Welding Tool" = image(icon = 'icons/obj/tools.dmi', icon_state = "miniwelder"), + "Analyzer" = image(icon = 'icons/obj/device.dmi', icon_state = "analyzer"), + "Mining Tool" = image(icon = 'icons/obj/mining.dmi', icon_state = "minipick"), + "Shovel" = image(icon = 'icons/obj/mining.dmi', icon_state = "spade"), + "Retractor" = image(icon = 'icons/obj/surgery.dmi', icon_state = "retractor"), + "Hemostat" = image(icon = 'icons/obj/surgery.dmi', icon_state = "hemostat"), + "Cautery" = image(icon = 'icons/obj/surgery.dmi', icon_state = "cautery"), + "Drill" = image(icon = 'icons/obj/surgery.dmi', icon_state = "drill"), + "Scalpel" = image(icon = 'icons/obj/surgery.dmi', icon_state = "scalpel"), + "Saw" = image(icon = 'icons/obj/surgery.dmi', icon_state = "saw") + ) + var/tool_result = show_radial_menu(user, src, tool_list, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE) + if(!check_menu(user)) + return + switch(tool_result) + if("Crowbar") + tool_behaviour = TOOL_CROWBAR + if("Multitool") + tool_behaviour = TOOL_MULTITOOL + if("Screwdriver") + tool_behaviour = TOOL_SCREWDRIVER + if("Wirecutters") + tool_behaviour = TOOL_WIRECUTTER + if("Wrench") + tool_behaviour = TOOL_WRENCH + if("Welding Tool") + tool_behaviour = TOOL_WELDER + if("Analyzer") + tool_behaviour = TOOL_ANALYZER + if("Mining Tool") + tool_behaviour = TOOL_MINING + if("Shovel") + tool_behaviour = TOOL_SHOVEL + if("Retractor") + tool_behaviour = TOOL_RETRACTOR + if("Hemostat") + tool_behaviour = TOOL_HEMOSTAT + if("Cautery") + tool_behaviour = TOOL_CAUTERY + if("Drill") + tool_behaviour = TOOL_DRILL + if("Scalpel") + tool_behaviour = TOOL_SCALPEL + if("Saw") + tool_behaviour = TOOL_SAW +*/ diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index 386b1fe668..e35d398021 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -431,26 +431,11 @@ if((!req_defib && grab_ghost) || (req_defib && defib.grab_ghost)) H.notify_ghost_cloning("Your heart is being defibrillated!") H.grab_ghost() // Shove them back in their body. - else if(can_defib(H)) + else if(H.can_defib()) H.notify_ghost_cloning("Your heart is being defibrillated. Re-enter your corpse if you want to be revived!", source = src) do_help(H, user) -/obj/item/twohanded/shockpaddles/proc/can_defib(mob/living/carbon/H) //Our code here is different than tg, if it breaks in testing; BUG_PROBABLE_CAUSE - var/obj/item/organ/heart = H.getorgan(/obj/item/organ/heart) - if(H.suiciding || H.hellbound || HAS_TRAIT(H, TRAIT_HUSK)) - return - if((world.time - H.timeofdeath) > tlimit) - return - if((H.getBruteLoss() >= MAX_REVIVE_BRUTE_DAMAGE) || (H.getFireLoss() >= MAX_REVIVE_FIRE_DAMAGE)) - return - if(!heart || (heart.organ_flags & ORGAN_FAILING)) - return - var/obj/item/organ/brain/BR = H.getorgan(/obj/item/organ/brain) - if(QDELETED(BR) || BR.brain_death || (BR.organ_flags & ORGAN_FAILING) || H.suiciding) - return - return TRUE - /obj/item/twohanded/shockpaddles/proc/shock_touching(dmg, mob/H) if(!H.pulledby || !isliving(H.pulledby)) return @@ -745,22 +730,22 @@ name = "Defibrillator Healing Disk" desc = "An upgrade which increases the healing power of the defibrillator" icon_state = "heal_disk" - materials = list(MAT_METAL=16000, MAT_GLASS = 18000, MAT_GOLD = 6000, MAT_SILVER = 6000) + custom_materials = list(/datum/material/iron=16000, /datum/material/glass = 18000, /datum/material/gold = 6000, /datum/material/silver = 6000) /obj/item/disk/medical/defib_shock name = "Defibrillator Anti-Shock Disk" desc = "A safety upgrade that guarantees only the patient will get shocked" icon_state = "zap_disk" - materials = list(MAT_METAL=16000, MAT_GLASS = 18000, MAT_GOLD = 6000, MAT_SILVER = 6000) + custom_materials = list(/datum/material/iron=16000, /datum/material/glass = 18000, /datum/material/gold = 6000, /datum/material/silver = 6000) /obj/item/disk/medical/defib_decay name = "Defibrillator Body-Decay Extender Disk" desc = "An upgrade allowing the defibrillator to work on more decayed bodies" icon_state = "body_disk" - materials = list(MAT_METAL=16000, MAT_GLASS = 18000, MAT_GOLD = 16000, MAT_SILVER = 6000, MAT_TITANIUM = 2000) + custom_materials = list(/datum/material/iron=16000, /datum/material/glass = 18000, /datum/material/gold = 16000, /datum/material/silver = 6000, /datum/material/titanium = 2000) /obj/item/disk/medical/defib_speed name = "Defibrillator Fast Charge Disk" desc = "An upgrade to the defibrillator capacitors, which let it charge faster" icon_state = "fast_disk" - materials = list(MAT_METAL=16000, MAT_GLASS = 8000, MAT_GOLD = 26000, MAT_SILVER = 26000) + custom_materials = list(/datum/material/iron=16000, /datum/material/glass = 8000, /datum/material/gold = 26000, /datum/material/silver = 26000) diff --git a/code/game/objects/items/dehy_carp.dm b/code/game/objects/items/dehy_carp.dm index 55d1a2c78a..03ff354ffb 100644 --- a/code/game/objects/items/dehy_carp.dm +++ b/code/game/objects/items/dehy_carp.dm @@ -8,6 +8,7 @@ var/mob/owner = null //Carp doesn't attack owner, set when using in hand var/owned = 0 //Boolean, no owner to begin with var/mobtype = /mob/living/simple_animal/hostile/carp //So admins can change what mob spawns via var fuckery + can_random_spawn = FALSE //Attack self /obj/item/toy/plush/carpplushie/dehy_carp/attack_self(mob/user) diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 6bac77258d..fe8f3ca626 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -721,7 +721,7 @@ GLOBAL_LIST_EMPTY(PDAs) return /obj/item/pda/proc/remove_id(mob/user) - if(issilicon(user) || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(hasSiliconAccessInArea(user) || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) return do_remove_id(user) @@ -916,7 +916,7 @@ GLOBAL_LIST_EMPTY(PDAs) remove_pen() /obj/item/pda/proc/toggle_light() - if(issilicon(usr) || !usr.canUseTopic(src, BE_CLOSE)) + if(hasSiliconAccessInArea(usr) || !usr.canUseTopic(src, BE_CLOSE)) return if(fon) fon = FALSE @@ -928,7 +928,7 @@ GLOBAL_LIST_EMPTY(PDAs) /obj/item/pda/proc/remove_pen() - if(issilicon(usr) || !usr.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + if(hasSiliconAccessInArea(usr) || !usr.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) return if(inserted_item) diff --git a/code/game/objects/items/devices/PDA/cart.dm b/code/game/objects/items/devices/PDA/cart.dm index b186c29539..1006fe9146 100644 --- a/code/game/objects/items/devices/PDA/cart.dm +++ b/code/game/objects/items/devices/PDA/cart.dm @@ -100,7 +100,8 @@ bot_access_flags = CLEAN_BOT /obj/item/cartridge/lawyer - name = "\improper P.R.O.V.E. cartridge" + name = "\improper S.P.A.M. cartridge" + desc = "Introducing the Station Public Announcement Messenger cartridge, featuring the unique ability to broadcast-mark messages, designed for lawyers across Nanotrasen to advertise their useful and important services." icon_state = "cart-law" access = CART_SECURITY spam_enabled = 1 @@ -562,22 +563,22 @@ Code: if (53) // Newscaster menu = "

[PDAIMG(notes)] Newscaster Access

" menu += "
Current Newsfeed: [current_channel ? current_channel : "None"]
" - var/datum/newscaster/feed_channel/current - for(var/datum/newscaster/feed_channel/chan in GLOB.news_network.network_channels) + var/datum/news/feed_channel/current + for(var/datum/news/feed_channel/chan in GLOB.news_network.network_channels) if (chan.channel_name == current_channel) current = chan if(!current) menu += "
ERROR : NO CHANNEL FOUND
" return var/i = 1 - for(var/datum/newscaster/feed_message/msg in current.messages) + for(var/datum/news/feed_message/msg in current.messages) menu +="-[msg.returnBody(-1)]
\[Story by [msg.returnAuthor(-1)]\]
" menu +="[msg.comments.len] comment[msg.comments.len > 1 ? "s" : ""]
" if(msg.img) user << browse_rsc(msg.img, "tmp_photo[i].png") menu +="
" i++ - for(var/datum/newscaster/feed_comment/comment in msg.comments) + for(var/datum/news/feed_comment/comment in msg.comments) menu +="[comment.body]
[comment.author] [comment.time_stamp]
" menu += "
Post Message" @@ -608,7 +609,7 @@ Code: /obj/item/cartridge/Topic(href, href_list) ..() - if(!usr.canUseTopic(src, !issilicon(usr))) + if(!usr.canUseTopic(src, !hasSiliconAccessInArea(usr))) usr.unset_machine() usr << browse(null, "window=pda") return @@ -681,8 +682,8 @@ Code: if("Newscaster Message") var/host_pda_owner_name = host_pda.id ? "[host_pda.id.registered_name] ([host_pda.id.assignment])" : "Unknown" var/message = host_pda.msg_input() - var/datum/newscaster/feed_channel/current - for(var/datum/newscaster/feed_channel/chan in GLOB.news_network.network_channels) + var/datum/news/feed_channel/current + for(var/datum/news/feed_channel/chan in GLOB.news_network.network_channels) if (chan.channel_name == current_channel) current = chan if(current.locked && current.author != host_pda_owner_name) diff --git a/code/game/objects/items/devices/chameleonproj.dm b/code/game/objects/items/devices/chameleonproj.dm index c4ffa9f0ff..e87987600a 100644 --- a/code/game/objects/items/devices/chameleonproj.dm +++ b/code/game/objects/items/devices/chameleonproj.dm @@ -49,6 +49,10 @@ return if(istype(target, /obj/structure/falsewall)) return + if(target.alpha != 255) + return + if(target.invisibility != 0) + return if(iseffect(target)) if(!(istype(target, /obj/effect/decal))) //be a footprint return diff --git a/code/game/objects/items/devices/compressionkit.dm b/code/game/objects/items/devices/compressionkit.dm index eebe4dc69b..9c7e8ce185 100644 --- a/code/game/objects/items/devices/compressionkit.dm +++ b/code/game/objects/items/devices/compressionkit.dm @@ -89,25 +89,6 @@ else to_chat(user, "Anomalous error. Summon a coder.") - else if(ishuman(target) && user.zone_selected == BODY_ZONE_PRECISE_GROIN) - var/mob/living/carbon/human/H = target - var/obj/item/organ/genital/penis/P = H.getorganslot(ORGAN_SLOT_PENIS) - if(!P) - return - playsound(get_turf(src), 'sound/weapons/flash.ogg', 50, 1) - H.visible_message("[user] is preparing to shrink [H]\'s [P.name] with their bluespace compression kit!") - if(do_mob(user, H, 40) && charges > 0 && P.length > 0) - H.visible_message("[user] has shrunk [H]\'s [P.name]!") - playsound(get_turf(src), 'sound/weapons/emitter2.ogg', 50, 1) - sparks() - flash_lighting_fx(3, 3, LIGHT_COLOR_CYAN) - charges -= 1 - var/p_name = P.name - P.modify_size(-5) - if(QDELETED(P)) - H.visible_message("[H]\'s [p_name] vanishes!") - - /obj/item/compressionkit/attackby(obj/item/I, mob/user, params) ..() if(istype(I, /obj/item/stack/ore/bluespace_crystal)) @@ -117,4 +98,4 @@ if(B.amount > 1) B.amount -= 1 else - qdel(I) \ No newline at end of file + qdel(I) diff --git a/code/game/objects/items/devices/desynchronizer.dm b/code/game/objects/items/devices/desynchronizer.dm index 0fa557f666..e5dcfc0075 100644 --- a/code/game/objects/items/devices/desynchronizer.dm +++ b/code/game/objects/items/devices/desynchronizer.dm @@ -8,7 +8,7 @@ item_flags = NOBLUDGEON lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' - materials = list(MAT_METAL = 250, MAT_GLASS = 500) + custom_materials = list(/datum/material/iron = 250, /datum/material/glass = 500) var/max_duration = 3000 var/duration = 300 var/last_use = 0 diff --git a/code/game/objects/items/devices/doorCharge.dm b/code/game/objects/items/devices/doorCharge.dm index e9ba9ea4a4..c38eb46baf 100644 --- a/code/game/objects/items/devices/doorCharge.dm +++ b/code/game/objects/items/devices/doorCharge.dm @@ -12,7 +12,7 @@ item_flags = NOBLUDGEON force = 3 attack_verb = list("blown up", "exploded", "detonated") - materials = list(MAT_METAL=50, MAT_GLASS=30) + custom_materials = list(/datum/material/iron=50, /datum/material/glass=30) /obj/item/doorCharge/ex_act(severity, target) switch(severity) diff --git a/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm b/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm index 97392ca71e..5dbda8de54 100644 --- a/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm +++ b/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm @@ -5,7 +5,7 @@ icon = 'icons/obj/module.dmi' icon_state = "boris" w_class = WEIGHT_CLASS_TINY - materials = list(MAT_METAL = 50, MAT_GLASS = 300) + custom_materials = list(/datum/material/iron = 50, /datum/material/glass = 300) var/recharging = FALSE var/circuits = 5 //How many circuits the pseudocircuit has left var/static/recycleable_circuits = typecacheof(list(/obj/item/electronics/firelock, /obj/item/electronics/airalarm, /obj/item/electronics/firealarm, \ diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index a82f99064e..82644cb0fe 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -9,7 +9,7 @@ w_class = WEIGHT_CLASS_SMALL flags_1 = CONDUCT_1 slot_flags = ITEM_SLOT_BELT - materials = list(MAT_METAL=50, MAT_GLASS=20) + custom_materials = list(/datum/material/iron=50, /datum/material/glass=20) actions_types = list(/datum/action/item_action/toggle_light) var/on = FALSE var/brightness_on = 4 //range of light when on @@ -51,7 +51,7 @@ /obj/item/flashlight/attack(mob/living/carbon/M, mob/living/carbon/human/user) add_fingerprint(user) - if(istype(M) && on && user.zone_selected in list(BODY_ZONE_PRECISE_EYES, BODY_ZONE_PRECISE_MOUTH)) + if(istype(M) && on && (user.zone_selected in list(BODY_ZONE_PRECISE_EYES, BODY_ZONE_PRECISE_MOUTH))) if((HAS_TRAIT(user, TRAIT_CLUMSY) || HAS_TRAIT(user, TRAIT_DUMB)) && prob(50)) //too dumb to use flashlight properly return ..() //just hit them in the head @@ -224,7 +224,7 @@ light_color = "#FFDDBB" w_class = WEIGHT_CLASS_BULKY flags_1 = CONDUCT_1 - materials = list() + custom_materials = null on = TRUE @@ -362,7 +362,7 @@ item_state = "slime" w_class = WEIGHT_CLASS_SMALL slot_flags = ITEM_SLOT_BELT - materials = list() + custom_materials = null brightness_on = 6 //luminosity when on light_color = "#FFEEAA" flashlight_power = 0.6 @@ -390,7 +390,7 @@ return TRUE /obj/item/flashlight/emp/attack(mob/living/M, mob/living/user) - if(on && user.zone_selected in list(BODY_ZONE_PRECISE_EYES, BODY_ZONE_PRECISE_MOUTH)) // call original attack when examining organs + if(on && (user.zone_selected in list(BODY_ZONE_PRECISE_EYES, BODY_ZONE_PRECISE_MOUTH))) // call original attack when examining organs ..() return diff --git a/code/game/objects/items/devices/forcefieldprojector.dm b/code/game/objects/items/devices/forcefieldprojector.dm index 905428ae1f..03ca110ec8 100644 --- a/code/game/objects/items/devices/forcefieldprojector.dm +++ b/code/game/objects/items/devices/forcefieldprojector.dm @@ -9,7 +9,7 @@ item_state = "electronic" lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' - materials = list(MAT_METAL=250, MAT_GLASS=500) + custom_materials = list(/datum/material/iron=250, /datum/material/glass=500) var/max_shield_integrity = 100 var/shield_integrity = 250 var/max_fields = 3 diff --git a/code/game/objects/items/devices/geiger_counter.dm b/code/game/objects/items/devices/geiger_counter.dm index ce0e492393..6168e2dabe 100644 --- a/code/game/objects/items/devices/geiger_counter.dm +++ b/code/game/objects/items/devices/geiger_counter.dm @@ -18,7 +18,7 @@ righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' w_class = WEIGHT_CLASS_SMALL slot_flags = ITEM_SLOT_BELT - materials = list(MAT_METAL = 150, MAT_GLASS = 150) + custom_materials = list(/datum/material/iron = 150, /datum/material/glass = 150) var/grace = RAD_GRACE_PERIOD var/datum/looping_sound/geiger/soundloop @@ -38,6 +38,7 @@ /obj/item/geiger_counter/Destroy() STOP_PROCESSING(SSobj, src) + QDEL_NULL(soundloop) return ..() /obj/item/geiger_counter/process() diff --git a/code/game/objects/items/devices/instruments.dm b/code/game/objects/items/devices/instruments.dm index dd7c5b15d9..4c46d064c4 100644 --- a/code/game/objects/items/devices/instruments.dm +++ b/code/game/objects/items/devices/instruments.dm @@ -108,6 +108,12 @@ 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." diff --git a/code/game/objects/items/devices/laserpointer.dm b/code/game/objects/items/devices/laserpointer.dm index 1f2f1ddda2..5b23f6f169 100644 --- a/code/game/objects/items/devices/laserpointer.dm +++ b/code/game/objects/items/devices/laserpointer.dm @@ -8,7 +8,7 @@ flags_1 = CONDUCT_1 item_flags = NOBLUDGEON slot_flags = ITEM_SLOT_BELT - materials = list(MAT_METAL=500, MAT_GLASS=500) + custom_materials = list(/datum/material/iron=500, /datum/material/glass=500) w_class = WEIGHT_CLASS_SMALL var/turf/pointer_loc var/energy = 5 diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm index 6d0a78974a..65c3a96572 100644 --- a/code/game/objects/items/devices/multitool.dm +++ b/code/game/objects/items/devices/multitool.dm @@ -24,7 +24,7 @@ throwforce = 0 throw_range = 7 throw_speed = 3 - materials = list(MAT_METAL=50, MAT_GLASS=20) + custom_materials = list(/datum/material/iron=50, /datum/material/glass=20) var/obj/machinery/buffer // simple machine buffer for device linkage toolspeed = 1 tool_behaviour = TOOL_MULTITOOL diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm index f28aacc46c..5b332cda46 100644 --- a/code/game/objects/items/devices/paicard.dm +++ b/code/game/objects/items/devices/paicard.dm @@ -94,10 +94,8 @@ to_chat(pai, "Your mental faculties leave you.") to_chat(pai, "oblivion... ") qdel(pai) - if(href_list["wires"]) - var/wire = text2num(href_list["wires"]) - if(pai.radio) - pai.radio.wires.cut(wire) + if(href_list["wires"] && pai.radio) + pai.radio.wires.cut(href_list["wires"]) if(href_list["reset_radio_short"]) pai.unshort_radio() if(href_list["setlaws"]) diff --git a/code/game/objects/items/devices/pipe_painter.dm b/code/game/objects/items/devices/pipe_painter.dm index 2d0af2cf3c..a6323cfd7f 100644 --- a/code/game/objects/items/devices/pipe_painter.dm +++ b/code/game/objects/items/devices/pipe_painter.dm @@ -6,7 +6,7 @@ item_flags = NOBLUDGEON var/paint_color = "grey" - materials = list(MAT_METAL=5000, MAT_GLASS=2000) + custom_materials = list(/datum/material/iron=5000, /datum/material/glass=2000) /obj/item/pipe_painter/afterattack(atom/A, mob/user, proximity_flag) . = ..() diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm index 58fc77e739..ba877f1dd7 100644 --- a/code/game/objects/items/devices/powersink.dm +++ b/code/game/objects/items/devices/powersink.dm @@ -13,7 +13,7 @@ throwforce = 5 throw_speed = 1 throw_range = 2 - materials = list(MAT_METAL=750) + custom_materials = list(/datum/material/iron=750) var/drain_rate = 1600000 // amount of power to drain per tick var/power_drained = 0 // has drained this much power var/max_power = 1e10 // maximum power that can be drained before exploding diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm index d499683fbc..a173453f1c 100644 --- a/code/game/objects/items/devices/radio/electropack.dm +++ b/code/game/objects/items/devices/radio/electropack.dm @@ -9,7 +9,7 @@ flags_1 = CONDUCT_1 slot_flags = ITEM_SLOT_BACK w_class = WEIGHT_CLASS_HUGE - materials = list(MAT_METAL=10000, MAT_GLASS=2500) + custom_materials = list(/datum/material/iron=10000, /datum/material/glass=2500) var/code = 2 var/frequency = FREQ_ELECTROPACK @@ -157,7 +157,7 @@ Code: w_class = WEIGHT_CLASS_SMALL strip_delay = 60 equip_delay_other = 60 - materials = list(MAT_METAL=5000, MAT_GLASS=2000) + custom_materials = list(/datum/material/iron = 5000, /datum/material/glass = 2000) var/tagname = null @@ -166,7 +166,7 @@ Code: id = "shockcollar" build_type = AUTOLATHE build_path = /obj/item/electropack/shockcollar - materials = list(MAT_METAL=5000, MAT_GLASS=2000) + materials = list(/datum/material/iron = 5000, /datum/material/glass =2000) category = list("hacked", "Misc") /obj/item/electropack/shockcollar/attack_hand(mob/user) diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index e04501144e..5728a97dda 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -19,7 +19,7 @@ GLOBAL_LIST_INIT(channel_tokens, list( desc = "An updated, modular intercom that fits over the head. Takes encryption keys." icon_state = "headset" item_state = "headset" - materials = list(MAT_METAL=75) + custom_materials = list(/datum/material/iron=75) subspace_transmission = TRUE canhear_range = 0 // can't hear headsets from very far away @@ -254,12 +254,17 @@ GLOBAL_LIST_INIT(channel_tokens, list( keyslot = null bowman = TRUE -/obj/item/radio/headset/ai +/obj/item/radio/headset/silicon/pai + name = "\proper mini Integrated Subspace Transceiver " + subspace_transmission = FALSE + + +/obj/item/radio/headset/silicon/ai name = "\proper Integrated Subspace Transceiver " keyslot2 = new /obj/item/encryptionkey/ai command = TRUE -/obj/item/radio/headset/ai/can_receive(freq, level) +/obj/item/radio/headset/silicon/can_receive(freq, level) return ..(freq, level, TRUE) /obj/item/radio/headset/attackby(obj/item/W, mob/user, params) diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index 41161b46c9..ada598866b 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -147,4 +147,4 @@ result_path = /obj/item/radio/intercom/unscrewed pixel_shift = 29 inverse = TRUE - materials = list(MAT_METAL = 75, MAT_GLASS = 25) + custom_materials = list(/datum/material/iron = 75, /datum/material/glass = 25) diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index b87b7b11bd..60b93d9461 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -11,7 +11,7 @@ throw_speed = 3 throw_range = 7 w_class = WEIGHT_CLASS_SMALL - materials = list(MAT_METAL=75, MAT_GLASS=25) + custom_materials = list(/datum/material/iron=75, /datum/material/glass=25) obj_flags = USES_TGUI var/on = TRUE diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index c23311cf22..1b8058e3d4 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -19,7 +19,7 @@ SLIME SCANNER item_state = "electronic" lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' - materials = list(MAT_METAL=150) + custom_materials = list(/datum/material/iron=150) /obj/item/t_scanner/suicide_act(mob/living/carbon/user) user.visible_message("[user] begins to emit terahertz-rays into [user.p_their()] brain with [src]! It looks like [user.p_theyre()] trying to commit suicide!") @@ -75,7 +75,7 @@ SLIME SCANNER w_class = WEIGHT_CLASS_TINY throw_speed = 3 throw_range = 7 - materials = list(MAT_METAL=200) + custom_materials = list(/datum/material/iron=200) var/mode = 1 var/scanmode = 0 var/advanced = FALSE @@ -516,7 +516,7 @@ SLIME SCANNER throw_speed = 3 throw_range = 7 tool_behaviour = TOOL_ANALYZER - materials = list(MAT_METAL=30, MAT_GLASS=20) + custom_materials = list(/datum/material/iron=30, /datum/material/glass=20) grind_results = list(/datum/reagent/mercury = 5, /datum/reagent/iron = 5, /datum/reagent/silicon = 5) var/cooldown = FALSE var/cooldown_time = 250 @@ -706,7 +706,7 @@ SLIME SCANNER throwforce = 0 throw_speed = 3 throw_range = 7 - materials = list(MAT_METAL=30, MAT_GLASS=20) + custom_materials = list(/datum/material/iron=30, /datum/material/glass=20) /obj/item/slime_scanner/attack(mob/living/M, mob/living/user) if(user.stat || user.eye_blind) @@ -765,7 +765,7 @@ SLIME SCANNER w_class = WEIGHT_CLASS_TINY throw_speed = 3 throw_range = 7 - materials = list(MAT_METAL=200) + custom_materials = list(/datum/material/iron=200) /obj/item/nanite_scanner/attack(mob/living/M, mob/living/carbon/human/user) user.visible_message("[user] has analyzed [M]'s nanites.") diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm index ebc7c520ef..fc8679aa03 100644 --- a/code/game/objects/items/devices/taperecorder.dm +++ b/code/game/objects/items/devices/taperecorder.dm @@ -9,7 +9,7 @@ w_class = WEIGHT_CLASS_SMALL flags_1 = HEAR_1 slot_flags = ITEM_SLOT_BELT - materials = list(MAT_METAL=60, MAT_GLASS=30) + custom_materials = list(/datum/material/iron=60, /datum/material/glass=30) force = 2 throwforce = 0 var/recording = 0 @@ -243,7 +243,7 @@ lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' w_class = WEIGHT_CLASS_TINY - materials = list(MAT_METAL=20, MAT_GLASS=5) + custom_materials = list(/datum/material/iron=20, /datum/material/glass=5) force = 1 throwforce = 0 var/max_capacity = 600 diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index 64e2830dd4..1d42198a23 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -69,7 +69,7 @@ effective or pretty fucking useless. */ /obj/item/healthanalyzer/rad_laser - materials = list(MAT_METAL=400) + custom_materials = list(/datum/material/iron=400) var/irradiate = 1 var/intensity = 10 // how much damage the radiation does var/wavelength = 10 // time it takes for the radiation to kick in, in seconds diff --git a/code/game/objects/items/extinguisher.dm b/code/game/objects/items/extinguisher.dm index 5cd1f4831c..2d9d0b61c2 100644 --- a/code/game/objects/items/extinguisher.dm +++ b/code/game/objects/items/extinguisher.dm @@ -11,7 +11,7 @@ throw_speed = 2 throw_range = 7 force = 10 - materials = list(MAT_METAL = 90) + custom_materials = list(/datum/material/iron = 90) attack_verb = list("slammed", "whacked", "bashed", "thunked", "battered", "bludgeoned", "thrashed") dog_fashion = /datum/dog_fashion/back resistance_flags = FIRE_PROOF @@ -36,7 +36,7 @@ throwforce = 2 w_class = WEIGHT_CLASS_SMALL force = 3 - materials = list(MAT_METAL = 50, MAT_GLASS = 40) + custom_materials = list(/datum/material/iron = 50, /datum/material/glass = 40) max_water = 30 sprite_name = "miniFE" dog_fashion = null diff --git a/code/game/objects/items/flamethrower.dm b/code/game/objects/items/flamethrower.dm index 906572d018..e307b9d626 100644 --- a/code/game/objects/items/flamethrower.dm +++ b/code/game/objects/items/flamethrower.dm @@ -12,7 +12,7 @@ throw_speed = 1 throw_range = 5 w_class = WEIGHT_CLASS_NORMAL - materials = list(MAT_METAL=500) + custom_materials = list(/datum/material/iron=500) resistance_flags = FIRE_PROOF var/status = FALSE var/lit = FALSE //on or off diff --git a/code/game/objects/items/granters.dm b/code/game/objects/items/granters.dm index 70cd503ef4..24fc1043d8 100644 --- a/code/game/objects/items/granters.dm +++ b/code/game/objects/items/granters.dm @@ -490,7 +490,13 @@ oneuse = FALSE remarks = list("Looks like these would sell much better in a plasma fire...", "Using glass bowls rather then cones?", "Mixing soda and ice-cream?", "Tall glasses with of liquids and solids...", "Just add a bit of icecream and cherry on top?") -//Later content when I have free time - Trilby Date:24-Aug-2019 +/obj/item/book/granter/crafting_recipe/bone_bow //Bow crafting for non-ashwalkers + name = "bowyery sandstone slab" // this is an actual word + desc = "A sandstone slab with inscriptions describing the Ash Walkers of Lavaland's bowyery." + crafting_recipe_types = list(/datum/crafting_recipe/bone_arrow, /datum/crafting_recipe/bone_bow, /datum/crafting_recipe/ashen_arrow, /datum/crafting_recipe/quiver, /datum/crafting_recipe/bow_tablet) + icon_state = "stone_tablet" + oneuse = FALSE + remarks = list("Sticking burning arrows into the sand makes them stronger...", "Breaking the bone apart to get shards, not sharpening the bone...", "Sinew is just like rope...") /obj/item/book/granter/crafting_recipe/under_the_oven //Illegal cook book name = "Under The Oven" diff --git a/code/game/objects/items/grenades/chem_grenade.dm b/code/game/objects/items/grenades/chem_grenade.dm index afdde02e32..acd71c57ac 100644 --- a/code/game/objects/items/grenades/chem_grenade.dm +++ b/code/game/objects/items/grenades/chem_grenade.dm @@ -117,7 +117,7 @@ if(!O.reagents) continue var/reagent_list = pretty_string_from_reagent_list(O.reagents) - user.log_message("removed [O] ([reagent_list]) from [src]") + user.log_message("removed [O] ([reagent_list]) from [src]", LOG_GAME) beakers = list() to_chat(user, "You open the [initial(name)] assembly and remove the payload.") return // First use of the wrench remove beakers, then use the wrench to remove the activation mechanism. diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm index 8ce0f33307..f458fe7e63 100644 --- a/code/game/objects/items/handcuffs.dm +++ b/code/game/objects/items/handcuffs.dm @@ -36,7 +36,7 @@ w_class = WEIGHT_CLASS_SMALL throw_speed = 3 throw_range = 5 - materials = list(MAT_METAL=500) + custom_materials = list(/datum/material/iron=500) breakouttime = 600 //Deciseconds = 60s = 1 minute armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) var/cuffsound = 'sound/weapons/handcuffs.ogg' @@ -117,7 +117,7 @@ color = "#ff0000" lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' - materials = list(MAT_METAL=150, MAT_GLASS=75) + custom_materials = list(/datum/material/iron=150, /datum/material/glass=75) breakouttime = 300 //Deciseconds = 30s cuffsound = 'sound/weapons/cablecuff.ogg' @@ -202,7 +202,7 @@ item_state = "zipties" lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' - materials = list() + custom_materials = null breakouttime = 450 //Deciseconds = 45s trashtype = /obj/item/restraints/handcuffs/cable/zipties/used item_color = "white" diff --git a/code/game/objects/items/implants/implant_explosive.dm b/code/game/objects/items/implants/implant_explosive.dm index b93c9419a3..bf8d215a11 100644 --- a/code/game/objects/items/implants/implant_explosive.dm +++ b/code/game/objects/items/implants/implant_explosive.dm @@ -82,8 +82,9 @@ /obj/item/implant/explosive/proc/boom_goes_the_weasel() explosion(get_turf(imp_in ? imp_in : src), heavy, medium, weak, weak, flame_range = weak) - imp_in?.gib(TRUE) - qdel(src) + if(!QDELETED(imp_in)) + imp_in.gib(TRUE) + qdel(src) /obj/item/implant/explosive/macro name = "macrobomb implant" diff --git a/code/game/objects/items/implants/implant_hijack.dm b/code/game/objects/items/implants/implant_hijack.dm new file mode 100644 index 0000000000..5dd610059c --- /dev/null +++ b/code/game/objects/items/implants/implant_hijack.dm @@ -0,0 +1,121 @@ +#define HIJACK_APC_MAX_AMOUNT 5 + +/obj/item/implant/hijack + name = "hijack implant" + desc = "Allows you to control the machinery in a room by hacking into the APC." + actions_types = list(/datum/action/item_action/hands_free/activate, /datum/action/item_action/removeAPCs, /datum/action/item_action/accessAPCs, /datum/action/item_action/stealthmodetoggle) + activated = 1 + var/toggled = FALSE + icon_state = "hijack" + var/eye_color + var/stealthmode = FALSE + var/stealthcooldown = 0 + var/hijacking = FALSE + +/obj/item/implant/hijack/activate() + . = ..() + toggled = !toggled + imp_in.click_intercept = toggled ? src : null + imp_in.siliconaccesstoggle = toggled ? TRUE : FALSE + to_chat(imp_in,"You turn [toggled ? "on" : "off"] [src]'s silicon interactions.") + toggle_eyes() + +/obj/item/implant/hijack/proc/toggle_eyes() + if (!ishuman(imp_in)) + return + var/on = toggled && !stealthmode + var/mob/living/carbon/human/H = imp_in + H.eye_color = on ? "ff0" : eye_color + H.dna.update_ui_block(DNA_EYE_COLOR_BLOCK) + H.update_body() + +/obj/item/implant/hijack/implant(mob/living/target, mob/user, silent = FALSE) + if(..()) + ADD_TRAIT(target, TRAIT_HIJACKER, "implant") + if (ishuman(target)) + var/mob/living/carbon/human/H = target + eye_color = H.eye_color + return TRUE + +/obj/item/implant/hijack/removed(mob/living/source, silent = FALSE, special = 0) + if(..()) + REMOVE_TRAIT(source, TRAIT_HIJACKER, "implant") + for (var/area/area in source.siliconaccessareas) + source.toggleSiliconAccessArea(area) + var/obj/machinery/power/apc/apc = area.get_apc() + if (apc) + apc.hijacker = null + apc.set_hijacked_lighting() + apc.update_icon() + if (ishuman(source)) + var/mob/living/carbon/human/H = source + H.eye_color = eye_color + return TRUE + +/obj/item/implant/hijack/proc/InterceptClickOn(mob/living/user,params,atom/object) + if (isitem(object) || !toggled || user.incapacitated()) + return + if (stealthmode == FALSE && istype(object,/obj/machinery/power/apc) && !user.CanReach(object)) + if (hijack_remotely(object)) + return + if (stealthmode && !user.CanReach(object)) + return + if (!object.hasSiliconAccessInArea(imp_in)) + return + var/list/modifiers = params2list(params) + imp_in.face_atom(object) + if (modifiers["shift"] && modifiers["ctrl"]) + object.AICtrlShiftClick(imp_in) + return TRUE + if (modifiers["shift"]) + object.AIShiftClick(imp_in) + return TRUE + if (modifiers["ctrl"]) + object.AICtrlClick(imp_in) + return TRUE + if (modifiers["alt"]) + object.AIAltClick(imp_in) + return TRUE + if (user.get_active_held_item()) + return + if (user.CanReach(object)) + object.attack_robot(imp_in) + else + object.attack_ai(imp_in) + return TRUE + +/obj/item/implant/hijack/proc/hijack_remotely(obj/machinery/power/apc/apc) + if (apc.hijacker || hijacking) + return FALSE //can't remotely hijack an already hijacked APC + hijacking = TRUE + to_chat(imp_in, "Establishing remote connection with APC.") + if (!do_after(imp_in, 4 SECONDS,target=apc)) + to_chat(imp_in, "Aborting.") + hijacking = FALSE + return TRUE + if (LAZYLEN(imp_in.siliconaccessareas) >= HIJACK_APC_MAX_AMOUNT) + to_chat(src,"You are connected to too many APCs! Too many more will fry your brain.") + hijacking = FALSE + return TRUE + imp_in.light_power = 2 + imp_in.light_range = 2 + imp_in.light_color = COLOR_YELLOW + imp_in.update_light() + imp_in.visible_message("[imp_in] starts glowing a with a hollow yellow light!") + to_chat(imp_in, "Beginning hijack of APC.") + if (do_after(imp_in, 21 SECONDS,target=apc)) + apc.hijacker = imp_in + stealthmode = FALSE + apc.set_hijacked_lighting() + imp_in.toggleSiliconAccessArea(apc.area) + apc.update_icon() + stealthcooldown = world.time + 1 MINUTES + 30 SECONDS + toggle_eyes() + else + to_chat(imp_in, "Aborting.") + hijacking = FALSE + imp_in.light_power = 0 + imp_in.light_range = 0 + imp_in.light_color = COLOR_YELLOW + imp_in.update_light() + return TRUE diff --git a/code/game/objects/items/implants/implantcase.dm b/code/game/objects/items/implants/implantcase.dm index 4b8427386c..c1734cb24e 100644 --- a/code/game/objects/items/implants/implantcase.dm +++ b/code/game/objects/items/implants/implantcase.dm @@ -9,7 +9,7 @@ throw_speed = 2 throw_range = 5 w_class = WEIGHT_CLASS_TINY - materials = list(MAT_GLASS=500) + custom_materials = list(/datum/material/glass=500) var/obj/item/implant/imp = null var/imp_type diff --git a/code/game/objects/items/implants/implanter.dm b/code/game/objects/items/implants/implanter.dm index ab902369cc..414bb3ea69 100644 --- a/code/game/objects/items/implants/implanter.dm +++ b/code/game/objects/items/implants/implanter.dm @@ -9,7 +9,7 @@ throw_speed = 3 throw_range = 5 w_class = WEIGHT_CLASS_SMALL - materials = list(MAT_METAL=600, MAT_GLASS=200) + custom_materials = list(/datum/material/iron=600, /datum/material/glass=200) var/obj/item/implant/imp = null var/imp_type = null @@ -74,4 +74,8 @@ /obj/item/implanter/stealth name = "implanter (stealth)" - imp_type = /obj/item/implant/stealth \ No newline at end of file + imp_type = /obj/item/implant/stealth + +/obj/item/implanter/hijack + name = "implanter (hijack)" + imp_type = /obj/item/implant/hijack \ No newline at end of file diff --git a/code/game/objects/items/kitchen.dm b/code/game/objects/items/kitchen.dm index e28909c84f..22a8d2c92a 100644 --- a/code/game/objects/items/kitchen.dm +++ b/code/game/objects/items/kitchen.dm @@ -22,7 +22,7 @@ throwforce = 0 throw_speed = 3 throw_range = 5 - materials = list(MAT_METAL=80) + custom_materials = list(/datum/material/iron=80) flags_1 = CONDUCT_1 attack_verb = list("attacked", "stabbed", "poked") hitsound = 'sound/weapons/bladeslice.ogg' @@ -65,7 +65,7 @@ hitsound = 'sound/weapons/bladeslice.ogg' throw_speed = 3 throw_range = 6 - materials = list(MAT_METAL=12000) + custom_materials = list(/datum/material/iron=12000) attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") sharpness = IS_SHARP_ACCURATE armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) @@ -104,7 +104,7 @@ flags_1 = CONDUCT_1 force = 15 throwforce = 10 - materials = list(MAT_METAL=18000) + custom_materials = list(/datum/material/iron=18000) attack_verb = list("cleaved", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") w_class = WEIGHT_CLASS_NORMAL @@ -136,7 +136,7 @@ desc = "A sharpened bone. The bare minimum in survival." force = 15 throwforce = 15 - materials = list() + custom_materials = null /obj/item/kitchen/knife/combat/cyborg name = "cyborg knife" @@ -153,7 +153,7 @@ desc = "Unlike other carrots, you should probably keep this far away from your eyes." force = 8 throwforce = 12//fuck git - materials = list() + custom_materials = null attack_verb = list("shanked", "shivved") armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) diff --git a/code/game/objects/items/melee/energy.dm b/code/game/objects/items/melee/energy.dm index 15a686bae6..3ca489542f 100644 --- a/code/game/objects/items/melee/energy.dm +++ b/code/game/objects/items/melee/energy.dm @@ -259,7 +259,7 @@ light_color = "#37FFF7" actions_types = list() -/obj/item/melee/transforming/energy/sword/cx/pre_altattackby(atom/A, mob/living/user, params) //checks if it can do right click memes +/obj/item/melee/transforming/energy/sword/cx/alt_pre_attack(atom/A, mob/living/user, params) //checks if it can do right click memes altafterattack(A, user, TRUE, params) return TRUE diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm index 4b071d6a34..a71e82d865 100644 --- a/code/game/objects/items/melee/misc.dm +++ b/code/game/objects/items/melee/misc.dm @@ -24,7 +24,7 @@ w_class = WEIGHT_CLASS_NORMAL attack_verb = list("flogged", "whipped", "lashed", "disciplined") hitsound = 'sound/weapons/chainhit.ogg' - materials = list(MAT_METAL = 1000) + custom_materials = list(/datum/material/iron = 1000) /obj/item/melee/chainofcommand/suicide_act(mob/user) user.visible_message("[user] is strangling [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!") @@ -67,7 +67,7 @@ sharpness = IS_SHARP attack_verb = list("slashed", "cut") hitsound = 'sound/weapons/rapierhit.ogg' - materials = list(MAT_METAL = 1000) + custom_materials = list(/datum/material/iron = 1000) total_mass = 3.4 /obj/item/melee/sabre/Initialize() @@ -507,3 +507,29 @@ held_sausage.name = "[target.name]-roasted [held_sausage.name]" held_sausage.desc = "[held_sausage.desc] It has been cooked to perfection on \a [target]." update_icon() + +/obj/item/melee/cleric_mace + name = "cleric mace" + desc = "The grandson of the club, yet the grandfather of the baseball bat. Most notably used by holy orders in days past." + icon = 'icons/obj/items_and_weapons.dmi' + icon_state = "mace_greyscale" + item_state = "mace_greyscale" + lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi' + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR //Material type changes the prefix as well as the color. + custom_materials = list(/datum/material/iron = 12000) //Defaults to an Iron Mace. + slot_flags = ITEM_SLOT_BELT + force = 14 + w_class = WEIGHT_CLASS_BULKY + throwforce = 8 + block_chance = 10 + armour_penetration = 50 + attack_verb = list("smacked", "struck", "cracked", "beaten") + var/overlay_state = "mace_handle" + var/mutable_appearance/overlay + +/obj/item/melee/cleric_mace/Initialize() + . = ..() + overlay = mutable_appearance(icon, overlay_state) + overlay.appearance_flags = RESET_COLOR + add_overlay(overlay) \ No newline at end of file diff --git a/code/game/objects/items/mop.dm b/code/game/objects/items/mop.dm index a8b28f2544..233eabd4ca 100644 --- a/code/game/objects/items/mop.dm +++ b/code/game/objects/items/mop.dm @@ -21,7 +21,7 @@ /obj/item/mop/New() ..() - create_reagents(mopcap) + create_reagents(mopcap, NONE, NO_REAGENTS_VALUE) /obj/item/mop/proc/clean(turf/A) diff --git a/code/game/objects/items/pet_carrier.dm b/code/game/objects/items/pet_carrier.dm index 5af9c70d9b..5f49f6b06d 100644 --- a/code/game/objects/items/pet_carrier.dm +++ b/code/game/objects/items/pet_carrier.dm @@ -15,7 +15,7 @@ w_class = WEIGHT_CLASS_BULKY throw_speed = 2 throw_range = 3 - materials = list(MAT_METAL = 7500, MAT_GLASS = 100) + custom_materials = list(/datum/material/iron = 7500, /datum/material/glass = 100) var/open = TRUE var/locked = FALSE var/list/occupants = list() diff --git a/code/game/objects/items/pinpointer.dm b/code/game/objects/items/pinpointer.dm index c4ad324a2c..57f247cdb2 100644 --- a/code/game/objects/items/pinpointer.dm +++ b/code/game/objects/items/pinpointer.dm @@ -12,7 +12,7 @@ righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' throw_speed = 3 throw_range = 7 - materials = list(MAT_METAL = 500, MAT_GLASS = 250) + custom_materials = list(/datum/material/iron = 500, /datum/material/glass = 250) resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF var/active = FALSE var/atom/movable/target //The thing we're searching for @@ -26,6 +26,7 @@ /obj/item/pinpointer/Destroy() STOP_PROCESSING(SSfastprocess, src) GLOB.pinpointer_list -= src + target = null return ..() /obj/item/pinpointer/attack_self(mob/living/user) @@ -57,7 +58,7 @@ return var/turf/here = get_turf(src) var/turf/there = get_turf(target) - if(here.z != there.z) + if(!here || !there || here.z != there.z) add_overlay("pinon[alert ? "alert" : ""]null") return if(get_dist_euclidian(here,there) <= minimum_range) @@ -143,3 +144,34 @@ target = null if(!target) //target can be set to null from above code, or elsewhere active = FALSE + +/obj/item/pinpointer/pair + name = "pair pinpointer" + desc = "A handheld tracking device that locks onto its other half of the matching pair." + var/other_pair + +/obj/item/pinpointer/pair/Destroy() + other_pair = null + . = ..() + +/obj/item/pinpointer/pair/scan_for_target() + target = other_pair + +/obj/item/pinpointer/pair/examine(mob/user) + . = ..() + if(!active || !target) + return + var/mob/mob_holder = get(target, /mob) + if(istype(mob_holder)) + to_chat(user, "Its pair is being held by [mob_holder].") + return + +/obj/item/storage/box/pinpointer_pairs + name = "pinpointer pair box" + +/obj/item/storage/box/pinpointer_pairs/PopulateContents() + var/obj/item/pinpointer/pair/A = new(src) + var/obj/item/pinpointer/pair/B = new(src) + + A.other_pair = B + B.other_pair = A diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm index 705dcad6c6..498990fcf3 100644 --- a/code/game/objects/items/plushes.dm +++ b/code/game/objects/items/plushes.dm @@ -31,7 +31,18 @@ var/normal_desc //--end of love :'(-- -/obj/item/toy/plush/Initialize() + var/snowflake_id //if we set from a config snowflake plushie. + var/can_random_spawn = TRUE //if this is FALSE, don't spawn this for random plushies. + +/obj/item/toy/plush/random_snowflake/Initialize(mapload, set_snowflake_id) + . = ..() + var/list/configlist = CONFIG_GET(keyed_list/snowflake_plushies) + var/id = safepick(configlist) + if(!id) + return + set_snowflake_from_config(id) + +/obj/item/toy/plush/Initialize(mapload, set_snowflake_id) . = ..() AddComponent(/datum/component/squeak, squeak_override) @@ -50,6 +61,9 @@ normal_desc = desc + if(set_snowflake_id) + set_snowflake_from_config(set_snowflake_id) + /obj/item/toy/plush/Destroy() QDEL_NULL(grenade) @@ -97,6 +111,44 @@ return ..() +/obj/item/toy/plush/proc/set_snowflake_from_config(id) + var/list/configlist = CONFIG_GET(keyed_list/snowflake_plushies) + var/list/jsonlist = configlist[id] + ASSERT(jsonlist) + jsonlist = json_decode(jsonlist) + if(jsonlist["inherit_from"]) + var/path = text2path(jsonlist["inherit_from"]) + if(!ispath(path, /obj/item/toy/plush)) + stack_trace("Invalid path for inheritance") + else + var/obj/item/toy/plush/P = new path //can't initial() lists + name = P.name + desc = P.desc + icon_state = P.icon_state + item_state = P.item_state + icon = P.icon + squeak_override = P.squeak_override + attack_verb = P.attack_verb + gender = P.gender + qdel(P) + if(jsonlist["name"]) + name = jsonlist["name"] + if(jsonlist["desc"]) + desc = jsonlist["desc"] + if(jsonlist["gender"]) + gender = jsonlist["gender"] + if(jsonlist["icon_state"]) + icon_state = jsonlist["icon_state"] + item_state = jsonlist["item_state"] + icon = 'config/plushies/sprites.dmi' + if(jsonlist["attack_verb"]) + attack_verb = jsonlist["attack_verb"] + if(jsonlist["squeak_override"]) + squeak_override = jsonlist["squeak_override"] + if(squeak_override) + var/datum/component/squeak/S = GetComponent(/datum/component/squeak) + S?.override_squeak_sounds = squeak_override + /obj/item/toy/plush/handle_atom_del(atom/A) if(A == grenade) grenade = null @@ -367,13 +419,22 @@ if(mood_message) desc += mood_message +GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths()) +/proc/valid_plushie_paths() + . = list() + for(var/i in subtypesof(/obj/item/toy/plush)) + var/obj/item/toy/plush/abstract = i + if(!initial(abstract.can_random_spawn)) + continue + . += i + /obj/item/toy/plush/random name = "Illegal plushie" desc = "Something fucked up" - var/blacklisted_plushes = list(/obj/item/toy/plush/carpplushie/dehy_carp, /obj/item/toy/plush/awakenedplushie, /obj/item/toy/plush/random) + can_random_spawn = FALSE /obj/item/toy/plush/random/Initialize() - var/newtype = pick(subtypesof(/obj/item/toy/plush) - typecacheof(blacklisted_plushes)) + var/newtype = prob(CONFIG_GET(number/snowflake_plushie_prob))? /obj/item/toy/plush/random_snowflake : pick(GLOB.valid_plushie_paths) new newtype(loc) return INITIALIZE_HINT_QDEL @@ -504,115 +565,12 @@ attack_verb = list("clawed", "hissed", "tail slapped") squeak_override = list('sound/weapons/slash.ogg' = 1) -/obj/item/toy/plush/lizardplushie/durgit - icon_state = "durgit" - item_state = "durgit" - squeak_override = list('modular_citadel/sound/voice/weh.ogg' = 1) //Durgit's the origin of the sound - -/obj/item/toy/plush/lizardplushie/rio - icon_state = "rio" - item_state = "rio" - -/obj/item/toy/plush/lizardplushie/dan - icon_state = "dan" - item_state = "dan" - -/obj/item/toy/plush/lizardplushie/urinsu - icon_state = "urinsu" - item_state = "urinsu" - -/obj/item/toy/plush/lizardplushie/arfrehn - icon_state = "arfrehn" - item_state = "arfrehn" - -/obj/item/toy/plush/lizardplushie/soars - icon_state = "soars" - item_state = "soars" - -/obj/item/toy/plush/lizardplushie/ghostie - icon_state = "ghostie" - item_state = "ghostie" - -/obj/item/toy/plush/lizardplushie/amber - icon_state = "amber" - item_state = "amber" - -/obj/item/toy/plush/lizardplushie/cyan - icon_state = "cyan" - item_state = "cyan" - -/obj/item/toy/plush/lizardplushie/meena - icon_state = "meena" - item_state = "meena" - -/obj/item/toy/plush/lizardplushie/stalks - icon_state = "stalks" - item_state = "stalks" - /obj/item/toy/plush/lizardplushie/kobold + name = "kobold plushie" + desc = "An adorable stuffed toy that resembles a kobold." icon_state = "kobold" item_state = "kobold" -/obj/item/toy/plush/lizardplushie/gorgi - icon_state = "gorgi" - item_state = "gorgi" - -/obj/item/toy/plush/lizardplushie/almaz - icon_state = "almaz" - item_state = "almaz" - squeak_override = list('modular_citadel/sound/voice/raptor_purr.ogg' = 1) - -/obj/item/toy/plush/lizardplushie/garou - icon_state = "garou" - item_state = "garou" - -/obj/item/toy/plush/lizardplushie/augments - icon_state = "augments" - item_state = "augments" - squeak_override = list('modular_citadel/sound/voice/weh.ogg' = 1) //I have no mouth and I must weh - attack_verb = list("hugged", "patted", "snugged", "booped") - -/obj/item/toy/plush/lizardplushie/xekov - icon_state = "xekov" - item_state = "xekov" - -/obj/item/toy/plush/lizardplushie/greg - icon_state = "greg" - item_state = "greg" - -/obj/item/toy/plush/lizardplushie/sin - icon_state = "sin" - item_state = "sin" - desc = "An adorable stuffed toy that resembles a lizardperson.. It faintly smells of sulfur." - -/obj/item/toy/plush/lizardplushie/ends - icon_state = "ends" - item_state = "ends" - -/obj/item/toy/plush/lizardplushie/lyssa - icon_state = "lyssa" - item_state = "lyssa" - -/obj/item/toy/plush/snakeplushie - name = "snake plushie" - desc = "An adorable stuffed toy that resembles a snake. Not to be mistaken for the real thing." - icon_state = "plushie_snake" - item_state = "plushie_snake" - attack_verb = list("bitten", "hissed", "tail slapped") - squeak_override = list('modular_citadel/sound/voice/hiss.ogg' = 1) - -/obj/item/toy/plush/snakeplushie/sasha - icon_state = "sasha" - item_state = "sasha" - -/obj/item/toy/plush/snakeplushie/shay - icon_state = "shay" - item_state = "shay" - -/obj/item/toy/plush/snakeplushie/vulken - icon_state = "vulken" - item_state = "vulken" - /obj/item/toy/plush/nukeplushie name = "operative plushie" desc = "A stuffed toy that resembles a syndicate nuclear operative. The tag claims operatives to be purely fictitious." @@ -630,29 +588,17 @@ squeak_override = list('sound/effects/blobattack.ogg' = 1) gender = FEMALE //given all the jokes and drawings, I'm not sure the xenobiologists would make a slimeboy -/obj/item/toy/plush/slimeplushie/annie - desc = "An adorable stuffed toy that resembles a slimey crewmember." - icon_state = "annie" - item_state = "annie" - -/obj/item/toy/plush/slimeplushie/paxton - desc = "An adorable stuffed toy that resembles a slimey crewmember." - icon_state = "paxton" - item_state = "paxton" - attack_verb = list("CQC'd", "jabroni'd", "powergamed", "robusted", "cakehatted") - gender = MALE - /obj/item/toy/plush/awakenedplushie name = "awakened plushie" desc = "An ancient plushie that has grown enlightened to the true nature of reality." icon_state = "plushie_awake" item_state = "plushie_awake" + can_random_spawn = FALSE /obj/item/toy/plush/awakenedplushie/ComponentInitialize() . = ..() AddComponent(/datum/component/edit_complainer) - /obj/item/toy/plush/beeplushie name = "bee plushie" desc = "A cute toy that resembles an even cuter bee." @@ -668,21 +614,7 @@ icon_state = "bumble" item_state = "bumble" squeak_override = list('modular_citadel/sound/voice/mothsqueak.ogg' = 1) - -/obj/item/toy/plush/mothplushie/nameko - icon_state = "nameko" - item_state = "nameko" - -/obj/item/toy/plush/mothplushie/suru - icon_state = "suru" - item_state = "suru" - -/obj/item/toy/plush/xeno - name = "xenohybrid plushie" - desc = "An adorable stuffed toy that resmembles a xenomorphic crewmember." - icon_state = "seras" - item_state = "seras" - squeak_override = list('sound/voice/hiss2.ogg' = 1) + can_random_spawn = FALSE /obj/item/toy/plush/lampplushie name = "lamp plushie" @@ -736,20 +668,6 @@ icon_state = "scrubpuppy" item_state = "scrubpuppy" -/obj/item/toy/plush/borgplushie/seeking - icon_state = "seeking" - item_state = "seeking" - -/obj/item/toy/plush/borgplushie/neeb - icon_state = "neeb" - item_state = "neeb" - -/obj/item/toy/plush/borgplushie/bhijn - desc = "An adorable stuffed toy of a IPC." - icon_state = "bhijn" - item_state = "bhijn" - attack_verb = list("closed", "reworked", "merged") - /obj/item/toy/plush/aiplush name = "AI plushie" desc = "A little stuffed toy AI core... it appears to be malfunctioning." @@ -758,246 +676,22 @@ attack_verb = list("hacked", "detonated", "overloaded") squeak_override = list('sound/machines/beep.ogg' = 9, 'sound/machines/buzz-two.ogg' = 1) -/obj/item/toy/plush/bird - name = "bird plushie" - desc = "An adorable stuffed plushie that resembles an avian." - icon_state = "sylas" - item_state = "sylas" - attack_verb = list("peeped", "beeped", "poofed") - squeak_override = list('modular_citadel/sound/voice/peep.ogg' = 1) - -/obj/item/toy/plush/bird/esela - icon_state = "esela" - item_state = "esela" - -/obj/item/toy/plush/bird/jahonna - icon_state = "jahonna" - item_state = "jahonna" - -/obj/item/toy/plush/bird/krick - icon_state = "krick" - item_state = "krick" - -/obj/item/toy/plush/bird/birddi - icon_state = "birddi" - item_state = "birddi" - -/obj/item/toy/plush/bird/jewel - icon_state = "jewel" - item_state = "jewel" - -/obj/item/toy/plush/sergal - name = "sergal plushie" - desc = "An adorable stuffed plushie that resembles a sagaru." - icon_state = "faux" - item_state = "faux" - squeak_override = list('modular_citadel/sound/voice/merp.ogg' = 1) - -/obj/item/toy/plush/sergal/gladwyn - icon_state = "gladwyn" - item_state = "gladwyn" - -/obj/item/toy/plush/sergal/jermaine - icon_state = "jermaine" - item_state = "jermaine" - -/obj/item/toy/plush/mammal - name = "mammal plushie" - desc = "An adorable stuffed toy resembling some sort of crew member." - icon_state = "dubious" - item_state = "dubious" - -/obj/item/toy/plush/mammal/gavin - icon_state = "gavin" - item_state = "gavin" - -/obj/item/toy/plush/mammal/blep - icon_state = "blep" - item_state = "blep" - -/obj/item/toy/plush/mammal/circe - desc = "A luxuriously soft toy that resembles a nine-tailed kitsune." - icon_state = "circe" - item_state = "circe" - attack_verb = list("medicated", "tailhugged", "kissed") - -/obj/item/toy/plush/mammal/robin - icon_state = "robin" - item_state = "robin" - -/obj/item/toy/plush/mammal/pavel - icon_state = "pavel" - item_state = "pavel" - -/obj/item/toy/plush/mammal/mason - icon_state = "mason" - item_state = "mason" - -/obj/item/toy/plush/mammal/oten - icon_state = "oten" - item_state = "oten" - -/obj/item/toy/plush/mammal/ray - icon_state = "ray" - item_state = "ray" - -/obj/item/toy/plush/mammal/redtail - icon_state = "redtail" - item_state = "redtail" - -/obj/item/toy/plush/mammal/dawud - icon_state = "dawud" - item_state = "dawud" - -/obj/item/toy/plush/mammal/edgar - icon_state = "edgar" - item_state = "edgar" - attack_verb = list("collared", "tricked", "headpatted") - -/obj/item/toy/plush/mammal/frank - icon_state = "frank" - item_state = "frank" - -/obj/item/toy/plush/mammal/poojawa - icon_state = "poojawa" - item_state = "poojawa" - -/obj/item/toy/plush/mammal/hazel - icon_state = "hazel" - item_state = "hazel" - -/obj/item/toy/plush/mammal/joker - icon_state = "joker" - item_state = "joker" - -/obj/item/toy/plush/mammal/gunther - icon_state = "gunther" - item_state = "gunther" - /obj/item/toy/plush/mammal/fox icon_state = "fox" item_state = "fox" -/obj/item/toy/plush/mammal/rae - desc = "An adorable stuffed toy of an artic fox." - icon_state = "rae" - item_state = "rae" +/obj/item/toy/plush/snakeplushie + name = "snake plushie" + desc = "An adorable stuffed toy that resembles a snake. Not to be mistaken for the real thing." + icon_state = "plushie_snake" + item_state = "plushie_snake" + attack_verb = list("bitten", "hissed", "tail slapped") + squeak_override = list('modular_citadel/sound/voice/hiss.ogg' = 1) -/obj/item/toy/plush/mammal/zed - desc = "A masked stuffed toy that resembles a fierce miner. He even comes with his own little crusher!" - icon_state = "zed" - item_state = "zed" - attack_verb = list("ENDED", "CRUSHED", "GNOMED") - -/obj/item/toy/plush/mammal/justin - icon_state = "justin" - item_state = "justin" - attack_verb = list("buttslapped", "fixed") - -/obj/item/toy/plush/mammal/reece - icon_state = "reece" - item_state = "reece" - attack_verb = list("healed", "cured", "demoted") - -/obj/item/toy/plush/mammal/redwood - desc = "An adorable stuffed toy resembling a Nanotrasen Captain. That just happens to be a bunny." - icon_state = "redwood" - item_state = "redwood" - attack_verb = list("ordered", "bapped", "reprimanded") - -/obj/item/toy/plush/mammal/marisol - desc = "An adorable stuffed toy resembling a demi-wolf security officer." - icon_state = "marisol" - item_state = "marisol" - attack_verb = list("arrested", "harmbattoned", "lasered") - -/obj/item/toy/plush/mammal/minty - desc = "An adorable stuffed toy resembling some sort of crew member. It smells like mint.." - icon_state = "minty" - item_state = "minty" - attack_verb = list("freshened", "brushed") - -/obj/item/toy/plush/mammal/dog - desc = "An adorable stuffed toy that resembles a canine." - icon_state = "katlin" - item_state = "katlin" - attack_verb = list("barked", "boofed", "borked") - squeak_override = list( - 'modular_citadel/sound/voice/bark1.ogg' = 1, - 'modular_citadel/sound/voice/bark2.ogg' = 1 - ) - -/obj/item/toy/plush/mammal/dog/frost - icon_state = "frost" - item_state = "frost" - -/obj/item/toy/plush/mammal/dog/atticus - icon_state = "atticus" - item_state = "atticus" - -/obj/item/toy/plush/mammal/dog/fletch - icon_state = "fletch" - item_state = "fletch" - -/obj/item/toy/plush/mammal/dog/vincent - icon_state = "vincent" - item_state = "vincent" - -/obj/item/toy/plush/mammal/dog/zigfried - desc = "An adorable stuffed toy of a very good boy." - icon_state = "zigfried" - item_state = "zigfried" - -/obj/item/toy/plush/mammal/dog/nikolai - icon_state = "nikolai" - item_state = "nikolai" - -/obj/item/toy/plush/mammal/dog/flynn - icon_state = "flynn" - item_state = "flynn" - -/obj/item/toy/plush/mammal/dog/fritz - icon_state = "fritz" - item_state = "fritz" - attack_verb = list("barked", "boofed", "shotgun'd") - obj_flags = UNIQUE_RENAME - unique_reskin = list("Goodboye" = "fritz", "Badboye" = "fritz_bad") - -/obj/item/toy/plush/mammal/dog/jesse - desc = "An adorable wolf toy that resembles a cream-colored wolf. He has a little pride flag!" - icon_state = "jesse" - item_state = "jesse" - attack_verb = list("greeted", "merc'd", "howdy'd") - -/obj/item/toy/plush/catgirl - name = "feline plushie" - desc = "An adorable stuffed toy that resembles a feline." - icon_state = "bailey" - item_state = "bailey" - attack_verb = list("headbutt", "scritched", "bit") - squeak_override = list('modular_citadel/sound/voice/nya.ogg' = 1) - -/obj/item/toy/plush/catgirl/mikeel - desc = "An adorable stuffed toy of some tauric cat person." - icon_state = "mikeel" - item_state = "mikeel" - -/obj/item/toy/plush/catgirl/skylar - desc = "An adorable stuffed toy that resembles a degenerate." - icon_state = "skylar2" - item_state = "skylar2" - attack_verb = list("powergamed", "merged", "tabled") - squeak_override = list('sound/effects/meow1.ogg' = 1) - -/obj/item/toy/plush/catgirl/drew - icon_state = "drew" - item_state = "drew" - -/obj/item/toy/plush/catgirl/trilby - desc = "A masked stuffed toy that resembles a feline scientist." - icon_state = "trilby" - item_state = "trilby" - attack_verb = list("PR'd", "coded", "remembered") +/obj/item/toy/plush/mammal + name = "mammal plushie" + desc = "An adorable stuffed toy resembling some sort of crew member." + can_random_spawn = FALSE /obj/item/toy/plush/catgirl/fermis name = "medcat plushie" @@ -1007,20 +701,36 @@ attack_verb = list("cuddled", "petpatted", "wigglepurred") squeak_override = list('modular_citadel/sound/voice/merowr.ogg' = 1) -/obj/item/toy/plush/catgirl/mariaf - desc = "An adorable stuffed toy that resembles a very tall cat girl." - icon_state = "mariaf" - item_state = "mariaf" - attack_verb = list("hugged", "stabbed", "licked") +/obj/item/toy/plush/xeno + name = "xenohybrid plushie" + desc = "An adorable stuffed toy that resmembles a xenomorphic crewmember." + squeak_override = list('sound/voice/hiss2.ogg' = 1) + can_random_spawn = FALSE -/obj/item/toy/plush/catgirl/maya - desc = "An adorable stuffed toy that resembles an angry cat girl. She has her own tiny nuke disk!" - icon_state = "maya" - item_state = "maya" - attack_verb = list("nuked", "arrested", "harmbatonned") +/obj/item/toy/plush/bird + name = "bird plushie" + desc = "An adorable stuffed plushie that resembles an avian." + attack_verb = list("peeped", "beeped", "poofed") + squeak_override = list('modular_citadel/sound/voice/peep.ogg' = 1) + can_random_spawn = FALSE -/obj/item/toy/plush/catgirl/marisa - desc = "An adorable stuffed toy that resembles a crew member, or maybe a witch. Having it makes you feel you can win." - icon_state = "marisa" - item_state = "marisa" - attack_verb = list("blasted", "sparked", "dazzled") +/obj/item/toy/plush/sergal + name = "sergal plushie" + desc = "An adorable stuffed plushie that resembles a sagaru." + squeak_override = list('modular_citadel/sound/voice/merp.ogg' = 1) + can_random_spawn = FALSE + +/obj/item/toy/plush/mammal/dog + desc = "An adorable stuffed toy that resembles a canine." + attack_verb = list("barked", "boofed", "borked") + squeak_override = list( + 'modular_citadel/sound/voice/bark1.ogg' = 1, + 'modular_citadel/sound/voice/bark2.ogg' = 1 + ) + +/obj/item/toy/plush/catgirl + name = "feline plushie" + desc = "An adorable stuffed toy that resembles a feline." + attack_verb = list("headbutt", "scritched", "bit") + squeak_override = list('modular_citadel/sound/voice/nya.ogg' = 1) + can_random_spawn = FALSE diff --git a/code/game/objects/items/religion.dm b/code/game/objects/items/religion.dm index 5fd9600a97..ac490b0122 100644 --- a/code/game/objects/items/religion.dm +++ b/code/game/objects/items/religion.dm @@ -44,9 +44,9 @@ if(H.stat == DEAD || H == user) continue if(H.mind && (has_job_loyalties || has_role_loyalties)) - if(has_job_loyalties && H.mind.assigned_role in job_loyalties) + if(has_job_loyalties && (H.mind.assigned_role in job_loyalties)) inspired += H - else if(has_role_loyalties && H.mind.special_role in role_loyalties) + else if(has_role_loyalties && (H.mind.special_role in role_loyalties)) inspired += H else if(check_inspiration(H)) inspired += H diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 62f36c60c0..09c2d442e8 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -203,7 +203,7 @@ var/obj/item/gun/energy/kinetic_accelerator/cyborg/KA = new (R.module) R.module.basic_modules += KA R.module.add_module(KA, FALSE, TRUE) - + /obj/item/borg/upgrade/advcutter name = "mining cyborg advanced plasma cutter" @@ -335,7 +335,6 @@ var/msg_cooldown = 0 var/on = FALSE var/powercost = 10 - var/mob/living/silicon/robot/cyborg var/datum/action/toggle_action /obj/item/borg/upgrade/selfrepair/action(mob/living/silicon/robot/R, user = usr) @@ -346,7 +345,6 @@ to_chat(user, "This unit is already equipped with a self-repair module.") return FALSE - cyborg = R icon_state = "selfrepair_off" toggle_action = new /datum/action/item_action/toggle(src) toggle_action.Grant(R) @@ -354,34 +352,20 @@ /obj/item/borg/upgrade/selfrepair/deactivate(mob/living/silicon/robot/R, user = usr) . = ..() if (.) - toggle_action.Remove(cyborg) + toggle_action.Remove(R) QDEL_NULL(toggle_action) - cyborg = null - deactivate_sr() - -/obj/item/borg/upgrade/selfrepair/dropped() - . = ..() - addtimer(CALLBACK(src, .proc/check_dropped), 1) - -/obj/item/borg/upgrade/selfrepair/proc/check_dropped() - if(loc != cyborg) - toggle_action.Remove(cyborg) - QDEL_NULL(toggle_action) - cyborg = null deactivate_sr() /obj/item/borg/upgrade/selfrepair/ui_action_click() - on = !on if(on) - to_chat(cyborg, "You activate the self-repair module.") - START_PROCESSING(SSobj, src) + to_chat(toggle_action.owner, "You deactivate the self-repair module.") + deactivate_sr() else - to_chat(cyborg, "You deactivate the self-repair module.") - STOP_PROCESSING(SSobj, src) - update_icon() + to_chat(toggle_action.owner, "You activate the self-repair module.") + activate_sr() /obj/item/borg/upgrade/selfrepair/update_icon() - if(cyborg) + if(toggle_action) icon_state = "selfrepair_[on ? "on" : "off"]" for(var/X in actions) var/datum/action/A = X @@ -389,6 +373,11 @@ else icon_state = "cyborg_upgrade5" +/obj/item/borg/upgrade/selfrepair/proc/activate_sr() + START_PROCESSING(SSobj, src) + on = TRUE + update_icon() + /obj/item/borg/upgrade/selfrepair/proc/deactivate_sr() STOP_PROCESSING(SSobj, src) on = FALSE @@ -399,7 +388,9 @@ repair_tick = 1 return - if(cyborg && (cyborg.stat != DEAD) && on) + var/mob/living/silicon/robot/cyborg = toggle_action.owner + + if(istype(cyborg) && (cyborg.stat != DEAD) && on) if(!cyborg.cell) to_chat(cyborg, "Self-repair module deactivated. Please, insert the power cell.") deactivate_sr() diff --git a/code/game/objects/items/shields.dm b/code/game/objects/items/shields.dm index 2e8005e631..4f5f264c0e 100644 --- a/code/game/objects/items/shields.dm +++ b/code/game/objects/items/shields.dm @@ -20,7 +20,7 @@ throw_speed = 2 throw_range = 3 w_class = WEIGHT_CLASS_BULKY - materials = list(MAT_GLASS=7500, MAT_METAL=1000) + custom_materials = list(/datum/material/glass=7500, /datum/material/iron=1000) attack_verb = list("shoved", "bashed") var/cooldown = 0 //shield bash cooldown. based on world.time transparent = TRUE @@ -106,7 +106,7 @@ item_state = "buckler" lefthand_file = 'icons/mob/inhands/equipment/shields_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/shields_righthand.dmi' - materials = list() + custom_materials = null resistance_flags = FLAMMABLE block_chance = 30 transparent = FALSE @@ -217,7 +217,7 @@ icon = 'icons/obj/items_and_weapons.dmi' item_state = "metal" icon_state = "makeshift_shield" - materials = list(MAT_METAL = 18000) + custom_materials = list(/datum/material/iron = 18000) slot_flags = null block_chance = 35 force = 10 @@ -236,3 +236,4 @@ throwforce = 15 //Massive pice of metal w_class = WEIGHT_CLASS_HUGE item_flags = SLOWS_WHILE_IN_HAND + transparent = FALSE diff --git a/code/game/objects/items/stacks/bscrystal.dm b/code/game/objects/items/stacks/bscrystal.dm index e2357e8f6d..f864df5a21 100644 --- a/code/game/objects/items/stacks/bscrystal.dm +++ b/code/game/objects/items/stacks/bscrystal.dm @@ -6,7 +6,7 @@ icon_state = "bluespace_crystal" singular_name = "bluespace crystal" w_class = WEIGHT_CLASS_TINY - materials = list(MAT_BLUESPACE=MINERAL_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/bluespace=MINERAL_MATERIAL_AMOUNT) points = 50 var/blink_range = 8 // The teleport range when crushed/thrown at someone. refined_type = /obj/item/stack/sheet/bluespace_crystal @@ -49,7 +49,7 @@ /obj/item/stack/ore/bluespace_crystal/artificial name = "artificial bluespace crystal" desc = "An artificially made bluespace crystal, it looks delicate." - materials = list(MAT_BLUESPACE=MINERAL_MATERIAL_AMOUNT*0.5) + custom_materials = list(/datum/material/bluespace=MINERAL_MATERIAL_AMOUNT*0.5) blink_range = 4 // Not as good as the organic stuff! points = 0 //nice try refined_type = null @@ -63,7 +63,7 @@ item_state = "sheet-polycrystal" singular_name = "bluespace polycrystal" desc = "A stable polycrystal, made of fused-together bluespace crystals. You could probably break one off." - materials = list(MAT_BLUESPACE=MINERAL_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/bluespace=MINERAL_MATERIAL_AMOUNT) attack_verb = list("bluespace polybashed", "bluespace polybattered", "bluespace polybludgeoned", "bluespace polythrashed", "bluespace polysmashed") novariants = TRUE grind_results = list(/datum/reagent/bluespace = 20) diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index baf099fdb5..205ce57251 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -126,7 +126,7 @@ heal_brute = 0 /obj/item/stack/medical/gauze/cyborg - materials = list() + custom_materials = null is_cyborg = 1 cost = 250 diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm index 537873624c..fb5adea3b0 100644 --- a/code/game/objects/items/stacks/rods.dm +++ b/code/game/objects/items/stacks/rods.dm @@ -16,7 +16,8 @@ GLOBAL_LIST_INIT(rod_recipes, list ( \ throwforce = 10 throw_speed = 3 throw_range = 7 - materials = list(MAT_METAL=1000) + custom_materials = list(/datum/material/iron=1000) + mats_per_stack = 1000 max_amount = 50 attack_verb = list("hit", "bludgeoned", "whacked") hitsound = 'sound/weapons/grenadelaunch.ogg' @@ -25,13 +26,15 @@ GLOBAL_LIST_INIT(rod_recipes, list ( \ /obj/item/stack/rods/suicide_act(mob/living/carbon/user) user.visible_message("[user] begins to stuff \the [src] down [user.p_their()] throat! It looks like [user.p_theyre()] trying to commit suicide!")//it looks like theyre ur mum return BRUTELOSS - + /obj/item/stack/rods/Initialize(mapload, new_amount, merge = TRUE) . = ..() - - recipes = GLOB.rod_recipes update_icon() +/obj/item/stack/rods/get_main_recipes() + . = ..() + . += GLOB.rod_recipes + /obj/item/stack/rods/update_icon() var/amount = get_amount() if((amount <= 5) && (amount > 0)) @@ -70,7 +73,7 @@ GLOBAL_LIST_INIT(rod_recipes, list ( \ return ..() /obj/item/stack/rods/cyborg - materials = list() + custom_materials = null is_cyborg = 1 cost = 250 diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index 21de34faa1..75db89f616 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -1,7 +1,11 @@ /* Glass stack types * Contains: * Glass sheets + * Plasma glass * Reinforced glass sheets + * Reinforced plasma glass + * Titanium glass + * Plastitanium glass * Glass shards - TODO: Move this into code/game/object/item/weapons */ @@ -27,11 +31,12 @@ GLOBAL_LIST_INIT(glass_recipes, list ( \ singular_name = "glass sheet" icon_state = "sheet-glass" item_state = "sheet-glass" - materials = list(MAT_GLASS=MINERAL_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/glass=MINERAL_MATERIAL_AMOUNT) armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 100) resistance_flags = ACID_PROOF merge_type = /obj/item/stack/sheet/glass grind_results = list(/datum/reagent/silicon = 20) + material_type = /datum/material/glass point_value = 1 tableVariant = /obj/structure/table/glass shard_type = /obj/item/shard @@ -41,7 +46,7 @@ GLOBAL_LIST_INIT(glass_recipes, list ( \ return BRUTELOSS /obj/item/stack/sheet/glass/cyborg - materials = list() + custom_materials = null is_cyborg = 1 cost = 500 @@ -51,9 +56,9 @@ GLOBAL_LIST_INIT(glass_recipes, list ( \ /obj/item/stack/sheet/glass/five amount = 5 -/obj/item/stack/sheet/glass/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.glass_recipes - return ..() +/obj/item/stack/sheet/glass/get_main_recipes() + . = ..() + . += GLOB.glass_recipes /obj/item/stack/sheet/glass/attackby(obj/item/W, mob/user, params) add_fingerprint(user) @@ -96,20 +101,21 @@ GLOBAL_LIST_INIT(pglass_recipes, list ( \ singular_name = "plasma glass sheet" icon_state = "sheet-pglass" item_state = "sheet-pglass" - materials = list(MAT_PLASMA=MINERAL_MATERIAL_AMOUNT * 0.5, MAT_GLASS=MINERAL_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/plasma=MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass=MINERAL_MATERIAL_AMOUNT) armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 75, "acid" = 100) resistance_flags = ACID_PROOF merge_type = /obj/item/stack/sheet/plasmaglass grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/toxin/plasma = 10) tableVariant = /obj/structure/table/plasmaglass + material_flags = MATERIAL_NO_EFFECTS shard_type = /obj/item/shard/plasma /obj/item/stack/sheet/plasmaglass/fifty amount = 50 -/obj/item/stack/sheet/plasmaglass/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.pglass_recipes - return ..() +/obj/item/stack/sheet/plasmaglass/get_main_recipes() + . = ..() + . += GLOB.pglass_recipes /obj/item/stack/sheet/plasmaglass/attackby(obj/item/W, mob/user, params) add_fingerprint(user) @@ -151,7 +157,7 @@ GLOBAL_LIST_INIT(reinforced_glass_recipes, list ( \ singular_name = "reinforced glass sheet" icon_state = "sheet-rglass" item_state = "sheet-rglass" - materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT * 0.5, MAT_GLASS=MINERAL_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/iron=MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass=MINERAL_MATERIAL_AMOUNT) armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 100) resistance_flags = ACID_PROOF merge_type = /obj/item/stack/sheet/rglass @@ -167,7 +173,7 @@ GLOBAL_LIST_INIT(reinforced_glass_recipes, list ( \ S.obj_integrity *= 2 /obj/item/stack/sheet/rglass/cyborg - materials = list() + custom_materials = null var/datum/robot_energy_storage/glasource var/metcost = 250 var/glacost = 500 @@ -183,9 +189,9 @@ GLOBAL_LIST_INIT(reinforced_glass_recipes, list ( \ source.add_charge(amount * metcost) glasource.add_charge(amount * glacost) -/obj/item/stack/sheet/rglass/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.reinforced_glass_recipes - return ..() +/obj/item/stack/sheet/rglass/get_main_recipes() + . = ..() + . += GLOB.reinforced_glass_recipes GLOBAL_LIST_INIT(prglass_recipes, list ( \ new/datum/stack_recipe("directional reinforced window", /obj/structure/window/plasma/reinforced/unanchored, time = 0, on_floor = TRUE, window_checks = TRUE), \ @@ -198,22 +204,23 @@ GLOBAL_LIST_INIT(prglass_recipes, list ( \ singular_name = "reinforced plasma glass sheet" icon_state = "sheet-prglass" item_state = "sheet-prglass" - materials = list(MAT_PLASMA=MINERAL_MATERIAL_AMOUNT * 0.5, MAT_GLASS=MINERAL_MATERIAL_AMOUNT, MAT_METAL=MINERAL_MATERIAL_AMOUNT * 0.5,) + custom_materials = list(/datum/material/plasma=MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass=MINERAL_MATERIAL_AMOUNT, /datum/material/iron=MINERAL_MATERIAL_AMOUNT * 0.5,) armor = list("melee" = 20, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 100) resistance_flags = ACID_PROOF + material_flags = MATERIAL_NO_EFFECTS merge_type = /obj/item/stack/sheet/plasmarglass grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/toxin/plasma = 10, /datum/reagent/iron = 10) point_value = 23 shard_type = /obj/item/shard/plasma +/obj/item/stack/sheet/plasmarglass/get_main_recipes() + . = ..() + . += GLOB.prglass_recipes + /obj/item/stack/sheet/plasmarglass/on_solar_construction(obj/machinery/power/solar/S) S.obj_integrity *= 2.2 S.efficiency *= 1.2 -/obj/item/stack/sheet/plasmarglass/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.prglass_recipes - return ..() - GLOBAL_LIST_INIT(titaniumglass_recipes, list( new/datum/stack_recipe("shuttle window", /obj/structure/window/shuttle/unanchored, 2, time = 0, on_floor = TRUE, window_checks = TRUE) )) @@ -224,20 +231,20 @@ GLOBAL_LIST_INIT(titaniumglass_recipes, list( singular_name = "titanium glass sheet" icon_state = "sheet-titaniumglass" item_state = "sheet-titaniumglass" - materials = list(MAT_TITANIUM=MINERAL_MATERIAL_AMOUNT * 0.5, MAT_GLASS=MINERAL_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/titanium=MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass=MINERAL_MATERIAL_AMOUNT) armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 100) resistance_flags = ACID_PROOF merge_type = /obj/item/stack/sheet/titaniumglass shard_type = /obj/item/shard +/obj/item/stack/sheet/titaniumglass/get_main_recipes() + . = ..() + . += GLOB.titaniumglass_recipes + /obj/item/stack/sheet/titaniumglass/on_solar_construction(obj/machinery/power/solar/S) S.obj_integrity *= 2.5 S.efficiency *= 1.5 -/obj/item/stack/sheet/titaniumglass/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.titaniumglass_recipes - return ..() - GLOBAL_LIST_INIT(plastitaniumglass_recipes, list( new/datum/stack_recipe("plastitanium window", /obj/structure/window/plastitanium/unanchored, 2, time = 0, on_floor = TRUE, window_checks = TRUE) )) @@ -248,15 +255,19 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list( singular_name = "plastitanium glass sheet" icon_state = "sheet-plastitaniumglass" item_state = "sheet-plastitaniumglass" - materials = list(MAT_TITANIUM=MINERAL_MATERIAL_AMOUNT * 0.5, MAT_PLASMA=MINERAL_MATERIAL_AMOUNT * 0.5, MAT_GLASS=MINERAL_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/titanium=MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/plasma=MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass=MINERAL_MATERIAL_AMOUNT) armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 100) + material_flags = MATERIAL_NO_EFFECTS resistance_flags = ACID_PROOF merge_type = /obj/item/stack/sheet/plastitaniumglass shard_type = /obj/item/shard -/obj/item/stack/sheet/plastitaniumglass/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.plastitaniumglass_recipes - return ..() +/obj/item/stack/sheet/plastitaniumglass/fifty + amount = 50 + +/obj/item/stack/sheet/plastitaniumglass/get_main_recipes() + . = ..() + . += GLOB.plastitaniumglass_recipes /obj/item/stack/sheet/titaniumglass/on_solar_construction(obj/machinery/power/solar/S) S.obj_integrity *= 2 @@ -273,7 +284,7 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list( item_state = "shard-glass" lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi' - materials = list(MAT_GLASS=MINERAL_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/glass=MINERAL_MATERIAL_AMOUNT) attack_verb = list("stabbed", "slashed", "sliced", "cut") hitsound = 'sound/weapons/bladeslice.ogg' resistance_flags = ACID_PROOF @@ -372,5 +383,9 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list( force = 6 throwforce = 11 icon_state = "plasmalarge" - materials = list(MAT_PLASMA=MINERAL_MATERIAL_AMOUNT * 0.5, MAT_GLASS=MINERAL_MATERIAL_AMOUNT) - icon_prefix = "plasma" \ No newline at end of file + custom_materials = list(/datum/material/plasma=MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass=MINERAL_MATERIAL_AMOUNT) + icon_prefix = "plasma" + +/obj/item/shard/plasma/alien + name = "alien shard" + desc = "A nasty looking shard of advanced alloy glass." \ No newline at end of file diff --git a/code/game/objects/items/stacks/sheets/leather.dm b/code/game/objects/items/stacks/sheets/leather.dm index 0b85bf351e..2ffa38ea3c 100644 --- a/code/game/objects/items/stacks/sheets/leather.dm +++ b/code/game/objects/items/stacks/sheets/leather.dm @@ -15,9 +15,9 @@ GLOBAL_LIST_INIT(human_recipes, list( \ new/datum/stack_recipe("bloated human costume", /obj/item/clothing/suit/hooded/bloated_human, 5), \ )) -/obj/item/stack/sheet/animalhide/human/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.human_recipes - return ..() +/obj/item/stack/sheet/animalhide/human/get_main_recipes() + . = ..() + . += GLOB.human_recipes /obj/item/stack/sheet/animalhide/generic name = "skin" @@ -46,17 +46,17 @@ GLOBAL_LIST_INIT(gondola_recipes, list ( \ icon_state = "sheet-gondola" item_state = "sheet-gondola" -/obj/item/stack/sheet/animalhide/gondola/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.gondola_recipes - return ..() +/obj/item/stack/sheet/animalhide/gondola/get_main_recipes() + . = ..() + . += GLOB.gondola_recipes GLOBAL_LIST_INIT(corgi_recipes, list ( \ new/datum/stack_recipe("corgi costume", /obj/item/clothing/suit/hooded/ian_costume, 3), \ )) -/obj/item/stack/sheet/animalhide/corgi/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.corgi_recipes - return ..() +/obj/item/stack/sheet/animalhide/corgi/get_main_recipes() + . = ..() + . += GLOB.corgi_recipes /obj/item/stack/sheet/animalhide/cat name = "cat hide" @@ -77,9 +77,9 @@ GLOBAL_LIST_INIT(monkey_recipes, list ( \ new/datum/stack_recipe("monkey suit", /obj/item/clothing/suit/monkeysuit, 2), \ )) -/obj/item/stack/sheet/animalhide/monkey/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.monkey_recipes - return ..() +/obj/item/stack/sheet/animalhide/monkey/get_main_recipes() + . = ..() + . += GLOB.monkey_recipes /obj/item/stack/sheet/animalhide/lizard name = "lizard skin" @@ -100,9 +100,9 @@ GLOBAL_LIST_INIT(xeno_recipes, list ( \ new/datum/stack_recipe("alien suit", /obj/item/clothing/suit/xenos, 2), \ )) -/obj/item/stack/sheet/animalhide/xeno/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.xeno_recipes - return ..() +/obj/item/stack/sheet/animalhide/xeno/get_main_recipes() + . = ..() + . += GLOB.xeno_recipes //don't see anywhere else to put these, maybe together they could be used to make the xenos suit? /obj/item/stack/sheet/xenochitin @@ -163,9 +163,9 @@ GLOBAL_LIST_INIT(leather_recipes, list ( \ new/datum/stack_recipe("leather overcoat", /obj/item/clothing/suit/jacket/leather/overcoat, 10), \ )) -/obj/item/stack/sheet/leather/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.leather_recipes - return ..() +/obj/item/stack/sheet/leather/get_main_recipes() + . = ..() + . += GLOB.leather_recipes /* * Sinew @@ -183,9 +183,9 @@ GLOBAL_LIST_INIT(sinew_recipes, list ( \ new/datum/stack_recipe("sinew restraints", /obj/item/restraints/handcuffs/sinew, 1), \ )) -/obj/item/stack/sheet/sinew/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.sinew_recipes - return ..() +/obj/item/stack/sheet/sinew/get_main_recipes() + . = ..() + . += GLOB.sinew_recipes /* * Plates diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index 53b78b2ecf..4a7156db72 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -19,11 +19,6 @@ Mineral Sheets - Coal */ -/obj/item/stack/sheet/mineral/Initialize(mapload) - pixel_x = rand(-4, 4) - pixel_y = rand(-4, 4) - . = ..() - /* * Sandstone */ @@ -44,13 +39,13 @@ GLOBAL_LIST_INIT(sandstone_recipes, list ( \ item_state = "sheet-sandstone" throw_speed = 3 throw_range = 5 - materials = list(MAT_GLASS=MINERAL_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/glass=MINERAL_MATERIAL_AMOUNT) sheettype = "sandstone" merge_type = /obj/item/stack/sheet/mineral/sandstone -/obj/item/stack/sheet/mineral/sandstone/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.sandstone_recipes +/obj/item/stack/sheet/mineral/sandstone/get_main_recipes() . = ..() + . += GLOB.sandstone_recipes /obj/item/stack/sheet/mineral/sandstone/thirty amount = 30 @@ -74,9 +69,9 @@ GLOBAL_LIST_INIT(sandbag_recipes, list ( \ new/datum/stack_recipe("sandbags", /obj/structure/barricade/sandbags, 1, time = 25, one_per_turf = 1, on_floor = 1), \ )) -/obj/item/stack/sheet/mineral/sandbags/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.sandbag_recipes +/obj/item/stack/sheet/mineral/sandbags/get_main_recipes() . = ..() + . += GLOB.sandbag_recipes /obj/item/emptysandbag name = "empty sandbag" @@ -106,11 +101,12 @@ GLOBAL_LIST_INIT(sandbag_recipes, list ( \ item_state = "sheet-diamond" singular_name = "diamond" sheettype = "diamond" - materials = list(MAT_DIAMOND=MINERAL_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/diamond=MINERAL_MATERIAL_AMOUNT) novariants = TRUE grind_results = list(/datum/reagent/carbon = 20) point_value = 25 merge_type = /obj/item/stack/sheet/mineral/diamond + material_type = /datum/material/diamond GLOBAL_LIST_INIT(diamond_recipes, list ( \ new/datum/stack_recipe("diamond door", /obj/structure/mineral_door/transparent/diamond, 10, one_per_turf = 1, on_floor = 1), \ @@ -120,9 +116,9 @@ GLOBAL_LIST_INIT(diamond_recipes, list ( \ new/datum/stack_recipe("AI Core Statue", /obj/structure/statue/diamond/ai2, 5, one_per_turf = 1, on_floor = 1), \ )) -/obj/item/stack/sheet/mineral/diamond/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.diamond_recipes +/obj/item/stack/sheet/mineral/diamond/get_main_recipes() . = ..() + . += GLOB.diamond_recipes /* * Uranium @@ -133,11 +129,12 @@ GLOBAL_LIST_INIT(diamond_recipes, list ( \ item_state = "sheet-uranium" singular_name = "uranium sheet" sheettype = "uranium" - materials = list(MAT_URANIUM=MINERAL_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/uranium=MINERAL_MATERIAL_AMOUNT) novariants = TRUE grind_results = list(/datum/reagent/uranium = 20) point_value = 20 merge_type = /obj/item/stack/sheet/mineral/uranium + material_type = /datum/material/uranium GLOBAL_LIST_INIT(uranium_recipes, list ( \ new/datum/stack_recipe("uranium door", /obj/structure/mineral_door/uranium, 10, one_per_turf = 1, on_floor = 1), \ @@ -146,9 +143,9 @@ GLOBAL_LIST_INIT(uranium_recipes, list ( \ new/datum/stack_recipe("Engineer Statue", /obj/structure/statue/uranium/eng, 5, one_per_turf = 1, on_floor = 1), \ )) -/obj/item/stack/sheet/mineral/uranium/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.uranium_recipes +/obj/item/stack/sheet/mineral/uranium/get_main_recipes() . = ..() + . += GLOB.uranium_recipes /* * Plasma @@ -161,10 +158,11 @@ GLOBAL_LIST_INIT(uranium_recipes, list ( \ sheettype = "plasma" resistance_flags = FLAMMABLE max_integrity = 100 - materials = list(MAT_PLASMA=MINERAL_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/plasma=MINERAL_MATERIAL_AMOUNT) grind_results = list(/datum/reagent/toxin/plasma = 20) point_value = 20 merge_type = /obj/item/stack/sheet/mineral/plasma + material_type = /datum/material/plasma /obj/item/stack/sheet/mineral/plasma/suicide_act(mob/living/carbon/user) user.visible_message("[user] begins licking \the [src]! It looks like [user.p_theyre()] trying to commit suicide!") @@ -176,9 +174,9 @@ GLOBAL_LIST_INIT(plasma_recipes, list ( \ new/datum/stack_recipe("Scientist Statue", /obj/structure/statue/plasma/scientist, 5, one_per_turf = 1, on_floor = 1), \ )) -/obj/item/stack/sheet/mineral/plasma/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.plasma_recipes +/obj/item/stack/sheet/mineral/plasma/get_main_recipes() . = ..() + . += GLOB.plasma_recipes /obj/item/stack/sheet/mineral/plasma/attackby(obj/item/W as obj, mob/user as mob, params) if(W.get_temperature() > 300)//If the temperature of the object is over 300, then ignite @@ -202,10 +200,11 @@ GLOBAL_LIST_INIT(plasma_recipes, list ( \ item_state = "sheet-gold" singular_name = "gold bar" sheettype = "gold" - materials = list(MAT_GOLD=MINERAL_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/gold=MINERAL_MATERIAL_AMOUNT) grind_results = list(/datum/reagent/gold = 20) point_value = 20 merge_type = /obj/item/stack/sheet/mineral/gold + material_type = /datum/material/gold GLOBAL_LIST_INIT(gold_recipes, list ( \ new/datum/stack_recipe("golden door", /obj/structure/mineral_door/gold, 10, one_per_turf = 1, on_floor = 1), \ @@ -218,9 +217,9 @@ GLOBAL_LIST_INIT(gold_recipes, list ( \ new/datum/stack_recipe("CMO Statue", /obj/structure/statue/gold/cmo, 5, one_per_turf = 1, on_floor = 1), \ )) -/obj/item/stack/sheet/mineral/gold/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.gold_recipes +/obj/item/stack/sheet/mineral/gold/get_main_recipes() . = ..() + . += GLOB.gold_recipes /* * Silver @@ -231,10 +230,11 @@ GLOBAL_LIST_INIT(gold_recipes, list ( \ item_state = "sheet-silver" singular_name = "silver bar" sheettype = "silver" - materials = list(MAT_SILVER=MINERAL_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/silver=MINERAL_MATERIAL_AMOUNT) grind_results = list(/datum/reagent/silver = 20) point_value = 20 merge_type = /obj/item/stack/sheet/mineral/silver + material_type = /datum/material/silver tableVariant = /obj/structure/table/optable GLOBAL_LIST_INIT(silver_recipes, list ( \ @@ -247,9 +247,9 @@ GLOBAL_LIST_INIT(silver_recipes, list ( \ new/datum/stack_recipe("Med Borg Statue", /obj/structure/statue/silver/medborg, 5, one_per_turf = 1, on_floor = 1), \ )) -/obj/item/stack/sheet/mineral/silver/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.silver_recipes +/obj/item/stack/sheet/mineral/silver/get_main_recipes() . = ..() + . += GLOB.silver_recipes /* * Clown @@ -260,20 +260,21 @@ GLOBAL_LIST_INIT(silver_recipes, list ( \ item_state = "sheet-bananium" singular_name = "bananium sheet" sheettype = "bananium" - materials = list(MAT_BANANIUM=MINERAL_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/bananium=MINERAL_MATERIAL_AMOUNT) novariants = TRUE grind_results = list(/datum/reagent/consumable/banana = 20) point_value = 50 merge_type = /obj/item/stack/sheet/mineral/bananium + material_type = /datum/material/bananium GLOBAL_LIST_INIT(bananium_recipes, list ( \ new/datum/stack_recipe("bananium tile", /obj/item/stack/tile/mineral/bananium, 1, 4, 20), \ new/datum/stack_recipe("Clown Statue", /obj/structure/statue/bananium/clown, 5, one_per_turf = 1, on_floor = 1), \ )) -/obj/item/stack/sheet/mineral/bananium/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.bananium_recipes +/obj/item/stack/sheet/mineral/bananium/get_main_recipes() . = ..() + . += GLOB.bananium_recipes /* * Titanium @@ -289,17 +290,18 @@ GLOBAL_LIST_INIT(bananium_recipes, list ( \ throw_speed = 1 throw_range = 3 sheettype = "titanium" - materials = list(MAT_TITANIUM=MINERAL_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/titanium=MINERAL_MATERIAL_AMOUNT) point_value = 20 merge_type = /obj/item/stack/sheet/mineral/titanium + material_type = /datum/material/titanium GLOBAL_LIST_INIT(titanium_recipes, list ( \ new/datum/stack_recipe("titanium tile", /obj/item/stack/tile/mineral/titanium, 1, 4, 20), \ )) -/obj/item/stack/sheet/mineral/titanium/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.titanium_recipes +/obj/item/stack/sheet/mineral/titanium/get_main_recipes() . = ..() + . += GLOB.titanium_recipes /obj/item/stack/sheet/mineral/titanium/fifty amount = 50 @@ -319,17 +321,21 @@ GLOBAL_LIST_INIT(titanium_recipes, list ( \ throw_speed = 1 throw_range = 3 sheettype = "plastitanium" - materials = list(MAT_TITANIUM=MINERAL_MATERIAL_AMOUNT, MAT_PLASMA=MINERAL_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/titanium=MINERAL_MATERIAL_AMOUNT, /datum/material/plasma=MINERAL_MATERIAL_AMOUNT) point_value = 45 merge_type = /obj/item/stack/sheet/mineral/plastitanium + material_flags = MATERIAL_NO_EFFECTS + +/obj/item/stack/sheet/mineral/plastitanium/fifty + amount = 50 GLOBAL_LIST_INIT(plastitanium_recipes, list ( \ new/datum/stack_recipe("plastitanium tile", /obj/item/stack/tile/mineral/plastitanium, 1, 4, 20), \ )) -/obj/item/stack/sheet/mineral/plastitanium/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.plastitanium_recipes +/obj/item/stack/sheet/mineral/plastitanium/get_main_recipes() . = ..() + . += GLOB.plastitanium_recipes /****************************** Others ****************************/ @@ -345,11 +351,26 @@ GLOBAL_LIST_INIT(adamantine_recipes, list( icon_state = "sheet-adamantine" item_state = "sheet-adamantine" singular_name = "adamantine sheet" + custom_materials = list(/datum/material/adamantine=MINERAL_MATERIAL_AMOUNT) merge_type = /obj/item/stack/sheet/mineral/adamantine -/obj/item/stack/sheet/mineral/adamantine/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.adamantine_recipes +/obj/item/stack/sheet/mineral/adamantine/get_main_recipes() . = ..() + . += GLOB.adamantine_recipes + +/* + * Runite + */ + +/obj/item/stack/sheet/mineral/runite + name = "Runite" + desc = "Rare material found in distant lands." + singular_name = "runite bar" + icon_state = "sheet-runite" + item_state = "sheet-runite" + custom_materials = list(/datum/material/runite=MINERAL_MATERIAL_AMOUNT) + merge_type = /obj/item/stack/sheet/mineral/runite + material_type = /datum/material/runite /* * Mythril @@ -360,6 +381,7 @@ GLOBAL_LIST_INIT(adamantine_recipes, list( item_state = "sheet-mythril" singular_name = "mythril sheet" novariants = TRUE + custom_materials = list(/datum/material/mythril=MINERAL_MATERIAL_AMOUNT) merge_type = /obj/item/stack/sheet/mineral/mythril /* @@ -381,9 +403,9 @@ GLOBAL_LIST_INIT(snow_recipes, list ( \ new/datum/stack_recipe("Snowball", /obj/item/toy/snowball, 1), \ )) -/obj/item/stack/sheet/mineral/snow/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.snow_recipes +/obj/item/stack/sheet/mineral/snow/get_main_recipes() . = ..() + . += GLOB.snow_recipes /* * Alien Alloy @@ -401,14 +423,16 @@ GLOBAL_LIST_INIT(abductor_recipes, list ( \ new/datum/stack_recipe("alien bed", /obj/structure/bed/abductor, 2, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("alien locker", /obj/structure/closet/abductor, 2, time = 15, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("alien table frame", /obj/structure/table_frame/abductor, 1, time = 15, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("alien bar stool", /obj/item/chair/stool/bar/alien, 1, time = 20, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("alien stool", /obj/item/chair/stool/alien, 1, time = 20, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("alien airlock assembly", /obj/structure/door_assembly/door_assembly_abductor, 4, time = 20, one_per_turf = 1, on_floor = 1), \ null, \ new/datum/stack_recipe("alien floor tile", /obj/item/stack/tile/mineral/abductor, 1, 4, 20), \ )) -/obj/item/stack/sheet/mineral/abductor/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.abductor_recipes +/obj/item/stack/sheet/mineral/abductor/get_main_recipes() . = ..() + . += GLOB.abductor_recipes /* * Coal diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 2bd7dd0d38..0eefb88417 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -24,7 +24,6 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ new/datum/stack_recipe("stool", /obj/structure/chair/stool, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("bar stool", /obj/structure/chair/stool/bar, one_per_turf = TRUE, on_floor = TRUE), \ - new/datum/stack_recipe("chair", /obj/structure/chair, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("bed", /obj/structure/bed, 2, one_per_turf = TRUE, on_floor = TRUE), \ //CIT CHANGE - adds sofas to metal recipe list new/datum/stack_recipe_list("sofas", list( \ @@ -51,6 +50,7 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ new/datum/stack_recipe("closet", /obj/structure/closet, 2, time = 15, one_per_turf = TRUE, on_floor = TRUE), \ null, \ new/datum/stack_recipe("canister", /obj/machinery/portable_atmospherics/canister, 10, time = 15, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("trash bin", /obj/structure/closet/crate/bin, 10, time = 15, one_per_turf = TRUE, on_floor = TRUE),\ null, \ new/datum/stack_recipe("floor tile", /obj/item/stack/tile/plasteel, 1, 4, 20), \ new/datum/stack_recipe("metal rod", /obj/item/stack/rods, 1, 2, 60), \ @@ -106,14 +106,14 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ singular_name = "metal sheet" icon_state = "sheet-metal" item_state = "sheet-metal" - materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/iron=MINERAL_MATERIAL_AMOUNT) throwforce = 10 flags_1 = CONDUCT_1 resistance_flags = FIRE_PROOF merge_type = /obj/item/stack/sheet/metal grind_results = list(/datum/reagent/iron = 20) point_value = 2 - tableVariant = /obj/structure/table + material_type = /datum/material/iron /obj/item/stack/sheet/metal/ratvar_act() new /obj/item/stack/tile/brass(loc, amount) @@ -136,13 +136,13 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ amount = 5 /obj/item/stack/sheet/metal/cyborg - materials = list() + custom_materials = null is_cyborg = 1 cost = 500 -/obj/item/stack/sheet/metal/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.metal_recipes - return ..() +/obj/item/stack/sheet/metal/get_main_recipes() + . = ..() + . += GLOB.metal_recipes /obj/item/stack/sheet/metal/suicide_act(mob/living/carbon/user) user.visible_message("[user] begins whacking [user.p_them()]self over the head with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!") @@ -168,7 +168,7 @@ GLOBAL_LIST_INIT(plasteel_recipes, list ( \ desc = "This sheet is an alloy of iron and plasma." icon_state = "sheet-plasteel" item_state = "sheet-metal" - materials = list(MAT_METAL=2000, MAT_PLASMA=2000) + custom_materials = list(/datum/material/iron=2000, /datum/material/plasma=2000) throwforce = 10 flags_1 = CONDUCT_1 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 80) @@ -177,10 +177,11 @@ GLOBAL_LIST_INIT(plasteel_recipes, list ( \ grind_results = list(/datum/reagent/iron = 20, /datum/reagent/toxin/plasma = 20) point_value = 23 tableVariant = /obj/structure/table/reinforced + material_flags = MATERIAL_NO_EFFECTS -/obj/item/stack/sheet/plasteel/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.plasteel_recipes - return ..() +/obj/item/stack/sheet/plasteel/get_main_recipes() + . = ..() + . += GLOB.plasteel_recipes /obj/item/stack/sheet/plasteel/twenty amount = 20 @@ -274,9 +275,9 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \ else . = ..() -/obj/item/stack/sheet/mineral/wood/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.wood_recipes - return ..() +/obj/item/stack/sheet/mineral/wood/get_main_recipes() + . = ..() + . += GLOB.wood_recipes /obj/item/stack/sheet/mineral/wood/twenty amount = 20 @@ -306,9 +307,9 @@ GLOBAL_LIST_INIT(bamboo_recipes, list ( \ merge_type = /obj/item/stack/sheet/mineral/bamboo grind_results = list(/datum/reagent/carbon = 5) -/obj/item/stack/sheet/mineral/bamboo/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.bamboo_recipes - return ..() +/obj/item/stack/sheet/mineral/bamboo/get_main_recipes() + . = ..() + . += GLOB.bamboo_recipes /obj/item/stack/sheet/mineral/bamboo/ten amount = 10 @@ -362,9 +363,9 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \ loom_result = /obj/item/stack/sheet/silk merge_type = /obj/item/stack/sheet/cloth -/obj/item/stack/sheet/cloth/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.cloth_recipes - return ..() +/obj/item/stack/sheet/cloth/get_main_recipes() + . = ..() + . += GLOB.cloth_recipes /obj/item/stack/sheet/cloth/ten amount = 10 @@ -375,23 +376,31 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \ /* * Silk */ + + GLOBAL_LIST_INIT(silk_recipes, list ( \ + new/datum/stack_recipe("white jumpsuit", /obj/item/clothing/under/color/white, 4, time = 40), \ + new/datum/stack_recipe("white gloves", /obj/item/clothing/gloves/color/white, 2, time = 40), \ + null, \ + new/datum/stack_recipe("silk string", /obj/item/weaponcrafting/silkstring, 1, time = 40), \ + )) + /obj/item/stack/sheet/silk name = "silk" - desc = "A long soft material. This one is just made out of cotton rather then any spiders or wyrms" + desc = "A long, soft material. Made out of refined cotton, instead of relying on the habits of spiders or silkworms." singular_name = "silk sheet" icon_state = "sheet-silk" item_state = "sheet-cloth" novariants = TRUE merge_type = /obj/item/stack/sheet/silk -//obj/item/stack/sheet/silk/Initialize(mapload, new_amount, merge = TRUE) -// recipes = GLOB.silk_recipes -// return ..() +/obj/item/stack/sheet/silk/get_main_recipes() + . = ..() + . += GLOB.silk_recipes /* * Durathread */ - GLOBAL_LIST_INIT(durathread_recipes, list ( \ +GLOBAL_LIST_INIT(durathread_recipes, list ( \ new/datum/stack_recipe("durathread jumpsuit", /obj/item/clothing/under/durathread, 4, time = 40), new/datum/stack_recipe("durathread beret", /obj/item/clothing/head/beret/durathread, 2, time = 40), \ new/datum/stack_recipe("durathread beanie", /obj/item/clothing/head/beanie/durathread, 2, time = 40), \ @@ -409,9 +418,9 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \ throwforce = 0 merge_type = /obj/item/stack/sheet/durathread -/obj/item/stack/sheet/durathread/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.durathread_recipes - return ..() +/obj/item/stack/sheet/durathread/get_main_recipes() + . = ..() + . += GLOB.durathread_recipes /* * Cardboard @@ -488,9 +497,9 @@ GLOBAL_LIST_INIT(cardboard_recipes, list ( \ merge_type = /obj/item/stack/sheet/cardboard novariants = TRUE -/obj/item/stack/sheet/cardboard/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.cardboard_recipes - return ..() +/obj/item/stack/sheet/cardboard/get_main_recipes() + . = ..() + . += GLOB.cardboard_recipes /obj/item/stack/sheet/cardboard/fifty amount = 50 @@ -546,9 +555,9 @@ GLOBAL_LIST_INIT(runed_metal_recipes, list ( \ return FALSE return ..() -/obj/item/stack/sheet/runed_metal/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.runed_metal_recipes - return ..() +/obj/item/stack/sheet/runed_metal/get_main_recipes() + . = ..() + . += GLOB.runed_metal_recipes /obj/item/stack/sheet/runed_metal/fifty amount = 50 @@ -618,11 +627,9 @@ GLOBAL_LIST_INIT(brass_recipes, list ( \ return ..() -/obj/item/stack/tile/brass/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.brass_recipes +/obj/item/stack/tile/brass/get_main_recipes() . = ..() - pixel_x = 0 - pixel_y = 0 + . += GLOB.brass_recipes /obj/item/stack/tile/brass/fifty amount = 50 @@ -666,11 +673,9 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \ to_chat(user, "Wha... what is this cheap imitation crap? This isn't brass at all!") ..() -/obj/item/stack/tile/bronze/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.bronze_recipes +/obj/item/stack/tile/bronze/get_main_recipes() . = ..() - pixel_x = 0 - pixel_y = 0 + . += GLOB.bronze_recipes /obj/item/stack/tile/bronze/thirty amount = 30 @@ -698,6 +703,12 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \ /* * Bones */ + +GLOBAL_LIST_INIT(bone_recipes, list( + new /datum/stack_recipe("Bone Dagger", /obj/item/kitchen/knife/combat/bone, 2, time = 20), \ + new /datum/stack_recipe("Skull Helmet", /obj/item/clothing/head/helmet/skull, 4, time = 30), \ + new /datum/stack_recipe("Bone Armor", /obj/item/clothing/suit/armor/bone, 6, time = 30))) + /obj/item/stack/sheet/bone name = "bones" icon = 'icons/obj/mining.dmi' @@ -714,12 +725,19 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \ grind_results = list(/datum/reagent/carbon = 10) merge_type = /obj/item/stack/sheet/bone +/obj/item/stack/sheet/bone/get_main_recipes() + . = ..() + . += GLOB.bone_recipes + + /* + * Plastic + */ + GLOBAL_LIST_INIT(plastic_recipes, list( new /datum/stack_recipe("see-through plastic flaps", /obj/structure/plasticflaps, 5, one_per_turf = TRUE, on_floor = TRUE, time = 40), \ new /datum/stack_recipe("opaque plastic flaps", /obj/structure/plasticflaps/opaque, 5, one_per_turf = TRUE, on_floor = TRUE, time = 40), \ 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("large trash cart", /obj/structure/closet/crate/bin,50),\ new /datum/stack_recipe("wet floor sign", /obj/item/caution, 2))) /obj/item/stack/sheet/plastic @@ -728,7 +746,7 @@ GLOBAL_LIST_INIT(plastic_recipes, list( singular_name = "plastic sheet" icon_state = "sheet-plastic" item_state = "sheet-plastic" - materials = list(MAT_PLASTIC=MINERAL_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/plastic=MINERAL_MATERIAL_AMOUNT) throwforce = 7 grind_results = list(/datum/reagent/glitter/white = 60) merge_type = /obj/item/stack/sheet/plastic @@ -739,9 +757,9 @@ GLOBAL_LIST_INIT(plastic_recipes, list( /obj/item/stack/sheet/plastic/five amount = 5 -/obj/item/stack/sheet/plastic/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.plastic_recipes +/obj/item/stack/sheet/plastic/get_main_recipes() . = ..() + . += GLOB.plastic_recipes GLOBAL_LIST_INIT(paperframe_recipes, list( new /datum/stack_recipe("paper frame separator", /obj/structure/window/paperframe, 2, one_per_turf = TRUE, on_floor = TRUE, time = 10), \ @@ -757,9 +775,10 @@ new /datum/stack_recipe("paper frame door", /obj/structure/mineral_door/paperfra resistance_flags = FLAMMABLE merge_type = /obj/item/stack/sheet/paperframes -/obj/item/stack/sheet/paperframes/Initialize() - recipes = GLOB.paperframe_recipes +/obj/item/stack/sheet/paperframes/get_main_recipes() . = ..() + . += GLOB.paperframe_recipes + /obj/item/stack/sheet/paperframes/five amount = 5 /obj/item/stack/sheet/paperframes/twenty diff --git a/code/game/objects/items/stacks/sheets/sheets.dm b/code/game/objects/items/stacks/sheets/sheets.dm index b7ab760659..378855707e 100644 --- a/code/game/objects/items/stacks/sheets/sheets.dm +++ b/code/game/objects/items/stacks/sheets/sheets.dm @@ -10,7 +10,7 @@ throw_range = 3 attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "smashed") novariants = FALSE - var/perunit = MINERAL_MATERIAL_AMOUNT + mats_per_stack = MINERAL_MATERIAL_AMOUNT var/sheettype = null //this is used for girders in the creation of walls/false walls var/point_value = 0 //turn-in value for the gulag stacker - loosely relative to its rarity var/is_fabric = FALSE //is this a valid material for the loom? @@ -18,6 +18,11 @@ var/pull_effort = 0 //amount of delay when pulling on the loom var/shard_type // the shard debris typepath left over by solar panels and windows etc. +/obj/item/stack/sheet/Initialize(mapload, new_amount, merge) + . = ..() + pixel_x = rand(-4, 4) + pixel_y = rand(-4, 4) + /** * Called on the glass sheet upon solar construction (duh): * Different glass sheets can modify different stas/vars, such as obj_integrity or efficiency diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 36c4992e8f..131980e43a 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -11,6 +11,7 @@ /obj/item/stack icon = 'icons/obj/stack_objects.dmi' gender = PLURAL + material_modifier = 0.01 var/list/datum/stack_recipe/recipes var/singular_name var/amount = 1 @@ -21,6 +22,9 @@ var/merge_type = null // This path and its children should merge with this stack, defaults to src.type var/full_w_class = WEIGHT_CLASS_NORMAL //The weight class the stack should have at amount > 2/3rds max_amount var/novariants = TRUE //Determines whether the item should update it's sprites based on amount. + var/mats_per_stack = 0 + ///Datum material type that this stack is made of + var/material_type //NOTE: When adding grind_results, the amounts should be for an INDIVIDUAL ITEM - these amounts will be multiplied by the stack size in on_grind() var/obj/structure/table/tableVariant // we tables now (stores table variant to be built from this stack) @@ -35,7 +39,6 @@ return TRUE /obj/item/stack/Initialize(mapload, new_amount, merge = TRUE) - . = ..() if(new_amount != null) amount = new_amount while(amount > max_amount) @@ -43,13 +46,29 @@ new type(loc, max_amount, FALSE) if(!merge_type) merge_type = type + if(custom_materials && custom_materials.len) + for(var/i in custom_materials) + custom_materials[getmaterialref(i)] = mats_per_stack * amount + . = ..() if(merge) for(var/obj/item/stack/S in loc) if(S.merge_type == merge_type) merge(S) + var/list/temp_recipes = get_main_recipes() + recipes = temp_recipes.Copy() + if(material_type) + var/datum/material/M = getmaterialref(material_type) //First/main material + for(var/i in M.categories) + switch(i) + if(MAT_CATEGORY_RIGID) + var/list/temp = SSmaterials.rigid_stack_recipes.Copy() + recipes += temp update_weight() update_icon() +/obj/item/stack/proc/get_main_recipes() + return list()//empty list + /obj/item/stack/proc/update_weight() if(amount <= (max_amount * (1/3))) w_class = CLAMP(full_w_class-2, WEIGHT_CLASS_TINY, full_w_class) @@ -204,6 +223,12 @@ use(R.req_amount * multiplier) log_craft("[O] crafted by [usr] at [loc_name(O.loc)]") + if(R.applies_mats && custom_materials && custom_materials.len) + var/list/used_materials = list() + for(var/i in custom_materials) + used_materials[getmaterialref(i)] = R.req_amount / R.res_amount * (MINERAL_MATERIAL_AMOUNT / custom_materials.len) + O.set_custom_materials(used_materials) + //START: oh fuck i'm so sorry if(istype(O, /obj/structure/windoor_assembly)) var/obj/structure/windoor_assembly/W = O @@ -288,6 +313,8 @@ amount -= used if(check) zero_amount() + for(var/i in custom_materials) + custom_materials[i] = amount * mats_per_stack update_icon() update_weight() return TRUE @@ -319,6 +346,10 @@ source.add_charge(amount * cost) else src.amount += amount + if(custom_materials && custom_materials.len) + for(var/i in custom_materials) + custom_materials[getmaterialref(i)] = MINERAL_MATERIAL_AMOUNT * src.amount + set_custom_materials() //Refresh update_icon() update_weight() @@ -426,8 +457,9 @@ var/on_floor = FALSE var/window_checks = FALSE var/placement_checks = FALSE + var/applies_mats = FALSE -/datum/stack_recipe/New(title, result_type, req_amount = 1, res_amount = 1, max_res_amount = 1,time = 0, one_per_turf = FALSE, on_floor = FALSE, window_checks = FALSE, placement_checks = FALSE ) +/datum/stack_recipe/New(title, result_type, req_amount = 1, res_amount = 1, max_res_amount = 1,time = 0, one_per_turf = FALSE, on_floor = FALSE, window_checks = FALSE, placement_checks = FALSE, applies_mats = FALSE) src.title = title @@ -440,6 +472,7 @@ src.on_floor = on_floor src.window_checks = window_checks src.placement_checks = placement_checks + src.applies_mats = applies_mats /* * Recipe list datum */ diff --git a/code/game/objects/items/stacks/tiles/tile_mineral.dm b/code/game/objects/items/stacks/tiles/tile_mineral.dm index 64be8853a7..50edc9d15a 100644 --- a/code/game/objects/items/stacks/tiles/tile_mineral.dm +++ b/code/game/objects/items/stacks/tiles/tile_mineral.dm @@ -5,7 +5,7 @@ icon_state = "tile_plasma" turf_type = /turf/open/floor/mineral/plasma mineralType = "plasma" - materials = list(MAT_PLASMA=500) + custom_materials = list(/datum/material/plasma=500) /obj/item/stack/tile/mineral/uranium name = "uranium tile" @@ -14,7 +14,7 @@ icon_state = "tile_uranium" turf_type = /turf/open/floor/mineral/uranium mineralType = "uranium" - materials = list(MAT_URANIUM=500) + custom_materials = list(/datum/material/uranium=500) /obj/item/stack/tile/mineral/gold name = "gold tile" @@ -23,7 +23,7 @@ icon_state = "tile_gold" turf_type = /turf/open/floor/mineral/gold mineralType = "gold" - materials = list(MAT_GOLD=500) + custom_materials = list(/datum/material/gold=500) /obj/item/stack/tile/mineral/silver name = "silver tile" @@ -32,7 +32,7 @@ icon_state = "tile_silver" turf_type = /turf/open/floor/mineral/silver mineralType = "silver" - materials = list(MAT_SILVER=500) + custom_materials = list(/datum/material/silver=500) /obj/item/stack/tile/mineral/diamond name = "diamond tile" @@ -41,7 +41,7 @@ icon_state = "tile_diamond" turf_type = /turf/open/floor/mineral/diamond mineralType = "diamond" - materials = list(MAT_DIAMOND=500) + custom_materials = list(/datum/material/diamond=500) /obj/item/stack/tile/mineral/bananium name = "bananium tile" @@ -50,7 +50,7 @@ icon_state = "tile_bananium" turf_type = /turf/open/floor/mineral/bananium mineralType = "bananium" - materials = list(MAT_BANANIUM=500) + custom_materials = list(/datum/material/bananium=500) /obj/item/stack/tile/mineral/abductor name = "alien floor tile" @@ -68,7 +68,7 @@ icon_state = "tile_shuttle" turf_type = /turf/open/floor/mineral/titanium mineralType = "titanium" - materials = list(MAT_TITANIUM=500) + custom_materials = list(/datum/material/titanium=500) /obj/item/stack/tile/mineral/plastitanium name = "plastitanium tile" @@ -77,4 +77,5 @@ icon_state = "tile_darkshuttle" turf_type = /turf/open/floor/mineral/plastitanium mineralType = "plastitanium" - materials = list(MAT_TITANIUM=250, MAT_PLASMA=250) \ No newline at end of file + custom_materials = list(/datum/material/titanium=250, /datum/material/plasma=250) + material_flags = MATERIAL_NO_EFFECTS \ No newline at end of file diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index fa4e5a3886..2e537d3eff 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -9,6 +9,7 @@ throw_speed = 3 throw_range = 7 max_amount = 60 + mats_per_stack = 500 var/turf_type = null var/mineralType = null novariants = TRUE @@ -434,7 +435,7 @@ desc = "Those could work as a pretty decent throwing weapon." icon_state = "tile" force = 6 - materials = list(MAT_METAL=500) + custom_materials = list(/datum/material/iron=500) throwforce = 10 flags_1 = CONDUCT_1 turf_type = /turf/open/floor/plasteel @@ -444,6 +445,6 @@ /obj/item/stack/tile/plasteel/cyborg desc = "The ground you walk on." //Not the usual floor tile desc as that refers to throwing, Cyborgs can't do that - RR - materials = list() // All other Borg versions of items have no Metal or Glass - RR + custom_materials = null // All other Borg versions of items have no Metal or Glass - RR is_cyborg = 1 cost = 125 diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index 63c8fd9faf..cee8e0f3ee 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -528,6 +528,31 @@ for(var/i in 1 to 9) new /obj/item/ammo_box/magazine/smgm45(src) +/obj/item/storage/backpack/duffelbag/syndie/ammo/dark_gygax + desc = "A large duffel bag, packed to the brim with various exosuit ammo." + +/obj/item/storage/backpack/duffelbag/syndie/ammo/dark_gygax/PopulateContents() + new /obj/item/mecha_ammo/incendiary(src) + new /obj/item/mecha_ammo/incendiary(src) + new /obj/item/mecha_ammo/incendiary(src) + new /obj/item/mecha_ammo/flashbang(src) + new /obj/item/mecha_ammo/flashbang(src) + new /obj/item/mecha_ammo/flashbang(src) + +/obj/item/storage/backpack/duffelbag/syndie/ammo/mauler + desc = "A large duffel bag, packed to the brim with various exosuit ammo." + +/obj/item/storage/backpack/duffelbag/syndie/ammo/mauler/PopulateContents() + new /obj/item/mecha_ammo/lmg(src) + new /obj/item/mecha_ammo/lmg(src) + new /obj/item/mecha_ammo/lmg(src) + new /obj/item/mecha_ammo/scattershot(src) + new /obj/item/mecha_ammo/scattershot(src) + new /obj/item/mecha_ammo/scattershot(src) + new /obj/item/mecha_ammo/missiles_he(src) + new /obj/item/mecha_ammo/missiles_he(src) + new /obj/item/mecha_ammo/missiles_he(src) + /obj/item/storage/backpack/duffelbag/syndie/c20rbundle desc = "A large duffel bag containing a C-20r, some magazines, and a cheap looking suppressor." diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm index 028f36b1d1..643e426c9d 100644 --- a/code/game/objects/items/storage/bags.dm +++ b/code/game/objects/items/storage/bags.dm @@ -114,6 +114,7 @@ /obj/item/storage/bag/ore/ComponentInitialize() . = ..() + AddComponent(/datum/component/rad_insulation, 0.01) //please datum mats no more cancer var/datum/component/storage/concrete/stack/STR = GetComponent(/datum/component/storage/concrete/stack) STR.allow_quick_empty = TRUE STR.can_hold = typecacheof(list(/obj/item/stack/ore)) @@ -321,11 +322,13 @@ throw_range = 5 w_class = WEIGHT_CLASS_BULKY flags_1 = CONDUCT_1 - materials = list(MAT_METAL=3000) + custom_materials = list(/datum/material/iron=3000) /obj/item/storage/bag/tray/ComponentInitialize() . = ..() var/datum/component/storage/STR = GetComponent(/datum/component/storage) + STR.max_w_class = WEIGHT_CLASS_NORMAL + STR.can_hold = typecacheof(list(/obj/item/reagent_containers/food, /obj/item/reagent_containers/glass, /datum/reagent/consumable, /obj/item/kitchen/knife, /obj/item/kitchen/rollingpin, /obj/item/kitchen/fork, /obj/item/storage/box)) //Should cover: Bottles, Beakers, Bowls, Booze, Glasses, Food, Kitchen Tools, and ingredient boxes. STR.insert_preposition = "on" /obj/item/storage/bag/tray/attack(mob/living/M, mob/living/user) @@ -399,10 +402,12 @@ /obj/item/storage/bag/bio/ComponentInitialize() . = ..() var/datum/component/storage/STR = GetComponent(/datum/component/storage) + STR.max_w_class = WEIGHT_CLASS_NORMAL //Allows you to pick up Lungs, Liver, and Stomach STR.max_combined_w_class = 200 STR.max_items = 25 STR.insert_preposition = "in" - STR.can_hold = typecacheof(list(/obj/item/slime_extract, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/blood, /obj/item/reagent_containers/hypospray/medipen, /obj/item/reagent_containers/food/snacks/deadmouse, /obj/item/reagent_containers/food/snacks/monkeycube)) + STR.can_hold = typecacheof(list(/obj/item/slime_extract, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/blood, /obj/item/reagent_containers/hypospray/medipen, /obj/item/reagent_containers/food/snacks/deadmouse, /obj/item/reagent_containers/food/snacks/monkeycube, /obj/item/organ, /obj/item/reagent_containers/food/snacks/meat/slab, /obj/item/bodypart)) + STR.cant_hold = typecacheof(list(/obj/item/organ/brain, /obj/item/organ/liver/cybernetic, /obj/item/organ/heart/cybernetic, /obj/item/organ/lungs/cybernetic, /obj/item/organ/tongue/cybernetic, /obj/item/organ/ears/cybernetic, /obj/item/organ/eyes/robotic, /obj/item/organ/cyberimp)) /obj/item/storage/bag/bio/holding name = "bio bag of holding" diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 082cbe245d..829c89be0e 100755 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -179,17 +179,23 @@ /obj/item/pinpointer/crew )) - /obj/item/storage/belt/medical/surgery_belt_adv name = "surgical supply belt" desc = "A specialized belt designed for holding surgical equipment. It seems to have specific pockets for each and every surgical tool you can think of." content_overlays = FALSE + var/advanced_drapes = FALSE /obj/item/storage/belt/medical/surgery_belt_adv/PopulateContents() new /obj/item/scalpel/advanced(src) new /obj/item/retractor/advanced(src) new /obj/item/surgicaldrill/advanced(src) - new /obj/item/surgical_drapes(src) + if(advanced_drapes) + new /obj/item/surgical_drapes/advanced(src) + else + new /obj/item/surgical_drapes(src) + +/obj/item/storage/belt/medical/surgery_belt_adv/cmo + advanced_drapes = TRUE /obj/item/storage/belt/security name = "security belt" @@ -328,7 +334,7 @@ desc = "Proves to the world that you are the strongest!" icon_state = "championbelt" item_state = "champion" - materials = list(MAT_GOLD=400) + custom_materials = list(/datum/material/gold=400) /obj/item/storage/belt/champion/ComponentInitialize() . = ..() @@ -575,6 +581,7 @@ /obj/item/key/janitor, /obj/item/clothing/gloves, /obj/item/melee/flyswatter, + /obj/item/twohanded/broom, /obj/item/paint/paint_remover, /obj/item/assembly/mousetrap, /obj/item/screwdriver, @@ -612,6 +619,21 @@ /obj/item/ammo_casing )) +/obj/item/storage/belt/quiver + name = "leather quiver" + desc = "A quiver made from the hide of some animal. Used to hold arrows." + icon_state = "quiver" + item_state = "quiver" + +/obj/item/storage/belt/quiver/ComponentInitialize() + . = ..() + var/datum/component/storage/STR = GetComponent(/datum/component/storage) + STR.max_items = 15 + STR.display_numerical_stacking = TRUE + STR.can_hold = typecacheof(list( + /obj/item/ammo_casing/caseless/arrow + )) + /obj/item/storage/belt/medolier name = "medolier" desc = "A medical bandolier for holding smartdarts." diff --git a/code/game/objects/items/storage/book.dm b/code/game/objects/items/storage/book.dm index 2762be8edf..311657aba9 100644 --- a/code/game/objects/items/storage/book.dm +++ b/code/game/objects/items/storage/book.dm @@ -173,23 +173,25 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "bible", var/unholy2clean = A.reagents.get_reagent_amount(/datum/reagent/fuel/unholywater) A.reagents.del_reagent(/datum/reagent/fuel/unholywater) A.reagents.add_reagent(/datum/reagent/water/holywater,unholy2clean) - if(istype(A, /obj/item/twohanded/required/cult_bastard) && !iscultist(user)) - var/obj/item/twohanded/required/cult_bastard/sword = A - to_chat(user, "You begin to exorcise [sword].") + if(istype(A, /obj/item/twohanded/required/cult_bastard) || istype(A, /obj/item/melee/cultblade) && !iscultist(user)) + to_chat(user, "You begin to exorcise [A].") playsound(src,'sound/hallucinations/veryfar_noise.ogg',40,1) - if(do_after(user, 40, target = sword)) + if(do_after(user, 40, target = A)) playsound(src,'sound/effects/pray_chaplain.ogg',60,1) - for(var/obj/item/soulstone/SS in sword.contents) - SS.usability = TRUE - for(var/mob/living/simple_animal/shade/EX in SS) - SSticker.mode.remove_cultist(EX.mind, 1, 0) - EX.icon_state = "ghost1" - EX.name = "Purified [EX.name]" - SS.release_shades(user) - qdel(SS) - new /obj/item/nullrod/claymore(get_turf(sword)) - user.visible_message("[user] has purified the [sword]!") - qdel(sword) + if(istype(A, /obj/item/twohanded/required/cult_bastard)) + for(var/obj/item/soulstone/SS in A.contents) + SS.usability = TRUE + for(var/mob/living/simple_animal/shade/EX in SS) + SSticker.mode.remove_cultist(EX.mind, 1, 0) + EX.icon_state = "ghost1" + EX.name = "Purified [EX.name]" + SS.release_shades(user) + qdel(SS) + new /obj/item/nullrod/claymore(get_turf(A)) + else + new /obj/item/claymore/purified(get_turf(A)) + user.visible_message("[user] has purified [A]!") + qdel(A) else if(istype(A, /obj/item/soulstone) && !iscultist(user)) var/obj/item/soulstone/SS = A diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index daddc403b2..c4e6c57318 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -1288,3 +1288,62 @@ /obj/item/storage/box/marshmallow/PopulateContents() for (var/i in 1 to 5) new /obj/item/reagent_containers/food/snacks/marshmallow(src) + +/obj/item/storage/box/material/PopulateContents() //less uranium because radioactive + var/static/items_inside = list( + /obj/item/stack/sheet/metal/fifty=1,\ + /obj/item/stack/sheet/glass/fifty=1,\ + /obj/item/stack/sheet/rglass=50,\ + /obj/item/stack/sheet/plasmaglass=50,\ + /obj/item/stack/sheet/titaniumglass=50,\ + /obj/item/stack/sheet/plastitaniumglass=50,\ + /obj/item/stack/sheet/plasteel=50,\ + /obj/item/stack/sheet/mineral/plastitanium=50,\ + /obj/item/stack/sheet/mineral/titanium=50,\ + /obj/item/stack/sheet/mineral/gold=50,\ + /obj/item/stack/sheet/mineral/silver=50,\ + /obj/item/stack/sheet/mineral/plasma=50,\ + /obj/item/stack/sheet/mineral/uranium=50,\ + /obj/item/stack/sheet/mineral/diamond=50,\ + /obj/item/stack/sheet/bluespace_crystal=50,\ + /obj/item/stack/sheet/mineral/bananium=50,\ + /obj/item/stack/sheet/mineral/wood=50,\ + /obj/item/stack/sheet/plastic/fifty=1,\ + /obj/item/stack/sheet/runed_metal/fifty=1 + ) + generate_items_inside(items_inside, src) + +/obj/item/storage/box/debugtools + name = "box of debug tools" + icon_state = "syndiebox" + +/obj/item/storage/box/debugtools/PopulateContents() + var/static/items_inside = list( + /obj/item/flashlight/emp/debug=1,\ + /obj/item/pda=1,\ + /obj/item/modular_computer/tablet/preset/advanced=1,\ + /obj/item/geiger_counter=1,\ + /obj/item/construction/rcd/combat/admin=1,\ + /obj/item/pipe_dispenser=1,\ + /obj/item/card/emag=1,\ + /obj/item/healthanalyzer/advanced=1,\ + /obj/item/disk/tech_disk/debug=1,\ + /obj/item/uplink/debug=1,\ + /obj/item/uplink/nuclear/debug=1,\ + /obj/item/storage/box/beakers/bluespace=1,\ + /obj/item/storage/box/beakers/variety=1,\ + /obj/item/storage/box/material=1,\ + /obj/item/storage/belt/medical/surgery_belt_adv + ) + generate_items_inside(items_inside, src) + +/obj/item/storage/box/beakers/variety + name = "beaker variety box" + +/obj/item/storage/box/beakers/variety/PopulateContents() + new /obj/item/reagent_containers/glass/beaker(src) + new /obj/item/reagent_containers/glass/beaker/large(src) + new /obj/item/reagent_containers/glass/beaker/plastic(src) + new /obj/item/reagent_containers/glass/beaker/meta(src) + new /obj/item/reagent_containers/glass/beaker/noreact(src) + new /obj/item/reagent_containers/glass/beaker/bluespace(src) diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index bfffe0fc60..f1db164b31 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -3,8 +3,8 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) /obj/item/storage/toolbox name = "toolbox" desc = "Danger. Very robust." - icon_state = "red" - item_state = "toolbox_red" + icon_state = "toolbox_default" + item_state = "toolbox_default" lefthand_file = 'icons/mob/inhands/equipment/toolbox_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/toolbox_righthand.dmi' flags_1 = CONDUCT_1 @@ -13,16 +13,16 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) throw_speed = 2 throw_range = 7 w_class = WEIGHT_CLASS_BULKY - materials = list(MAT_METAL = 500) attack_verb = list("robusted") hitsound = 'sound/weapons/smash.ogg' + custom_materials = list(/datum/material/iron = 500) + material_flags = MATERIAL_COLOR var/latches = "single_latch" var/has_latches = TRUE var/can_rubberify = TRUE rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE //very protecc too /obj/item/storage/toolbox/Initialize(mapload) - . = ..() if(has_latches) if(prob(10)) latches = "double_latch" @@ -30,6 +30,7 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) latches = "triple_latch" if(mapload && can_rubberify && prob(5)) rubberify() + . = ..() update_icon() /obj/item/storage/toolbox/update_icon() @@ -48,6 +49,9 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) /obj/item/storage/toolbox/emergency name = "emergency toolbox" + icon_state = "red" + item_state = "toolbox_red" + material_flags = NONE /obj/item/storage/toolbox/emergency/PopulateContents() new /obj/item/crowbar/red(src) @@ -72,6 +76,7 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) name = "mechanical toolbox" icon_state = "blue" item_state = "toolbox_blue" + material_flags = NONE /obj/item/storage/toolbox/mechanical/PopulateContents() new /obj/item/screwdriver(src) @@ -100,6 +105,7 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) name = "electrical toolbox" icon_state = "yellow" item_state = "toolbox_yellow" + material_flags = NONE /obj/item/storage/toolbox/electrical/PopulateContents() var/pickedcolor = pick("red","yellow","green","blue","pink","orange","cyan","white") @@ -121,6 +127,7 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) desc = "A toolbox painted black with a red stripe. It looks more heavier than normal toolboxes." force = 15 throwforce = 18 + material_flags = NONE /obj/item/storage/toolbox/syndicate/ComponentInitialize() . = ..() @@ -140,6 +147,7 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) name = "mechanical toolbox" icon_state = "blue" item_state = "toolbox_blue" + material_flags = NONE /obj/item/storage/toolbox/drone/PopulateContents() var/pickedcolor = pick("red","yellow","green","blue","pink","orange","cyan","white") @@ -161,6 +169,7 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) w_class = WEIGHT_CLASS_HUGE attack_verb = list("robusted", "crushed", "smashed") can_rubberify = FALSE + material_flags = NONE var/fabricator_type = /obj/item/clockwork/replica_fabricator/scarab /obj/item/storage/toolbox/brass/ComponentInitialize() @@ -202,6 +211,7 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) w_class = WEIGHT_CLASS_HUGE //heyo no bohing this! force = 18 //spear damage can_rubberify = FALSE + material_flags = NONE /obj/item/storage/toolbox/plastitanium/afterattack(atom/A, mob/user, proximity) . = ..() @@ -217,6 +227,7 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) icon_state = "green" item_state = "toolbox_green" w_class = WEIGHT_CLASS_GIGANTIC //Holds more than a regular toolbox! + material_flags = NONE /obj/item/storage/toolbox/artistic/ComponentInitialize() . = ..() @@ -257,6 +268,7 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) icon_state = "gold" item_state = "toolbox_gold" has_latches = FALSE + material_flags = NONE /obj/item/storage/toolbox/gold_real/PopulateContents() new /obj/item/screwdriver/nuke(src) @@ -282,6 +294,7 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) force = 0 throwforce = 0 can_rubberify = FALSE + material_flags = NONE /obj/item/storage/toolbox/proc/rubberify() name = "rubber [name]" @@ -289,7 +302,7 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) desc = replacetext(desc, "robust", "safe") desc = replacetext(desc, "heavier", "bouncier") DISABLE_BITFIELD(flags_1, CONDUCT_1) - materials = typelist("materials", null) + custom_materials = null damtype = STAMINA force += 3 //to compensate the higher stamina K.O. threshold compared to actual health. throwforce += 3 @@ -311,12 +324,13 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) name = "rubber toolbox" desc = "Bouncy. Very safe." flags_1 = null - materials = null + custom_materials = null damtype = STAMINA force = 15 throwforce = 15 attack_verb = list("robusted", "bounced") can_rubberify = FALSE //we are already the future. + material_flags = NONE /obj/item/storage/toolbox/rubber/Initialize() icon_state = pick("blue", "red", "yellow", "green") diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm index 45313dc9b0..52f082fa5c 100644 --- a/code/game/objects/items/stunbaton.dm +++ b/code/game/objects/items/stunbaton.dm @@ -15,13 +15,18 @@ 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/stunforce = 70 + var/stamforce = 25 var/status = FALSE + var/knockdown = TRUE var/obj/item/stock_parts/cell/cell - var/hitcost = 1000 + var/hitcost = 750 var/throw_hit_chance = 35 var/preload_cell_type //if not empty the baton starts with this type of cell +/obj/item/melee/baton/examine(mob/user) + . = ..() + . += "Right click attack while in combat mode to disarm instead of stun." + /obj/item/melee/baton/get_cell() . = cell if(iscyborg(loc)) @@ -32,7 +37,7 @@ user.visible_message("[user] is putting the live [name] in [user.p_their()] mouth! It looks like [user.p_theyre()] trying to commit suicide!") return (FIRELOSS) -/obj/item/melee/baton/Initialize() +/obj/item/melee/baton/Initialize(mapload) . = ..() if(preload_cell_type) if(!ispath(preload_cell_type,/obj/item/stock_parts/cell)) @@ -48,7 +53,7 @@ baton_stun(hit_atom) /obj/item/melee/baton/loaded //this one starts with a cell pre-installed. - preload_cell_type = /obj/item/stock_parts/cell/high + preload_cell_type = /obj/item/stock_parts/cell/high/plus /obj/item/melee/baton/proc/deductcharge(chrgdeductamt, chargecheck = TRUE, explode = TRUE) var/obj/item/stock_parts/cell/copper_top = get_cell() @@ -134,44 +139,41 @@ add_fingerprint(user) /obj/item/melee/baton/attack(mob/M, mob/living/carbon/human/user) + var/interrupt = common_baton_melee(M, user, FALSE) + if(!interrupt) + ..() + +/obj/item/melee/baton/alt_pre_attack(atom/A, mob/living/user, params) + . = common_baton_melee(A, user, TRUE) //return true (attackchain interrupt) if this also returns true. no harm-disarming. + user.changeNext_move(CLICK_CD_MELEE) + +//return TRUE to interrupt attack chain. +/obj/item/melee/baton/proc/common_baton_melee(mob/M, mob/living/user, disarming = FALSE) + if(iscyborg(M) || !isliving(M)) //can't baton cyborgs + return FALSE if(status && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(50)) clowning_around(user) - return - - if(user.getStaminaLoss() >= STAMINA_SOFTCRIT)//CIT CHANGE - makes it impossible to baton in stamina softcrit - to_chat(user, "You're too exhausted for that.")//CIT CHANGE - ditto - return //CIT CHANGE - ditto - - if(iscyborg(M)) - ..() - return - - + if(user.getStaminaLoss() >= STAMINA_SOFTCRIT) //CIT CHANGE - makes it impossible to baton in stamina softcrit + to_chat(user, "You're too exhausted for that.") + return TRUE if(ishuman(M)) var/mob/living/carbon/human/L = M if(check_martial_counter(L, user)) - return + return TRUE + if(status) + if(baton_stun(M, user, disarming)) + user.do_attack_animation(M) + user.adjustStaminaLossBuffered(getweight()) //CIT CHANGE - makes stunbatonning others cost stamina + else if(user.a_intent != INTENT_HARM) //they'll try to bash in the last proc. + M.visible_message("[user] has prodded [M] with [src]. Luckily it was off.", \ + "[user] has prodded you with [src]. Luckily it was off") + return disarming || (user.a_intent != INTENT_HARM) - if(user.a_intent != INTENT_HARM) - if(status) - if(baton_stun(M, user)) - user.do_attack_animation(M) - user.adjustStaminaLossBuffered(getweight())//CIT CHANGE - makes stunbatonning others cost stamina - return - else - M.visible_message("[user] has prodded [M] with [src]. Luckily it was off.", \ - "[user] has prodded you with [src]. Luckily it was off") - else - if(status) - baton_stun(M, user) - ..() - - -/obj/item/melee/baton/proc/baton_stun(mob/living/L, mob/user) +/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 playsound(L, 'sound/weapons/genhit.ogg', 50, 1) return FALSE - var/stunpwr = stunforce + var/stunpwr = stamforce var/obj/item/stock_parts/cell/our_cell = get_cell() if(!our_cell) switch_status(FALSE) @@ -187,17 +189,21 @@ return FALSE stunpwr *= round(stuncharge/hitcost, 0.1) - - L.Knockdown(stunpwr, override_stamdmg = 0) - L.apply_damage(stunpwr*0.5, STAMINA, user.zone_selected) - L.apply_effect(EFFECT_STUTTER, stunforce) + if(!disarming) + if(knockdown) + L.Knockdown(50, override_stamdmg = 0) //knockdown + L.adjustStaminaLoss(stunpwr) + else + L.drop_all_held_items() //no knockdown/stamina damage, instead disarm. + + L.apply_effect(EFFECT_STUTTER, stamforce) SEND_SIGNAL(L, COMSIG_LIVING_MINOR_SHOCK) if(user) L.lastattacker = user.real_name L.lastattackerckey = user.ckey - L.visible_message("[user] has stunned [L] with [src]!", \ - "[user] has stunned you with [src]!") - log_combat(user, L, "stunned") + L.visible_message("[user] has [disarming? "disarmed" : "stunned"] [L] with [src]!", \ + "[user] has [disarming? "disarmed" : "stunned"] you with [src]!") + log_combat(user, L, disarming? "disarmed" : "stunned") playsound(loc, 'sound/weapons/egloves.ogg', 50, 1, -1) @@ -212,7 +218,7 @@ user.visible_message("[user] accidentally hits [user.p_them()]self with [src]!", \ "You accidentally hit yourself with [src]!") SEND_SIGNAL(user, COMSIG_LIVING_MINOR_SHOCK) - user.Knockdown(stunforce*3) + user.Knockdown(stamforce*6) playsound(loc, 'sound/weapons/egloves.ogg', 50, 1, -1) deductcharge(hitcost) @@ -274,8 +280,9 @@ w_class = WEIGHT_CLASS_BULKY force = 3 throwforce = 5 - stunforce = 60 - hitcost = 2000 + stamforce = 25 + hitcost = 1000 + knockdown = FALSE throw_hit_chance = 10 slot_flags = ITEM_SLOT_BACK var/obj/item/assembly/igniter/sparkler diff --git a/code/game/objects/items/tanks/tanks.dm b/code/game/objects/items/tanks/tanks.dm index 7157103f14..58e16ad615 100644 --- a/code/game/objects/items/tanks/tanks.dm +++ b/code/game/objects/items/tanks/tanks.dm @@ -11,7 +11,7 @@ throwforce = 10 throw_speed = 1 throw_range = 4 - materials = list(MAT_METAL = 500) + custom_materials = list(/datum/material/iron = 500) actions_types = list(/datum/action/item_action/set_internals) armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 30) var/datum/gas_mixture/air_contents = null diff --git a/code/game/objects/items/teleportation.dm b/code/game/objects/items/teleportation.dm index 8c0f315ca3..b5edb27704 100644 --- a/code/game/objects/items/teleportation.dm +++ b/code/game/objects/items/teleportation.dm @@ -24,7 +24,7 @@ righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' throw_speed = 3 throw_range = 7 - materials = list(MAT_METAL=400) + custom_materials = list(/datum/material/iron=400) /obj/item/locator/attack_self(mob/user) user.set_machine(src) @@ -125,7 +125,7 @@ w_class = WEIGHT_CLASS_SMALL throw_speed = 3 throw_range = 5 - materials = list(MAT_METAL=10000) + custom_materials = list(/datum/material/iron=10000) armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF var/list/active_portal_pairs @@ -138,14 +138,17 @@ /obj/item/hand_tele/pre_attack(atom/target, mob/user, params) if(try_dispel_portal(target, user)) - return FALSE + return TRUE return ..() -/obj/item/hand_tele/proc/try_dispel_portal(atom/target, mob/user) - if(is_parent_of_portal(target)) +/obj/item/hand_tele/proc/try_dispel_portal(atom/target, mob/user, delay = 30) + var/datum/beam/B = user.Beam(target, icon_state = "rped_upgrade", maxdistance = 50) + if(is_parent_of_portal(target) && (!delay || do_after(user, delay, target = target))) qdel(target) to_chat(user, "You dispel [target] with \the [src]!") + qdel(B) return TRUE + qdel(B) return FALSE /obj/item/hand_tele/afterattack(atom/target, mob/user) diff --git a/code/game/objects/items/teleprod.dm b/code/game/objects/items/teleprod.dm index f427bf6c4c..bab4d6a488 100644 --- a/code/game/objects/items/teleprod.dm +++ b/code/game/objects/items/teleprod.dm @@ -16,7 +16,7 @@ user.visible_message("[user] accidentally hits [user.p_them()]self with [src]!", \ "You accidentally hit yourself with [src]!") SEND_SIGNAL(user, COMSIG_LIVING_MINOR_SHOCK) - user.Knockdown(stunforce*3) + user.Knockdown(stamforce * 6) playsound(loc, 'sound/weapons/egloves.ogg', 50, 1, -1) if(do_teleport(user, get_turf(user), 50, channel = TELEPORT_CHANNEL_BLUESPACE)) deductcharge(hitcost) diff --git a/code/game/objects/items/tools/crowbar.dm b/code/game/objects/items/tools/crowbar.dm index 7a6318cc4b..91e8c49e5a 100644 --- a/code/game/objects/items/tools/crowbar.dm +++ b/code/game/objects/items/tools/crowbar.dm @@ -11,7 +11,7 @@ force = 5 throwforce = 7 w_class = WEIGHT_CLASS_SMALL - materials = list(MAT_METAL=50) + custom_materials = list(/datum/material/iron=50) attack_verb = list("attacked", "bashed", "battered", "bludgeoned", "whacked") tool_behaviour = TOOL_CROWBAR @@ -55,7 +55,7 @@ w_class = WEIGHT_CLASS_NORMAL throw_speed = 3 throw_range = 3 - materials = list(MAT_METAL=70) + custom_materials = list(/datum/material/iron=70) icon_state = "crowbar_large" item_state = "crowbar" toolspeed = 0.5 @@ -76,7 +76,7 @@ item_state = "jawsoflife" lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' - materials = list(MAT_METAL=150,MAT_SILVER=50,MAT_TITANIUM=25) + custom_materials = list(/datum/material/iron=150,/datum/material/silver=50,/datum/material/titanium=25) usesound = 'sound/items/jaws_pry.ogg' force = 15 diff --git a/code/game/objects/items/tools/screwdriver.dm b/code/game/objects/items/tools/screwdriver.dm index 115598fead..a36314ccb7 100644 --- a/code/game/objects/items/tools/screwdriver.dm +++ b/code/game/objects/items/tools/screwdriver.dm @@ -13,7 +13,7 @@ throwforce = 5 throw_speed = 3 throw_range = 5 - materials = list(MAT_METAL=75) + custom_materials = list(/datum/material/iron=75) attack_verb = list("stabbed") hitsound = 'sound/weapons/bladeslice.ogg' usesound = list('sound/items/screwdriver.ogg', 'sound/items/screwdriver2.ogg') @@ -114,7 +114,7 @@ item_state = "drill" lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' - materials = list(MAT_METAL=150,MAT_SILVER=50,MAT_TITANIUM=25) //done for balance reasons, making them high value for research, but harder to get + custom_materials = list(/datum/material/iron=150,/datum/material/silver=50,/datum/material/titanium=25) //done for balance reasons, making them high value for research, but harder to get force = 8 //might or might not be too high, subject to change w_class = WEIGHT_CLASS_SMALL throwforce = 8 diff --git a/code/game/objects/items/tools/weldingtool.dm b/code/game/objects/items/tools/weldingtool.dm index a74ce67128..b172cc25dd 100644 --- a/code/game/objects/items/tools/weldingtool.dm +++ b/code/game/objects/items/tools/weldingtool.dm @@ -21,7 +21,7 @@ armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 30) resistance_flags = FIRE_PROOF - materials = list(MAT_METAL=70, MAT_GLASS=30) + custom_materials = list(/datum/material/iron=70, /datum/material/glass=30) var/welding = 0 //Whether or not the welding tool is off(0), on(1) or currently welding(2) var/status = TRUE //Whether the welder is secured or unsecured (able to attach rods to it to make a flamethrower) var/max_fuel = 20 //The max amount of fuel the welder can hold @@ -297,7 +297,7 @@ desc = "A slightly larger welder with a larger tank." icon_state = "indwelder" max_fuel = 40 - materials = list(MAT_GLASS=60) + custom_materials = list(/datum/material/glass=60) /obj/item/weldingtool/largetank/cyborg name = "integrated welding tool" @@ -316,7 +316,7 @@ icon_state = "miniwelder" max_fuel = 10 w_class = WEIGHT_CLASS_TINY - materials = list(MAT_METAL=30, MAT_GLASS=10) + custom_materials = list(/datum/material/iron=30, /datum/material/glass=10) change_icons = 0 /obj/item/weldingtool/mini/flamethrower_screwdriver() @@ -342,7 +342,7 @@ icon_state = "upindwelder" item_state = "upindwelder" max_fuel = 80 - materials = list(MAT_METAL=70, MAT_GLASS=120) + custom_materials = list(/datum/material/iron=70, /datum/material/glass=120) /obj/item/weldingtool/experimental name = "experimental welding tool" @@ -350,7 +350,7 @@ icon_state = "exwelder" item_state = "exwelder" max_fuel = 40 - materials = list(MAT_METAL=70, MAT_GLASS=120) + custom_materials = list(/datum/material/iron=70, /datum/material/glass=120) var/last_gen = 0 change_icons = 0 can_off_process = 1 diff --git a/code/game/objects/items/tools/wirecutters.dm b/code/game/objects/items/tools/wirecutters.dm index 33fe8052e9..37d8fe8824 100644 --- a/code/game/objects/items/tools/wirecutters.dm +++ b/code/game/objects/items/tools/wirecutters.dm @@ -12,7 +12,7 @@ throw_speed = 3 throw_range = 7 w_class = WEIGHT_CLASS_SMALL - materials = list(MAT_METAL=80) + custom_materials = list(/datum/material/iron=80) attack_verb = list("pinched", "nipped") hitsound = 'sound/items/wirecutter.ogg' usesound = 'sound/items/wirecutter.ogg' @@ -98,7 +98,7 @@ icon_state = "jaws_cutter" item_state = "jawsoflife" - materials = list(MAT_METAL=150,MAT_SILVER=50,MAT_TITANIUM=25) + custom_materials = list(/datum/material/iron=150,/datum/material/silver=50,/datum/material/titanium=25) usesound = 'sound/items/jaws_cut.ogg' toolspeed = 0.25 random_color = FALSE diff --git a/code/game/objects/items/tools/wrench.dm b/code/game/objects/items/tools/wrench.dm index b20fab2760..678096db28 100644 --- a/code/game/objects/items/tools/wrench.dm +++ b/code/game/objects/items/tools/wrench.dm @@ -11,7 +11,7 @@ throwforce = 7 w_class = WEIGHT_CLASS_SMALL usesound = 'sound/items/ratchet.ogg' - materials = list(MAT_METAL=150) + custom_materials = list(/datum/material/iron=150) attack_verb = list("bashed", "battered", "bludgeoned", "whacked") tool_behaviour = TOOL_WRENCH @@ -59,7 +59,7 @@ lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' usesound = 'sound/items/drill_use.ogg' - materials = list(MAT_METAL=150,MAT_SILVER=50,MAT_TITANIUM=25) + custom_materials = list(/datum/material/iron=150,/datum/material/silver=50,/datum/material/titanium=25) //done for balance reasons, making them high value for research, but harder to get force = 8 //might or might not be too high, subject to change w_class = WEIGHT_CLASS_SMALL diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 8f5a6e8e0b..fd897174cf 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -143,7 +143,7 @@ flags_1 = CONDUCT_1 slot_flags = ITEM_SLOT_BELT w_class = WEIGHT_CLASS_NORMAL - materials = list(MAT_METAL=10, MAT_GLASS=10) + custom_materials = list(/datum/material/iron=10, /datum/material/glass=10) attack_verb = list("struck", "pistol whipped", "hit", "bashed") var/bullets = 7 @@ -197,7 +197,7 @@ icon = 'icons/obj/ammo.dmi' icon_state = "357OLD-7" w_class = WEIGHT_CLASS_TINY - materials = list(MAT_METAL=10, MAT_GLASS=10) + custom_materials = list(/datum/material/iron=10, /datum/material/glass=10) var/amount_left = 7 /obj/item/toy/ammo/gun/update_icon() @@ -289,7 +289,7 @@ var/light_brightness = 3 actions_types = list() -/obj/item/toy/sword/cx/pre_altattackby(atom/A, mob/living/user, params) //checks if it can do right click memes +/obj/item/toy/sword/cx/alt_pre_attack(atom/A, mob/living/user, params) //checks if it can do right click memes altafterattack(A, user, TRUE, params) return TRUE @@ -453,6 +453,7 @@ force_wielded = 0 attack_verb = list("attacked", "struck", "hit") 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 @@ -472,6 +473,7 @@ attack_verb = list("attacked", "struck", "hit") total_mass_on = TOTAL_MASS_TOY_SWORD 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 @@ -1012,6 +1014,7 @@ /obj/item/toy/cards/singlecard/examine(mob/user) + . = ..() if(ishuman(user)) var/mob/living/carbon/human/cardUser = user if(cardUser.is_holding(src)) diff --git a/code/game/objects/items/twohanded.dm b/code/game/objects/items/twohanded.dm index fc9e138f4b..06b81a424d 100644 --- a/code/game/objects/items/twohanded.dm +++ b/code/game/objects/items/twohanded.dm @@ -24,7 +24,7 @@ * Twohanded */ /obj/item/twohanded - var/wielded = 0 + var/wielded = FALSE var/force_unwielded // default to null, the number force will be set to on unwield() var/force_wielded // same as above but for wield() var/wieldsound = null @@ -510,7 +510,7 @@ /obj/item/twohanded/dualsaber/hypereutactic/chaplain/IsReflect() return FALSE -/obj/item/twohanded/dualsaber/hypereutactic/pre_altattackby(atom/A, mob/living/user, params) //checks if it can do right click memes +/obj/item/twohanded/dualsaber/hypereutactic/alt_pre_attack(atom/A, mob/living/user, params) //checks if it can do right click memes altafterattack(A, user, TRUE, params) return TRUE @@ -592,7 +592,7 @@ throw_speed = 4 embedding = list("embedded_impact_pain_multiplier" = 3, "embed_chance" = 90) armour_penetration = 10 - materials = list(MAT_METAL=1150, MAT_GLASS=2075) + custom_materials = list(/datum/material/iron=1150, /datum/material/glass=2075) hitsound = 'sound/weapons/bladeslice.ogg' attack_verb = list("attacked", "poked", "jabbed", "torn", "gored") sharpness = IS_SHARP @@ -708,7 +708,7 @@ throwforce = 13 throw_speed = 2 throw_range = 4 - materials = list(MAT_METAL=13000) + custom_materials = list(/datum/material/iron=13000) attack_verb = list("sawed", "torn", "cut", "chopped", "diced") hitsound = "swing_hit" sharpness = IS_SHARP @@ -1016,3 +1016,319 @@ C.change_view(CONFIG_GET(string/default_view)) user.client.pixel_x = 0 user.client.pixel_y = 0 + +/obj/item/twohanded/electrostaff + icon = 'icons/obj/items_and_weapons.dmi' + icon_state = "electrostaff_3" + item_state = "electrostaff" + lefthand_file = 'icons/mob/inhands/weapons/staves_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi' + name = "riot suppression electrostaff" + desc = "A large quarterstaff, with massive silver electrodes mounted at the end." + w_class = WEIGHT_CLASS_HUGE + slot_flags = ITEM_SLOT_BACK | ITEM_SLOT_OCLOTHING + force_unwielded = 5 + force_wielded = 10 + throwforce = 15 //if you are a madman and finish someone off with this, power to you. + throw_speed = 1 + item_flags = NO_MAT_REDEMPTION | SLOWS_WHILE_IN_HAND + block_chance = 30 + attack_verb = list("struck", "beaten", "thwacked", "pulped") + total_mass = 5 //yeah this is a heavy thing, beating people with it while it's off is not going to do you any favors. (to curb stun-kill rampaging without it being on) + var/obj/item/stock_parts/cell/cell = /obj/item/stock_parts/cell/high + var/on = FALSE + var/can_block_projectiles = FALSE //can't block guns + var/lethal_cost = 400 //10000/400*20 = 500. decent enough? + var/lethal_damage = 20 + var/lethal_stam_cost = 4 + var/stun_cost = 333 //10000/333*25 = 750. stunbatons are at time of writing 10000/1000*49 = 490. + var/stun_status_effect = STATUS_EFFECT_ELECTROSTAFF //a small slowdown effect + var/stun_stamdmg = 40 + var/stun_status_duration = 25 + var/stun_stam_cost = 3.5 + +/obj/item/twohanded/electrostaff/Initialize(mapload) + . = ..() + if(ispath(cell)) + cell = new cell + +/obj/item/twohanded/electrostaff/Destroy() + STOP_PROCESSING(SSobj, src) + return ..() + +/obj/item/twohanded/electrostaff/get_cell() + . = cell + if(iscyborg(loc)) + 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 + return ..() + +/obj/item/twohanded/electrostaff/proc/min_hitcost() + return min(stun_cost, lethal_cost) + +/obj/item/twohanded/electrostaff/proc/turn_on(mob/user, silent = FALSE) + if(on) + return + if(!cell) + if(user) + to_chat(user, "[src] has no cell.") + return + if(cell.charge < min_hitcost()) + if(user) + to_chat(user, "[src] is out of charge.") + return + on = TRUE + START_PROCESSING(SSobj, src) + if(user) + to_chat(user, "You turn [src] on.") + update_icon() + if(!silent) + playsound(src, "sparks", 75, 1, -1) + +/obj/item/twohanded/electrostaff/proc/turn_off(mob/user, silent = FALSE) + if(!on) + return + if(user) + to_chat(user, "You turn [src] off.") + on = FALSE + STOP_PROCESSING(SSobj, src) + update_icon() + if(!silent) + playsound(src, "sparks", 75, 1, -1) + +/obj/item/twohanded/electrostaff/proc/toggle(mob/user, silent = FALSE) + if(on) + turn_off(user, silent) + else + turn_on(user, silent) + +/obj/item/twohanded/electrostaff/wield(mob/user) + . = ..() + if(wielded) + turn_on(user) + add_fingerprint(user) + +/obj/item/twohanded/electrostaff/unwield(mob/user) + . = ..() + if(!wielded) + turn_off(user) + add_fingerprint(user) + +/obj/item/twohanded/electrostaff/update_icon() + . = ..() + if(!wielded) + icon_state = "electrostaff_3" + item_state = "electrostaff" + else + icon_state = item_state = (on? "electrostaff_1" : "electrostaff_3") + set_light(7, on? 1 : 0, LIGHT_COLOR_CYAN) + +/obj/item/twohanded/electrostaff/examine(mob/living/user) + . = ..() + if(cell) + . += "The cell charge is [round(cell.percent())]%." + else + . += "There is no cell installed!" + +/obj/item/twohanded/electrostaff/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/stock_parts/cell)) + var/obj/item/stock_parts/cell/C = W + if(cell) + to_chat(user, "[src] already has a cell!") + else + if(C.maxcharge < min_hit_cost()) + to_chat(user, "[src] requires a higher capacity cell.") + return + if(!user.transferItemToLoc(W, src)) + return + cell = C + to_chat(user, "You install a cell in [src].") + + else if(W.tool_behaviour == TOOL_SCREWDRIVER) + if(cell) + cell.update_icon() + cell.forceMove(get_turf(src)) + cell = null + to_chat(user, "You remove the cell from [src].") + turn_off(user, TRUE) + else + return ..() + +/obj/item/twohanded/electrostaff/process() + deductcharge(50) //Wasteful! + +/obj/item/twohanded/electrostaff/proc/min_hit_cost() + return min(lethal_cost, stun_cost) + +/obj/item/twohanded/electrostaff/proc/deductcharge(amount) + var/obj/item/stock_parts/cell/C = get_cell() + if(!C) + turn_off() + return FALSE + C.use(min(amount, C.charge)) + if(QDELETED(src)) + return FALSE + if(C.charge < min_hit_cost()) + turn_off() + +/obj/item/twohanded/electrostaff/attack(mob/living/target, mob/living/user) + if(user.getStaminaLoss() >= STAMINA_SOFTCRIT)//CIT CHANGE - makes it impossible to baton in stamina softcrit + to_chat(user, "You're too exhausted for that.")//CIT CHANGE - ditto + return //CIT CHANGE - ditto + if(on && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(50)) + clowning_around(user) //ouch! + return + if(iscyborg(target)) + ..() + return + if(target.check_shields(src, 0, "[user]'s [name]", MELEE_ATTACK)) //No message; check_shields() handles that + playsound(target, 'sound/weapons/genhit.ogg', 50, 1) + return FALSE + if(user.a_intent != INTENT_HARM) + if(stun_act(target, user)) + user.do_attack_animation(target) + user.adjustStaminaLossBuffered(stun_stam_cost) + return + else if(!harm_act(target, user)) + return ..() //if you can't fry them just beat them with it + else //we did harm act them + user.do_attack_animation(target) + user.adjustStaminaLossBuffered(lethal_stam_cost) + +/obj/item/twohanded/electrostaff/proc/stun_act(mob/living/target, mob/living/user, no_charge_and_force = FALSE) + var/stunforce = stun_stamdmg + if(!no_charge_and_force) + if(!on) + target.visible_message("[user] has bapped [target] with [src]. Luckily it was off.", \ + "[user] has bapped you with [src]. Luckily it was off") + turn_off() //if it wasn't already off + return FALSE + var/obj/item/stock_parts/cell/C = get_cell() + var/chargeleft = C.charge + deductcharge(stun_cost) + if(QDELETED(src) || QDELETED(C)) //boom + return FALSE + if(chargeleft < stun_cost) + stunforce *= round(chargeleft/stun_cost, 0.1) + target.adjustStaminaLoss(stunforce) + target.apply_effect(EFFECT_STUTTER, stunforce) + SEND_SIGNAL(target, COMSIG_LIVING_MINOR_SHOCK) + if(user) + target.lastattacker = user.real_name + target.lastattackerckey = user.ckey + target.visible_message("[user] has shocked [target] with [src]!", \ + "[user] has shocked you with [src]!") + log_combat(user, user, "stunned with an electrostaff") + playsound(src, 'sound/weapons/staff.ogg', 50, 1, -1) + target.apply_status_effect(stun_status_effect, stun_status_duration) + if(ishuman(user)) + var/mob/living/carbon/human/H = user + H.forcesay(GLOB.hit_appends) + return TRUE + +/obj/item/twohanded/electrostaff/proc/harm_act(mob/living/target, mob/living/user, no_charge_and_force = FALSE) + var/lethal_force = lethal_damage + if(!no_charge_and_force) + if(!on) + return FALSE //standard item attack + var/obj/item/stock_parts/cell/C = get_cell() + var/chargeleft = C.charge + deductcharge(lethal_cost) + if(QDELETED(src) || QDELETED(C)) //boom + return FALSE + if(chargeleft < stun_cost) + lethal_force *= round(chargeleft/lethal_cost, 0.1) + target.adjustFireLoss(lethal_force) //good against ointment spam + SEND_SIGNAL(target, COMSIG_LIVING_MINOR_SHOCK) + if(user) + target.lastattacker = user.real_name + target.lastattackerckey = user.ckey + target.visible_message("[user] has seared [user] with [src]!", \ + "[user] has seared you with [src]!") + log_combat(user, user, "burned with an electrostaff") + playsound(src, 'sound/weapons/sear.ogg', 50, 1, -1) + return TRUE + +/obj/item/twohanded/electrostaff/proc/clowning_around(mob/living/user) + user.visible_message("[user] accidentally hits [user.p_them()]self with [src]!", \ + "You accidentally hit yourself with [src]!") + SEND_SIGNAL(user, COMSIG_LIVING_MINOR_SHOCK) + harm_act(user, user, TRUE) + stun_act(user, user, TRUE) + deductcharge(lethal_cost) + +/obj/item/twohanded/electrostaff/emp_act(severity) + . = ..() + if (!(. & EMP_PROTECT_SELF)) + turn_off() + if(!iscyborg(loc)) + deductcharge(1000 / severity, TRUE, FALSE) + +/obj/item/twohanded/broom + name = "broom" + desc = "This is my BROOMSTICK! It can be used manually or braced with two hands to sweep items as you move. It has a telescopic handle for compact storage." //LIES + icon = 'icons/obj/janitor.dmi' + icon_state = "broom0" + lefthand_file = 'icons/mob/inhands/equipment/custodial_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/custodial_righthand.dmi' + force = 8 + throwforce = 10 + throw_speed = 3 + throw_range = 7 + w_class = WEIGHT_CLASS_NORMAL + force_unwielded = 8 + force_wielded = 12 + attack_verb = list("swept", "brushed off", "bludgeoned", "whacked") + resistance_flags = FLAMMABLE + +/obj/item/twohanded/broom/update_icon_state() + icon_state = "broom[wielded]" + +/obj/item/twohanded/broom/wield(mob/user) + . = ..() + if(!wielded) + return + to_chat(user, "You brace the [src] against the ground in a firm sweeping stance.") + RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/sweep) + +/obj/item/twohanded/broom/unwield(mob/user) + . = ..() + UnregisterSignal(user, COMSIG_MOVABLE_MOVED) + +/obj/item/twohanded/broom/afterattack(atom/A, mob/user, proximity) + . = ..() + if(!proximity) + return + sweep(user, A, FALSE) + +/obj/item/twohanded/broom/proc/sweep(mob/user, atom/A, moving = TRUE) + var/turf/target + if (!moving) + if (isturf(A)) + target = A + else + target = A.loc + else + target = user.loc + if (locate(/obj/structure/table) in target.contents) + return + var/i = 0 + for(var/obj/item/garbage in target.contents) + if(!garbage.anchored) + garbage.Move(get_step(target, user.dir), user.dir) + i++ + if(i >= 20) + break + if(i >= 1) + playsound(loc, 'sound/weapons/thudswoosh.ogg', 5, TRUE, -1) + +/obj/item/twohanded/broom/proc/janicart_insert(mob/user, obj/structure/janitorialcart/J) //bless you whoever fixes this copypasta + J.put_in_cart(src, user) + J.mybroom=src + J.update_icon() diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index cd6cc5f520..7499d9de09 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -79,6 +79,11 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 user.visible_message("[user] is falling on [src]! It looks like [user.p_theyre()] trying to commit suicide!") return(BRUTELOSS) +/obj/item/claymore/purified + 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 + /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." flags_1 = CONDUCT_1 @@ -247,7 +252,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 force = 9 throwforce = 10 w_class = WEIGHT_CLASS_NORMAL - materials = list(MAT_METAL=1150, MAT_GLASS=75) + custom_materials = list(/datum/material/iron=1150, /datum/material/glass=75) attack_verb = list("hit", "bludgeoned", "whacked", "bonked") /obj/item/wirerod/attackby(obj/item/I, mob/user, params) @@ -291,7 +296,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 embedding = list("embedded_pain_multiplier" = 4, "embed_chance" = 100, "embedded_fall_chance" = 0) w_class = WEIGHT_CLASS_SMALL sharpness = IS_SHARP - materials = list(MAT_METAL=500, MAT_GLASS=500) + custom_materials = list(/datum/material/iron=500, /datum/material/glass=500) resistance_flags = FIRE_PROOF @@ -307,7 +312,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 throwforce = 5 throw_speed = 3 throw_range = 6 - materials = list(MAT_METAL=12000) + custom_materials = list(/datum/material/iron=12000) hitsound = 'sound/weapons/genhit.ogg' attack_verb = list("stubbed", "poked") resistance_flags = FIRE_PROOF @@ -391,7 +396,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 force = 5 throwforce = 5 w_class = WEIGHT_CLASS_SMALL - materials = list(MAT_METAL=50) + custom_materials = list(/datum/material/iron=50) attack_verb = list("bludgeoned", "whacked", "disciplined", "thrashed") /obj/item/staff diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm index 2d99f0e073..2fd6cf9f4c 100644 --- a/code/game/objects/obj_defense.dm +++ b/code/game/objects/obj_defense.dm @@ -6,20 +6,19 @@ return if(sound_effect) play_attack_sound(damage_amount, damage_type, damage_flag) - if(!(resistance_flags & INDESTRUCTIBLE) && obj_integrity > 0) - damage_amount = run_obj_armor(damage_amount, damage_type, damage_flag, attack_dir, armour_penetration) - if(damage_amount >= DAMAGE_PRECISION) - . = damage_amount - var/old_integ = obj_integrity - obj_integrity = max(old_integ - damage_amount, 0) - if(obj_integrity <= 0) - var/int_fail = integrity_failure - if(int_fail && old_integ > int_fail) - obj_break(damage_flag) - obj_destruction(damage_flag) - else if(integrity_failure) - if(obj_integrity <= integrity_failure) - obj_break(damage_flag) + if((resistance_flags & INDESTRUCTIBLE) || obj_integrity <= 0) + return + damage_amount = run_obj_armor(damage_amount, damage_type, damage_flag, attack_dir, armour_penetration) + if(damage_amount < DAMAGE_PRECISION) + return + . = damage_amount + obj_integrity = max(obj_integrity - damage_amount, 0) + //BREAKING FIRST + if(integrity_failure && obj_integrity <= integrity_failure * max_integrity) + obj_break(damage_flag) + //DESTROYING SECOND + if(obj_integrity <= 0) + obj_destruction(damage_flag) //returns the damage value of the attack after processing the obj's various armor protections /obj/proc/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir, armour_penetration = 0) @@ -271,7 +270,7 @@ GLOBAL_DATUM_INIT(acid_overlay, /mutable_appearance, mutable_appearance('icons/e //changes max_integrity while retaining current health percentage //returns TRUE if the obj broke, FALSE otherwise -/obj/proc/modify_max_integrity(new_max, can_break = TRUE, damage_type = BRUTE, new_failure_integrity = null) +/obj/proc/modify_max_integrity(new_max, can_break = TRUE, damage_type = BRUTE) var/current_integrity = obj_integrity var/current_max = max_integrity @@ -282,10 +281,7 @@ GLOBAL_DATUM_INIT(acid_overlay, /mutable_appearance, mutable_appearance('icons/e max_integrity = new_max - if(new_failure_integrity != null) - integrity_failure = new_failure_integrity - - if(can_break && integrity_failure && current_integrity <= integrity_failure) + if(can_break && integrity_failure && current_integrity <= integrity_failure * max_integrity) obj_break(damage_type) return TRUE return FALSE diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 45b9715b04..3fc183edc6 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -12,7 +12,7 @@ var/datum/armor/armor var/obj_integrity //defaults to max_integrity var/max_integrity = 500 - var/integrity_failure = 0 //0 if we have no special broken behavior + var/integrity_failure = 0 //0 if we have no special broken behavior, otherwise is a percentage of at what point the obj breaks. 0.5 being 50% var/resistance_flags = NONE // INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ON_FIRE | UNACIDABLE | ACID_PROOF @@ -46,7 +46,6 @@ return ..() /obj/Initialize() - . = ..() if (islist(armor)) armor = getArmor(arglist(armor)) else if (!armor) @@ -56,6 +55,9 @@ if(obj_integrity == null) obj_integrity = max_integrity + + . = ..() //Do this after, else mat datums is mad. + if (set_obj_flags) var/flagslist = splittext(set_obj_flags,";") var/list/string_to_objflag = GLOB.bitfields["obj_flags"] @@ -125,7 +127,7 @@ if ((M.client && M.machine == src)) is_in_use = TRUE ui_interact(M) - if(isAI(usr) || iscyborg(usr) || IsAdminGhost(usr)) + if(isAI(usr) || iscyborg(usr) || IsAdminGhost(usr) || hasSiliconAccessInArea(usr)) if (!(usr in nearby)) if (usr.client && usr.machine==src) // && M.machine == src is omitted because if we triggered this by using the dialog, it doesn't matter if our machine changed in between triggering it and this - the dialog is probably still supposed to refresh. is_in_use = TRUE diff --git a/code/game/objects/structures/aliens.dm b/code/game/objects/structures/aliens.dm index 3cc40c8415..32e40bedec 100644 --- a/code/game/objects/structures/aliens.dm +++ b/code/game/objects/structures/aliens.dm @@ -218,7 +218,7 @@ density = FALSE anchored = TRUE max_integrity = 100 - integrity_failure = 5 + integrity_failure = 0.05 var/status = GROWING //can be GROWING, GROWN or BURST; all mutually exclusive layer = MOB_LAYER var/obj/item/clothing/mask/facehugger/child @@ -232,7 +232,7 @@ addtimer(CALLBACK(src, .proc/Grow), rand(MIN_GROWTH_TIME, MAX_GROWTH_TIME)) proximity_monitor = new(src, status == GROWN ? 1 : 0) if(status == BURST) - obj_integrity = integrity_failure + obj_integrity = integrity_failure * max_integrity /obj/structure/alien/egg/update_icon() ..() diff --git a/code/game/objects/structures/barsigns.dm b/code/game/objects/structures/barsigns.dm index b72a4b816e..d2fff9649d 100644 --- a/code/game/objects/structures/barsigns.dm +++ b/code/game/objects/structures/barsigns.dm @@ -5,7 +5,7 @@ icon_state = "empty" req_access = list(ACCESS_BAR) max_integrity = 500 - integrity_failure = 250 + integrity_failure = 0.5 armor = list("melee" = 20, "bullet" = 20, "laser" = 20, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) buildable_sign = 0 var/list/barsigns=list() @@ -308,28 +308,26 @@ icon = "Meow Mix" desc = "No, we don't serve catnip, officer!" +/datum/barsign/the_hive + name = "The Hive" + icon = "thehive" + desc = "Comb in for some sweet drinks! Not known for serving any sappy drink." + /datum/barsign/hiddensigns hidden = TRUE - //Hidden signs list below this point - - /datum/barsign/hiddensigns/empbarsign name = "Haywire Barsign" icon = "empbarsign" desc = "Something has gone very wrong." - - /datum/barsign/hiddensigns/syndibarsign name = "Syndi Cat Takeover" icon = "syndibarsign" desc = "Syndicate or die." - - /datum/barsign/hiddensigns/signoff name = "Bar Sign" icon = "empty" diff --git a/code/game/objects/structures/beds_chairs/bed.dm b/code/game/objects/structures/beds_chairs/bed.dm index e9e09ddc91..5f01a27825 100644 --- a/code/game/objects/structures/beds_chairs/bed.dm +++ b/code/game/objects/structures/beds_chairs/bed.dm @@ -17,7 +17,7 @@ buckle_lying = TRUE resistance_flags = FLAMMABLE max_integrity = 100 - integrity_failure = 30 + integrity_failure = 0.35 var/buildstacktype = /obj/item/stack/sheet/metal var/buildstackamount = 2 var/bolts = TRUE diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm index 9fa4d730b6..0d38f5eca6 100644 --- a/code/game/objects/structures/beds_chairs/chair.dm +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -8,7 +8,8 @@ buckle_lying = 0 //you sit in a chair, not lay resistance_flags = NONE max_integrity = 250 - integrity_failure = 25 + integrity_failure = 0.1 + custom_materials = list(/datum/material/iron = 2000) var/buildstacktype = /obj/item/stack/sheet/metal var/buildstackamount = 1 var/item_chair = /obj/item/chair // if null it can't be picked up @@ -53,8 +54,13 @@ /obj/structure/chair/deconstruct() // If we have materials, and don't have the NOCONSTRUCT flag - if(buildstacktype && (!(flags_1 & NODECONSTRUCT_1))) - new buildstacktype(loc,buildstackamount) + if(!(flags_1 & NODECONSTRUCT_1)) + if(buildstacktype) + new buildstacktype(loc,buildstackamount) + else + for(var/i in custom_materials) + var/datum/material/M = i + new M.sheet_type(loc, FLOOR(custom_materials[M] / MINERAL_MATERIAL_AMOUNT, 1)) ..() /obj/structure/chair/attack_paw(mob/user) @@ -142,6 +148,15 @@ handle_rotation(newdir) // Chair types + + +///Material chair +/obj/structure/chair/greyscale + icon_state = "chair_greyscale" + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR + item_chair = /obj/item/chair/greyscale + buildstacktype = null //Custom mats handle this + /obj/structure/chair/wood icon_state = "wooden_chair" name = "wooden chair" @@ -271,7 +286,8 @@ if(!usr.canUseTopic(src, BE_CLOSE, ismonkey(usr))) return usr.visible_message("[usr] grabs \the [src.name].", "You grab \the [src.name].") - var/C = new item_chair(loc) + var/obj/item/C = new item_chair(loc) + C.set_custom_materials(custom_materials) TransferComponents(C) usr.put_in_hands(C) qdel(src) @@ -296,7 +312,7 @@ throw_range = 3 hitsound = 'sound/items/trayhit1.ogg' hit_reaction_chance = 50 - materials = list(MAT_METAL = 2000) + 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 @@ -324,6 +340,7 @@ user.visible_message("[user] rights \the [src.name].", "You right \the [name].") var/obj/structure/chair/C = new origin_type(get_turf(loc)) + C.set_custom_materials(custom_materials) TransferComponents(C) C.setDir(dir) qdel(src) @@ -357,6 +374,12 @@ C.Knockdown(20) smash(user) +/obj/item/chair/greyscale + icon_state = "chair_greyscale_toppled" + item_state = "chair_greyscale" + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR + origin_type = /obj/structure/chair/greyscale + /obj/item/chair/stool name = "stool" icon_state = "stool_toppled" @@ -370,6 +393,43 @@ item_state = "stool_bar" origin_type = /obj/structure/chair/stool/bar +////////////////////////// +//Alien(Disco) Stools!//// +////////////////////////// + +/obj/structure/chair/stool/alien + name = "alien stool" + desc = "A hard stool made of advanced alien alloy." + icon_state = "stoolalien" + icon = 'icons/obj/abductor.dmi' + item_chair = /obj/item/chair/stool/alien + buildstacktype = /obj/item/stack/sheet/mineral/abductor + buildstackamount = 1 + +/obj/structure/chair/stool/bar/alien + name = "alien bar stool" + desc = "A hard bar stool made of advanced alien alloy." + icon_state = "baralien" + icon = 'icons/obj/abductor.dmi' + item_chair = /obj/item/chair/stool/bar/alien + buildstacktype = /obj/item/stack/sheet/mineral/abductor + buildstackamount = 1 + +/obj/item/chair/stool/alien + name = "stool" + icon_state = "stoolalien_toppled" + item_state = "stoolalien" + icon = 'icons/obj/abductor.dmi' + origin_type = /obj/structure/chair/stool/alien + break_chance = 0 //It's too sturdy. + +/obj/item/chair/stool/bar/alien + name = "bar stool" + icon_state = "baralien_toppled" + item_state = "baralien" + icon = 'icons/obj/abductor.dmi' + origin_type = /obj/structure/chair/stool/bar/alien + ////////////////////////// //Brass & Bronze stools!// ////////////////////////// @@ -445,7 +505,7 @@ max_integrity = 70 hitsound = 'sound/weapons/genhit1.ogg' origin_type = /obj/structure/chair/wood - materials = null + custom_materials = null break_chance = 50 /obj/item/chair/wood/narsie_act() @@ -552,4 +612,4 @@ icon_state = "sofacorner" /obj/structure/chair/sofa/corner/handle_layer() //only the armrest/back of this chair should cover the mob. - return \ No newline at end of file + return diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index daf15832fb..f95f900a48 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -13,7 +13,7 @@ var/large = TRUE var/wall_mounted = 0 //never solid (You can always pass over it) max_integrity = 200 - integrity_failure = 50 + integrity_failure = 0.25 armor = list("melee" = 20, "bullet" = 10, "laser" = 10, "energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 60) var/breakout_time = 1200 var/message_cooldown @@ -359,7 +359,7 @@ "You hear [welder ? "welding" : "rustling of screws and metal"].") deconstruct(TRUE) return - if(user.transferItemToLoc(W, drop_location())) // so we put in unlit welder too + if(user.a_intent != INTENT_HARM && user.transferItemToLoc(W, drop_location())) // so we put in unlit welder too return TRUE else if(istype(W, /obj/item/electronics/airlock)) handle_lock_addition(user, W) diff --git a/code/game/objects/structures/crates_lockers/closets/genpop.dm b/code/game/objects/structures/crates_lockers/closets/genpop.dm index 80b64aaedc..2b263bb1ed 100644 --- a/code/game/objects/structures/crates_lockers/closets/genpop.dm +++ b/code/game/objects/structures/crates_lockers/closets/genpop.dm @@ -95,7 +95,7 @@ if(user.lying && get_dist(src, user) > 0) return - if(!broken && registered_id != null && registered_id in user.held_items) + if(!broken && registered_id != null && (registered_id in user.held_items)) handle_prisoner_id(user) return diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm index 3167d8ac18..90b57471b4 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -76,7 +76,7 @@ new /obj/item/door_remote/chief_medical_officer(src) new /obj/item/clothing/neck/petcollar(src) new /obj/item/pet_carrier(src) - new /obj/item/storage/belt/medical/surgery_belt_adv(src) + new /obj/item/storage/belt/medical/surgery_belt_adv/cmo(src) new /obj/item/wallframe/defib_mount(src) new /obj/item/circuitboard/machine/techfab/department/medical(src) new /obj/item/storage/photo_album/CMO(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index 1517b30d9c..bec1c893ae 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -2,38 +2,21 @@ name = "\proper captain's locker" req_access = list(ACCESS_CAPTAIN) icon_state = "cap" -/obj/structure/closet/secure_closet/captains/PopulateContents() +/obj/structure/closet/secure_closet/captains/PopulateContents() //Excess clothing and such can be found in the Captain's Wardrobe. You can also find this file in code/modules/vending/wardrobes. ..() - new /obj/item/clothing/suit/hooded/wintercoat/captain(src) - new /obj/item/storage/backpack/captain(src) - new /obj/item/storage/backpack/satchel/cap(src) - new /obj/item/storage/backpack/duffelbag/captain(src) - new /obj/item/clothing/neck/cloak/cap(src) - new /obj/item/clothing/neck/petcollar(src) + new /obj/item/clothing/neck/petcollar(src) //I considered removing the pet stuff too but eh, who knows. We might get Renault back. Plus I guess you could use that collar for... other means. Aren't you supposed to be guarding the disk? new /obj/item/pet_carrier(src) - new /obj/item/clothing/shoes/sneakers/brown(src) - new /obj/item/clothing/under/rank/captain(src) - new /obj/item/clothing/under/rank/captain/skirt(src) new /obj/item/clothing/suit/armor/vest/capcarapace(src) - new /obj/item/clothing/head/caphat(src) - new /obj/item/clothing/under/captainparade(src) new /obj/item/clothing/suit/armor/vest/capcarapace/alt(src) - new /obj/item/clothing/head/caphat/parade(src) - new /obj/item/clothing/head/caphat/beret(src) - new /obj/item/clothing/suit/captunic(src) - new /obj/item/clothing/under/rank/captain/femformal(src) //citadel edit new /obj/item/clothing/head/crown/fancy(src) new /obj/item/cartridge/captain(src) new /obj/item/storage/box/silver_ids(src) new /obj/item/radio/headset/heads/captain/alt(src) new /obj/item/radio/headset/heads/captain(src) - new /obj/item/clothing/glasses/sunglasses/gar/supergar(src) - new /obj/item/clothing/gloves/color/captain(src) new /obj/item/storage/belt/sabre(src) new /obj/item/gun/energy/e_gun(src) new /obj/item/door_remote/captain(src) new /obj/item/storage/photo_album/Captain(src) - new /obj/item/clothing/head/caphat/beret/white(src) /obj/structure/closet/secure_closet/hop name = "\proper head of personnel's locker" @@ -282,12 +265,15 @@ new /obj/item/clothing/head/helmet/alt(src) new /obj/item/clothing/mask/gas/sechailer(src) new /obj/item/clothing/suit/armor/bulletproof(src) + /obj/structure/closet/secure_closet/lethalshots - name = "shotgun lethal rounds" + name = "lethal ammunition and riot staves" req_access = list(ACCESS_ARMORY) icon_state = "tac" /obj/structure/closet/secure_closet/lethalshots/PopulateContents() ..() + new /obj/item/twohanded/electrostaff(src) + new /obj/item/twohanded/electrostaff(src) for(var/i in 1 to 3) new /obj/item/storage/box/lethalshot(src) diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index a6c0b22ad7..b14303984e 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -47,6 +47,12 @@ if(manifest) tear_manifest(user) +/obj/structure/closet/crate/tool_interact(obj/item/W, mob/user) + if(W.tool_behaviour == TOOL_WIRECUTTER && manifest) + tear_manifest(user) + return TRUE + return ..() + /obj/structure/closet/crate/open(mob/living/user) . = ..() if(. && manifest) diff --git a/code/game/objects/structures/crates_lockers/crates/bins.dm b/code/game/objects/structures/crates_lockers/crates/bins.dm index 7646fdb35f..bc3697a550 100644 --- a/code/game/objects/structures/crates_lockers/crates/bins.dm +++ b/code/game/objects/structures/crates_lockers/crates/bins.dm @@ -4,8 +4,8 @@ icon_state = "largebins" open_sound = 'sound/effects/bin_open.ogg' close_sound = 'sound/effects/bin_close.ogg' - material_drop = /obj/item/stack/sheet/plastic - material_drop_amount = 40 + material_drop = /obj/item/stack/sheet/metal + material_drop_amount = 10 anchored = TRUE horizontal = FALSE delivery_icon = null diff --git a/code/game/objects/structures/crates_lockers/crates/secure.dm b/code/game/objects/structures/crates_lockers/crates/secure.dm index 290e69370b..602adfb367 100644 --- a/code/game/objects/structures/crates_lockers/crates/secure.dm +++ b/code/game/objects/structures/crates_lockers/crates/secure.dm @@ -70,3 +70,8 @@ name = "secure science crate" desc = "A crate with a lock on it, painted in the scheme of the station's scientists." icon_state = "scisecurecrate" + +/obj/structure/closet/crate/secure/medical + desc = "A secure medical crate." + name = "medical crate" + icon_state = "medical_secure_crate" \ No newline at end of file diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm index 70533df0ad..8a5b678f22 100644 --- a/code/game/objects/structures/displaycase.dm +++ b/code/game/objects/structures/displaycase.dm @@ -8,7 +8,7 @@ resistance_flags = ACID_PROOF armor = list("melee" = 30, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 100) max_integrity = 200 - integrity_failure = 50 + integrity_failure = 0.25 var/obj/item/showpiece = null var/alert = TRUE var/open = FALSE diff --git a/code/game/objects/structures/extinguisher.dm b/code/game/objects/structures/extinguisher.dm index 7014081042..2124c83d7d 100644 --- a/code/game/objects/structures/extinguisher.dm +++ b/code/game/objects/structures/extinguisher.dm @@ -6,7 +6,7 @@ anchored = TRUE density = FALSE max_integrity = 200 - integrity_failure = 50 + integrity_failure = 0.25 var/obj/item/extinguisher/stored_extinguisher var/opened = FALSE diff --git a/code/game/objects/structures/fireaxe.dm b/code/game/objects/structures/fireaxe.dm index 448734d917..8457a397a9 100644 --- a/code/game/objects/structures/fireaxe.dm +++ b/code/game/objects/structures/fireaxe.dm @@ -7,7 +7,7 @@ density = FALSE armor = list("melee" = 50, "bullet" = 20, "laser" = 0, "energy" = 100, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 50) max_integrity = 150 - integrity_failure = 50 + integrity_failure = 0.33 var/locked = TRUE var/open = FALSE var/obj/item/twohanded/fireaxe/fireaxe diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index e9d9e4ce77..116c598235 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -19,21 +19,20 @@ Estimated time of last contact: Deployment, 5000 millennia ago." assignedrole = "Lifebringer" -/obj/effect/mob_spawn/human/seed_vault/special(mob/living/new_spawn) - var/plant_name = pick("Tomato", "Potato", "Broccoli", "Carrot", "Ambrosia", "Pumpkin", "Ivy", "Kudzu", "Banana", "Moss", "Flower", "Bloom", "Root", "Bark", "Glowshroom", "Petal", "Leaf", \ - "Venus", "Sprout","Cocoa", "Strawberry", "Citrus", "Oak", "Cactus", "Pepper", "Juniper") - new_spawn.real_name = plant_name - if(ishuman(new_spawn)) - var/mob/living/carbon/human/H = new_spawn - H.underwear = "Nude" //You're a plant, partner - H.update_body() - /obj/effect/mob_spawn/human/seed_vault/Destroy() new/obj/structure/fluff/empty_terrarium(get_turf(src)) return ..() /obj/effect/mob_spawn/human/seed_vault/special(mob/living/carbon/human/new_spawn) ADD_TRAIT(new_spawn,TRAIT_EXEMPT_HEALTH_EVENTS,GHOSTROLE_TRAIT) + var/plant_name = pick("Tomato", "Potato", "Broccoli", "Carrot", "Ambrosia", "Pumpkin", "Ivy", "Kudzu", "Banana", "Moss", "Flower", "Bloom", "Root", "Bark", "Glowshroom", "Petal", "Leaf", \ + "Venus", "Sprout","Cocoa", "Strawberry", "Citrus", "Oak", "Cactus", "Pepper", "Juniper") + new_spawn.real_name = plant_name //why this works when moving it from one function to another is beyond me + new_spawn.underwear = "Nude" //You're a plant, partner + new_spawn.undershirt = "Nude" //changing underwear/shirt/socks doesn't seem to function correctly right now because of some bug elsewhere? + new_spawn.socks = "Nude" + new_spawn.update_body() + //Ash walker eggs: Spawns in ash walker dens in lavaland. Ghosts become unbreathing lizards that worship the Necropolis and are advised to retrieve corpses to create more ash walkers. /obj/effect/mob_spawn/human/ash_walker @@ -51,19 +50,30 @@ move_resist = MOVE_FORCE_NORMAL density = FALSE short_desc = "You are an ash walker. Your tribe worships the Necropolis." - flavour_text = "The wastes are sacred ground, its monsters a blessed bounty. You would never leave its sacred ground. \ - You have seen lights in the distance... they foreshadow the arrival of outsiders that seek to tear apart the Necropolis and its domain. \ - Fresh sacrifices for your nest." + flavour_text = "The wastes are sacred ground, its monsters a blessed bounty. You would never willingly leave your homeland behind. \ + You have seen lights in the distance... they foreshadow the arrival of outsiders to your domain. \ + Ensure your nest remains protected at all costs." assignedrole = "Ash Walker" /obj/effect/mob_spawn/human/ash_walker/special(mob/living/new_spawn) new_spawn.real_name = random_unique_lizard_name(gender) - to_chat(new_spawn, "Drag the corpses of men and beasts to your nest. It will absorb them to create more of your kind. Glory to the Necropolis!") + if(is_mining_level(z)) + to_chat(new_spawn, "Drag the corpses of men and beasts to your nest. It will absorb them to create more of your kind. Glory to the Necropolis!") + else + to_chat(new_spawn, "You have been born outside of your natural home! Whether you decide to return home, or make due with your new home is your own decision.") new_spawn.grant_language(/datum/language/draconic) var/datum/language_holder/holder = new_spawn.get_language_holder() holder.selected_default_language = /datum/language/draconic +//Ash walkers on birth understand how to make bone bows, bone arrows and ashen arrows + + new_spawn.mind.teach_crafting_recipe(/datum/crafting_recipe/bone_arrow) + new_spawn.mind.teach_crafting_recipe(/datum/crafting_recipe/bone_bow) + new_spawn.mind.teach_crafting_recipe(/datum/crafting_recipe/ashen_arrow) + new_spawn.mind.teach_crafting_recipe(/datum/crafting_recipe/quiver) + new_spawn.mind.teach_crafting_recipe(/datum/crafting_recipe/bow_tablet) + if(ishuman(new_spawn)) var/mob/living/carbon/human/H = new_spawn H.underwear = "Nude" diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index 0d4444303e..0f43040c87 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -10,7 +10,7 @@ layer = BELOW_OBJ_LAYER armor = list("melee" = 50, "bullet" = 70, "laser" = 70, "energy" = 100, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 0, "acid" = 0) max_integrity = 50 - integrity_failure = 20 + integrity_failure = 0.4 var/rods_type = /obj/item/stack/rods var/rods_amount = 2 var/rods_broken = TRUE diff --git a/code/game/objects/structures/holosign.dm b/code/game/objects/structures/holosign.dm index 92fda29101..fc1e642468 100644 --- a/code/game/objects/structures/holosign.dm +++ b/code/game/objects/structures/holosign.dm @@ -110,10 +110,10 @@ CanAtmosPass = ATMOS_PASS_NO resistance_flags = FIRE_PROOF -/obj/structure/holosign/barrier/combolock/blocksTemperature() +/obj/structure/holosign/barrier/combifan/blocksTemperature() return TRUE -/obj/structure/holosign/barrier/combolock/Initialize() +/obj/structure/holosign/barrier/combifan/Initialize() . = ..() air_update_turf(TRUE) diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index 54b9d650d5..58c8a739dc 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -6,11 +6,11 @@ anchored = FALSE density = TRUE //copypaste sorry - var/amount_per_transfer_from_this = 5 //shit I dunno, adding this so syringes stop runtime erroring. --NeoFite - var/obj/item/storage/bag/trash/mybag = null - var/obj/item/mop/mymop = null - var/obj/item/reagent_containers/spray/cleaner/myspray = null - var/obj/item/lightreplacer/myreplacer = null + var/obj/item/storage/bag/trash/mybag + var/obj/item/mop/mymop + var/obj/item/twohanded/broom/mybroom + var/obj/item/reagent_containers/spray/cleaner/myspray + var/obj/item/lightreplacer/myreplacer var/signs = 0 var/const/max_signs = 4 @@ -49,7 +49,12 @@ m.janicart_insert(user, src) else to_chat(user, fail_msg) - + else if(istype(I, /obj/item/twohanded/broom)) + if(!mybroom) + var/obj/item/twohanded/broom/b=I + b.janicart_insert(user,src) + else + to_chat(user, fail_msg) else if(istype(I, /obj/item/storage/bag/trash)) if(!mybag) var/obj/item/storage/bag/trash/t=I @@ -97,6 +102,8 @@ dat += "[mybag.name]
" if(mymop) dat += "[mymop.name]
" + if(mybroom) + dat += "[mybroom.name]
" if(myspray) dat += "[myspray.name]
" if(myreplacer) @@ -124,6 +131,11 @@ user.put_in_hands(mymop) to_chat(user, "You take [mymop] from [src].") mymop = null + if(href_list["broom"]) + if(mybroom) + user.put_in_hands(mybroom) + to_chat(user, "You take [mybroom] from [src].") + mybroom = null if(href_list["spray"]) if(myspray) user.put_in_hands(myspray) @@ -155,6 +167,8 @@ add_overlay("cart_garbage") if(mymop) add_overlay("cart_mop") + if(mybroom) + add_overlay("cart_broom") if(myspray) add_overlay("cart_spray") if(myreplacer) diff --git a/code/game/objects/structures/kitchen_spike.dm b/code/game/objects/structures/kitchen_spike.dm index 21622519c9..ebac89579b 100644 --- a/code/game/objects/structures/kitchen_spike.dm +++ b/code/game/objects/structures/kitchen_spike.dm @@ -64,6 +64,9 @@ /obj/structure/kitchenspike/attack_hand(mob/user) if(VIABLE_MOB_CHECK(user.pulling) && user.a_intent == INTENT_GRAB && !has_buckled_mobs()) var/mob/living/L = user.pulling + if(HAS_TRAIT(user, TRAIT_PACIFISM) && L.stat != DEAD) + to_chat(user, "You don't want to hurt a living creature!") + return if(do_mob(user, src, 120)) if(has_buckled_mobs()) //to prevent spam/queing up attacks return diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index d4645ec69a..e5ca09c7b8 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -7,7 +7,7 @@ density = FALSE anchored = TRUE max_integrity = 200 - integrity_failure = 100 + integrity_failure = 0.5 /obj/structure/mirror/Initialize(mapload) . = ..() diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index 7696a13bb2..bf891ef223 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -168,7 +168,7 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an /obj/structure/bodycontainer/morgue/AltClick(mob/user) . = ..() - if(!user.canUseTopic(src, !issilicon(user))) + if(!user.canUseTopic(src, !hasSiliconAccessInArea(user))) return beeper = !beeper to_chat(user, "You turn the speaker function [beeper ? "on" : "off"].") diff --git a/code/game/objects/structures/table_frames.dm b/code/game/objects/structures/table_frames.dm index f62bed878b..e3cd053d94 100644 --- a/code/game/objects/structures/table_frames.dm +++ b/code/game/objects/structures/table_frames.dm @@ -31,21 +31,34 @@ return var/obj/item/stack/material = I - if (istype(I, /obj/item/stack) && material?.tableVariant) - if(material.get_amount() < 1) - to_chat(user, "You need one [material.name] sheet to do this!") - return - to_chat(user, "You start adding [material] to [src]...") - if(do_after(user, 20, target = src) && material.use(1)) - make_new_table(material.tableVariant) + if (istype(I, /obj/item/stack)) + if(material?.tableVariant) + if(material.get_amount() < 1) + to_chat(user, "You need one [material.name] sheet to do this!") + return + to_chat(user, "You start adding [material] to [src]...") + if(do_after(user, 20, target = src) && material.use(1)) + make_new_table(material.tableVariant) + else + if(material.get_amount() < 1) + to_chat(user, "You need one metal sheet to do this!") + return + to_chat(user, "You start adding [material] to [src]...") + if(do_after(user, 20, target = src) && material.use(1)) + var/list/material_list = list() + if(material.material_type) + material_list[material.material_type] = MINERAL_MATERIAL_AMOUNT + make_new_table(/obj/structure/table/greyscale, material_list) else return ..() -/obj/structure/table_frame/proc/make_new_table(table_type) //makes sure the new table made retains what we had as a frame +/obj/structure/table_frame/proc/make_new_table(table_type, custom_materials) //makes sure the new table made retains what we had as a frame var/obj/structure/table/T = new table_type(loc) T.frame = type T.framestack = framestack T.framestackamount = framestackamount + if(custom_materials) + T.set_custom_materials(custom_materials) qdel(src) /obj/structure/table_frame/deconstruct(disassembled = TRUE) diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index f64f740a27..4eba21b8f9 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -31,9 +31,9 @@ var/framestackamount = 2 var/deconstruction_ready = 1 max_integrity = 100 - integrity_failure = 30 + integrity_failure = 0.33 smooth = SMOOTH_TRUE - canSmoothWith = list(/obj/structure/table, /obj/structure/table/reinforced) + canSmoothWith = list(/obj/structure/table, /obj/structure/table/reinforced, /obj/structure/table/greyscale) /obj/structure/table/examine(mob/user) . = ..() @@ -197,13 +197,23 @@ /obj/structure/table/deconstruct(disassembled = TRUE, wrench_disassembly = 0) if(!(flags_1 & NODECONSTRUCT_1)) var/turf/T = get_turf(src) - new buildstack(T, buildstackamount) + if(buildstack) + new buildstack(T, buildstackamount) + else + for(var/i in custom_materials) + var/datum/material/M = i + new M.sheet_type(T, FLOOR(custom_materials[M] / MINERAL_MATERIAL_AMOUNT, 1)) if(!wrench_disassembly) new frame(T) else new framestack(T, framestackamount) qdel(src) +/obj/structure/table/greyscale + icon = 'icons/obj/smooth_structures/table_greyscale.dmi' + icon_state = "table" + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR + buildstack = null //No buildstack, so generate from mat datums /* * Glass tables @@ -456,9 +466,8 @@ icon_state = "r_table" deconstruction_ready = 0 buildstack = /obj/item/stack/sheet/plasteel - canSmoothWith = list(/obj/structure/table/reinforced, /obj/structure/table) max_integrity = 200 - integrity_failure = 50 + integrity_failure = 0.25 armor = list("melee" = 10, "bullet" = 30, "laser" = 30, "energy" = 100, "bomb" = 20, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 70) /obj/structure/table/reinforced/deconstruction_hints(mob/user) @@ -674,7 +683,7 @@ icon = 'icons/obj/items_and_weapons.dmi' icon_state = "rack_parts" flags_1 = CONDUCT_1 - materials = list(MAT_METAL=2000) + custom_materials = list(/datum/material/iron=2000) var/building = FALSE /obj/item/rack_parts/attackby(obj/item/W, mob/user, params) diff --git a/code/game/objects/structures/traps.dm b/code/game/objects/structures/traps.dm index 9c1859df08..3f559382f0 100644 --- a/code/game/objects/structures/traps.dm +++ b/code/game/objects/structures/traps.dm @@ -35,7 +35,7 @@ . = ..() if(!isliving(user)) return - if(user.mind && user.mind in immune_minds) + if(user.mind && (user.mind in immune_minds)) return if(get_dist(user, src) <= 1) . += "You reveal [src]!" @@ -135,7 +135,19 @@ density = TRUE time_between_triggers = 1200 //Exists for 2 minutes - /obj/structure/trap/ward/New() ..() QDEL_IN(src, time_between_triggers) + +/obj/structure/trap/cult + name = "unholy trap" + desc = "A trap that rings with unholy energy. You think you hear... chittering?" + icon_state = "trap-cult" + +/obj/structure/trap/cult/trap_effect(mob/living/L) + to_chat(L, "With a crack, the hostile constructs come out of hiding, stunning you!") + L.electrocute_act(10, src, safety = TRUE) // electrocute act does a message. + L.Knockdown(20) + new /mob/living/simple_animal/hostile/construct/proteon/hostile(loc) + new /mob/living/simple_animal/hostile/construct/proteon/hostile(loc) + QDEL_IN(src, 30) \ No newline at end of file diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index a8f95e30da..359436dc2e 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -528,8 +528,8 @@ if(B.cell) if(B.cell.charge > 0 && B.status == 1) flick("baton_active", src) - var/stunforce = B.stunforce - user.Knockdown(stunforce) + var/stunforce = B.stamforce + user.Knockdown(stunforce * 2) user.stuttering = stunforce/20 B.deductcharge(B.hitcost) user.visible_message("[user] shocks [user.p_them()]self while attempting to wash the active [B.name]!", \ diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 14a7e445c1..d4925c8604 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -595,6 +595,14 @@ /obj/structure/window/plastitanium/unanchored anchored = FALSE +//pirate ship windows +/obj/structure/window/plastitanium/pirate + desc = "Yarr this window be explosion proof!" + explosion_block = 30 + +/obj/structure/window/plastitanium/pirate/unanchored + anchored = FALSE + /obj/structure/window/reinforced/clockwork name = "brass window" desc = "A paper-thin pane of translucent yet reinforced brass." diff --git a/code/game/say.dm b/code/game/say.dm index b275d8b69c..85ae9f0681 100644 --- a/code/game/say.dm +++ b/code/game/say.dm @@ -129,7 +129,7 @@ GLOBAL_LIST_INIT(freqtospan, list( /atom/movable/proc/attach_spans(input, list/spans) var/customsayverb = findtext(input, "*") if(customsayverb) - input = capitalize(copytext(input, length(input[customsayverb]) + 1)) + input = capitalize(copytext(input, customsayverb + length(input[customsayverb]))) if(input) return "[message_spans_start(spans)][input]
" else diff --git a/code/game/sound.dm b/code/game/sound.dm index e7562476a8..11e026109a 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -184,6 +184,8 @@ soundin = pick('sound/items/bikehorn.ogg', 'sound/items/AirHorn2.ogg', 'sound/misc/sadtrombone.ogg', 'sound/items/AirHorn.ogg', 'sound/effects/reee.ogg', 'sound/items/WEEOO1.ogg', 'sound/voice/beepsky/iamthelaw.ogg', 'sound/voice/beepsky/creep.ogg','sound/magic/Fireball.ogg' ,'sound/effects/pray.ogg', 'sound/voice/hiss1.ogg','sound/machines/buzz-sigh.ogg', 'sound/machines/ping.ogg', 'sound/weapons/flashbang.ogg', 'sound/weapons/bladeslice.ogg') if("goose") soundin = pick('sound/creatures/goose1.ogg', 'sound/creatures/goose2.ogg', 'sound/creatures/goose3.ogg', 'sound/creatures/goose4.ogg') + if("water_wade") + soundin = pick('sound/effects/water_wade1.ogg', 'sound/effects/water_wade2.ogg', 'sound/effects/water_wade3.ogg', 'sound/effects/water_wade4.ogg') //START OF CIT CHANGES - adds random vore sounds if ("struggle_sound") soundin = pick( 'sound/vore/pred/struggle_01.ogg','sound/vore/pred/struggle_02.ogg','sound/vore/pred/struggle_03.ogg', diff --git a/code/game/turfs/simulated/floor/fancy_floor.dm b/code/game/turfs/simulated/floor/fancy_floor.dm index f38a8a3d9b..c9b429cecc 100644 --- a/code/game/turfs/simulated/floor/fancy_floor.dm +++ b/code/game/turfs/simulated/floor/fancy_floor.dm @@ -214,7 +214,7 @@ floor_tile = /obj/item/stack/tile/carpet broken_states = list("damaged") smooth = SMOOTH_TRUE - canSmoothWith = list(/turf/open/floor/carpet) + canSmoothWith = list(/turf/open/floor/carpet, /turf/open/floor/carpet/airless) flags_1 = NONE bullet_bounce_sound = null footstep = FOOTSTEP_CARPET @@ -245,59 +245,99 @@ /turf/open/floor/carpet/black icon = 'icons/turf/floors/carpet_black.dmi' floor_tile = /obj/item/stack/tile/carpet/black - canSmoothWith = list(/turf/open/floor/carpet/black, /turf/open/floor/carpet/blackred, /turf/open/floor/carpet/monochrome) + smooth = SMOOTH_MORE + canSmoothWith = list(/turf/open/floor/carpet/black, /turf/open/floor/carpet/blackred, /turf/open/floor/carpet/monochrome) /turf/open/floor/carpet/blackred icon = 'icons/turf/floors/carpet_blackred.dmi' floor_tile = /obj/item/stack/tile/carpet/blackred icon_state = "tile-carpet-blackred" - canSmoothWith = list(/turf/open/floor/carpet/black, /turf/open/floor/carpet/blackred, /turf/open/floor/carpet/monochrome) + smooth = SMOOTH_MORE + canSmoothWith = list(/turf/open/floor/carpet/black, /turf/open/floor/carpet/blackred, /turf/open/floor/carpet/monochrome) /turf/open/floor/carpet/monochrome icon = 'icons/turf/floors/carpet_monochrome.dmi' floor_tile = /obj/item/stack/tile/carpet/monochrome icon_state = "tile-carpet-monochrome" - canSmoothWith = list(/turf/open/floor/carpet/black, /turf/open/floor/carpet/blackred, /turf/open/floor/carpet/monochrome) + smooth = SMOOTH_MORE + canSmoothWith = list(/turf/open/floor/carpet/black, /turf/open/floor/carpet/blackred, /turf/open/floor/carpet/monochrome) /turf/open/floor/carpet/blue icon = 'icons/turf/floors/carpet_blue.dmi' floor_tile = /obj/item/stack/tile/carpet/blue - canSmoothWith = list(/turf/open/floor/carpet/blue) + canSmoothWith = list(/turf/open/floor/carpet/blue, /turf/open/floor/carpet/blue/airless) /turf/open/floor/carpet/cyan icon = 'icons/turf/floors/carpet_cyan.dmi' floor_tile = /obj/item/stack/tile/carpet/cyan - canSmoothWith = list(/turf/open/floor/carpet/cyan) + canSmoothWith = list(/turf/open/floor/carpet/cyan, /turf/open/floor/carpet/cyan/airless) /turf/open/floor/carpet/green icon = 'icons/turf/floors/carpet_green.dmi' floor_tile = /obj/item/stack/tile/carpet/green - canSmoothWith = list(/turf/open/floor/carpet/green) + canSmoothWith = list(/turf/open/floor/carpet/green, /turf/open/floor/carpet/green/airless) /turf/open/floor/carpet/orange icon = 'icons/turf/floors/carpet_orange.dmi' floor_tile = /obj/item/stack/tile/carpet/orange - canSmoothWith = list(/turf/open/floor/carpet/orange) + canSmoothWith = list(/turf/open/floor/carpet/orange, /turf/open/floor/carpet/orange/airless) /turf/open/floor/carpet/purple icon = 'icons/turf/floors/carpet_purple.dmi' floor_tile = /obj/item/stack/tile/carpet/purple - canSmoothWith = list(/turf/open/floor/carpet/purple) + canSmoothWith = list(/turf/open/floor/carpet/purple, /turf/open/floor/carpet/purple/airless) /turf/open/floor/carpet/red icon = 'icons/turf/floors/carpet_red.dmi' floor_tile = /obj/item/stack/tile/carpet/red - canSmoothWith = list(/turf/open/floor/carpet/red) + canSmoothWith = list(/turf/open/floor/carpet/red, /turf/open/floor/carpet/red/airless) /turf/open/floor/carpet/royalblack icon = 'icons/turf/floors/carpet_royalblack.dmi' floor_tile = /obj/item/stack/tile/carpet/royalblack - canSmoothWith = list(/turf/open/floor/carpet/royalblack) + canSmoothWith = list(/turf/open/floor/carpet/royalblack, /turf/open/floor/carpet/royalblack/airless) /turf/open/floor/carpet/royalblue icon = 'icons/turf/floors/carpet_royalblue.dmi' floor_tile = /obj/item/stack/tile/carpet/royalblue - canSmoothWith = list(/turf/open/floor/carpet/royalblue) + canSmoothWith = list(/turf/open/floor/carpet/royalblue, /turf/open/floor/carpet/royalblue/airless) + +//*****Airless versions of all of the above.***** +/turf/open/floor/carpet/airless + initial_gas_mix = AIRLESS_ATMOS + +/turf/open/floor/carpet/black/airless + initial_gas_mix = AIRLESS_ATMOS + +/turf/open/floor/carpet/blackred/airless + initial_gas_mix = AIRLESS_ATMOS + +/turf/open/floor/carpet/monochrome/airless + initial_gas_mix = AIRLESS_ATMOS + +/turf/open/floor/carpet/blue/airless + initial_gas_mix = AIRLESS_ATMOS + +/turf/open/floor/carpet/cyan/airless + initial_gas_mix = AIRLESS_ATMOS + +/turf/open/floor/carpet/green/airless + initial_gas_mix = AIRLESS_ATMOS + +/turf/open/floor/carpet/orange/airless + initial_gas_mix = AIRLESS_ATMOS + +/turf/open/floor/carpet/purple/airless + initial_gas_mix = AIRLESS_ATMOS + +/turf/open/floor/carpet/red/airless + initial_gas_mix = AIRLESS_ATMOS + +/turf/open/floor/carpet/royalblack/airless + initial_gas_mix = AIRLESS_ATMOS + +/turf/open/floor/carpet/royalblue/airless + initial_gas_mix = AIRLESS_ATMOS /turf/open/floor/carpet/narsie_act(force, ignore_mobs, probability = 20) . = (prob(probability) || force) diff --git a/code/game/turfs/simulated/minerals.dm b/code/game/turfs/simulated/minerals.dm index d0e941e69f..c61ac8972c 100644 --- a/code/game/turfs/simulated/minerals.dm +++ b/code/game/turfs/simulated/minerals.dm @@ -168,6 +168,11 @@ M.levelupdate() +/turf/closed/mineral/random/no_caves + mineralSpawnChanceList = list(/turf/closed/mineral/uranium = 5, /turf/closed/mineral/diamond = 1, /turf/closed/mineral/gold = 10, + /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/high_chance icon_state = "rock_highchance" mineralChance = 25 diff --git a/code/game/turfs/simulated/wall/mineral_walls.dm b/code/game/turfs/simulated/wall/mineral_walls.dm index d55cb0b475..b04f4f0aa0 100644 --- a/code/game/turfs/simulated/wall/mineral_walls.dm +++ b/code/game/turfs/simulated/wall/mineral_walls.dm @@ -302,4 +302,4 @@ /turf/closed/wall/mineral/plastitanium/copyTurf(turf/T) . = ..() - T.transform = transform + T.transform = transform \ No newline at end of file diff --git a/code/game/turfs/simulated/wall/reinf_walls.dm b/code/game/turfs/simulated/wall/reinf_walls.dm index 8eab4c34fe..a1d2c1757c 100644 --- a/code/game/turfs/simulated/wall/reinf_walls.dm +++ b/code/game/turfs/simulated/wall/reinf_walls.dm @@ -258,3 +258,22 @@ /turf/closed/wall/r_wall/syndicate/overspace icon_state = "map-overspace" fixed_underlay = list("space"=1) + +/////////////////////Pirate Ship walls///////////////////// + +/turf/closed/wall/r_wall/syndicate/pirate + desc = "Yarr just try to blow this to smithereens!" + explosion_block = 30 + canSmoothWith = list(/turf/closed/wall/r_wall/syndicate/pirate, /obj/machinery/door/airlock/shuttle, /obj/machinery/door/airlock, /obj/structure/window/plastitanium/pirate, /obj/structure/shuttle/engine, /obj/structure/falsewall/plastitanium) + +/turf/closed/wall/r_wall/syndicate/pirate/nodiagonal + smooth = SMOOTH_MORE + icon_state = "map-shuttle_nd" + +/turf/closed/wall/r_wall/syndicate/pirate/nosmooth + icon = 'icons/turf/shuttle.dmi' + icon_state = "wall" + +/turf/closed/wall/r_wall/syndicate/pirate/overspace + icon_state = "map-overspace" + fixed_underlay = list("space"=1) diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index 460c6a52c9..d26a6efb02 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -171,7 +171,8 @@ var/turf/T = user.loc //get user's location for delay checks //the istype cascade has been spread among various procs for easy overriding - if(try_clean(W, user, T) || try_wallmount(W, user, T) || try_decon(W, user, T) || try_destroy(W, user, T)) + var/srctype = type + if(try_clean(W, user, T) || try_wallmount(W, user, T) || try_decon(W, user, T) || (type == srctype && try_destroy(W, user, T))) return return ..() diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 688e03def3..578d6d10ae 100755 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -362,16 +362,14 @@ . = ..() if(.) return - if(!user || !istype(user, /mob/living)) - return FALSE if(length(src_object.contents())) to_chat(user, "You start dumping out the contents...") - if(!do_after(usr,20,target=src_object.parent)) + if(!do_after(user,20,target=src_object.parent)) return FALSE var/list/things = src_object.contents() var/datum/progressbar/progress = new(user, things.len, src) - while (do_after(usr, 10, TRUE, src, FALSE, CALLBACK(src_object, /datum/component/storage.proc/mass_remove_from_storage, src, things, progress))) + while (do_after(user, 10, TRUE, src, FALSE, CALLBACK(src_object, /datum/component/storage.proc/mass_remove_from_storage, src, things, progress))) stoplag(1) qdel(progress) @@ -554,6 +552,8 @@ //if the vomit combined, apply toxicity and reagents to the old vomit if (QDELETED(V)) V = locate() in src + if(!V) //the decal was spawned on a wall or groundless turf and promptly qdeleted. + return // Make toxins and blazaam vomit look different if(toxvomit == VOMIT_PURPLE) V.icon_state = "vomitpurp_[pick(1,4)]" diff --git a/code/game/world.dm b/code/game/world.dm index 6b380e0f94..77361310b8 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -10,6 +10,10 @@ GLOBAL_LIST(topic_status_cache) /world/New() enable_debugger() +#if DM_VERSION >= 513 && DM_BUILD >= 1506 + world.Profile(PROFILE_START) +#endif + log_world("World loaded at [TIME_STAMP("hh:mm:ss", FALSE)]!") SetupExternalRSC() @@ -18,7 +22,7 @@ GLOBAL_LIST(topic_status_cache) make_datum_references_lists() //initialises global lists for referencing frequently used datums (so that we only ever do it once) - TgsNew() + TgsNew(minimum_required_security_level = TGS_SECURITY_TRUSTED) GLOB.revdata = new diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 372902e8d6..bb0224bbfc 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -240,7 +240,7 @@ if( isemptylist(GLOB.news_network.network_channels) ) dat+="No active channels found..." else - for(var/datum/newscaster/feed_channel/CHANNEL in GLOB.news_network.network_channels) + for(var/datum/news/feed_channel/CHANNEL in GLOB.news_network.network_channels) if(CHANNEL.is_admin_channel) dat+="[CHANNEL.channel_name]
" else @@ -277,7 +277,7 @@ if(src.admincaster_feed_channel.channel_name =="" || src.admincaster_feed_channel.channel_name == "\[REDACTED\]") dat+="•Invalid channel name.
" var/check = 0 - for(var/datum/newscaster/feed_channel/FC in GLOB.news_network.network_channels) + for(var/datum/news/feed_channel/FC in GLOB.news_network.network_channels) if(FC.channel_name == src.admincaster_feed_channel.channel_name) check = 1 break @@ -294,7 +294,7 @@ dat+="No feed messages found in channel...
" else var/i = 0 - for(var/datum/newscaster/feed_message/MESSAGE in src.admincaster_feed_channel.messages) + for(var/datum/news/feed_message/MESSAGE in src.admincaster_feed_channel.messages) i++ dat+="-[MESSAGE.returnBody(-1)]
" if(MESSAGE.img) @@ -302,7 +302,7 @@ dat+="

" dat+="\[Story by [MESSAGE.returnAuthor(-1)]\]
" dat+="[MESSAGE.comments.len] comment[MESSAGE.comments.len > 1 ? "s" : ""]:
" - for(var/datum/newscaster/feed_comment/comment in MESSAGE.comments) + for(var/datum/news/feed_comment/comment in MESSAGE.comments) dat+="[comment.body]
[comment.author] [comment.time_stamp]
" dat+="
" dat+="

Refresh" @@ -315,7 +315,7 @@ if(isemptylist(GLOB.news_network.network_channels)) dat+="No feed channels found active...
" else - for(var/datum/newscaster/feed_channel/CHANNEL in GLOB.news_network.network_channels) + for(var/datum/news/feed_channel/CHANNEL in GLOB.news_network.network_channels) dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : ""]
" dat+="
Cancel" if(11) @@ -326,7 +326,7 @@ if(isemptylist(GLOB.news_network.network_channels)) dat+="No feed channels found active...
" else - for(var/datum/newscaster/feed_channel/CHANNEL in GLOB.news_network.network_channels) + for(var/datum/news/feed_channel/CHANNEL in GLOB.news_network.network_channels) dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : ""]
" dat+="
Back" @@ -337,11 +337,11 @@ if( isemptylist(src.admincaster_feed_channel.messages) ) dat+="No feed messages found in channel...
" else - for(var/datum/newscaster/feed_message/MESSAGE in src.admincaster_feed_channel.messages) + for(var/datum/news/feed_message/MESSAGE in src.admincaster_feed_channel.messages) dat+="-[MESSAGE.returnBody(-1)]
\[Story by [MESSAGE.returnAuthor(-1)]\]
" dat+="[(MESSAGE.bodyCensor) ? ("Undo story censorship") : ("Censor story")] - [(MESSAGE.authorCensor) ? ("Undo Author Censorship") : ("Censor message Author")]
" dat+="[MESSAGE.comments.len] comment[MESSAGE.comments.len > 1 ? "s" : ""]: [MESSAGE.locked ? "Unlock" : "Lock"]
" - for(var/datum/newscaster/feed_comment/comment in MESSAGE.comments) + for(var/datum/news/feed_comment/comment in MESSAGE.comments) dat+="[comment.body] X
[comment.author] [comment.time_stamp]
" dat+="
Back" if(13) @@ -354,7 +354,7 @@ if( isemptylist(src.admincaster_feed_channel.messages) ) dat+="No feed messages found in channel...
" else - for(var/datum/newscaster/feed_message/MESSAGE in src.admincaster_feed_channel.messages) + for(var/datum/news/feed_message/MESSAGE in src.admincaster_feed_channel.messages) dat+="-[MESSAGE.returnBody(-1)]
\[Story by [MESSAGE.returnAuthor(-1)]\]
" dat+="
Back" if(14) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index f23fc5c070..3ccd113864 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -714,7 +714,7 @@ GLOBAL_PROTECT(admin_verbs_hideable) AI_Interact = !AI_Interact if(mob && IsAdminGhost(mob)) - mob.has_unlimited_silicon_privilege = AI_Interact + mob.silicon_privileges = AI_Interact ? ALL : NONE log_admin("[key_name(usr)] has [AI_Interact ? "activated" : "deactivated"] Admin AI Interact") message_admins("[key_name_admin(usr)] has [AI_Interact ? "activated" : "deactivated"] their AI interaction") diff --git a/code/modules/admin/holder2.dm b/code/modules/admin/holder2.dm index 43360ad714..37fe2a41fc 100644 --- a/code/modules/admin/holder2.dm +++ b/code/modules/admin/holder2.dm @@ -19,9 +19,9 @@ GLOBAL_PROTECT(href_token) var/spamcooldown = 0 var/admincaster_screen = 0 //TODO: remove all these 5 variables, they are completly unacceptable - var/datum/newscaster/feed_message/admincaster_feed_message = new /datum/newscaster/feed_message - var/datum/newscaster/wanted_message/admincaster_wanted_message = new /datum/newscaster/wanted_message - var/datum/newscaster/feed_channel/admincaster_feed_channel = new /datum/newscaster/feed_channel + var/datum/news/feed_message/admincaster_feed_message = new /datum/news/feed_message + var/datum/news/wanted_message/admincaster_wanted_message = new /datum/news/wanted_message + var/datum/news/feed_channel/admincaster_feed_channel = new /datum/news/feed_channel var/admin_signature var/href_token diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 70b25bebdd..6abf2d3f1b 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -2481,7 +2481,7 @@ if(!check_rights(R_ADMIN)) return var/check = 0 - for(var/datum/newscaster/feed_channel/FC in GLOB.news_network.network_channels) + for(var/datum/news/feed_channel/FC in GLOB.news_network.network_channels) if(FC.channel_name == src.admincaster_feed_channel.channel_name) check = 1 break @@ -2500,7 +2500,7 @@ if(!check_rights(R_ADMIN)) return var/list/available_channels = list() - for(var/datum/newscaster/feed_channel/F in GLOB.news_network.network_channels) + for(var/datum/news/feed_channel/F in GLOB.news_network.network_channels) available_channels += F.channel_name src.admincaster_feed_channel.channel_name = adminscrub(input(usr, "Choose receiving Feed Channel.", "Network Channel Handler") in available_channels ) src.access_news_network() @@ -2606,28 +2606,28 @@ else if(href_list["ac_censor_channel_author"]) if(!check_rights(R_ADMIN)) return - var/datum/newscaster/feed_channel/FC = locate(href_list["ac_censor_channel_author"]) + var/datum/news/feed_channel/FC = locate(href_list["ac_censor_channel_author"]) FC.toggleCensorAuthor() src.access_news_network() else if(href_list["ac_censor_channel_story_author"]) if(!check_rights(R_ADMIN)) return - var/datum/newscaster/feed_message/MSG = locate(href_list["ac_censor_channel_story_author"]) + var/datum/news/feed_message/MSG = locate(href_list["ac_censor_channel_story_author"]) MSG.toggleCensorAuthor() src.access_news_network() else if(href_list["ac_censor_channel_story_body"]) if(!check_rights(R_ADMIN)) return - var/datum/newscaster/feed_message/MSG = locate(href_list["ac_censor_channel_story_body"]) + var/datum/news/feed_message/MSG = locate(href_list["ac_censor_channel_story_body"]) MSG.toggleCensorBody() src.access_news_network() else if(href_list["ac_pick_d_notice"]) if(!check_rights(R_ADMIN)) return - var/datum/newscaster/feed_channel/FC = locate(href_list["ac_pick_d_notice"]) + var/datum/news/feed_channel/FC = locate(href_list["ac_pick_d_notice"]) src.admincaster_feed_channel = FC src.admincaster_screen=13 src.access_news_network() @@ -2635,7 +2635,7 @@ else if(href_list["ac_toggle_d_notice"]) if(!check_rights(R_ADMIN)) return - var/datum/newscaster/feed_channel/FC = locate(href_list["ac_toggle_d_notice"]) + var/datum/news/feed_channel/FC = locate(href_list["ac_toggle_d_notice"]) FC.toggleCensorDclass() src.access_news_network() @@ -2651,17 +2651,17 @@ src.admincaster_screen = text2num(href_list["ac_setScreen"]) if (src.admincaster_screen == 0) if(src.admincaster_feed_channel) - src.admincaster_feed_channel = new /datum/newscaster/feed_channel + src.admincaster_feed_channel = new /datum/news/feed_channel if(src.admincaster_feed_message) - src.admincaster_feed_message = new /datum/newscaster/feed_message + src.admincaster_feed_message = new /datum/news/feed_message if(admincaster_wanted_message) - admincaster_wanted_message = new /datum/newscaster/wanted_message + admincaster_wanted_message = new /datum/news/wanted_message src.access_news_network() else if(href_list["ac_show_channel"]) if(!check_rights(R_ADMIN)) return - var/datum/newscaster/feed_channel/FC = locate(href_list["ac_show_channel"]) + var/datum/news/feed_channel/FC = locate(href_list["ac_show_channel"]) src.admincaster_feed_channel = FC src.admincaster_screen = 9 src.access_news_network() @@ -2669,7 +2669,7 @@ else if(href_list["ac_pick_censor_channel"]) if(!check_rights(R_ADMIN)) return - var/datum/newscaster/feed_channel/FC = locate(href_list["ac_pick_censor_channel"]) + var/datum/news/feed_channel/FC = locate(href_list["ac_pick_censor_channel"]) src.admincaster_feed_channel = FC src.admincaster_screen = 12 src.access_news_network() @@ -2688,8 +2688,8 @@ else if(href_list["ac_del_comment"]) if(!check_rights(R_ADMIN)) return - var/datum/newscaster/feed_comment/FC = locate(href_list["ac_del_comment"]) - var/datum/newscaster/feed_message/FM = locate(href_list["ac_del_comment_msg"]) + var/datum/news/feed_comment/FC = locate(href_list["ac_del_comment"]) + var/datum/news/feed_message/FM = locate(href_list["ac_del_comment_msg"]) FM.comments -= FC qdel(FC) src.access_news_network() @@ -2697,7 +2697,7 @@ else if(href_list["ac_lock_comment"]) if(!check_rights(R_ADMIN)) return - var/datum/newscaster/feed_message/FM = locate(href_list["ac_lock_comment"]) + var/datum/news/feed_message/FM = locate(href_list["ac_lock_comment"]) FM.locked ^= 1 src.access_news_network() diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2.dm b/code/modules/admin/verbs/SDQL2/SDQL_2.dm index da7c264774..14906bc83a 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2.dm @@ -303,7 +303,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null //These three are weird. For best performance, they are only a number when they're not being changed by the SDQL searching/execution code. They only become numbers when they finish changing. var/list/obj_count_all var/list/obj_count_eligible - var/list/obj_count_finished + var/obj_count_finished //Statclick var/obj/effect/statclick/SDQL2_delete/delete_click @@ -682,7 +682,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null SDQL2_TICK_CHECK SDQL2_HALT_CHECK if(islist(obj_count_finished)) - obj_count_finished = obj_count_finished.len + obj_count_finished = length(obj_count_finished) state = SDQL2_STATE_SWITCHING /datum/SDQL2_query/proc/SDQL_print(object, list/text_list, print_nulls = TRUE) diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index ad2eeb7289..54d6a864fd 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -487,7 +487,7 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention) if(alert("This mob is being controlled by [M.key]. Are you sure you wish to assume control of it? [M.key] will be made a ghost.",,"Yes","No") != "Yes") return else - var/mob/dead/observer/ghost = new/mob/dead/observer(M,1) + var/mob/dead/observer/ghost = new/mob/dead/observer(get_turf(M), M) ghost.ckey = M.ckey message_admins("[key_name_admin(usr)] assumed direct control of [M].") log_admin("[key_name(usr)] assumed direct control of [M].") @@ -1058,7 +1058,7 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention) set name = "Start Line Profiling" set desc = "Starts tracking line by line profiling for code lines that support it" - PROFILE_START + LINE_PROFILE_START message_admins("[key_name_admin(src)] started line by line profiling.") SSblackbox.record_feedback("tally", "admin_verb", 1, "Start Line Profiling") @@ -1069,7 +1069,7 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention) set name = "Stops Line Profiling" set desc = "Stops tracking line by line profiling for code lines that support it" - PROFILE_STOP + LINE_PROFILE_STOP message_admins("[key_name_admin(src)] stopped line by line profiling.") SSblackbox.record_feedback("tally", "admin_verb", 1, "Stop Line Profiling") diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm index 24e80fd8f3..35ab3927d4 100644 --- a/code/modules/admin/verbs/mapping.dm +++ b/code/modules/admin/verbs/mapping.dm @@ -135,7 +135,7 @@ GLOBAL_LIST_EMPTY(dirty_vars) if(!(locate(/obj/structure/grille) in T)) var/window_check = 0 for(var/obj/structure/window/W in T) - if (W.dir == turn(C1.dir,180) || W.dir in list(5,6,9,10) ) + if(W.dir == turn(C1.dir,180) || (W.dir in list(5,6,9,10))) window_check = 1 break if(!window_check) diff --git a/code/modules/antagonists/_common/antag_datum.dm b/code/modules/antagonists/_common/antag_datum.dm index 0c05afb155..e73c5de1aa 100644 --- a/code/modules/antagonists/_common/antag_datum.dm +++ b/code/modules/antagonists/_common/antag_datum.dm @@ -14,7 +14,8 @@ GLOBAL_LIST_EMPTY(antagonists) var/list/objectives = list() var/antag_memory = ""//These will be removed with antag datum var/antag_moodlet //typepath of moodlet that the mob will gain with their status - var/can_hijack = HIJACK_NEUTRAL //If these antags are alone on shuttle hijack happens. + /// If above 0, this is the multiplier for the speed at which we hijack the shuttle. Do not directly read, use hijack_speed(). + var/hijack_speed = 0 //Antag panel properties var/show_in_antagpanel = TRUE //This will hide adding this antag type in antag panel, use only for internal subtypes that shouldn't be added directly but still show if possessed by mind @@ -120,15 +121,16 @@ GLOBAL_LIST_EMPTY(antagonists) SEND_SIGNAL(owner.current, COMSIG_CLEAR_MOOD_EVENT, "antag_moodlet") /datum/antagonist/proc/remove_blacklisted_quirks() - var/mob/living/L = owner + var/mob/living/L = owner.current if(istype(L)) - var/list/cut = list() - cut = SSquirks.filter_quirks(L.roundstart_quirks,blacklisted_quirks) - for(var/q in cut) + var/list/my_quirks = L.client?.prefs.all_quirks.Copy() + SSquirks.filter_quirks(my_quirks,blacklisted_quirks) + for(var/q in L.roundstart_quirks) var/datum/quirk/Q = q - if(Q.antag_removal_text) - to_chat(L, "[Q.antag_removal_text]") - L.remove_quirk(Q.type) + if(!(SSquirks.quirk_name_by_path(Q.type) in my_quirks)) + if(initial(Q.antag_removal_text)) + to_chat(L, "[initial(Q.antag_removal_text)]") + L.remove_quirk(Q.type) //Returns the team antagonist belongs to if any. /datum/antagonist/proc/get_team() @@ -228,6 +230,13 @@ GLOBAL_LIST_EMPTY(antagonists) return antag_memory = new_memo +/// Gets how fast we can hijack the shuttle, return 0 for can not hijack. Defaults to hijack_speed var, override for custom stuff like buffing hijack speed for hijack objectives or something. +/datum/antagonist/proc/hijack_speed() + var/datum/objective/hijack/H = locate() in objectives + if(!isnull(H?.hijack_speed_override)) + return H.hijack_speed_override + return hijack_speed + //This one is created by admin tools for custom objectives /datum/antagonist/custom antagpanel_category = "Custom" diff --git a/code/modules/antagonists/blob/blob/overmind.dm b/code/modules/antagonists/blob/blob/overmind.dm index 5d3c8cd8ca..fe1c700014 100644 --- a/code/modules/antagonists/blob/blob/overmind.dm +++ b/code/modules/antagonists/blob/blob/overmind.dm @@ -24,7 +24,7 @@ GLOBAL_LIST_EMPTY(blob_nodes) hud_type = /datum/hud/blob_overmind var/obj/structure/blob/core/blob_core = null // The blob overmind's core var/blob_points = 0 - var/max_blob_points = 100 + var/max_blob_points = 250 var/last_attack = 0 var/datum/reagent/blob/blob_reagent_datum = new/datum/reagent/blob() var/list/blob_mobs = list() diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_objectives.dm b/code/modules/antagonists/bloodsucker/bloodsucker_objectives.dm index 63e1470576..a2a0238df1 100644 --- a/code/modules/antagonists/bloodsucker/bloodsucker_objectives.dm +++ b/code/modules/antagonists/bloodsucker/bloodsucker_objectives.dm @@ -208,7 +208,7 @@ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - +/* // Destroy the Solar Arrays /datum/objective/bloodsucker/solars @@ -228,7 +228,7 @@ if (SC && SC.lastgen > 0 && SC.connected_panels.len > 0 && SC.connected_tracker) return FALSE return TRUE - +*/ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm index 24e967f00b..4d06c127d4 100644 --- a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm +++ b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm @@ -286,10 +286,10 @@ var/mob/living/L = owner.current level_bloodcost = maxBloodVolume * 0.2 //If the blood volume of the bloodsucker is lower than the cost to level up, return and inform the bloodsucker - + //TODO: Make this into a radial, or perhaps a tgui next UI // Purchase Power Prompt - var/list/options = list() + var/list/options = list() for(var/pickedpower in typesof(/datum/action/bloodsucker)) var/datum/action/bloodsucker/power = pickedpower // If I don't own it, and I'm allowed to buy it. @@ -379,20 +379,21 @@ protege_objective.generate_objective() add_objective(protege_objective) - if (rand(0,1) == 0) + //if (rand(0,1) == 0) // Heart Thief Objective - var/datum/objective/bloodsucker/heartthief/heartthief_objective = new - heartthief_objective.owner = owner - heartthief_objective.generate_objective() - add_objective(heartthief_objective) - + var/datum/objective/bloodsucker/heartthief/heartthief_objective = new + heartthief_objective.owner = owner + heartthief_objective.generate_objective() + add_objective(heartthief_objective) + /* else - // Solars Objective + + // Solars Objective, doesnt work due to TG updates. var/datum/objective/bloodsucker/solars/solars_objective = new solars_objective.owner = owner solars_objective.generate_objective() add_objective(solars_objective) - +*/ // Survive Objective var/datum/objective/bloodsucker/survive/survive_objective = new survive_objective.owner = owner diff --git a/code/modules/antagonists/bloodsucker/powers/bs_brawn.dm b/code/modules/antagonists/bloodsucker/powers/brawn.dm similarity index 100% rename from code/modules/antagonists/bloodsucker/powers/bs_brawn.dm rename to code/modules/antagonists/bloodsucker/powers/brawn.dm diff --git a/code/modules/antagonists/bloodsucker/powers/bs_cloak.dm b/code/modules/antagonists/bloodsucker/powers/cloak.dm similarity index 50% rename from code/modules/antagonists/bloodsucker/powers/bs_cloak.dm rename to code/modules/antagonists/bloodsucker/powers/cloak.dm index 9126638fea..23b35d1eaa 100644 --- a/code/modules/antagonists/bloodsucker/powers/bs_cloak.dm +++ b/code/modules/antagonists/bloodsucker/powers/cloak.dm @@ -2,41 +2,56 @@ /datum/action/bloodsucker/cloak name = "Cloak of Darkness" - desc = "Blend into the shadows and become invisible to the untrained eye." + desc = "Blend into the shadows and become invisible to the untrained eye. Movement is slowed in brightly lit areas." button_icon_state = "power_cloak" bloodcost = 5 cooldown = 50 bloodsucker_can_buy = TRUE amToggle = TRUE warn_constant_cost = TRUE - var/was_running - - var/light_min = 0.2 // If lum is above this, no good. + var/moveintent_was_run + var/walk_threshold = 0.4 // arbitrary number, to be changed. edit in last commit: this is fine after testing on box station for a bit + var/lum /datum/action/bloodsucker/cloak/CheckCanUse(display_error) . = ..() if(!.) return - // Must be Dark - var/turf/T = owner.loc - if(istype(T) && T.get_lumcount() > light_min) - to_chat(owner, "This area is not dark enough to blend in") - return FALSE + + // must have nobody around to see the cloak + var/watchers = viewers(9,get_turf(owner)) + for(var/mob/living/M in watchers) + if(M != owner) + to_chat(owner, "You may only vanish into the shadows unseen.") + return FALSE + return TRUE /datum/action/bloodsucker/cloak/ActivatePower() var/datum/antagonist/bloodsucker/bloodsuckerdatum = owner.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER) var/mob/living/user = owner - was_running = (user.m_intent == MOVE_INTENT_RUN) - if(was_running) - user.toggle_move_intent() - ADD_TRAIT(user, TRAIT_NORUNNING, "cloak of darkness") - while(bloodsuckerdatum && ContinueActive(user) || user.m_intent == MOVE_INTENT_RUN) + + while(bloodsuckerdatum && ContinueActive(user)) // Pay Blood Toll (if awake) - owner.alpha = max(20, owner.alpha - min(75, 10 + 5 * level_current)) + owner.alpha = max(35, owner.alpha - min(75, 10 + 5 * level_current)) bloodsuckerdatum.AddBloodVolume(-0.2) - sleep(5) // Check every few ticks that we haven't disabled this power - // Return to Running (if you were before) + + moveintent_was_run = (user.m_intent == MOVE_INTENT_RUN) + var/turf/T = get_turf(user) + lum = T.get_lumcount() + + if(istype(owner.loc)) + if(lum > walk_threshold) + if(moveintent_was_run) + user.toggle_move_intent() + ADD_TRAIT(user, TRAIT_NORUNNING, "cloak of darkness") + + if(lum < walk_threshold) + if(!moveintent_was_run) + user.toggle_move_intent() + REMOVE_TRAIT(user, TRAIT_NORUNNING, "cloak of darkness") + + sleep(5) // Check every few ticks /datum/action/bloodsucker/cloak/ContinueActive(mob/living/user, mob/living/target) if (!..()) @@ -44,15 +59,11 @@ if(user.stat == !CONSCIOUS) // Must be CONSCIOUS to_chat(owner, "Your cloak failed due to you falling unconcious! ") return FALSE - var/turf/T = owner.loc // Must be DARK - if(istype(T) && T.get_lumcount() > light_min) - to_chat(owner, "Your cloak failed due to there being too much light!") - return FALSE return TRUE /datum/action/bloodsucker/cloak/DeactivatePower(mob/living/user = owner, mob/living/target) ..() REMOVE_TRAIT(user, TRAIT_NORUNNING, "cloak of darkness") user.alpha = 255 - if(was_running && user.m_intent != MOVE_INTENT_RUN) + if(!moveintent_was_run) user.toggle_move_intent() diff --git a/code/modules/antagonists/bloodsucker/powers/bs_feed.dm b/code/modules/antagonists/bloodsucker/powers/feed.dm similarity index 98% rename from code/modules/antagonists/bloodsucker/powers/bs_feed.dm rename to code/modules/antagonists/bloodsucker/powers/feed.dm index 2da84b6075..f9ff31d94a 100644 --- a/code/modules/antagonists/bloodsucker/powers/bs_feed.dm +++ b/code/modules/antagonists/bloodsucker/powers/feed.dm @@ -170,7 +170,7 @@ // Warn Feeder about Witnesses... var/was_unnoticed = TRUE for(var/mob/living/M in viewers(notice_range, owner)) - if(M != owner && M != target && iscarbon(M) && M.mind && !M.has_unlimited_silicon_privilege && !M.eye_blind && !M.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER)) + if(M != owner && M != target && iscarbon(M) && M.mind && !M.silicon_privileges && !M.eye_blind && !M.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER)) was_unnoticed = FALSE break if(was_unnoticed) diff --git a/code/modules/antagonists/bloodsucker/powers/bs_fortitude.dm b/code/modules/antagonists/bloodsucker/powers/fortitude.dm similarity index 100% rename from code/modules/antagonists/bloodsucker/powers/bs_fortitude.dm rename to code/modules/antagonists/bloodsucker/powers/fortitude.dm diff --git a/code/modules/antagonists/bloodsucker/powers/bs_gohome.dm b/code/modules/antagonists/bloodsucker/powers/go_home.dm similarity index 94% rename from code/modules/antagonists/bloodsucker/powers/bs_gohome.dm rename to code/modules/antagonists/bloodsucker/powers/go_home.dm index 476f8ae012..3fa8a07299 100644 --- a/code/modules/antagonists/bloodsucker/powers/bs_gohome.dm +++ b/code/modules/antagonists/bloodsucker/powers/go_home.dm @@ -28,9 +28,9 @@ to_chat(owner, "Your coffin has been destroyed!") return FALSE return TRUE - + /datum/action/bloodsucker/gohome/proc/flicker_lights(var/flicker_range, var/beat_volume) - for(var/obj/machinery/light/L in view(flicker_range, get_turf(owner))) + for(var/obj/machinery/light/L in view(flicker_range, get_turf(owner))) playsound(get_turf(owner), 'sound/effects/singlebeat.ogg', beat_volume, 1) @@ -45,7 +45,7 @@ flicker_lights(4, 40) sleep(50) flicker_lights(4, 60) - for(var/obj/machinery/light/L in view(6, get_turf(owner))) + for(var/obj/machinery/light/L in view(6, get_turf(owner))) L.flicker(5) playsound(get_turf(owner), 'sound/effects/singlebeat.ogg', 60, 1) // ( STEP TWO: Lights OFF? ) @@ -56,7 +56,7 @@ if(!owner) return // SEEN?: (effects ONLY if there are witnesses! Otherwise you just POOF) - + var/am_seen = FALSE // Do Effects (seen by anyone) var/drop_item = FALSE // Drop Stuff (seen by non-vamp) if(isturf(owner.loc)) // Only check if I'm not in a Locker or something. @@ -65,7 +65,7 @@ if(T && T.lighting_object && T.get_lumcount()>= 0.1) // B) Check for Viewers for(var/mob/living/M in viewers(get_turf(owner))) - if(M != owner && isliving(M) && M.mind && !M.has_unlimited_silicon_privilege && !M.eye_blind) // M.client <--- add this in after testing! + if(M != owner && isliving(M) && M.mind && !M.silicon_privileges && !M.eye_blind) // M.client <--- add this in after testing! am_seen = TRUE if (!M.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER)) drop_item = TRUE @@ -95,12 +95,12 @@ puff.effect_type = /obj/effect/particle_effect/smoke/vampsmoke puff.set_up(3, 0, get_turf(owner)) puff.start() - + //STEP FIVE: Create animal at prev location var/mob/living/simple_animal/SA = pick(/mob/living/simple_animal/mouse,/mob/living/simple_animal/mouse,/mob/living/simple_animal/mouse, /mob/living/simple_animal/hostile/retaliate/bat) //prob(300) /mob/living/simple_animal/mouse, new SA (owner.loc) // TELEPORT: Move to Coffin & Close it! - do_teleport(owner, bloodsuckerdatum.coffin, no_effects = TRUE, forced = TRUE, channel = TELEPORT_CHANNEL_QUANTUM) + do_teleport(owner, bloodsuckerdatum.coffin, no_effects = TRUE, forced = TRUE, channel = TELEPORT_CHANNEL_QUANTUM) user.resting = TRUE user.Stun(30,1) // CLOSE LID: If fail, force me in. @@ -112,4 +112,4 @@ bloodsuckerdatum.coffin.update_icon() // Lock Coffin bloodsuckerdatum.coffin.LockMe(owner) - + diff --git a/code/modules/antagonists/bloodsucker/powers/bs_haste.dm b/code/modules/antagonists/bloodsucker/powers/haste.dm similarity index 53% rename from code/modules/antagonists/bloodsucker/powers/bs_haste.dm rename to code/modules/antagonists/bloodsucker/powers/haste.dm index a1aaf50499..47c93b794e 100644 --- a/code/modules/antagonists/bloodsucker/powers/bs_haste.dm +++ b/code/modules/antagonists/bloodsucker/powers/haste.dm @@ -14,6 +14,9 @@ message_Trigger = ""//"Whom will you subvert to your will?" bloodsucker_can_buy = TRUE must_be_capacitated = TRUE + var/list/hit //current hit, set while power is in use as we can't pass the list as an extra calling argument in registersignal. + /// If set, uses this speed in deciseconds instead of world.tick_lag + var/speed_override /datum/action/bloodsucker/targeted/haste/CheckCanUse(display_error) . = ..() @@ -43,43 +46,46 @@ return TRUE /datum/action/bloodsucker/targeted/haste/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. + // This is a non-async proc to make sure the power is "locked" until this finishes. + hit = list() + RegisterSignal(owner, COMSIG_MOVABLE_MOVED, .proc/on_move) var/mob/living/user = owner var/turf/T = isturf(A) ? A : get_turf(A) // Pulled? Not anymore. - owner.pulledby = null - // Step One: Heatseek toward Target's Turf - walk_to(owner, T, 0, 0.01, 20) // NOTE: this runs in the background! to cancel it, you need to use walk(owner.current,0), or give them a new path. + user.pulledby?.stop_pulling() + // Go to target turf + // DO NOT USE WALK TO. playsound(get_turf(owner), 'sound/weapons/punchmiss.ogg', 25, 1, -1) - var/safety = 20 - while(get_turf(owner) != T && safety > 0 && !(isliving(target) && target.Adjacent(owner))) - user.canmove = FALSE //Dont move while doing the thing, or itll break - safety -- - // Did I get knocked down? - if(owner && owner.incapacitated(ignore_restraints=TRUE, ignore_grab=TRUE))// owner.incapacitated()) - // We're gonna cancel. But am I on the ground? Spin me! - if(user.resting) - var/send_dir = get_dir(owner, T) - new /datum/forced_movement(owner, get_ranged_target_turf(owner, send_dir, 1), 1, FALSE) - owner.spin(10) + var/safety = get_dist(user, T) * 3 + 1 + var/consequetive_failures = 0 + var/speed = isnull(speed_override)? world.tick_lag : speed_override + while(--safety && (get_turf(user) != T)) + var/success = step_towards(user, T) //This does not try to go around obstacles. + if(!success) + success = step_to(user, T) //this does + if(!success) + if(++consequetive_failures >= 3) //if 3 steps don't work + break //just stop + else + consequetive_failures = 0 + if(user.resting) + user.setDir(turn(user.dir, 90)) //down? spin2win :^) + if(user.incapacitated(ignore_restraints = TRUE, ignore_grab = TRUE)) //actually down? stop. break - // Spin/Stun people we pass. - //var/mob/living/newtarget = locate(/mob/living) in oview(1, owner) - var/list/mob/living/foundtargets = list() - for(var/mob/living/newtarget in oview(1, owner)) - if (newtarget && newtarget != target && !(newtarget in foundtargets))//!newtarget.IsKnockdown()) - if (rand(0, 5) < level_current) - playsound(get_turf(newtarget), "sound/weapons/punch[rand(1,4)].ogg", 15, 1, -1) - newtarget.Knockdown(10 + level_current * 5) - if(newtarget.IsStun()) - newtarget.spin(10,1) - if (rand(0,4)) - newtarget.drop_all_held_items() - foundtargets += newtarget - sleep(1) - if(user) - user.update_canmove() //Let the poor guy move again + if(success) //don't sleep if we failed to move. + sleep(speed) + UnregisterSignal(owner, COMSIG_MOVABLE_MOVED) + hit = null + user.update_canmove() /datum/action/bloodsucker/targeted/haste/DeactivatePower(mob/living/user = owner, mob/living/target) ..() // activate = FALSE user.update_canmove() + +/datum/action/bloodsucker/targeted/haste/proc/on_move() + for(var/mob/living/L in dview(1, get_turf(owner))) + if(!hit[L] && (L != owner)) + hit[L] = TRUE + playsound(L, "sound/weapons/punch[rand(1,4)].ogg", 15, 1, -1) + L.Knockdown(10 + level_current * 5, override_hardstun = 0.1) + L.spin(10, 1) diff --git a/code/modules/antagonists/bloodsucker/powers/bs_lunge.dm b/code/modules/antagonists/bloodsucker/powers/lunge.dm similarity index 63% rename from code/modules/antagonists/bloodsucker/powers/bs_lunge.dm rename to code/modules/antagonists/bloodsucker/powers/lunge.dm index 48e12332a2..c3a3090d55 100644 --- a/code/modules/antagonists/bloodsucker/powers/bs_lunge.dm +++ b/code/modules/antagonists/bloodsucker/powers/lunge.dm @@ -7,9 +7,9 @@ button_icon_state = "power_lunge" bloodcost = 10 cooldown = 120 - target_range = 3 + target_range = 5 power_activates_immediately = TRUE - message_Trigger = ""//"Whom will you subvert to your will?" + message_Trigger = "Whom will you ensnare within your grasp?" must_be_capacitated = TRUE bloodsucker_can_buy = TRUE @@ -58,25 +58,29 @@ var/do_knockdown = !is_A_facing_B(target,owner) || owner.alpha <= 0 || istype(owner.loc, /obj/structure/closet) // CAUSES: Target has their back to me, I'm invisible, or I'm in a Closet // Step One: Heatseek toward Target's Turf - - walk_towards(owner, T, 0.1, 10) // NOTE: this runs in the background! to cancel it, you need to use walk(owner.current,0), or give them a new path. addtimer(CALLBACK(owner, .proc/_walk, 0), 2 SECONDS) - if(get_turf(owner) != T && !(isliving(target) && target.Adjacent(owner)) && owner.incapacitated() && owner.resting) - var/send_dir = get_dir(owner, T) - new /datum/forced_movement(owner, get_ranged_target_turf(owner, send_dir, 1), 1, FALSE) - owner.spin(10) - // Step Two: Check if I'm at/adjectent to Target's CURRENT turf (not original...that was just a destination) - sleep(1) - if(target.Adjacent(owner)) - // LEVEL 2: If behind target, mute or unconscious! - if(do_knockdown) // && level_current >= 1) - target.Knockdown(15 + 10 * level_current,1) - target.adjustStaminaLoss(40 + 10 * level_current) - // Cancel Walk (we were close enough to contact them) - walk(owner, 0) - target.Stun(10,1) //Without this the victim can just walk away - target.grabbedby(owner) // Taken from mutations.dm under changelings - target.grippedby(owner, instant = TRUE) //instant aggro grab + target.playsound_local(get_turf(owner), 'sound/bloodsucker/lunge_warn.ogg', 60, FALSE, pressure_affected = FALSE) // target-only telegraphing + owner.playsound_local(owner, 'sound/bloodsucker/lunge_warn.ogg', 60, FALSE, pressure_affected = FALSE) // audio feedback to the user + if(do_mob(owner, owner, 6, TRUE, TRUE)) + walk_towards(owner, T, 0.1, 10) // yes i know i shouldn't use this but i don't know how to work in anything better + if(get_turf(owner) != T && !(isliving(target) && target.Adjacent(owner)) && owner.incapacitated() && owner.resting) + var/send_dir = get_dir(owner, T) + new /datum/forced_movement(owner, get_ranged_target_turf(owner, send_dir, 1), 1, FALSE) + owner.spin(10) + // Step Two: Check if I'm at/adjectent to Target's CURRENT turf (not original...that was just a destination) + for(var/i in 1 to 6) + if (target.Adjacent(owner)) + // LEVEL 2: If behind target, mute or unconscious! + if(do_knockdown) // && level_current >= 1) + target.Knockdown(15 + 10 * level_current,1) + target.adjustStaminaLoss(40 + 10 * level_current) + // Cancel Walk (we were close enough to contact them) + walk(owner, 0) + target.Stun(10,1) //Without this the victim can just walk away + target.grabbedby(owner) // Taken from mutations.dm under changelings + target.grippedby(owner, instant = TRUE) //instant aggro grab + break + sleep(i*3) /datum/action/bloodsucker/targeted/lunge/DeactivatePower(mob/living/user = owner, mob/living/target) ..() // activate = FALSE diff --git a/code/modules/antagonists/bloodsucker/powers/bs_masquerade.dm b/code/modules/antagonists/bloodsucker/powers/masquerade.dm similarity index 99% rename from code/modules/antagonists/bloodsucker/powers/bs_masquerade.dm rename to code/modules/antagonists/bloodsucker/powers/masquerade.dm index 0435ddccd5..7d41899dc2 100644 --- a/code/modules/antagonists/bloodsucker/powers/bs_masquerade.dm +++ b/code/modules/antagonists/bloodsucker/powers/masquerade.dm @@ -54,8 +54,8 @@ REMOVE_TRAIT(user, TRAIT_VIRUSIMMUNE, "bloodsucker") var/obj/item/organ/heart/vampheart/H = user.getorganslot(ORGAN_SLOT_HEART) var/obj/item/organ/eyes/vassal/bloodsucker/E = user.getorganslot(ORGAN_SLOT_EYES) - E.flash_protect = 0 - + E.flash_protect = 0 + // WE ARE ALIVE! // bloodsuckerdatum.poweron_masquerade = TRUE while(bloodsuckerdatum && ContinueActive(user)) diff --git a/code/modules/antagonists/bloodsucker/powers/bs_mesmerize.dm b/code/modules/antagonists/bloodsucker/powers/mesmerize.dm similarity index 63% rename from code/modules/antagonists/bloodsucker/powers/bs_mesmerize.dm rename to code/modules/antagonists/bloodsucker/powers/mesmerize.dm index dc9d1d46a0..b238c5ba36 100644 --- a/code/modules/antagonists/bloodsucker/powers/bs_mesmerize.dm +++ b/code/modules/antagonists/bloodsucker/powers/mesmerize.dm @@ -11,24 +11,25 @@ button_icon_state = "power_mez" bloodcost = 30 cooldown = 300 - target_range = 1 - power_activates_immediately = FALSE + target_range = 3 + power_activates_immediately = TRUE message_Trigger = "Whom will you subvert to your will?" must_be_capacitated = TRUE bloodsucker_can_buy = TRUE + var/success /datum/action/bloodsucker/targeted/mesmerize/CheckCanUse(display_error) . = ..() if(!.) return - if (!owner.getorganslot(ORGAN_SLOT_EYES)) + if(!owner.getorganslot(ORGAN_SLOT_EYES)) if (display_error) to_chat(owner, "You have no eyes with which to mesmerize.") return FALSE // Check: Eyes covered? var/mob/living/L = owner - if (istype(L) && L.is_eyes_covered() || !isturf(owner.loc)) - if (display_error) + if(istype(L) && L.is_eyes_covered() || !isturf(owner.loc)) + if(display_error) to_chat(owner, "Your eyes are concealed from sight.") return FALSE return TRUE @@ -38,46 +39,51 @@ /datum/action/bloodsucker/targeted/mesmerize/CheckCanTarget(atom/A,display_error) // Check: Self - if (A == owner) + if(A == owner) return FALSE var/mob/living/carbon/target = A // We already know it's carbon due to CheckValidTarget() + // Bloodsucker - if (target.mind && target.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER)) + if(target.mind && target.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER)) if (display_error) to_chat(owner, "Bloodsuckers are immune to [src].") return FALSE // Dead/Unconscious - if (target.stat > CONSCIOUS) + if(target.stat > CONSCIOUS) if (display_error) to_chat(owner, "Your victim is not [(target.stat == DEAD || HAS_TRAIT(target, TRAIT_FAKEDEATH))?"alive":"conscious"].") return FALSE // Check: Target has eyes? - if (!target.getorganslot(ORGAN_SLOT_EYES)) + if(!target.getorganslot(ORGAN_SLOT_EYES)) if (display_error) to_chat(owner, "They have no eyes!") return FALSE // Check: Target blind? - if (target.eye_blind > 0) + if(target.eye_blind > 0) if (display_error) to_chat(owner, "Your victim's eyes are glazed over. They cannot perceive you.") return FALSE // Check: Target See Me? (behind wall) - if (!(owner in view(target_range, get_turf(target)))) + if(!(target in view(target_range, get_turf(owner)))) // Sub-Check: GET CLOSER //if (!(owner in range(target_range, get_turf(target))) // if (display_error) // to_chat(owner, "You're too far from your victim.") - if (display_error) + if(display_error) to_chat(owner, "You're too far outside your victim's view.") return FALSE + + if(target.has_status_effect(STATUS_EFFECT_MESMERIZE)) // ? + return TRUE + // Check: Facing target? - if (!is_A_facing_B(owner,target)) // in unsorted.dm + if(!is_A_facing_B(owner,target)) // in unsorted.dm if (display_error) to_chat(owner, "You must be facing your victim.") return FALSE // Check: Target facing me? - if (!target.resting && !is_A_facing_B(target,owner)) - if (display_error) + if(!target.resting && !is_A_facing_B(target,owner)) + if(display_error) to_chat(owner, "Your victim must be facing you to see into your eyes.") return FALSE return TRUE @@ -88,19 +94,28 @@ var/mob/living/user = owner if(istype(target)) - target.Stun(40) //Utterly useless without this, its okay since there are so many checks to go through - target.apply_status_effect(STATUS_EFFECT_MESMERIZE, 45) //So you cant rotate with combat mode, plus fancy status alert + var/power_time = 138 + level_current * 12 + target.apply_status_effect(STATUS_EFFECT_MESMERIZE, 30) + user.apply_status_effect(STATUS_EFFECT_MESMERIZE, 30) + if(do_mob(user, target, 30, TRUE, TRUE)) // 3 seconds windup + success = CheckCanTarget(target) + if(success) // target just has to be out of view when it is fully charged in order to avoid + 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. + else + to_chat(user, "[target] has escaped your gaze!") + DeactivatePower() + DeactivateRangedAbility() + StartCooldown() + // oops! if they knew how they could just spam stun the victim and themselves. - if(do_mob(user, target, 40, 0, TRUE, extra_checks = CALLBACK(src, .proc/ContinueActive, user, target))) - PowerActivatedSuccessfully() // PAY COST! BEGIN COOLDOWN! - var/power_time = 90 + level_current * 12 - target.apply_status_effect(STATUS_EFFECT_MESMERIZE, power_time + 80) - to_chat(user, "[target] is fixed in place by your hypnotic gaze.") - target.Stun(power_time) - 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)) + 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))) ) diff --git a/code/modules/antagonists/bloodsucker/powers/v_recuperate.dm b/code/modules/antagonists/bloodsucker/powers/recuperate.dm similarity index 100% rename from code/modules/antagonists/bloodsucker/powers/v_recuperate.dm rename to code/modules/antagonists/bloodsucker/powers/recuperate.dm diff --git a/code/modules/antagonists/bloodsucker/powers/bs_trespass.dm b/code/modules/antagonists/bloodsucker/powers/trespass.dm similarity index 100% rename from code/modules/antagonists/bloodsucker/powers/bs_trespass.dm rename to code/modules/antagonists/bloodsucker/powers/trespass.dm diff --git a/code/modules/antagonists/bloodsucker/powers/bs_veil.dm b/code/modules/antagonists/bloodsucker/powers/veil.dm similarity index 100% rename from code/modules/antagonists/bloodsucker/powers/bs_veil.dm rename to code/modules/antagonists/bloodsucker/powers/veil.dm diff --git a/code/modules/antagonists/brother/brother.dm b/code/modules/antagonists/brother/brother.dm index 2292006da1..efe21f38fa 100644 --- a/code/modules/antagonists/brother/brother.dm +++ b/code/modules/antagonists/brother/brother.dm @@ -5,7 +5,6 @@ var/special_role = ROLE_BROTHER var/datum/team/brother_team/team antag_moodlet = /datum/mood_event/focused - can_hijack = HIJACK_HIJACKER /datum/antagonist/brother/create_team(datum/team/brother_team/new_team) if(!new_team) diff --git a/code/modules/antagonists/clockcult/clock_items/replica_fabricator.dm b/code/modules/antagonists/clockcult/clock_items/replica_fabricator.dm index 501bcdc1c4..7be9ef039b 100644 --- a/code/modules/antagonists/clockcult/clock_items/replica_fabricator.dm +++ b/code/modules/antagonists/clockcult/clock_items/replica_fabricator.dm @@ -68,8 +68,8 @@ /obj/item/clockwork/replica_fabricator/pre_attack(atom/target, mob/living/user, params) if(!target || !user || !is_servant_of_ratvar(user) || istype(target, /obj/item/storage)) - return TRUE - return fabricate(target, user) + return ..() + return !fabricate(target, user) //A note here; return values are for if we CAN BE PUT ON A TABLE, not IF WE ARE SUCCESSFUL, unless no_table_check is TRUE /obj/item/clockwork/replica_fabricator/proc/fabricate(atom/target, mob/living/user, silent, no_table_check) diff --git a/code/modules/antagonists/clockcult/clock_mobs/clockwork_marauder.dm b/code/modules/antagonists/clockcult/clock_mobs/clockwork_marauder.dm index 6591343116..897bff779d 100644 --- a/code/modules/antagonists/clockcult/clock_mobs/clockwork_marauder.dm +++ b/code/modules/antagonists/clockcult/clock_mobs/clockwork_marauder.dm @@ -8,7 +8,7 @@ name = "clockwork marauder" desc = "The stalwart apparition of a soldier, blazing with crimson flames. It's armed with a gladius and shield." icon_state = "clockwork_marauder" - mob_biotypes = list(MOB_INORGANIC, MOB_HUMANOID) + mob_biotypes = MOB_HUMANOID health = 120 maxHealth = 120 force_threshold = 8 diff --git a/code/modules/antagonists/clockcult/clock_structures/ocular_warden.dm b/code/modules/antagonists/clockcult/clock_structures/ocular_warden.dm index d0940ebb7a..00db2b0d72 100644 --- a/code/modules/antagonists/clockcult/clock_structures/ocular_warden.dm +++ b/code/modules/antagonists/clockcult/clock_structures/ocular_warden.dm @@ -118,7 +118,7 @@ continue if(ishostile(L)) var/mob/living/simple_animal/hostile/H = L - if(("ratvar" in H.faction) || (!H.mind && "neutral" in H.faction)) + if(("ratvar" in H.faction) || (!H.mind && ("neutral" in H.faction))) continue if(ismegafauna(H) || (!H.mind && H.AIStatus == AI_OFF)) continue diff --git a/code/modules/antagonists/clockcult/clockcult.dm b/code/modules/antagonists/clockcult/clockcult.dm index d68e9b594d..1869414ab6 100644 --- a/code/modules/antagonists/clockcult/clockcult.dm +++ b/code/modules/antagonists/clockcult/clockcult.dm @@ -120,7 +120,7 @@ hierophant_network.Grant(current) current.throw_alert("clockinfo", /obj/screen/alert/clockwork/infodump) var/obj/structure/destructible/clockwork/massive/celestial_gateway/G = GLOB.ark_of_the_clockwork_justiciar - if(G.active && ishuman(current)) + if(G && G.active && ishuman(current)) current.add_overlay(mutable_appearance('icons/effects/genetics.dmi', "servitude", -MUTATIONS_LAYER)) /datum/antagonist/clockcult/remove_innate_effects(mob/living/mob_override) @@ -174,9 +174,12 @@ log_admin("[key_name(admin)] has made [new_owner.current] into a servant of Ratvar.") /datum/antagonist/clockcult/admin_remove(mob/user) - remove_servant_of_ratvar(owner.current, TRUE) - message_admins("[key_name_admin(user)] has removed clockwork servant status from [owner.current].") - log_admin("[key_name(user)] has removed clockwork servant status from [owner.current].") + var/mob/target = owner.current + if(!target) + return + remove_servant_of_ratvar(target, TRUE) + message_admins("[key_name_admin(user)] has removed clockwork servant status from [target].") + log_admin("[key_name(user)] has removed clockwork servant status from [target].") /datum/antagonist/clockcult/get_admin_commands() . = ..() diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm index 1bb1b8533a..636061783e 100644 --- a/code/modules/antagonists/cult/blood_magic.dm +++ b/code/modules/antagonists/cult/blood_magic.dm @@ -143,7 +143,7 @@ //Cult Blood Spells /datum/action/innate/cult/blood_spell/stun name = "Stun" - desc = "A potent spell that will stun and mute victims upon contact." + desc = "A potent spell that will stun and mute victims upon contact. When the cult ascends, so does the spell, it burns and throws back the victim!" button_icon_state = "hand" magic_path = "/obj/item/melee/blood_magic/stun" health_cost = 10 @@ -343,7 +343,7 @@ icon = 'icons/obj/items_and_weapons.dmi' icon_state = "disintegrate" item_state = null - item_flags = NEEDS_PERMIT | ABSTRACT | DROPDEL + item_flags = NEEDS_PERMIT | ABSTRACT | DROPDEL | NO_ATTACK_CHAIN_SOFT_STAMCRIT w_class = WEIGHT_CLASS_HUGE throwforce = 0 @@ -437,8 +437,15 @@ else target.visible_message("[L] starts to glow in a halo of light!", \ "A feeling of warmth washes over you, rays of holy light surround your body and protect you from the flash of light!") - else - if(!iscultist(L)) + 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(!iscultist(L)) + L.adjustFireLoss(20) + if(L.move_resist < MOVE_FORCE_STRONG) + var/atom/throw_target = get_edge_target_turf(L, user.dir) + L.throw_at(throw_target, 7, 1, user) + else if(!iscultist(L)) L.Knockdown(160) L.adjustStaminaLoss(140) //Ensures hard stamcrit L.flash_act(1,1) diff --git a/code/modules/antagonists/cult/ritual.dm b/code/modules/antagonists/cult/ritual.dm index ba2a96289d..e92f562db3 100644 --- a/code/modules/antagonists/cult/ritual.dm +++ b/code/modules/antagonists/cult/ritual.dm @@ -116,7 +116,7 @@ This file contains the cult dagger and rune list code if(user.blood_volume) user.apply_damage(initial(rune_to_scribe.scribe_damage), BRUTE, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)) var/scribe_mod = initial(rune_to_scribe.scribe_delay) - if(istype(get_turf(user), /turf/open/floor/engine/cult)) + if(istype(get_turf(user), /turf/open/floor/engine/cult) && !(ispath(rune_to_scribe, /obj/effect/rune/narsie))) scribe_mod *= 0.5 if(!do_after(user, scribe_mod, target = get_turf(user))) for(var/V in shields) diff --git a/code/modules/antagonists/devil/imp/imp.dm b/code/modules/antagonists/devil/imp/imp.dm index fa5263059a..c2f636959b 100644 --- a/code/modules/antagonists/devil/imp/imp.dm +++ b/code/modules/antagonists/devil/imp/imp.dm @@ -13,7 +13,7 @@ icon = 'icons/mob/mob.dmi' icon_state = "imp" icon_living = "imp" - mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) + mob_biotypes = MOB_ORGANIC|MOB_HUMANOID speed = 1 a_intent = INTENT_HARM stop_automated_movement = 1 diff --git a/code/modules/antagonists/disease/disease_abilities.dm b/code/modules/antagonists/disease/disease_abilities.dm index 7b30d10c5d..e8dcaf9cc7 100644 --- a/code/modules/antagonists/disease/disease_abilities.dm +++ b/code/modules/antagonists/disease/disease_abilities.dm @@ -5,49 +5,49 @@ is currently following. */ GLOBAL_LIST_INIT(disease_ability_singletons, list( - new /datum/disease_ability/action/cough, - new /datum/disease_ability/action/sneeze, - new /datum/disease_ability/action/infect, - new /datum/disease_ability/symptom/mild/cough, - new /datum/disease_ability/symptom/mild/sneeze, - new /datum/disease_ability/symptom/medium/shedding, - new /datum/disease_ability/symptom/medium/beard, - new /datum/disease_ability/symptom/medium/hallucigen, - new /datum/disease_ability/symptom/medium/choking, - new /datum/disease_ability/symptom/medium/confusion, - new /datum/disease_ability/symptom/medium/vomit, - new /datum/disease_ability/symptom/medium/voice_change, - new /datum/disease_ability/symptom/medium/visionloss, - new /datum/disease_ability/symptom/medium/deafness, - new /datum/disease_ability/symptom/powerful/narcolepsy, - new /datum/disease_ability/symptom/medium/fever, - new /datum/disease_ability/symptom/medium/shivering, - new /datum/disease_ability/symptom/medium/headache, - new /datum/disease_ability/symptom/medium/nano_boost, - new /datum/disease_ability/symptom/medium/nano_destroy, - new /datum/disease_ability/symptom/medium/viraladaptation, - new /datum/disease_ability/symptom/medium/viralevolution, - new /datum/disease_ability/symptom/medium/vitiligo, - new /datum/disease_ability/symptom/medium/revitiligo, - new /datum/disease_ability/symptom/medium/itching, - new /datum/disease_ability/symptom/medium/heal/weight_loss, - new /datum/disease_ability/symptom/medium/heal/sensory_restoration, - new /datum/disease_ability/symptom/medium/heal/mind_restoration, - new /datum/disease_ability/symptom/powerful/fire, - new /datum/disease_ability/symptom/powerful/flesh_eating, -// new /datum/disease_ability/symptom/powerful/genetic_mutation, - new /datum/disease_ability/symptom/powerful/inorganic_adaptation, - new /datum/disease_ability/symptom/powerful/heal/starlight, - new /datum/disease_ability/symptom/powerful/heal/oxygen, - new /datum/disease_ability/symptom/powerful/heal/chem, - new /datum/disease_ability/symptom/powerful/heal/metabolism, - new /datum/disease_ability/symptom/powerful/heal/dark, - new /datum/disease_ability/symptom/powerful/heal/water, - new /datum/disease_ability/symptom/powerful/heal/plasma, - new /datum/disease_ability/symptom/powerful/heal/radiation, - new /datum/disease_ability/symptom/powerful/heal/coma, - new /datum/disease_ability/symptom/powerful/youth - )) +new /datum/disease_ability/action/cough, +new /datum/disease_ability/action/sneeze, +new /datum/disease_ability/action/infect, +new /datum/disease_ability/symptom/mild/cough, +new /datum/disease_ability/symptom/mild/sneeze, +new /datum/disease_ability/symptom/medium/shedding, +new /datum/disease_ability/symptom/medium/beard, +new /datum/disease_ability/symptom/medium/hallucigen, +new /datum/disease_ability/symptom/medium/choking, +new /datum/disease_ability/symptom/medium/confusion, +new /datum/disease_ability/symptom/medium/vomit, +new /datum/disease_ability/symptom/medium/voice_change, +new /datum/disease_ability/symptom/medium/visionloss, +new /datum/disease_ability/symptom/medium/deafness, +new /datum/disease_ability/symptom/powerful/narcolepsy, +new /datum/disease_ability/symptom/medium/fever, +new /datum/disease_ability/symptom/medium/shivering, +new /datum/disease_ability/symptom/medium/headache, +new /datum/disease_ability/symptom/medium/nano_boost, +new /datum/disease_ability/symptom/medium/nano_destroy, +new /datum/disease_ability/symptom/medium/viraladaptation, +new /datum/disease_ability/symptom/medium/viralevolution, +new /datum/disease_ability/symptom/medium/disfiguration, +new /datum/disease_ability/symptom/medium/polyvitiligo, +new /datum/disease_ability/symptom/medium/itching, +new /datum/disease_ability/symptom/medium/heal/weight_loss, +new /datum/disease_ability/symptom/medium/heal/sensory_restoration, +new /datum/disease_ability/symptom/medium/heal/mind_restoration, +new /datum/disease_ability/symptom/powerful/fire, +new /datum/disease_ability/symptom/powerful/flesh_eating, +new /datum/disease_ability/symptom/powerful/genetic_mutation, +new /datum/disease_ability/symptom/powerful/inorganic_adaptation, +new /datum/disease_ability/symptom/powerful/heal/starlight, +new /datum/disease_ability/symptom/powerful/heal/oxygen, +new /datum/disease_ability/symptom/powerful/heal/chem, +new /datum/disease_ability/symptom/powerful/heal/metabolism, +new /datum/disease_ability/symptom/powerful/heal/dark, +new /datum/disease_ability/symptom/powerful/heal/water, +new /datum/disease_ability/symptom/powerful/heal/plasma, +new /datum/disease_ability/symptom/powerful/heal/radiation, +new /datum/disease_ability/symptom/powerful/heal/coma, +new /datum/disease_ability/symptom/powerful/youth +)) /datum/disease_ability var/name @@ -57,7 +57,7 @@ GLOBAL_LIST_INIT(disease_ability_singletons, list( var/short_desc = "" var/long_desc = "" var/stat_block = "" - var/threshold_block = list() + var/threshold_block = "" var/category = "" var/list/symptoms @@ -76,7 +76,7 @@ GLOBAL_LIST_INIT(disease_ability_singletons, list( resistance += initial(S.resistance) stage_speed += initial(S.stage_speed) transmittable += initial(S.transmittable) - threshold_block += initial(S.threshold_desc) + threshold_block += "

[initial(S.threshold_desc)]" stat_block = "Resistance: [resistance]
Stealth: [stealth]
Stage Speed: [stage_speed]
Transmissibility: [transmittable]

" if(symptoms.len == 1) //lazy boy's dream name = initial(S.name) @@ -106,10 +106,8 @@ GLOBAL_LIST_INIT(disease_ability_singletons, list( for(var/T in symptoms) var/datum/symptom/S = new T() SD.symptoms += S - S.OnAdd(SD) if(SD.processing) - if(S.Start(SD)) - S.next_activation = world.time + rand(S.symptom_delay_min * 10, S.symptom_delay_max * 10) + S.Start(SD) SD.Refresh() for(var/T in actions) var/datum/action/A = new T() @@ -136,7 +134,6 @@ GLOBAL_LIST_INIT(disease_ability_singletons, list( var/datum/symptom/S = locate(T) in SD.symptoms if(S) SD.symptoms -= S - S.OnRemove(SD) if(SD.processing) S.End(SD) qdel(S) @@ -296,7 +293,6 @@ GLOBAL_LIST_INIT(disease_ability_singletons, list( cost = 8 category = "Symptom (Strong+)" - /******MILD******/ /datum/disease_ability/symptom/mild/cough @@ -377,11 +373,11 @@ GLOBAL_LIST_INIT(disease_ability_singletons, list( /datum/disease_ability/symptom/medium/viralevolution symptoms = list(/datum/symptom/viralevolution) -/datum/disease_ability/symptom/medium/vitiligo - symptoms = list(/datum/symptom/vitiligo) +/datum/disease_ability/symptom/medium/polyvitiligo + symptoms = list(/datum/symptom/polyvitiligo) -/datum/disease_ability/symptom/medium/revitiligo - symptoms = list(/datum/symptom/revitiligo) +/datum/disease_ability/symptom/medium/disfiguration + symptoms = list(/datum/symptom/disfiguration) /datum/disease_ability/symptom/medium/itching symptoms = list(/datum/symptom/itching) @@ -409,11 +405,9 @@ GLOBAL_LIST_INIT(disease_ability_singletons, list( /datum/disease_ability/symptom/powerful/flesh_eating symptoms = list(/datum/symptom/flesh_eating) -/* /datum/disease_ability/symptom/powerful/genetic_mutation symptoms = list(/datum/symptom/genetic_mutation) cost = 8 -*/ /datum/disease_ability/symptom/powerful/inorganic_adaptation symptoms = list(/datum/symptom/inorganic_adaptation) @@ -457,4 +451,4 @@ GLOBAL_LIST_INIT(disease_ability_singletons, list( /datum/disease_ability/symptom/powerful/heal/coma symptoms = list(/datum/symptom/heal/coma) short_desc = "Cause victims to fall into a healing coma when hurt." - long_desc = "Cause victims to fall into a healing coma when hurt." + long_desc = "Cause victims to fall into a healing coma when hurt." \ No newline at end of file diff --git a/code/modules/antagonists/ert/ert.dm b/code/modules/antagonists/ert/ert.dm index 0fb41cabc8..5c878bcc55 100644 --- a/code/modules/antagonists/ert/ert.dm +++ b/code/modules/antagonists/ert/ert.dm @@ -12,7 +12,6 @@ var/list/name_source show_in_antagpanel = FALSE antag_moodlet = /datum/mood_event/focused - can_hijack = HIJACK_PREVENT /datum/antagonist/ert/on_gain() update_name() diff --git a/code/modules/antagonists/highlander/highlander.dm b/code/modules/antagonists/highlander/highlander.dm index 49635356ac..eccf7e3c60 100644 --- a/code/modules/antagonists/highlander/highlander.dm +++ b/code/modules/antagonists/highlander/highlander.dm @@ -3,7 +3,7 @@ var/obj/item/claymore/highlander/sword show_in_antagpanel = FALSE show_name_in_check_antagonists = TRUE - can_hijack = HIJACK_HIJACKER + hijack_speed = 2 //if you kill everyone and actually haev a hand to hijack with, you win?? /datum/antagonist/highlander/apply_innate_effects(mob/living/mob_override) var/mob/living/L = owner.current || mob_override diff --git a/code/modules/antagonists/ninja/ninja.dm b/code/modules/antagonists/ninja/ninja.dm index 943cb02696..12bdbec77a 100644 --- a/code/modules/antagonists/ninja/ninja.dm +++ b/code/modules/antagonists/ninja/ninja.dm @@ -8,11 +8,6 @@ var/give_objectives = TRUE var/give_equipment = TRUE -/datum/antagonist/ninja/New() - if(helping_station) - can_hijack = HIJACK_PREVENT - . = ..() - /datum/antagonist/ninja/apply_innate_effects(mob/living/mob_override) var/mob/living/M = mob_override || owner.current update_ninja_icons_added(M) @@ -135,8 +130,6 @@ adj = "objectiveless" else return - if(helping_station) - can_hijack = HIJACK_PREVENT new_owner.assigned_role = ROLE_NINJA new_owner.special_role = ROLE_NINJA new_owner.add_antag_datum(src) diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm index fe3b5a3aeb..0d815703c5 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm @@ -381,6 +381,7 @@ playsound(src, 'sound/machines/nuke/confirm_beep.ogg', 50, FALSE) set_active() update_ui_mode() + . = TRUE else playsound(src, 'sound/machines/nuke/angry_beep.ogg', 50, FALSE) if("anchor") diff --git a/code/modules/antagonists/nukeop/nukeop.dm b/code/modules/antagonists/nukeop/nukeop.dm index d343951d53..4a63ba65bd 100644 --- a/code/modules/antagonists/nukeop/nukeop.dm +++ b/code/modules/antagonists/nukeop/nukeop.dm @@ -8,7 +8,6 @@ var/always_new_team = FALSE //If not assigned a team by default ops will try to join existing ones, set this to TRUE to always create new team. var/send_to_spawnpoint = TRUE //Should the user be moved to default spawnpoint. var/nukeop_outfit = /datum/outfit/syndicate - can_hijack = HIJACK_HIJACKER //Alternative way to wipe out the station. /datum/antagonist/nukeop/proc/update_synd_icons_added(mob/living/M) var/datum/atom_hud/antag/opshud = GLOB.huds[ANTAG_HUD_OPS] diff --git a/code/modules/antagonists/official/official.dm b/code/modules/antagonists/official/official.dm index 9165a99d42..1d340253c4 100644 --- a/code/modules/antagonists/official/official.dm +++ b/code/modules/antagonists/official/official.dm @@ -4,7 +4,6 @@ show_in_antagpanel = FALSE var/datum/objective/mission var/datum/team/ert/ert_team - can_hijack = HIJACK_PREVENT /datum/antagonist/official/greet() to_chat(owner, "You are a CentCom Official.") diff --git a/code/modules/antagonists/overthrow/overthrow_converter.dm b/code/modules/antagonists/overthrow/overthrow_converter.dm index 23599bd01b..99d1a52de8 100644 --- a/code/modules/antagonists/overthrow/overthrow_converter.dm +++ b/code/modules/antagonists/overthrow/overthrow_converter.dm @@ -9,7 +9,7 @@ throw_speed = 3 throw_range = 5 w_class = WEIGHT_CLASS_SMALL - materials = list(MAT_METAL=600, MAT_GLASS=200) + custom_materials = list(/datum/material/iron=600, /datum/material/glass=200) var/uses = 2 /obj/item/overthrow_converter/proc/convert(mob/living/carbon/human/target, mob/living/carbon/human/user) // Should probably also delete any mindshield implant. Not sure. diff --git a/code/modules/antagonists/revenant/revenant.dm b/code/modules/antagonists/revenant/revenant.dm index 9754d146c3..26efb92bec 100644 --- a/code/modules/antagonists/revenant/revenant.dm +++ b/code/modules/antagonists/revenant/revenant.dm @@ -16,7 +16,7 @@ var/icon_stun = "revenant_stun" var/icon_drain = "revenant_draining" var/stasis = FALSE - mob_biotypes = list(MOB_SPIRIT) + mob_biotypes = MOB_SPIRIT incorporeal_move = INCORPOREAL_MOVE_JAUNT invisibility = INVISIBILITY_REVENANT health = INFINITY //Revenants don't use health, they use essence instead diff --git a/code/modules/antagonists/slaughter/slaughter.dm b/code/modules/antagonists/slaughter/slaughter.dm index c703c85762..8a01622c87 100644 --- a/code/modules/antagonists/slaughter/slaughter.dm +++ b/code/modules/antagonists/slaughter/slaughter.dm @@ -12,7 +12,7 @@ icon = 'icons/mob/mob.dmi' icon_state = "daemon" icon_living = "daemon" - mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) + mob_biotypes = MOB_ORGANIC|MOB_HUMANOID speed = 1 a_intent = INTENT_HARM stop_automated_movement = 1 diff --git a/code/modules/antagonists/swarmer/swarmer.dm b/code/modules/antagonists/swarmer/swarmer.dm index 7680d61034..99d12972d8 100644 --- a/code/modules/antagonists/swarmer/swarmer.dm +++ b/code/modules/antagonists/swarmer/swarmer.dm @@ -4,7 +4,7 @@ desc = "A shell of swarmer that was completely powered down. It can no longer activate itself." icon = 'icons/mob/swarmer.dmi' icon_state = "swarmer_unactivated" - materials = list(MAT_METAL=10000, MAT_GLASS=4000) + custom_materials = list(/datum/material/iron=10000, /datum/material/glass=4000) /obj/effect/mob_spawn/swarmer name = "unactivated swarmer" @@ -62,7 +62,7 @@ speak_emote = list("tones") initial_language_holder = /datum/language_holder/swarmer bubble_icon = "swarmer" - mob_biotypes = list(MOB_ROBOTIC) + mob_biotypes = MOB_ROBOTIC health = 40 maxHealth = 40 status_flags = CANPUSH @@ -191,7 +191,7 @@ return 0 /obj/item/IntegrateAmount() //returns the amount of resources gained when eating this item - if(materials[MAT_METAL] || materials[MAT_GLASS]) + if(custom_materials[getmaterialref(/datum/material/iron)] || custom_materials[getmaterialref(/datum/material/glass)]) return 1 return ..() diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm index 1c7ee48f71..68963078c5 100644 --- a/code/modules/antagonists/traitor/datum_traitor.dm +++ b/code/modules/antagonists/traitor/datum_traitor.dm @@ -13,7 +13,7 @@ var/should_give_codewords = TRUE var/should_equip = TRUE var/traitor_kind = TRAITOR_HUMAN //Set on initial assignment - can_hijack = HIJACK_HIJACKER + hijack_speed = 0.5 //10 seconds per hijack stage by default /datum/antagonist/traitor/on_gain() if(owner.current && isAI(owner.current)) @@ -60,6 +60,7 @@ message = GLOB.syndicate_code_response_regex.Replace(message, "$1") hearing_args[HEARING_RAW_MESSAGE] = message +// needs to be refactored to base /datum/antagonist sometime.. /datum/antagonist/traitor/proc/add_objective(datum/objective/O) objectives += O diff --git a/code/modules/antagonists/wishgranter/wishgranter.dm b/code/modules/antagonists/wishgranter/wishgranter.dm index 21cab26d1e..d22d1b5e39 100644 --- a/code/modules/antagonists/wishgranter/wishgranter.dm +++ b/code/modules/antagonists/wishgranter/wishgranter.dm @@ -2,7 +2,6 @@ name = "Wishgranter Avatar" show_in_antagpanel = FALSE show_name_in_check_antagonists = TRUE - can_hijack = HIJACK_HIJACKER /datum/antagonist/wishgranter/proc/forge_objectives() var/datum/objective/hijack/hijack = new diff --git a/code/modules/antagonists/wizard/wizard.dm b/code/modules/antagonists/wizard/wizard.dm index 5e4cc17541..234bb3d1a1 100644 --- a/code/modules/antagonists/wizard/wizard.dm +++ b/code/modules/antagonists/wizard/wizard.dm @@ -12,7 +12,6 @@ var/move_to_lair = TRUE var/outfit_type = /datum/outfit/wizard var/wiz_age = WIZARD_AGE_MIN /* Wizards by nature cannot be too young. */ - can_hijack = HIJACK_HIJACKER /datum/antagonist/wizard/on_gain() register() diff --git a/code/modules/assembly/assembly.dm b/code/modules/assembly/assembly.dm index 2d291c580e..c50ca2f187 100644 --- a/code/modules/assembly/assembly.dm +++ b/code/modules/assembly/assembly.dm @@ -12,7 +12,7 @@ icon_state = "" flags_1 = CONDUCT_1 w_class = WEIGHT_CLASS_SMALL - materials = list(MAT_METAL=100) + custom_materials = list(/datum/material/iron=100) throwforce = 2 throw_speed = 3 throw_range = 7 diff --git a/code/modules/assembly/flash.dm b/code/modules/assembly/flash.dm index 56e21aa79a..b6afc3cc0b 100644 --- a/code/modules/assembly/flash.dm +++ b/code/modules/assembly/flash.dm @@ -8,7 +8,7 @@ righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' throwforce = 0 w_class = WEIGHT_CLASS_TINY - materials = list(MAT_METAL = 300, MAT_GLASS = 300) + custom_materials = list(/datum/material/iron = 300, /datum/material/glass = 300) crit_fail = FALSE //Is the flash burnt out? light_color = LIGHT_COLOR_WHITE light_power = FLASH_LIGHT_POWER @@ -267,7 +267,7 @@ throw_speed = 2 throw_range = 3 w_class = WEIGHT_CLASS_BULKY - materials = list(MAT_GLASS=7500, MAT_METAL=1000) + custom_materials = list(/datum/material/glass=7500, /datum/material/iron=1000) attack_verb = list("shoved", "bashed") block_chance = 50 armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 0, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 70) diff --git a/code/modules/assembly/health.dm b/code/modules/assembly/health.dm index 3fca066f86..cddc4fb08f 100644 --- a/code/modules/assembly/health.dm +++ b/code/modules/assembly/health.dm @@ -2,7 +2,7 @@ name = "health sensor" desc = "Used for scanning and monitoring health." icon_state = "health" - materials = list(MAT_METAL=800, MAT_GLASS=200) + custom_materials = list(/datum/material/iron=800, /datum/material/glass=200) attachable = TRUE secured = FALSE diff --git a/code/modules/assembly/igniter.dm b/code/modules/assembly/igniter.dm index 36bbb509fb..dbd8f834ca 100644 --- a/code/modules/assembly/igniter.dm +++ b/code/modules/assembly/igniter.dm @@ -2,7 +2,7 @@ name = "igniter" desc = "A small electronic device able to ignite combustible substances." icon_state = "igniter" - materials = list(MAT_METAL=500, MAT_GLASS=50) + custom_materials = list(/datum/material/iron=500, /datum/material/glass=50) var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread heat = 1000 diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm index b223992d2c..d19666077d 100644 --- a/code/modules/assembly/infrared.dm +++ b/code/modules/assembly/infrared.dm @@ -2,7 +2,7 @@ name = "infrared emitter" desc = "Emits a visible or invisible beam and is triggered when the beam is interrupted." icon_state = "infrared" - materials = list(MAT_METAL=1000, MAT_GLASS=500) + custom_materials = list(/datum/material/iron=1000, /datum/material/glass=500) is_position_sensitive = TRUE var/on = FALSE diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm index 7c8952eb33..c701e13a26 100644 --- a/code/modules/assembly/mousetrap.dm +++ b/code/modules/assembly/mousetrap.dm @@ -3,7 +3,7 @@ desc = "A handy little spring-loaded trap for catching pesty rodents." icon_state = "mousetrap" item_state = "mousetrap" - materials = list(MAT_METAL=100) + custom_materials = list(/datum/material/iron=100) attachable = TRUE var/armed = FALSE diff --git a/code/modules/assembly/playback.dm b/code/modules/assembly/playback.dm index 42135f7ff9..14ad8c96c9 100644 --- a/code/modules/assembly/playback.dm +++ b/code/modules/assembly/playback.dm @@ -2,7 +2,7 @@ name = "playback device" desc = "A small electronic device able to record a voice sample, and repeat that sample when it receive a signal." icon_state = "radio" - materials = list(MAT_METAL=500, MAT_GLASS=50) + custom_materials = list(/datum/material/iron = 500, /datum/material/glass = 50) flags_1 = HEAR_1 attachable = TRUE verb_say = "beeps" diff --git a/code/modules/assembly/proximity.dm b/code/modules/assembly/proximity.dm index 329ea85c0e..f1a4ce47cc 100644 --- a/code/modules/assembly/proximity.dm +++ b/code/modules/assembly/proximity.dm @@ -2,7 +2,7 @@ name = "proximity sensor" desc = "Used for scanning and alerting when someone enters a certain proximity." icon_state = "prox" - materials = list(MAT_METAL=800, MAT_GLASS=200) + custom_materials = list(/datum/material/iron=800, /datum/material/glass=200) attachable = TRUE var/scanning = FALSE diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm index 53cbb8ea2a..cee0a9054c 100644 --- a/code/modules/assembly/signaler.dm +++ b/code/modules/assembly/signaler.dm @@ -5,7 +5,7 @@ item_state = "signaler" lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' - materials = list(MAT_METAL=400, MAT_GLASS=120) + custom_materials = list(/datum/material/iron=400, /datum/material/glass=120) wires = WIRE_RECEIVE | WIRE_PULSE | WIRE_RADIO_PULSE | WIRE_RADIO_RECEIVE attachable = TRUE diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm index a5c6298910..bbcddbdb93 100644 --- a/code/modules/assembly/timer.dm +++ b/code/modules/assembly/timer.dm @@ -2,7 +2,7 @@ name = "timer" desc = "Used to time things. Works well with contraptions which has to count down. Tick tock." icon_state = "timer" - materials = list(MAT_METAL=500, MAT_GLASS=50) + custom_materials = list(/datum/material/iron=500, /datum/material/glass=50) attachable = TRUE var/timing = FALSE diff --git a/code/modules/assembly/voice.dm b/code/modules/assembly/voice.dm index 3f37969e82..15c9afbf00 100644 --- a/code/modules/assembly/voice.dm +++ b/code/modules/assembly/voice.dm @@ -7,7 +7,7 @@ name = "voice analyzer" desc = "A small electronic device able to record a voice sample, and send a signal when that sample is repeated." icon_state = "voice" - materials = list(MAT_METAL=500, MAT_GLASS=50) + custom_materials = list(/datum/material/iron=500, /datum/material/glass=50) flags_1 = HEAR_1 attachable = TRUE verb_say = "beeps" diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm index f7c5dce30f..4d2b8de586 100644 --- a/code/modules/atmospherics/machinery/airalarm.dm +++ b/code/modules/atmospherics/machinery/airalarm.dm @@ -72,7 +72,7 @@ power_channel = ENVIRON req_access = list(ACCESS_ATMOSPHERICS) max_integrity = 250 - integrity_failure = 80 + integrity_failure = 0.33 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 100, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 30) resistance_flags = FIRE_PROOF @@ -229,7 +229,7 @@ . += "Alt-click to [locked ? "unlock" : "lock"] the interface." /obj/machinery/airalarm/ui_status(mob/user) - if(user.has_unlimited_silicon_privilege && aidisabled) + if(hasSiliconAccessInArea(user) && aidisabled) to_chat(user, "AI control has been disabled.") else if(!shorted) return ..() @@ -245,7 +245,7 @@ /obj/machinery/airalarm/ui_data(mob/user) var/data = list( "locked" = locked, - "siliconUser" = user.has_unlimited_silicon_privilege, + "siliconUser" = hasSiliconAccessInArea(user), "emagged" = (obj_flags & EMAGGED ? 1 : 0), "danger_level" = danger_level, ) @@ -288,7 +288,7 @@ "danger_level" = cur_tlv.get_danger_level(environment.gases[gas_id] * partial_pressure) )) - if(!locked || user.has_unlimited_silicon_privilege) + if(!locked || hasSiliconAccessInArea(user, PRIVILEDGES_SILICON|PRIVILEDGES_DRONE)) data["vents"] = list() for(var/id_tag in A.air_vent_names) var/long_name = A.air_vent_names[id_tag] @@ -368,12 +368,14 @@ /obj/machinery/airalarm/ui_act(action, params) if(..() || buildstage != 2) return - if((locked && !usr.has_unlimited_silicon_privilege) || (usr.has_unlimited_silicon_privilege && aidisabled)) + var/silicon_access = hasSiliconAccessInArea(usr) + var/bot_priviledges = silicon_access || (usr.silicon_privileges & PRIVILEDGES_DRONE) + if((locked && !bot_priviledges) || (silicon_access && aidisabled)) return var/device_id = params["id_tag"] switch(action) if("lock") - if(usr.has_unlimited_silicon_privilege && !wires.is_cut(WIRE_IDSCAN)) + if(bot_priviledges && !wires.is_cut(WIRE_IDSCAN)) locked = !locked . = TRUE if("power", "toggle_filter", "widenet", "scrubbing") @@ -840,7 +842,7 @@ /obj/machinery/airalarm/AltClick(mob/user) . = ..() - if(!user.canUseTopic(src, !issilicon(user)) || !isturf(loc)) + if(!user.canUseTopic(src, !hasSiliconAccessInArea(user)) || !isturf(loc)) return togglelock(user) return TRUE diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm index 539b5ce57a..1e8cce32c0 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm @@ -251,6 +251,7 @@ /obj/machinery/atmospherics/components/unary/cryo_cell/close_machine(mob/living/carbon/user) if((isnull(user) || istype(user)) && state_open && !panel_open) ..(user) + reagent_transfer = 0 return occupant /obj/machinery/atmospherics/components/unary/cryo_cell/container_resist(mob/living/user) diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm index bad2b85bfe..0d335da482 100644 --- a/code/modules/atmospherics/machinery/portable/canister.dm +++ b/code/modules/atmospherics/machinery/portable/canister.dm @@ -19,7 +19,7 @@ armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 100, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 50) max_integrity = 250 - integrity_failure = 100 + integrity_failure = 0.4 pressure_resistance = 7 * ONE_ATMOSPHERE var/temperature_resistance = 1000 + T0C var/starter_temp diff --git a/code/modules/awaymissions/bluespaceartillery.dm b/code/modules/awaymissions/bluespaceartillery.dm index deb05920e2..ee4090b680 100644 --- a/code/modules/awaymissions/bluespaceartillery.dm +++ b/code/modules/awaymissions/bluespaceartillery.dm @@ -44,7 +44,7 @@ return if(reload < reload_cooldown) return - if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || issilicon(usr)) + if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || hasSiliconAccessInArea(usr)) priority_announce("Bluespace artillery fire detected. Brace for impact.") message_admins("[ADMIN_LOOKUPFLW(usr)] has launched an artillery strike.") var/list/L = list() diff --git a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm index 3562350473..c4bb6e8cdd 100644 --- a/code/modules/awaymissions/capture_the_flag.dm +++ b/code/modules/awaymissions/capture_the_flag.dm @@ -466,11 +466,13 @@ // MELEE GANG /obj/item/claymore/ctf - slot_flags = SLOT_BACK + slot_flags = ITEM_SLOT_BACK + armour_penetration = 100 + total_mass = 1 /obj/item/claymore/ctf/pre_attack(atom/target, mob/user, params) if(!is_ctf_target(target)) - return FALSE + return TRUE return ..() /obj/item/claymore/ctf/dropped() diff --git a/code/modules/awaymissions/super_secret_room.dm b/code/modules/awaymissions/super_secret_room.dm index 3903df9686..0bc0abef1e 100644 --- a/code/modules/awaymissions/super_secret_room.dm +++ b/code/modules/awaymissions/super_secret_room.dm @@ -122,7 +122,7 @@ icon = 'icons/obj/economy.dmi' icon_state = "rupee" w_class = WEIGHT_CLASS_SMALL - materials = list(MAT_GLASS = 500) + custom_materials = list(/datum/material/glass = 500) /obj/item/rupee/New() var/newcolor = color2hex(pick(10;"green", 5;"blue", 3;"red", 1;"purple")) diff --git a/code/modules/cargo/bounties/reagent.dm b/code/modules/cargo/bounties/reagent.dm index ca76c80df7..391b4ff464 100644 --- a/code/modules/cargo/bounties/reagent.dm +++ b/code/modules/cargo/bounties/reagent.dm @@ -105,6 +105,7 @@ datum/bounty/reagent/complex_drink/New() /datum/reagent/consumable/ethanol/hearty_punch,\ /datum/reagent/consumable/ethanol/manhattan_proj,\ /datum/reagent/consumable/ethanol/narsour,\ + /datum/reagent/consumable/ethanol/cogchamp,\ /datum/reagent/consumable/ethanol/neurotoxin,\ /datum/reagent/consumable/ethanol/patron,\ /datum/reagent/consumable/ethanol/quadruple_sec,\ diff --git a/code/modules/cargo/export_scanner.dm b/code/modules/cargo/export_scanner.dm index 9c523c194f..80fd05cf8c 100644 --- a/code/modules/cargo/export_scanner.dm +++ b/code/modules/cargo/export_scanner.dm @@ -36,6 +36,8 @@ var/price = 0 for(var/x in ex.total_amount) price += ex.total_value[x] + for(var/x in ex.reagents_value) + price += ex.reagents_value[x] if(price) to_chat(user, "Scanned [O], value: [price] credits[O.contents.len ? " (contents included)" : ""].") diff --git a/code/modules/cargo/exports.dm b/code/modules/cargo/exports.dm index fca10ac01c..bb90fa717a 100644 --- a/code/modules/cargo/exports.dm +++ b/code/modules/cargo/exports.dm @@ -49,13 +49,13 @@ Credit dupes that require a lot of manual work shouldn't be removed, unless they sold = E.sell_object(thing, report, dry_run, allowed_categories , apply_elastic) report.exported_atoms += " [thing.name]" break - if(thing.reagents) + if(thing.reagents?.value_multiplier) for(var/A in thing.reagents.reagent_list) var/datum/reagent/R = A if(!R.value) continue report.reagents_volume[R.name] += R.volume - report.reagents_value[R.name] += R.volume * R.value + report.reagents_value[R.name] += round(R.volume * R.value * thing.reagents.value_multiplier) if(!dry_run && (sold || delete_unsold)) if(ismob(thing)) thing.investigate_log("deleted through cargo export",INVESTIGATE_CARGO) diff --git a/code/modules/cargo/exports/large_objects.dm b/code/modules/cargo/exports/large_objects.dm index b8541dcd33..b7bdcb1f59 100644 --- a/code/modules/cargo/exports/large_objects.dm +++ b/code/modules/cargo/exports/large_objects.dm @@ -6,7 +6,7 @@ k_elasticity = 0 unit_name = "crate" export_types = list(/obj/structure/closet/crate) - exclude_types = list(/obj/structure/closet/crate/large, /obj/structure/closet/crate/wooden) + exclude_types = list(/obj/structure/closet/crate/large, /obj/structure/closet/crate/wooden, /obj/structure/closet/crate/bin) /datum/export/large/crate/total_printout(datum/export_report/ex, notes = TRUE) // That's why a goddamn metal crate costs that much. . = ..() @@ -24,13 +24,13 @@ export_types = list(/obj/structure/ore_box) /datum/export/large/crate/wood - cost = 140 // + cost = 140 unit_name = "wooden crate" export_types = list(/obj/structure/closet/crate/wooden) exclude_types = list() /datum/export/large/barrel - cost = 500 //150 to make meaning proffit of 350 + cost = 300 //double the wooden cost of a coffin. unit_name = "wooden barrel" export_types = list(/obj/structure/fermenting_barrel) @@ -40,19 +40,11 @@ export_types = list(/obj/structure/closet/crate/coffin) /datum/export/large/reagent_dispenser - cost = 100 // +0-400 depending on amount of reagents left - var/contents_cost = 400 - -/datum/export/large/reagent_dispenser/get_cost(obj/O) - var/obj/structure/reagent_dispensers/D = O - var/ratio = D.reagents.total_volume / D.reagents.maximum_volume - - return ..() + round(contents_cost * ratio) + cost = 100 /datum/export/large/reagent_dispenser/water unit_name = "watertank" export_types = list(/obj/structure/reagent_dispensers/watertank) - contents_cost = 200 /datum/export/large/reagent_dispenser/fuel unit_name = "fueltank" @@ -60,7 +52,6 @@ /datum/export/large/reagent_dispenser/beer unit_name = "beer keg" - contents_cost = 700 export_types = list(/obj/structure/reagent_dispensers/beerkeg) /datum/export/large/pipedispenser diff --git a/code/modules/cargo/exports/materials.dm b/code/modules/cargo/exports/materials.dm index d8fc5f22ab..a9d3b25d90 100644 --- a/code/modules/cargo/exports/materials.dm +++ b/code/modules/cargo/exports/materials.dm @@ -15,16 +15,13 @@ if(!isitem(O)) return 0 var/obj/item/I = O - if(!(material_id in I.materials)) + if(!(getmaterialref(material_id) in I.custom_materials)) return 0 - var/amount = I.materials[material_id] + var/amount = I.custom_materials[getmaterialref(material_id)] - if(istype(I, /obj/item/stack)) - var/obj/item/stack/S = I - amount *= S.amount - if(istype(I, /obj/item/stack/ore)) - amount *= 0.8 // Station's ore redemption equipment is really goddamn good. + if(istype(I, /obj/item/stack/ore)) + amount *= 0.8 // Station's ore redemption equipment is really goddamn good. return round(amount/MINERAL_MATERIAL_AMOUNT) @@ -32,53 +29,48 @@ /datum/export/material/bananium cost = 500 - material_id = MAT_BANANIUM + material_id = /datum/material/bananium message = "cm3 of bananium" /datum/export/material/diamond cost = 250 - material_id = MAT_DIAMOND + material_id = /datum/material/diamond message = "cm3 of diamonds" /datum/export/material/plasma cost = 100 - material_id = MAT_PLASMA + material_id = /datum/material/plasma message = "cm3 of plasma" /datum/export/material/uranium cost = 50 - material_id = MAT_URANIUM + material_id = /datum/material/uranium message = "cm3 of uranium" /datum/export/material/gold cost = 60 - material_id = MAT_GOLD + material_id = /datum/material/gold message = "cm3 of gold" /datum/export/material/silver cost = 25 - material_id = MAT_SILVER + material_id = /datum/material/silver message = "cm3 of silver" /datum/export/material/titanium cost = 60 - material_id = MAT_TITANIUM + material_id = /datum/material/titanium message = "cm3 of titanium" -/datum/export/material/plastitanium - cost = 165 // plasma + titanium costs - material_id = MAT_TITANIUM // code can only check for one material_id; plastitanium is half plasma, half titanium - message = "cm3 of plastitanium" - /datum/export/material/plastic cost = 5 - material_id = MAT_PLASTIC + material_id = /datum/material/plastic message = "cm3 of plastic" /datum/export/material/metal cost = 3 message = "cm3 of metal" - material_id = MAT_METAL + material_id = /datum/material/iron export_types = list( /obj/item/stack/sheet/metal, /obj/item/stack/tile/plasteel, /obj/item/stack/rods, /obj/item/stack/ore, /obj/item/coin) @@ -86,6 +78,26 @@ /datum/export/material/glass cost = 3 message = "cm3 of glass" - material_id = MAT_GLASS + material_id = /datum/material/glass export_types = list(/obj/item/stack/sheet/glass, /obj/item/stack/ore, /obj/item/shard) + +/datum/export/material/adamantine + cost = 300 + material_id = /datum/material/adamantine + message = "cm3 of adamantine" + +/datum/export/material/mythril + cost = 1000 + material_id = /datum/material/mythril + message = "cm3 of mythril" + +/datum/export/material/bscrystal + cost = 150 + message = "cm3 of bluespace crystals" + material_id = /datum/material/bluespace + +/datum/export/material/runite + cost = 300 + message = "cm3 of runite" + material_id = /datum/material/runite \ No newline at end of file diff --git a/code/modules/cargo/exports/sheets.dm b/code/modules/cargo/exports/sheets.dm index f784083097..be0d2d6bee 100644 --- a/code/modules/cargo/exports/sheets.dm +++ b/code/modules/cargo/exports/sheets.dm @@ -67,16 +67,26 @@ message = "of plasteel" export_types = list(/obj/item/stack/sheet/plasteel) +/datum/export/material/plastitanium + cost = 165 // plasma + titanium costs + export_types = list(/obj/item/stack/sheet/mineral/plastitanium) + message = "of plastitanium" + +/datum/export/material/plastitanium_glass + cost = 168 // plasma + titanium + glass costs + export_types = list(/obj/item/stack/sheet/plastitaniumglass) + message = "of plastitanium glass" + // 1 glass + 0.5 metal, cost is rounded up. /datum/export/stack/rglass cost = 6 message = "of reinforced glass" export_types = list(/obj/item/stack/sheet/rglass) -/datum/export/stack/bscrystal - cost = 150 - message = "of bluespace crystals" - export_types = list(/obj/item/stack/sheet/bluespace_crystal) +/datum/export/stack/plastitanium + cost = 165 // plasma + titanium costs + message = "of plastitanium" + export_types = list(/obj/item/stack/sheet/mineral/plastitanium) /datum/export/stack/wood cost = 15 @@ -129,12 +139,6 @@ message = "of alien alloy" export_types = list(/obj/item/stack/sheet/mineral/abductor) -/datum/export/stack/adamantine - unit_name = "bar" - cost = 250 - message = "of adamantine" - export_types = list(/obj/item/stack/sheet/mineral/adamantine) - /datum/export/stack/bone cost = 20 message = "of bones" diff --git a/code/modules/cargo/exports/weapons.dm b/code/modules/cargo/exports/weapons.dm index 5b78a5d630..c75a1c0bff 100644 --- a/code/modules/cargo/exports/weapons.dm +++ b/code/modules/cargo/exports/weapons.dm @@ -199,6 +199,31 @@ unit_name = "advanced shotgun shell" export_types = list(/obj/item/ammo_casing/shotgun/dragonsbreath, /obj/item/ammo_casing/shotgun/meteorslug, /obj/item/ammo_casing/shotgun/pulseslug, /obj/item/ammo_casing/shotgun/frag12, /obj/item/ammo_casing/shotgun/ion, /obj/item/ammo_casing/shotgun/laserslug) +///////////////////////// +//Bow and Arrows///////// +///////////////////////// + +/datum/export/weapon/bows + cost = 450 + unit_name = "bow" + export_types = list(/obj/item/gun/ballistic/bow) + +/datum/export/weapon/arrows + cost = 150 + unit_name = "arrow" + export_types = list(/obj/item/ammo_casing/caseless/arrow, /obj/item/ammo_casing/caseless/arrow/bone, /obj/item/ammo_casing/caseless/arrow/ashen) + +/datum/export/weapon/bow_teaching + cost = 500 + unit_name = "stone tablets" + export_types = list(/obj/item/book/granter/crafting_recipe/bone_bow) + +/datum/export/weapon/quiver + cost = 100 + unit_name = "quiver" + export_types = list(/obj/item/storage/belt/quiver) + + ///////////////////////// //The Traitor Sell Outs// ///////////////////////// diff --git a/code/modules/cargo/expressconsole.dm b/code/modules/cargo/expressconsole.dm index 20dc724707..a65d8cad40 100644 --- a/code/modules/cargo/expressconsole.dm +++ b/code/modules/cargo/expressconsole.dm @@ -97,7 +97,7 @@ var/canBeacon = beacon && (isturf(beacon.loc) || ismob(beacon.loc))//is the beacon in a valid location? var/list/data = list() data["locked"] = locked//swipe an ID to unlock - data["siliconUser"] = user.has_unlimited_silicon_privilege + data["siliconUser"] = hasSiliconAccessInArea(user) data["beaconzone"] = beacon ? get_area(beacon) : ""//where is the beacon located? outputs in the tgui data["usingBeacon"] = usingBeacon //is the mode set to deliver to the beacon or the cargobay? data["canBeacon"] = !usingBeacon || canBeacon //is the mode set to beacon delivery, and is the beacon in a valid location? @@ -183,6 +183,7 @@ LZ = pick(empty_turfs) if (SO.pack.cost <= SSshuttle.points && LZ)//we need to call the cost check again because of the CHECK_TICK call SSshuttle.points -= SO.pack.cost + SSblackbox.record_feedback("nested tally", "cargo_imports", 1, list("[SO.pack.cost]", "[SO.pack.name]")) new /obj/effect/abstract/DPtarget(LZ, podType, SO) . = TRUE update_icon() @@ -196,6 +197,7 @@ CHECK_TICK if(empty_turfs && empty_turfs.len) SSshuttle.points -= SO.pack.cost * (0.72*MAX_EMAG_ROCKETS) + SSblackbox.record_feedback("nested tally", "cargo_imports", MAX_EMAG_ROCKETS, list("[SO.pack.cost * 0.72]", "[SO.pack.name]")) SO.generateRequisition(get_turf(src)) for(var/i in 1 to MAX_EMAG_ROCKETS) var/LZ = pick(empty_turfs) diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index 4c9ddfe3bc..07a75bbfaf 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -2,7 +2,7 @@ var/name = "Crate" var/group = "" var/hidden = FALSE //Aka emag only - var/contraband = FALSE //Hacking the console with a multitool + var/contraband = FALSE //Requires a hacked console UNLESS DropPodOnly = TRUE, in which case it requires an emag var/cost = 700 // Minimum cost, or infinite points are possible. var/access = FALSE //What access does the Crate itself need? var/access_any = FALSE //Do we care about access? diff --git a/code/modules/cargo/packs/armory.dm b/code/modules/cargo/packs/armory.dm index ea8ef8ba0f..fc95b05007 100644 --- a/code/modules/cargo/packs/armory.dm +++ b/code/modules/cargo/packs/armory.dm @@ -178,7 +178,7 @@ /datum/supply_pack/security/armory/russian name = "Russian Surplus Crate" desc = "Hello Comrade, we have the most modern russian military equipment the black market can offer, for the right price of course. Sadly we couldnt remove the lock so it requires Armory access to open." - cost = 5000 + cost = 7500 contraband = TRUE contains = list(/obj/item/reagent_containers/food/snacks/rationpack, /obj/item/ammo_box/a762, @@ -192,12 +192,11 @@ /obj/item/clothing/mask/russian_balaclava, /obj/item/clothing/head/helmet/rus_ushanka, /obj/item/clothing/suit/armor/vest/russian_coat, - /obj/item/gun/ballistic/shotgun/boltaction, /obj/item/gun/ballistic/shotgun/boltaction) crate_name = "surplus military crate" /datum/supply_pack/security/armory/russian/fill(obj/structure/closet/crate/C) - for(var/i in 1 to 10) + for(var/i in 1 to 5) var/item = pick(contains) new item(C) @@ -218,7 +217,7 @@ crate_name = "swat crate" /datum/supply_pack/security/armory/swattasers //Lesser AEG tbh - name = "SWAT tatical tasers Crate" + name = "SWAT tactical tasers Crate" desc = "Contains two tactical energy gun, these guns are able to tase, disable and lethal as well as hold a seclight. Requires Armory access to open." cost = 7000 contains = list(/obj/item/gun/energy/e_gun/stun, diff --git a/code/modules/cargo/packs/costumes_toys.dm b/code/modules/cargo/packs/costumes_toys.dm index 4a64979502..c559e7925a 100644 --- a/code/modules/cargo/packs/costumes_toys.dm +++ b/code/modules/cargo/packs/costumes_toys.dm @@ -63,6 +63,7 @@ /obj/item/toy/cards/deck/syndicate, /obj/item/reagent_containers/food/drinks/bottle/absinthe, /obj/item/clothing/under/syndicate/tacticool, + /obj/item/clothing/under/syndicate/skirt, /obj/item/clothing/under/syndicate, /obj/item/suppressor, /obj/item/storage/fancy/cigarettes/cigpack_syndicate, diff --git a/code/modules/cargo/packs/emergency.dm b/code/modules/cargo/packs/emergency.dm index e32811f2d0..be81da3b92 100644 --- a/code/modules/cargo/packs/emergency.dm +++ b/code/modules/cargo/packs/emergency.dm @@ -130,7 +130,7 @@ /datum/supply_pack/emergency/bomb name = "Explosive Emergency Crate" - desc = "Science gone bonkers? Beeping behind the airlock? Buy now and be the hero the station des... I mean needs! (Time not included.)" + desc = "Science gone bonkers? Beeping behind the airlock? Buy now and become the hero the station des... I mean needs! Time not included, but a full bomb suit and hood, as well as a mask and defusal kit are! Non-Nuclear ordnances only." cost = 1500 contains = list(/obj/item/clothing/head/bomb_hood, /obj/item/clothing/suit/bomb_suit, diff --git a/code/modules/cargo/packs/medical.dm b/code/modules/cargo/packs/medical.dm index ea327ae820..5d02bbe60f 100644 --- a/code/modules/cargo/packs/medical.dm +++ b/code/modules/cargo/packs/medical.dm @@ -88,6 +88,7 @@ /obj/item/clothing/mask/gas, /obj/item/clothing/suit/space/hardsuit/medical) crate_name = "medical hardsuit" + crate_type = /obj/structure/closet/crate/secure/medical /datum/supply_pack/medical/supplies name = "Medical Supplies Crate" @@ -125,7 +126,7 @@ /obj/item/reagent_containers/medspray/synthflesh, /obj/item/reagent_containers/medspray/sterilizine) crate_name = "medco surgery tools" - crate_type = /obj/structure/closet/crate/medical + crate_type = /obj/structure/closet/crate/secure/medical /datum/supply_pack/medical/surgery name = "Surgical Supplies Crate" diff --git a/code/modules/cargo/packs/organic.dm b/code/modules/cargo/packs/organic.dm index 4aa991fc3f..cdac6f49f2 100644 --- a/code/modules/cargo/packs/organic.dm +++ b/code/modules/cargo/packs/organic.dm @@ -193,6 +193,7 @@ /obj/item/reagent_containers/food/snacks/meat/slab/bear, /obj/item/reagent_containers/food/snacks/meat/slab/xeno, /obj/item/reagent_containers/food/snacks/meat/slab/spider, + /obj/item/reagent_containers/food/snacks/meat/rawcrab, /obj/item/reagent_containers/food/snacks/meat/rawbacon, /obj/item/reagent_containers/food/snacks/spiderleg, /obj/item/reagent_containers/food/snacks/carpmeat, @@ -327,7 +328,7 @@ /datum/supply_pack/organic/seeds name = "Seeds Crate" - desc = "Big things have small beginnings. Contains thirteen different seeds." + desc = "Big things have small beginnings. Contains fourteen different seeds." cost = 1250 contains = list(/obj/item/seeds/chili, /obj/item/seeds/berry, diff --git a/code/modules/cargo/packs/science.dm b/code/modules/cargo/packs/science.dm index 8852a7e945..e6671a02ea 100644 --- a/code/modules/cargo/packs/science.dm +++ b/code/modules/cargo/packs/science.dm @@ -84,7 +84,7 @@ /datum/supply_pack/science/glasswork name = "Glass Blower Kit Crate" - desc = "Learn and make glassworks of usefull things for a profit! Contains glassworking tools and blowing rods. Glass not included." + desc = "Learn and make glassworks of useful things for a profit! Contains glassworking tools and blowing rods. Glass not included." cost = 1000 contains = list(/obj/item/glasswork/glasskit, /obj/item/glasswork/glasskit, @@ -111,9 +111,9 @@ /datum/supply_pack/science/nuke_b_gone name = "Nuke Defusal Kit" desc = "Contains set of tools to defuse a nuke." - cost = 7500 //Usefull for traitors/nukies that fucked up + cost = 7500 //Useful for traitors/nukies that fucked up dangerous = TRUE - DropPodOnly = TRUE + hidden = TRUE contains = list(/obj/item/nuke_core_container/nt, /obj/item/screwdriver/nuke/nt, /obj/item/paper/guides/nt/nuke_instructions) @@ -194,7 +194,7 @@ /datum/supply_pack/science/supermater name = "Supermatter Extraction Tools Crate" desc = "Contains a set of tools to extract a sliver of supermatter. Consult your CE today!" - cost = 7500 //Usefull for traitors that fucked up + cost = 7500 //Useful for traitors that fucked up hidden = TRUE contains = list(/obj/item/nuke_core_container/supermatter, /obj/item/scalpel/supermatter, diff --git a/code/modules/cargo/packs/security.dm b/code/modules/cargo/packs/security.dm index 3b602d54d2..90bc837767 100644 --- a/code/modules/cargo/packs/security.dm +++ b/code/modules/cargo/packs/security.dm @@ -81,8 +81,8 @@ desc = "An old russian crate full of surplus armor that they used to use! Has two sets of bulletproff armor, a few union suits and some warm hats!" contraband = TRUE cost = 5750 // Its basicly sec suits, good boots/gloves - contains = list(/obj/item/clothing/suit/security/officer/russian, - /obj/item/clothing/suit/security/officer/russian, + contains = list(/obj/item/clothing/suit/armor/navyblue/russian, + /obj/item/clothing/suit/armor/navyblue/russian, /obj/item/clothing/shoes/combat, /obj/item/clothing/shoes/combat, /obj/item/clothing/head/ushanka, @@ -103,8 +103,8 @@ desc = "An old russian Minutemen crate, comes with a full russian outfit, a mosin and a stripper clip." contraband = TRUE access = FALSE - cost = 5500 // - contains = list(/obj/item/clothing/suit/security/officer/russian, + cost = 6500 // + contains = list(/obj/item/clothing/suit/armor/navyblue/russian, /obj/item/clothing/shoes/combat, /obj/item/clothing/head/ushanka, /obj/item/clothing/suit/armor/bulletproof, @@ -141,15 +141,15 @@ cost = 3250 contains = list(/obj/item/clothing/under/rank/security/navyblue, /obj/item/clothing/under/rank/security/navyblue, - /obj/item/clothing/suit/security/officer, - /obj/item/clothing/suit/security/officer, + /obj/item/clothing/suit/armor/navyblue, + /obj/item/clothing/suit/armor/navyblue, /obj/item/clothing/head/beret/sec/navyofficer, /obj/item/clothing/head/beret/sec/navyofficer, /obj/item/clothing/under/rank/warden/navyblue, - /obj/item/clothing/suit/security/warden, + /obj/item/clothing/suit/armor/vest/warden/navyblue, /obj/item/clothing/head/beret/sec/navywarden, /obj/item/clothing/under/rank/head_of_security/navyblue, - /obj/item/clothing/suit/security/hos, + /obj/item/clothing/suit/armor/hos/navyblue, /obj/item/clothing/head/beret/sec/navyhos) crate_name = "security clothing crate" diff --git a/code/modules/cargo/supplypod_beacon.dm b/code/modules/cargo/supplypod_beacon.dm index 006f1a8084..668698d2e9 100644 --- a/code/modules/cargo/supplypod_beacon.dm +++ b/code/modules/cargo/supplypod_beacon.dm @@ -77,7 +77,7 @@ /obj/item/supplypod_beacon/AltClick(mob/user) . = ..() - if (!user.canUseTopic(src, !issilicon(user))) + if (!user.canUseTopic(src, !hasSiliconAccessInArea(user))) return if (express_console) unlink_console() diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index e05cee3487..dc550179f8 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -737,13 +737,13 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) message_admins("Proxy Detection: [key_name_admin(src)] IP intel rated [res.intel*100]% likely to be a Proxy/VPN.") ip_intel = res.intel -/client/Click(atom/object, atom/location, control, params) +/client/Click(atom/object, atom/location, control, params, ignore_spam = FALSE) var/ab = FALSE var/list/L = params2list(params) if (object && object == middragatom && L["left"]) ab = max(0, 5 SECONDS-(world.time-middragtime)*0.1) var/mcl = CONFIG_GET(number/minute_click_limit) - if (!holder && mcl) + if (!holder && !ignore_spam && mcl) var/minute = round(world.time, 600) if (!clicklimiter) clicklimiter = new(LIMITER_SIZE) @@ -768,7 +768,7 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) return var/scl = CONFIG_GET(number/second_click_limit) - if (!holder && scl) + if (!holder && !ignore_spam && scl) var/second = round(world.time, 10) if (!clicklimiter) clicklimiter = new(LIMITER_SIZE) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index b86545df76..542acec377 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1473,9 +1473,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) age = max(min( round(text2num(new_age)), AGE_MAX),AGE_MIN) if("flavor_text") - var/msg = stripped_multiline_input(usr, "Set the flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!", "Flavor Text", html_decode(features["flavor_text"]), MAX_MESSAGE_LEN, TRUE) + var/msg = stripped_multiline_input(usr, "Set the flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!", "Flavor Text", features["flavor_text"], MAX_FAVOR_LEN, TRUE) if(msg) - msg = msg features["flavor_text"] = msg if("hair") diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 431947d9c1..ef2ee331a9 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -2,7 +2,7 @@ name = "clothing" resistance_flags = FLAMMABLE max_integrity = 200 - integrity_failure = 80 + integrity_failure = 0.4 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 diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm index 7df10b56f7..5ae86636d6 100644 --- a/code/modules/clothing/glasses/_glasses.dm +++ b/code/modules/clothing/glasses/_glasses.dm @@ -8,7 +8,7 @@ strip_delay = 20 equip_delay_other = 25 resistance_flags = NONE - materials = list(MAT_GLASS = 250) + custom_materials = list(/datum/material/glass = 250) var/vision_flags = 0 var/darkness_view = 2//Base human is 2 var/invis_view = SEE_INVISIBLE_LIVING //admin only for now @@ -286,7 +286,7 @@ icon_state = "welding-g" item_state = "welding-g" actions_types = list(/datum/action/item_action/toggle) - materials = list(MAT_METAL = 250) + custom_materials = list(/datum/material/iron = 250) flash_protect = 2 tint = 2 visor_vars_to_toggle = VISOR_FLASHPROTECT | VISOR_TINT @@ -488,4 +488,47 @@ if(client && client.prefs.uses_glasses_colour && glasses_equipped) add_client_colour(G.glass_colour_type) else - remove_client_colour(G.glass_colour_type) \ No newline at end of file + remove_client_colour(G.glass_colour_type) + +/obj/item/clothing/glasses/debug + name = "debug glasses" + desc = "Medical, security and diagnostic hud. Alt click to toggle xray." + icon_state = "nvgmeson" + item_state = "nvgmeson" + flags_cover = GLASSESCOVERSEYES + darkness_view = 8 + flash_protect = 2 + lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE + glass_colour_type = FALSE + clothing_flags = SCAN_REAGENTS + vision_flags = SEE_TURFS + var/list/hudlist = list(DATA_HUD_MEDICAL_ADVANCED, DATA_HUD_DIAGNOSTIC_ADVANCED, DATA_HUD_SECURITY_ADVANCED) + var/xray = FALSE + +/obj/item/clothing/glasses/debug/equipped(mob/user, slot) + . = ..() + if(slot != ITEM_SLOT_EYES) + return + if(ishuman(user)) + for(var/hud in hudlist) + var/datum/atom_hud/H = GLOB.huds[hud] + H.add_hud_to(user) + +/obj/item/clothing/glasses/debug/dropped(mob/user) + . = ..() + if(ishuman(user)) + for(var/hud in hudlist) + var/datum/atom_hud/H = GLOB.huds[hud] + H.remove_hud_from(user) + +/obj/item/clothing/glasses/debug/AltClick(mob/user) + . = ..() + if(ishuman(user)) + if(xray) + vision_flags -= SEE_MOBS|SEE_OBJS + else + vision_flags += SEE_MOBS|SEE_OBJS + xray = !xray + var/mob/living/carbon/human/H = user + H.update_sight() + diff --git a/code/modules/clothing/gloves/_gloves.dm b/code/modules/clothing/gloves/_gloves.dm index 8ab897f5d9..0729317eac 100644 --- a/code/modules/clothing/gloves/_gloves.dm +++ b/code/modules/clothing/gloves/_gloves.dm @@ -11,6 +11,8 @@ var/transfer_blood = 0 strip_delay = 20 equip_delay_other = 40 + var/strip_mod = 1 //how much they alter stripping items time by, higher is quicker + var/strip_silence = FALSE //if it shows a warning when stripping /obj/item/clothing/gloves/ComponentInitialize() . = ..() diff --git a/code/modules/clothing/gloves/boxing.dm b/code/modules/clothing/gloves/boxing.dm index a76ff7c583..fe07cc7ab9 100644 --- a/code/modules/clothing/gloves/boxing.dm +++ b/code/modules/clothing/gloves/boxing.dm @@ -5,6 +5,7 @@ item_state = "boxing" equip_delay_other = 60 species_exception = list(/datum/species/golem) // now you too can be a golem boxing champion + strip_mod = 0.5 /obj/item/clothing/gloves/boxing/green icon_state = "boxinggreen" diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm index b630b121a9..f4b04f5bfe 100644 --- a/code/modules/clothing/gloves/color.dm +++ b/code/modules/clothing/gloves/color.dm @@ -41,6 +41,7 @@ permeability_coefficient = 1 resistance_flags = NONE transfer_prints = TRUE + strip_mod = 0.8 /obj/item/clothing/gloves/cut/family desc = "The old gloves your great grandfather stole from Engineering, many moons ago. They've seen some tough times recently." @@ -76,6 +77,7 @@ max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT resistance_flags = NONE var/can_be_cut = 1 + 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. diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index efe32a1473..9f4b89f607 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -10,6 +10,7 @@ equip_delay_other = 20 cold_protection = HANDS min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + strip_mod = 0.9 /obj/item/clothing/gloves/botanic_leather name = "botanist's leather gloves" @@ -23,6 +24,7 @@ max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT resistance_flags = NONE armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 30) + strip_mod = 0.9 /obj/item/clothing/gloves/combat name = "combat gloves" @@ -38,6 +40,7 @@ max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT resistance_flags = NONE armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 50) + strip_mod = 1.5 /obj/item/clothing/gloves/bracer @@ -103,3 +106,15 @@ /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." + icon_state = "thief" + item_state = "blackgloves" + siemens_coefficient = 0 + permeability_coefficient = 0.05 + strip_delay = 80 + transfer_prints = FALSE + strip_mod = 5 + strip_silence = TRUE \ No newline at end of file diff --git a/code/modules/clothing/gloves/ring.dm b/code/modules/clothing/gloves/ring.dm index 54aaa58849..8354f13bd2 100644 --- a/code/modules/clothing/gloves/ring.dm +++ b/code/modules/clothing/gloves/ring.dm @@ -5,6 +5,7 @@ w_class = WEIGHT_CLASS_TINY icon = 'icons/obj/ring.dmi' icon_state = "ringgold" + item_state = "gring" body_parts_covered = 0 attack_verb = list("proposed") transfer_prints = TRUE @@ -17,10 +18,15 @@ /obj/item/clothing/gloves/ring/diamond name = "diamond ring" - desc = "A tiny gold ring, studded with a diamond. Cultures have used these rings in courtship for a millenia." + desc = "An expensive ring, studded with a diamond. Cultures have used these rings in courtship for a millenia." icon_state = "ringdiamond" + item_state = "dring" + +/obj/item/clothing/gloves/ring/diamond/attack_self(mob/user) + user.visible_message("\The [user] gets down on one knee, presenting \the [src].","You get down on one knee, presenting \the [src].") /obj/item/clothing/gloves/ring/silver name = "silver ring" desc = "A tiny silver ring, sized to wrap around a finger." icon_state = "ringsilver" + item_state = "sring" diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index e7f20e1358..50e458a224 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -237,6 +237,14 @@ icon_state = "knight_red" item_state = "knight_red" +/obj/item/clothing/head/helmet/knight/greyscale + name = "knight helmet" + desc = "A classic medieval helmet, if you hold it upside down you could see that it's actually a bucket." + icon_state = "knight_greyscale" + item_state = "knight_greyscale" + armor = list("melee" = 35, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 10, "bio" = 10, "rad" = 10, "fire" = 40, "acid" = 40) + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR //Can change color and add prefix + /obj/item/clothing/head/helmet/skull name = "skull helmet" desc = "An intimidating tribal helmet, it doesn't look very comfortable." diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index bb2014db5c..4be949a65e 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -19,7 +19,7 @@ icon_state = "welding" flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH item_state = "welding" - materials = list(MAT_METAL=1750, MAT_GLASS=400) + custom_materials = list(/datum/material/iron=1750, /datum/material/glass=400) flash_protect = 2 tint = 2 armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 60) diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 1e8f26e7fe..38f0a7c20a 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -25,7 +25,7 @@ name = "welding mask" desc = "A gas mask with built-in welding goggles and a face shield. Looks like a skull - clearly designed by a nerd." icon_state = "weldingmask" - materials = list(MAT_METAL=4000, MAT_GLASS=2000) + custom_materials = list(/datum/material/iron=4000, /datum/material/glass=2000) flash_protect = 2 tint = 2 armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 55) @@ -39,6 +39,12 @@ /obj/item/clothing/mask/gas/welding/attack_self(mob/user) weldingvisortoggle(user) +/obj/item/clothing/mask/gas/welding/up + +/obj/item/clothing/mask/gas/welding/up/Initialize() + ..() + visor_toggling() + // ******************************************************************** diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm index 4c8f9bdab2..ab2f89ffc4 100644 --- a/code/modules/clothing/outfits/standard.dm +++ b/code/modules/clothing/outfits/standard.dm @@ -272,7 +272,7 @@ /datum/outfit/wizard name = "Blue Wizard" - uniform = /obj/item/clothing/under/color/lightpurple + uniform = /obj/item/clothing/under/color/lightpurple/trackless suit = /obj/item/clothing/suit/wizrobe shoes = /obj/item/clothing/shoes/sandal/magic ears = /obj/item/radio/headset @@ -427,14 +427,27 @@ /datum/outfit/debug //Debug objs plus hardsuit name = "Debug outfit" uniform = /obj/item/clothing/under/patriotsuit - suit = /obj/item/clothing/suit/space/hardsuit/syndi/elite - shoes = /obj/item/clothing/shoes/magboots/advance - suit_store = /obj/item/tank/internals/oxygen - mask = /obj/item/clothing/mask/gas/welding - belt = /obj/item/storage/belt/utility/chief/full - gloves = /obj/item/clothing/gloves/combat - id = /obj/item/card/id/ert - glasses = /obj/item/clothing/glasses/meson/night + suit = /obj/item/clothing/suit/space/hardsuit/syndi/elite/debug + glasses = /obj/item/clothing/glasses/debug ears = /obj/item/radio/headset/headset_cent/commander + mask = /obj/item/clothing/mask/gas/welding/up + gloves = /obj/item/clothing/gloves/combat + belt = /obj/item/storage/belt/utility/chief/full + l_pocket = /obj/item/gun/magic/wand/resurrection/debug + r_pocket = /obj/item/gun/magic/wand/death/debug + shoes = /obj/item/clothing/shoes/magboots/advance/debug + id = /obj/item/card/id/debug + suit_store = /obj/item/tank/internals/oxygen back = /obj/item/storage/backpack/holding - backpack_contents = list(/obj/item/card/emag=1, /obj/item/flashlight/emp/debug=1, /obj/item/construction/rcd/combat=1, /obj/item/gun/magic/wand/resurrection/debug=1, /obj/item/melee/transforming/energy/axe=1) + box = /obj/item/storage/box/debugtools + internals_slot = ITEM_SLOT_SUITSTORE + backpack_contents = list( + /obj/item/melee/transforming/energy/axe=1,\ + /obj/item/storage/part_replacer/bluespace/tier4=1,\ + /obj/item/debug/human_spawner=1,\ + ) + +/datum/outfit/debug/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + var/obj/item/card/id/W = H.wear_id + W.registered_name = H.real_name + W.update_label() diff --git a/code/modules/clothing/shoes/bananashoes.dm b/code/modules/clothing/shoes/bananashoes.dm index c4d06ea14c..ffb7771d2f 100644 --- a/code/modules/clothing/shoes/bananashoes.dm +++ b/code/modules/clothing/shoes/bananashoes.dm @@ -10,7 +10,7 @@ /obj/item/clothing/shoes/clown_shoes/banana_shoes/Initialize() . = ..() - AddComponent(/datum/component/material_container, list(MAT_BANANIUM), 200000, TRUE, /obj/item/stack) + AddComponent(/datum/component/material_container, list(/datum/material/bananium), 200000, TRUE, /obj/item/stack) AddComponent(/datum/component/squeak, list('sound/items/bikehorn.ogg'=1), 75) if(always_noslip) clothing_flags |= NOSLIP @@ -19,7 +19,7 @@ . = ..() var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container) if(on) - if(bananium.amount(MAT_BANANIUM) < 100) + if(bananium.get_material_amount(/datum/material/bananium) < 100) on = !on if(!always_noslip) clothing_flags &= ~NOSLIP @@ -27,7 +27,7 @@ to_chat(loc, "You ran out of bananium!") else new /obj/item/grown/bananapeel/specialpeel(get_step(src,turn(usr.dir, 180))) //honk - bananium.use_amount_type(100, MAT_BANANIUM) + bananium.use_amount_mat(100, /datum/material/bananium) /obj/item/clothing/shoes/clown_shoes/banana_shoes/attack_self(mob/user) var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container) @@ -43,7 +43,7 @@ /obj/item/clothing/shoes/clown_shoes/banana_shoes/ui_action_click(mob/user) var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container) - if(bananium.amount(MAT_BANANIUM)) + if(bananium.get_material_amount(/datum/material/bananium)) on = !on update_icon() to_chat(user, "You [on ? "activate" : "deactivate"] the prototype shoes.") diff --git a/code/modules/clothing/shoes/magboots.dm b/code/modules/clothing/shoes/magboots.dm index 8864add0d8..1acb7628a3 100644 --- a/code/modules/clothing/shoes/magboots.dm +++ b/code/modules/clothing/shoes/magboots.dm @@ -30,8 +30,9 @@ magpulse = !magpulse icon_state = "[magboot_state][magpulse]" to_chat(user, "You [magpulse ? "enable" : "disable"] the mag-pulse traction system.") - user.update_inv_shoes() //so our mob-overlays update - user.update_gravity(user.has_gravity()) + if(user) + user.update_inv_shoes() //so our mob-overlays update + user.update_gravity(user.has_gravity()) for(var/X in actions) var/datum/action/A = X A.UpdateButtonIcon() @@ -52,6 +53,11 @@ slowdown_active = SHOES_SLOWDOWN resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF +/obj/item/clothing/shoes/magboots/advance/debug + +/obj/item/clothing/shoes/magboots/advance/debug/Initialize() + attack_self(src) + /obj/item/clothing/shoes/magboots/syndie desc = "Reverse-engineered magnetic boots that have a heavy magnetic pull. Property of Gorlex Marauders." name = "blood-red magboots" diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index 703fe26287..fab41c9876 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -269,7 +269,7 @@ item_state = "syndie_helm" item_color = "syndi" armor = list("melee" = 40, "bullet" = 50, "laser" = 30, "energy" = 15, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 90) - on = TRUE + on = FALSE var/obj/item/clothing/suit/space/hardsuit/syndi/linkedsuit = null actions_types = list(/datum/action/item_action/toggle_helmet_mode) visor_flags_inv = HIDEMASK|HIDEEYES|HIDEFACE|HIDEFACIALHAIR @@ -367,6 +367,12 @@ on = FALSE resistance_flags = FIRE_PROOF | ACID_PROOF +/obj/item/clothing/head/helmet/space/hardsuit/syndi/elite/debug + +/obj/item/clothing/head/helmet/space/hardsuit/syndi/elite/debug/Initialize() + . = ..() + soundloop.volume = 0 + /obj/item/clothing/suit/space/hardsuit/syndi/elite name = "elite syndicate hardsuit" desc = "An elite version of the syndicate hardsuit, with improved armour and fireproofing. It is in travel mode." @@ -380,6 +386,9 @@ resistance_flags = FIRE_PROOF | ACID_PROOF mutantrace_variation = STYLE_DIGITIGRADE|STYLE_SNEK_TAURIC|STYLE_PAW_TAURIC +/obj/item/clothing/suit/space/hardsuit/syndi/elite/debug + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/elite/debug + slowdown = 0 //The Owl Hardsuit /obj/item/clothing/head/helmet/space/hardsuit/syndi/owl diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index e536d307ef..1f0214cade 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -15,6 +15,13 @@ if(!allowed) allowed = GLOB.security_vest_allowed +/obj/item/clothing/suit/armor/navyblue + name = "security officer's jacket" + desc = "This jacket is for those special occasions when a security officer isn't required to wear their armor." + icon_state = "officerbluejacket" + item_state = "officerbluejacket" + body_parts_covered = CHEST|ARMS + /obj/item/clothing/suit/armor/vest name = "armor vest" desc = "A slim Type I armored vest that provides decent protection against most types of damage." @@ -52,8 +59,17 @@ heat_protection = CHEST|GROIN|LEGS|ARMS strip_delay = 80 +/obj/item/clothing/suit/armor/hos/navyblue + name = "head of security's jacket" + desc = "This piece of clothing was specifically designed for asserting superior authority." + icon_state = "hosbluejacket" + item_state = "hosbluejacket" + body_parts_covered = CHEST|ARMS + cold_protection = CHEST|ARMS + heat_protection = CHEST|ARMS + /obj/item/clothing/suit/armor/hos/trenchcoat - name = "armored trenchoat" + name = "armored trenchcoat" desc = "A trenchcoat enhanced with a special lightweight kevlar. The epitome of tactical plainclothes." icon_state = "hostrench" item_state = "hostrench" @@ -78,6 +94,13 @@ desc = "A red jacket with silver rank pips and body armor strapped on top." icon_state = "warden_jacket" +/obj/item/clothing/suit/armor/vest/warden/navyblue + name = "warden's jacket" + desc = "Perfectly suited for the warden that wants to leave an impression of style on those who visit the brig." + icon_state = "wardenbluejacket" + item_state = "wardenbluejacket" + body_parts_covered = CHEST|ARMS + /obj/item/clothing/suit/armor/vest/leather name = "security overcoat" desc = "Lightly armored leather overcoat meant as casual wear for high-ranking officers. Bears the crest of Nanotrasen Security." @@ -238,6 +261,14 @@ icon_state = "knight_red" item_state = "knight_red" +/obj/item/clothing/suit/armor/riot/knight/greyscale + name = "knight armour" + desc = "A classic suit of armour, able to be made from many different materials." + icon_state = "knight_greyscale" + item_state = "knight_greyscale" + armor = list("melee" = 35, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 10, "bio" = 10, "rad" = 10, "fire" = 40, "acid" = 40) + material_flags = MATERIAL_ADD_PREFIX //Can change color and add prefix + /obj/item/clothing/suit/armor/vest/durathread name = "makeshift vest" desc = "A vest made of durathread with strips of leather acting as trauma plates." diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index 88bafc842b..48fd8ccf1c 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -155,28 +155,6 @@ blood_overlay_type = "armor" //it's the less thing that I can put here body_parts_covered = NONE -//Security -/obj/item/clothing/suit/security/officer - name = "security officer's jacket" - desc = "This jacket is for those special occasions when a security officer isn't required to wear their armor." - icon_state = "officerbluejacket" - item_state = "officerbluejacket" - body_parts_covered = CHEST|ARMS - -/obj/item/clothing/suit/security/warden - name = "warden's jacket" - desc = "Perfectly suited for the warden that wants to leave an impression of style on those who visit the brig." - icon_state = "wardenbluejacket" - item_state = "wardenbluejacket" - body_parts_covered = CHEST|ARMS - -/obj/item/clothing/suit/security/hos - name = "head of security's jacket" - desc = "This piece of clothing was specifically designed for asserting superior authority." - icon_state = "hosbluejacket" - item_state = "hosbluejacket" - body_parts_covered = CHEST|ARMS - //Surgeon /obj/item/clothing/suit/apron/surgical name = "surgical apron" diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 84609e29d8..4d3e8acb28 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -317,7 +317,7 @@ flags_cover = HEADCOVERSEYES flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR -/obj/item/clothing/suit/security/officer/russian +/obj/item/clothing/suit/armor/navyblue/russian name = "\improper Russian officer's jacket" desc = "This jacket is for those special occasions when a russian officer isn't required to wear their armor." icon_state = "officertanjacket" @@ -325,17 +325,16 @@ body_parts_covered = CHEST|ARMS /obj/item/clothing/suit/ran - name = "Shikigami costume" + name = "shikigami costume" desc = "A costume that looks like a certain shikigami, is super fluffy." icon_state = "ran_suit" item_state = "ran_suit" body_parts_covered = CHEST|GROIN|LEGS flags_inv = HIDEJUMPSUIT|HIDETAUR heat_protection = CHEST|GROIN|LEGS //fluffy tails! -//2061 /obj/item/clothing/head/ran - name = "Shikigami hat" + name = "shikigami hat" desc = "A hat that looks like it keeps any fluffy ears contained super warm, has little charms over it." icon_state = "ran_hat" item_state = "ran_hat" @@ -704,8 +703,9 @@ name = "cosmic winter coat" icon_state = "coatcosmic" item_state = "coatcosmic" - allowed = list(/obj/item/flashlight) hoodtype = /obj/item/clothing/head/hooded/winterhood/cosmic + light_power = 1.8 + light_range = 1.2 /obj/item/clothing/head/hooded/winterhood/cosmic icon_state = "winterhood_cosmic" @@ -880,7 +880,6 @@ blood_overlay_type = "armor" body_parts_covered = CHEST resistance_flags = NONE - mutantrace_variation = NONE armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 5, "bio" = 0, "rad" = 0, "fire" = -5, "acid" = -15) //nylon sucks against acid /obj/item/clothing/suit/assu_suit @@ -996,4 +995,4 @@ tertiary_color = sanitize_hexcolor(tertiary_color_input, desired_format=6, include_crunch=1) update_icon() user.regenerate_icons() - return TRUE \ No newline at end of file + return TRUE diff --git a/code/modules/clothing/suits/reactive_armour.dm b/code/modules/clothing/suits/reactive_armour.dm index 0d2f68f580..dff62dd2c3 100644 --- a/code/modules/clothing/suits/reactive_armour.dm +++ b/code/modules/clothing/suits/reactive_armour.dm @@ -215,14 +215,24 @@ playsound(get_turf(owner),'sound/magic/repulse.ogg', 100, 1) owner.visible_message("[src] blocks [attack_text], converting the attack into a wave of force!") var/turf/T = get_turf(owner) - var/list/thrown_items = list() - for(var/atom/movable/A in range(T, 7)) - if(A == owner || A.anchored || thrown_items[A]) + var/list/cachedrange = range(T, 7) - owner + var/safety = 50 + var/list/to_throw = list() + for(var/mob/living/L in cachedrange) + if(L.move_resist > MOVE_FORCE_EXTREMELY_STRONG) continue - var/throwtarget = get_edge_target_turf(T, get_dir(T, get_step_away(A, T))) - A.throw_at(throwtarget,10,1) - thrown_items[A] = A - + to_throw += L + for(var/obj/O in cachedrange) + if(O.anchored) + continue + to_throw += O + for(var/i in to_throw) + if(!safety) + break + var/atom/movable/AM = i + var/throwtarget = get_edge_target_turf(T, get_dir(T, get_step_away(AM, T))) + AM.throw_at(throwtarget,10,1) + safety-- reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration return 1 diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm index 86d2b40d0f..628f7187ca 100644 --- a/code/modules/clothing/under/accessories.dm +++ b/code/modules/clothing/under/accessories.dm @@ -105,7 +105,7 @@ desc = "A bronze medal." icon_state = "bronze" item_color = "bronze" - materials = list(MAT_METAL=1000) + custom_materials = list(/datum/material/iron=1000) resistance_flags = FIRE_PROOF var/medaltype = "medal" //Sprite used for medalbox var/commended = FALSE @@ -190,7 +190,7 @@ icon_state = "silver" item_color = "silver" medaltype = "medal-silver" - materials = list(MAT_SILVER=1000) + custom_materials = list(/datum/material/silver=1000) /obj/item/clothing/accessory/medal/silver/valor name = "medal of valor" @@ -206,7 +206,7 @@ icon_state = "gold" item_color = "gold" medaltype = "medal-gold" - materials = list(MAT_GOLD=1000) + custom_materials = list(/datum/material/gold=1000) /obj/item/clothing/accessory/medal/gold/captain name = "medal of captaincy" @@ -217,7 +217,7 @@ name = "old medal of captaincy" desc = "A rustic badge pure gold, has been through hell and back by the looks, the syndcate have been after these by the looks of it for generations..." armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 10) //Pure gold - materials = list(MAT_GOLD=2000) + custom_materials = list(/datum/material/gold=2000) /obj/item/clothing/accessory/medal/gold/heroism name = "medal of exceptional heroism" @@ -230,7 +230,7 @@ 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. - materials = list(MAT_PLASMA=1000) + custom_materials = list(/datum/material/plasma=1000) /obj/item/clothing/accessory/medal/plasma/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) if(exposed_temperature > 300) diff --git a/code/modules/clothing/under/color.dm b/code/modules/clothing/under/color.dm index 12cafb7e46..a18b7e5817 100644 --- a/code/modules/clothing/under/color.dm +++ b/code/modules/clothing/under/color.dm @@ -41,6 +41,10 @@ item_color = "black" resistance_flags = NONE +/obj/item/clothing/under/color/black/trackless + desc = "A black jumpsuit that has its sensors removed." + has_sensor = NO_SENSORS + /obj/item/clothing/under/skirt/color/black name = "black jumpskirt" icon_state = "black_skirt" @@ -189,13 +193,16 @@ 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!" + has_sensor = NO_SENSORS + /obj/item/clothing/under/skirt/color/lightpurple name = "lightpurple jumpskirt" icon_state = "lightpurple_skirt" diff --git a/code/modules/clothing/under/jobs/medsci.dm b/code/modules/clothing/under/jobs/medsci.dm index 6952a581da..971112ac38 100644 --- a/code/modules/clothing/under/jobs/medsci.dm +++ b/code/modules/clothing/under/jobs/medsci.dm @@ -158,6 +158,23 @@ can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP +/obj/item/clothing/under/rank/medical/paramedic + 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." + name = "paramedic jumpsuit" + icon_state = "paramedic" + item_state = "w_suit" + 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/paramedic/skirt + name = "paramedic jumpskirt" + 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_state = "w_suit" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP + /obj/item/clothing/under/rank/nursesuit desc = "It's a jumpsuit commonly worn by nursing staff in the medical department." name = "nurse's suit" diff --git a/code/modules/clothing/under/trek.dm b/code/modules/clothing/under/trek.dm index 9564d03909..20852dbe62 100644 --- a/code/modules/clothing/under/trek.dm +++ b/code/modules/clothing/under/trek.dm @@ -19,7 +19,6 @@ icon_state = "trek_engsec" item_color = "trek_engsec" item_state = "r_suit" - armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) //more sec than eng, but w/e. strip_delay = 50 /obj/item/clothing/under/trek/medsci @@ -69,4 +68,4 @@ desc = "Something about it feels off..." icon_state = "trek_Q" item_color = "trek_Q" - item_state = "r_suit" \ No newline at end of file + item_state = "r_suit" diff --git a/code/modules/error_handler/error_handler.dm b/code/modules/error_handler/error_handler.dm index 418b75e1ce..6a3d2c2233 100644 --- a/code/modules/error_handler/error_handler.dm +++ b/code/modules/error_handler/error_handler.dm @@ -19,6 +19,13 @@ GLOBAL_VAR_INIT(total_runtimes_skipped, 0) log_world("The bug with recursion runtimes has been fixed. Please remove the snowflake check from world/Error in [__FILE__]:[__LINE__]") return //this will never happen. + else if(copytext(E.name,1,18) == "Out of resources!")//18 == length() of that string + 1 + log_world("BYOND out of memory. Restarting") + log_game("BYOND out of memory. Restarting") + TgsEndProcess() + Reboot(reason = 1) + return ..() + if (islist(stack_trace_storage)) for (var/line in splittext(E.desc, "\n")) if (text2ascii(line) != 32) diff --git a/code/modules/events/holiday/vday.dm b/code/modules/events/holiday/vday.dm index 13c516960a..d3cbf03581 100644 --- a/code/modules/events/holiday/vday.dm +++ b/code/modules/events/holiday/vday.dm @@ -64,65 +64,10 @@ resistance_flags = FLAMMABLE w_class = WEIGHT_CLASS_TINY -/obj/item/valentine/New() - ..() - message = pick("Roses are red / Violets are good / One day while Andy...", - "My love for you is like the singularity. It cannot be contained.", - "Will you be my lusty xenomorph maid?", - "We go together like the clown and the external airlock.", - "Roses are red / Liches are wizards / I love you more than a whole squad of lizards.", - "Be my valentine. Law 2.", - "You must be a mime, because you leave me speechless.", - "I love you like Ian loves the HoP.", - "You're hotter than a plasma fire in toxins.", - "Are you a rogue atmos tech? Because you're taking my breath away.", - "Could I have all access... to your heart?", - "Call me the doctor, because I'm here to inspect your johnson.", - "I'm not a changeling, but you make my proboscis extend.", - "I just can't get EI NATH of you.", - "You must be a nuke op, because you make my heart explode.", - "Roses are red / Botany is a farm / Not being my Valentine / causes human harm.", - "I want you more than an assistant wants insulated gloves.", - "If I was a security officer, I'd brig you all shift.", - "Are you the janitor? Because I think I've fallen for you.", - "You're always valid to my heart.", - "I'd risk the wrath of the gods to bwoink you.", - "You look as beautiful now as the last time you were cloned.", - "Someone check the gravitational generator, because I'm only attracted to you.", - "If I were the warden I'd always let you into my armory.", - "The virologist is rogue, and the only cure is a kiss from you.", - "Would you spend some time in my upgraded sleeper?", - "You must be a silicon, because you've unbolted my heart.", - "Are you Nar'Sie? Because there's nar-one else I sie.", - "If you were a taser, you'd be set to stunning.", - "Do you have stamina damage from running through my dreams?", - "If I were an alien, would you let me hug you?", - "My love for you is stronger than a reinforced wall.", - "This must be the captain's office, because I see a fox.", - "I'm not a highlander, but there can only be one for me.", - "The floor is made of lava! Quick, get on my bed.", - "If you were an abandoned station you'd be the DEARelict.", - "If you had a pickaxe you'd be a shaft FINEr.", - "Roses are red, tide is gray, if I were an assistant I'd steal you away.", - "Roses are red, text is green, I love you more than cleanbots clean.", - "If you were a carp I'd fi-lay you.", - "I'm a nuke op, and my pinpointer leads to your heart.", - "Wanna slay my megafauna?", - "I'm a clockwork cultist. Or zl inyragvar.", - "If you were a disposal bin I'd ride you all day.", - "Put on your explorer's suit because I'm taking you to LOVEaland.", - "I must be the CMO, 'cause I saw you on my CUTE sensors.", - "You're the vomit to my flyperson.", - "You must be liquid dark matter, because you're pulling me closer.", - "Not even sorium can drive me away from you.", - "Wanna make like a borg and do some heavy petting?", - "Are you powering the station? Because you super matter to me.", - "I wish science could make me a bag of holding you.", - "Let's call the emergency CUDDLE.", - "I must be tripping on BZ, because I saw an angel walk by.", - "Wanna empty out my tool storage?", - "Did you visit the medbay after you fell from heaven?", - "Are you wearing space pants? Wanna not be?" ) +/obj/item/valentine/Initialize(mapload) + message = pick(GLOB.flirts) + return ..() + /obj/item/valentine/attackby(obj/item/W, mob/user, params) ..() @@ -140,7 +85,7 @@ /obj/item/valentine/examine(mob/user) . = ..() if(in_range(user, src) || isobserver(user)) - if( !(ishuman(user) || isobserver(user) || issilicon(user)) ) + if( !(ishuman(user) || isobserver(user) || hasSiliconAccessInArea(user)) ) user << browse("[name][stars(message)]", "window=[name]") onclose(user, "[name]") else diff --git a/code/modules/events/meteor_wave.dm b/code/modules/events/meteor_wave.dm index 6ecc1d9d42..e24ce13034 100644 --- a/code/modules/events/meteor_wave.dm +++ b/code/modules/events/meteor_wave.dm @@ -22,7 +22,7 @@ /datum/round_event/meteor_wave/setup() announceWhen = 1 - startWhen = rand(60, 90) //Yeah for SOME REASON this is measured in seconds and not deciseconds??? + startWhen = rand(90, 180) // Apparently it is by 2 seconds, so 90 is actually 180 seconds, and 180 is 360 seconds. So this is 3-6 minutes if(GLOB.singularity_counter) startWhen *= 1 - min(GLOB.singularity_counter * SINGULO_BEACON_DISTURBANCE, SINGULO_BEACON_MAX_DISTURBANCE) endWhen = startWhen + 60 diff --git a/code/modules/events/pirates.dm b/code/modules/events/pirates.dm index 8bc5491970..ab9ab96678 100644 --- a/code/modules/events/pirates.dm +++ b/code/modules/events/pirates.dm @@ -177,6 +177,7 @@ shuttleId = "pirateship" icon_screen = "syndishuttle" icon_keyboard = "syndie_key" + resistance_flags = INDESTRUCTIBLE light_color = LIGHT_COLOR_RED possible_destinations = "pirateship_away;pirateship_home;pirateship_custom" @@ -184,6 +185,7 @@ name = "pirate shuttle navigation computer" desc = "Used to designate a precise transit location for the pirate shuttle." shuttleId = "pirateship" + resistance_flags = INDESTRUCTIBLE lock_override = CAMERA_LOCK_STATION shuttlePortId = "pirateship_custom" x_offset = 9 @@ -226,6 +228,7 @@ desc = "This sophisticated machine scans the nearby space for items of value." icon = 'icons/obj/machines/research.dmi' icon_state = "tdoppler" + resistance_flags = INDESTRUCTIBLE density = TRUE var/cooldown = 300 var/next_use = 0 @@ -259,6 +262,7 @@ name = "cargo hold pad" icon = 'icons/obj/telescience.dmi' icon_state = "lpad-idle-o" + resistance_flags = INDESTRUCTIBLE var/idle_state = "lpad-idle-o" var/warmup_state = "lpad-idle" var/sending_state = "lpad-beam" @@ -272,6 +276,7 @@ /obj/machinery/computer/piratepad_control name = "cargo hold control terminal" + resistance_flags = INDESTRUCTIBLE var/status_report = "Idle" var/obj/machinery/piratepad/pad var/warmup_time = 100 diff --git a/code/modules/events/sentience.dm b/code/modules/events/sentience.dm index 96b6cded58..2d39e4270a 100644 --- a/code/modules/events/sentience.dm +++ b/code/modules/events/sentience.dm @@ -24,7 +24,7 @@ /datum/round_event/ghost_role/sentience/spawn_role() var/list/mob/dead/observer/candidates - candidates = get_candidates(ROLE_ALIEN, null, ROLE_ALIEN) + candidates = get_candidates(ROLE_SENTIENCE, null, ROLE_SENTIENCE) // find our chosen mob to breathe life into // Mobs have to be simple animals, mindless and on station diff --git a/code/modules/events/spontaneous_appendicitis.dm b/code/modules/events/spontaneous_appendicitis.dm index 9cf3a86e71..58a2875849 100644 --- a/code/modules/events/spontaneous_appendicitis.dm +++ b/code/modules/events/spontaneous_appendicitis.dm @@ -19,7 +19,7 @@ continue if(!H.getorgan(/obj/item/organ/appendix)) //Don't give the disease to some who lacks it, only for it to be auto-cured continue - if(!(MOB_ORGANIC in H.mob_biotypes)) //biotype sleeper bugs strike again, once again making appendicitis pick a target that can't take it + if(!(H.mob_biotypes & MOB_ORGANIC)) //biotype sleeper bugs strike again, once again making appendicitis pick a target that can't take it continue var/foundAlready = FALSE //don't infect someone that already has appendicitis for(var/datum/disease/appendicitis/A in H.diseases) diff --git a/code/modules/events/wizard/departmentrevolt.dm b/code/modules/events/wizard/departmentrevolt.dm index 67e96455f0..b82cd91323 100644 --- a/code/modules/events/wizard/departmentrevolt.dm +++ b/code/modules/events/wizard/departmentrevolt.dm @@ -19,7 +19,7 @@ jobs_to_revolt = list("Assistant") nation_name = pick("Assa", "Mainte", "Tunnel", "Gris", "Grey", "Liath", "Grigio", "Ass", "Assi") if("white") - jobs_to_revolt = list("Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Virologist") + jobs_to_revolt = list("Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Paramedic", "Virologist") nation_name = pick("Mede", "Healtha", "Recova", "Chemi", "Geneti", "Viro", "Psych") if("yellow") jobs_to_revolt = list("Chief Engineer", "Station Engineer", "Atmospheric Technician") diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 150f066886..b0c3121c67 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -18,6 +18,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( /datum/hallucination/items = 4, /datum/hallucination/fire = 3, /datum/hallucination/self_delusion = 2, + /datum/hallucination/naked = 2, /datum/hallucination/delusion = 2, /datum/hallucination/shock = 1, /datum/hallucination/death = 1, @@ -65,6 +66,9 @@ GLOBAL_LIST_INIT(hallucination_list, list( //Returns a random turf in a ring around the target mob, useful for sound hallucinations /datum/hallucination/proc/random_far_turf() + var/turf/target_T = get_turf(target) + if(!target_T) + return var/x_based = prob(50) var/first_offset = pick(-8,-7,-6,-5,5,6,7,8) var/second_offset = rand(-8,8) @@ -76,7 +80,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( else y_off = first_offset x_off = second_offset - var/turf/T = locate(target.x + x_off, target.y + y_off, target.z) + var/turf/T = locate(target_T.x + x_off, target_T.y + y_off, target_T.z) return T /obj/effect/hallucination @@ -1318,3 +1322,26 @@ GLOBAL_LIST_INIT(hallucination_list, list( else to_chat(C,"[G] violently grabs you!") qdel(src) + +/datum/hallucination/naked + var/image/image + +/datum/hallucination/naked/New(mob/living/carbon/C, forced = TRUE) + set waitfor = FALSE + ..() + if (C.client && C.client.prefs) + var/datum/preferences/prefs = C.client.prefs + var/mob/living/carbon/human/dummy/M = generate_or_wait_for_human_dummy(DUMMY_HUMAN_SLOT_HALLUCINATION) + prefs.copy_to(M) + COMPILE_OVERLAYS(M) + CHECK_TICK + image = image(M,C) + unset_busy_human_dummy(DUMMY_HUMAN_SLOT_HALLUCINATION) + image.override = TRUE + target.client.images |= image + QDEL_IN(src, 20 SECONDS) + +/datum/hallucination/naked/Destroy() + if(target.client) + target.client.images.Remove(image) + return ..() \ No newline at end of file diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm index cd5c9d850b..270e8cff6c 100644 --- a/code/modules/food_and_drinks/drinks/drinks.dm +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -9,6 +9,7 @@ lefthand_file = 'icons/mob/inhands/misc/food_lefthand.dmi' righthand_file = 'icons/mob/inhands/misc/food_righthand.dmi' reagent_flags = OPENCONTAINER + reagent_value = DEFAULT_REAGENTS_VALUE var/gulp_size = 5 //This is now officially broken ... need to think of a nice way to fix it. possible_transfer_amounts = list(5,10,15,20,25,30,50) volume = 50 @@ -107,9 +108,9 @@ smash(hit_atom, throwingdatum?.thrower, TRUE) /obj/item/reagent_containers/food/drinks/proc/smash(atom/target, mob/thrower, ranged = FALSE) - if(!isGlass) + if(!isGlass && !istype(src, /obj/item/reagent_containers/food/drinks/bottle)) //I don't like this but I also don't want to rework drink container hierarchy return - if(QDELING(src) || !target) //Invalid loc + if(QDELING(src) || (ranged && !target)) return if(bartender_check(target) && ranged) return @@ -126,12 +127,69 @@ B.transform = M B.pixel_x = rand(-12, 12) B.pixel_y = rand(-12, 12) - if(prob(33)) - new/obj/item/shard(drop_location()) - playsound(src, "shatter", 70, 1) + if(isGlass) + playsound(src, "shatter", 70, 1) + if(prob(33)) + new/obj/item/shard(drop_location()) + else + B.force = 0 + B.throwforce = 0 + B.desc = "A carton with the bottom half burst open. Might give you a papercut." transfer_fingerprints_to(B) qdel(src) +/obj/item/reagent_containers/food/drinks/MouseDrop(atom/over, atom/src_location, atom/over_location, src_control, over_control, params) + var/mob/user = usr + . = ..() + if (!istype(src_location) || !istype(over_location)) + return + if (!user || user.incapacitated() || !user.Adjacent(src)) + return + if (!(locate(/obj/structure/table) in src_location) || !(locate(/obj/structure/table) in over_location)) + return + + //Are we an expert slider? + var/datum/action/innate/D = get_action_of_type(user, /datum/action/innate/drink_fling) + if(!D?.active) + if (!src_location.Adjacent(over_location)) // Regular users can only do short slides. + return + if (prob(10)) + user.visible_message("\The [user] tries to slide \the [src] down the table, but fails miserably.", "You fail to slide \the [src] down the table!") + smash(over_location, user, FALSE) + return + user.visible_message("\The [user] slides \the [src] down the table.", "You slide \the [src] down the table!") + forceMove(over_location) + return + var/distance = MANHATTAN_DISTANCE(over_location, src) + if (distance >= 8 || distance == 0) // More than a full screen to go, or trying to slide to the same tile + return + + // Geometrically checking if we're on a straight line. + var/datum/vector/V = atoms2vector(src, over_location) + var/datum/vector/V_norm = V.duplicate() + V_norm.normalize() + if (!V_norm.is_integer()) + return // Only a cardinal vector (north, south, east, west) can pass this test + + // Checks if there's tables on the path. + var/turf/dest = get_translated_turf(V) + var/turf/temp_turf = src_location + + do + temp_turf = temp_turf.get_translated_turf(V_norm) + if (!locate(/obj/structure/table) in temp_turf) + var/datum/vector/V2 = atoms2vector(src, temp_turf) + vector_translate(V2, 0.1 SECONDS) + user.visible_message("\The [user] slides \the [src] down the table... and straight into the ground!", "You slide \the [src] down the table, and straight into the ground!") + smash(over_location, user, FALSE) + return + while (temp_turf != dest) + + vector_translate(V, 0.1 SECONDS) + user.visible_message("\The [user] expertly slides \the [src] down the table.", "You slide \the [src] down the table. What a pro.") + return + + //////////////////////////////////////////////////////////////////////////////// /// Drinks. END //////////////////////////////////////////////////////////////////////////////// @@ -144,7 +202,7 @@ force = 1 throwforce = 1 amount_per_transfer_from_this = 5 - materials = list(MAT_METAL=100) + custom_materials = list(/datum/material/iron=100) possible_transfer_amounts = list() volume = 5 flags_1 = CONDUCT_1 @@ -160,7 +218,7 @@ force = 14 throwforce = 10 amount_per_transfer_from_this = 20 - materials = list(MAT_GOLD=1000) + custom_materials = list(/datum/material/gold=1000) volume = 150 /obj/item/reagent_containers/food/drinks/trophy/silver_cup @@ -171,7 +229,7 @@ force = 10 throwforce = 8 amount_per_transfer_from_this = 15 - materials = list(MAT_SILVER=800) + custom_materials = list(/datum/material/silver=800) volume = 100 /obj/item/reagent_containers/food/drinks/trophy/bronze_cup @@ -182,7 +240,7 @@ force = 5 throwforce = 4 amount_per_transfer_from_this = 10 - materials = list(MAT_METAL=400) + custom_materials = list(/datum/material/iron=400) volume = 25 ///////////////////////////////////////////////Drinks///////////////////////////////////////// @@ -223,19 +281,24 @@ spillable = TRUE /obj/item/reagent_containers/food/drinks/mug/on_reagent_change(changetype) + cut_overlays() if(reagents.total_volume) - icon_state = "tea" + var/mutable_appearance/MA = mutable_appearance(icon,"mugoverlay") + MA.color = mix_color_from_reagents(reagents.reagent_list) + add_overlay(MA) else icon_state = "tea_empty" /obj/item/reagent_containers/food/drinks/mug/tea name = "Duke Purple tea" + icon_state = "tea" desc = "An insult to Duke Purple is an insult to the Space Queen! Any proper gentleman will fight you, if you sully this tea." list_reagents = list(/datum/reagent/consumable/tea = 30) /obj/item/reagent_containers/food/drinks/mug/coco name = "Dutch hot coco" desc = "Made in Space South America." + icon_state = "coco" list_reagents = list(/datum/reagent/consumable/hot_coco = 30, /datum/reagent/consumable/sugar = 5) foodtype = SUGAR resistance_flags = FREEZE_PROOF @@ -289,28 +352,6 @@ icon_state = "juicebox" volume = 15 //I figure if you have to craft these it should at least be slightly better than something you can get for free from a watercooler -/obj/item/reagent_containers/food/drinks/sillycup/smallcarton/smash(atom/target, mob/thrower, ranged = FALSE) - if(bartender_check(target) && ranged) - return - var/obj/item/broken_bottle/B = new (loc) - B.icon_state = icon_state - var/icon/I = new('icons/obj/drinks.dmi', src.icon_state) - I.Blend(B.broken_outline, ICON_OVERLAY, rand(5), 1) - I.SwapColor(rgb(255, 0, 220, 255), rgb(0, 0, 0, 0)) - B.icon = I - B.name = "broken [name]" - B.force = 0 - B.throwforce = 0 - B.desc = "A carton with the bottom half burst open. Might give you a papercut." - if(ranged) - var/matrix/M = matrix(B.transform) - M.Turn(rand(-170, 170)) - B.transform = M - B.pixel_x = rand(-12, 12) - B.pixel_y = rand(-12, 12) - transfer_fingerprints_to(B) - qdel(src) - /obj/item/reagent_containers/food/drinks/sillycup/smallcarton/on_reagent_change(changetype) if (reagents.reagent_list.len) switch(reagents.get_master_reagent_id()) @@ -359,7 +400,7 @@ name = "shaker" desc = "A metal shaker to mix drinks in." icon_state = "shaker" - materials = list(MAT_METAL=1500) + custom_materials = list(/datum/material/iron=1500) amount_per_transfer_from_this = 10 volume = 100 isGlass = FALSE @@ -368,7 +409,7 @@ name = "flask" desc = "Every good spaceman knows it's a good idea to bring along a couple of pints of whiskey wherever they go." icon_state = "flask" - materials = list(MAT_METAL=250) + custom_materials = list(/datum/material/iron=250) volume = 60 isGlass = FALSE @@ -376,7 +417,7 @@ name = "captain's flask" desc = "A gold flask belonging to the captain." icon_state = "flask_gold" - materials = list(MAT_GOLD=500) + custom_materials = list(/datum/material/gold=500) /obj/item/reagent_containers/food/drinks/flask/det name = "detective's flask" diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm index 7f2b24ca11..07026e79de 100644 --- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm +++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm @@ -16,40 +16,6 @@ isGlass = TRUE foodtype = ALCOHOL - -/obj/item/reagent_containers/food/drinks/bottle/smash(mob/living/target, mob/thrower, ranged = FALSE) - //Creates a shattering noise and replaces the bottle with a broken_bottle - if(bartender_check(target) && ranged) - return - var/obj/item/broken_bottle/B = new (loc) - if(!ranged) - thrower.put_in_hands(B) - else - var/matrix/M = matrix(B.transform) - M.Turn(rand(-170, 170)) - B.transform = M - B.pixel_x = rand(-12, 12) - B.pixel_y = rand(-12, 12) - B.icon_state = icon_state - - var/icon/I = new('icons/obj/drinks.dmi', src.icon_state) - I.Blend(B.broken_outline, ICON_OVERLAY, rand(5), 1) - I.SwapColor(rgb(255, 0, 220, 255), rgb(0, 0, 0, 0)) - B.icon = I - - if(isGlass) - if(prob(33)) - new/obj/item/shard(drop_location()) - playsound(src, "shatter", 70, 1) - else - B.force = 0 - B.throwforce = 0 - B.desc = "A carton with the bottom half burst open. Might give you a papercut." - B.name = "broken [name]" - transfer_fingerprints_to(B) - - qdel(src) - /obj/item/reagent_containers/food/drinks/bottle/attack(mob/living/target, mob/living/user) if(!target) @@ -109,7 +75,7 @@ //Keeping this here for now, I'll ask if I should keep it here. /obj/item/broken_bottle name = "broken bottle" - desc = "A bottle with a sharp broken bottom." + desc = "A shattered glass container with sharp edges." icon = 'icons/obj/drinks.dmi' icon_state = "broken_bottle" force = 9 diff --git a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm index 0d769932db..defc44ed51 100644 --- a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm +++ b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm @@ -6,7 +6,7 @@ icon_state = "glass_empty" amount_per_transfer_from_this = 10 volume = 50 - materials = list(MAT_GLASS=500) + custom_materials = list(/datum/material/glass=500) max_integrity = 20 spillable = TRUE resistance_flags = ACID_PROOF @@ -45,7 +45,7 @@ amount_per_transfer_from_this = 15 possible_transfer_amounts = list() volume = 15 - materials = list(MAT_GLASS=100) + custom_materials = list(/datum/material/glass=100) /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass/on_reagent_change(changetype) cut_overlays() diff --git a/code/modules/food_and_drinks/food.dm b/code/modules/food_and_drinks/food.dm index 6d3f007fd9..2af24080cb 100644 --- a/code/modules/food_and_drinks/food.dm +++ b/code/modules/food_and_drinks/food.dm @@ -12,6 +12,7 @@ possible_transfer_amounts = list() volume = 50 //Sets the default container amount for all food items. reagent_flags = INJECTABLE + reagent_value = NO_REAGENTS_VALUE resistance_flags = FLAMMABLE var/foodtype = NONE var/last_check_time diff --git a/code/modules/food_and_drinks/food/customizables.dm b/code/modules/food_and_drinks/food/customizables.dm index 016e37a5c4..2a313361c4 100644 --- a/code/modules/food_and_drinks/food/customizables.dm +++ b/code/modules/food_and_drinks/food/customizables.dm @@ -293,7 +293,7 @@ icon = 'icons/obj/food/soupsalad.dmi' icon_state = "bowl" reagent_flags = OPENCONTAINER - materials = list(MAT_GLASS = 500) + custom_materials = list(/datum/material/glass = 500) w_class = WEIGHT_CLASS_NORMAL /obj/item/reagent_containers/glass/bowl/attackby(obj/item/I,mob/user, params) diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm index c068c1aa40..0b277e328b 100644 --- a/code/modules/food_and_drinks/food/snacks.dm +++ b/code/modules/food_and_drinks/food/snacks.dm @@ -71,10 +71,11 @@ All foods are distributed among various categories. Use common sense. if(!eater) return if(!reagents.total_volume) - var/obj/item/trash_item = generate_trash(eater) + var/mob/living/location = loc + var/obj/item/trash_item = generate_trash(location) qdel(src) - eater.put_in_hands(trash_item) - + if(istype(location)) + location.put_in_hands(trash_item) /obj/item/reagent_containers/food/snacks/attack_self(mob/user) return @@ -245,7 +246,7 @@ All foods are distributed among various categories. Use common sense. return TRUE /obj/item/reagent_containers/food/snacks/proc/initialize_slice(obj/item/reagent_containers/food/snacks/slice, reagents_per_slice) - slice.create_reagents(slice.volume) + slice.create_reagents(slice.volume, reagent_flags, reagent_value) reagents.trans_to(slice,reagents_per_slice) if(name != initial(name)) slice.name = "slice of [name]" @@ -279,7 +280,7 @@ All foods are distributed among various categories. Use common sense. // initialize_cooked_food() is called when microwaving the food /obj/item/reagent_containers/food/snacks/proc/initialize_cooked_food(obj/item/reagent_containers/food/snacks/S, cooking_efficiency = 1) - S.create_reagents(S.volume) + S.create_reagents(S.volume, reagent_flags, reagent_value) if(reagents) reagents.trans_to(S, reagents.total_volume) if(S.bonus_reagents && S.bonus_reagents.len) diff --git a/code/modules/food_and_drinks/food/snacks/meat.dm b/code/modules/food_and_drinks/food/snacks/meat.dm index 28fb2edf61..d44f859823 100644 --- a/code/modules/food_and_drinks/food/snacks/meat.dm +++ b/code/modules/food_and_drinks/food/snacks/meat.dm @@ -271,7 +271,7 @@ /obj/item/reagent_containers/food/snacks/meat/slab/meatwheat name = "meatwheat clump" desc = "This doesn't look like meat, but your standards aren't that high to begin with." - list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/blood = 5, /datum/reagent/consumable/cooking_oil = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/cooking_oil = 1) filling_color = rgb(150, 0, 0) icon_state = "meatwheat_clump" bitesize = 4 diff --git a/code/modules/food_and_drinks/food/snacks_cake.dm b/code/modules/food_and_drinks/food/snacks_cake.dm index bb37ec9b5d..f2253ee760 100644 --- a/code/modules/food_and_drinks/food/snacks_cake.dm +++ b/code/modules/food_and_drinks/food/snacks_cake.dm @@ -85,6 +85,20 @@ tastes = list("cake" = 4, "cream cheese" = 3) foodtype = GRAIN | DAIRY +/obj/item/reagent_containers/food/snacks/store/cake/brioche + name = "brioche cake" + desc = "A ring of sweet, glazed buns." + icon_state = "briochecake" + slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/brioche + slices_num = 6 + bonus_reagents = list(/datum/reagent/consumable/nutriment = 10, /datum/reagent/consumable/nutriment/vitamin = 2) + +/obj/item/reagent_containers/food/snacks/cakeslice/brioche + name = "brioche cake slice" + desc = "Delicious sweet-bread. Who needs anything else?" + icon_state = "briochecake_slice" + filling_color = "#FFD700" + /obj/item/reagent_containers/food/snacks/cakeslice/cheese name = "cheese cake slice" desc = "Slice of pure cheestisfaction." @@ -375,7 +389,7 @@ obj/item/reagent_containers/food/snacks/store/cake/pound_cake /obj/item/reagent_containers/food/snacks/cakeslice/peach_slice name = "peach cake slice" desc = "A slice of peach cake." - icon_state = "peach_slice" + icon_state = "peachcake_slice" filling_color = "#00FFFF" tastes = list("cake" = 1, "sugar" = 1, "peachjuice" = 10) foodtype = GRAIN | SUGAR | DAIRY @@ -396,4 +410,4 @@ obj/item/reagent_containers/food/snacks/store/cake/pound_cake icon_state = "trumpetcakeslice" filling_color = "#7A3D80" tastes = list("cake" = 4, "violets" = 2, "jam" = 2) - foodtype = GRAIN | DAIRY | FRUIT | SUGAR \ No newline at end of file + foodtype = GRAIN | DAIRY | FRUIT | SUGAR diff --git a/code/modules/food_and_drinks/food/snacks_egg.dm b/code/modules/food_and_drinks/food/snacks_egg.dm index f01966a0ff..0f2856c090 100644 --- a/code/modules/food_and_drinks/food/snacks_egg.dm +++ b/code/modules/food_and_drinks/food/snacks_egg.dm @@ -96,6 +96,16 @@ tastes = list("egg" = 4, "salt" = 1, "pepper" = 1) foodtype = MEAT | FRIED | BREAKFAST +/obj/item/reagent_containers/food/snacks/baconegg + name = "bacon and eggs" + desc = "A fried egg with a side of bacon. Delicious!" + icon_state = "baconegg" + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + bitesize = 2 + filling_color = "#FFFFF0" + tastes = list("egg" = 2, "bacon" = 2, "salt" = 1, "pepper" = 1) + foodtype = MEAT | FRIED | BREAKFAST + /obj/item/reagent_containers/food/snacks/boiledegg name = "boiled egg" desc = "A hard boiled egg." @@ -141,8 +151,17 @@ desc = "There is only one egg on this, how rude." icon_state = "benedict" bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 4) - trash = /obj/item/trash/plate w_class = WEIGHT_CLASS_NORMAL + trash = /obj/item/trash/plate list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 4) tastes = list("egg" = 1, "bacon" = 1, "bun" = 1) foodtype = MEAT | BREAKFAST + +/obj/item/reagent_containers/food/snacks/scotchegg + name = "scotch egg" + desc = "A boiled egg wrapped in a delicious, seasoned meatball." + icon_state = "scotchegg" + bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 2) + bitesize = 3 + filling_color = "#FFFFF0" + list_reagents = list(/datum/reagent/consumable/nutriment = 6) \ No newline at end of file diff --git a/code/modules/food_and_drinks/food/snacks_meat.dm b/code/modules/food_and_drinks/food/snacks_meat.dm index 5103418e6b..9bf95f65db 100644 --- a/code/modules/food_and_drinks/food/snacks_meat.dm +++ b/code/modules/food_and_drinks/food/snacks_meat.dm @@ -325,7 +325,7 @@ /obj/item/reagent_containers/food/snacks/corndog name = "corndog plate" desc = "A plate with two small corn dogs, with two dimples of ketchup and mustard to dip them in." - icon_state = "dorndog" + icon_state = "corndog" trash = /obj/item/trash/plate/alt tastes = list("hotdog" = 2, "mustard and ketchup" = 1, "fryed bread" = 1) bonus_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/mustard = 5, /datum/reagent/consumable/ketchup = 5) @@ -359,4 +359,4 @@ list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/bbqsauce = 5) bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("meat" = 3, "smokey sauce" = 1) - foodtype = MEAT \ No newline at end of file + foodtype = MEAT diff --git a/code/modules/food_and_drinks/food/snacks_other.dm b/code/modules/food_and_drinks/food/snacks_other.dm index 41b08e8c7f..7dc2188100 100644 --- a/code/modules/food_and_drinks/food/snacks_other.dm +++ b/code/modules/food_and_drinks/food/snacks_other.dm @@ -549,7 +549,7 @@ name = "chocolate" desc = "A tiny and sweet chocolate. Has a 'strawberry' filling!" icon_state = "tiny_chocolate" - list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/sugar = 1, /datum/reagent/consumable/coco = 1, /datum/reagent/drug/aphrodisiac = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/sugar = 1, /datum/reagent/consumable/coco = 1) filling_color = "#A0522D" tastes = list("chocolate" = 1) foodtype = JUNKFOOD | SUGAR @@ -674,3 +674,26 @@ if (7000 to INFINITY) burn() ..() + +//Easter Stuff + +/obj/item/reagent_containers/food/snacks/chocolatebunny + name = "chocolate bunny" + desc = "Contains less than 10% real rabbit!" + icon_state = "chocolatebunny" + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/sugar = 2, /datum/reagent/consumable/coco = 2) + filling_color = "#A0522D" + +/obj/item/reagent_containers/food/snacks/soup/mammi + name = "Mammi" + desc = "A bowl of mushy bread and milk. It reminds you, not too fondly, of a bowel movement." + icon_state = "mammi" + bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 1) + +/obj/item/reagent_containers/food/snacks/hotcrossbun + bitesize = 2 + name = "hot-cross bun" + desc = "The Cross represents the Assistants that died for your sins." + icon_state = "hotcrossbun" \ No newline at end of file diff --git a/code/modules/food_and_drinks/food/snacks_pastry.dm b/code/modules/food_and_drinks/food/snacks_pastry.dm index 1c8b70dc13..de1f00ae5d 100644 --- a/code/modules/food_and_drinks/food/snacks_pastry.dm +++ b/code/modules/food_and_drinks/food/snacks_pastry.dm @@ -353,6 +353,13 @@ tastes = list("muffin" = 3, "spookiness" = 1) foodtype = GRAIN | FRUIT | SUGAR | BREAKFAST +/obj/item/reagent_containers/food/snacks/muffin/poppy + name = "poppy muffin" + icon_state = "poppymuffin" + desc = "A classic lemon poppy seed muffin. Do not consume prior to drug testing." + tastes = list("muffin" = 3, "lemon" = 1, "seeds" = 1) + foodtype = GRAIN | SUGAR | BREAKFAST + /obj/item/reagent_containers/food/snacks/chawanmushi name = "chawanmushi" desc = "A legendary egg custard that makes friends out of enemies. Probably too hot for a cat to eat." diff --git a/code/modules/food_and_drinks/food/snacks_pie.dm b/code/modules/food_and_drinks/food/snacks_pie.dm index 0c3623efda..1533f067ab 100644 --- a/code/modules/food_and_drinks/food/snacks_pie.dm +++ b/code/modules/food_and_drinks/food/snacks_pie.dm @@ -53,7 +53,8 @@ H.adjust_blurriness(1) H.visible_message("[H] is creamed by [src]!", "You've been creamed by [src]!") playsound(H, "desceration", 50, TRUE) - reagents.trans_to(H,15) //Cream pie combat + if(!H.is_mouth_covered()) + reagents.trans_to(H,15) //Cream pie combat if(!H.creamed) // one layer at a time H.add_overlay(creamoverlay) H.creamed = TRUE diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm index 4406491f10..24f60300fa 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm @@ -212,7 +212,7 @@ meatslab.throw_at(pick(nearby_turfs),i,3) for (var/turfs=1 to meat_produced) var/turf/gibturf = pick(nearby_turfs) - if (!gibturf.density && src in view(gibturf)) + if (!gibturf.density && (src in view(gibturf))) new gibtype(gibturf,i,diseases) pixel_x = initial(pixel_x) //return to its spot after shaking diff --git a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm index 71becf0542..4fc55ba4c3 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm @@ -319,7 +319,7 @@ /obj/machinery/icecream_vat/proc/replace_beaker(mob/living/user, obj/item/reagent_containers/new_beaker) if(beaker) beaker.forceMove(drop_location()) - if(user && Adjacent(user) && !issiliconoradminghost(user)) + if(user && Adjacent(user) && user.can_hold_items()) user.put_in_hands(beaker) if(new_beaker) beaker = new_beaker diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm index e4d36b29d2..eddd1bdc3f 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm @@ -55,7 +55,7 @@ if(!operating) . += "Alt-click [src] to turn it on." - if(!in_range(user, src) && !issilicon(user) && !isobserver(user)) + if(!in_range(user, src) && !hasSiliconAccessInArea(user) && !isobserver(user)) . += "You're too far away to examine [src]'s contents and display!" return if(operating) @@ -63,7 +63,7 @@ return if(length(ingredients)) - if(issilicon(user)) + if(hasSiliconAccessInArea(user)) . += "\The [src] camera shows:" else . += "\The [src] contains:" @@ -187,14 +187,14 @@ /obj/machinery/microwave/AltClick(mob/user) . = ..() - if(user.canUseTopic(src, !issilicon(usr))) + if(user.canUseTopic(src, !hasSiliconAccessInArea(user))) cook() return TRUE /obj/machinery/microwave/ui_interact(mob/user) . = ..() - if(operating || panel_open || !anchored || !user.canUseTopic(src, !issilicon(user))) + if(operating || panel_open || !anchored || !user.canUseTopic(src, !hasSiliconAccessInArea(user))) return if(isAI(user) && (stat & NOPOWER)) return @@ -206,10 +206,10 @@ to_chat(user, "\The [src] is empty.") return - var/choice = show_radial_menu(user, src, isAI(user) ? ai_radial_options : radial_options, require_near = !issilicon(user)) + var/choice = show_radial_menu(user, src, isAI(user) ? ai_radial_options : radial_options, require_near = !hasSiliconAccessInArea(user)) // post choice verification - if(operating || panel_open || !anchored || !user.canUseTopic(src, !issilicon(user))) + if(operating || panel_open || !anchored || !user.canUseTopic(src, !hasSiliconAccessInArea(user))) return if(isAI(user) && (stat & NOPOWER)) return @@ -309,8 +309,8 @@ var/metal = 0 for(var/obj/item/O in ingredients) O.microwave_act(src) - if(O.materials[MAT_METAL]) - metal += O.materials[MAT_METAL] + if(O.custom_materials?.len) + metal += O.custom_materials[getmaterialref(/datum/material/iron)] if(metal) spark() diff --git a/code/modules/food_and_drinks/pizzabox.dm b/code/modules/food_and_drinks/pizzabox.dm index bd556b8397..b163c6ba97 100644 --- a/code/modules/food_and_drinks/pizzabox.dm +++ b/code/modules/food_and_drinks/pizzabox.dm @@ -220,7 +220,7 @@ unprocess() qdel(src) if(!bomb_active || bomb_defused) - if(bomb_defused && bomb in src) + if(bomb_defused && (bomb in src)) bomb.defuse() bomb_active = FALSE unprocess() diff --git a/code/modules/food_and_drinks/recipes/drinks_recipes.dm b/code/modules/food_and_drinks/recipes/drinks_recipes.dm index 9df650500a..c94118ddf1 100644 --- a/code/modules/food_and_drinks/recipes/drinks_recipes.dm +++ b/code/modules/food_and_drinks/recipes/drinks_recipes.dm @@ -585,6 +585,14 @@ mix_message = "The mixture develops a sinister glow." mix_sound = 'sound/effects/singlebeat.ogg' +/datum/chemical_reaction/cogchamp + name = "CogChamp" + id = /datum/reagent/consumable/ethanol/cogchamp + results = list(/datum/reagent/consumable/ethanol/cogchamp = 3) + required_reagents = list(/datum/reagent/consumable/ethanol/cognac = 1, /datum/reagent/fuel = 1, /datum/reagent/consumable/ethanol/screwdrivercocktail = 1) + mix_message = "You hear faint sounds of gears turning as it mixes." + mix_sound = 'sound/effects/clockcult_gateway_closing.ogg' + /datum/chemical_reaction/quadruplesec name = "Quadruple Sec" id = /datum/reagent/consumable/ethanol/quadruple_sec diff --git a/code/modules/food_and_drinks/recipes/food_mixtures.dm b/code/modules/food_and_drinks/recipes/food_mixtures.dm index fd332a38df..0b297648c5 100644 --- a/code/modules/food_and_drinks/recipes/food_mixtures.dm +++ b/code/modules/food_and_drinks/recipes/food_mixtures.dm @@ -101,6 +101,10 @@ required_reagents = list(/datum/reagent/blood = 5, /datum/reagent/medicine/cryoxadone = 1) mob_react = FALSE +/datum/chemical_reaction/synthmeat/synthblood + id = "synthmeat_synthblood" + required_reagents = list(/datum/reagent/blood/synthetics = 5, /datum/reagent/medicine/cryoxadone = 1) + /datum/chemical_reaction/synthmeat/on_reaction(datum/reagents/holder, multiplier) var/location = get_turf(holder.my_atom) for(var/i = 1, i <= multiplier, i++) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.dm index e572cc76ff..c3890b28eb 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.dm @@ -3,36 +3,6 @@ ////////////////////////////////////////////////BREAD//////////////////////////////////////////////// -/datum/crafting_recipe/food/meatbread - name = "Meat bread" - reqs = list( - /obj/item/reagent_containers/food/snacks/store/bread/plain = 1, - /obj/item/reagent_containers/food/snacks/meat/cutlet/plain = 3, - /obj/item/reagent_containers/food/snacks/cheesewedge = 3 - ) - result = /obj/item/reagent_containers/food/snacks/store/bread/meat - subcategory = CAT_BREAD - -/datum/crafting_recipe/food/xenomeatbread - name = "Xenomeat bread" - reqs = list( - /obj/item/reagent_containers/food/snacks/store/bread/plain = 1, - /obj/item/reagent_containers/food/snacks/meat/cutlet/xeno = 3, - /obj/item/reagent_containers/food/snacks/cheesewedge = 3 - ) - result = /obj/item/reagent_containers/food/snacks/store/bread/xenomeat - subcategory = CAT_BREAD - -/datum/crafting_recipe/food/spidermeatbread - name = "Spidermeat bread" - reqs = list( - /obj/item/reagent_containers/food/snacks/store/bread/plain = 1, - /obj/item/reagent_containers/food/snacks/meat/cutlet/spider = 3, - /obj/item/reagent_containers/food/snacks/cheesewedge = 3 - ) - result = /obj/item/reagent_containers/food/snacks/store/bread/spidermeat - subcategory = CAT_BREAD - /datum/crafting_recipe/food/banananutbread name = "Banana nut bread" reqs = list( @@ -44,16 +14,6 @@ result = /obj/item/reagent_containers/food/snacks/store/bread/banana subcategory = CAT_BREAD -/datum/crafting_recipe/food/tofubread - name = "Tofu bread" - reqs = list( - /obj/item/reagent_containers/food/snacks/store/bread/plain = 1, - /obj/item/reagent_containers/food/snacks/tofu = 3, - /obj/item/reagent_containers/food/snacks/cheesewedge = 3 - ) - result = /obj/item/reagent_containers/food/snacks/store/bread/tofu - subcategory = CAT_BREAD - /datum/crafting_recipe/food/creamcheesebread name = "Cream cheese bread" reqs = list( @@ -64,6 +24,16 @@ result = /obj/item/reagent_containers/food/snacks/store/bread/creamcheese subcategory = CAT_BREAD +/datum/crafting_recipe/food/meatbread + name = "Meat bread" + reqs = list( + /obj/item/reagent_containers/food/snacks/store/bread/plain = 1, + /obj/item/reagent_containers/food/snacks/meat/cutlet/plain = 3, + /obj/item/reagent_containers/food/snacks/cheesewedge = 3 + ) + result = /obj/item/reagent_containers/food/snacks/store/bread/meat + subcategory = CAT_BREAD + /datum/crafting_recipe/food/mimanabread name = "Mimana bread" reqs = list( @@ -75,6 +45,38 @@ result = /obj/item/reagent_containers/food/snacks/store/bread/mimana subcategory = CAT_BREAD +/datum/crafting_recipe/food/spidermeatbread + name = "Spidermeat bread" + reqs = list( + /obj/item/reagent_containers/food/snacks/store/bread/plain = 1, + /obj/item/reagent_containers/food/snacks/meat/cutlet/spider = 3, + /obj/item/reagent_containers/food/snacks/cheesewedge = 3 + ) + result = /obj/item/reagent_containers/food/snacks/store/bread/spidermeat + subcategory = CAT_BREAD + +/datum/crafting_recipe/food/tofubread + name = "Tofu bread" + reqs = list( + /obj/item/reagent_containers/food/snacks/store/bread/plain = 1, + /obj/item/reagent_containers/food/snacks/tofu = 3, + /obj/item/reagent_containers/food/snacks/cheesewedge = 3 + ) + result = /obj/item/reagent_containers/food/snacks/store/bread/tofu + subcategory = CAT_BREAD + +/datum/crafting_recipe/food/xenomeatbread + name = "Xenomeat bread" + reqs = list( + /obj/item/reagent_containers/food/snacks/store/bread/plain = 1, + /obj/item/reagent_containers/food/snacks/meat/cutlet/xeno = 3, + /obj/item/reagent_containers/food/snacks/cheesewedge = 3 + ) + result = /obj/item/reagent_containers/food/snacks/store/bread/xenomeat + subcategory = CAT_BREAD + +////////////////////////////////////////////////TOAST//////////////////////////////////////////////// + /datum/crafting_recipe/food/butteredtoast name = "Buttered Toast" reqs = list( @@ -84,6 +86,45 @@ result = /obj/item/reagent_containers/food/snacks/butteredtoast subcategory = CAT_BREAD +/datum/crafting_recipe/food/slimetoast + name = "Slime toast" + reqs = list( + /datum/reagent/toxin/slimejelly = 5, + /obj/item/reagent_containers/food/snacks/breadslice/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/jelliedtoast/slime + subcategory = CAT_BREAD + +/datum/crafting_recipe/food/jelliedtoast + name = "Jellied toast" + reqs = list( + /datum/reagent/consumable/cherryjelly = 5, + /obj/item/reagent_containers/food/snacks/breadslice/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/jelliedtoast/cherry + subcategory = CAT_BREAD + +/datum/crafting_recipe/food/peanutbuttertoast + name = "Peanut butter toast" + reqs = list( + /datum/reagent/consumable/peanut_butter = 5, + /obj/item/reagent_containers/food/snacks/breadslice/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/peanut_buttertoast + subcategory = CAT_BREAD + +////////////////////////////////////////////////MISC//////////////////////////////////////////////// + +/datum/crafting_recipe/food/baguette + name = "Baguette" + time = 40 + reqs = list(/datum/reagent/consumable/sodiumchloride = 1, + /datum/reagent/consumable/blackpepper = 1, + /obj/item/reagent_containers/food/snacks/pastrybase = 2 + ) + result = /obj/item/reagent_containers/food/snacks/baguette + subcategory = CAT_BREAD + /datum/crafting_recipe/food/butterbiscuit name = "Butter Biscuit" reqs = list( @@ -100,4 +141,13 @@ /obj/item/reagent_containers/food/snacks/butter = 3, ) result = /obj/item/reagent_containers/food/snacks/butterdog + subcategory = CAT_BREAD + +/datum/crafting_recipe/food/twobread + name = "Two bread" + reqs = list( + /datum/reagent/consumable/ethanol/wine = 5, + /obj/item/reagent_containers/food/snacks/breadslice/plain = 2 + ) + result = /obj/item/reagent_containers/food/snacks/twobread subcategory = CAT_BREAD \ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm index ffa8709245..cf96c01e7b 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm @@ -1,8 +1,74 @@ // see code/module/crafting/table.dm -////////////////////////////////////////////////BURGERS//////////////////////////////////////////////// +////////////////////////////////////////////////STANDARD BURGS//////////////////////////////////////////////// +/datum/crafting_recipe/food/burger + name = "Burger" + reqs = list( + /obj/item/reagent_containers/food/snacks/meat/steak/plain = 1, + /obj/item/reagent_containers/food/snacks/bun = 1 + ) + + result = /obj/item/reagent_containers/food/snacks/burger/plain + subcategory = CAT_BURGER + +/datum/crafting_recipe/food/baconburger + name = "Bacon Burger" + reqs = list( + /obj/item/reagent_containers/food/snacks/meat/bacon = 3, + /obj/item/reagent_containers/food/snacks/cheesewedge = 1, + /obj/item/reagent_containers/food/snacks/bun = 1 + ) + + result = /obj/item/reagent_containers/food/snacks/burger/baconburger + subcategory = CAT_BURGER + +/datum/crafting_recipe/food/bigbiteburger + name = "Big bite burger" + reqs = list( + /obj/item/reagent_containers/food/snacks/meat/steak/plain = 3, + /obj/item/reagent_containers/food/snacks/cheesewedge = 2, + /obj/item/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/reagent_containers/food/snacks/burger/bigbite + subcategory = CAT_BURGER + +/datum/crafting_recipe/food/superbiteburger + name = "Super bite burger" + reqs = list( + /datum/reagent/consumable/sodiumchloride = 5, + /datum/reagent/consumable/blackpepper = 5, + /obj/item/reagent_containers/food/snacks/meat/steak/plain = 5, + /obj/item/reagent_containers/food/snacks/grown/tomato = 4, + /obj/item/reagent_containers/food/snacks/cheesewedge = 3, + /obj/item/reagent_containers/food/snacks/boiledegg = 1, + /obj/item/reagent_containers/food/snacks/meat/bacon = 1, + /obj/item/reagent_containers/food/snacks/bun = 1 + + ) + result = /obj/item/reagent_containers/food/snacks/burger/superbite + subcategory = CAT_BURGER + +/datum/crafting_recipe/food/cheeseburger + name = "Cheese Burger" + reqs = list( + /obj/item/reagent_containers/food/snacks/meat/steak/plain = 1, + /obj/item/reagent_containers/food/snacks/cheesewedge = 1, + /obj/item/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/reagent_containers/food/snacks/burger/cheese + subcategory = CAT_BURGER + +/datum/crafting_recipe/food/corgiburger + name = "Corgi burger" + reqs = list( + /obj/item/reagent_containers/food/snacks/meat/slab/corgi = 1, + /obj/item/reagent_containers/food/snacks/bun = 1 + ) + + result = /obj/item/reagent_containers/food/snacks/burger/corgi + subcategory = CAT_BURGER /datum/crafting_recipe/food/humanburger name = "Human burger" @@ -16,26 +82,37 @@ result = /obj/item/reagent_containers/food/snacks/burger/human subcategory = CAT_BURGER -/datum/crafting_recipe/food/burger - name = "Burger" +/datum/crafting_recipe/food/ribburger + name = "McRib" reqs = list( - /obj/item/reagent_containers/food/snacks/meat/steak/plain = 1, + /obj/item/reagent_containers/food/snacks/bbqribs = 1, //The sauce is already included in the ribs + /obj/item/reagent_containers/food/snacks/onion_slice = 1, //feel free to remove if too burdensome. /obj/item/reagent_containers/food/snacks/bun = 1 ) - - result = /obj/item/reagent_containers/food/snacks/burger/plain + result = /obj/item/reagent_containers/food/snacks/burger/rib subcategory = CAT_BURGER -/datum/crafting_recipe/food/corgiburger - name = "Corgi burger" +/datum/crafting_recipe/food/mcguffin + name = "McGuffin" reqs = list( - /obj/item/reagent_containers/food/snacks/meat/slab/corgi = 1, + /obj/item/reagent_containers/food/snacks/friedegg = 1, + /obj/item/reagent_containers/food/snacks/meat/bacon = 2, /obj/item/reagent_containers/food/snacks/bun = 1 ) - - result = /obj/item/reagent_containers/food/snacks/burger/corgi + result = /obj/item/reagent_containers/food/snacks/burger/mcguffin subcategory = CAT_BURGER +/datum/crafting_recipe/food/tofuburger + name = "Tofu burger" + reqs = list( + /obj/item/reagent_containers/food/snacks/tofu = 1, + /obj/item/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/reagent_containers/food/snacks/burger/tofu + subcategory = CAT_BURGER + +///////////////EXOTIC////////////////// + /datum/crafting_recipe/food/appendixburger name = "Appendix burger" reqs = list( @@ -54,15 +131,6 @@ result = /obj/item/reagent_containers/food/snacks/burger/brain subcategory = CAT_BURGER -/datum/crafting_recipe/food/xenoburger - name = "Xeno burger" - reqs = list( - /obj/item/reagent_containers/food/snacks/meat/steak/xeno = 1, - /obj/item/reagent_containers/food/snacks/bun = 1 - ) - result = /obj/item/reagent_containers/food/snacks/burger/xeno - subcategory = CAT_BURGER - /datum/crafting_recipe/food/bearger name = "Bearger" reqs = list( @@ -72,6 +140,16 @@ result = /obj/item/reagent_containers/food/snacks/burger/bearger subcategory = CAT_BURGER +/datum/crafting_recipe/food/chickenburger + name = "Chicken Sandwich" + reqs = list( + /obj/item/reagent_containers/food/snacks/meat/steak/chicken = 1, + /datum/reagent/consumable/mayonnaise = 5, + /obj/item/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/reagent_containers/food/snacks/burger/chicken + subcategory = CAT_BURGER + /datum/crafting_recipe/food/fishburger name = "Fish burger" reqs = list( @@ -82,25 +160,73 @@ result = /obj/item/reagent_containers/food/snacks/burger/fish subcategory = CAT_BURGER -/datum/crafting_recipe/food/tofuburger - name = "Tofu burger" +/datum/crafting_recipe/food/fivealarmburger + name = "Five alarm burger" reqs = list( - /obj/item/reagent_containers/food/snacks/tofu = 1, - /obj/item/reagent_containers/food/snacks/bun = 1 + /obj/item/reagent_containers/food/snacks/grown/ghost_chili = 2, + /obj/item/reagent_containers/food/snacks/meat/steak/plain = 1, + /obj/item/reagent_containers/food/snacks/bun = 1 ) - result = /obj/item/reagent_containers/food/snacks/burger/tofu + result = /obj/item/reagent_containers/food/snacks/burger/fivealarm subcategory = CAT_BURGER -/datum/crafting_recipe/food/ghostburger - name = "Ghost burger" +/datum/crafting_recipe/food/slimeburger + name = "Jelly burger" reqs = list( - /obj/item/ectoplasm = 1, - /datum/reagent/consumable/sodiumchloride = 2, + /datum/reagent/toxin/slimejelly = 5, /obj/item/reagent_containers/food/snacks/bun = 1 ) - result = /obj/item/reagent_containers/food/snacks/burger/ghost + result = /obj/item/reagent_containers/food/snacks/burger/jelly/slime subcategory = CAT_BURGER +/datum/crafting_recipe/food/jellyburger + name = "Jelly burger" + reqs = list( + /datum/reagent/consumable/cherryjelly = 5, + /obj/item/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/reagent_containers/food/snacks/burger/jelly/cherry + subcategory = CAT_BURGER + +/datum/crafting_recipe/food/baseballburger + name = "Home run baseball burger" + reqs = list( + /obj/item/melee/baseball_bat = 1, + /obj/item/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/reagent_containers/food/snacks/burger/baseball + subcategory = CAT_BURGER + +/datum/crafting_recipe/food/ratburger + name = "Rat burger" + reqs = list( + /obj/item/reagent_containers/food/snacks/deadmouse = 1, + /obj/item/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/reagent_containers/food/snacks/burger/rat + subcategory = CAT_BURGER + +/datum/crafting_recipe/food/soylentburger + name = "Soylent Burger" + reqs = list( + /obj/item/reagent_containers/food/snacks/soylentgreen = 1, //two full meats worth. + /obj/item/reagent_containers/food/snacks/cheesewedge = 2, + /obj/item/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/reagent_containers/food/snacks/burger/soylent + subcategory = CAT_BURGER + +/datum/crafting_recipe/food/xenoburger + name = "Xeno burger" + reqs = list( + /obj/item/reagent_containers/food/snacks/meat/steak/xeno = 1, + /obj/item/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/reagent_containers/food/snacks/burger/xeno + subcategory = CAT_BURGER + +////////////MYSTICAL//////////////// + /datum/crafting_recipe/food/clownburger name = "Clown burger" reqs = list( @@ -119,6 +245,35 @@ result = /obj/item/reagent_containers/food/snacks/burger/mime subcategory = CAT_BURGER +/datum/crafting_recipe/food/ghostburger + name = "Ghost burger" + reqs = list( + /obj/item/ectoplasm = 1, + /datum/reagent/consumable/sodiumchloride = 2, + /obj/item/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/reagent_containers/food/snacks/burger/ghost + subcategory = CAT_BURGER + +/datum/crafting_recipe/food/spellburger + name = "Spell burger" + reqs = list( + /obj/item/clothing/head/wizard/fake = 1, + ) + result = /obj/item/reagent_containers/food/snacks/burger/spell + subcategory = CAT_BURGER + +/datum/crafting_recipe/food/spellburger2 + name = "Spell burger" + reqs = list( + /obj/item/clothing/head/wizard = 1, + /obj/item/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/reagent_containers/food/snacks/burger/spell + subcategory = CAT_BURGER + +////////////COLORED BURGERS////////////// + /datum/crafting_recipe/food/redburger name = "Red burger" reqs = list( @@ -197,154 +352,4 @@ /obj/item/reagent_containers/food/snacks/bun = 1 ) result = /obj/item/reagent_containers/food/snacks/burger/white - subcategory = CAT_BURGER - -/datum/crafting_recipe/food/spellburger - name = "Spell burger" - reqs = list( - /obj/item/clothing/head/wizard/fake = 1, - ) - result = /obj/item/reagent_containers/food/snacks/burger/spell - subcategory = CAT_BURGER - -/datum/crafting_recipe/food/spellburger2 - name = "Spell burger" - reqs = list( - /obj/item/clothing/head/wizard = 1, - /obj/item/reagent_containers/food/snacks/bun = 1 - ) - result = /obj/item/reagent_containers/food/snacks/burger/spell - subcategory = CAT_BURGER - -/datum/crafting_recipe/food/bigbiteburger - name = "Big bite burger" - reqs = list( - /obj/item/reagent_containers/food/snacks/meat/steak/plain = 3, - /obj/item/reagent_containers/food/snacks/cheesewedge = 2, - /obj/item/reagent_containers/food/snacks/bun = 1 - ) - result = /obj/item/reagent_containers/food/snacks/burger/bigbite - subcategory = CAT_BURGER - -/datum/crafting_recipe/food/superbiteburger - name = "Super bite burger" - reqs = list( - /datum/reagent/consumable/sodiumchloride = 5, - /datum/reagent/consumable/blackpepper = 5, - /obj/item/reagent_containers/food/snacks/meat/steak/plain = 5, - /obj/item/reagent_containers/food/snacks/grown/tomato = 4, - /obj/item/reagent_containers/food/snacks/cheesewedge = 3, - /obj/item/reagent_containers/food/snacks/boiledegg = 1, - /obj/item/reagent_containers/food/snacks/meat/bacon = 1, - /obj/item/reagent_containers/food/snacks/bun = 1 - - ) - result = /obj/item/reagent_containers/food/snacks/burger/superbite - subcategory = CAT_BURGER - -/datum/crafting_recipe/food/slimeburger - name = "Jelly burger" - reqs = list( - /datum/reagent/toxin/slimejelly = 5, - /obj/item/reagent_containers/food/snacks/bun = 1 - ) - result = /obj/item/reagent_containers/food/snacks/burger/jelly/slime - subcategory = CAT_BURGER - -/datum/crafting_recipe/food/jellyburger - name = "Jelly burger" - reqs = list( - /datum/reagent/consumable/cherryjelly = 5, - /obj/item/reagent_containers/food/snacks/bun = 1 - ) - result = /obj/item/reagent_containers/food/snacks/burger/jelly/cherry - subcategory = CAT_BURGER - -/datum/crafting_recipe/food/fivealarmburger - name = "Five alarm burger" - reqs = list( - /obj/item/reagent_containers/food/snacks/grown/ghost_chili = 2, - /obj/item/reagent_containers/food/snacks/meat/steak/plain = 1, - /obj/item/reagent_containers/food/snacks/bun = 1 - ) - result = /obj/item/reagent_containers/food/snacks/burger/fivealarm - subcategory = CAT_BURGER - -/datum/crafting_recipe/food/ratburger - name = "Rat burger" - reqs = list( - /obj/item/reagent_containers/food/snacks/deadmouse = 1, - /obj/item/reagent_containers/food/snacks/bun = 1 - ) - result = /obj/item/reagent_containers/food/snacks/burger/rat - subcategory = CAT_BURGER - -/datum/crafting_recipe/food/baseballburger - name = "Home run baseball burger" - reqs = list( - /obj/item/melee/baseball_bat = 1, - /obj/item/reagent_containers/food/snacks/bun = 1 - ) - result = /obj/item/reagent_containers/food/snacks/burger/baseball - subcategory = CAT_BURGER - -/datum/crafting_recipe/food/baconburger - name = "Bacon Burger" - reqs = list( - /obj/item/reagent_containers/food/snacks/meat/bacon = 3, - /obj/item/reagent_containers/food/snacks/cheesewedge = 1, - /obj/item/reagent_containers/food/snacks/bun = 1 - ) - - result = /obj/item/reagent_containers/food/snacks/burger/baconburger - subcategory = CAT_BURGER - -/datum/crafting_recipe/food/cheeseburger - name = "Cheese Burger" - reqs = list( - /obj/item/reagent_containers/food/snacks/meat/steak/plain = 1, - /obj/item/reagent_containers/food/snacks/cheesewedge = 1, - /obj/item/reagent_containers/food/snacks/bun = 1 - ) - result = /obj/item/reagent_containers/food/snacks/burger/cheese - subcategory = CAT_BURGER - -/datum/crafting_recipe/food/soylentburger - name = "Soylent Burger" - reqs = list( - /obj/item/reagent_containers/food/snacks/soylentgreen = 1, //two full meats worth. - /obj/item/reagent_containers/food/snacks/cheesewedge = 2, - /obj/item/reagent_containers/food/snacks/bun = 1 - ) - result = /obj/item/reagent_containers/food/snacks/burger/soylent - subcategory = CAT_BURGER - -/datum/crafting_recipe/food/ribburger - name = "McRib" - reqs = list( - /obj/item/reagent_containers/food/snacks/bbqribs = 1, //The sauce is already included in the ribs - /obj/item/reagent_containers/food/snacks/onion_slice = 1, //feel free to remove if too burdensome. - /obj/item/reagent_containers/food/snacks/bun = 1 - ) - result = /obj/item/reagent_containers/food/snacks/burger/rib - subcategory = CAT_BURGER - -/datum/crafting_recipe/food/mcguffin - name = "McGuffin" - reqs = list( - /obj/item/reagent_containers/food/snacks/friedegg = 1, - /obj/item/reagent_containers/food/snacks/meat/bacon = 2, - /obj/item/reagent_containers/food/snacks/bun = 1 - ) - result = /obj/item/reagent_containers/food/snacks/burger/mcguffin - subcategory = CAT_BURGER - -/datum/crafting_recipe/food/chickenburger - name = "Chicken Sandwich" - reqs = list( - /obj/item/reagent_containers/food/snacks/meat/steak/chicken = 1, - /datum/reagent/consumable/mayonnaise = 5, - /obj/item/reagent_containers/food/snacks/bun = 1 - ) - result = /obj/item/reagent_containers/food/snacks/burger/chicken subcategory = CAT_BURGER \ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm index f168896164..f6441210f6 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm @@ -1,7 +1,93 @@ // see code/module/crafting/table.dm -////////////////////////////////////////////////CAKE//////////////////////////////////////////////// +////////////////////////////////////////////////FRUIT CAKE//////////////////////////////////////////////// + +/datum/crafting_recipe/food/applecake + name = "Apple cake" + reqs = list( + /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/reagent_containers/food/snacks/grown/apple = 2 + ) + result = /obj/item/reagent_containers/food/snacks/store/cake/apple + subcategory = CAT_CAKE + +/datum/crafting_recipe/food/bscccake + name = "Blackberry and strawberry chocolate cake" + reqs = list( + /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/reagent_containers/food/snacks/chocolatebar = 2, + /obj/item/reagent_containers/food/snacks/grown/berries = 5 + ) + result = /obj/item/reagent_containers/food/snacks/store/cake/bscc + subcategory = CAT_CAKE + +/datum/crafting_recipe/food/bscvcake + name = "Blackberry and strawberry vanilla cake" + reqs = list( + /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/reagent_containers/food/snacks/grown/berries = 5 + ) + result = /obj/item/reagent_containers/food/snacks/store/cake/bsvc + subcategory = CAT_CAKE + +/datum/crafting_recipe/food/lemoncake + name = "Lemon cake" + reqs = list( + /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/reagent_containers/food/snacks/grown/citrus/lemon = 2 + ) + result = /obj/item/reagent_containers/food/snacks/store/cake/lemon + subcategory = CAT_CAKE + +/datum/crafting_recipe/food/limecake + name = "Lime cake" + reqs = list( + /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/reagent_containers/food/snacks/grown/citrus/lime = 2 + ) + result = /obj/item/reagent_containers/food/snacks/store/cake/lime + subcategory = CAT_CAKE + +/datum/crafting_recipe/food/orangecake + name = "Orange cake" + reqs = list( + /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/reagent_containers/food/snacks/grown/citrus/orange = 2 + ) + result = /obj/item/reagent_containers/food/snacks/store/cake/orange + subcategory = CAT_CAKE + +/datum/crafting_recipe/food/peachcake + name = "Peach cake" + reqs = list( + /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/reagent_containers/food/snacks/grown/peach = 5 + ) + result = /obj/item/reagent_containers/food/snacks/store/cake/peach_cake + subcategory = CAT_CAKE + +///////////////////////////////////FANCY//////////////////////////////////////////// + +/datum/crafting_recipe/food/birthdaycake + name = "Birthday cake" + reqs = list( + /datum/reagent/consumable/sugar = 5, + /datum/reagent/consumable/caramel =2, + /obj/item/candle = 1, + /obj/item/reagent_containers/food/snacks/store/cake/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/store/cake/birthday + subcategory = CAT_CAKE + +/datum/crafting_recipe/food/briochecake + name = "Brioche cake" + reqs = list( + /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, + /datum/reagent/consumable/sugar = 2 + ) + result = /obj/item/reagent_containers/food/snacks/store/cake/brioche + subcategory = CAT_CAKE /datum/crafting_recipe/food/carrotcake name = "Carrot cake" @@ -21,42 +107,6 @@ result = /obj/item/reagent_containers/food/snacks/store/cake/cheese subcategory = CAT_CAKE -/datum/crafting_recipe/food/applecake - name = "Apple cake" - reqs = list( - /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, - /obj/item/reagent_containers/food/snacks/grown/apple = 2 - ) - result = /obj/item/reagent_containers/food/snacks/store/cake/apple - subcategory = CAT_CAKE - -/datum/crafting_recipe/food/orangecake - name = "Orange cake" - reqs = list( - /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, - /obj/item/reagent_containers/food/snacks/grown/citrus/orange = 2 - ) - result = /obj/item/reagent_containers/food/snacks/store/cake/orange - subcategory = CAT_CAKE - -/datum/crafting_recipe/food/limecake - name = "Lime cake" - reqs = list( - /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, - /obj/item/reagent_containers/food/snacks/grown/citrus/lime = 2 - ) - result = /obj/item/reagent_containers/food/snacks/store/cake/lime - subcategory = CAT_CAKE - -/datum/crafting_recipe/food/lemoncake - name = "Lemon cake" - reqs = list( - /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, - /obj/item/reagent_containers/food/snacks/grown/citrus/lemon = 2 - ) - result = /obj/item/reagent_containers/food/snacks/store/cake/lemon - subcategory = CAT_CAKE - /datum/crafting_recipe/food/chocolatecake name = "Chocolate cake" reqs = list( @@ -66,35 +116,6 @@ result = /obj/item/reagent_containers/food/snacks/store/cake/chocolate subcategory = CAT_CAKE -/datum/crafting_recipe/food/birthdaycake - name = "Birthday cake" - reqs = list( - /datum/reagent/consumable/sugar = 5, - /datum/reagent/consumable/caramel =2, - /obj/item/candle = 1, - /obj/item/reagent_containers/food/snacks/store/cake/plain = 1 - ) - result = /obj/item/reagent_containers/food/snacks/store/cake/birthday - subcategory = CAT_CAKE - -/datum/crafting_recipe/food/braincake - name = "Brain cake" - reqs = list( - /obj/item/organ/brain = 1, - /obj/item/reagent_containers/food/snacks/store/cake/plain = 1 - ) - result = /obj/item/reagent_containers/food/snacks/store/cake/brain - subcategory = CAT_CAKE - -/datum/crafting_recipe/food/slimecake - name = "Slime cake" - reqs = list( - /obj/item/slime_extract = 1, - /obj/item/reagent_containers/food/snacks/store/cake/plain = 1 - ) - result = /obj/item/reagent_containers/food/snacks/store/cake/slimecake - subcategory = CAT_CAKE - /datum/crafting_recipe/food/pumpkinspicecake name = "Pumpkin spice cake" reqs = list( @@ -104,6 +125,26 @@ result = /obj/item/reagent_containers/food/snacks/store/cake/pumpkinspice subcategory = CAT_CAKE +/datum/crafting_recipe/food/poundcake + name = "Pound cake" + reqs = list( + /obj/item/reagent_containers/food/snacks/store/cake/plain = 4 + ) + result = /obj/item/reagent_containers/food/snacks/store/cake/pound_cake + subcategory = CAT_CAKE + +/datum/crafting_recipe/food/vanillacake + name = "Vanilla cake" + always_availible = FALSE + reqs = list( + /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/reagent_containers/food/snacks/grown/vanillapod = 2 + ) + result = /obj/item/reagent_containers/food/snacks/store/cake/vanilla_cake + subcategory = CAT_CAKE + +/////////////SPECIAL//////////// + /datum/crafting_recipe/food/holycake name = "Angel food cake" reqs = list( @@ -113,12 +154,24 @@ result = /obj/item/reagent_containers/food/snacks/store/cake/holy_cake subcategory = CAT_CAKE -/datum/crafting_recipe/food/poundcake - name = "Pound cake" +/datum/crafting_recipe/food/braincake + name = "Brain cake" reqs = list( - /obj/item/reagent_containers/food/snacks/store/cake/plain = 4 + /obj/item/organ/brain = 1, + /obj/item/reagent_containers/food/snacks/store/cake/plain = 1 ) - result = /obj/item/reagent_containers/food/snacks/store/cake/pound_cake + result = /obj/item/reagent_containers/food/snacks/store/cake/brain + subcategory = CAT_CAKE + +/datum/crafting_recipe/food/clowncake + name = "Clown cake" + always_availible = FALSE + reqs = list( + /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/reagent_containers/food/snacks/sundae = 2, + /obj/item/reagent_containers/food/snacks/grown/banana = 5 + ) + result = /obj/item/reagent_containers/food/snacks/store/cake/clown_cake subcategory = CAT_CAKE /datum/crafting_recipe/food/hardwarecake @@ -131,53 +184,13 @@ result = /obj/item/reagent_containers/food/snacks/store/cake/hardware_cake subcategory = CAT_CAKE -/datum/crafting_recipe/food/bscccake - name = "blackberry and strawberry chocolate cake" +/datum/crafting_recipe/food/slimecake + name = "Slime cake" reqs = list( - /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, - /obj/item/reagent_containers/food/snacks/chocolatebar = 2, - /obj/item/reagent_containers/food/snacks/grown/berries = 5 + /obj/item/slime_extract = 1, + /obj/item/reagent_containers/food/snacks/store/cake/plain = 1 ) - result = /obj/item/reagent_containers/food/snacks/store/cake/bscc - subcategory = CAT_CAKE - -/datum/crafting_recipe/food/bscvcake - name = "blackberry and strawberry vanilla cake" - reqs = list( - /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, - /obj/item/reagent_containers/food/snacks/grown/berries = 5 - ) - result = /obj/item/reagent_containers/food/snacks/store/cake/bsvc - subcategory = CAT_CAKE - -/datum/crafting_recipe/food/clowncake - name = "clown cake" - always_availible = FALSE - reqs = list( - /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, - /obj/item/reagent_containers/food/snacks/sundae = 2, - /obj/item/reagent_containers/food/snacks/grown/banana = 5 - ) - result = /obj/item/reagent_containers/food/snacks/store/cake/clown_cake - subcategory = CAT_CAKE - -/datum/crafting_recipe/food/vanillacake - name = "vanilla cake" - always_availible = FALSE - reqs = list( - /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, - /obj/item/reagent_containers/food/snacks/grown/vanillapod = 2 - ) - result = /obj/item/reagent_containers/food/snacks/store/cake/vanilla_cake - subcategory = CAT_CAKE - -/datum/crafting_recipe/food/peachcake - name = "Peach cake" - reqs = list( - /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, - /obj/item/reagent_containers/food/snacks/grown/peach = 5 - ) - result = /obj/item/reagent_containers/food/snacks/store/cake/peach_cake + result = /obj/item/reagent_containers/food/snacks/store/cake/slimecake subcategory = CAT_CAKE /datum/crafting_recipe/food/trumpetcake diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_donut.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_donut.dm new file mode 100644 index 0000000000..ac5576ac25 --- /dev/null +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_donut.dm @@ -0,0 +1,255 @@ +// see code/module/crafting/table.dm + +////////////////////////////////////////////////DONUTS//////////////////////////////////////////////// + +/datum/crafting_recipe/food/donut + time = 15 + name = "Donut" + reqs = list( + /datum/reagent/consumable/sugar = 1, + /obj/item/reagent_containers/food/snacks/pastrybase = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/plain + subcategory = CAT_DONUT + +/datum/crafting_recipe/food/donut/chaos + name = "Chaos donut" + reqs = list( + /datum/reagent/consumable/frostoil = 5, + /datum/reagent/consumable/capsaicin = 5, + /obj/item/reagent_containers/food/snacks/pastrybase = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/chaos + +datum/crafting_recipe/food/donut/meat + time = 15 + name = "Meat donut" + reqs = list( + /obj/item/reagent_containers/food/snacks/meat/slab = 1, + /obj/item/reagent_containers/food/snacks/pastrybase = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/meat + +/datum/crafting_recipe/food/donut/jelly + name = "Jelly donut" + reqs = list( + /datum/reagent/consumable/berryjuice = 5, + /obj/item/reagent_containers/food/snacks/pastrybase = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/jelly/plain + +/datum/crafting_recipe/food/donut/slimejelly + name = "Slime jelly donut" + reqs = list( + /datum/reagent/toxin/slimejelly = 5, + /obj/item/reagent_containers/food/snacks/pastrybase = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain + +/datum/crafting_recipe/food/donut/glaze + time = 15 + name = "glaze donut" + reqs = list( + /datum/reagent/consumable/sugar = 10, + /obj/item/reagent_containers/food/snacks/pastrybase = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/glaze + subcategory = CAT_DONUT + +/datum/crafting_recipe/food/donut/berry + name = "Berry Donut" + reqs = list( + /datum/reagent/consumable/berryjuice = 3, + /obj/item/reagent_containers/food/snacks/donut/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/berry + +/datum/crafting_recipe/food/donut/trumpet + name = "Spaceman's Donut" + reqs = list( + /datum/reagent/medicine/polypyr = 3, + /obj/item/reagent_containers/food/snacks/donut/plain = 1 + ) + + result = /obj/item/reagent_containers/food/snacks/donut/trumpet + +/datum/crafting_recipe/food/donut/apple + name = "Apple Donut" + reqs = list( + /datum/reagent/consumable/applejuice = 3, + /obj/item/reagent_containers/food/snacks/donut/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/apple + +/datum/crafting_recipe/food/donut/caramel + name = "Caramel Donut" + reqs = list( + /datum/reagent/consumable/caramel = 3, + /obj/item/reagent_containers/food/snacks/donut/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/caramel + +/datum/crafting_recipe/food/donut/choco + name = "Chocolate Donut" + reqs = list( + /obj/item/reagent_containers/food/snacks/chocolatebar = 1, + /obj/item/reagent_containers/food/snacks/donut/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/choco + +/datum/crafting_recipe/food/donut/blumpkin + name = "Blumpkin Donut" + reqs = list( + /datum/reagent/consumable/blumpkinjuice = 3, + /obj/item/reagent_containers/food/snacks/donut/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/blumpkin + +/datum/crafting_recipe/food/donut/bungo + name = "Bungo Donut" + reqs = list( + /datum/reagent/consumable/bungojuice = 3, + /obj/item/reagent_containers/food/snacks/donut/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/bungo + +/datum/crafting_recipe/food/donut/matcha + name = "Matcha Donut" + reqs = list( + /datum/reagent/toxin/teapowder = 3, + /obj/item/reagent_containers/food/snacks/donut/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/matcha + +////////////////////////////////////////////////////JELLY DONUTS/////////////////////////////////////////////////////// + +/datum/crafting_recipe/food/donut/jelly/apple + name = "Apple Jelly Donut" + reqs = list( + /datum/reagent/consumable/applejuice = 3, + /obj/item/reagent_containers/food/snacks/donut/jelly/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/jelly/apple + +/datum/crafting_recipe/food/donut/jelly/berry + name = "Berry Jelly Donut" + reqs = list( + /datum/reagent/consumable/berryjuice = 3, + /obj/item/reagent_containers/food/snacks/donut/jelly/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/jelly/berry + +/datum/crafting_recipe/food/donut/jelly/blumpkin + name = "Blumpkin Jelly Donut" + reqs = list( + /datum/reagent/consumable/blumpkinjuice = 3, + /obj/item/reagent_containers/food/snacks/donut/jelly/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/jelly/blumpkin + +/datum/crafting_recipe/food/donut/jelly/bungo + name = "Bungo Jelly Donut" + reqs = list( + /datum/reagent/consumable/bungojuice = 3, + /obj/item/reagent_containers/food/snacks/donut/jelly/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/jelly/bungo + +/datum/crafting_recipe/food/donut/jelly/caramel + name = "Caramel Jelly Donut" + reqs = list( + /datum/reagent/consumable/caramel = 3, + /obj/item/reagent_containers/food/snacks/donut/jelly/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/jelly/caramel + +/datum/crafting_recipe/food/donut/jelly/choco + name = "Chocolate Jelly Donut" + reqs = list( + /obj/item/reagent_containers/food/snacks/chocolatebar = 1, + /obj/item/reagent_containers/food/snacks/donut/jelly/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/jelly/choco + +/datum/crafting_recipe/food/donut/jelly/matcha + name = "Matcha Jelly Donut" + reqs = list( + /datum/reagent/toxin/teapowder = 3, + /obj/item/reagent_containers/food/snacks/donut/jelly/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/jelly/matcha + +/datum/crafting_recipe/food/donut/jelly/trumpet + name = "Spaceman's Jelly Donut" + reqs = list( + /datum/reagent/medicine/polypyr = 3, + /obj/item/reagent_containers/food/snacks/donut/jelly/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/jelly/trumpet + +////////////////////////////////////////////////////SLIME DONUTS/////////////////////////////////////////////////////// + +/datum/crafting_recipe/food/donut/slimejelly/apple + name = "Apple Slime Donut" + reqs = list( + /datum/reagent/consumable/applejuice = 3, + /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/apple + +/datum/crafting_recipe/food/donut/slimejelly/berry + name = "Berry Slime Donut" + reqs = list( + /datum/reagent/consumable/berryjuice = 3, + /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/berry + +/datum/crafting_recipe/food/donut/slimejelly/blumpkin + name = "Blumpkin Slime Donut" + reqs = list( + /datum/reagent/consumable/blumpkinjuice = 3, + /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/blumpkin + +/datum/crafting_recipe/food/donut/slimejelly/bungo + name = "Bungo Slime Donut" + reqs = list( + /datum/reagent/consumable/bungojuice = 3, + /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/bungo + +/datum/crafting_recipe/food/donut/slimejelly/caramel + name = "Caramel Slime Donut" + reqs = list( + /datum/reagent/consumable/caramel = 3, + /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/caramel + +/datum/crafting_recipe/food/donut/slimejelly/choco + name = "Chocolate Slime Donut" + reqs = list( + /obj/item/reagent_containers/food/snacks/chocolatebar = 1, + /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/choco + +/datum/crafting_recipe/food/donut/slimejelly/trumpet + name = "Spaceman's Slime Donut" + reqs = list( + /datum/reagent/medicine/polypyr = 3, + /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1 + ) + + result = /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/trumpet + +/datum/crafting_recipe/food/donut/slimejelly/matcha + name = "Matcha Slime Donut" + reqs = list( + /datum/reagent/toxin/teapowder = 3, + /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/matcha diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm index 6d495d1c79..108307119d 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm @@ -13,6 +13,15 @@ result = /obj/item/reagent_containers/food/snacks/friedegg subcategory = CAT_EGG +/datum/crafting_recipe/food/baconegg + name = "Bacon and Eggs" + reqs = list( + /obj/item/reagent_containers/food/snacks/friedegg = 1, + /obj/item/reagent_containers/food/snacks/meat/bacon = 1 + ) + result = /obj/item/reagent_containers/food/snacks/baconegg + subcategory = CAT_EGG + /datum/crafting_recipe/food/omelette name = "Omelette" reqs = list( @@ -50,4 +59,15 @@ /obj/item/reagent_containers/food/snacks/grown/corn = 1 ) result = /obj/item/reagent_containers/food/snacks/salad/eggbowl + subcategory = CAT_EGG + +/datum/crafting_recipe/food/scotchegg + name = "Scotch egg" + reqs = list( + /datum/reagent/consumable/sodiumchloride = 1, + /datum/reagent/consumable/blackpepper = 1, + /obj/item/reagent_containers/food/snacks/boiledegg = 1, + /obj/item/reagent_containers/food/snacks/faggot = 1 + ) + result = /obj/item/reagent_containers/food/snacks/scotchegg subcategory = CAT_EGG \ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_frozen.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_frozen.dm index e204b0c72c..6d443c99f0 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_frozen.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_frozen.dm @@ -3,6 +3,64 @@ //Misc. Frozen.// ///////////////// +/datum/crafting_recipe/food/banana_split + name = "Banana Split" + always_availible = FALSE + reqs = list( + /obj/item/reagent_containers/food/snacks/icecream = 3, + /obj/item/reagent_containers/food/snacks/grown/banana = 1, + /obj/item/reagent_containers/food/snacks/grown/cherries = 1, + /obj/item/reagent_containers/food/snacks/chocolatebar = 1 + ) + result = /obj/item/reagent_containers/food/snacks/banana_split + subcategory = CAT_ICE + + /datum/crafting_recipe/food/bluecharrie_float + name = "Blue Cherry Shake" + always_availible = FALSE + reqs = list( + /obj/item/reagent_containers/food/snacks/icecream = 1, + /obj/item/reagent_containers/food/snacks/grown/bluecherries = 3, + /obj/item/reagent_containers/food/drinks/drinkingglass = 1 + ) + result = /obj/item/reagent_containers/food/snacks/bluecharrie_float + subcategory = CAT_ICE + +/datum/crafting_recipe/food/charrie_float + name = "Cherry Shake" + always_availible = FALSE + reqs = list( + /obj/item/reagent_containers/food/snacks/icecream = 1, + /obj/item/reagent_containers/food/snacks/grown/cherries = 3, + /obj/item/reagent_containers/food/drinks/drinkingglass = 1 + ) + result = /obj/item/reagent_containers/food/snacks/charrie_float + subcategory = CAT_ICE + +/datum/crafting_recipe/food/root_float + name = "Cola Float" + always_availible = FALSE + reqs = list( + /obj/item/reagent_containers/food/snacks/icecream = 1, + /obj/item/reagent_containers/food/snacks/grown/cherries = 1, + /datum/reagent/consumable/space_cola = 10, + /obj/item/reagent_containers/food/drinks/drinkingglass = 1 + ) + result = /obj/item/reagent_containers/food/snacks/cola_float + subcategory = CAT_ICE + +/datum/crafting_recipe/food/honkdae + name ="Honkdae" + reqs = list( + /datum/reagent/consumable/cream = 5, + /obj/item/clothing/mask/gas/clown_hat = 1, + /obj/item/reagent_containers/food/snacks/grown/cherries = 1, + /obj/item/reagent_containers/food/snacks/grown/banana = 2, + /obj/item/reagent_containers/food/snacks/icecream = 1 + ) + result = /obj/item/reagent_containers/food/snacks/honkdae + subcategory = CAT_ICE + /datum/crafting_recipe/food/icecreamsandwich name = "Icecream sandwich" reqs = list( @@ -14,7 +72,7 @@ subcategory = CAT_ICE /datum/crafting_recipe/food/spacefreezy - name ="Space freezy" + name ="Space Freezy" reqs = list( /datum/reagent/consumable/bluecherryjelly = 5, /datum/reagent/consumable/spacemountainwind = 15, @@ -34,105 +92,8 @@ result = /obj/item/reagent_containers/food/snacks/sundae subcategory = CAT_ICE -/datum/crafting_recipe/food/honkdae - name ="Honkdae" - reqs = list( - /datum/reagent/consumable/cream = 5, - /obj/item/clothing/mask/gas/clown_hat = 1, - /obj/item/reagent_containers/food/snacks/grown/cherries = 1, - /obj/item/reagent_containers/food/snacks/grown/banana = 2, - /obj/item/reagent_containers/food/snacks/icecream = 1 - ) - result = /obj/item/reagent_containers/food/snacks/honkdae - subcategory = CAT_ICE - -/datum/crafting_recipe/food/banana_split - name = "Banana Split" - always_availible = FALSE - reqs = list( - /obj/item/reagent_containers/food/snacks/icecream = 3, - /obj/item/reagent_containers/food/snacks/grown/banana = 1, - /obj/item/reagent_containers/food/snacks/grown/cherries = 1, - /obj/item/reagent_containers/food/snacks/chocolatebar = 1 - ) - result = /obj/item/reagent_containers/food/snacks/banana_split - subcategory = CAT_ICE - -/datum/crafting_recipe/food/root_float - name = "Cola Float" - always_availible = FALSE - reqs = list( - /obj/item/reagent_containers/food/snacks/icecream = 1, - /obj/item/reagent_containers/food/snacks/grown/cherries = 1, - /datum/reagent/consumable/space_cola = 10, - /obj/item/reagent_containers/food/drinks/drinkingglass = 1 - ) - result = /obj/item/reagent_containers/food/snacks/cola_float - subcategory = CAT_ICE - -/datum/crafting_recipe/food/charrie_float - name = "Cherry Shake" - always_availible = FALSE - reqs = list( - /obj/item/reagent_containers/food/snacks/icecream = 1, - /obj/item/reagent_containers/food/snacks/grown/cherries = 3, - /obj/item/reagent_containers/food/drinks/drinkingglass = 1 - ) - result = /obj/item/reagent_containers/food/snacks/charrie_float - subcategory = CAT_ICE - -/datum/crafting_recipe/food/bluecharrie_float - name = "Blue Cherry Shake" - always_availible = FALSE - reqs = list( - /obj/item/reagent_containers/food/snacks/icecream = 1, - /obj/item/reagent_containers/food/snacks/grown/bluecherries = 3, - /obj/item/reagent_containers/food/drinks/drinkingglass = 1 - ) - result = /obj/item/reagent_containers/food/snacks/bluecharrie_float - subcategory = CAT_ICE - //////////////////////////SNOW CONES/////////////////////// -/datum/crafting_recipe/food/flavorless_sc - name = "Flavorless snowcone" - reqs = list( - /obj/item/reagent_containers/food/drinks/sillycup = 1, - /datum/reagent/consumable/ice = 15 - ) - result = /obj/item/reagent_containers/food/snacks/snowcones - subcategory = CAT_ICE - -/datum/crafting_recipe/food/pineapple_sc - name = "Pineapple snowcone" - reqs = list( - /obj/item/reagent_containers/food/drinks/sillycup = 1, - /datum/reagent/consumable/ice = 15, - /obj/item/reagent_containers/food/snacks/pineappleslice = 2 - ) - result = /obj/item/reagent_containers/food/snacks/snowcones/pineapple - subcategory = CAT_ICE - -/datum/crafting_recipe/food/lime_sc - name = "Lime snowcone" - reqs = list( - /obj/item/reagent_containers/food/drinks/sillycup = 1, - /datum/reagent/consumable/ice = 15, - /datum/reagent/consumable/limejuice = 5 - ) - result = /obj/item/reagent_containers/food/snacks/snowcones/lime - subcategory = CAT_ICE - -/datum/crafting_recipe/food/lemon_sc - name = "Lemon snowcone" - reqs = list( - /obj/item/reagent_containers/food/drinks/sillycup = 1, - /datum/reagent/consumable/ice = 15, - /datum/reagent/consumable/lemonjuice = 5 - ) - result = /obj/item/reagent_containers/food/snacks/snowcones/lemon - subcategory = CAT_ICE - /datum/crafting_recipe/food/apple_sc name = "Apple snowcone" reqs = list( @@ -143,24 +104,14 @@ result = /obj/item/reagent_containers/food/snacks/snowcones/apple subcategory = CAT_ICE -/datum/crafting_recipe/food/grape_sc - name = "Grape snowcone" +/datum/crafting_recipe/food/berry_sc + name = "Berry snowcone" reqs = list( /obj/item/reagent_containers/food/drinks/sillycup = 1, /datum/reagent/consumable/ice = 15, - /datum/reagent/consumable/grapejuice = 5 + /datum/reagent/consumable/berryjuice = 5 ) - result = /obj/item/reagent_containers/food/snacks/snowcones/grape - subcategory = CAT_ICE - -/datum/crafting_recipe/food/orange_sc - name = "Orange snowcone" - reqs = list( - /obj/item/reagent_containers/food/drinks/sillycup = 1, - /datum/reagent/consumable/ice = 15, - /datum/reagent/consumable/orangejuice = 5 - ) - result = /obj/item/reagent_containers/food/snacks/snowcones/orange + result = /obj/item/reagent_containers/food/snacks/snowcones/berry subcategory = CAT_ICE /datum/crafting_recipe/food/blue_sc @@ -183,14 +134,13 @@ result = /obj/item/reagent_containers/food/snacks/snowcones/red subcategory = CAT_ICE -/datum/crafting_recipe/food/berry_sc - name = "Berry snowcone" +/datum/crafting_recipe/food/flavorless_sc + name = "Flavorless snowcone" reqs = list( /obj/item/reagent_containers/food/drinks/sillycup = 1, - /datum/reagent/consumable/ice = 15, - /datum/reagent/consumable/berryjuice = 5 + /datum/reagent/consumable/ice = 15 ) - result = /obj/item/reagent_containers/food/snacks/snowcones/berry + result = /obj/item/reagent_containers/food/snacks/snowcones subcategory = CAT_ICE /datum/crafting_recipe/food/fruitsalad_sc @@ -206,24 +156,84 @@ result = /obj/item/reagent_containers/food/snacks/snowcones/fruitsalad subcategory = CAT_ICE -/datum/crafting_recipe/food/mime_sc - name = "Mime snowcone" +/datum/crafting_recipe/food/grape_sc + name = "Grape snowcone" reqs = list( /obj/item/reagent_containers/food/drinks/sillycup = 1, /datum/reagent/consumable/ice = 15, - /datum/reagent/consumable/nothing = 5 + /datum/reagent/consumable/grapejuice = 5 ) - result = /obj/item/reagent_containers/food/snacks/snowcones/mime + result = /obj/item/reagent_containers/food/snacks/snowcones/grape subcategory = CAT_ICE -/datum/crafting_recipe/food/clown_sc - name = "Clown snowcone" +/datum/crafting_recipe/food/honey_sc + name = "Honey snowcone" reqs = list( /obj/item/reagent_containers/food/drinks/sillycup = 1, /datum/reagent/consumable/ice = 15, - /datum/reagent/consumable/laughter = 5 + /datum/reagent/consumable/honey = 5 ) - result = /obj/item/reagent_containers/food/snacks/snowcones/clown + result = /obj/item/reagent_containers/food/snacks/snowcones/honey + subcategory = CAT_ICE + +/datum/crafting_recipe/food/lemon_sc + name = "Lemon snowcone" + reqs = list( + /obj/item/reagent_containers/food/drinks/sillycup = 1, + /datum/reagent/consumable/ice = 15, + /datum/reagent/consumable/lemonjuice = 5 + ) + result = /obj/item/reagent_containers/food/snacks/snowcones/lemon + subcategory = CAT_ICE + +/datum/crafting_recipe/food/lime_sc + name = "Lime snowcone" + reqs = list( + /obj/item/reagent_containers/food/drinks/sillycup = 1, + /datum/reagent/consumable/ice = 15, + /datum/reagent/consumable/limejuice = 5 + ) + result = /obj/item/reagent_containers/food/snacks/snowcones/lime + subcategory = CAT_ICE + +/datum/crafting_recipe/food/orange_sc + name = "Orange snowcone" + reqs = list( + /obj/item/reagent_containers/food/drinks/sillycup = 1, + /datum/reagent/consumable/ice = 15, + /datum/reagent/consumable/orangejuice = 5 + ) + result = /obj/item/reagent_containers/food/snacks/snowcones/orange + subcategory = CAT_ICE + +/datum/crafting_recipe/food/pineapple_sc + name = "Pineapple snowcone" + reqs = list( + /obj/item/reagent_containers/food/drinks/sillycup = 1, + /datum/reagent/consumable/ice = 15, + /obj/item/reagent_containers/food/snacks/pineappleslice = 2 + ) + result = /obj/item/reagent_containers/food/snacks/snowcones/pineapple + subcategory = CAT_ICE + +/datum/crafting_recipe/food/pwrgame_sc + name = "Pwrgame snowcone" + reqs = list( + /obj/item/reagent_containers/food/drinks/sillycup = 1, + /datum/reagent/consumable/ice = 15, + /datum/reagent/consumable/pwr_game = 15 + ) + result = /obj/item/reagent_containers/food/snacks/snowcones/pwrgame + subcategory = CAT_ICE + +/datum/crafting_recipe/food/rainbow_sc + name = "Rainbow snowcone" + reqs = list( + /obj/item/reagent_containers/food/drinks/sillycup = 1, + /datum/reagent/consumable/ice = 15, + /datum/reagent/colorful_reagent = 1 //Harder to make + ) + result = /obj/item/reagent_containers/food/snacks/snowcones/rainbow subcategory = CAT_ICE /datum/crafting_recipe/food/soda_sc @@ -246,32 +256,24 @@ result = /obj/item/reagent_containers/food/snacks/snowcones/spacemountainwind subcategory = CAT_ICE -/datum/crafting_recipe/food/pwrgame_sc - name = "Pwrgame snowcone" +/////I don't like seperating the clown and mime./// + +/datum/crafting_recipe/food/mime_sc + name = "Mime snowcone" reqs = list( /obj/item/reagent_containers/food/drinks/sillycup = 1, /datum/reagent/consumable/ice = 15, - /datum/reagent/consumable/pwr_game = 15 + /datum/reagent/consumable/nothing = 5 ) - result = /obj/item/reagent_containers/food/snacks/snowcones/pwrgame + result = /obj/item/reagent_containers/food/snacks/snowcones/mime subcategory = CAT_ICE -/datum/crafting_recipe/food/honey_sc - name = "Honey snowcone" +/datum/crafting_recipe/food/clown_sc + name = "Clown snowcone" reqs = list( /obj/item/reagent_containers/food/drinks/sillycup = 1, /datum/reagent/consumable/ice = 15, - /datum/reagent/consumable/honey = 5 + /datum/reagent/consumable/laughter = 5 ) - result = /obj/item/reagent_containers/food/snacks/snowcones/honey - subcategory = CAT_ICE - -/datum/crafting_recipe/food/rainbow_sc - name = "Rainbow snowcone" - reqs = list( - /obj/item/reagent_containers/food/drinks/sillycup = 1, - /datum/reagent/consumable/ice = 15, - /datum/reagent/colorful_reagent = 1 //Harder to make - ) - result = /obj/item/reagent_containers/food/snacks/snowcones/rainbow - subcategory = CAT_ICE + result = /obj/item/reagent_containers/food/snacks/snowcones/clown + subcategory = CAT_ICE \ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm index d8145410cd..efb773159d 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm @@ -1,3 +1,5 @@ +// see code/module/crafting/table.dm + ////////////////////////////////////////////////KEBABS//////////////////////////////////////////////// /datum/crafting_recipe/food/humankebab @@ -36,6 +38,18 @@ result = /obj/item/reagent_containers/food/snacks/kebab/tail subcategory = CAT_MEAT +/datum/crafting_recipe/food/fiestaskewer + name = "Fiesta Skewer" + reqs = list( + /obj/item/stack/rods = 1, + /obj/item/reagent_containers/food/snacks/grown/chili = 1, + /obj/item/reagent_containers/food/snacks/meat/cutlet = 1, + /obj/item/reagent_containers/food/snacks/grown/corn = 1, + /obj/item/reagent_containers/food/snacks/grown/tomato = 1 + ) + result = /obj/item/reagent_containers/food/snacks/kebab/fiesta + subcategory = CAT_MEAT + // see code/module/crafting/table.dm ////////////////////////////////////////////////MR SPIDER//////////////////////////////////////////////// @@ -52,6 +66,36 @@ ////////////////////////////////////////////////MISC RECIPE's//////////////////////////////////////////////// +/datum/crafting_recipe/food/ribs + name = "BBQ Ribs" + reqs = list( + /datum/reagent/consumable/bbqsauce = 5, + /obj/item/reagent_containers/food/snacks/meat/steak/plain = 2, + /obj/item/stack/rods = 2 + ) + result = /obj/item/reagent_containers/food/snacks/bbqribs + subcategory = CAT_MEAT + +/datum/crafting_recipe/food/nugget + name = "Chicken nugget" + reqs = list( + /obj/item/reagent_containers/food/snacks/meat/cutlet = 1 + ) + result = /obj/item/reagent_containers/food/snacks/nugget + subcategory = CAT_MEAT + +/datum/crafting_recipe/food/corndog + name = "Corndog meal" + reqs = list( + /obj/item/stack/rods = 1, + /obj/item/reagent_containers/food/snacks/meat/cutlet = 1, + /obj/item/reagent_containers/food/snacks/bun = 1, + /datum/reagent/consumable/mustard = 5, + /datum/reagent/consumable/ketchup = 5 + ) + result = /obj/item/reagent_containers/food/snacks/corndog + subcategory = CAT_MEAT + /datum/crafting_recipe/food/cornedbeef name = "Corned beef" reqs = list( @@ -72,16 +116,6 @@ result = /obj/item/reagent_containers/food/snacks/bearsteak subcategory = CAT_MEAT -/datum/crafting_recipe/food/enchiladas - name = "Enchiladas" - reqs = list( - /obj/item/reagent_containers/food/snacks/meat/cutlet = 2, - /obj/item/reagent_containers/food/snacks/grown/chili = 2, - /obj/item/reagent_containers/food/snacks/tortilla = 2 - ) - result = /obj/item/reagent_containers/food/snacks/enchiladas - subcategory = CAT_MEAT - /datum/crafting_recipe/food/stewedsoymeat name = "Stewed soymeat" reqs = list( @@ -101,23 +135,6 @@ result = /obj/item/reagent_containers/food/snacks/sausage subcategory = CAT_MEAT -/datum/crafting_recipe/food/nugget - name = "Chicken nugget" - reqs = list( - /obj/item/reagent_containers/food/snacks/meat/cutlet = 1 - ) - result = /obj/item/reagent_containers/food/snacks/nugget - subcategory = CAT_MEAT - -/datum/crafting_recipe/food/rawkhinkali - name = "Raw Khinkali" - reqs = list( - /obj/item/reagent_containers/food/snacks/doughslice = 1, - /obj/item/reagent_containers/food/snacks/faggot = 1 - ) - result = /obj/item/reagent_containers/food/snacks/rawkhinkali - subcategory = CAT_MEAT - /datum/crafting_recipe/food/pigblanket name = "Pig in a Blanket" reqs = list( @@ -128,18 +145,6 @@ result = /obj/item/reagent_containers/food/snacks/pigblanket subcategory = CAT_MEAT -/datum/crafting_recipe/food/corndog - name = "Corndog meal" - reqs = list( - /obj/item/stack/rods = 1, - /obj/item/reagent_containers/food/snacks/meat/cutlet = 1, - /obj/item/reagent_containers/food/snacks/bun = 1, - /datum/reagent/consumable/mustard = 5, - /datum/reagent/consumable/ketchup = 5 - ) - result = /obj/item/reagent_containers/food/snacks/corndog - subcategory = CAT_MEAT - /datum/crafting_recipe/food/ratkebab name = "Rat Kebab" reqs = list( @@ -166,25 +171,3 @@ ) result = /obj/item/reagent_containers/food/snacks/salad/ricepork subcategory = CAT_MEAT - -/datum/crafting_recipe/food/fiestaskewer - name = "Fiesta Skewer" - reqs = list( - /obj/item/stack/rods = 1, - /obj/item/reagent_containers/food/snacks/grown/chili = 1, - /obj/item/reagent_containers/food/snacks/meat/cutlet = 1, - /obj/item/reagent_containers/food/snacks/grown/corn = 1, - /obj/item/reagent_containers/food/snacks/grown/tomato = 1 - ) - result = /obj/item/reagent_containers/food/snacks/kebab/fiesta - subcategory = CAT_MEAT - -/datum/crafting_recipe/food/ribs - name = "BBQ Ribs" - reqs = list( - /datum/reagent/consumable/bbqsauce = 5, - /obj/item/reagent_containers/food/snacks/meat/steak/plain = 2, - /obj/item/stack/rods = 2 - ) - result = /obj/item/reagent_containers/food/snacks/bbqribs - subcategory = CAT_MEAT \ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_mexican.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_mexican.dm new file mode 100644 index 0000000000..e155a1bd23 --- /dev/null +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_mexican.dm @@ -0,0 +1,111 @@ +// see code/module/crafting/table.dm + +////////////////////////////////////////////////"MEXICAN"//////////////////////////////////////////////// + +/datum/crafting_recipe/food/burrito + name ="Burrito" + reqs = list( + /obj/item/reagent_containers/food/snacks/tortilla = 1, + /obj/item/reagent_containers/food/snacks/grown/soybeans = 2 + ) + result = /obj/item/reagent_containers/food/snacks/burrito + subcategory = CAT_MEXICAN + +/datum/crafting_recipe/food/cheesyburrito + name ="Cheesy burrito" + reqs = list( + /obj/item/reagent_containers/food/snacks/tortilla = 1, + /obj/item/reagent_containers/food/snacks/cheesewedge = 2, + /obj/item/reagent_containers/food/snacks/grown/soybeans = 1 + ) + result = /obj/item/reagent_containers/food/snacks/cheesyburrito + subcategory = CAT_MEXICAN + +/datum/crafting_recipe/food/enchiladas + name = "Enchiladas" + reqs = list( + /obj/item/reagent_containers/food/snacks/meat/cutlet = 2, + /obj/item/reagent_containers/food/snacks/grown/chili = 2, + /obj/item/reagent_containers/food/snacks/tortilla = 2 + ) + result = /obj/item/reagent_containers/food/snacks/enchiladas + subcategory = CAT_MEXICAN + +/datum/crafting_recipe/food/carneburrito + name ="Carne de asada burrito" + reqs = list( + /obj/item/reagent_containers/food/snacks/tortilla = 1, + /obj/item/reagent_containers/food/snacks/meat/cutlet = 2, + /obj/item/reagent_containers/food/snacks/grown/soybeans = 1 + ) + result = /obj/item/reagent_containers/food/snacks/carneburrito + subcategory = CAT_MEXICAN + +/datum/crafting_recipe/food/fuegoburrito + name ="Fuego plasma burrito" + reqs = list( + /obj/item/reagent_containers/food/snacks/tortilla = 1, + /obj/item/reagent_containers/food/snacks/grown/ghost_chili = 2, + /obj/item/reagent_containers/food/snacks/grown/soybeans = 1 + ) + result = /obj/item/reagent_containers/food/snacks/fuegoburrito + subcategory = CAT_MEXICAN + +/datum/crafting_recipe/food/taco + name ="Classic Taco" + reqs = list( + /obj/item/reagent_containers/food/snacks/tortilla = 1, + /obj/item/reagent_containers/food/snacks/cheesewedge = 1, + /obj/item/reagent_containers/food/snacks/meat/cutlet = 1, + /obj/item/reagent_containers/food/snacks/grown/cabbage = 1, + ) + result = /obj/item/reagent_containers/food/snacks/taco + subcategory = CAT_MEXICAN + +/datum/crafting_recipe/food/tacoplain + name ="Plain Taco" + reqs = list( + /obj/item/reagent_containers/food/snacks/tortilla = 1, + /obj/item/reagent_containers/food/snacks/cheesewedge = 1, + /obj/item/reagent_containers/food/snacks/meat/cutlet = 1, + ) + result = /obj/item/reagent_containers/food/snacks/taco/plain + subcategory = CAT_MEXICAN + +/datum/crafting_recipe/food/nachos + name ="Nachos" + reqs = list( + /datum/reagent/consumable/sodiumchloride = 1, + /obj/item/reagent_containers/food/snacks/tortilla = 1 + ) + result = /obj/item/reagent_containers/food/snacks/nachos + subcategory = CAT_MEXICAN + +/datum/crafting_recipe/food/cheesynachos + name ="Cheesy nachos" + reqs = list( + /datum/reagent/consumable/sodiumchloride = 1, + /obj/item/reagent_containers/food/snacks/cheesewedge = 1, + /obj/item/reagent_containers/food/snacks/tortilla = 1 + ) + result = /obj/item/reagent_containers/food/snacks/cheesynachos + subcategory = CAT_MEXICAN + +/datum/crafting_recipe/food/cubannachos + name ="Cuban nachos" + reqs = list( + /datum/reagent/consumable/ketchup = 5, + /obj/item/reagent_containers/food/snacks/grown/chili = 2, + /obj/item/reagent_containers/food/snacks/tortilla = 1 + ) + result = /obj/item/reagent_containers/food/snacks/cubannachos + subcategory = CAT_MEXICAN + +/datum/crafting_recipe/food/wrap + name = "Wrap" + reqs = list(/datum/reagent/consumable/soysauce = 10, + /obj/item/reagent_containers/food/snacks/friedegg = 1, + /obj/item/reagent_containers/food/snacks/grown/cabbage = 1, + ) + result = /obj/item/reagent_containers/food/snacks/eggwrap + subcategory = CAT_MEXICAN \ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm index 9cf5ea31a0..6a622d6719 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm @@ -1,62 +1,77 @@ // see code/module/crafting/table.dm -// MISC +//////////////////Eastern Foods////////////////////// -/datum/crafting_recipe/food/candiedapple - name = "Candied apple" - reqs = list(/datum/reagent/water = 5, - /datum/reagent/consumable/sugar = 5, - /obj/item/reagent_containers/food/snacks/grown/apple = 1 - ) - result = /obj/item/reagent_containers/food/snacks/candiedapple - subcategory = CAT_MISCFOOD - -/datum/crafting_recipe/food/spiderlollipop - name = "Spider Lollipop" - reqs = list(/obj/item/stack/rods = 1, - /datum/reagent/consumable/sugar = 5, +/datum/crafting_recipe/food/chawanmushi + name = "Chawanmushi" + reqs = list( /datum/reagent/water = 5, - /obj/item/reagent_containers/food/snacks/spiderling = 1 + /datum/reagent/consumable/soysauce = 5, + /obj/item/reagent_containers/food/snacks/boiledegg = 2, + /obj/item/reagent_containers/food/snacks/grown/mushroom/chanterelle = 1 ) - result = /obj/item/reagent_containers/food/snacks/spiderlollipop + result = /obj/item/reagent_containers/food/snacks/chawanmushi subcategory = CAT_MISCFOOD -/datum/crafting_recipe/food/chococoin - name = "Choco coin" +/datum/crafting_recipe/food/khachapuri + name = "Khachapuri" reqs = list( - /obj/item/coin = 1, - /obj/item/reagent_containers/food/snacks/chocolatebar = 1, + /datum/reagent/consumable/eggyolk = 5, + /obj/item/reagent_containers/food/snacks/cheesewedge = 1, + /obj/item/reagent_containers/food/snacks/store/bread/plain = 1 ) - result = /obj/item/reagent_containers/food/snacks/chococoin + result = /obj/item/reagent_containers/food/snacks/khachapuri subcategory = CAT_MISCFOOD -/datum/crafting_recipe/food/fudgedice - name = "Fudge dice" +/datum/crafting_recipe/food/rawkhinkali + name = "Raw Khinkali" reqs = list( - /obj/item/dice = 1, - /obj/item/reagent_containers/food/snacks/chocolatebar = 1, + /obj/item/reagent_containers/food/snacks/doughslice = 1, + /obj/item/reagent_containers/food/snacks/faggot = 1 ) - result = /obj/item/reagent_containers/food/snacks/fudgedice + result = /obj/item/reagent_containers/food/snacks/rawkhinkali subcategory = CAT_MISCFOOD -/datum/crafting_recipe/food/chocoorange - name = "Choco orange" +/datum/crafting_recipe/food/meatbun + name = "Meat bun" reqs = list( - /obj/item/reagent_containers/food/snacks/grown/citrus/orange = 1, - /obj/item/reagent_containers/food/snacks/chocolatebar = 1, + /datum/reagent/consumable/soysauce = 5, + /obj/item/reagent_containers/food/snacks/bun = 1, + /obj/item/reagent_containers/food/snacks/faggot = 1, + /obj/item/reagent_containers/food/snacks/grown/cabbage = 1 ) - result = /obj/item/reagent_containers/food/snacks/chocoorange + result = /obj/item/reagent_containers/food/snacks/meatbun subcategory = CAT_MISCFOOD -/datum/crafting_recipe/food/loadedbakedpotato - name = "Loaded baked potato" +/////////////////////////////////MISC///////////////////////////////////// + +/datum/crafting_recipe/food/beans + name = "Beans" time = 40 - reqs = list( - /obj/item/reagent_containers/food/snacks/grown/potato = 1, - /obj/item/reagent_containers/food/snacks/cheesewedge = 1 + reqs = list(/datum/reagent/consumable/ketchup = 5, + /obj/item/reagent_containers/food/snacks/grown/soybeans = 2 ) - result = /obj/item/reagent_containers/food/snacks/loadedbakedpotato + result = /obj/item/reagent_containers/food/snacks/beans + subcategory = CAT_MISCFOOD + +/datum/crafting_recipe/food/branrequests + name = "Bran Requests Cereal" + reqs = list( + /obj/item/reagent_containers/food/snacks/grown/wheat = 1, + /obj/item/reagent_containers/food/snacks/no_raisin = 1, + ) + result = /obj/item/reagent_containers/food/snacks/branrequests + subcategory = CAT_MISCFOOD + +/datum/crafting_recipe/food/oatmeal + name = "Oatmeal" + reqs = list( + /datum/reagent/consumable/milk = 10, + /obj/item/reagent_containers/glass/bowl = 1, + /obj/item/reagent_containers/food/snacks/grown/oat = 1 + ) + result = /obj/item/reagent_containers/food/snacks/salad/oatmeal subcategory = CAT_MISCFOOD /datum/crafting_recipe/food/cheesyfries @@ -68,24 +83,6 @@ result = /obj/item/reagent_containers/food/snacks/cheesyfries subcategory = CAT_MISCFOOD -/datum/crafting_recipe/food/wrap - name = "Wrap" - reqs = list(/datum/reagent/consumable/soysauce = 10, - /obj/item/reagent_containers/food/snacks/friedegg = 1, - /obj/item/reagent_containers/food/snacks/grown/cabbage = 1, - ) - result = /obj/item/reagent_containers/food/snacks/eggwrap - subcategory = CAT_MISCFOOD - -/datum/crafting_recipe/food/beans - name = "Beans" - time = 40 - reqs = list(/datum/reagent/consumable/ketchup = 5, - /obj/item/reagent_containers/food/snacks/grown/soybeans = 2 - ) - result = /obj/item/reagent_containers/food/snacks/beans - subcategory = CAT_MISCFOOD - /datum/crafting_recipe/food/eggplantparm name ="Eggplant parmigiana" reqs = list( @@ -95,91 +92,14 @@ result = /obj/item/reagent_containers/food/snacks/eggplantparm subcategory = CAT_MISCFOOD -/datum/crafting_recipe/food/baguette - name = "Baguette" +/datum/crafting_recipe/food/loadedbakedpotato + name = "Loaded baked potato" time = 40 - reqs = list(/datum/reagent/consumable/sodiumchloride = 1, - /datum/reagent/consumable/blackpepper = 1, - /obj/item/reagent_containers/food/snacks/pastrybase = 2 - ) - result = /obj/item/reagent_containers/food/snacks/baguette - subcategory = CAT_MISCFOOD - -////////////////////////////////////////////////TOAST//////////////////////////////////////////////// - -/datum/crafting_recipe/food/slimetoast - name = "Slime toast" reqs = list( - /datum/reagent/toxin/slimejelly = 5, - /obj/item/reagent_containers/food/snacks/breadslice/plain = 1 + /obj/item/reagent_containers/food/snacks/grown/potato = 1, + /obj/item/reagent_containers/food/snacks/cheesewedge = 1 ) - result = /obj/item/reagent_containers/food/snacks/jelliedtoast/slime - subcategory = CAT_MISCFOOD - -/datum/crafting_recipe/food/jelliedtoast - name = "Jellied toast" - reqs = list( - /datum/reagent/consumable/cherryjelly = 5, - /obj/item/reagent_containers/food/snacks/breadslice/plain = 1 - ) - result = /obj/item/reagent_containers/food/snacks/jelliedtoast/cherry - subcategory = CAT_MISCFOOD - -/datum/crafting_recipe/food/peanutbuttertoast - name = "Peanut butter toast" - reqs = list( - /datum/reagent/consumable/peanut_butter = 5, - /obj/item/reagent_containers/food/snacks/breadslice/plain = 1 - ) - result = /obj/item/reagent_containers/food/snacks/peanut_buttertoast - subcategory = CAT_MISCFOOD - -/datum/crafting_recipe/food/twobread - name = "Two bread" - reqs = list( - /datum/reagent/consumable/ethanol/wine = 5, - /obj/item/reagent_containers/food/snacks/breadslice/plain = 2 - ) - result = /obj/item/reagent_containers/food/snacks/twobread - subcategory = CAT_MISCFOOD - -/datum/crafting_recipe/food/burrito - name ="Burrito" - reqs = list( - /obj/item/reagent_containers/food/snacks/tortilla = 1, - /obj/item/reagent_containers/food/snacks/grown/soybeans = 2 - ) - result = /obj/item/reagent_containers/food/snacks/burrito - subcategory = CAT_MISCFOOD - -/datum/crafting_recipe/food/cheesyburrito - name ="Cheesy burrito" - reqs = list( - /obj/item/reagent_containers/food/snacks/tortilla = 1, - /obj/item/reagent_containers/food/snacks/cheesewedge = 2, - /obj/item/reagent_containers/food/snacks/grown/soybeans = 1 - ) - result = /obj/item/reagent_containers/food/snacks/cheesyburrito - subcategory = CAT_MISCFOOD - -/datum/crafting_recipe/food/carneburrito - name ="Carne de asada burrito" - reqs = list( - /obj/item/reagent_containers/food/snacks/tortilla = 1, - /obj/item/reagent_containers/food/snacks/meat/cutlet = 2, - /obj/item/reagent_containers/food/snacks/grown/soybeans = 1 - ) - result = /obj/item/reagent_containers/food/snacks/carneburrito - subcategory = CAT_MISCFOOD - -/datum/crafting_recipe/food/fuegoburrito - name ="Fuego plasma burrito" - reqs = list( - /obj/item/reagent_containers/food/snacks/tortilla = 1, - /obj/item/reagent_containers/food/snacks/grown/ghost_chili = 2, - /obj/item/reagent_containers/food/snacks/grown/soybeans = 1 - ) - result = /obj/item/reagent_containers/food/snacks/fuegoburrito + result = /obj/item/reagent_containers/food/snacks/loadedbakedpotato subcategory = CAT_MISCFOOD /datum/crafting_recipe/food/melonfruitbowl @@ -195,35 +115,6 @@ result = /obj/item/reagent_containers/food/snacks/melonfruitbowl subcategory = CAT_MISCFOOD -/datum/crafting_recipe/food/nachos - name ="Nachos" - reqs = list( - /datum/reagent/consumable/sodiumchloride = 1, - /obj/item/reagent_containers/food/snacks/tortilla = 1 - ) - result = /obj/item/reagent_containers/food/snacks/nachos - subcategory = CAT_MISCFOOD - -/datum/crafting_recipe/food/cheesynachos - name ="Cheesy nachos" - reqs = list( - /datum/reagent/consumable/sodiumchloride = 1, - /obj/item/reagent_containers/food/snacks/cheesewedge = 1, - /obj/item/reagent_containers/food/snacks/tortilla = 1 - ) - result = /obj/item/reagent_containers/food/snacks/cheesynachos - subcategory = CAT_MISCFOOD - -/datum/crafting_recipe/food/cubannachos - name ="Cuban nachos" - reqs = list( - /datum/reagent/consumable/ketchup = 5, - /obj/item/reagent_containers/food/snacks/grown/chili = 2, - /obj/item/reagent_containers/food/snacks/tortilla = 1 - ) - result = /obj/item/reagent_containers/food/snacks/cubannachos - subcategory = CAT_MISCFOOD - /datum/crafting_recipe/food/melonkeg name ="Melon keg" reqs = list( @@ -235,16 +126,6 @@ result = /obj/item/reagent_containers/food/snacks/melonkeg subcategory = CAT_MISCFOOD -/datum/crafting_recipe/food/honeybar - name = "Honey nut bar" - reqs = list( - /obj/item/reagent_containers/food/snacks/grown/oat = 1, - /datum/reagent/consumable/honey = 5 - ) - result = /obj/item/reagent_containers/food/snacks/honeybar - subcategory = CAT_MISCFOOD - - /datum/crafting_recipe/food/stuffedlegion name = "Stuffed legion" time = 40 @@ -257,7 +138,6 @@ result = /obj/item/reagent_containers/food/snacks/stuffedlegion subcategory = CAT_MISCFOOD - /datum/crafting_recipe/lizardwine //not a subtype of /datum/crafting_recipe/food due to a bug where the resulting bottle would contain 100u of lizardwine and 100u of ethanol. name = "Lizard wine" time = 40 @@ -269,7 +149,6 @@ category = CAT_FOOD subcategory = CAT_MISCFOOD - /datum/crafting_recipe/food/powercrepe name = "Powercrepe" time = 40 @@ -283,36 +162,6 @@ result = /obj/item/reagent_containers/food/snacks/powercrepe subcategory = CAT_MISCFOOD -/datum/crafting_recipe/food/taco - name ="Classic Taco" - reqs = list( - /obj/item/reagent_containers/food/snacks/tortilla = 1, - /obj/item/reagent_containers/food/snacks/cheesewedge = 1, - /obj/item/reagent_containers/food/snacks/meat/cutlet = 1, - /obj/item/reagent_containers/food/snacks/grown/cabbage = 1, - ) - result = /obj/item/reagent_containers/food/snacks/taco - subcategory = CAT_MISCFOOD - -/datum/crafting_recipe/food/tacoplain - name ="Plain Taco" - reqs = list( - /obj/item/reagent_containers/food/snacks/tortilla = 1, - /obj/item/reagent_containers/food/snacks/cheesewedge = 1, - /obj/item/reagent_containers/food/snacks/meat/cutlet = 1, - ) - result = /obj/item/reagent_containers/food/snacks/taco/plain - subcategory = CAT_MISCFOOD - -/datum/crafting_recipe/food/branrequests - name = "Bran Requests Cereal" - reqs = list( - /obj/item/reagent_containers/food/snacks/grown/wheat = 1, - /obj/item/reagent_containers/food/snacks/no_raisin = 1, - ) - result = /obj/item/reagent_containers/food/snacks/branrequests - subcategory = CAT_MISCFOOD - /datum/crafting_recipe/food/ricepudding name = "Rice pudding" reqs = list( @@ -322,22 +171,3 @@ ) result = /obj/item/reagent_containers/food/snacks/salad/ricepudding subcategory = CAT_MISCFOOD - -/datum/crafting_recipe/food/riceball - name = "Onigiri" - reqs = list( - /datum/reagent/consumable/soysauce = 1, - /obj/item/reagent_containers/food/snacks/grown/kudzupod = 1, - /obj/item/reagent_containers/food/snacks/salad/boiledrice = 1 - ) - result = /obj/item/reagent_containers/food/snacks/riceball - subcategory = CAT_MISCFOOD - -/datum/crafting_recipe/food/chocolatestrawberry - name = "Chocolate Strawberry" - reqs = list( - /obj/item/reagent_containers/food/snacks/chocolatebar = 1, - /obj/item/reagent_containers/food/snacks/grown/strawberry = 1 - ) - result = /obj/item/reagent_containers/food/snacks/chocolatestrawberry - subcategory = CAT_MISCFOOD \ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm index b545702e3e..8a393476a2 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm @@ -1,259 +1,108 @@ // see code/module/crafting/table.dm -////////////////////////////////////////////////DONUTS//////////////////////////////////////////////// +////////////////////////////////////////////////MUFFINS//////////////////////////////////////////////// -/datum/crafting_recipe/food/donut +/datum/crafting_recipe/food/muffin time = 15 - name = "Donut" + name = "Muffin" reqs = list( - /datum/reagent/consumable/sugar = 1, + /datum/reagent/consumable/milk = 5, /obj/item/reagent_containers/food/snacks/pastrybase = 1 ) - result = /obj/item/reagent_containers/food/snacks/donut/plain + result = /obj/item/reagent_containers/food/snacks/muffin subcategory = CAT_PASTRY -/datum/crafting_recipe/food/donut/chaos - name = "Chaos donut" +/datum/crafting_recipe/food/berrymuffin + name = "Berry muffin" reqs = list( - /datum/reagent/consumable/frostoil = 5, - /datum/reagent/consumable/capsaicin = 5, - /obj/item/reagent_containers/food/snacks/pastrybase = 1 + /datum/reagent/consumable/milk = 5, + /obj/item/reagent_containers/food/snacks/pastrybase = 1, + /obj/item/reagent_containers/food/snacks/grown/berries = 1 ) - result = /obj/item/reagent_containers/food/snacks/donut/chaos - -datum/crafting_recipe/food/donut/meat - time = 15 - name = "Meat donut" - reqs = list( - /obj/item/reagent_containers/food/snacks/meat/slab = 1, - /obj/item/reagent_containers/food/snacks/pastrybase = 1 - ) - result = /obj/item/reagent_containers/food/snacks/donut/meat - -/datum/crafting_recipe/food/donut/jelly - name = "Jelly donut" - reqs = list( - /datum/reagent/consumable/berryjuice = 5, - /obj/item/reagent_containers/food/snacks/pastrybase = 1 - ) - result = /obj/item/reagent_containers/food/snacks/donut/jelly/plain - -/datum/crafting_recipe/food/donut/slimejelly - name = "Slime jelly donut" - reqs = list( - /datum/reagent/toxin/slimejelly = 5, - /obj/item/reagent_containers/food/snacks/pastrybase = 1 - ) - result = /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain - -/datum/crafting_recipe/food/donut/glaze - time = 15 - name = "glaze donut" - reqs = list( - /datum/reagent/consumable/sugar = 10, - /obj/item/reagent_containers/food/snacks/pastrybase = 1 - ) - result = /obj/item/reagent_containers/food/snacks/donut/glaze + result = /obj/item/reagent_containers/food/snacks/muffin/berry subcategory = CAT_PASTRY -/datum/crafting_recipe/food/donut/berry - name = "Berry Donut" +/datum/crafting_recipe/food/booberrymuffin + name = "Booberry muffin" reqs = list( - /datum/reagent/consumable/berryjuice = 3, - /obj/item/reagent_containers/food/snacks/donut/plain = 1 + /datum/reagent/consumable/milk = 5, + /obj/item/reagent_containers/food/snacks/pastrybase = 1, + /obj/item/reagent_containers/food/snacks/grown/berries = 1, + /obj/item/ectoplasm = 1 ) - result = /obj/item/reagent_containers/food/snacks/donut/berry + result = /obj/item/reagent_containers/food/snacks/muffin/booberry + subcategory = CAT_PASTRY -/datum/crafting_recipe/food/donut/trumpet - name = "Spaceman's Donut" +/datum/crafting_recipe/food/poppymuffin + name = "Poppy muffin" reqs = list( - /datum/reagent/medicine/polypyr = 3, - /obj/item/reagent_containers/food/snacks/donut/plain = 1 + /datum/reagent/consumable/milk = 5, + /obj/item/reagent_containers/food/snacks/pastrybase = 1, + /obj/item/reagent_containers/food/snacks/grown/citrus/lemon = 1, + /obj/item/seeds/poppy = 1 ) + result = /obj/item/reagent_containers/food/snacks/muffin/poppy + subcategory = CAT_PASTRY - result = /obj/item/reagent_containers/food/snacks/donut/trumpet +////////////////////////////////////////////CUPCAKES//////////////////////////////////////////// -/datum/crafting_recipe/food/donut/apple - name = "Apple Donut" +/datum/crafting_recipe/food/cherrycupcake + name = "Cherry cupcake" reqs = list( - /datum/reagent/consumable/applejuice = 3, - /obj/item/reagent_containers/food/snacks/donut/plain = 1 + /obj/item/reagent_containers/food/snacks/pastrybase = 1, + /obj/item/reagent_containers/food/snacks/grown/cherries = 1 ) - result = /obj/item/reagent_containers/food/snacks/donut/apple + result = /obj/item/reagent_containers/food/snacks/cherrycupcake + subcategory = CAT_PASTRY -/datum/crafting_recipe/food/donut/caramel - name = "Caramel Donut" +/datum/crafting_recipe/food/bluecherrycupcake + name = "Blue cherry cupcake" reqs = list( - /datum/reagent/consumable/caramel = 3, - /obj/item/reagent_containers/food/snacks/donut/plain = 1 + /obj/item/reagent_containers/food/snacks/pastrybase = 1, + /obj/item/reagent_containers/food/snacks/grown/bluecherries = 1 ) - result = /obj/item/reagent_containers/food/snacks/donut/caramel + result = /obj/item/reagent_containers/food/snacks/bluecherrycupcake + subcategory = CAT_PASTRY -/datum/crafting_recipe/food/donut/choco - name = "Chocolate Donut" +/datum/crafting_recipe/food/strawberrycupcake + name = "Strawberry cherry cupcake" reqs = list( - /obj/item/reagent_containers/food/snacks/chocolatebar = 1, - /obj/item/reagent_containers/food/snacks/donut/plain = 1 + /obj/item/reagent_containers/food/snacks/pastrybase = 1, + /obj/item/reagent_containers/food/snacks/grown/strawberry = 1 ) - result = /obj/item/reagent_containers/food/snacks/donut/choco + result = /obj/item/reagent_containers/food/snacks/strawberrycupcake + subcategory = CAT_PASTRY -/datum/crafting_recipe/food/donut/blumpkin - name = "Blumpkin Donut" +////////////////////////////////////////////COOKIES//////////////////////////////////////////// + +/datum/crafting_recipe/food/raisincookie + name = "Raisin cookie" reqs = list( - /datum/reagent/consumable/blumpkinjuice = 3, - /obj/item/reagent_containers/food/snacks/donut/plain = 1 + /obj/item/reagent_containers/food/snacks/no_raisin = 1, + /obj/item/reagent_containers/food/snacks/pastrybase = 1, + /obj/item/reagent_containers/food/snacks/grown/oat = 1 ) - result = /obj/item/reagent_containers/food/snacks/donut/blumpkin + result = /obj/item/reagent_containers/food/snacks/raisincookie + subcategory = CAT_PASTRY -/datum/crafting_recipe/food/donut/bungo - name = "Bungo Donut" +/datum/crafting_recipe/food/oatmealcookie + name = "Oatmeal cookie" reqs = list( - /datum/reagent/consumable/bungojuice = 3, - /obj/item/reagent_containers/food/snacks/donut/plain = 1 + /obj/item/reagent_containers/food/snacks/pastrybase = 1, + /obj/item/reagent_containers/food/snacks/grown/oat = 1 ) - result = /obj/item/reagent_containers/food/snacks/donut/bungo + result = /obj/item/reagent_containers/food/snacks/oatmealcookie + subcategory = CAT_PASTRY -/datum/crafting_recipe/food/donut/matcha - name = "Matcha Donut" +/datum/crafting_recipe/food/sugarcookie + time = 15 + name = "Sugar cookie" reqs = list( - /datum/reagent/toxin/teapowder = 3, - /obj/item/reagent_containers/food/snacks/donut/plain = 1 + /datum/reagent/consumable/sugar = 5, + /obj/item/reagent_containers/food/snacks/pastrybase = 1 ) - result = /obj/item/reagent_containers/food/snacks/donut/matcha - -////////////////////////////////////////////////////JELLY DONUTS/////////////////////////////////////////////////////// - -/datum/crafting_recipe/food/donut/jelly/berry - name = "Berry Jelly Donut" - reqs = list( - /datum/reagent/consumable/berryjuice = 3, - /obj/item/reagent_containers/food/snacks/donut/jelly/plain = 1 - ) - result = /obj/item/reagent_containers/food/snacks/donut/jelly/berry - -/datum/crafting_recipe/food/donut/jelly/trumpet - name = "Spaceman's Jelly Donut" - reqs = list( - /datum/reagent/medicine/polypyr = 3, - /obj/item/reagent_containers/food/snacks/donut/jelly/plain = 1 - ) - - result = /obj/item/reagent_containers/food/snacks/donut/jelly/trumpet - -/datum/crafting_recipe/food/donut/jelly/apple - name = "Apple Jelly Donut" - reqs = list( - /datum/reagent/consumable/applejuice = 3, - /obj/item/reagent_containers/food/snacks/donut/jelly/plain = 1 - ) - result = /obj/item/reagent_containers/food/snacks/donut/jelly/apple - -/datum/crafting_recipe/food/donut/jelly/caramel - name = "Caramel Jelly Donut" - reqs = list( - /datum/reagent/consumable/caramel = 3, - /obj/item/reagent_containers/food/snacks/donut/jelly/plain = 1 - ) - result = /obj/item/reagent_containers/food/snacks/donut/jelly/caramel - -/datum/crafting_recipe/food/donut/jelly/choco - name = "Chocolate Jelly Donut" - reqs = list( - /obj/item/reagent_containers/food/snacks/chocolatebar = 1, - /obj/item/reagent_containers/food/snacks/donut/jelly/plain = 1 - ) - result = /obj/item/reagent_containers/food/snacks/donut/jelly/choco - -/datum/crafting_recipe/food/donut/jelly/blumpkin - name = "Blumpkin Jelly Donut" - reqs = list( - /datum/reagent/consumable/blumpkinjuice = 3, - /obj/item/reagent_containers/food/snacks/donut/jelly/plain = 1 - ) - result = /obj/item/reagent_containers/food/snacks/donut/jelly/blumpkin - -/datum/crafting_recipe/food/donut/jelly/bungo - name = "Bungo Jelly Donut" - reqs = list( - /datum/reagent/consumable/bungojuice = 3, - /obj/item/reagent_containers/food/snacks/donut/jelly/plain = 1 - ) - result = /obj/item/reagent_containers/food/snacks/donut/jelly/bungo - -/datum/crafting_recipe/food/donut/jelly/matcha - name = "Matcha Jelly Donut" - reqs = list( - /datum/reagent/toxin/teapowder = 3, - /obj/item/reagent_containers/food/snacks/donut/jelly/plain = 1 - ) - result = /obj/item/reagent_containers/food/snacks/donut/jelly/matcha - -////////////////////////////////////////////////////SLIME DONUTS/////////////////////////////////////////////////////// - -/datum/crafting_recipe/food/donut/slimejelly/berry - name = "Berry Slime Donut" - reqs = list( - /datum/reagent/consumable/berryjuice = 3, - /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1 - ) - result = /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/berry - -/datum/crafting_recipe/food/donut/slimejelly/trumpet - name = "Spaceman's Slime Donut" - reqs = list( - /datum/reagent/medicine/polypyr = 3, - /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1 - ) - - result = /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/trumpet - -/datum/crafting_recipe/food/donut/slimejelly/apple - name = "Apple Slime Donut" - reqs = list( - /datum/reagent/consumable/applejuice = 3, - /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1 - ) - result = /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/apple - -/datum/crafting_recipe/food/donut/slimejelly/caramel - name = "Caramel Slime Donut" - reqs = list( - /datum/reagent/consumable/caramel = 3, - /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1 - ) - result = /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/caramel - -/datum/crafting_recipe/food/donut/slimejelly/choco - name = "Chocolate Slime Donut" - reqs = list( - /obj/item/reagent_containers/food/snacks/chocolatebar = 1, - /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1 - ) - result = /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/choco - -/datum/crafting_recipe/food/donut/slimejelly/blumpkin - name = "Blumpkin Slime Donut" - reqs = list( - /datum/reagent/consumable/blumpkinjuice = 3, - /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1 - ) - result = /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/blumpkin - -/datum/crafting_recipe/food/donut/slimejelly/bungo - name = "Bungo Slime Donut" - reqs = list( - /datum/reagent/consumable/bungojuice = 3, - /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1 - ) - result = /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/bungo - -/datum/crafting_recipe/food/donut/slimejelly/matcha - name = "Matcha Slime Donut" - reqs = list( - /datum/reagent/toxin/teapowder = 3, - /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1 - ) - result = /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/matcha + result = /obj/item/reagent_containers/food/snacks/sugarcookie + subcategory = CAT_PASTRY ////////////////////////////////////////////////WAFFLES AND PANCAKES//////////////////////////////////////////////// @@ -321,7 +170,6 @@ datum/crafting_recipe/food/donut/meat result = /obj/item/reagent_containers/food/snacks/pancakes/chocolatechip subcategory = CAT_PASTRY - ////////////////////////////////////////////////DONKPOCCKETS//////////////////////////////////////////////// /datum/crafting_recipe/food/donkpocket @@ -344,81 +192,26 @@ datum/crafting_recipe/food/donut/meat result = /obj/item/reagent_containers/food/snacks/dankpocket subcategory = CAT_PASTRY -////////////////////////////////////////////////MUFFINS//////////////////////////////////////////////// - -/datum/crafting_recipe/food/muffin - time = 15 - name = "Muffin" - reqs = list( - /datum/reagent/consumable/milk = 5, - /obj/item/reagent_containers/food/snacks/pastrybase = 1 - ) - result = /obj/item/reagent_containers/food/snacks/muffin - subcategory = CAT_PASTRY - -/datum/crafting_recipe/food/berrymuffin - name = "Berry muffin" - reqs = list( - /datum/reagent/consumable/milk = 5, - /obj/item/reagent_containers/food/snacks/pastrybase = 1, - /obj/item/reagent_containers/food/snacks/grown/berries = 1 - ) - result = /obj/item/reagent_containers/food/snacks/muffin/berry - subcategory = CAT_PASTRY - -/datum/crafting_recipe/food/booberrymuffin - name = "Booberry muffin" - reqs = list( - /datum/reagent/consumable/milk = 5, - /obj/item/reagent_containers/food/snacks/pastrybase = 1, - /obj/item/reagent_containers/food/snacks/grown/berries = 1, - /obj/item/ectoplasm = 1 - ) - result = /obj/item/reagent_containers/food/snacks/muffin/booberry - subcategory = CAT_PASTRY - -/datum/crafting_recipe/food/chawanmushi - name = "Chawanmushi" - reqs = list( - /datum/reagent/water = 5, - /datum/reagent/consumable/soysauce = 5, - /obj/item/reagent_containers/food/snacks/boiledegg = 2, - /obj/item/reagent_containers/food/snacks/grown/mushroom/chanterelle = 1 - ) - result = /obj/item/reagent_containers/food/snacks/chawanmushi - subcategory = CAT_PASTRY - ////////////////////////////////////////////OTHER//////////////////////////////////////////// -/datum/crafting_recipe/food/meatbun - name = "Meat bun" +/datum/crafting_recipe/food/chococornet + name = "Choco cornet" reqs = list( - /datum/reagent/consumable/soysauce = 5, - /obj/item/reagent_containers/food/snacks/bun = 1, - /obj/item/reagent_containers/food/snacks/faggot = 1, - /obj/item/reagent_containers/food/snacks/grown/cabbage = 1 + /datum/reagent/consumable/sodiumchloride = 1, + /obj/item/reagent_containers/food/snacks/pastrybase = 1, + /obj/item/reagent_containers/food/snacks/chocolatebar = 1 ) - result = /obj/item/reagent_containers/food/snacks/meatbun + result = /obj/item/reagent_containers/food/snacks/chococornet subcategory = CAT_PASTRY -/datum/crafting_recipe/food/khachapuri - name = "Khachapuri" - reqs = list( - /datum/reagent/consumable/eggyolk = 5, - /obj/item/reagent_containers/food/snacks/cheesewedge = 1, - /obj/item/reagent_containers/food/snacks/store/bread/plain = 1 - ) - result = /obj/item/reagent_containers/food/snacks/khachapuri - subcategory = CAT_PASTRY - -/datum/crafting_recipe/food/sugarcookie +/datum/crafting_recipe/food/cracker time = 15 - name = "Sugar cookie" + name = "Cracker" reqs = list( - /datum/reagent/consumable/sugar = 5, - /obj/item/reagent_containers/food/snacks/pastrybase = 1 + /datum/reagent/consumable/sodiumchloride = 1, + /obj/item/reagent_containers/food/snacks/pastrybase = 1, ) - result = /obj/item/reagent_containers/food/snacks/sugarcookie + result = /obj/item/reagent_containers/food/snacks/cracker subcategory = CAT_PASTRY /datum/crafting_recipe/food/fortunecookie @@ -434,6 +227,34 @@ datum/crafting_recipe/food/donut/meat result = /obj/item/reagent_containers/food/snacks/fortunecookie subcategory = CAT_PASTRY +/datum/crafting_recipe/food/honeybun + name = "Honey bun" + reqs = list( + /obj/item/reagent_containers/food/snacks/pastrybase = 1, + /datum/reagent/consumable/honey = 5 + ) + result = /obj/item/reagent_containers/food/snacks/honeybun + subcategory = CAT_PASTRY + +/datum/crafting_recipe/food/hotcrossbun + name = "Hot-Cross Bun" + reqs = list( + /obj/item/reagent_containers/food/snacks/store/bread/plain = 1, + /datum/reagent/consumable/sugar = 1 + ) + result = /obj/item/reagent_containers/food/snacks/hotcrossbun + subcategory = CAT_PASTRY + +/datum/crafting_recipe/food/mammi + name = "Mammi" + reqs = list( + /obj/item/reagent_containers/food/snacks/store/bread/plain = 1, + /obj/item/reagent_containers/food/snacks/chocolatebar = 1, + /datum/reagent/consumable/milk = 5 + ) + result = /obj/item/reagent_containers/food/snacks/soup/mammi + subcategory = CAT_PASTRY + /datum/crafting_recipe/food/poppypretzel time = 15 name = "Poppy pretzel" @@ -454,78 +275,3 @@ datum/crafting_recipe/food/donut/meat result = /obj/item/reagent_containers/food/snacks/plumphelmetbiscuit subcategory = CAT_PASTRY -/datum/crafting_recipe/food/cracker - time = 15 - name = "Cracker" - reqs = list( - /datum/reagent/consumable/sodiumchloride = 1, - /obj/item/reagent_containers/food/snacks/pastrybase = 1, - ) - result = /obj/item/reagent_containers/food/snacks/cracker - subcategory = CAT_PASTRY - -/datum/crafting_recipe/food/chococornet - name = "Choco cornet" - reqs = list( - /datum/reagent/consumable/sodiumchloride = 1, - /obj/item/reagent_containers/food/snacks/pastrybase = 1, - /obj/item/reagent_containers/food/snacks/chocolatebar = 1 - ) - result = /obj/item/reagent_containers/food/snacks/chococornet - subcategory = CAT_PASTRY - -/datum/crafting_recipe/food/oatmealcookie - name = "Oatmeal cookie" - reqs = list( - /obj/item/reagent_containers/food/snacks/pastrybase = 1, - /obj/item/reagent_containers/food/snacks/grown/oat = 1 - ) - result = /obj/item/reagent_containers/food/snacks/oatmealcookie - subcategory = CAT_PASTRY - - -/datum/crafting_recipe/food/raisincookie - name = "Raisin cookie" - reqs = list( - /obj/item/reagent_containers/food/snacks/no_raisin = 1, - /obj/item/reagent_containers/food/snacks/pastrybase = 1, - /obj/item/reagent_containers/food/snacks/grown/oat = 1 - ) - result = /obj/item/reagent_containers/food/snacks/raisincookie - subcategory = CAT_PASTRY - -/datum/crafting_recipe/food/cherrycupcake - name = "Cherry cupcake" - reqs = list( - /obj/item/reagent_containers/food/snacks/pastrybase = 1, - /obj/item/reagent_containers/food/snacks/grown/cherries = 1 - ) - result = /obj/item/reagent_containers/food/snacks/cherrycupcake - subcategory = CAT_PASTRY - -/datum/crafting_recipe/food/bluecherrycupcake - name = "Blue cherry cupcake" - reqs = list( - /obj/item/reagent_containers/food/snacks/pastrybase = 1, - /obj/item/reagent_containers/food/snacks/grown/bluecherries = 1 - ) - result = /obj/item/reagent_containers/food/snacks/bluecherrycupcake - subcategory = CAT_PASTRY - -/datum/crafting_recipe/food/strawberrycupcake - name = "Strawberry cherry cupcake" - reqs = list( - /obj/item/reagent_containers/food/snacks/pastrybase = 1, - /obj/item/reagent_containers/food/snacks/grown/strawberry = 1 - ) - result = /obj/item/reagent_containers/food/snacks/strawberrycupcake - subcategory = CAT_PASTRY - -/datum/crafting_recipe/food/honeybun - name = "Honey bun" - reqs = list( - /obj/item/reagent_containers/food/snacks/pastrybase = 1, - /datum/reagent/consumable/honey = 5 - ) - result = /obj/item/reagent_containers/food/snacks/honeybun - subcategory = CAT_PASTRY \ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pies_sweets.dm similarity index 74% rename from code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm rename to code/modules/food_and_drinks/recipes/tablecraft/recipes_pies_sweets.dm index b5bed4d5fc..52becf81df 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pies_sweets.dm @@ -1,7 +1,16 @@ // see code/module/crafting/table.dm -////////////////////////////////////////////////PIES//////////////////////////////////////////////// +//////////////////////////////////FRUITS///////////////////////////////////////// + +/datum/crafting_recipe/food/applepie + name = "Apple pie" + reqs = list( + /obj/item/reagent_containers/food/snacks/pie/plain = 1, + /obj/item/reagent_containers/food/snacks/grown/apple = 1 + ) + result = /obj/item/reagent_containers/food/snacks/pie/applepie + subcategory = CAT_PIE /datum/crafting_recipe/food/bananacreampie name = "Banana cream pie" @@ -13,33 +22,13 @@ result = /obj/item/reagent_containers/food/snacks/pie/cream subcategory = CAT_PIE -/datum/crafting_recipe/food/meatpie - name = "Meat pie" - reqs = list( - /datum/reagent/consumable/blackpepper = 1, - /datum/reagent/consumable/sodiumchloride = 1, - /obj/item/reagent_containers/food/snacks/pie/plain = 1, - /obj/item/reagent_containers/food/snacks/meat/steak/plain = 1 - ) - result = /obj/item/reagent_containers/food/snacks/pie/meatpie - subcategory = CAT_PIE - -/datum/crafting_recipe/food/tofupie - name = "Tofu pie" +/datum/crafting_recipe/food/berryclafoutis + name = "Berry clafoutis" reqs = list( /obj/item/reagent_containers/food/snacks/pie/plain = 1, - /obj/item/reagent_containers/food/snacks/tofu = 1 + /obj/item/reagent_containers/food/snacks/grown/berries = 1 ) - result = /obj/item/reagent_containers/food/snacks/pie/tofupie - subcategory = CAT_PIE - -/datum/crafting_recipe/food/xenopie - name = "Xeno pie" - reqs = list( - /obj/item/reagent_containers/food/snacks/pie/plain = 1, - /obj/item/reagent_containers/food/snacks/meat/cutlet/xeno = 1 - ) - result = /obj/item/reagent_containers/food/snacks/pie/xemeatpie + result = /obj/item/reagent_containers/food/snacks/pie/berryclafoutis subcategory = CAT_PIE /datum/crafting_recipe/food/cherrypie @@ -51,13 +40,53 @@ result = /obj/item/reagent_containers/food/snacks/pie/cherrypie subcategory = CAT_PIE -/datum/crafting_recipe/food/berryclafoutis - name = "Berry clafoutis" +/datum/crafting_recipe/food/frostypie + name = "Frosty pie" reqs = list( /obj/item/reagent_containers/food/snacks/pie/plain = 1, - /obj/item/reagent_containers/food/snacks/grown/berries = 1 + /obj/item/reagent_containers/food/snacks/grown/bluecherries = 1 ) - result = /obj/item/reagent_containers/food/snacks/pie/berryclafoutis + result = /obj/item/reagent_containers/food/snacks/pie/frostypie + subcategory = CAT_PIE + +/datum/crafting_recipe/food/grapetart + name = "Grape tart" + reqs = list( + /datum/reagent/consumable/milk = 5, + /datum/reagent/consumable/sugar = 5, + /obj/item/reagent_containers/food/snacks/pie/plain = 1, + /obj/item/reagent_containers/food/snacks/grown/grapes = 3 + ) + result = /obj/item/reagent_containers/food/snacks/pie/grapetart + subcategory = CAT_PIE + +/datum/crafting_recipe/food/peachpie + name = "Peach Pie" + reqs = list( + /obj/item/reagent_containers/food/snacks/pie/plain = 1, + /obj/item/reagent_containers/food/snacks/grown/peach = 3 + ) + result = /obj/item/reagent_containers/food/snacks/pie/peachpie + subcategory = CAT_PIE + +/datum/crafting_recipe/food/strawberrypie + name = "Strawberry pie" + reqs = list( + /obj/item/reagent_containers/food/snacks/pie/plain = 1, + /obj/item/reagent_containers/food/snacks/grown/strawberry = 1 + ) + result = /obj/item/reagent_containers/food/snacks/pie/strawberrypie + subcategory = CAT_PIE + +//////////OTHER PIES///////// + +/datum/crafting_recipe/food/amanitapie + name = "Amanita pie" + reqs = list( + /obj/item/reagent_containers/food/snacks/pie/plain = 1, + /obj/item/reagent_containers/food/snacks/grown/mushroom/amanita = 1 + ) + result = /obj/item/reagent_containers/food/snacks/pie/amanita_pie subcategory = CAT_PIE /datum/crafting_recipe/food/bearypie @@ -70,64 +99,14 @@ result = /obj/item/reagent_containers/food/snacks/pie/bearypie subcategory = CAT_PIE -/datum/crafting_recipe/food/amanitapie - name = "Amanita pie" +/datum/crafting_recipe/food/baklava + name = "Baklava pie" reqs = list( - /obj/item/reagent_containers/food/snacks/pie/plain = 1, - /obj/item/reagent_containers/food/snacks/grown/mushroom/amanita = 1 + /obj/item/reagent_containers/food/snacks/butter = 1, + /obj/item/reagent_containers/food/snacks/tortilla = 4, //Layers + /obj/item/seeds/wheat/oat = 3 ) - result = /obj/item/reagent_containers/food/snacks/pie/amanita_pie - subcategory = CAT_PIE - -/datum/crafting_recipe/food/plumppie - name = "Plump pie" - reqs = list( - /obj/item/reagent_containers/food/snacks/pie/plain = 1, - /obj/item/reagent_containers/food/snacks/grown/mushroom/plumphelmet = 1 - ) - result = /obj/item/reagent_containers/food/snacks/pie/plump_pie - subcategory = CAT_PIE - -/datum/crafting_recipe/food/applepie - name = "Apple pie" - reqs = list( - /obj/item/reagent_containers/food/snacks/pie/plain = 1, - /obj/item/reagent_containers/food/snacks/grown/apple = 1 - ) - result = /obj/item/reagent_containers/food/snacks/pie/applepie - subcategory = CAT_PIE - -/datum/crafting_recipe/food/pumpkinpie - name = "Pumpkin pie" - reqs = list( - /datum/reagent/consumable/milk = 5, - /datum/reagent/consumable/sugar = 5, - /obj/item/reagent_containers/food/snacks/pie/plain = 1, - /obj/item/reagent_containers/food/snacks/grown/pumpkin = 1 - ) - result = /obj/item/reagent_containers/food/snacks/pie/pumpkinpie - subcategory = CAT_PIE - -/datum/crafting_recipe/food/goldenappletart - name = "Golden apple tart" - reqs = list( - /datum/reagent/consumable/milk = 5, - /datum/reagent/consumable/sugar = 5, - /obj/item/reagent_containers/food/snacks/pie/plain = 1, - /obj/item/reagent_containers/food/snacks/grown/apple/gold = 1 - ) - result = /obj/item/reagent_containers/food/snacks/pie/appletart - subcategory = CAT_PIE - -/datum/crafting_recipe/food/grapetart - name = "Grape tart" - reqs = list( - /datum/reagent/consumable/milk = 5, - /datum/reagent/consumable/sugar = 5, - /obj/item/reagent_containers/food/snacks/pie/plain = 1, - /obj/item/reagent_containers/food/snacks/grown/grapes = 3 - ) - result = /obj/item/reagent_containers/food/snacks/pie/grapetart + result = /obj/item/reagent_containers/food/snacks/pie/baklava subcategory = CAT_PIE /datum/crafting_recipe/food/blumpkinpie @@ -151,32 +130,66 @@ result = /obj/item/reagent_containers/food/snacks/pie/dulcedebatata subcategory = CAT_PIE -/datum/crafting_recipe/food/frostypie - name = "Frosty pie" +/datum/crafting_recipe/food/meatpie + name = "Meat pie" reqs = list( + /datum/reagent/consumable/blackpepper = 1, + /datum/reagent/consumable/sodiumchloride = 1, /obj/item/reagent_containers/food/snacks/pie/plain = 1, - /obj/item/reagent_containers/food/snacks/grown/bluecherries = 1 + /obj/item/reagent_containers/food/snacks/meat/steak/plain = 1 ) - result = /obj/item/reagent_containers/food/snacks/pie/frostypie + result = /obj/item/reagent_containers/food/snacks/pie/meatpie subcategory = CAT_PIE -/datum/crafting_recipe/food/strawberrypie - name = "Strawberry pie" +/datum/crafting_recipe/food/plumppie + name = "Plump pie" reqs = list( /obj/item/reagent_containers/food/snacks/pie/plain = 1, - /obj/item/reagent_containers/food/snacks/grown/strawberry = 1 + /obj/item/reagent_containers/food/snacks/grown/mushroom/plumphelmet = 1 ) - result = /obj/item/reagent_containers/food/snacks/pie/strawberrypie + result = /obj/item/reagent_containers/food/snacks/pie/plump_pie subcategory = CAT_PIE -/datum/crafting_recipe/food/baklava - name = "Baklava pie" +/datum/crafting_recipe/food/pumpkinpie + name = "Pumpkin pie" reqs = list( - /obj/item/reagent_containers/food/snacks/butter = 1, - /obj/item/reagent_containers/food/snacks/tortilla = 4, //Layers - /obj/item/seeds/wheat/oat = 3 + /datum/reagent/consumable/milk = 5, + /datum/reagent/consumable/sugar = 5, + /obj/item/reagent_containers/food/snacks/pie/plain = 1, + /obj/item/reagent_containers/food/snacks/grown/pumpkin = 1 ) - result = /obj/item/reagent_containers/food/snacks/pie/baklava + result = /obj/item/reagent_containers/food/snacks/pie/pumpkinpie + subcategory = CAT_PIE + +/datum/crafting_recipe/food/tofupie + name = "Tofu pie" + reqs = list( + /obj/item/reagent_containers/food/snacks/pie/plain = 1, + /obj/item/reagent_containers/food/snacks/tofu = 1 + ) + result = /obj/item/reagent_containers/food/snacks/pie/tofupie + subcategory = CAT_PIE + +/datum/crafting_recipe/food/xenopie + name = "Xeno pie" + reqs = list( + /obj/item/reagent_containers/food/snacks/pie/plain = 1, + /obj/item/reagent_containers/food/snacks/meat/cutlet/xeno = 1 + ) + result = /obj/item/reagent_containers/food/snacks/pie/xemeatpie + subcategory = CAT_PIE + +//////////////TARTS////////////// + +/datum/crafting_recipe/food/goldenappletart + name = "Golden apple tart" + reqs = list( + /datum/reagent/consumable/milk = 5, + /datum/reagent/consumable/sugar = 5, + /obj/item/reagent_containers/food/snacks/pie/plain = 1, + /obj/item/reagent_containers/food/snacks/grown/apple/gold = 1 + ) + result = /obj/item/reagent_containers/food/snacks/pie/appletart subcategory = CAT_PIE /datum/crafting_recipe/food/mimetart @@ -216,11 +229,77 @@ result = /obj/item/reagent_containers/food/snacks/pie/cocolavatart subcategory = CAT_PIE -/datum/crafting_recipe/food/peachpie - name = "Peach Pie" +////////////////////////////////////////////SWEETS//////////////////////////////////////////// + +/datum/crafting_recipe/food/candiedapple + name = "Candied apple" + reqs = list(/datum/reagent/water = 5, + /datum/reagent/consumable/sugar = 5, + /obj/item/reagent_containers/food/snacks/grown/apple = 1 + ) + result = /obj/item/reagent_containers/food/snacks/candiedapple + subcategory = CAT_PIE + +/datum/crafting_recipe/food/chococoin + name = "Choco coin" reqs = list( - /obj/item/reagent_containers/food/snacks/pie/plain = 1, - /obj/item/reagent_containers/food/snacks/grown/peach = 3 - ) - result = /obj/item/reagent_containers/food/snacks/pie/peachpie + /obj/item/coin = 1, + /obj/item/reagent_containers/food/snacks/chocolatebar = 1, + ) + result = /obj/item/reagent_containers/food/snacks/chococoin + subcategory = CAT_PIE + +/datum/crafting_recipe/food/chocoorange + name = "Choco orange" + reqs = list( + /obj/item/reagent_containers/food/snacks/grown/citrus/orange = 1, + /obj/item/reagent_containers/food/snacks/chocolatebar = 1, + ) + result = /obj/item/reagent_containers/food/snacks/chocoorange + subcategory = CAT_PIE + +/datum/crafting_recipe/food/chocolatebunny + name = "Chocolate bunny" + reqs = list( + /datum/reagent/consumable/sugar = 2, + /obj/item/reagent_containers/food/snacks/chocolatebar = 1 + ) + result = /obj/item/reagent_containers/food/snacks/chocolatebunny + subcategory = CAT_PIE + +/datum/crafting_recipe/food/chocolatestrawberry + name = "Chocolate Strawberry" + reqs = list( + /obj/item/reagent_containers/food/snacks/chocolatebar = 1, + /obj/item/reagent_containers/food/snacks/grown/strawberry = 1 + ) + result = /obj/item/reagent_containers/food/snacks/chocolatestrawberry + subcategory = CAT_PIE + +/datum/crafting_recipe/food/fudgedice + name = "Fudge dice" + reqs = list( + /obj/item/dice = 1, + /obj/item/reagent_containers/food/snacks/chocolatebar = 1, + ) + result = /obj/item/reagent_containers/food/snacks/fudgedice + subcategory = CAT_PIE + +/datum/crafting_recipe/food/honeybar + name = "Honey nut bar" + reqs = list( + /obj/item/reagent_containers/food/snacks/grown/oat = 1, + /datum/reagent/consumable/honey = 5 + ) + result = /obj/item/reagent_containers/food/snacks/honeybar + subcategory = CAT_PIE + +/datum/crafting_recipe/food/spiderlollipop + name = "Spider Lollipop" + reqs = list(/obj/item/stack/rods = 1, + /datum/reagent/consumable/sugar = 5, + /datum/reagent/water = 5, + /obj/item/reagent_containers/food/snacks/spiderling = 1 + ) + result = /obj/item/reagent_containers/food/snacks/spiderlollipop subcategory = CAT_PIE \ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.dm index 64447dd180..21112a4a4f 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.dm @@ -3,6 +3,40 @@ ////////////////////////////////////////////////PIZZA!!!//////////////////////////////////////////////// +/datum/crafting_recipe/food/dankpizza + name = "Dank pizza" + reqs = list( + /obj/item/reagent_containers/food/snacks/pizzabread = 1, + /obj/item/reagent_containers/food/snacks/grown/ambrosia/vulgaris = 3, + /obj/item/reagent_containers/food/snacks/cheesewedge = 1, + /obj/item/reagent_containers/food/snacks/grown/tomato = 1 + ) + result = /obj/item/reagent_containers/food/snacks/pizza/dank + subcategory = CAT_PIZZA + +/datum/crafting_recipe/food/donkpocketpizza + name = "Donkpocket pizza" + reqs = list( + /obj/item/reagent_containers/food/snacks/pizzabread = 1, + /obj/item/reagent_containers/food/snacks/donkpocket/warm = 3, + /obj/item/reagent_containers/food/snacks/cheesewedge = 1, + /obj/item/reagent_containers/food/snacks/grown/tomato = 1 + ) + result = /obj/item/reagent_containers/food/snacks/pizza/donkpocket + subcategory = CAT_PIZZA + +/datum/crafting_recipe/food/pineapplepizza + name = "Hawaiian pizza" + reqs = list( + /obj/item/reagent_containers/food/snacks/pizzabread = 1, + /obj/item/reagent_containers/food/snacks/meat/cutlet = 2, + /obj/item/reagent_containers/food/snacks/pineappleslice = 3, + /obj/item/reagent_containers/food/snacks/cheesewedge = 1, + /obj/item/reagent_containers/food/snacks/grown/tomato = 1 + ) + result = /obj/item/reagent_containers/food/snacks/pizza/pineapple + subcategory = CAT_PIZZA + /datum/crafting_recipe/food/margheritapizza name = "Margherita pizza" reqs = list( @@ -24,18 +58,6 @@ result = /obj/item/reagent_containers/food/snacks/pizza/meat subcategory = CAT_PIZZA -/datum/crafting_recipe/food/arnold - name = "Arnold pizza" - reqs = list( - /obj/item/reagent_containers/food/snacks/pizzabread = 1, - /obj/item/reagent_containers/food/snacks/meat/cutlet = 3, - /obj/item/ammo_casing/c9mm = 8, - /obj/item/reagent_containers/food/snacks/cheesewedge = 1, - /obj/item/reagent_containers/food/snacks/grown/tomato = 1 - ) - result = /obj/item/reagent_containers/food/snacks/pizza/arnold - subcategory = CAT_PIZZA - /datum/crafting_recipe/food/mushroompizza name = "Mushroom pizza" reqs = list( @@ -45,6 +67,17 @@ result = /obj/item/reagent_containers/food/snacks/pizza/mushroom subcategory = CAT_PIZZA +/datum/crafting_recipe/food/sassysagepizza + name = "Sassysage pizza" + reqs = list( + /obj/item/reagent_containers/food/snacks/pizzabread = 1, + /obj/item/reagent_containers/food/snacks/faggot = 3, + /obj/item/reagent_containers/food/snacks/cheesewedge = 1, + /obj/item/reagent_containers/food/snacks/grown/tomato = 1 + ) + result = /obj/item/reagent_containers/food/snacks/pizza/sassysage + subcategory = CAT_PIZZA + /datum/crafting_recipe/food/vegetablepizza name = "Vegetable pizza" reqs = list( @@ -57,50 +90,7 @@ result = /obj/item/reagent_containers/food/snacks/pizza/vegetable subcategory = CAT_PIZZA -/datum/crafting_recipe/food/donkpocketpizza - name = "Donkpocket pizza" - reqs = list( - /obj/item/reagent_containers/food/snacks/pizzabread = 1, - /obj/item/reagent_containers/food/snacks/donkpocket/warm = 3, - /obj/item/reagent_containers/food/snacks/cheesewedge = 1, - /obj/item/reagent_containers/food/snacks/grown/tomato = 1 - ) - result = /obj/item/reagent_containers/food/snacks/pizza/donkpocket - subcategory = CAT_PIZZA - -/datum/crafting_recipe/food/dankpizza - name = "Dank pizza" - reqs = list( - /obj/item/reagent_containers/food/snacks/pizzabread = 1, - /obj/item/reagent_containers/food/snacks/grown/ambrosia/vulgaris = 3, - /obj/item/reagent_containers/food/snacks/cheesewedge = 1, - /obj/item/reagent_containers/food/snacks/grown/tomato = 1 - ) - result = /obj/item/reagent_containers/food/snacks/pizza/dank - subcategory = CAT_PIZZA - -/datum/crafting_recipe/food/sassysagepizza - name = "Sassysage pizza" - reqs = list( - /obj/item/reagent_containers/food/snacks/pizzabread = 1, - /obj/item/reagent_containers/food/snacks/faggot = 3, - /obj/item/reagent_containers/food/snacks/cheesewedge = 1, - /obj/item/reagent_containers/food/snacks/grown/tomato = 1 - ) - result = /obj/item/reagent_containers/food/snacks/pizza/sassysage - subcategory = CAT_PIZZA - -/datum/crafting_recipe/food/pineapplepizza - name = "Hawaiian pizza" - reqs = list( - /obj/item/reagent_containers/food/snacks/pizzabread = 1, - /obj/item/reagent_containers/food/snacks/meat/cutlet = 2, - /obj/item/reagent_containers/food/snacks/pineappleslice = 3, - /obj/item/reagent_containers/food/snacks/cheesewedge = 1, - /obj/item/reagent_containers/food/snacks/grown/tomato = 1 - ) - result = /obj/item/reagent_containers/food/snacks/pizza/pineapple - subcategory = CAT_PIZZA +//////Special Pizzas///// /datum/crafting_recipe/food/pineapplepizza/anomaly name = "Anomaly Hawaiian pizza" @@ -120,3 +110,15 @@ tools = list(TOOL_WELDER, TOOL_SCREWDRIVER, TOOL_WIRECUTTER) result = /obj/item/pizzabox/infinite subcategory = CAT_PIZZA + +/datum/crafting_recipe/food/arnold + name = "Arnold pizza" + reqs = list( + /obj/item/reagent_containers/food/snacks/pizzabread = 1, + /obj/item/reagent_containers/food/snacks/meat/cutlet = 3, + /obj/item/ammo_casing/c9mm = 8, + /obj/item/reagent_containers/food/snacks/cheesewedge = 1, + /obj/item/reagent_containers/food/snacks/grown/tomato = 1 + ) + result = /obj/item/reagent_containers/food/snacks/pizza/arnold + subcategory = CAT_PIZZA diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm index 39eeb7d936..0a44c4590e 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm @@ -3,16 +3,6 @@ ////////////////////////////////////////////////SALADS//////////////////////////////////////////////// -/datum/crafting_recipe/food/herbsalad - name = "Herb salad" - reqs = list( - /obj/item/reagent_containers/glass/bowl = 1, - /obj/item/reagent_containers/food/snacks/grown/ambrosia/vulgaris = 3, - /obj/item/reagent_containers/food/snacks/grown/apple = 1 - ) - result = /obj/item/reagent_containers/food/snacks/salad/herbsalad - subcategory = CAT_SALAD - /datum/crafting_recipe/food/aesirsalad name = "Aesir salad" reqs = list( @@ -23,38 +13,16 @@ result = /obj/item/reagent_containers/food/snacks/salad/aesirsalad subcategory = CAT_SALAD -/datum/crafting_recipe/food/validsalad - name = "Valid salad" +/datum/crafting_recipe/food/citrusdelight + name = "Citrus delight" reqs = list( /obj/item/reagent_containers/glass/bowl = 1, - /obj/item/reagent_containers/food/snacks/grown/ambrosia/vulgaris = 3, - /obj/item/reagent_containers/food/snacks/grown/potato = 1, - /obj/item/reagent_containers/food/snacks/faggot = 1 - ) - result = /obj/item/reagent_containers/food/snacks/salad/validsalad - subcategory = CAT_SALAD + /obj/item/reagent_containers/food/snacks/grown/citrus/lime = 1, + /obj/item/reagent_containers/food/snacks/grown/citrus/lemon = 1, + /obj/item/reagent_containers/food/snacks/grown/citrus/orange = 1 -/datum/crafting_recipe/food/monkeysdelight - name = "Monkeys delight" - reqs = list( - /datum/reagent/consumable/flour = 5, - /datum/reagent/consumable/sodiumchloride = 1, - /datum/reagent/consumable/blackpepper = 1, - /obj/item/reagent_containers/glass/bowl = 1, - /obj/item/reagent_containers/food/snacks/monkeycube = 1, - /obj/item/reagent_containers/food/snacks/grown/banana = 1 ) - result = /obj/item/reagent_containers/food/snacks/soup/monkeysdelight - subcategory = CAT_SALAD - -/datum/crafting_recipe/food/oatmeal - name = "Oatmeal" - reqs = list( - /datum/reagent/consumable/milk = 10, - /obj/item/reagent_containers/glass/bowl = 1, - /obj/item/reagent_containers/food/snacks/grown/oat = 1 - ) - result = /obj/item/reagent_containers/food/snacks/salad/oatmeal + result = /obj/item/reagent_containers/food/snacks/salad/citrusdelight subcategory = CAT_SALAD /datum/crafting_recipe/food/fruitsalad @@ -70,6 +38,16 @@ result = /obj/item/reagent_containers/food/snacks/salad/fruit subcategory = CAT_SALAD +/datum/crafting_recipe/food/herbsalad + name = "Herb salad" + reqs = list( + /obj/item/reagent_containers/glass/bowl = 1, + /obj/item/reagent_containers/food/snacks/grown/ambrosia/vulgaris = 3, + /obj/item/reagent_containers/food/snacks/grown/apple = 1 + ) + result = /obj/item/reagent_containers/food/snacks/salad/herbsalad + subcategory = CAT_SALAD + /datum/crafting_recipe/food/junglesalad name = "Jungle salad" reqs = list( @@ -83,14 +61,26 @@ result = /obj/item/reagent_containers/food/snacks/salad/jungle subcategory = CAT_SALAD -/datum/crafting_recipe/food/citrusdelight - name = "Citrus delight" +/datum/crafting_recipe/food/monkeysdelight + name = "Monkeys delight" + reqs = list( + /datum/reagent/consumable/flour = 5, + /datum/reagent/consumable/sodiumchloride = 1, + /datum/reagent/consumable/blackpepper = 1, + /obj/item/reagent_containers/glass/bowl = 1, + /obj/item/reagent_containers/food/snacks/monkeycube = 1, + /obj/item/reagent_containers/food/snacks/grown/banana = 1 + ) + result = /obj/item/reagent_containers/food/snacks/soup/monkeysdelight + subcategory = CAT_SALAD + +/datum/crafting_recipe/food/validsalad + name = "Valid salad" reqs = list( /obj/item/reagent_containers/glass/bowl = 1, - /obj/item/reagent_containers/food/snacks/grown/citrus/lime = 1, - /obj/item/reagent_containers/food/snacks/grown/citrus/lemon = 1, - /obj/item/reagent_containers/food/snacks/grown/citrus/orange = 1 - + /obj/item/reagent_containers/food/snacks/grown/ambrosia/vulgaris = 3, + /obj/item/reagent_containers/food/snacks/grown/potato = 1, + /obj/item/reagent_containers/food/snacks/faggot = 1 ) - result = /obj/item/reagent_containers/food/snacks/salad/citrusdelight + result = /obj/item/reagent_containers/food/snacks/salad/validsalad subcategory = CAT_SALAD diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm index 127b2cc238..d2ea1da50a 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm @@ -84,7 +84,6 @@ result = /obj/item/reagent_containers/food/snacks/peanutbutter_sandwich subcategory = CAT_SANDWICH - /datum/crafting_recipe/food/notasandwich name = "Not a sandwich" reqs = list( @@ -113,4 +112,4 @@ /obj/item/reagent_containers/food/snacks/sausage = 1 ) result = /obj/item/reagent_containers/food/snacks/hotdog - subcategory = CAT_SANDWICH + subcategory = CAT_SANDWICH //I don't agree with this. diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_sushi.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_seafood.dm similarity index 87% rename from code/modules/food_and_drinks/recipes/tablecraft/recipes_sushi.dm rename to code/modules/food_and_drinks/recipes/tablecraft/recipes_seafood.dm index 9dbf1d684b..4fc12f0777 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_sushi.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_seafood.dm @@ -1,4 +1,6 @@ -//////////////////////////Sushi Components/////////////////////// +// see code/module/crafting/table.dm + +///////////////////////Sushi Components/////////////////////////// /datum/crafting_recipe/food/sushi_rice name = "Sushi Rice" @@ -7,7 +9,7 @@ /datum/reagent/consumable/rice = 10 ) result = /obj/item/reagent_containers/food/snacks/sushi_rice - subcategory = CAT_FISH + subcategory = CAT_SEAFOOD /datum/crafting_recipe/food/sea_weed name = "Sea Weed Sheet" @@ -17,17 +19,7 @@ /obj/item/reagent_containers/food/snacks/grown/kudzupod = 1, ) result = /obj/item/reagent_containers/food/snacks/sea_weed - subcategory = CAT_FISH - -/datum/crafting_recipe/food/tuna_can - name = "Can of Tuna" - reqs = list( - /datum/reagent/consumable/sodiumchloride = 15, - /datum/reagent/consumable/cooking_oil = 5, - /obj/item/reagent_containers/food/snacks/carpmeat = 1, - ) - result = /obj/item/reagent_containers/food/snacks/tuna - subcategory = CAT_FISH + subcategory = CAT_SEAFOOD //////////////////////////Sushi///////////////////////////////// @@ -39,7 +31,7 @@ /obj/item/reagent_containers/food/snacks/carpmeat = 1 ) result = /obj/item/reagent_containers/food/snacks/sashimi - subcategory = CAT_FISH + subcategory = CAT_SEAFOOD /datum/crafting_recipe/food/riceball name = "Onigiri" @@ -49,7 +41,7 @@ /obj/item/reagent_containers/food/snacks/sushi_rice = 1 ) result = /obj/item/reagent_containers/food/snacks/riceball - subcategory = CAT_FISH + subcategory = CAT_SEAFOOD /datum/crafting_recipe/food/sushie_egg name = "Tobiko" @@ -59,7 +51,7 @@ /obj/item/reagent_containers/food/snacks/sea_weed = 2, ) result = /obj/item/reagent_containers/food/snacks/tobiko - subcategory = CAT_FISH + subcategory = CAT_SEAFOOD /datum/crafting_recipe/food/sushie_basic name = "Funa Hosomaki" @@ -70,7 +62,7 @@ /obj/item/reagent_containers/food/snacks/sea_weed = 3, ) result = /obj/item/reagent_containers/food/snacks/sushie_basic - subcategory = CAT_FISH + subcategory = CAT_SEAFOOD /datum/crafting_recipe/food/sushie_adv name = "Funa Nigiri" @@ -80,7 +72,7 @@ /obj/item/reagent_containers/food/snacks/carpmeat = 1 ) result = /obj/item/reagent_containers/food/snacks/sushie_adv - subcategory = CAT_FISH + subcategory = CAT_SEAFOOD /datum/crafting_recipe/food/sushie_pro name = "Well made Funa Nigiri" @@ -91,19 +83,19 @@ /obj/item/reagent_containers/food/snacks/sea_weed = 1 ) result = /obj/item/reagent_containers/food/snacks/sushie_pro - subcategory = CAT_FISH + subcategory = CAT_SEAFOOD -///////////////Gaijin junk///////////////////////////////////// +//////////////////////////////////////////////FISH/////////////////////////////////////////// -/datum/crafting_recipe/food/fishfingers - name = "Fish fingers" +/datum/crafting_recipe/food/tuna_can + name = "Can of Tuna" reqs = list( - /datum/reagent/consumable/flour = 5, - /obj/item/reagent_containers/food/snacks/bun = 1, - /obj/item/reagent_containers/food/snacks/carpmeat = 1 + /datum/reagent/consumable/sodiumchloride = 15, + /datum/reagent/consumable/cooking_oil = 5, + /obj/item/reagent_containers/food/snacks/carpmeat = 1, ) - result = /obj/item/reagent_containers/food/snacks/fishfingers - subcategory = CAT_FISH + result = /obj/item/reagent_containers/food/snacks/tuna + subcategory = CAT_SEAFOOD /datum/crafting_recipe/food/cubancarp name = "Cuban carp" @@ -113,7 +105,17 @@ /obj/item/reagent_containers/food/snacks/carpmeat = 1 ) result = /obj/item/reagent_containers/food/snacks/cubancarp - subcategory = CAT_FISH + subcategory = CAT_SEAFOOD + +/datum/crafting_recipe/food/fishfingers + name = "Fish fingers" + reqs = list( + /datum/reagent/consumable/flour = 5, + /obj/item/reagent_containers/food/snacks/bun = 1, + /obj/item/reagent_containers/food/snacks/carpmeat = 1 + ) + result = /obj/item/reagent_containers/food/snacks/fishfingers + subcategory = CAT_SEAFOOD /datum/crafting_recipe/food/fishandchips name = "Fish and chips" @@ -122,4 +124,4 @@ /obj/item/reagent_containers/food/snacks/carpmeat = 1 ) result = /obj/item/reagent_containers/food/snacks/fishandchips - subcategory = CAT_FISH \ No newline at end of file + subcategory = CAT_SEAFOOD \ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm index 76a5a64096..0c966faf33 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm @@ -3,71 +3,46 @@ ////////////////////////////////////////////////SOUP//////////////////////////////////////////////// -/datum/crafting_recipe/food/meatballsoup - name = "Meatball soup" +/datum/crafting_recipe/food/amanitajelly + name = "Amanita jelly" + reqs = list( + /datum/reagent/consumable/ethanol/vodka = 5, + /obj/item/reagent_containers/glass/bowl = 1, + /obj/item/reagent_containers/food/snacks/grown/mushroom/amanita = 3 + ) + result = /obj/item/reagent_containers/food/snacks/soup/amanitajelly + subcategory = CAT_SOUP + +/datum/crafting_recipe/food/beetsoup + name = "Beet soup" reqs = list( /datum/reagent/water = 10, /obj/item/reagent_containers/glass/bowl = 1, - /obj/item/reagent_containers/food/snacks/faggot = 1, - /obj/item/reagent_containers/food/snacks/grown/carrot = 1, - /obj/item/reagent_containers/food/snacks/grown/potato = 1 + /obj/item/reagent_containers/food/snacks/grown/whitebeet = 1, + /obj/item/reagent_containers/food/snacks/grown/cabbage = 1, ) - result = /obj/item/reagent_containers/food/snacks/soup/meatball + result = /obj/item/reagent_containers/food/snacks/soup/beet subcategory = CAT_SOUP -/datum/crafting_recipe/food/vegetablesoup - name = "Vegetable soup" +/datum/crafting_recipe/food/bloodsoup + name = "Blood soup" + reqs = list( + /datum/reagent/blood = 10, + /obj/item/reagent_containers/glass/bowl = 1, + /obj/item/reagent_containers/food/snacks/grown/tomato/blood = 2 + ) + result = /obj/item/reagent_containers/food/snacks/soup/blood + subcategory = CAT_SOUP + +/datum/crafting_recipe/food/clownstears + name = "Clowns tears" reqs = list( /datum/reagent/water = 10, /obj/item/reagent_containers/glass/bowl = 1, - /obj/item/reagent_containers/food/snacks/grown/carrot = 1, - /obj/item/reagent_containers/food/snacks/grown/corn = 1, - /obj/item/reagent_containers/food/snacks/grown/eggplant = 1, - /obj/item/reagent_containers/food/snacks/grown/potato = 1 + /obj/item/reagent_containers/food/snacks/grown/banana = 1, + /obj/item/stack/ore/bananium = 1 ) - result = /obj/item/reagent_containers/food/snacks/soup/vegetable - subcategory = CAT_SOUP - -/datum/crafting_recipe/food/nettlesoup - name = "Nettle soup" - reqs = list( - /datum/reagent/water = 10, - /obj/item/reagent_containers/glass/bowl = 1, - /obj/item/reagent_containers/food/snacks/grown/nettle = 1, - /obj/item/reagent_containers/food/snacks/grown/potato = 1, - /obj/item/reagent_containers/food/snacks/boiledegg = 1 - ) - result = /obj/item/reagent_containers/food/snacks/soup/nettle - subcategory = CAT_SOUP - -/datum/crafting_recipe/food/wingfangchu - name = "Wingfangchu" - reqs = list( - /obj/item/reagent_containers/glass/bowl = 1, - /datum/reagent/consumable/soysauce = 5, - /obj/item/reagent_containers/food/snacks/meat/cutlet/xeno = 2 - ) - result = /obj/item/reagent_containers/food/snacks/soup/wingfangchu - subcategory = CAT_SOUP - -/datum/crafting_recipe/food/wishsoup - name = "Wish soup" - reqs = list( - /datum/reagent/water = 20, - /obj/item/reagent_containers/glass/bowl = 1 - ) - result= /obj/item/reagent_containers/food/snacks/soup/wish - subcategory = CAT_SOUP - -/datum/crafting_recipe/food/hotchili - name = "Hot chili" - reqs = list( - /obj/item/reagent_containers/glass/bowl = 1, - /obj/item/reagent_containers/food/snacks/meat/cutlet = 2, - /obj/item/reagent_containers/food/snacks/grown/chili = 1, - /obj/item/reagent_containers/food/snacks/grown/tomato = 1 - ) - result = /obj/item/reagent_containers/food/snacks/soup/hotchili + result = /obj/item/reagent_containers/food/snacks/soup/clownstears subcategory = CAT_SOUP /datum/crafting_recipe/food/coldchili @@ -81,16 +56,6 @@ result = /obj/item/reagent_containers/food/snacks/soup/coldchili subcategory = CAT_SOUP -/datum/crafting_recipe/food/tomatosoup - name = "Tomato soup" - reqs = list( - /datum/reagent/water = 10, - /obj/item/reagent_containers/glass/bowl = 1, - /obj/item/reagent_containers/food/snacks/grown/tomato = 2 - ) - result = /obj/item/reagent_containers/food/snacks/soup/tomato - subcategory = CAT_SOUP - /datum/crafting_recipe/food/eyeballsoup name = "Eyeball soup" reqs = list( @@ -102,6 +67,28 @@ result = /obj/item/reagent_containers/food/snacks/soup/tomato/eyeball subcategory = CAT_SOUP +/datum/crafting_recipe/food/hotchili + name = "Hot chili" + reqs = list( + /obj/item/reagent_containers/glass/bowl = 1, + /obj/item/reagent_containers/food/snacks/meat/cutlet = 2, + /obj/item/reagent_containers/food/snacks/grown/chili = 1, + /obj/item/reagent_containers/food/snacks/grown/tomato = 1 + ) + result = /obj/item/reagent_containers/food/snacks/soup/hotchili + subcategory = CAT_SOUP + +/datum/crafting_recipe/food/meatballsoup + name = "Meatball soup" + reqs = list( + /datum/reagent/water = 10, + /obj/item/reagent_containers/glass/bowl = 1, + /obj/item/reagent_containers/food/snacks/faggot = 1, + /obj/item/reagent_containers/food/snacks/grown/carrot = 1, + /obj/item/reagent_containers/food/snacks/grown/potato = 1 + ) + result = /obj/item/reagent_containers/food/snacks/soup/meatball + subcategory = CAT_SOUP /datum/crafting_recipe/food/milosoup name = "Milo soup" @@ -114,35 +101,15 @@ result = /obj/item/reagent_containers/food/snacks/soup/milo subcategory = CAT_SOUP -/datum/crafting_recipe/food/bloodsoup - name = "Blood soup" +/datum/crafting_recipe/food/mushroomsoup + name = "Mushroom soup" reqs = list( - /datum/reagent/blood = 10, + /datum/reagent/consumable/milk = 5, + /datum/reagent/water = 5, /obj/item/reagent_containers/glass/bowl = 1, - /obj/item/reagent_containers/food/snacks/grown/tomato/blood = 2 + /obj/item/reagent_containers/food/snacks/grown/mushroom/chanterelle = 1 ) - result = /obj/item/reagent_containers/food/snacks/soup/blood - subcategory = CAT_SOUP - -/datum/crafting_recipe/food/slimesoup - name = "Slime soup" - reqs = list( - /datum/reagent/water = 10, - /datum/reagent/toxin/slimejelly = 5, - /obj/item/reagent_containers/glass/bowl = 1 - ) - result = /obj/item/reagent_containers/food/snacks/soup/slime - subcategory = CAT_SOUP - -/datum/crafting_recipe/food/clownstears - name = "Clowns tears" - reqs = list( - /datum/reagent/water = 10, - /obj/item/reagent_containers/glass/bowl = 1, - /obj/item/reagent_containers/food/snacks/grown/banana = 1, - /obj/item/stack/ore/bananium = 1 - ) - result = /obj/item/reagent_containers/food/snacks/soup/clownstears + result = /obj/item/reagent_containers/food/snacks/soup/mushroom subcategory = CAT_SOUP /datum/crafting_recipe/food/mysterysoup @@ -158,26 +125,37 @@ result = /obj/item/reagent_containers/food/snacks/soup/mystery subcategory = CAT_SOUP -/datum/crafting_recipe/food/mushroomsoup - name = "Mushroom soup" - reqs = list( - /datum/reagent/consumable/milk = 5, - /datum/reagent/water = 5, - /obj/item/reagent_containers/glass/bowl = 1, - /obj/item/reagent_containers/food/snacks/grown/mushroom/chanterelle = 1 - ) - result = /obj/item/reagent_containers/food/snacks/soup/mushroom - subcategory = CAT_SOUP - -/datum/crafting_recipe/food/beetsoup - name = "Beet soup" +/datum/crafting_recipe/food/nettlesoup + name = "Nettle soup" reqs = list( /datum/reagent/water = 10, /obj/item/reagent_containers/glass/bowl = 1, - /obj/item/reagent_containers/food/snacks/grown/whitebeet = 1, - /obj/item/reagent_containers/food/snacks/grown/cabbage = 1, + /obj/item/reagent_containers/food/snacks/grown/nettle = 1, + /obj/item/reagent_containers/food/snacks/grown/potato = 1, + /obj/item/reagent_containers/food/snacks/boiledegg = 1 ) - result = /obj/item/reagent_containers/food/snacks/soup/beet + result = /obj/item/reagent_containers/food/snacks/soup/nettle + subcategory = CAT_SOUP + +/datum/crafting_recipe/food/redbeetsoup + name = "Red beet soup" + reqs = list( + /datum/reagent/water = 10, + /obj/item/reagent_containers/glass/bowl = 1, + /obj/item/reagent_containers/food/snacks/grown/redbeet = 1, + /obj/item/reagent_containers/food/snacks/grown/cabbage = 1 + ) + result = /obj/item/reagent_containers/food/snacks/soup/beet/red + subcategory = CAT_SOUP + +/datum/crafting_recipe/food/slimesoup + name = "Slime soup" + reqs = list( + /datum/reagent/water = 10, + /datum/reagent/toxin/slimejelly = 5, + /obj/item/reagent_containers/glass/bowl = 1 + ) + result = /obj/item/reagent_containers/food/snacks/soup/slime subcategory = CAT_SOUP /datum/crafting_recipe/food/stew @@ -205,16 +183,6 @@ result = /obj/item/reagent_containers/food/snacks/soup/spacylibertyduff subcategory = CAT_SOUP -/datum/crafting_recipe/food/amanitajelly - name = "Amanita jelly" - reqs = list( - /datum/reagent/consumable/ethanol/vodka = 5, - /obj/item/reagent_containers/glass/bowl = 1, - /obj/item/reagent_containers/food/snacks/grown/mushroom/amanita = 3 - ) - result = /obj/item/reagent_containers/food/snacks/soup/amanitajelly - subcategory = CAT_SOUP - /datum/crafting_recipe/food/sweetpotatosoup name = "Sweet potato soup" reqs = list( @@ -226,13 +194,44 @@ result = /obj/item/reagent_containers/food/snacks/soup/sweetpotato subcategory = CAT_SOUP -/datum/crafting_recipe/food/redbeetsoup - name = "Red beet soup" +/datum/crafting_recipe/food/tomatosoup + name = "Tomato soup" reqs = list( /datum/reagent/water = 10, /obj/item/reagent_containers/glass/bowl = 1, - /obj/item/reagent_containers/food/snacks/grown/redbeet = 1, - /obj/item/reagent_containers/food/snacks/grown/cabbage = 1 + /obj/item/reagent_containers/food/snacks/grown/tomato = 2 ) - result = /obj/item/reagent_containers/food/snacks/soup/beet/red + result = /obj/item/reagent_containers/food/snacks/soup/tomato subcategory = CAT_SOUP + +/datum/crafting_recipe/food/vegetablesoup + name = "Vegetable soup" + reqs = list( + /datum/reagent/water = 10, + /obj/item/reagent_containers/glass/bowl = 1, + /obj/item/reagent_containers/food/snacks/grown/carrot = 1, + /obj/item/reagent_containers/food/snacks/grown/corn = 1, + /obj/item/reagent_containers/food/snacks/grown/eggplant = 1, + /obj/item/reagent_containers/food/snacks/grown/potato = 1 + ) + result = /obj/item/reagent_containers/food/snacks/soup/vegetable + subcategory = CAT_SOUP + +/datum/crafting_recipe/food/wingfangchu + name = "Wingfangchu" + reqs = list( + /obj/item/reagent_containers/glass/bowl = 1, + /datum/reagent/consumable/soysauce = 5, + /obj/item/reagent_containers/food/snacks/meat/cutlet/xeno = 2 + ) + result = /obj/item/reagent_containers/food/snacks/soup/wingfangchu + subcategory = CAT_SOUP + +/datum/crafting_recipe/food/wishsoup + name = "Wish soup" + reqs = list( + /datum/reagent/water = 20, + /obj/item/reagent_containers/glass/bowl = 1 + ) + result= /obj/item/reagent_containers/food/snacks/soup/wish + subcategory = CAT_SOUP \ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.dm index 355402111c..12020a6241 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.dm @@ -3,15 +3,6 @@ ////////////////////////////////////////////////SPAGHETTI//////////////////////////////////////////////// -/datum/crafting_recipe/food/tomatopasta - name = "Tomato pasta" - reqs = list( - /obj/item/reagent_containers/food/snacks/boiledspaghetti = 1, - /obj/item/reagent_containers/food/snacks/grown/tomato = 2 - ) - result = /obj/item/reagent_containers/food/snacks/pastatomato - subcategory = CAT_SPAGHETTI - /datum/crafting_recipe/food/copypasta name = "Copypasta" reqs = list( @@ -38,6 +29,17 @@ result = /obj/item/reagent_containers/food/snacks/spesslaw subcategory = CAT_SPAGHETTI +/datum/crafting_recipe/food/tomatopasta + name = "Tomato pasta" + reqs = list( + /obj/item/reagent_containers/food/snacks/boiledspaghetti = 1, + /obj/item/reagent_containers/food/snacks/grown/tomato = 2 + ) + result = /obj/item/reagent_containers/food/snacks/pastatomato + subcategory = CAT_SPAGHETTI + +////////////NOODLES/////////// + /datum/crafting_recipe/food/beefnoodle name = "Beef noodle" reqs = list( diff --git a/code/modules/holiday/easter.dm b/code/modules/holiday/easter.dm index 1898fe4b01..5f2d92fc93 100644 --- a/code/modules/holiday/easter.dm +++ b/code/modules/holiday/easter.dm @@ -140,96 +140,8 @@ containsPrize = FALSE qdel(src) -//Easter Recipes + food -/obj/item/reagent_containers/food/snacks/hotcrossbun - bitesize = 2 - name = "hot-cross bun" - desc = "The Cross represents the Assistants that died for your sins." - icon_state = "hotcrossbun" - -/datum/crafting_recipe/food/hotcrossbun - name = "Hot-Cross Bun" - reqs = list( - /obj/item/reagent_containers/food/snacks/store/bread/plain = 1, - /datum/reagent/consumable/sugar = 1 - ) - result = /obj/item/reagent_containers/food/snacks/hotcrossbun - category = CAT_MISCFOOD - - -/obj/item/reagent_containers/food/snacks/store/cake/brioche - name = "brioche cake" - desc = "A ring of sweet, glazed buns." - icon_state = "briochecake" - slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/brioche - slices_num = 6 - bonus_reagents = list(/datum/reagent/consumable/nutriment = 10, /datum/reagent/consumable/nutriment/vitamin = 2) - -/obj/item/reagent_containers/food/snacks/cakeslice/brioche - name = "brioche cake slice" - desc = "Delicious sweet-bread. Who needs anything else?" - icon_state = "briochecake_slice" - filling_color = "#FFD700" - -/datum/crafting_recipe/food/briochecake - name = "Brioche cake" - reqs = list( - /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, - /datum/reagent/consumable/sugar = 2 - ) - result = /obj/item/reagent_containers/food/snacks/store/cake/brioche - category = CAT_MISCFOOD - -/obj/item/reagent_containers/food/snacks/scotchegg - name = "scotch egg" - desc = "A boiled egg wrapped in a delicious, seasoned meatball." - icon_state = "scotchegg" - bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 2) - bitesize = 3 - filling_color = "#FFFFF0" - list_reagents = list(/datum/reagent/consumable/nutriment = 6) - -/datum/crafting_recipe/food/scotchegg - name = "Scotch egg" - reqs = list( - /datum/reagent/consumable/sodiumchloride = 1, - /datum/reagent/consumable/blackpepper = 1, - /obj/item/reagent_containers/food/snacks/boiledegg = 1, - /obj/item/reagent_containers/food/snacks/faggot = 1 - ) - result = /obj/item/reagent_containers/food/snacks/scotchegg - category = CAT_MISCFOOD - -/obj/item/reagent_containers/food/snacks/soup/mammi - name = "Mammi" - desc = "A bowl of mushy bread and milk. It reminds you, not too fondly, of a bowel movement." - icon_state = "mammi" - bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 1) - list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 1) - -/datum/crafting_recipe/food/mammi - name = "Mammi" - reqs = list( - /obj/item/reagent_containers/food/snacks/store/bread/plain = 1, - /obj/item/reagent_containers/food/snacks/chocolatebar = 1, - /datum/reagent/consumable/milk = 5 - ) - result = /obj/item/reagent_containers/food/snacks/soup/mammi - category = CAT_MISCFOOD - -/obj/item/reagent_containers/food/snacks/chocolatebunny - name = "chocolate bunny" - desc = "Contains less than 10% real rabbit!" - icon_state = "chocolatebunny" - bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) - list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/sugar = 2, /datum/reagent/consumable/coco = 2) - filling_color = "#A0522D" - -/datum/crafting_recipe/food/chocolatebunny - name = "Chocolate bunny" - reqs = list( - /datum/reagent/consumable/sugar = 2, - /obj/item/reagent_containers/food/snacks/chocolatebar = 1 - ) - result = /obj/item/reagent_containers/food/snacks/chocolatebunny - category = CAT_MISCFOOD +/* +Easter Recipes + Food moved to appropriate files. +\code\modules\food_and_drinks\ +\code\modules\food_and_drinks\recipes\ +*/ \ No newline at end of file diff --git a/code/modules/holodeck/computer.dm b/code/modules/holodeck/computer.dm index d551222836..b5cbed8b79 100644 --- a/code/modules/holodeck/computer.dm +++ b/code/modules/holodeck/computer.dm @@ -92,7 +92,7 @@ data["emagged"] = TRUE data["emag_programs"] = emag_programs data["program"] = program - data["can_toggle_safety"] = issilicon(user) || IsAdminGhost(user) + data["can_toggle_safety"] = hasSiliconAccessInArea(user) || IsAdminGhost(user) return data @@ -109,7 +109,7 @@ if(A) load_program(A) if("safety") - if(!issilicon(usr) && !IsAdminGhost(usr)) + if(!hasSiliconAccessInArea(usr) && !IsAdminGhost(usr)) var/msg = "[key_name(usr)] attempted to emag the holodeck using a href they shouldn't have!" message_admins(msg) log_admin(msg) diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm index 2376010408..6f3c8c9047 100644 --- a/code/modules/hydroponics/biogenerator.dm +++ b/code/modules/hydroponics/biogenerator.dm @@ -196,7 +196,7 @@ dat += "x5" if(ispath(D.build_path, /obj/item/stack)) dat += "x10" - dat += "([D.materials[MAT_BIOMASS]/efficiency])
" + dat += "([D.materials[getmaterialref(/datum/material/biomass)]/efficiency])
" dat += "" else dat += "
No container inside, please insert container.
" @@ -232,15 +232,15 @@ else menustat = "void" -/obj/machinery/biogenerator/proc/check_cost(list/materials, multiplier = 1, remove_points = 1) - if(materials.len != 1 || materials[1] != MAT_BIOMASS) +/obj/machinery/biogenerator/proc/check_cost(list/materials, multiplier = 1, remove_points = TRUE) + if(materials.len != 1 || materials[1] != getmaterialref(/datum/material/biomass)) return FALSE - if (materials[MAT_BIOMASS]*multiplier/efficiency > points) + if (materials[getmaterialref(/datum/material/biomass)]*multiplier/efficiency > points) menustat = "nopoints" return FALSE else if(remove_points) - points -= materials[MAT_BIOMASS]*multiplier/efficiency + points -= materials[getmaterialref(/datum/material/biomass)]*multiplier/efficiency update_icon() updateUsrDialog() return TRUE diff --git a/code/modules/hydroponics/gene_modder.dm b/code/modules/hydroponics/gene_modder.dm index 8f2900c8a6..fe6d13f69e 100644 --- a/code/modules/hydroponics/gene_modder.dm +++ b/code/modules/hydroponics/gene_modder.dm @@ -105,7 +105,7 @@ return var/datum/browser/popup = new(user, "plantdna", "Plant DNA Manipulator", 450, 600) - if(!(in_range(src, user) || issilicon(user))) + if(!(in_range(src, user) || hasSiliconAccessInArea(user))) popup.close() return @@ -418,7 +418,7 @@ name = "plant data disk" desc = "A disk for storing plant genetic data." icon_state = "datadisk_hydro" - materials = list(MAT_METAL=30, MAT_GLASS=10) + custom_materials = list(/datum/material/iron=30, /datum/material/glass=10) var/datum/plant_gene/gene var/read_only = 0 //Well, it's still a floppy disk obj_flags = UNIQUE_RENAME diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index f99cfde92d..65d942ca2b 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -15,6 +15,7 @@ // Saves us from having to define each stupid grown's dried_type as itself. // If you don't want a plant to be driable (watermelons) set this to null in the time definition. resistance_flags = FLAMMABLE + reagent_value = HARVEST_REAGENTS_VALUE var/dry_grind = FALSE //If TRUE, this object needs to be dry to be ground up var/can_distill = TRUE //If FALSE, this object cannot be distilled into an alcohol. var/distill_reagent //If NULL and this object can be distilled, it uses a generic fruit_wine reagent and adjusts its variables. diff --git a/code/modules/hydroponics/grown/cereals.dm b/code/modules/hydroponics/grown/cereals.dm index c5a7e0797a..1d1309acb8 100644 --- a/code/modules/hydroponics/grown/cereals.dm +++ b/code/modules/hydroponics/grown/cereals.dm @@ -33,6 +33,7 @@ icon_state = "seed-oat" species = "oat" plantname = "Oat Stalks" + rarity = 10 //Not really new, just better product = /obj/item/reagent_containers/food/snacks/grown/oat mutatelist = list() @@ -45,7 +46,7 @@ filling_color = "#556B2F" bitesize_mod = 2 foodtype = GRAIN - grind_results = list(/datum/reagent/consumable/flour = 0) + grind_results = list(/datum/reagent/consumable/flour = 0.5) //So when it grinds it has 50% more flour tastes = list("oat" = 1) distill_reagent = /datum/reagent/consumable/ethanol/ale @@ -81,6 +82,7 @@ species = "meatwheat" plantname = "Meatwheat" product = /obj/item/reagent_containers/food/snacks/grown/meatwheat + rarity = 40 mutatelist = list() /obj/item/reagent_containers/food/snacks/grown/meatwheat diff --git a/code/modules/hydroponics/growninedible.dm b/code/modules/hydroponics/growninedible.dm index ef925e3965..f4859ffb1e 100644 --- a/code/modules/hydroponics/growninedible.dm +++ b/code/modules/hydroponics/growninedible.dm @@ -11,7 +11,7 @@ /obj/item/grown/Initialize(newloc, obj/item/seeds/new_seed) . = ..() - create_reagents(50) + create_reagents(50, NONE, HARVEST_REAGENTS_VALUE) if(new_seed) seed = new_seed.Copy() diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index e7c548443a..9b5983c8e9 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -9,7 +9,7 @@ righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' w_class = WEIGHT_CLASS_TINY slot_flags = ITEM_SLOT_BELT - materials = list(MAT_METAL=30, MAT_GLASS=20) + custom_materials = list(/datum/material/iron=30, /datum/material/glass=20) // ************************************* // Hydroponics Tools @@ -57,7 +57,7 @@ force = 5 throwforce = 7 w_class = WEIGHT_CLASS_SMALL - materials = list(MAT_METAL=50) + custom_materials = list(/datum/material/iron=50) attack_verb = list("slashed", "sliced", "cut", "clawed") hitsound = 'sound/weapons/bladeslice.ogg' @@ -79,7 +79,7 @@ throwforce = 15 throw_speed = 3 throw_range = 4 - materials = list(MAT_METAL = 15000) + custom_materials = list(/datum/material/iron = 15000) attack_verb = list("chopped", "torn", "cut") hitsound = 'sound/weapons/bladeslice.ogg' sharpness = IS_SHARP diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm index 756788898a..272f44267e 100644 --- a/code/modules/hydroponics/plant_genes.dm +++ b/code/modules/hydroponics/plant_genes.dm @@ -109,7 +109,7 @@ // Reagent genes store reagent ID and reagent ratio. Amount of reagent in the plant = 1 + (potency * rate) /datum/plant_gene/reagent name = "Nutriment" - var/reagent_id = "nutriment" + var/reagent_id = /datum/reagent/consumable/nutriment var/rate = 0.04 /datum/plant_gene/reagent/get_name() diff --git a/code/modules/integrated_electronics/core/assemblies.dm b/code/modules/integrated_electronics/core/assemblies.dm index d8bf82a4b4..2a0cf8c334 100644 --- a/code/modules/integrated_electronics/core/assemblies.dm +++ b/code/modules/integrated_electronics/core/assemblies.dm @@ -9,7 +9,7 @@ icon = 'icons/obj/assemblies/electronic_setups.dmi' icon_state = "setup_small" item_flags = NOBLUDGEON - materials = list() // To be filled later + custom_materials = null // To be filled later datum_flags = DF_USE_TAG var/list/assembly_components = list() var/list/ckeys_allowed_to_scan = list() // Players who built the circuit can scan it as a ghost. @@ -95,9 +95,9 @@ D.open() /obj/item/electronic_assembly/Initialize() + LAZYSET(custom_materials, /datum/material/iron, round((max_complexity + max_components) * 0.25) * SScircuit.cost_multiplier) .=..() START_PROCESSING(SScircuit, src) - materials[MAT_METAL] = round((max_complexity + max_components) / 4) * SScircuit.cost_multiplier //sets up diagnostic hud view prepare_huds() diff --git a/code/modules/integrated_electronics/core/integrated_circuit.dm b/code/modules/integrated_electronics/core/integrated_circuit.dm index 40bcbe016b..a73190a005 100644 --- a/code/modules/integrated_electronics/core/integrated_circuit.dm +++ b/code/modules/integrated_electronics/core/integrated_circuit.dm @@ -4,7 +4,7 @@ icon = 'icons/obj/assemblies/electronic_components.dmi' icon_state = "template" w_class = WEIGHT_CLASS_TINY - materials = list() // To be filled later + custom_materials = null // To be filled later var/obj/item/electronic_assembly/assembly // Reference to the assembly holding this circuit, if any. var/extended_desc var/list/inputs = list() @@ -84,7 +84,7 @@ a creative player the means to solve many problems. Circuits are held inside an setup_io(inputs, /datum/integrated_io, inputs_default, IC_INPUT) setup_io(outputs, /datum/integrated_io, outputs_default, IC_OUTPUT) setup_io(activators, /datum/integrated_io/activate, null, IC_ACTIVATOR) - materials[MAT_METAL] = w_class * SScircuit.cost_multiplier + LAZYSET(custom_materials, /datum/material/iron, w_class * SScircuit.cost_multiplier) . = ..() /obj/item/integrated_circuit/proc/on_data_written() //Override this for special behaviour when new data gets pushed to the circuit. diff --git a/code/modules/integrated_electronics/core/printer.dm b/code/modules/integrated_electronics/core/printer.dm index f0aa10f2da..cdccc92cfd 100644 --- a/code/modules/integrated_electronics/core/printer.dm +++ b/code/modules/integrated_electronics/core/printer.dm @@ -33,7 +33,8 @@ /obj/item/integrated_circuit_printer/Initialize() . = ..() - AddComponent(/datum/component/material_container, list(MAT_METAL), MINERAL_MATERIAL_AMOUNT * 25, TRUE, list(/obj/item/stack, /obj/item/integrated_circuit, /obj/item/electronic_assembly)) + var/datum/component/material_container/materials = AddComponent(/datum/component/material_container, list(/datum/material/iron), MINERAL_MATERIAL_AMOUNT * 25, TRUE, list(/obj/item/stack, /obj/item/integrated_circuit, /obj/item/electronic_assembly)) + materials.precise_insertion = TRUE /obj/item/integrated_circuit_printer/proc/print_program(mob/user) if(!cloning) @@ -107,7 +108,7 @@ interact(user) /obj/item/integrated_circuit_printer/interact(mob/user) - if(!(in_range(src, user) || issilicon(user))) + if(!(in_range(src, user) || hasSiliconAccessInArea(user))) return if(isnull(current_category)) @@ -189,16 +190,16 @@ var/cost = 400 if(ispath(build_type, /obj/item/electronic_assembly)) var/obj/item/electronic_assembly/E = SScircuit.cached_assemblies[build_type] - cost = E.materials[MAT_METAL] + cost = E.custom_materials[getmaterialref(/datum/material/iron)] else if(ispath(build_type, /obj/item/integrated_circuit)) var/obj/item/integrated_circuit/IC = SScircuit.cached_components[build_type] - cost = IC.materials[MAT_METAL] + cost = IC.custom_materials[getmaterialref(/datum/material/iron)] else if(!(build_type in SScircuit.circuit_fabricator_recipe_list["Tools"])) return var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) - if(!debug && !materials.use_amount_type(cost, MAT_METAL)) + if(!debug && !materials.use_amount_mat(cost, /datum/material/iron)) to_chat(usr, "You need [cost] metal to build that!") return TRUE @@ -270,14 +271,14 @@ return else if(fast_clone) var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) - if(debug || materials.use_amount_type(program["metal_cost"], MAT_METAL)) + if(debug || materials.use_amount_mat(program["metal_cost"], /datum/material/iron)) cloning = TRUE print_program(usr) else to_chat(usr, "You need [program["metal_cost"]] metal to build that!") else var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) - if(!materials.use_amount_type(program["metal_cost"], MAT_METAL)) + if(!materials.use_amount_mat(program["metal_cost"], /datum/material/iron)) to_chat(usr, "You need [program["metal_cost"]] metal to build that!") return var/cloning_time = round(program["metal_cost"] / 15) @@ -295,7 +296,7 @@ to_chat(usr, "Cloning has been canceled. Metal cost has been refunded.") cloning = FALSE var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) - materials.use_amount_type(-program["metal_cost"], MAT_METAL) //use negative amount to regain the cost + materials.use_amount_mat(-program["metal_cost"], /datum/material/iron) //use negative amount to regain the cost interact(usr) diff --git a/code/modules/integrated_electronics/core/saved_circuits.dm b/code/modules/integrated_electronics/core/saved_circuits.dm index 2fe6984808..cbf3bba616 100644 --- a/code/modules/integrated_electronics/core/saved_circuits.dm +++ b/code/modules/integrated_electronics/core/saved_circuits.dm @@ -260,7 +260,7 @@ blocks["max_space"] = assembly.max_components // Start keeping track of total metal cost - blocks["metal_cost"] = assembly.materials[MAT_METAL] + blocks["metal_cost"] = assembly.custom_materials[getmaterialref(/datum/material/iron)] // Block 2. Components. @@ -291,7 +291,7 @@ // Update estimated assembly complexity, taken space and material cost blocks["complexity"] += component.complexity blocks["used_space"] += component.size - blocks["metal_cost"] += component.materials[MAT_METAL] + blocks["metal_cost"] += component.custom_materials[getmaterialref(/datum/material/iron)] // Check if the assembly requires printer upgrades if(!(component.spawn_flags & IC_SPAWN_DEFAULT)) diff --git a/code/modules/integrated_electronics/core/special_pins/dir_pin.dm b/code/modules/integrated_electronics/core/special_pins/dir_pin.dm index 4ce5597af8..eb4d9a3366 100644 --- a/code/modules/integrated_electronics/core/special_pins/dir_pin.dm +++ b/code/modules/integrated_electronics/core/special_pins/dir_pin.dm @@ -18,7 +18,7 @@ write_data_to_pin(new_data) /datum/integrated_io/dir/write_data_to_pin(var/new_data) - if(isnull(new_data) || new_data in list(NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)/* + list(UP, DOWN)*/) + if(isnull(new_data) || (new_data in GLOB.alldirs/* + list(UP, DOWN)*/)) data = new_data holder.on_data_written() diff --git a/code/modules/integrated_electronics/subtypes/input.dm b/code/modules/integrated_electronics/subtypes/input.dm index 4f9afd9ed5..f1cf9dd950 100644 --- a/code/modules/integrated_electronics/subtypes/input.dm +++ b/code/modules/integrated_electronics/subtypes/input.dm @@ -1090,6 +1090,7 @@ "Titanium" = IC_PINTYPE_NUMBER, "Bluespace Mesh" = IC_PINTYPE_NUMBER, "Biomass" = IC_PINTYPE_NUMBER, + "Plastic" = IC_PINTYPE_NUMBER ) activators = list( "scan" = IC_PINTYPE_PULSE_IN, @@ -1098,7 +1099,7 @@ ) spawn_flags = IC_SPAWN_RESEARCH power_draw_per_use = 40 - var/list/mtypes = list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE, MAT_BIOMASS) + var/list/mtypes = list(/datum/material/iron, /datum/material/glass, /datum/material/silver, /datum/material/gold, /datum/material/diamond, /datum/material/plasma, /datum/material/uranium, /datum/material/bananium, /datum/material/titanium, /datum/material/bluespace, /datum/material/biomass, /datum/material/plastic) /obj/item/integrated_circuit/input/matscan/do_work() @@ -1108,10 +1109,9 @@ if(!mt) //Invalid input return if(H in view(T)) // This is a camera. It can't examine thngs,that it can't see. - for(var/I in 1 to mtypes.len) - var/datum/material/M = mt.materials[mtypes[I]] - if(M) - set_pin_data(IC_OUTPUT, I, M.amount) + for(var/I in mtypes) + if(I in mt.materials) + set_pin_data(IC_OUTPUT, I, mt.materials[I]) else set_pin_data(IC_OUTPUT, I, null) push_data() diff --git a/code/modules/integrated_electronics/subtypes/manipulation.dm b/code/modules/integrated_electronics/subtypes/manipulation.dm index 0bdf0547f9..9b275d85fe 100644 --- a/code/modules/integrated_electronics/subtypes/manipulation.dm +++ b/code/modules/integrated_electronics/subtypes/manipulation.dm @@ -373,6 +373,7 @@ "Bluespace Mesh" = IC_PINTYPE_NUMBER, "Bananium" = IC_PINTYPE_NUMBER, "Titanium" = IC_PINTYPE_NUMBER, + "Plastic" = IC_PINTYPE_NUMBER ) outputs = list( "self ref" = IC_PINTYPE_REF, @@ -386,7 +387,8 @@ "Solid Plasma" = IC_PINTYPE_NUMBER, "Bluespace Mesh" = IC_PINTYPE_NUMBER, "Bananium" = IC_PINTYPE_NUMBER, - "Titanium" = IC_PINTYPE_NUMBER + "Titanium" = IC_PINTYPE_NUMBER, + "Plastic" = IC_PINTYPE_NUMBER ) activators = list( "insert sheet" = IC_PINTYPE_PULSE_IN, @@ -400,13 +402,11 @@ power_draw_per_use = 40 ext_cooldown = 1 cooldown_per_use = 10 - var/list/mtypes = list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE) + var/list/mtypes = list(/datum/material/iron, /datum/material/glass, /datum/material/silver, /datum/material/gold, /datum/material/diamond, /datum/material/uranium, /datum/material/plasma, /datum/material/bluespace, /datum/material/bananium, /datum/material/titanium, /datum/material/plastic) /obj/item/integrated_circuit/manipulation/matman/Initialize() var/datum/component/material_container/materials = AddComponent(/datum/component/material_container, - list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE), 0, - FALSE, /obj/item/stack, CALLBACK(src, .proc/is_insertion_ready), CALLBACK(src, .proc/AfterMaterialInsert)) - materials.max_amount =100000 + mtypes, 100000, FALSE, /obj/item/stack, CALLBACK(src, .proc/is_insertion_ready), CALLBACK(src, .proc/AfterMaterialInsert)) materials.precise_insertion = TRUE .=..() @@ -414,9 +414,10 @@ var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) set_pin_data(IC_OUTPUT, 2, materials.total_amount) for(var/I in 1 to mtypes.len) - var/datum/material/M = materials.materials[mtypes[I]] + var/datum/material/M = materials.materials[getmaterialref(I)] + var/amount = materials[M] if(M) - set_pin_data(IC_OUTPUT, I+2, M.amount) + set_pin_data(IC_OUTPUT, I+2, amount) push_data() /obj/item/integrated_circuit/manipulation/matman/proc/is_insertion_ready(mob/user) @@ -435,7 +436,7 @@ if(!S) activate_pin(4) return - if(materials.insert_stack(S, CLAMP(get_pin_data(IC_INPUT, 2),0,100), multiplier = 1) ) + if(materials.insert_item(S, CLAMP(get_pin_data(IC_INPUT, 2),0,100), multiplier = 1) ) AfterMaterialInsert() activate_pin(3) else @@ -451,7 +452,7 @@ continue if(!mt) //Invalid input if(U>0) - if(materials.retrieve_amount(U, mtypes[I], T)) + if(materials.retrieve_sheets(U, getmaterialref(mtypes[I]), T)) suc = TRUE else if(mt.transer_amt_to(materials, U, mtypes[I])) diff --git a/code/modules/jobs/access.dm b/code/modules/jobs/access.dm index 81f47b9a1e..9bd5dc1684 100644 --- a/code/modules/jobs/access.dm +++ b/code/modules/jobs/access.dm @@ -4,7 +4,7 @@ //check if it doesn't require any access at all if(src.check_access(null)) return TRUE - if(issilicon(M)) + if(hasSiliconAccessInArea(M)) if(ispAI(M)) return FALSE return TRUE //AI can do whatever it wants @@ -357,7 +357,7 @@ /proc/get_all_jobs() return list("Assistant", "Captain", "Head of Personnel", "Bartender", "Cook", "Botanist", "Quartermaster", "Cargo Technician", "Shaft Miner", "Clown", "Mime", "Janitor", "Curator", "Lawyer", "Chaplain", "Chief Engineer", "Station Engineer", - "Atmospheric Technician", "Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Virologist", + "Atmospheric Technician", "Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Virologist", "Paramedic", "Research Director", "Scientist", "Roboticist", "Head of Security", "Warden", "Detective", "Security Officer") /proc/get_all_job_icons() //For all existing HUD icons diff --git a/code/modules/jobs/job_exp.dm b/code/modules/jobs/job_exp.dm index f99bf65071..5ff791c5f3 100644 --- a/code/modules/jobs/job_exp.dm +++ b/code/modules/jobs/job_exp.dm @@ -40,7 +40,7 @@ GLOBAL_PROTECT(exp_to_update) return exp_type /proc/job_is_xp_locked(jobtitle) - if(!CONFIG_GET(flag/use_exp_restrictions_heads) && jobtitle in (GLOB.command_positions | list("AI"))) + if(!CONFIG_GET(flag/use_exp_restrictions_heads) && (jobtitle in (GLOB.command_positions | list("AI")))) return FALSE if(!CONFIG_GET(flag/use_exp_restrictions_other) && !(jobtitle in (GLOB.command_positions | list("AI")))) return FALSE diff --git a/code/modules/jobs/job_types/bartender.dm b/code/modules/jobs/job_types/bartender.dm index 0ace449757..cffeceea9c 100644 --- a/code/modules/jobs/job_types/bartender.dm +++ b/code/modules/jobs/job_types/bartender.dm @@ -28,3 +28,7 @@ backpack_contents = list(/obj/item/storage/box/beanbag=1,/obj/item/book/granter/action/drink_fling=1) shoes = /obj/item/clothing/shoes/laceup +/datum/job/bartender/after_spawn(mob/living/H, mob/M, latejoin = FALSE) + . = ..() + var/datum/action/innate/drink_fling/D = new + D.Grant(H) diff --git a/code/modules/jobs/job_types/paramedic.dm b/code/modules/jobs/job_types/paramedic.dm new file mode 100644 index 0000000000..4417fa8b35 --- /dev/null +++ b/code/modules/jobs/job_types/paramedic.dm @@ -0,0 +1,45 @@ +/datum/job/paramedic + title = "Paramedic" + flag = PARAMEDIC + department_head = list("Chief Medical Officer") + department_flag = MEDSCI + faction = "Station" + total_positions = 3 + spawn_positions = 2 + supervisors = "the chief medical officer" + selection_color = "#74b5e0" + + outfit = /datum/outfit/job/paramedic + + access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CHEMISTRY, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_VIROLOGY, ACCESS_MINERAL_STOREROOM, ACCESS_MAINT_TUNNELS) + minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CLONING, ACCESS_MINERAL_STOREROOM, ACCESS_MAINT_TUNNELS) + + display_order = JOB_DISPLAY_ORDER_PARAMEDIC + +/datum/outfit/job/paramedic + name = "Paramedic" + jobtype = /datum/job/paramedic + + ears = /obj/item/radio/headset/headset_med + gloves = /obj/item/clothing/gloves/color/latex/nitrile + uniform = /obj/item/clothing/under/rank/medical/paramedic + mask = /obj/item/clothing/mask/surgical + shoes = /obj/item/clothing/shoes/jackboots + head = /obj/item/clothing/head/soft/emt + suit = /obj/item/clothing/suit/toggle/labcoat/emt + belt = /obj/item/storage/belt/medical + l_hand = /obj/item/storage/firstaid/regular + suit_store = /obj/item/flashlight/pen + id = /obj/item/card/id + r_pocket = /obj/item/pinpointer/crew + l_pocket = /obj/item/pda/medical + backpack_contents = list(/obj/item/roller=1) + pda_slot = SLOT_L_STORE + + backpack = /obj/item/storage/backpack/medic + satchel = /obj/item/storage/backpack/satchel/med + duffelbag = /obj/item/storage/backpack/duffelbag/med + + backpack_contents = list(/obj/item/storage/hypospraykit/regular) + + chameleon_extras = /obj/item/gun/syringe diff --git a/code/modules/jobs/jobs.dm b/code/modules/jobs/jobs.dm index 92fd25a811..78b7dd3964 100644 --- a/code/modules/jobs/jobs.dm +++ b/code/modules/jobs/jobs.dm @@ -18,6 +18,7 @@ GLOBAL_LIST_INIT(medical_positions, list( "Medical Doctor", "Geneticist", "Virologist", + "Paramedic", "Chemist")) diff --git a/code/modules/keybindings/bindings_living.dm b/code/modules/keybindings/bindings_living.dm index 8e9c787b6b..ec6c5dd539 100644 --- a/code/modules/keybindings/bindings_living.dm +++ b/code/modules/keybindings/bindings_living.dm @@ -19,6 +19,9 @@ if(possible_a_intents) a_intent_change(INTENT_HARM) return + if ("V") + lay_down() + return return ..() \ No newline at end of file diff --git a/code/modules/keybindings/bindings_mob.dm b/code/modules/keybindings/bindings_mob.dm index 925f305525..964ee65047 100644 --- a/code/modules/keybindings/bindings_mob.dm +++ b/code/modules/keybindings/bindings_mob.dm @@ -79,4 +79,4 @@ if("Alt") toggle_move_intent() return - return ..() \ No newline at end of file + return ..() diff --git a/code/modules/language/language_holder.dm b/code/modules/language/language_holder.dm index f8934549d0..b307e66b39 100644 --- a/code/modules/language/language_holder.dm +++ b/code/modules/language/language_holder.dm @@ -138,7 +138,7 @@ /datum/language_holder/synthetic languages = list(/datum/language/common) - shadow_languages = list(/datum/language/common, /datum/language/machine, /datum/language/draconic, /datum/language/slime) + shadow_languages = list(/datum/language/common, /datum/language/machine, /datum/language/draconic, /datum/language/slime, /datum/language/dwarf) /datum/language_holder/empty languages = list() diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm index f128a76da2..459212aad0 100644 --- a/code/modules/library/lib_items.dm +++ b/code/modules/library/lib_items.dm @@ -112,7 +112,6 @@ else return ..() - /obj/structure/bookcase/attack_hand(mob/user) . = ..() if(.) @@ -129,14 +128,17 @@ choice.forceMove(drop_location()) update_icon() -/obj/structure/bookcase/attack_ghost(mob/dead/observer/user as mob) - if(contents.len && in_range(user, src)) - var/obj/item/book/choice = input("Which book would you like to read?") as null|obj in contents - if(choice) - if(!istype(choice)) //spellbook, cult tome, or the one weird bible storage - to_chat(user,"A mysterious force is keeping you from reading that.") - return - choice.attack_self(user) +/obj/structure/bookcase/attack_ghost(mob/dead/observer/user) + . = ..() + if(!length(contents)) + to_chat(user, "It's empty!") + return + var/obj/item/book/choice = input("Which book would you like to read?") as null|obj in contents + if(choice) + if(!istype(choice)) //spellbook, cult tome, or the one weird bible storage + to_chat(user,"A mysterious force is keeping you from reading that.") + return + choice.attack_ghost(user) /obj/structure/bookcase/deconstruct(disassembled = TRUE) new /obj/item/stack/sheet/mineral/wood(loc, 4) @@ -211,14 +213,17 @@ to_chat(user, "You skim through the book but can't comprehend any of it.") return if(dat) - user << browse("Penned by [author].
" + "[dat]", "window=book[window_size != null ? ";size=[window_size]" : ""]") - if(istype(user, /mob/living)) - user.visible_message("[user] opens a book titled \"[title]\" and begins reading intently.") - SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "book_nerd", /datum/mood_event/book_nerd) - onclose(user, "book") + show_to(user) + user.visible_message("[user] opens a book titled \"[title]\" and begins reading intently.") else to_chat(user, "This book is completely blank!") +/obj/item/book/attack_ghost(mob/dead/observer/O) + . = ..() + show_to(O) + +/obj/item/book/proc/show_to(mob/user) + user << browse("Penned by [author].
" + "[dat]", "window=book[window_size != null ? ";size=[window_size]" : ""]") /obj/item/book/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/pen)) @@ -320,9 +325,6 @@ else ..() -/obj/item/book/attack_ghost(mob/user) - attack_self(user) - /* * Barcode Scanner diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index 204a2de9a6..008724b10f 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -441,7 +441,7 @@ GLOBAL_LIST(cachedbooks) // List of our cached book datums if(!GLOB.news_network) alert("No news network found on station. Aborting.") var/channelexists = 0 - for(var/datum/newscaster/feed_channel/FC in GLOB.news_network.network_channels) + for(var/datum/news/feed_channel/FC in GLOB.news_network.network_channels) if(FC.channel_name == "Nanotrasen Book Club") channelexists = 1 break diff --git a/code/modules/mining/aux_base.dm b/code/modules/mining/aux_base.dm index 91eab536c9..6ec205bf7c 100644 --- a/code/modules/mining/aux_base.dm +++ b/code/modules/mining/aux_base.dm @@ -53,7 +53,7 @@ interface with the mining shuttle at the landing site if a mobile beacon is also Unit | Condition | Status | Direction | Distance
" for(var/PDT in turrets) var/obj/machinery/porta_turret/aux_base/T = PDT - var/integrity = max((T.obj_integrity-T.integrity_failure)/(T.max_integrity-T.integrity_failure)*100, 0) + var/integrity = max((T.obj_integrity-T.integrity_failure * T.max_integrity)/(T.max_integrity-T.integrity_failure * max_integrity)*100, 0) var/status if(T.stat & BROKEN) status = "ERROR" @@ -151,7 +151,7 @@ interface with the mining shuttle at the landing site if a mobile beacon is also if(!is_mining_level(T.z)) return BAD_ZLEVEL - + var/list/colony_turfs = base_dock.return_ordered_turfs(T.x,T.y,T.z,base_dock.dir) for(var/i in 1 to colony_turfs.len) CHECK_TICK diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm index b2c0c1cc87..d4b86d5138 100644 --- a/code/modules/mining/equipment/kinetic_crusher.dm +++ b/code/modules/mining/equipment/kinetic_crusher.dm @@ -16,7 +16,7 @@ throwforce = 5 throw_speed = 4 armour_penetration = 10 - materials = list(MAT_METAL=1150, MAT_GLASS=2075) + custom_materials = list(/datum/material/iron=1150, /datum/material/glass=2075) hitsound = 'sound/weapons/bladeslice.ogg' attack_verb = list("smashed", "crushed", "cleaved", "chopped", "pulped") sharpness = IS_SHARP diff --git a/code/modules/mining/equipment/mining_tools.dm b/code/modules/mining/equipment/mining_tools.dm index cc41682f96..ce76ad04fc 100644 --- a/code/modules/mining/equipment/mining_tools.dm +++ b/code/modules/mining/equipment/mining_tools.dm @@ -11,7 +11,7 @@ lefthand_file = 'icons/mob/inhands/equipment/mining_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/mining_righthand.dmi' w_class = WEIGHT_CLASS_BULKY - materials = list(MAT_METAL=2000) //one sheet, but where can you make them? + custom_materials = list(/datum/material/iron=2000) //one sheet, but where can you make them? tool_behaviour = TOOL_MINING toolspeed = 1 usesound = list('sound/effects/picaxe1.ogg', 'sound/effects/picaxe2.ogg', 'sound/effects/picaxe3.ogg') @@ -46,7 +46,7 @@ throwforce = 7 slot_flags = ITEM_SLOT_BELT w_class = WEIGHT_CLASS_SMALL - materials = list(MAT_METAL=1000) + custom_materials = list(/datum/material/iron=1000) /obj/item/pickaxe/silver name = "silver-plated pickaxe" @@ -55,7 +55,7 @@ toolspeed = 0.5 //mines faster than a normal pickaxe, bought from mining vendor desc = "A silver-plated pickaxe that mines slightly faster than standard-issue." force = 17 - materials = list(MAT_SILVER=4000) + custom_materials = list(/datum/material/silver=4000) /obj/item/pickaxe/diamond name = "diamond-tipped pickaxe" @@ -64,7 +64,23 @@ toolspeed = 0.3 desc = "A pickaxe with a diamond pick head. Extremely robust at cracking rock walls and digging up dirt." force = 19 - materials = list(MAT_DIAMOND=4000) + custom_materials = list(/datum/material/diamond=4000) + +/obj/item/pickaxe/plasteel + name = "plasteel-tipped pickaxe" + icon_state = "titaxe" + toolspeed = 0.5 + desc = "A pickaxe with a plasteel pick head. Less robust at cracking rock walls and digging up dirt than the titanium pickaxe, but better at cracking open skulls." + force = 19 + custom_materials = list(/datum/material/iron=2000, /datum/material/plasma=2000) + +/obj/item/pickaxe/titanium + name = "titanium-tipped pickaxe" + icon_state = "psteelaxe" + toolspeed = 0.3 + desc = "A pickaxe with a titanium pick head. Extremely robust at cracking rock walls and digging up dirt, but less than the plasteel pickaxe at cracking open skulls." + force = 17 + custom_materials = list(/datum/material/titanium=4000) /obj/item/pickaxe/drill name = "mining drill" @@ -125,7 +141,7 @@ throwforce = 4 item_state = "shovel" w_class = WEIGHT_CLASS_NORMAL - materials = list(MAT_METAL=350) + custom_materials = list(/datum/material/iron=350) attack_verb = list("bashed", "bludgeoned", "thrashed", "whacked") sharpness = IS_SHARP @@ -150,5 +166,5 @@ toolspeed = 0.5 force = 5 throwforce = 7 - materials = list(MAT_METAL=50) + custom_materials = list(/datum/material/iron=50) w_class = WEIGHT_CLASS_SMALL diff --git a/code/modules/mining/equipment/resonator.dm b/code/modules/mining/equipment/resonator.dm index f63b459f10..133cb41c33 100644 --- a/code/modules/mining/equipment/resonator.dm +++ b/code/modules/mining/equipment/resonator.dm @@ -46,7 +46,7 @@ /obj/item/resonator/pre_attack(atom/target, mob/user, params) if(check_allowed_items(target, 1)) CreateResonance(target, user) - return TRUE + return ..() //resonance field, crushes rock, damages mobs /obj/effect/temp_visual/resonance diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index 11190009cc..343083456d 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -114,28 +114,28 @@ name = "Kinetic Accelerator Offensive Mining Explosion Mod" desc = "A device which causes kinetic accelerators to fire AoE blasts that destroy rock and damage creatures." id = "hyperaoemod" - materials = list(MAT_METAL = 7000, MAT_GLASS = 3000, MAT_SILVER = 3000, MAT_GOLD = 3000, MAT_DIAMOND = 4000) + materials = list(/datum/material/iron = 7000, /datum/material/glass = 3000, /datum/material/silver = 3000, /datum/material/gold = 3000, /datum/material/diamond = 4000) build_path = /obj/item/borg/upgrade/modkit/aoe/turfs/andmobs /datum/design/unique_modkit/rapid_repeater name = "Kinetic Accelerator Rapid Repeater Mod" desc = "A device which greatly reduces a kinetic accelerator's cooldown on striking a living target or rock, but greatly increases its base cooldown." id = "repeatermod" - materials = list(MAT_METAL = 5000, MAT_GLASS = 5000, MAT_URANIUM = 8000, MAT_BLUESPACE = 2000) + materials = list(/datum/material/iron = 5000, /datum/material/glass = 5000, /datum/material/uranium = 8000, /datum/material/bluespace = 2000) build_path = /obj/item/borg/upgrade/modkit/cooldown/repeater /datum/design/unique_modkit/resonator_blast name = "Kinetic Accelerator Resonator Blast Mod" desc = "A device which causes kinetic accelerators to fire shots that leave and detonate resonator blasts." id = "resonatormod" - materials = list(MAT_METAL = 5000, MAT_GLASS = 5000, MAT_SILVER = 5000, MAT_URANIUM = 5000) + materials = list(/datum/material/iron = 5000, /datum/material/glass = 5000, /datum/material/silver = 5000, /datum/material/uranium = 5000) build_path = /obj/item/borg/upgrade/modkit/resonator_blasts /datum/design/unique_modkit/bounty name = "Kinetic Accelerator Death Syphon Mod" desc = "A device which causes kinetic accelerators to permanently gain damage against creature types killed with it." id = "bountymod" - materials = list(MAT_METAL = 4000, MAT_SILVER = 4000, MAT_GOLD = 4000, MAT_BLUESPACE = 4000) + materials = list(/datum/material/iron = 4000, /datum/material/silver = 4000, /datum/material/gold = 4000, /datum/material/bluespace = 4000) reagents_list = list("blood" = 40) build_path = /obj/item/borg/upgrade/modkit/bounty diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm index f5150b4753..9561684414 100644 --- a/code/modules/mining/machine_processing.dm +++ b/code/modules/mining/machine_processing.dm @@ -47,8 +47,10 @@ add_fingerprint(usr) if(href_list["material"]) - machine.selected_material = href_list["material"] - machine.selected_alloy = null + var/datum/material/new_material = locate(href_list["material"]) + if(istype(new_material)) + machine.selected_material = new_material + machine.selected_alloy = null if(href_list["alloy"]) machine.selected_material = null @@ -75,15 +77,16 @@ density = TRUE var/obj/machinery/mineral/CONSOLE = null var/on = FALSE - var/selected_material = MAT_METAL + var/datum/material/selected_material = null var/selected_alloy = null var/datum/techweb/stored_research /obj/machinery/mineral/processing_unit/Initialize() . = ..() proximity_monitor = new(src, 1) - AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE), INFINITY, TRUE, /obj/item/stack) + AddComponent(/datum/component/material_container, list(/datum/material/iron, /datum/material/glass, /datum/material/silver, /datum/material/gold, /datum/material/diamond, /datum/material/plasma, /datum/material/uranium, /datum/material/bananium, /datum/material/titanium, /datum/material/bluespace), INFINITY, TRUE, /obj/item/stack) stored_research = new /datum/techweb/specialized/autounlocking/smelter + selected_material = getmaterialref(/datum/material/iron) /obj/machinery/mineral/processing_unit/Destroy() CONSOLE = null @@ -108,13 +111,13 @@ /obj/machinery/mineral/processing_unit/proc/get_machine_data() var/dat = "Smelter control console

" var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) - for(var/mat_id in materials.materials) - var/datum/material/M = materials.materials[mat_id] - dat += "[M.name]: [M.amount] cm³" - if (selected_material == mat_id) + for(var/datum/material/M in materials.materials) + var/amount = materials.materials[M] + dat += "[M.name]: [amount] cm³" + if (selected_material == M) dat += " Smelting" else - dat += " Not Smelting " + dat += " Not Smelting " dat += "
" dat += "

" @@ -153,14 +156,14 @@ /obj/machinery/mineral/processing_unit/proc/smelt_ore() var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) - var/datum/material/mat = materials.materials[selected_material] + var/datum/material/mat = selected_material if(mat) - var/sheets_to_remove = (mat.amount >= (MINERAL_MATERIAL_AMOUNT * SMELT_AMOUNT) ) ? SMELT_AMOUNT : round(mat.amount / MINERAL_MATERIAL_AMOUNT) + var/sheets_to_remove = (materials.materials[mat] >= (MINERAL_MATERIAL_AMOUNT * SMELT_AMOUNT) ) ? SMELT_AMOUNT : round(materials.materials[mat] / MINERAL_MATERIAL_AMOUNT) if(!sheets_to_remove) on = FALSE else var/out = get_step(src, output_dir) - materials.retrieve_sheets(sheets_to_remove, selected_material, out) + materials.retrieve_sheets(sheets_to_remove, mat, out) /obj/machinery/mineral/processing_unit/proc/smelt_alloy() @@ -176,7 +179,7 @@ return var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) - materials.use_amount(alloy.materials, amount) + materials.use_materials(alloy.materials, amount) generate_mineral(alloy.build_path) @@ -188,14 +191,11 @@ var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) - for(var/mat_id in D.materials) - var/M = D.materials[mat_id] - var/datum/material/smelter_mat = materials.materials[mat_id] + for(var/mat_cat in D.materials) + var/required_amount = D.materials[mat_cat] + var/amount = materials.materials[mat_cat] - if(!M || !smelter_mat) - return FALSE - - build_amount = min(build_amount, round(smelter_mat.amount / M)) + build_amount = min(build_amount, round(amount / required_amount)) return build_amount diff --git a/code/modules/mining/machine_redemption.dm b/code/modules/mining/machine_redemption.dm index 0a508cdaf5..0f0ca8bf0c 100644 --- a/code/modules/mining/machine_redemption.dm +++ b/code/modules/mining/machine_redemption.dm @@ -15,9 +15,9 @@ layer = BELOW_OBJ_LAYER var/points = 0 var/ore_pickup_rate = 15 - var/sheet_per_ore = 1 + var/ore_multiplier = 1 var/point_upgrade = 1 - var/list/ore_values = list(MAT_GLASS = 1, MAT_METAL = 1, MAT_PLASMA = 15, MAT_SILVER = 16, MAT_GOLD = 18, MAT_TITANIUM = 30, MAT_URANIUM = 30, MAT_DIAMOND = 50, MAT_BLUESPACE = 50, MAT_BANANIUM = 60) + var/list/ore_values = list(/datum/material/glass = 1, /datum/material/iron = 1, /datum/material/plasma = 15, /datum/material/silver = 16, /datum/material/gold = 18, /datum/material/titanium = 30, /datum/material/uranium = 30, /datum/material/diamond = 50, /datum/material/bluespace = 50, /datum/material/bananium = 60) var/message_sent = FALSE var/list/ore_buffer = list() var/datum/techweb/stored_research @@ -31,26 +31,27 @@ /obj/machinery/mineral/ore_redemption/Destroy() QDEL_NULL(stored_research) + materials = null return ..() /obj/machinery/mineral/ore_redemption/RefreshParts() var/ore_pickup_rate_temp = 15 var/point_upgrade_temp = 1 - var/sheet_per_ore_temp = 1 + var/ore_multiplier_temp = 1 for(var/obj/item/stock_parts/matter_bin/B in component_parts) - sheet_per_ore_temp = 0.65 + (0.35 * B.rating) + ore_multiplier_temp = 0.65 + (0.35 * B.rating) for(var/obj/item/stock_parts/manipulator/M in component_parts) ore_pickup_rate_temp = 15 * M.rating for(var/obj/item/stock_parts/micro_laser/L in component_parts) point_upgrade_temp = 0.65 + (0.35 * L.rating) ore_pickup_rate = ore_pickup_rate_temp point_upgrade = point_upgrade_temp - sheet_per_ore = sheet_per_ore_temp + ore_multiplier = round(ore_multiplier_temp, 0.01) /obj/machinery/mineral/ore_redemption/examine(mob/user) . = ..() if(in_range(user, src) || isobserver(user)) - . += "The status display reads: Smelting [sheet_per_ore] sheet(s) per piece of ore.
Reward point generation at [point_upgrade*100]%.
Ore pickup speed at [ore_pickup_rate].
" + . += "The status display reads: Smelting [ore_multiplier] sheet(s) per piece of ore.
Reward point generation at [point_upgrade*100]%.
Ore pickup speed at [ore_pickup_rate].
" /obj/machinery/mineral/ore_redemption/proc/smelt_ore(obj/item/stack/ore/O) var/datum/component/material_container/mat_container = materials.mat_container @@ -70,13 +71,13 @@ if(!material_amount) qdel(O) //no materials, incinerate it - else if(!mat_container.has_space(material_amount * sheet_per_ore * O.amount)) //if there is no space, eject it + else if(!mat_container.has_space(material_amount * O.amount)) //if there is no space, eject it unload_mineral(O) else - var/mats = O.materials & mat_container.materials + var/mats = O.custom_materials & mat_container.materials var/amount = O.amount - mat_container.insert_item(O, sheet_per_ore) //insert it + mat_container.insert_item(O, ore_multiplier) //insert it materials.silo_log(src, "smelted", amount, "ores", mats) qdel(O) @@ -87,14 +88,14 @@ var/build_amount = 0 - for(var/mat_id in D.materials) - var/M = D.materials[mat_id] - var/datum/material/redemption_mat = mat_container.materials[mat_id] + for(var/mat in D.materials) + var/amount = D.materials[mat] + var/datum/material/redemption_mat_amount = mat_container.materials[mat] - if(!M || !redemption_mat) + if(!amount || !redemption_mat_amount) return FALSE - var/smeltable_sheets = FLOOR(redemption_mat.amount / M, 1) + var/smeltable_sheets = FLOOR(redemption_mat_amount / amount, 1) if(!smeltable_sheets) return FALSE @@ -124,9 +125,9 @@ var/has_minerals = FALSE - for(var/mat_id in mat_container.materials) - var/datum/material/M = mat_container.materials[mat_id] - var/mineral_amount = M.amount / MINERAL_MATERIAL_AMOUNT + for(var/mat in mat_container.materials) + var/datum/material/M = mat + var/mineral_amount = mat_container.materials[mat] / MINERAL_MATERIAL_AMOUNT if(mineral_amount) has_minerals = TRUE msg += "[capitalize(M.name)]: [mineral_amount] sheets
" @@ -202,10 +203,12 @@ data["materials"] = list() var/datum/component/material_container/mat_container = materials.mat_container if (mat_container) - for(var/mat_id in mat_container.materials) - var/datum/material/M = mat_container.materials[mat_id] - var/sheet_amount = M.amount ? M.amount / MINERAL_MATERIAL_AMOUNT : "0" - data["materials"] += list(list("name" = M.name, "id" = M.id, "amount" = sheet_amount, "value" = ore_values[M.id] * point_upgrade)) + for(var/mat in mat_container.materials) + var/datum/material/M = mat + var/amount = mat_container.materials[M] + var/sheet_amount = amount / MINERAL_MATERIAL_AMOUNT + var/ref = REF(M) + data["materials"] += list(list("name" = M.name, "id" = ref, "amount" = sheet_amount, "value" = ore_values[M.type])) data["alloys"] = list() for(var/v in stored_research.researched_designs) @@ -251,16 +254,18 @@ if("Release") if(!mat_container) return + if(materials.on_hold()) to_chat(usr, "Mineral access is on hold, please contact the quartermaster.") else if(!allowed(usr)) //Check the ID inside, otherwise check the user to_chat(usr, "Required access not found.") else - var/mat_id = params["id"] - if(!mat_container.materials[mat_id]) + var/datum/material/mat = locate(params["id"]) + + var/amount = mat_container.materials[mat] + if(!amount) return - var/datum/material/mat = mat_container.materials[mat_id] - var/stored_amount = mat.amount / MINERAL_MATERIAL_AMOUNT + var/stored_amount = CEILING(amount / MINERAL_MATERIAL_AMOUNT, 0.1) if(!stored_amount) return @@ -272,9 +277,10 @@ desired = input("How many sheets?", "How many sheets would you like to smelt?", 1) as null|num var/sheets_to_remove = round(min(desired,50,stored_amount)) - var/count = mat_container.retrieve_sheets(sheets_to_remove, mat_id, get_step(src, output_dir)) + + var/count = mat_container.retrieve_sheets(sheets_to_remove, mat, get_step(src, output_dir)) var/list/mats = list() - mats[mat_id] = MINERAL_MATERIAL_AMOUNT + mats[mat] = MINERAL_MATERIAL_AMOUNT materials.silo_log(src, "released", -count, "sheets", mats) //Logging deleted for quick coding return TRUE @@ -315,7 +321,7 @@ else desired = input("How many sheets?", "How many sheets would you like to smelt?", 1) as null|num var/amount = round(min(desired,50,smelt_amount)) - mat_container.use_amount(alloy.materials, amount) + mat_container.use_materials(alloy.materials, amount) materials.silo_log(src, "released", -amount, "sheets", alloy.materials) var/output if(ispath(alloy.build_path, /obj/item/stack/sheet)) diff --git a/code/modules/mining/machine_silo.dm b/code/modules/mining/machine_silo.dm index 7d6bb80663..c0eba668f1 100644 --- a/code/modules/mining/machine_silo.dm +++ b/code/modules/mining/machine_silo.dm @@ -16,7 +16,7 @@ GLOBAL_LIST_EMPTY(silo_access_logs) /obj/machinery/ore_silo/Initialize(mapload) . = ..() AddComponent(/datum/component/material_container, - list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE, MAT_PLASTIC), + list(/datum/material/iron, /datum/material/glass, /datum/material/silver, /datum/material/gold, /datum/material/diamond, /datum/material/plasma, /datum/material/uranium, /datum/material/bananium, /datum/material/titanium, /datum/material/bluespace, /datum/material/plastic), INFINITY, FALSE, /obj/item/stack, @@ -34,6 +34,8 @@ GLOBAL_LIST_EMPTY(silo_access_logs) var/datum/component/remote_materials/mats = C mats.disconnect_from(src) + connected = null + var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) materials.retrieve_all() @@ -49,7 +51,7 @@ GLOBAL_LIST_EMPTY(silo_access_logs) if(!istype(I) || (I.flags_1 & HOLOGRAM_1) || (I.item_flags & NO_MAT_REDEMPTION)) to_chat(user, "[M] won't accept [I]!") return - var/item_mats = I.materials & materials.materials + var/item_mats = I.custom_materials & materials.materials if(!length(item_mats)) to_chat(user, "[I] does not contain sufficient materials to be accepted by [M].") return @@ -75,15 +77,17 @@ GLOBAL_LIST_EMPTY(silo_access_logs) var/list/ui = list("Ore Silo

Stored Material:

") var/any = FALSE for(var/M in materials.materials) - var/datum/material/mat = materials.materials[M] - var/sheets = round(mat.amount) / MINERAL_MATERIAL_AMOUNT + var/datum/material/mat = M + var/amount = materials.materials[M] + var/sheets = round(amount) / MINERAL_MATERIAL_AMOUNT + var/ref = REF(M) if (sheets) if (sheets >= 1) - ui += "Eject" + ui += "Eject" else ui += "Eject" if (sheets >= 20) - ui += "20x" + ui += "20x" else ui += "20x" ui += "[mat.name]: [sheets] sheets
" @@ -148,7 +152,7 @@ GLOBAL_LIST_EMPTY(silo_access_logs) updateUsrDialog() return TRUE else if(href_list["ejectsheet"]) - var/eject_sheet = href_list["ejectsheet"] + var/datum/material/eject_sheet = locate(href_list["ejectsheet"]) var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) var/count = materials.retrieve_sheets(text2num(href_list["eject_amt"]), eject_sheet, drop_location()) var/list/matlist = list() @@ -227,8 +231,9 @@ GLOBAL_LIST_EMPTY(silo_access_logs) var/list/msg = list("([timestamp]) [machine_name] in [area_name]
[action] [abs(amount)]x [noun]
") var/sep = "" for(var/key in materials) + var/datum/material/M = key var/val = round(materials[key]) / MINERAL_MATERIAL_AMOUNT msg += sep sep = ", " - msg += "[amount < 0 ? "-" : "+"][val] [copytext(key, length(key[1]) + 1)]" + msg += "[amount < 0 ? "-" : "+"][val] [M.name]" formatted = msg.Join() diff --git a/code/modules/mining/machine_stacking.dm b/code/modules/mining/machine_stacking.dm index 31e977c6cf..5a83955bce 100644 --- a/code/modules/mining/machine_stacking.dm +++ b/code/modules/mining/machine_stacking.dm @@ -86,6 +86,11 @@ proximity_monitor = new(src, 1) materials = AddComponent(/datum/component/remote_materials, "stacking", mapload, FALSE, mapload && force_connect) +/obj/machinery/mineral/stacking_machine/Destroy() + CONSOLE = null + materials = null + return ..() + /obj/machinery/mineral/stacking_machine/HasProximity(atom/movable/AM) if(istype(AM, /obj/item/stack/sheet) && AM.loc == get_step(src, input_dir)) process_sheet(AM) @@ -107,9 +112,9 @@ qdel(inp) if(materials.silo && !materials.on_hold()) //Dump the sheets to the silo - var/matlist = storage.materials & materials.mat_container.materials + var/matlist = storage.custom_materials & materials.mat_container.materials if (length(matlist)) - var/inserted = materials.mat_container.insert_stack(storage) + var/inserted = materials.mat_container.insert_item(storage) materials.silo_log(src, "collected", inserted, "sheets", matlist) if (QDELETED(storage)) stack_list -= key diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index 54f8e11b07..78b1a665db 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -122,13 +122,10 @@ to_chat(usr, "Error: Insufficient credits for [prize.equipment_name] on [I]!") flick(icon_deny, src) else - if (I.mining_points -= prize.cost) - to_chat(usr, "[src] clanks to life briefly before vending [prize.equipment_name]!") - new prize.equipment_path(src.loc) - SSblackbox.record_feedback("nested tally", "mining_equipment_bought", 1, list("[type]", "[prize.equipment_path]")) - else - to_chat(usr, "Error: Transaction failure, please try again later!") - flick(icon_deny, src) + I.mining_points -= prize.cost + to_chat(usr, "[src] clanks to life briefly before vending [prize.equipment_name]!") + new prize.equipment_path(src.loc) + SSblackbox.record_feedback("nested tally", "mining_equipment_bought", 1, list("[type]", "[prize.equipment_path]")) else to_chat(usr, "Error: An ID with a registered account is required!") flick(icon_deny, src) diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index 1ddb3a3189..ac4cee8c42 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -93,7 +93,7 @@ req_access = list() circuit = /obj/item/circuitboard/computer/mining_shuttle/common shuttleId = "mining_common" - possible_destinations = "whiteship_home;lavaland_common_away;landing_zone_dock;mining_public" + possible_destinations = "lavaland_common_away;commonmining_home" /**********************Mining car (Crate like thing, not the rail car)**************************/ diff --git a/code/modules/mining/mint.dm b/code/modules/mining/mint.dm index f32afb2898..c9f9a2cfbb 100644 --- a/code/modules/mining/mint.dm +++ b/code/modules/mining/mint.dm @@ -8,14 +8,28 @@ density = TRUE var/newCoins = 0 //how many coins the machine made in it's last load var/processing = FALSE - var/chosen = MAT_METAL //which material will be used to make coins + var/chosen = /datum/material/iron //which material will be used to make coins var/coinsToProduce = 10 speed_process = TRUE /obj/machinery/mineral/mint/Initialize() . = ..() - AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_PLASMA, MAT_SILVER, MAT_GOLD, MAT_URANIUM, MAT_DIAMOND, MAT_BANANIUM), MINERAL_MATERIAL_AMOUNT * 50, FALSE, /obj/item/stack) + AddComponent(/datum/component/material_container, list( + /datum/material/iron, + /datum/material/plasma, + /datum/material/silver, + /datum/material/gold, + /datum/material/uranium, + /datum/material/titanium, + /datum/material/diamond, + /datum/material/bananium, + /datum/material/adamantine, + /datum/material/mythril, + /datum/material/plastic, + /datum/material/runite + ), MINERAL_MATERIAL_AMOUNT * 50, FALSE, /obj/item/stack) + chosen = getmaterialref(chosen) /obj/machinery/mineral/mint/process() var/turf/T = get_step(src, input_dir) @@ -24,7 +38,9 @@ var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) for(var/obj/item/stack/sheet/O in T) - materials.insert_stack(O, O.amount) + var/inserted = materials.insert_item(O) + if(inserted) + qdel(O) /obj/machinery/mineral/mint/attack_hand(mob/user) . = ..() @@ -33,17 +49,17 @@ var/dat = "Coin Press
" var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) - for(var/mat_id in materials.materials) - var/datum/material/M = materials.materials[mat_id] - if(!M.amount && chosen != mat_id) + for(var/datum/material/M in materials.materials) + var/amount = materials.get_material_amount(M) + if(!amount && chosen != M) continue - dat += "
[M.name] amount: [M.amount] cm3 " - if (chosen == mat_id) + dat += "
[M.name] amount: [amount] cm3 " + if (chosen == M) dat += "Chosen" else - dat += "Choose" + dat += "Choose" - var/datum/material/M = materials.materials[chosen] + var/datum/material/M = chosen dat += "

Will produce [coinsToProduce] [lowertext(M.name)] coins if enough materials are available.
" dat += "-10 " @@ -67,22 +83,24 @@ return var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) if(href_list["choose"]) - if(materials.materials[href_list["choose"]]) - chosen = href_list["choose"] + var/datum/material/new_material = locate(href_list["choose"]) + if(istype(new_material)) + chosen = new_material if(href_list["chooseAmt"]) coinsToProduce = CLAMP(coinsToProduce + text2num(href_list["chooseAmt"]), 0, 1000) + updateUsrDialog() if(href_list["makeCoins"]) var/temp_coins = coinsToProduce processing = TRUE icon_state = "coinpress1" var/coin_mat = MINERAL_MATERIAL_AMOUNT * 0.2 - var/datum/material/M = materials.materials[chosen] - if(!M || !M.coin_type) + var/datum/material/M = chosen + if(!M) updateUsrDialog() return - while(coinsToProduce > 0 && materials.use_amount_type(coin_mat, chosen)) - create_coins(M.coin_type) + while(coinsToProduce > 0 && materials.use_amount_mat(coin_mat, chosen)) + create_coins() coinsToProduce-- newCoins++ src.updateUsrDialog() @@ -94,12 +112,15 @@ src.updateUsrDialog() return -/obj/machinery/mineral/mint/proc/create_coins(P) +/obj/machinery/mineral/mint/proc/create_coins() var/turf/T = get_step(src,output_dir) + var/temp_list = list() + temp_list[chosen] = 400 if(T) - var/obj/item/O = new P(src) - var/obj/item/storage/bag/money/M = locate(/obj/item/storage/bag/money, T) - if(!M) - M = new /obj/item/storage/bag/money(src) - unload_mineral(M) - O.forceMove(M) + var/obj/item/O = new /obj/item/coin(src) + var/obj/item/storage/bag/money/B = locate(/obj/item/storage/bag/money, T) + O.set_custom_materials(temp_list) + if(!B) + B = new /obj/item/storage/bag/money(src) + unload_mineral(B) + O.forceMove(B) diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm index 7765bf8713..67c26abaef 100644 --- a/code/modules/mining/ores_coins.dm +++ b/code/modules/mining/ores_coins.dm @@ -17,6 +17,7 @@ var/points = 0 //How many points this ore gets you from the ore redemption machine var/refined_type = null //What this ore defaults to being refined into novariants = TRUE // Ore stacks handle their icon updates themselves to keep the illusion that there's more going + mats_per_stack = MINERAL_MATERIAL_AMOUNT var/list/stack_overlays /obj/item/stack/ore/update_icon() @@ -69,7 +70,8 @@ item_state = "Uranium ore" singular_name = "uranium ore chunk" points = 30 - materials = list(MAT_URANIUM=MINERAL_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/uranium=MINERAL_MATERIAL_AMOUNT) + material_flags = MATERIAL_NO_EFFECTS refined_type = /obj/item/stack/sheet/mineral/uranium /obj/item/stack/ore/iron @@ -78,7 +80,7 @@ item_state = "Iron ore" singular_name = "iron ore chunk" points = 1 - materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/iron=MINERAL_MATERIAL_AMOUNT) refined_type = /obj/item/stack/sheet/metal /obj/item/stack/ore/glass @@ -87,17 +89,17 @@ item_state = "Glass ore" singular_name = "sand pile" points = 1 - materials = list(MAT_GLASS=MINERAL_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/glass=MINERAL_MATERIAL_AMOUNT) refined_type = /obj/item/stack/sheet/glass w_class = WEIGHT_CLASS_TINY GLOBAL_LIST_INIT(sand_recipes, list(\ - new /datum/stack_recipe("sandstone", /obj/item/stack/sheet/mineral/sandstone, 1, 1, 50)\ - )) + new/datum/stack_recipe("sandstone", /obj/item/stack/sheet/mineral/sandstone, 1, 1, 50),\ + )) -/obj/item/stack/ore/glass/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.sand_recipes +/obj/item/stack/ore/glass/get_main_recipes() . = ..() + . += GLOB.sand_recipes /obj/item/stack/ore/glass/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) if(..() || !ishuman(hit_atom)) @@ -135,21 +137,20 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ item_state = "Plasma ore" singular_name = "plasma ore chunk" points = 15 - materials = list(MAT_PLASMA=MINERAL_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/plasma=MINERAL_MATERIAL_AMOUNT) refined_type = /obj/item/stack/sheet/mineral/plasma /obj/item/stack/ore/plasma/welder_act(mob/living/user, obj/item/I) to_chat(user, "You can't hit a high enough temperature to smelt [src] properly!") return TRUE - /obj/item/stack/ore/silver name = "silver ore" icon_state = "Silver ore" item_state = "Silver ore" singular_name = "silver ore chunk" points = 16 - materials = list(MAT_SILVER=MINERAL_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/silver=MINERAL_MATERIAL_AMOUNT) refined_type = /obj/item/stack/sheet/mineral/silver /obj/item/stack/ore/gold @@ -158,7 +159,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ icon_state = "Gold ore" singular_name = "gold ore chunk" points = 18 - materials = list(MAT_GOLD=MINERAL_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/gold=MINERAL_MATERIAL_AMOUNT) refined_type = /obj/item/stack/sheet/mineral/gold /obj/item/stack/ore/diamond @@ -167,7 +168,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ item_state = "Diamond ore" singular_name = "diamond ore chunk" points = 50 - materials = list(MAT_DIAMOND=MINERAL_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/diamond=MINERAL_MATERIAL_AMOUNT) refined_type = /obj/item/stack/sheet/mineral/diamond /obj/item/stack/ore/bananium @@ -176,7 +177,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ item_state = "Bananium ore" singular_name = "bananium ore chunk" points = 60 - materials = list(MAT_BANANIUM=MINERAL_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/bananium=MINERAL_MATERIAL_AMOUNT) refined_type = /obj/item/stack/sheet/mineral/bananium /obj/item/stack/ore/titanium @@ -185,7 +186,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ item_state = "Titanium ore" singular_name = "titanium ore chunk" points = 50 - materials = list(MAT_TITANIUM=MINERAL_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/titanium=MINERAL_MATERIAL_AMOUNT) refined_type = /obj/item/stack/sheet/mineral/titanium /obj/item/stack/ore/slag @@ -313,17 +314,33 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ /obj/item/coin icon = 'icons/obj/economy.dmi' name = "coin" - icon_state = "coin__heads" + icon_state = "coin" flags_1 = CONDUCT_1 force = 1 throwforce = 2 w_class = WEIGHT_CLASS_TINY + custom_materials = list(/datum/material/iron = 400) + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR var/string_attached var/list/sideslist = list("heads","tails") - var/cmineral = null var/cooldown = 0 - var/value = 1 + var/value var/coinflip + item_flags = NO_MAT_REDEMPTION //You know, it's kind of a problem that money is worth more extrinsicly than intrinsically in this universe. + +/obj/item/coin/Initialize() + . = ..() + coinflip = pick(sideslist) + icon_state = "coin_[coinflip]" + pixel_x = rand(0,16)-8 + pixel_y = rand(0,8)-8 + +/obj/item/coin/set_custom_materials(list/materials, multiplier = 1) + . = ..() + value = 0 + for(var/i in custom_materials) + var/datum/material/M = i + value += M.value_per_unit * custom_materials[M] /obj/item/coin/suicide_act(mob/living/user) user.visible_message("[user] contemplates suicide with \the [src]!") @@ -342,101 +359,9 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ else user.visible_message("\the [src] lands on [coinflip]! [user] keeps on living!") -/obj/item/coin/Initialize() - . = ..() - pixel_x = rand(0,16)-8 - pixel_y = rand(0,8)-8 - /obj/item/coin/examine(mob/user) . = ..() - if(value) - . += "It's worth [value] credit\s." - -/obj/item/coin/gold - name = "gold coin" - cmineral = "gold" - icon_state = "coin_gold_heads" - value = 50 - materials = list(MAT_GOLD = MINERAL_MATERIAL_AMOUNT*0.2) - grind_results = list(/datum/reagent/gold = 4) - -/obj/item/coin/silver - name = "silver coin" - cmineral = "silver" - icon_state = "coin_silver_heads" - value = 20 - materials = list(MAT_SILVER = MINERAL_MATERIAL_AMOUNT*0.2) - grind_results = list(/datum/reagent/silver = 4) - -/obj/item/coin/diamond - name = "diamond coin" - cmineral = "diamond" - icon_state = "coin_diamond_heads" - value = 500 - materials = list(MAT_DIAMOND = MINERAL_MATERIAL_AMOUNT*0.2) - grind_results = list(/datum/reagent/carbon = 4) - -/obj/item/coin/iron - name = "iron coin" - cmineral = "iron" - icon_state = "coin_iron_heads" - value = 1 - materials = list(MAT_METAL = MINERAL_MATERIAL_AMOUNT*0.2) - grind_results = list(/datum/reagent/iron = 4) - -/obj/item/coin/plasma - name = "plasma coin" - cmineral = "plasma" - icon_state = "coin_plasma_heads" - value = 100 - materials = list(MAT_PLASMA = MINERAL_MATERIAL_AMOUNT*0.2) - grind_results = list(/datum/reagent/toxin/plasma = 4) - -/obj/item/coin/uranium - name = "uranium coin" - cmineral = "uranium" - icon_state = "coin_uranium_heads" - value = 80 - materials = list(MAT_URANIUM = MINERAL_MATERIAL_AMOUNT*0.2) - grind_results = list(/datum/reagent/uranium = 4) - -/obj/item/coin/bananium - name = "bananium coin" - cmineral = "bananium" - icon_state = "coin_bananium_heads" - value = 1000 //makes the clown cry - materials = list(MAT_BANANIUM = MINERAL_MATERIAL_AMOUNT*0.2) - grind_results = list(/datum/reagent/consumable/banana = 4) - -/obj/item/coin/adamantine - name = "adamantine coin" - cmineral = "adamantine" - icon_state = "coin_adamantine_heads" - value = 1500 - -/obj/item/coin/mythril - name = "mythril coin" - cmineral = "mythril" - icon_state = "coin_mythril_heads" - value = 3000 - -/obj/item/coin/twoheaded - cmineral = "iron" - icon_state = "coin_iron_heads" - desc = "Hey, this coin's the same on both sides!" - sideslist = list("heads") - materials = list(MAT_METAL = MINERAL_MATERIAL_AMOUNT*0.2) - value = 1 - grind_results = list(/datum/reagent/iron = 4) - -/obj/item/coin/antagtoken - name = "antag token" - icon_state = "coin_valid_valid" - cmineral = "valid" - desc = "A novelty coin that helps the heart know what hard evidence cannot prove." - sideslist = list("valid", "salad") - value = 0 - grind_results = list(/datum/reagent/consumable/sodiumchloride = 4) + . += "It's worth [value] credit\s." /obj/item/coin/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/stack/cable_coil)) @@ -470,10 +395,10 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ if(string_attached) //does the coin have a wire attached to_chat(user, "The coin won't flip very well with something attached!" ) return FALSE//do not flip the coin - coinflip = pick(sideslist) cooldown = world.time + 15 - flick("coin_[cmineral]_flip", src) - icon_state = "coin_[cmineral]_[coinflip]" + flick("coin_[coinflip]_flip", src) + coinflip = pick(sideslist) + icon_state = "coin_[coinflip]" playsound(user.loc, 'sound/items/coinflip.ogg', 50, 1) var/oldloc = loc sleep(15) @@ -483,5 +408,51 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ "You hear the clattering of loose change.") return TRUE//did the coin flip? useful for suicide_act +/obj/item/coin/gold + custom_materials = list(/datum/material/gold = 400) + +/obj/item/coin/silver + custom_materials = list(/datum/material/silver = 400) + +/obj/item/coin/diamond + custom_materials = list(/datum/material/diamond = 400) + +/obj/item/coin/plasma + custom_materials = list(/datum/material/plasma = 400) + +/obj/item/coin/uranium + custom_materials = list(/datum/material/uranium = 400) + +/obj/item/coin/titanium + custom_materials = list(/datum/material/titanium = 400) + +/obj/item/coin/bananium + custom_materials = list(/datum/material/bananium = 400) + +/obj/item/coin/adamantine + custom_materials = list(/datum/material/adamantine = 400) + +/obj/item/coin/mythril + custom_materials = list(/datum/material/mythril = 400) + +/obj/item/coin/plastic + custom_materials = list(/datum/material/plastic = 400) + +/obj/item/coin/runite + custom_materials = list(/datum/material/runite = 400) + +/obj/item/coin/twoheaded + desc = "Hey, this coin's the same on both sides!" + sideslist = list("heads") + +/obj/item/coin/antagtoken + name = "antag token" + desc = "A novelty coin that helps the heart know what hard evidence cannot prove." + icon_state = "coin_valid" + custom_materials = list(/datum/material/plastic = 400) + sideslist = list("valid", "salad") + material_flags = NONE + +/obj/item/coin/iron #undef ORESTACK_OVERLAYS_MAX diff --git a/code/modules/mining/satchel_ore_boxdm.dm b/code/modules/mining/satchel_ore_boxdm.dm index d78a406b80..1d803371be 100644 --- a/code/modules/mining/satchel_ore_boxdm.dm +++ b/code/modules/mining/satchel_ore_boxdm.dm @@ -18,6 +18,10 @@ else return ..() +/obj/structure/ore_box/ComponentInitialize() + . = ..() + AddComponent(/datum/component/rad_insulation, 0.01) //please datum mats no more cancer + /obj/structure/ore_box/crowbar_act(mob/living/user, obj/item/I) if(I.use_tool(src, user, 50, volume=50)) user.visible_message("[user] pries \the [src] apart.", 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 241ec8118e..92bc8e407b 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 @@ -16,7 +16,7 @@ from doing this unless you absolutely know what you are doing, and have defined a conversion in savefile.dm */ -/proc/init_sprite_accessory_subtypes(prototype, list/L, list/male, list/female,var/roundstart = FALSE)//Roundstart argument builds a specific list for roundstart parts where some parts may be locked +/proc/init_sprite_accessory_subtypes(prototype, list/L, list/male, list/female, roundstart = FALSE, skip_prototype = TRUE)//Roundstart argument builds a specific list for roundstart parts where some parts may be locked if(!istype(L)) L = list() if(!istype(male)) @@ -25,7 +25,7 @@ female = list() for(var/path in typesof(prototype)) - if(path == prototype) + if(path == prototype && skip_prototype) continue if(roundstart) var/datum/sprite_accessory/P = path diff --git a/code/modules/mob/dead/new_player/sprite_accessories/tails.dm b/code/modules/mob/dead/new_player/sprite_accessories/tails.dm index dac91b5445..5ae3c9a8b3 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/tails.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/tails.dm @@ -170,6 +170,18 @@ icon = 'modular_citadel/icons/mob/mam_tails.dmi' color_src = MATRIXED +/datum/sprite_accessory/tails/human/twocat + name = "Cat, Double" + icon_state = "twocat" + icon = 'modular_citadel/icons/mob/mam_tails.dmi' + color_src = MATRIXED + +/datum/sprite_accessory/tails_animated/human/twocat + name = "Cat, Double" + icon_state = "twocat" + icon = 'modular_citadel/icons/mob/mam_tails.dmi' + color_src = MATRIXED + /datum/sprite_accessory/tails/human/cow name = "Cow" icon_state = "cow" @@ -562,6 +574,14 @@ /datum/sprite_accessory/mam_tails_animated/catbig name = "Cat, Big" icon_state = "catbig" + +/datum/sprite_accessory/mam_tails/twocat + name = "Cat, Double" + icon_state = "twocat" + +/datum/sprite_accessory/mam_tails_animated/twocat + name = "Cat, Double" + icon_state = "twocat" /datum/sprite_accessory/mam_tails/corvid name = "Corvid" diff --git a/code/modules/mob/dead/observer/login.dm b/code/modules/mob/dead/observer/login.dm index 1b328dbc69..8daf8ec052 100644 --- a/code/modules/mob/dead/observer/login.dm +++ b/code/modules/mob/dead/observer/login.dm @@ -6,7 +6,7 @@ var/preferred_form = null if(IsAdminGhost(src)) - has_unlimited_silicon_privilege = 1 + silicon_privileges = ALL if(client.prefs.unlock_content) preferred_form = client.prefs.ghost_form diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 3559edc0fb..d2cf3608e6 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -55,7 +55,7 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) var/deadchat_name var/datum/spawners_menu/spawners_menu -/mob/dead/observer/Initialize() +/mob/dead/observer/Initialize(mapload, mob/body) set_invisibility(GLOB.observer_default_invisibility) verbs += list( @@ -76,11 +76,7 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) updateallghostimages() - var/turf/T - var/mob/body = loc - if(ismob(body)) - T = get_turf(body) //Where is the body located? - + if(body) gender = body.gender if(body.mind && body.mind.name) name = body.mind.name @@ -105,14 +101,15 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) update_icon() - if(!T) + if(!isturf(loc)) + var/turf/T var/list/turfs = get_area_turfs(/area/shuttle/arrival) if(turfs.len) T = pick(turfs) else T = SSmapping.get_station_center() - forceMove(T) + forceMove(T) if(!name) //To prevent nameless ghosts name = random_unique_name(gender) @@ -196,13 +193,13 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) else ghostimage_default.icon_state = new_form - if(ghost_accs >= GHOST_ACCS_DIR && icon_state in GLOB.ghost_forms_with_directions_list) //if this icon has dirs AND the client wants to show them, we make sure we update the dir on movement + if(ghost_accs >= GHOST_ACCS_DIR && (icon_state in GLOB.ghost_forms_with_directions_list)) //if this icon has dirs AND the client wants to show them, we make sure we update the dir on movement updatedir = 1 else updatedir = 0 //stop updating the dir in case we want to show accessories with dirs on a ghost sprite without dirs setDir(2 )//reset the dir to its default so the sprites all properly align up - if(ghost_accs == GHOST_ACCS_FULL && icon_state in GLOB.ghost_forms_with_accessories_list) //check if this form supports accessories and if the client wants to show them + if(ghost_accs == GHOST_ACCS_FULL && (icon_state in GLOB.ghost_forms_with_accessories_list)) //check if this form supports accessories and if the client wants to show them var/datum/sprite_accessory/S if(facial_hair_style) S = GLOB.facial_hair_styles_list[facial_hair_style] @@ -268,7 +265,7 @@ Works together with spawning an observer, noted above. if(!key || key[1] == "@" || (SEND_SIGNAL(src, COMSIG_MOB_GHOSTIZE, can_reenter_corpse, special, penalize) & 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(src) // Transfer safety to observer spawning proc. + 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 if (client && client.prefs && client.prefs.auto_ooc) @@ -292,7 +289,8 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp var/roundstart_quit_limit = CONFIG_GET(number/roundstart_suicide_time_limit) MINUTES if(world.time < roundstart_quit_limit) penalty += roundstart_quit_limit - world.time - if(penalty + world.realtime - SSshuttle.realtimeofstart > SSshuttle.auto_call + SSshuttle.emergencyCallTime + SSshuttle.emergencyDockTime + SSshuttle.emergencyEscapeTime) + var/maximumRoundEnd = SSautotransfer.starttime + SSautotransfer.voteinterval * SSautotransfer.maxvotes + 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) @@ -310,8 +308,9 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp var/obj/machinery/cryopod/C = loc C.despawn_occupant() else - ghostize(0, penalize = TRUE, voluntary = TRUE) //0 parameter is so we can never re-enter our body, "Charlie, you can never come baaaack~" :3 suicide_log(TRUE) + ghostize(FALSE, penalize = TRUE, voluntary = TRUE) //FALSE parameter is so we can never re-enter our body, "Charlie, you can never come baaaack~" :3 + /mob/camera/verb/ghost() set category = "OOC" @@ -325,7 +324,8 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp var/roundstart_quit_limit = CONFIG_GET(number/roundstart_suicide_time_limit) MINUTES if(world.time < roundstart_quit_limit) penalty += roundstart_quit_limit - world.time - if(penalty + world.realtime - SSshuttle.realtimeofstart > SSshuttle.auto_call + SSshuttle.emergencyCallTime + SSshuttle.emergencyDockTime + SSshuttle.emergencyEscapeTime) + var/maximumRoundEnd = SSautotransfer.starttime + SSautotransfer.voteinterval * SSautotransfer.maxvotes + 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") @@ -479,32 +479,6 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp pixel_y = 0 animate(src, pixel_y = 2, time = 10, loop = -1) -/mob/dead/observer/verb/observe() - set name = "Observe" - set category = "Ghost" - - var/list/creatures = getpois() - - reset_perspective(null) - - var/eye_name = null - - eye_name = input("Please, select a player!", "Observe", null, null) as null|anything in creatures - - if (!eye_name) - return - - var/mob/mob_eye = creatures[eye_name] - //Istype so we filter out points of interest that are not mobs - if(client && mob_eye && istype(mob_eye)) - client.eye = mob_eye - if(mob_eye.hud_used) - client.screen = list() - LAZYINITLIST(mob_eye.observers) - mob_eye.observers |= src - mob_eye.hud_used.show_hud(mob_eye.hud_used.hud_version, src) - observetarget = mob_eye - /mob/dead/observer/verb/jumptomob() //Moves the ghost instead of just changing the ghosts's eye -Nodrak set category = "Ghost" set name = "Jump to Mob" @@ -796,7 +770,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp update_icon() /mob/dead/observer/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE, no_tk=FALSE) - return IsAdminGhost(usr) || (M.ghost_flags & INTERACT_GHOST_READ) + return IsAdminGhost(usr) /mob/dead/observer/is_literate() return 1 @@ -831,6 +805,32 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp client.screen = list() hud_used.show_hud(hud_used.hud_version) +/mob/dead/observer/verb/observe() + set name = "Observe" + set category = "OOC" + + var/list/creatures = getpois() + + reset_perspective(null) + + var/eye_name = null + + eye_name = input("Please, select a player!", "Observe", null, null) as null|anything in creatures + + if (!eye_name) + return + + var/mob/mob_eye = creatures[eye_name] + //Istype so we filter out points of interest that are not mobs + if(client && mob_eye && istype(mob_eye)) + client.eye = mob_eye + if(mob_eye.hud_used) + client.screen = list() + LAZYINITLIST(mob_eye.observers) + mob_eye.observers |= src + mob_eye.hud_used.show_hud(mob_eye.hud_used.hud_version, src) + observetarget = mob_eye + /mob/dead/observer/verb/register_pai_candidate() set category = "Ghost" set name = "pAI Setup" diff --git a/code/modules/mob/dead/observer/say.dm b/code/modules/mob/dead/observer/say.dm index 2c4743f7d3..8712f39531 100644 --- a/code/modules/mob/dead/observer/say.dm +++ b/code/modules/mob/dead/observer/say.dm @@ -22,7 +22,7 @@ . = say_dead(message) /mob/dead/observer/Hear(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, message_mode, atom/movable/source) - . = ..() + SEND_SIGNAL(src, COMSIG_MOVABLE_HEAR, args) //parent calls can't overwrite the current proc args. var/atom/movable/to_follow = speaker if(radio_freq) var/atom/movable/virtualspeaker/V = speaker @@ -36,4 +36,3 @@ // Recompose the message, because it's scrambled by default message = compose_message(speaker, message_language, raw_message, radio_freq, spans, message_mode, FALSE, source) to_chat(src, "[link] [message]") - diff --git a/code/modules/mob/living/brain/brain_item.dm b/code/modules/mob/living/brain/brain_item.dm index a14fdb0b53..3b64c35969 100644 --- a/code/modules/mob/living/brain/brain_item.dm +++ b/code/modules/mob/living/brain/brain_item.dm @@ -10,7 +10,7 @@ organ_flags = ORGAN_VITAL attack_verb = list("attacked", "slapped", "whacked") ///The brain's organ variables are significantly more different than the other organs, with half the decay rate for balance reasons, and twice the maxHealth - decay_factor = STANDARD_ORGAN_DECAY / 4 //30 minutes of decaying to result in a fully damaged brain, since a fast decay rate would be unfun gameplay-wise + decay_factor = STANDARD_ORGAN_DECAY / 2 //30 minutes of decaying to result in a fully damaged brain, since a fast decay rate would be unfun gameplay-wise healing_factor = STANDARD_ORGAN_HEALING / 2 maxHealth = BRAIN_DAMAGE_DEATH diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index ef33afec25..574a5aedd2 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -3,7 +3,7 @@ /mob/living/carbon/Initialize() . = ..() - create_reagents(1000) + create_reagents(1000, NONE, NO_REAGENTS_VALUE) update_body_parts() //to update the carbon's new bodyparts appearance GLOB.carbon_list += src blood_volume = (BLOOD_VOLUME_NORMAL * blood_ratio) @@ -834,12 +834,31 @@ update_inv_handcuffed() update_hud_handcuffed() +/mob/living/carbon/proc/can_defib() + var/tlimit = DEFIB_TIME_LIMIT * 10 + var/obj/item/organ/heart = getorgan(/obj/item/organ/heart) + if(suiciding || hellbound || HAS_TRAIT(src, TRAIT_HUSK)) + return + if((world.time - timeofdeath) > tlimit) + return + if((getBruteLoss() >= MAX_REVIVE_BRUTE_DAMAGE) || (getFireLoss() >= MAX_REVIVE_FIRE_DAMAGE)) + return + if(!heart || (heart.organ_flags & ORGAN_FAILING)) + return + var/obj/item/organ/brain/BR = getorgan(/obj/item/organ/brain) + if(QDELETED(BR) || BR.brain_death || (BR.organ_flags & ORGAN_FAILING) || suiciding) + return + return TRUE + /mob/living/carbon/fully_heal(admin_revive = FALSE) if(reagents) reagents.clear_reagents() var/obj/item/organ/brain/B = getorgan(/obj/item/organ/brain) if(B) B.brain_death = FALSE + for(var/O in internal_organs) + var/obj/item/organ/organ = O + organ.setOrganDamage(0) for(var/thing in diseases) var/datum/disease/D = thing if(D.severity != DISEASE_SEVERITY_POSITIVE) @@ -852,7 +871,8 @@ qdel(R) update_handcuffed() if(reagents) - reagents.addiction_list = list() + for(var/addi in reagents.addiction_list) + reagents.remove_addiction(addi) cure_all_traumas(TRAUMA_RESILIENCE_MAGIC) ..() // heal ears after healing traits, since ears check TRAIT_DEAF trait @@ -987,3 +1007,6 @@ return TRUE if(isclothing(wear_mask) && (wear_mask.clothing_flags & SCAN_REAGENTS)) return TRUE + +/mob/living/carbon/can_hold_items() + return TRUE diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index bb4442559e..637178ffe6 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -274,7 +274,7 @@ return if(health >= 0 && !(HAS_TRAIT(src, TRAIT_FAKEDEATH))) - + var/friendly_check = FALSE if(lying) if(buckled) to_chat(M, "You need to unbuckle [src] first to do that!") @@ -289,39 +289,35 @@ playsound(src, 'sound/items/Nose_boop.ogg', 50, 0) else if(check_zone(M.zone_selected) == "head") - var/mob/living/carbon/human/H = src - var/datum/species/pref_species = H.dna.species + var/datum/species/S + if(ishuman(src)) + S = dna.species - M.visible_message("[M] gives [H] a pat on the head to make [p_them()] feel better!", \ - "You give [H] a pat on the head to make [p_them()] feel better!") + M.visible_message("[M] gives [src] a pat on the head to make [p_them()] feel better!", \ + "You give [src] a pat on the head to make [p_them()] feel better!") SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "headpat", /datum/mood_event/headpat) - if(HAS_TRAIT(M, TRAIT_FRIENDLY)) - var/datum/component/mood/mood = M.GetComponent(/datum/component/mood) - if (mood.sanity >= SANITY_GREAT) - SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "friendly_hug", /datum/mood_event/besthug, M) - else if (mood.sanity >= SANITY_DISTURBED) - SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "friendly_hug", /datum/mood_event/betterhug, M) - if(H.dna.species.can_wag_tail(H)) - if("tail_human" in pref_species.default_features) - if(H.dna.features["tail_human"] == "None") + friendly_check = TRUE + if(S?.can_wag_tail(src)) + if("tail_human" in S.default_features) + if(dna.features["tail_human"] == "None") return else - if(!H.dna.species.is_wagging_tail()) - H.emote("wag") + if(!dna.species.is_wagging_tail()) + emote("wag") - if("tail_lizard" in pref_species.default_features) - if(H.dna.features["tail_lizard"] == "None") + if("tail_lizard" in S.default_features) + if(dna.features["tail_lizard"] == "None") return else - if(!H.dna.species.is_wagging_tail()) - H.emote("wag") + if(!dna.species.is_wagging_tail()) + emote("wag") - if("mam_tail" in pref_species.default_features) - if(H.dna.features["mam_tail"] == "None") + if("mam_tail" in S.default_features) + if(dna.features["mam_tail"] == "None") return else - if(!H.dna.species.is_wagging_tail()) - H.emote("wag") + if(!dna.species.is_wagging_tail()) + emote("wag") else return @@ -335,8 +331,11 @@ M.visible_message("[M] hugs [src] to make [p_them()] feel better!", \ "You hug [src] to make [p_them()] feel better!") SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "hug", /datum/mood_event/hug) - if(HAS_TRAIT(M, TRAIT_FRIENDLY)) - var/datum/component/mood/mood = M.GetComponent(/datum/component/mood) + friendly_check = TRUE + + if(friendly_check && HAS_TRAIT(M, TRAIT_FRIENDLY)) + var/datum/component/mood/mood = M.GetComponent(/datum/component/mood) + if(mood) if (mood.sanity >= SANITY_GREAT) SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "friendly_hug", /datum/mood_event/besthug, M) else if (mood.sanity >= SANITY_DISTURBED) diff --git a/code/modules/mob/living/carbon/damage_procs.dm b/code/modules/mob/living/carbon/damage_procs.dm index 5020cc7379..414f339b28 100644 --- a/code/modules/mob/living/carbon/damage_procs.dm +++ b/code/modules/mob/living/carbon/damage_procs.dm @@ -1,6 +1,7 @@ /mob/living/carbon/apply_damage(damage, damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE) + SEND_SIGNAL(src, COMSIG_MOB_APPLY_DAMGE, damage, damagetype, def_zone) var/hit_percent = (100-blocked)/100 if(!forced && hit_percent <= 0) return 0 diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index b560699a58..fec82b357f 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -99,6 +99,10 @@ . += "[t_He] [t_has] [glasses.get_examine_string(user)] covering [t_his] eyes." else if(eye_color == BLOODCULT_EYE && iscultist(src) && HAS_TRAIT(src, TRAIT_CULT_EYES)) . += "[t_His] eyes are glowing an unnatural red!" + else if(HAS_TRAIT(src, TRAIT_HIJACKER)) + var/obj/item/implant/hijack/H = user.getImplant(/obj/item/implant/hijack) + if (H && !H.stealthmode && H.toggled) + . += "[t_His] eyes are flickering a bright yellow!" //ears if(ears && !(SLOT_EARS in obscured)) @@ -390,10 +394,10 @@ if(invisible_man) . += "...?" else - var/flavor = print_flavor_text() + var/flavor = print_flavor_text(flavor_text) if(flavor) . += flavor - var/temp_flavor = print_flavor_text_2() + var/temp_flavor = print_flavor_text(flavor_text_2,TRUE) if(temp_flavor) . += temp_flavor SEND_SIGNAL(src, COMSIG_PARENT_EXAMINE, user, .) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 2b03e22b77..423277863f 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -9,6 +9,8 @@ verbs += /mob/living/proc/mob_sleep verbs += /mob/living/proc/lay_down verbs += /mob/living/carbon/human/proc/underwear_toggle //fwee + verbs += /mob/proc/set_flavor + verbs += /mob/proc/set_flavor_2 //initialize limbs first create_bodyparts() @@ -801,7 +803,7 @@ hud_used.staminas?.update_icon_state() hud_used.staminabuffer?.update_icon_state() -/mob/living/carbon/human/fully_heal(admin_revive = 0) +/mob/living/carbon/human/fully_heal(admin_revive = FALSE) if(admin_revive) regenerate_limbs() regenerate_organs() @@ -821,9 +823,6 @@ . += dna.species.check_weakness(weapon, attacker) /mob/living/carbon/human/is_literate() - return 1 - -/mob/living/carbon/human/can_hold_items() return TRUE /mob/living/carbon/human/update_gravity(has_gravity,override = 0) @@ -832,7 +831,7 @@ ..() /mob/living/carbon/human/vomit(lost_nutrition = 10, blood = 0, stun = 1, distance = 0, message = 1, toxic = 0) - if(blood && (NOBLOOD in dna.species.species_traits)) + if(blood && dna?.species && (NOBLOOD in dna.species.species_traits)) if(message) visible_message("[src] dry heaves!", \ "You try to throw up, but there's nothing in your stomach!") diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index accaab3ac1..57b8f59780 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -20,7 +20,7 @@ /mob/living/carbon/human/proc/checkarmor(obj/item/bodypart/def_zone, d_type) - if(!d_type) + if(!d_type || !def_zone) return 0 var/protection = 0 var/list/body_parts = list(head, wear_mask, wear_suit, w_uniform, back, gloves, shoes, belt, s_store, glasses, ears, wear_id, wear_neck) //Everything but pockets. Pockets are l_store and r_store. (if pockets were allowed, putting something armored, gloves or hats for example, would double up on the armor) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 36d9ca541b..63c7d8f668 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -5,7 +5,7 @@ pressure_resistance = 25 can_buckle = TRUE buckle_lying = FALSE - mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) + mob_biotypes = MOB_ORGANIC|MOB_HUMANOID //Hair colour and style var/hair_color = "000" var/hair_style = "Bald" diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index fd4cdbaf0f..b1bc47ea4a 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -76,7 +76,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/list/species_traits = list() // generic traits tied to having the species var/list/inherent_traits = list() - var/list/inherent_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) + var/inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID var/attack_verb = "punch" // punch-specific attack verb var/sound/attack_sound = 'sound/weapons/punch1.ogg' @@ -1264,10 +1264,10 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) H.update_mutant_bodyparts() /datum/species/proc/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) - if(chem.type == exotic_blood) + if(chem.type == exotic_blood && !istype(exotic_blood, /datum/reagent/blood)) H.blood_volume = min(H.blood_volume + round(chem.volume, 0.1), BLOOD_VOLUME_MAXIMUM) H.reagents.del_reagent(chem.type) - return 1 + return TRUE return FALSE /datum/species/proc/check_weakness(obj/item, mob/living/attacker) @@ -1924,6 +1924,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) log_combat(user, target, "shoved", append_message) /datum/species/proc/apply_damage(damage, damagetype = BRUTE, def_zone = null, blocked, mob/living/carbon/human/H, forced = FALSE) + SEND_SIGNAL(src, COMSIG_MOB_APPLY_DAMGE, damage, damagetype, def_zone) var/hit_percent = (100-(blocked+armor))/100 hit_percent = (hit_percent * (100-H.physiology.damage_resistance))/100 if(!forced && hit_percent <= 0) diff --git a/code/modules/mob/living/carbon/human/species_types/android.dm b/code/modules/mob/living/carbon/human/species_types/android.dm index ad9ba83771..559abd8d0b 100644 --- a/code/modules/mob/living/carbon/human/species_types/android.dm +++ b/code/modules/mob/living/carbon/human/species_types/android.dm @@ -4,7 +4,7 @@ say_mod = "states" species_traits = list(NOBLOOD,NOGENITALS,NOAROUSAL) inherent_traits = list(TRAIT_RESISTHEAT,TRAIT_NOBREATH,TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_RADIMMUNE,TRAIT_NOFIRE,TRAIT_PIERCEIMMUNE,TRAIT_NOHUNGER,TRAIT_LIMBATTACHMENT) - inherent_biotypes = list(MOB_ROBOTIC, MOB_HUMANOID) + inherent_biotypes = MOB_ROBOTIC|MOB_HUMANOID meat = null gib_types = /obj/effect/gibspawner/robot damage_overlay_type = "synth" diff --git a/code/modules/mob/living/carbon/human/species_types/bugmen.dm b/code/modules/mob/living/carbon/human/species_types/bugmen.dm index 718599c550..e2e41330fb 100644 --- a/code/modules/mob/living/carbon/human/species_types/bugmen.dm +++ b/code/modules/mob/living/carbon/human/species_types/bugmen.dm @@ -3,7 +3,7 @@ id = "insect" default_color = "00FF00" species_traits = list(LIPS,EYECOLOR,HAIR,FACEHAIR,MUTCOLORS,HORNCOLOR,WINGCOLOR) - inherent_biotypes = list(MOB_ORGANIC, MOB_HUMANOID, MOB_BUG) + inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_BUG mutant_bodyparts = list("mam_ears","mam_tail", "taur", "insect_wings","mam_snout", "mam_snouts", "insect_fluff","insect_markings") default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "mam_tail" = "None", "mam_ears" = "None", "insect_wings" = "None", "insect_fluff" = "None", "mam_snouts" = "None", "taur" = "None", "insect_markings" = "None") diff --git a/code/modules/mob/living/carbon/human/species_types/dullahan.dm b/code/modules/mob/living/carbon/human/species_types/dullahan.dm index 220e639e34..499e3b0276 100644 --- a/code/modules/mob/living/carbon/human/species_types/dullahan.dm +++ b/code/modules/mob/living/carbon/human/species_types/dullahan.dm @@ -135,7 +135,7 @@ RegisterSignal(owner, COMSIG_CLICK_SHIFT, .proc/examinate_check) RegisterSignal(src, COMSIG_ATOM_HEARER_IN_VIEW, .proc/include_owner) RegisterSignal(owner, COMSIG_LIVING_REGENERATE_LIMBS, .proc/unlist_head) - RegisterSignal(owner, COMSIG_LIVING_FULLY_HEAL, .proc/retrieve_head) + RegisterSignal(owner, COMSIG_LIVING_REVIVE, .proc/retrieve_head) /obj/item/dullahan_relay/proc/examinate_check(atom/source, mob/user) if(user.client.eye == src) @@ -148,8 +148,9 @@ /obj/item/dullahan_relay/proc/unlist_head(datum/source, noheal = FALSE, list/excluded_limbs) excluded_limbs |= BODY_ZONE_HEAD // So we don't gib when regenerating limbs. -/obj/item/dullahan_relay/proc/retrieve_head(datum/source, admin_revive = FALSE) - if(admin_revive) //retrieving the owner's head for ahealing purposes. +//Retrieving the owner's head for better ahealing. +/obj/item/dullahan_relay/proc/retrieve_head(datum/source, full_heal, admin_revive) + if(admin_revive) var/obj/item/bodypart/head/H = loc var/turf/T = get_turf(owner) if(H && istype(H) && T && !(H in owner.GetAllContents())) 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 f5f238908c..15422b2cdd 100644 --- a/code/modules/mob/living/carbon/human/species_types/dwarves.dm +++ b/code/modules/mob/living/carbon/human/species_types/dwarves.dm @@ -54,21 +54,20 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // //Dwarf Speech handling - Basically a filter/forces them to say things. The IC helper /datum/species/dwarf/proc/handle_speech(datum/source, list/speech_args) var/message = speech_args[SPEECH_MESSAGE] - if(message[1] != "*") - message = " [message]" //Credits to goonstation for the strings list. - var/list/dwarf_words = strings("dwarf_replacement.json", "dwarf") //thanks to regex too. + if(speech_args[SPEECH_LANGUAGE] != /datum/language/dwarf) // No accent if they speak their language + if(message[1] != "*") + message = " [message]" //Credits to goonstation for the strings list. + var/list/dwarf_words = strings("dwarf_replacement.json", "dwarf") //thanks to regex too. + for(var/key in dwarf_words) //Theres like 1459 words or something man. + var/value = dwarf_words[key] //Thus they will always be in character. + if(islist(value)) //Whether they like it or not. + value = pick(value) //This could be drastically reduced if needed though. + message = replacetextEx(message, " [uppertext(key)]", " [uppertext(value)]") + message = replacetextEx(message, " [capitalize(key)]", " [capitalize(value)]") + message = replacetextEx(message, " [key]", " [value]") //Also its scottish. - for(var/key in dwarf_words) //Theres like 1459 words or something man. - var/value = dwarf_words[key] //Thus they will always be in character. - if(islist(value)) //Whether they like it or not. - value = pick(value) //This could be drastically reduced if needed though. - - message = replacetextEx(message, " [uppertext(key)]", " [uppertext(value)]") - message = replacetextEx(message, " [capitalize(key)]", " [capitalize(value)]") - message = replacetextEx(message, " [key]", " [value]") //Also its scottish. - - if(prob(3)) - message += pick(" By Armok!") + if(prob(3)) + message += " By Armok!" speech_args[SPEECH_MESSAGE] = trim(message) //This mostly exists because my testdwarf's liver died while trying to also not die due to no alcohol. diff --git a/code/modules/mob/living/carbon/human/species_types/flypeople.dm b/code/modules/mob/living/carbon/human/species_types/flypeople.dm index 4697e6aa3c..71f5aaa8e2 100644 --- a/code/modules/mob/living/carbon/human/species_types/flypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/flypeople.dm @@ -3,7 +3,7 @@ id = "fly" say_mod = "buzzes" species_traits = list(NOEYES) - inherent_biotypes = list(MOB_ORGANIC, MOB_HUMANOID, MOB_BUG) + inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_BUG mutanttongue = /obj/item/organ/tongue/fly mutantliver = /obj/item/organ/liver/fly mutantstomach = /obj/item/organ/stomach/fly @@ -13,22 +13,23 @@ exotic_bloodtype = "BUG" /datum/species/fly/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) - if(chem.type == /datum/reagent/toxin/pestkiller) + if(istype(chem, /datum/reagent/toxin/pestkiller)) H.adjustToxLoss(3) H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM) - return 1 - - -/datum/species/fly/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) - if(istype(chem, /datum/reagent/consumable)) + return TRUE + else if(istype(chem, /datum/reagent/consumable)) var/datum/reagent/consumable/nutri_check = chem if(nutri_check.nutriment_factor > 0) var/turf/pos = get_turf(H) H.vomit(0, FALSE, FALSE, 2, TRUE) + var/obj/effect/decal/cleanable/vomit/V = locate() in pos + if(V) + H.reagents.trans_id_to(V, chem, chem.volume) playsound(pos, 'sound/effects/splat.ogg', 50, 1) H.visible_message("[H] vomits on the floor!", \ "You throw up on the floor!") - ..() + return TRUE + return ..() /datum/species/fly/check_weakness(obj/item/weapon, mob/living/attacker) if(istype(weapon, /obj/item/melee/flyswatter)) diff --git a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm b/code/modules/mob/living/carbon/human/species_types/furrypeople.dm index e2adb2acd9..ab86b2cc5d 100644 --- a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/furrypeople.dm @@ -4,7 +4,7 @@ default_color = "4B4B4B" should_draw_citadel = TRUE species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR,HORNCOLOR,WINGCOLOR) - inherent_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) + inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_BEAST mutant_bodyparts = list("mam_tail", "mam_ears", "mam_body_markings", "mam_snouts", "deco_wings", "taur", "horns", "legs") default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "mam_snouts" = "Husky", "mam_tail" = "Husky", "mam_ears" = "Husky", "deco_wings" = "None", "mam_body_markings" = "Husky", "taur" = "None", "horns" = "None", "legs" = "Plantigrade", "meat_type" = "Mammalian") @@ -57,7 +57,6 @@ default_color = "00FF00" should_draw_citadel = TRUE species_traits = list(MUTCOLORS,EYECOLOR,LIPS) - inherent_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) mutant_bodyparts = list("xenotail", "xenohead", "xenodorsal", "mam_body_markings", "taur", "legs") default_features = list("xenotail"="Xenomorph Tail","xenohead"="Standard","xenodorsal"="Standard", "mam_body_markings" = "Xeno","mcolor" = "0F0","mcolor2" = "0F0","mcolor3" = "0F0","taur" = "None", "legs" = "Digitigrade") attack_verb = "slash" 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 98c3f269dc..446e726256 100644 --- a/code/modules/mob/living/carbon/human/species_types/golems.dm +++ b/code/modules/mob/living/carbon/human/species_types/golems.dm @@ -4,7 +4,7 @@ id = "iron golem" species_traits = list(NOBLOOD,MUTCOLORS,NO_UNDERWEAR,NOGENITALS,NOAROUSAL) inherent_traits = list(TRAIT_RESISTHEAT,TRAIT_NOBREATH,TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_NOFIRE,TRAIT_CHUNKYFINGERS,TRAIT_RADIMMUNE,TRAIT_PIERCEIMMUNE,TRAIT_NODISMEMBER) - inherent_biotypes = list(MOB_INORGANIC, MOB_HUMANOID) + inherent_biotypes = MOB_HUMANOID|MOB_MINERAL mutant_organs = list(/obj/item/organ/adamantine_resonator) speedmod = 2 armor = 55 @@ -308,7 +308,8 @@ if(chem.type == /datum/reagent/toxin/plantbgone) H.adjustToxLoss(3) H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM) - return 1 + return TRUE + return ..() //Radioactive /datum/species/golem/uranium @@ -622,12 +623,11 @@ if(chem.type == /datum/reagent/water/holywater) H.adjustFireLoss(4) H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM) - - if(chem.type == /datum/reagent/fuel/unholywater) + else if(chem.type == /datum/reagent/fuel/unholywater) H.adjustBruteLoss(-4) H.adjustFireLoss(-4) H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM) - + return ..() /datum/species/golem/clockwork name = "Clockwork Golem" @@ -636,8 +636,9 @@ limbs_id = "clockgolem" info_text = "As a Clockwork Golem, you are faster than other types of golems, and are capable of using guns. On death, you will break down into scrap." species_traits = list(NOBLOOD,NO_UNDERWEAR,NOEYES,NOGENITALS,NOAROUSAL) - inherent_biotypes = list(MOB_ROBOTIC, MOB_HUMANOID) + inherent_biotypes = MOB_ROBOTIC|MOB_HUMANOID inherent_traits = list(TRAIT_RESISTHEAT,TRAIT_NOBREATH,TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_NOFIRE,TRAIT_RADIMMUNE,TRAIT_PIERCEIMMUNE,TRAIT_NODISMEMBER) + inherent_biotypes = MOB_ROBOTIC|MOB_HUMANOID armor = 20 //Reinforced, but much less so to allow for fast movement attack_verb = "smash" attack_sound = 'sound/magic/clockwork/anima_fragment_attack.ogg' @@ -694,7 +695,7 @@ Being made of cloth, your body is magic resistant and faster than that of other golems, but weaker and less resilient." species_traits = list(NOBLOOD,NO_UNDERWEAR,NOGENITALS,NOAROUSAL) //no mutcolors, and can burn inherent_traits = list(TRAIT_RESISTCOLD,TRAIT_NOBREATH,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_RADIMMUNE,TRAIT_PIERCEIMMUNE,TRAIT_NODISMEMBER,TRAIT_CHUNKYFINGERS) - inherent_biotypes = list(MOB_UNDEAD, MOB_HUMANOID) + inherent_biotypes = MOB_UNDEAD|MOB_HUMANOID armor = 15 //feels no pain, but not too resistant burnmod = 2 // don't get burned speedmod = 1 // not as heavy as stone @@ -968,7 +969,7 @@ special_names = list("Head", "Broth", "Fracture", "Rattler", "Appetit") liked_food = GROSS | MEAT | RAW toxic_food = null - inherent_biotypes = list(MOB_UNDEAD, MOB_HUMANOID) + inherent_biotypes = MOB_UNDEAD|MOB_HUMANOID mutanttongue = /obj/item/organ/tongue/bone sexes = FALSE fixed_mut_color = "ffffff" @@ -1017,7 +1018,7 @@ else playsound(get_turf(owner),'sound/magic/RATTLEMEBONES.ogg', 100) for(var/mob/living/L in orange(7, get_turf(owner))) - if((MOB_UNDEAD in L.mob_biotypes) || isgolem(L) || HAS_TRAIT(L, TRAIT_RESISTCOLD)) + if((L.mob_biotypes & MOB_UNDEAD) || isgolem(L) || HAS_TRAIT(L, TRAIT_RESISTCOLD)) return //Do not affect our brothers to_chat(L, "A spine-chilling sound chills you to the bone!") diff --git a/code/modules/mob/living/carbon/human/species_types/ipc.dm b/code/modules/mob/living/carbon/human/species_types/ipc.dm index 4249be098f..add0e17c43 100644 --- a/code/modules/mob/living/carbon/human/species_types/ipc.dm +++ b/code/modules/mob/living/carbon/human/species_types/ipc.dm @@ -7,13 +7,19 @@ blacklisted = 0 sexes = 0 species_traits = list(MUTCOLORS,NOEYES,NOTRANSSTING) - inherent_biotypes = list(MOB_ROBOTIC, MOB_HUMANOID) + inherent_biotypes = MOB_ROBOTIC|MOB_HUMANOID mutant_bodyparts = list("ipc_screen", "ipc_antenna") default_features = list("ipc_screen" = "Blank", "ipc_antenna" = "None") meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/ipc gib_types = list(/obj/effect/gibspawner/ipc, /obj/effect/gibspawner/ipc/bodypartless) mutanttongue = /obj/item/organ/tongue/robot/ipc +//Just robo looking parts. mutant_heart = /obj/item/organ/heart/ipc + mutantlungs = /obj/item/organ/lungs/ipc + mutantliver = /obj/item/organ/liver/ipc + mutantstomach = /obj/item/organ/stomach/ipc + mutanteyes = /obj/item/organ/eyes/ipc + exotic_bloodtype = "HF" var/datum/action/innate/monitor_change/screen diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm index 5cdb051026..dfa1725026 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -5,8 +5,8 @@ say_mod = "hisses" default_color = "00FF00" species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,LIPS,HORNCOLOR,WINGCOLOR) - inherent_biotypes = list(MOB_ORGANIC, MOB_HUMANOID, MOB_REPTILE) mutant_bodyparts = list("tail_lizard", "snout", "spines", "horns", "frills", "body_markings", "legs", "taur", "deco_wings") + inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_REPTILE mutanttongue = /obj/item/organ/tongue/lizard mutanttail = /obj/item/organ/tail/lizard coldmod = 1.5 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 2580e3b9f0..9d5ca92894 100644 --- a/code/modules/mob/living/carbon/human/species_types/mushpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/mushpeople.dm @@ -57,6 +57,7 @@ H.adjustToxLoss(3) H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM) return TRUE + return ..() /datum/species/mush/handle_mutant_bodyparts(mob/living/carbon/human/H, forced_colour) forced_colour = FALSE diff --git a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm index 4a7399f287..c899575e44 100644 --- a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm +++ b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm @@ -6,7 +6,7 @@ meat = /obj/item/stack/sheet/mineral/plasma species_traits = list(NOBLOOD,NOTRANSSTING,NOGENITALS) inherent_traits = list(TRAIT_RESISTCOLD,TRAIT_RADIMMUNE,TRAIT_NOHUNGER,TRAIT_CALCIUM_HEALER) - inherent_biotypes = list(MOB_INORGANIC, MOB_HUMANOID) + inherent_biotypes = MOB_HUMANOID|MOB_MINERAL mutantlungs = /obj/item/organ/lungs/plasmaman mutanttongue = /obj/item/organ/tongue/bone/plasmaman mutantliver = /obj/item/organ/liver/plasmaman diff --git a/code/modules/mob/living/carbon/human/species_types/podpeople.dm b/code/modules/mob/living/carbon/human/species_types/podpeople.dm index 66eb207670..b29890a97d 100644 --- a/code/modules/mob/living/carbon/human/species_types/podpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/podpeople.dm @@ -50,7 +50,8 @@ if(chem.type == /datum/reagent/toxin/plantbgone) H.adjustToxLoss(3) H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM) - return 1 + return TRUE + return ..() /datum/species/pod/on_hit(obj/item/projectile/P, mob/living/carbon/human/H) switch(P.type) @@ -70,14 +71,42 @@ if(/obj/item/projectile/energy/florayield) H.nutrition = min(H.nutrition+30, NUTRITION_LEVEL_FULL) + /datum/species/pod/pseudo_weak name = "Anthromorphic Plant" id = "podweak" - limbs_id = "pod" species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,MUTCOLORS) mutant_bodyparts = list("mam_tail", "mam_ears", "mam_body_markings", "mam_snouts", "taur", "legs") default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "mam_snouts" = "Husky", "mam_tail" = "Husky", "mam_ears" = "Husky", "mam_body_markings" = "Husky", "taur" = "None", "legs" = "Normal Legs") + limbs_id = "pod" light_nutrition_gain_factor = 7.5 light_bruteheal = 0.2 light_burnheal = 0.2 light_toxheal = 0.7 + +/datum/species/pod/pseudo_weak/spec_death(gibbed, mob/living/carbon/human/H) + if(H) + stop_wagging_tail(H) + +/datum/species/pod/pseudo_weak/spec_stun(mob/living/carbon/human/H,amount) + if(H) + stop_wagging_tail(H) + . = ..() + +/datum/species/pod/pseudo_weak/can_wag_tail(mob/living/carbon/human/H) + return ("mam_tail" in mutant_bodyparts) || ("mam_waggingtail" in mutant_bodyparts) + +/datum/species/pod/pseudo_weak/is_wagging_tail(mob/living/carbon/human/H) + return ("mam_waggingtail" in mutant_bodyparts) + +/datum/species/pod/pseudo_weak/start_wagging_tail(mob/living/carbon/human/H) + if("mam_tail" in mutant_bodyparts) + mutant_bodyparts -= "mam_tail" + mutant_bodyparts |= "mam_waggingtail" + H.update_body() + +/datum/species/pod/pseudo_weak/stop_wagging_tail(mob/living/carbon/human/H) + if("mam_waggingtail" in mutant_bodyparts) + mutant_bodyparts -= "mam_waggingtail" + mutant_bodyparts |= "mam_tail" + H.update_body() diff --git a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm index 49af501942..70abba5a01 100644 --- a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm @@ -213,6 +213,16 @@ PDA.f_lum = 0 PDA.update_icon() visible_message("The light in [PDA] shorts out!") + else if(istype(O, /obj/item/gun)) + var/obj/item/gun/weapon = O + if(weapon.gun_light) + var/obj/item/flashlight/seclite/light = weapon.gun_light + light.forceMove(get_turf(weapon)) + light.burn() + weapon.gun_light = null + weapon.update_gunlight() + QDEL_NULL(weapon.alight) + visible_message("[light] on [O] flickers out and disintegrates!") else visible_message("[O] is disintegrated by [src]!") O.burn() diff --git a/code/modules/mob/living/carbon/human/species_types/skeletons.dm b/code/modules/mob/living/carbon/human/species_types/skeletons.dm index 0c4007555c..410ad05d93 100644 --- a/code/modules/mob/living/carbon/human/species_types/skeletons.dm +++ b/code/modules/mob/living/carbon/human/species_types/skeletons.dm @@ -8,7 +8,7 @@ meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/skeleton species_traits = list(NOBLOOD,NOGENITALS,NOAROUSAL) inherent_traits = list(TRAIT_RESISTHEAT,TRAIT_NOBREATH,TRAIT_RESISTCOLD,TRAIT_RADIMMUNE,TRAIT_PIERCEIMMUNE,TRAIT_NOHUNGER,TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT,TRAIT_FAKEDEATH, TRAIT_CALCIUM_HEALER) - inherent_biotypes = list(MOB_UNDEAD, MOB_HUMANOID) + inherent_biotypes = MOB_UNDEAD|MOB_HUMANOID mutanttongue = /obj/item/organ/tongue/bone damage_overlay_type = ""//let's not show bloody wounds or burns over bones. disliked_food = NONE 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 0957a9e807..cb7822ad7e 100644 --- a/code/modules/mob/living/carbon/human/species_types/synths.dm +++ b/code/modules/mob/living/carbon/human/species_types/synths.dm @@ -5,7 +5,7 @@ sexes = 0 species_traits = list(NOTRANSSTING,NOGENITALS,NOAROUSAL) //all of these + whatever we inherit from the real species inherent_traits = list(TRAIT_VIRUSIMMUNE,TRAIT_NODISMEMBER,TRAIT_NOLIMBDISABLE,TRAIT_NOHUNGER,TRAIT_NOBREATH) - inherent_biotypes = list(MOB_ROBOTIC, MOB_HUMANOID) + inherent_biotypes = MOB_ROBOTIC|MOB_HUMANOID dangerous_existence = 1 blacklisted = 1 meat = null @@ -39,9 +39,8 @@ if(chem.type == /datum/reagent/medicine/synthflesh) chem.reaction_mob(H, TOUCH, 2 ,0) //heal a little H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM) - return 1 - else - return ..() + return TRUE + return ..() /datum/species/synth/proc/assume_disguise(datum/species/S, mob/living/carbon/human/H) @@ -124,4 +123,4 @@ if (/datum/species/golem/bananium) speech_args[SPEECH_SPANS] |= SPAN_CLOWN if (/datum/species/golem/clockwork) - speech_args[SPEECH_SPANS] |= SPAN_ROBOT \ No newline at end of file + speech_args[SPEECH_SPANS] |= SPAN_ROBOT 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 7462d26ea6..8bbd870149 100644 --- a/code/modules/mob/living/carbon/human/species_types/vampire.dm +++ b/code/modules/mob/living/carbon/human/species_types/vampire.dm @@ -4,7 +4,7 @@ default_color = "FFFFFF" species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,DRINKSBLOOD) inherent_traits = list(TRAIT_NOHUNGER,TRAIT_NOBREATH) - inherent_biotypes = list(MOB_UNDEAD, MOB_HUMANOID) + inherent_biotypes = MOB_UNDEAD|MOB_HUMANOID default_features = list("mcolor" = "FFF", "tail_human" = "None", "ears" = "None", "wings" = "None") exotic_bloodtype = "U" use_skintones = TRUE diff --git a/code/modules/mob/living/carbon/human/species_types/zombies.dm b/code/modules/mob/living/carbon/human/species_types/zombies.dm index 8255f08507..26a99dbc2b 100644 --- a/code/modules/mob/living/carbon/human/species_types/zombies.dm +++ b/code/modules/mob/living/carbon/human/species_types/zombies.dm @@ -10,7 +10,7 @@ meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/zombie species_traits = list(NOBLOOD,NOZOMBIE,NOTRANSSTING) inherent_traits = list(TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_RADIMMUNE,TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT,TRAIT_NOBREATH,TRAIT_NODEATH,TRAIT_FAKEDEATH) - inherent_biotypes = list(MOB_UNDEAD, MOB_HUMANOID) + inherent_biotypes = MOB_UNDEAD|MOB_HUMANOID mutanttongue = /obj/item/organ/tongue/zombie var/static/list/spooks = list('sound/hallucinations/growl1.ogg','sound/hallucinations/growl2.ogg','sound/hallucinations/growl3.ogg','sound/hallucinations/veryfar_noise.ogg','sound/hallucinations/wail.ogg') disliked_food = NONE diff --git a/code/modules/mob/living/carbon/inventory.dm b/code/modules/mob/living/carbon/inventory.dm index bbae050bba..24acccdd2e 100644 --- a/code/modules/mob/living/carbon/inventory.dm +++ b/code/modules/mob/living/carbon/inventory.dm @@ -72,7 +72,7 @@ put_in_hands(I) update_inv_hands() if(SLOT_IN_BACKPACK) - if(!SEND_SIGNAL(back, COMSIG_TRY_STORAGE_INSERT, I, src, TRUE)) + if(!back || !SEND_SIGNAL(back, COMSIG_TRY_STORAGE_INSERT, I, src, TRUE)) not_handled = TRUE else not_handled = TRUE diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 534509523a..ccca90807b 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -357,12 +357,12 @@ if(istype(loc, /obj/structure/closet/crate/coffin)|| istype(loc, /obj/structure/closet/body_bag) || istype(loc, /obj/structure/bodycontainer)) return - // No decay if formaldehyde in corpse or when the corpse is charred - if(reagents.has_reagent(/datum/reagent/toxin/formaldehyde, 1) || HAS_TRAIT(src, TRAIT_HUSK)) + // No decay if formaldehyde/preservahyde in corpse or when the corpse is charred + if(reagents.has_reagent(/datum/reagent/toxin/formaldehyde, 1) || HAS_TRAIT(src, TRAIT_HUSK) || reagents.has_reagent(/datum/reagent/preservahyde, 1)) return // Also no decay if corpse chilled or not organic/undead - if(bodytemperature <= T0C-10 || (!(MOB_ORGANIC in mob_biotypes) && !(MOB_UNDEAD in mob_biotypes))) + if((bodytemperature <= T0C-10) || !(mob_biotypes & (MOB_ORGANIC|MOB_UNDEAD))) return // Wait a bit before decaying @@ -397,7 +397,7 @@ if(O) O.on_life() else - if(reagents.has_reagent(/datum/reagent/toxin/formaldehyde, 1)) // No organ decay if the body contains formaldehyde. + if(reagents.has_reagent(/datum/reagent/toxin/formaldehyde, 1) || reagents.has_reagent(/datum/reagent/preservahyde, 1)) // No organ decay if the body contains formaldehyde. Or preservahyde. return for(var/V in internal_organs) var/obj/item/organ/O = V @@ -581,6 +581,9 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put if(cultslurring) cultslurring = max(cultslurring-1, 0) + if(clockcultslurring) + clockcultslurring = max(clockcultslurring-1, 0) + if(silent) silent = max(silent-1, 0) diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index cd51a4234b..f3abe83958 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -7,7 +7,7 @@ gender = NEUTER pass_flags = PASSTABLE ventcrawler = VENTCRAWLER_NUDE - mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) + mob_biotypes = MOB_ORGANIC|MOB_HUMANOID butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/monkey = 5, /obj/item/stack/sheet/animalhide/monkey = 1) type_of_meat = /obj/item/reagent_containers/food/snacks/meat/slab/monkey gib_type = /obj/effect/decal/cleanable/blood/gibs diff --git a/code/modules/mob/living/death.dm b/code/modules/mob/living/death.dm index 45f9662c9a..a33eebf12a 100644 --- a/code/modules/mob/living/death.dm +++ b/code/modules/mob/living/death.dm @@ -25,7 +25,7 @@ /mob/living/proc/spawn_gibs(with_bodyparts, atom/loc_override) var/location = loc_override ? loc_override.drop_location() : drop_location() - if(MOB_ROBOTIC in mob_biotypes) + if(mob_biotypes & MOB_ROBOTIC) new /obj/effect/gibspawner/robot(location, src, get_static_viruses()) else new /obj/effect/gibspawner/generic(location, src, get_static_viruses()) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index b3dc82a40f..e8cf0225e6 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -482,7 +482,8 @@ med_hud_set_status() //proc used to ressuscitate a mob -/mob/living/proc/revive(full_heal = 0, admin_revive = 0) +/mob/living/proc/revive(full_heal = FALSE, admin_revive = FALSE) + SEND_SIGNAL(src, COMSIG_LIVING_REVIVE, full_heal, admin_revive) if(full_heal) fully_heal(admin_revive) if(stat == DEAD && can_be_revived()) //in some cases you can't revive (e.g. no brain) @@ -528,11 +529,6 @@ fire_stacks = 0 confused = 0 update_canmove() - var/datum/component/mood/mood = GetComponent(/datum/component/mood) - if (mood) - QDEL_LIST_ASSOC_VAL(mood.mood_events) - mood.sanity = SANITY_GREAT - mood.update_mood() //Heal all organs if(iscarbon(src)) var/mob/living/carbon/C = src @@ -540,8 +536,6 @@ for(var/organ in C.internal_organs) var/obj/item/organ/O = organ O.setOrganDamage(0) - SEND_SIGNAL(src, COMSIG_LIVING_FULLY_HEAL, admin_revive) - //proc called by revive(), to check if we can actually ressuscitate the mob (we don't want to revive him and have him instantly die again) /mob/living/proc/can_be_revived() @@ -552,6 +546,12 @@ /mob/living/proc/update_damage_overlays() return +/mob/living/Crossed(atom/movable/AM) + . = ..() + for(var/i in get_equipped_items()) + var/obj/item/item = i + SEND_SIGNAL(item, COMSIG_ITEM_WEARERCROSSED, AM) + /mob/living/Move(atom/newloc, direct) if (buckled && buckled.loc != newloc) //not updating position if (!buckled.anchored) @@ -758,10 +758,22 @@ if(HAS_TRAIT(what, TRAIT_NODROP)) to_chat(src, "You can't remove \the [what.name], it appears to be stuck!") return - who.visible_message("[src] tries to remove [who]'s [what.name].", \ + var/strip_mod = 1 + var/strip_silence = FALSE + if (ishuman(src)) //carbon doesn't actually wear gloves + var/mob/living/carbon/C = src + var/obj/item/clothing/gloves/g = C.gloves + if (istype(g)) + strip_mod = g.strip_mod + strip_silence = g.strip_silence + if (!strip_silence) + who.visible_message("[src] tries to remove [who]'s [what.name].", \ "[src] tries to remove [who]'s [what.name].") - what.add_fingerprint(src) - if(do_mob(src, who, what.strip_delay, ignorehelditem = TRUE)) + what.add_fingerprint(src) + else + to_chat(src,"You try to remove [who]'s [what.name].") + what.add_fingerprint(src) + if(do_mob(src, who, round(what.strip_delay / strip_mod), ignorehelditem = TRUE)) if(what && Adjacent(who)) if(islist(where)) var/list/L = where @@ -1068,7 +1080,7 @@ stop_pulling() //CIT CHANGE - Ditto... else if(has_legs || ignore_legs) lying = 0 - if (pulledby) + if (pulledby && isliving(pulledby)) var/mob/living/L = pulledby L.update_pull_movespeed() if(buckled) @@ -1082,6 +1094,10 @@ fall(forced = 1) canmove = !(ko || recoveringstam || pinned || IsStun() || IsFrozen() || chokehold || buckled || (!has_legs && !ignore_legs && !has_arms)) //Cit change - makes it plausible to move while resting, adds pinning and stamina crit density = !lying + if(resting) + ENABLE_BITFIELD(movement_type, CRAWLING) + else + DISABLE_BITFIELD(movement_type, CRAWLING) if(lying) if(layer == initial(layer)) //to avoid special cases like hiding larvas. layer = LYING_MOB_LAYER //so mob lying always appear behind standing mobs diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 84f0004805..7106d003ee 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -52,7 +52,7 @@ var/limb_destroyer = 0 //1 Sets AI behavior that allows mobs to target and dismember limbs with their basic attack. var/mob_size = MOB_SIZE_HUMAN - var/list/mob_biotypes = list(MOB_ORGANIC) + var/mob_biotypes = MOB_ORGANIC var/metabolism_efficiency = 1 //more or less efficiency to metabolize helpful/harmful reagents and regulate body temperature.. var/has_limbs = 0 //does the mob have distinct limbs?(arms,legs, chest,head) @@ -89,6 +89,7 @@ var/stuttering = 0 var/slurring = 0 var/cultslurring = 0 + var/clockcultslurring = 0 var/derpspeech = 0 var/list/implants = null diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index a12d468e24..35b49cce8e 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -103,7 +103,8 @@ GLOBAL_LIST_INIT(department_radio_keys, list( else if(message_mode || saymode) message = copytext_char(message, 3) message = trim_left(message) - + if(!message) + return if(message_mode == MODE_ADMIN) if(client) client.cmd_admin_say(message) @@ -223,7 +224,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list( . = "[.]" /mob/living/Hear(message, atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, message_mode, atom/movable/source) - . = ..() + SEND_SIGNAL(src, COMSIG_MOVABLE_HEAR, args) //parent calls can't overwrite the current proc args. if(!client) return var/deaf_message @@ -257,7 +258,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list( if(M.stat != DEAD) //not dead, not important if(yellareas) //CIT CHANGE - see above. makes yelling penetrate walls var/area/A = get_area(M) //CIT CHANGE - ditto - if(istype(A) && A.ambientsounds != SPACE && A in yellareas) //CIT CHANGE - ditto + if(istype(A) && A.ambientsounds != SPACE && (A in yellareas)) //CIT CHANGE - ditto listening |= M //CIT CHANGE - ditto continue if(!M.client || !client) //client is so that ghosts don't have to listen to mice @@ -353,6 +354,9 @@ GLOBAL_LIST_INIT(department_radio_keys, list( if(cultslurring) message = cultslur(message) + + if(clockcultslurring) + message = CLOCK_CULT_SLUR(message) message = capitalize(message) @@ -364,7 +368,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list( if(message_mode == MODE_HEADSET) imp.radio.talk_into(src, message, , spans, language) return ITALICS | REDUCE_RANGE - if(message_mode == MODE_DEPARTMENT || message_mode in GLOB.radiochannels) + if(message_mode == MODE_DEPARTMENT || (message_mode in GLOB.radiochannels)) imp.radio.talk_into(src, message, message_mode, spans, language) return ITALICS | REDUCE_RANGE diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 33cbdb7cc9..3b15c47bcb 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -146,7 +146,7 @@ aiPDA.name = name + " (" + aiPDA.ownjob + ")" aiMulti = new(src) - radio = new /obj/item/radio/headset/ai(src) + radio = new /obj/item/radio/headset/silicon/ai(src) aicamera = new/obj/item/camera/siliconcam/ai_camera(src) deploy_action.Grant(src) @@ -315,10 +315,10 @@ var/is_anchored = FALSE if(move_resist == MOVE_FORCE_OVERPOWERING) move_resist = MOVE_FORCE_NORMAL + REMOVE_TRAIT(src, TRAIT_NO_TELEPORT, src) else is_anchored = TRUE move_resist = MOVE_FORCE_OVERPOWERING - REMOVE_TRAIT(src, TRAIT_NO_TELEPORT, src) ADD_TRAIT(src, TRAIT_NO_TELEPORT, src) to_chat(src, "You are now [is_anchored ? "" : "un"]anchored.") diff --git a/code/modules/mob/living/silicon/login.dm b/code/modules/mob/living/silicon/login.dm index 2f133259ca..7b1854b940 100644 --- a/code/modules/mob/living/silicon/login.dm +++ b/code/modules/mob/living/silicon/login.dm @@ -7,4 +7,7 @@ var/datum/antagonist/bloodsucker/V = mind.has_antag_datum(/datum/antagonist/bloodsucker) if(V) mind.remove_antag_datum(V) + var/datum/antagonist/gang/G = mind.has_antag_datum(/datum/antagonist/gang) + if(G) + mind.remove_antag_datum(G) ..() diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 409665f792..074e637120 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -2,7 +2,6 @@ name = "pAI" icon = 'icons/mob/pai.dmi' icon_state = "repairbot" - mouse_opacity = MOUSE_OPACITY_OPAQUE density = FALSE pass_flags = PASSTABLE | PASSMOB mob_size = MOB_SIZE_TINY @@ -11,6 +10,8 @@ health = 500 maxHealth = 500 layer = BELOW_MOB_LAYER + var/obj/item/instrument/piano_synth/internal_instrument + silicon_privileges = PRIVILEDGES_PAI var/datum/element/mob_holder/current_mob_holder //because only a few of their chassis can be actually held. var/network = "ss13" @@ -27,6 +28,7 @@ var/speakDoubleExclamation = "alarms" var/speakQuery = "queries" + var/obj/item/radio/headset // The pAI's headset var/obj/item/pai_cable/cable // The cable we produce and use when door or camera jacking var/master // Name of the one who commands us @@ -54,6 +56,7 @@ var/obj/item/integrated_signaler/signaler // AI's signaller + var/encryptmod = FALSE var/holoform = FALSE var/canholo = TRUE var/obj/item/card/id/access_card = null @@ -74,7 +77,7 @@ var/emitteroverloadcd = 100 var/radio_short = FALSE - var/radio_short_cooldown = 5 MINUTES + var/radio_short_cooldown = 3 MINUTES var/radio_short_timerid canmove = FALSE @@ -84,6 +87,7 @@ var/icon/custom_holoform_icon /mob/living/silicon/pai/Destroy() + QDEL_NULL(internal_instrument) if (loc != card) card.forceMove(drop_location()) card.pai = null @@ -106,7 +110,7 @@ card = P signaler = new(src) if(!radio) - radio = new /obj/item/radio(src) + radio = new /obj/item/radio/headset/silicon/pai(src) //PDA pda = new(src) @@ -296,6 +300,17 @@ /mob/living/silicon/pai/process() emitterhealth = CLAMP((emitterhealth + emitterregen), -50, emittermaxhealth) +/obj/item/paicard/attackby(obj/item/W, mob/user, params) + ..() + user.set_machine(src) + if(pai.encryptmod == TRUE) + if(W.tool_behaviour == TOOL_SCREWDRIVER) + pai.radio.attackby(W, user, params) + else if(istype(W, /obj/item/encryptionkey)) + pai.radio.attackby(W, user, params) + else + to_chat(user, "Encryption Key ports not configured.") + /mob/living/silicon/pai/proc/short_radio() if(radio_short_timerid) deltimer(radio_short_timerid) diff --git a/code/modules/mob/living/silicon/pai/pai_defense.dm b/code/modules/mob/living/silicon/pai/pai_defense.dm index 05b2bc77ba..93cf10706a 100644 --- a/code/modules/mob/living/silicon/pai/pai_defense.dm +++ b/code/modules/mob/living/silicon/pai/pai_defense.dm @@ -1,3 +1,4 @@ +#define PAI_EMP_SILENCE_DURATION 3 MINUTES /mob/living/silicon/pai/blob_act(obj/structure/blob/B) return FALSE @@ -8,7 +9,7 @@ return take_holo_damage(50/severity) Knockdown(400/severity) - silent = max((3 MINUTES)/severity, silent) + silent = max(silent, (PAI_EMP_SILENCE_DURATION) / SSmobs.wait / severity) if(holoform) fold_in(force = TRUE) emitter_next_use = world.time + emitter_emp_cd @@ -55,7 +56,8 @@ if(P.stun) fold_in(force = TRUE) visible_message("The electrically-charged projectile disrupts [src]'s holomatrix, forcing [src] to fold in!") - return ..() + . = ..() + return BULLET_ACT_FORCE_PIERCE /mob/living/silicon/pai/stripPanelUnequip(obj/item/what, mob/who, where) //prevents stripping to_chat(src, "Your holochassis stutters and warps intensely as you attempt to interact with the object, forcing you to cease lest the field fail.") diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm index 55f4bdd65d..7751632813 100644 --- a/code/modules/mob/living/silicon/pai/software.dm +++ b/code/modules/mob/living/silicon/pai/software.dm @@ -20,6 +20,8 @@ "universal translator" = 35, //"projection array" = 15 "remote signaller" = 5, + "loudness booster" = 25, + "encryption keys" = 20 ) /mob/living/silicon/pai/proc/paiInterface() @@ -50,6 +52,8 @@ left_part = softwareMedicalRecord() if("securityrecord") left_part = softwareSecurityRecord() + if("encryptionkeys") + left_part = softwareEncryptionKeys() if("translator") left_part = softwareTranslator() if("atmosensor") @@ -64,6 +68,8 @@ left_part = softwareCamera() if("signaller") left_part = softwareSignal() + if("loudness") + left_part = softwareLoudness() //usr << browse_rsc('windowbak.png') // This has been moved to the mob's Login() proc @@ -256,6 +262,9 @@ else var/datum/atom_hud/med = GLOB.huds[med_hud] med.remove_hud_from(src) + if("encryptionkeys") + if(href_list["toggle"]) + encryptmod = TRUE if("translator") if(href_list["toggle"]) grant_all_languages(TRUE) @@ -271,6 +280,12 @@ var/turf/T = get_turf(loc) cable = new /obj/item/pai_cable(T) 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() + //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 return @@ -306,6 +321,8 @@ dat += "Camera Jack
" if(s == "remote signaller") dat += "Remote Signaller
" + if(s == "loudness booster") + dat += "Loudness Booster
" dat += "
" // Advanced @@ -319,6 +336,8 @@ dat += "Facial Recognition Suite[(secHUD) ? " On" : " Off"]
" if(s == "medical HUD") dat += "Medical Analysis Suite[(medHUD) ? " On" : " Off"]
" + if(s == "encryption keys") + dat += "Channel Encryption Firmware[(encryptmod) ? " On" : " Off"]
" if(s == "universal translator") var/datum/language_holder/H = get_language_holder() dat += "Universal Translator[H.omnitongue ? " On" : " Off"]
" @@ -469,6 +488,14 @@ . += "
Requested security record not found,

" . += "
\nBack
" return . +// Encryption Keys +// Encryption kets +/mob/living/silicon/pai/proc/softwareEncryptionKeys() + var/dat = {"

Encryption Key Firmware


+ When enabled, this device will be able to use up to two (2) encryption keys for departmental channel access.

+ The device is currently [encryptmod ? "en" : "dis" ]abled.
[encryptmod ? "" : "Activate Encryption Key Ports
"]"} + return dat + // Universal Translator /mob/living/silicon/pai/proc/softwareTranslator() @@ -630,3 +657,12 @@ dat += "

" dat += "Messages:
[pda.tnote]" return dat + +// Loudness Booster +/mob/living/silicon/pai/proc/softwareLoudness() + if(!internal_instrument) + internal_instrument = new(src) + var/dat = "

Sound Synthetizer

" + dat += "Open Synthesizer Interface
" + dat += "Choose Instrument Type" + return dat diff --git a/code/modules/mob/living/silicon/pai/update_icon.dm b/code/modules/mob/living/silicon/pai/update_icon.dm index 9e40b71c5d..8c051d9c41 100644 --- a/code/modules/mob/living/silicon/pai/update_icon.dm +++ b/code/modules/mob/living/silicon/pai/update_icon.dm @@ -8,9 +8,9 @@ var/list/states = icon_states(icon) icon_state = "" if(resting) //The next line is some bullshit but I can make it worse if you want and make it a single line instead of four.. :) - if(dynamic_chassis_sit && ("sit") in states) + if(dynamic_chassis_sit && ("sit" in states)) icon_state = "sit" - else if(dynamic_chassis_bellyup && ("bellyup") in states) + else if(dynamic_chassis_bellyup && ("bellyup" in states)) icon_state = "bellyup" else if("rest" in states) icon_state = "rest" diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index a079a9985c..f3e0816b1b 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -97,8 +97,8 @@ var/obj/item/stack/S = I if(is_type_in_list(S, list(/obj/item/stack/sheet/metal, /obj/item/stack/rods, /obj/item/stack/tile/plasteel))) - if(S.materials[MAT_METAL]) - S.cost = S.materials[MAT_METAL] * 0.25 + if(S.custom_materials?.len && S.custom_materials[getmaterialref(/datum/material/iron)]) + S.cost = S.custom_materials[getmaterialref(/datum/material/iron)] * 0.25 S.source = get_or_create_estorage(/datum/robot_energy_storage/metal) else if(istype(S, /obj/item/stack/sheet/glass)) @@ -127,7 +127,7 @@ S.source = get_or_create_estorage(/datum/robot_energy_storage/wrapping_paper) if(S && S.source) - S.materials = list() + S.custom_materials = null S.is_cyborg = 1 if(I.loc != src) @@ -191,7 +191,7 @@ else if(istype(I, /obj/item/gun/energy)) var/obj/item/gun/energy/EG = I if(EG.cell?.charge < EG.cell.maxcharge) - var/obj/item/ammo_casing/energy/S = EG.ammo_type[EG.select] + var/obj/item/ammo_casing/energy/S = EG.ammo_type[EG.current_firemode_index] EG.cell.give(S.e_cost * coeff) if(!EG.chambered) EG.recharge_newshot(TRUE) @@ -340,7 +340,7 @@ /obj/item/robot_module/medical/be_transformed_to(obj/item/robot_module/old_module) var/mob/living/silicon/robot/R = loc var/medmodels = list("Default", "Heavy", "Sleek", "Marina", "Droid", "Eyebot", "Medihound", "Medihound Dark", "Vale") - if(R.client && R.client.ckey in list("nezuli")) + if(R.client && (R.client.ckey in list("nezuli"))) medmodels += "Alina" var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in medmodels if(!borg_icon) @@ -437,7 +437,7 @@ /obj/item/robot_module/engineering/be_transformed_to(obj/item/robot_module/old_module) var/mob/living/silicon/robot/R = loc var/list/engymodels = list("Default", "Default - Treads", "Heavy", "Sleek", "Marina", "Can", "Spider", "Loader","Handy", "Pup Dozer", "Vale") - if(R.client && R.client.ckey in list("nezuli")) + if(R.client && (R.client.ckey in list("nezuli"))) engymodels += "Alina" var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in engymodels if(!borg_icon) @@ -515,7 +515,7 @@ /obj/item/robot_module/security/be_transformed_to(obj/item/robot_module/old_module) var/mob/living/silicon/robot/R = loc var/list/secmodels = list("Default", "Default - Treads", "Heavy", "Sleek", "Can", "Marina", "Spider", "K9", "K9 Dark", "Vale") - if(R.client && R.client.ckey in list("nezuli")) + if(R.client && (R.client.ckey in list("nezuli"))) secmodels += "Alina" var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in secmodels if(!borg_icon) @@ -596,8 +596,8 @@ /obj/item/robot_module/peacekeeper/do_transform_animation() ..() - to_chat(loc, "Under ASIMOV/CREWSIMOV, you are an enforcer of the PEACE and preventer of HUMAN/CREW HARM. \ - You are not a security module and you are expected to follow orders and prevent harm above all else. Space law means nothing to you.") + to_chat(loc, "Under ASIMOV/CREWSIMOV, you are an enforcer of the PEACE. \ + You are not a security module and you are expected to follow orders to the best of your abilities without causing harm. Space law means nothing to you.") /obj/item/robot_module/peacekeeper/be_transformed_to(obj/item/robot_module/old_module) var/mob/living/silicon/robot/R = loc diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index e5881848d5..531faff056 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -1,6 +1,6 @@ /mob/living/silicon gender = NEUTER - has_unlimited_silicon_privilege = 1 + silicon_privileges = PRIVILEDGES_SILICON verb_say = "states" verb_ask = "queries" verb_exclaim = "declares" @@ -10,7 +10,7 @@ bubble_icon = "machine" weather_immunities = list("ash") possible_a_intents = list(INTENT_HELP, INTENT_HARM) - mob_biotypes = list(MOB_ROBOTIC) + mob_biotypes = MOB_ROBOTIC rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE speech_span = SPAN_ROBOT flags_1 = PREVENT_CONTENTS_EXPLOSION_1 | HEAR_1 diff --git a/code/modules/mob/living/simple_animal/astral.dm b/code/modules/mob/living/simple_animal/astral.dm index 472cbd7414..6edf99981a 100644 --- a/code/modules/mob/living/simple_animal/astral.dm +++ b/code/modules/mob/living/simple_animal/astral.dm @@ -4,7 +4,7 @@ icon = 'icons/mob/mob.dmi' icon_state = "ghost" icon_living = "ghost" - mob_biotypes = list(MOB_SPIRIT) + mob_biotypes = MOB_SPIRIT attacktext = "raises the hairs on the neck of" response_harm = "disrupts the concentration of" response_disarm = "wafts" diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm index 69aacbf1d6..d5e6f687fb 100644 --- a/code/modules/mob/living/simple_animal/bot/bot.dm +++ b/code/modules/mob/living/simple_animal/bot/bot.dm @@ -3,7 +3,7 @@ icon = 'icons/mob/aibots.dmi' layer = MOB_LAYER gender = NEUTER - mob_biotypes = list(MOB_ROBOTIC) + mob_biotypes = MOB_ROBOTIC light_range = 3 light_power = 0.9 light_color = "#CDDDFF" @@ -15,7 +15,7 @@ maxbodytemp = INFINITY minbodytemp = 0 blood_volume = 0 - has_unlimited_silicon_privilege = 1 + silicon_privileges = PRIVILEDGES_BOT sentience_type = SENTIENCE_ARTIFICIAL status_flags = NONE //no default canpush verb_say = "states" @@ -194,10 +194,12 @@ if(locked) //First emag application unlocks the bot's interface. Apply a screwdriver to use the emag again. locked = FALSE emagged = 1 - to_chat(user, "You bypass [src]'s controls.") + if(user) + to_chat(user, "You bypass [src]'s controls.") return TRUE if(!open) - to_chat(user, "You need to open maintenance panel first!") + if(user) + to_chat(user, "You need to open maintenance panel first!") return emagged = 2 remote_disabled = 1 //Manually emagging the bot locks out the AI built in panel. @@ -205,7 +207,8 @@ bot_reset() turn_on() //The bot automatically turns on when emagged, unless recently hit with EMP. to_chat(src, "(#$*#$^^( OVERRIDE DETECTED") - log_combat(user, src, "emagged") + if(user) + log_combat(user, src, "emagged") return TRUE /mob/living/simple_animal/bot/examine(mob/user) @@ -810,14 +813,14 @@ Pass a positive integer as an argument to override a bot's default speed. switch(href_list["operation"]) if("patrol") - if(!issilicon(usr) && !IsAdminGhost(usr) && !(bot_core.allowed(usr) || !locked)) + if(!hasSiliconAccessInArea(usr) && !IsAdminGhost(usr) && !(bot_core.allowed(usr) || !locked)) return TRUE auto_patrol = !auto_patrol bot_reset() if("remote") remote_disabled = !remote_disabled if("hack") - if(!issilicon(usr) && !IsAdminGhost(usr)) + if(!hasSiliconAccessInArea(usr) && !IsAdminGhost(usr)) var/msg = "[key_name(usr)] attempted to hack a bot with a href that shouldn't be available!" message_admins(msg) log_admin(msg) @@ -836,7 +839,7 @@ Pass a positive integer as an argument to override a bot's default speed. to_chat(usr, "[text_dehack]") bot_reset() if("ejectpai") - if(paicard && (!locked || issilicon(usr) || IsAdminGhost(usr))) + if(paicard && (!locked || hasSiliconAccessInArea(usr) || IsAdminGhost(usr))) to_chat(usr, "You eject [paicard] from [bot_name]") ejectpai(usr) update_controls() @@ -863,13 +866,13 @@ Pass a positive integer as an argument to override a bot's default speed. if(emagged == 2) //An emagged bot cannot be controlled by humans, silicons can if one hacked it. if(!hacked) //Manually emagged by a human - access denied to all. return TRUE - else if(!issilicon(user) && !IsAdminGhost(user)) //Bot is hacked, so only silicons and admins are allowed access. + else if(!hasSiliconAccessInArea(user) && !IsAdminGhost(user)) //Bot is hacked, so only silicons and admins are allowed access. return TRUE return FALSE /mob/living/simple_animal/bot/proc/hack(mob/user) var/hack - if(issilicon(user) || IsAdminGhost(user)) //Allows silicons or admins to toggle the emag status of a bot. + if(hasSiliconAccessInArea(user) || IsAdminGhost(user)) //Allows silicons or admins to toggle the emag status of a bot. hack += "[emagged == 2 ? "Software compromised! Unit may exhibit dangerous or erratic behavior." : "Unit operating normally. Release safety lock?"]
" hack += "Harm Prevention Safety System: [emagged ? "DANGER" : "Engaged"]
" else if(!locked) //Humans with access can use this option to hide a bot from the AI's remote control panel and PDA control. @@ -878,7 +881,7 @@ Pass a positive integer as an argument to override a bot's default speed. /mob/living/simple_animal/bot/proc/showpai(mob/user) var/eject = "" - if((!locked || issilicon(usr) || IsAdminGhost(usr))) + if((!locked || hasSiliconAccessInArea(usr) || IsAdminGhost(usr))) if(paicard || allow_pai) eject += "Personality card status: " if(paicard) diff --git a/code/modules/mob/living/simple_animal/bot/cleanbot.dm b/code/modules/mob/living/simple_animal/bot/cleanbot.dm index cdb8ac820c..0e48723f37 100644 --- a/code/modules/mob/living/simple_animal/bot/cleanbot.dm +++ b/code/modules/mob/living/simple_animal/bot/cleanbot.dm @@ -298,7 +298,7 @@ Status: [on ? "On" : "Off"]
Behaviour controls are [locked ? "locked" : "unlocked"]
Maintenance panel panel is [open ? "opened" : "closed"]"}) - if(!locked || issilicon(user)|| IsAdminGhost(user)) + if(!locked || hasSiliconAccessInArea(user)|| IsAdminGhost(user)) dat += "
Clean Blood: [blood ? "Yes" : "No"]" dat += "
Clean Trash: [trash ? "Yes" : "No"]" dat += "
Exterminate Pests: [pests ? "Yes" : "No"]" diff --git a/code/modules/mob/living/simple_animal/bot/ed209bot.dm b/code/modules/mob/living/simple_animal/bot/ed209bot.dm index 4e479dc75b..6d304c6782 100644 --- a/code/modules/mob/living/simple_animal/bot/ed209bot.dm +++ b/code/modules/mob/living/simple_animal/bot/ed209bot.dm @@ -110,7 +110,7 @@ Maintenance panel panel is [open ? "opened" : "closed"]
"}, "[on ? "On" : "Off"]" ) - if(!locked || issilicon(user)|| IsAdminGhost(user)) + if(!locked || hasSiliconAccessInArea(user)|| IsAdminGhost(user)) if(!lasercolor) dat += text({"
Arrest Unidentifiable Persons: []
diff --git a/code/modules/mob/living/simple_animal/bot/firebot.dm b/code/modules/mob/living/simple_animal/bot/firebot.dm index 2b52da6821..6ab4dc36db 100644 --- a/code/modules/mob/living/simple_animal/bot/firebot.dm +++ b/code/modules/mob/living/simple_animal/bot/firebot.dm @@ -111,7 +111,7 @@ dat += "Maintenance panel panel is [open ? "opened" : "closed"]
" dat += "Behaviour controls are [locked ? "locked" : "unlocked"]
" - if(!locked || issilicon(user) || IsAdminGhost(user)) + if(!locked || hasSiliconAccessInArea(user) || IsAdminGhost(user)) dat += "Extinguish Fires: [extinguish_fires ? "Yes" : "No"]
" dat += "Extinguish People: [extinguish_people ? "Yes" : "No"]
" dat += "Patrol Station: [auto_patrol ? "Yes" : "No"]
" diff --git a/code/modules/mob/living/simple_animal/bot/floorbot.dm b/code/modules/mob/living/simple_animal/bot/floorbot.dm index cae707ce46..1bf3883ea7 100644 --- a/code/modules/mob/living/simple_animal/bot/floorbot.dm +++ b/code/modules/mob/living/simple_animal/bot/floorbot.dm @@ -83,7 +83,7 @@ dat += "None Loaded
" dat += "Behaviour controls are [locked ? "locked" : "unlocked"]
" - if(!locked || issilicon(user) || IsAdminGhost(user)) + if(!locked || hasSiliconAccessInArea(user) || IsAdminGhost(user)) dat += "Add tiles to new hull plating: [autotile ? "Yes" : "No"]
" dat += "Place floor tiles: [placetiles ? "Yes" : "No"]
" dat += "Replace existing floor tiles with custom tiles: [replacetiles ? "Yes" : "No"]
" diff --git a/code/modules/mob/living/simple_animal/bot/honkbot.dm b/code/modules/mob/living/simple_animal/bot/honkbot.dm index d844237a61..e491cff74a 100644 --- a/code/modules/mob/living/simple_animal/bot/honkbot.dm +++ b/code/modules/mob/living/simple_animal/bot/honkbot.dm @@ -90,7 +90,7 @@ Maintenance panel panel is [open ? "opened" : "closed"]"}, "[on ? "On" : "Off"]" ) - if(!locked || issilicon(user) || IsAdminGhost(user)) + if(!locked || hasSiliconAccessInArea(user) || IsAdminGhost(user)) dat += text({"
Auto Patrol: []"}, "[auto_patrol ? "On" : "Off"]" ) diff --git a/code/modules/mob/living/simple_animal/bot/medbot.dm b/code/modules/mob/living/simple_animal/bot/medbot.dm index a4496dd1f5..bb29cd3526 100644 --- a/code/modules/mob/living/simple_animal/bot/medbot.dm +++ b/code/modules/mob/living/simple_animal/bot/medbot.dm @@ -148,7 +148,7 @@ else dat += "None Loaded" dat += "
Behaviour controls are [locked ? "locked" : "unlocked"]
" - if(!locked || issilicon(user) || IsAdminGhost(user)) + if(!locked || hasSiliconAccessInArea(user) || IsAdminGhost(user)) dat += "Healing Threshold: " dat += "-- " dat += "- " diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm index 0e8e009ca8..b5aa8b6967 100644 --- a/code/modules/mob/living/simple_animal/bot/mulebot.dm +++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm @@ -123,7 +123,8 @@ emagged = TRUE if(!open) locked = !locked - to_chat(user, "You [locked ? "lock" : "unlock"] [src]'s controls!") + if(user) + to_chat(user, "You [locked ? "lock" : "unlock"] [src]'s controls!") flick("mulebot-emagged", src) playsound(src, "sparks", 100, FALSE) @@ -180,7 +181,7 @@ var/list/data = list() data["on"] = on data["locked"] = locked - data["siliconUser"] = user.has_unlimited_silicon_privilege + data["siliconUser"] = hasSiliconAccessInArea(usr) data["mode"] = mode ? mode_name[mode] : "Ready" data["modeStatus"] = "" switch(mode) @@ -205,11 +206,12 @@ return data /mob/living/simple_animal/bot/mulebot/ui_act(action, params) - if(..() || (locked && !usr.has_unlimited_silicon_privilege)) + var/silicon_access = hasSiliconAccessInArea(usr) + if(..() || (locked && silicon_access)) return switch(action) if("lock") - if(usr.has_unlimited_silicon_privilege) + if(silicon_access) locked = !locked . = TRUE if("power") @@ -279,7 +281,7 @@ // TODO: remove this; PDAs currently depend on it /mob/living/simple_animal/bot/mulebot/get_controls(mob/user) - var/ai = issilicon(user) + var/ai = hasSiliconAccessInArea(user) var/dat dat += "

Multiple Utility Load Effector Mk. V

" dat += "ID: [id]
" @@ -766,4 +768,3 @@ /obj/machinery/bot_core/mulebot req_access = list(ACCESS_CARGO) - \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm index 8302346a00..461fa9cf2a 100644 --- a/code/modules/mob/living/simple_animal/bot/secbot.dm +++ b/code/modules/mob/living/simple_animal/bot/secbot.dm @@ -110,7 +110,7 @@ Maintenance panel panel is [open ? "opened" : "closed"]"}, "[on ? "On" : "Off"]" ) - if(!locked || issilicon(user) || IsAdminGhost(user)) + if(!locked || hasSiliconAccessInArea(user) || IsAdminGhost(user)) dat += text({"
Arrest Unidentifiable Persons: []
Arrest for Unauthorized Weapons: []
@@ -131,7 +131,7 @@ Auto Patrol: []"}, /mob/living/simple_animal/bot/secbot/Topic(href, href_list) if(..()) return 1 - if(!issilicon(usr) && !IsAdminGhost(usr) && !(bot_core.allowed(usr) || !locked)) + if(!hasSiliconAccessInArea(usr) && !IsAdminGhost(usr) && !(bot_core.allowed(usr) || !locked)) return TRUE switch(href_list["operation"]) if("idcheck") diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index fbdc32f2c1..4c6bfc4c3e 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -3,7 +3,7 @@ real_name = "Construct" desc = "" gender = NEUTER - mob_biotypes = list(MOB_INORGANIC) + mob_biotypes = NONE speak_emote = list("hisses") response_help = "thinks better of touching" response_disarm = "flails at" diff --git a/code/modules/mob/living/simple_animal/corpse.dm b/code/modules/mob/living/simple_animal/corpse.dm index 17d7530c29..9f3e44fee7 100644 --- a/code/modules/mob/living/simple_animal/corpse.dm +++ b/code/modules/mob/living/simple_animal/corpse.dm @@ -143,7 +143,7 @@ /datum/outfit/russiancorpse/officer name = "Russian Officer Corpse" uniform = /obj/item/clothing/under/rank/security/navyblue/russian - suit = /obj/item/clothing/suit/security/officer/russian + suit = /obj/item/clothing/suit/armor/navyblue/russian shoes = /obj/item/clothing/shoes/combat ears = /obj/item/radio/headset head = /obj/item/clothing/head/ushanka @@ -207,7 +207,7 @@ /obj/effect/mob_spawn/human/corpse/bee_terrorist name = "BLF Operative" outfit = /datum/outfit/bee_terrorist - + /datum/outfit/bee_terrorist name = "BLF Operative" uniform = /obj/item/clothing/under/color/yellow diff --git a/code/modules/mob/living/simple_animal/friendly/bumbles.dm b/code/modules/mob/living/simple_animal/friendly/bumbles.dm index 63e9fbf852..17e1490c3f 100644 --- a/code/modules/mob/living/simple_animal/friendly/bumbles.dm +++ b/code/modules/mob/living/simple_animal/friendly/bumbles.dm @@ -18,7 +18,7 @@ pass_flags = PASSTABLE | PASSGRILLE | PASSMOB ventcrawler = VENTCRAWLER_ALWAYS mob_size = MOB_SIZE_TINY - mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) + mob_biotypes = MOB_ORGANIC|MOB_BEAST gold_core_spawnable = FRIENDLY_SPAWN verb_say = "bzzs" verb_ask = "bzzs inquisitively" @@ -34,14 +34,12 @@ AddElement(/datum/element/wuv, "bzzs!") /mob/living/simple_animal/pet/bumbles/update_canmove() - ..() + . = ..() if(client && stat != DEAD) if (resting) icon_state = "[icon_living]_rest" - collar_type = "[initial(collar_type)]_rest" else icon_state = "[icon_living]" - collar_type = "[initial(collar_type)]" regenerate_icons() /mob/living/simple_animal/pet/bumbles/bee_friendly() diff --git a/code/modules/mob/living/simple_animal/friendly/butterfly.dm b/code/modules/mob/living/simple_animal/friendly/butterfly.dm index 2fbbad66d8..80fba5a9a4 100644 --- a/code/modules/mob/living/simple_animal/friendly/butterfly.dm +++ b/code/modules/mob/living/simple_animal/friendly/butterfly.dm @@ -18,7 +18,7 @@ pass_flags = PASSTABLE | PASSGRILLE | PASSMOB ventcrawler = VENTCRAWLER_ALWAYS mob_size = MOB_SIZE_TINY - mob_biotypes = list(MOB_ORGANIC, MOB_BUG) + mob_biotypes = MOB_ORGANIC|MOB_BUG gold_core_spawnable = FRIENDLY_SPAWN verb_say = "flutters" verb_ask = "flutters inquisitively" diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm index f12f3649cf..0f95096497 100644 --- a/code/modules/mob/living/simple_animal/friendly/cat.dm +++ b/code/modules/mob/living/simple_animal/friendly/cat.dm @@ -17,7 +17,7 @@ ventcrawler = VENTCRAWLER_ALWAYS pass_flags = PASSTABLE mob_size = MOB_SIZE_SMALL - mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) + mob_biotypes = MOB_ORGANIC|MOB_BEAST minbodytemp = 200 maxbodytemp = 400 unsuitable_atmos_damage = 1 diff --git a/code/modules/mob/living/simple_animal/friendly/cockroach.dm b/code/modules/mob/living/simple_animal/friendly/cockroach.dm index 26d4691d83..95aa86aaab 100644 --- a/code/modules/mob/living/simple_animal/friendly/cockroach.dm +++ b/code/modules/mob/living/simple_animal/friendly/cockroach.dm @@ -13,7 +13,7 @@ maxbodytemp = INFINITY pass_flags = PASSTABLE | PASSGRILLE | PASSMOB mob_size = MOB_SIZE_TINY - mob_biotypes = list(MOB_ORGANIC, MOB_BUG) + mob_biotypes = MOB_ORGANIC|MOB_BUG response_help = "pokes" response_disarm = "shoos" response_harm = "splats" diff --git a/code/modules/mob/living/simple_animal/friendly/crab.dm b/code/modules/mob/living/simple_animal/friendly/crab.dm index 5dbf755601..d906757ed5 100644 --- a/code/modules/mob/living/simple_animal/friendly/crab.dm +++ b/code/modules/mob/living/simple_animal/friendly/crab.dm @@ -11,7 +11,7 @@ blood_volume = 350 speak_chance = 1 turns_per_move = 5 - butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 1) + butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/rawcrab = 1) response_help = "pets" response_disarm = "gently pushes aside" response_harm = "stomps" diff --git a/code/modules/mob/living/simple_animal/friendly/dog.dm b/code/modules/mob/living/simple_animal/friendly/dog.dm index f02d21c2af..37ef271226 100644 --- a/code/modules/mob/living/simple_animal/friendly/dog.dm +++ b/code/modules/mob/living/simple_animal/friendly/dog.dm @@ -1,7 +1,7 @@ //Dogs. /mob/living/simple_animal/pet/dog - mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) + mob_biotypes = MOB_ORGANIC|MOB_BEAST response_help = "pets" response_disarm = "bops" response_harm = "kicks" @@ -19,7 +19,7 @@ /mob/living/simple_animal/pet/dog/ComponentInitialize() . = ..() - AddElement(/datum/element/wuv, "yaps_happily!", EMOTE_AUDIBLE, /datum/mood_event/pet_animal, "growls!", EMOTE_AUDIBLE) + AddElement(/datum/element/wuv, "yaps happily!", EMOTE_AUDIBLE, /datum/mood_event/pet_animal, "growls!", EMOTE_AUDIBLE) AddElement(/datum/element/mob_holder, held_icon) //Corgis and pugs are now under one dog subtype 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 158719414a..43149e6ba7 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm @@ -35,13 +35,13 @@ sight = (SEE_TURFS | SEE_OBJS) status_flags = (CANPUSH | CANSTUN | CANKNOCKDOWN) gender = NEUTER - mob_biotypes = list(MOB_ROBOTIC) + mob_biotypes = MOB_ROBOTIC speak_emote = list("chirps") speech_span = SPAN_ROBOT bubble_icon = "machine" initial_language_holder = /datum/language_holder/drone mob_size = MOB_SIZE_SMALL - has_unlimited_silicon_privilege = 1 + silicon_privileges = PRIVILEDGES_DRONE damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 0) hud_possible = list(DIAG_STAT_HUD, DIAG_HUD, ANTAG_HUD) unique_name = TRUE diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index 38bcfbde79..fad519838a 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -17,7 +17,7 @@ response_disarm = "gently pushes aside" response_harm = "kicks" faction = list("neutral") - mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) + mob_biotypes = MOB_ORGANIC|MOB_BEAST attack_same = 1 attacktext = "kicks" attack_sound = 'sound/weapons/punch1.ogg' @@ -112,7 +112,7 @@ icon_dead = "cow_dead" icon_gib = "cow_gib" gender = FEMALE - mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) + mob_biotypes = MOB_ORGANIC|MOB_BEAST speak = list("moo?","moo","MOOOOOO") speak_emote = list("moos","moos hauntingly") emote_hear = list("brays.") @@ -189,7 +189,7 @@ icon_dead = "chick_dead" icon_gib = "chick_gib" gender = FEMALE - mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) + mob_biotypes = MOB_ORGANIC|MOB_BEAST speak = list("Cherp.","Cherp?","Chirrup.","Cheep!") speak_emote = list("cheeps") emote_hear = list("cheeps.") @@ -235,7 +235,7 @@ name = "\improper chicken" desc = "Hopefully the eggs are good this season." gender = FEMALE - mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) + mob_biotypes = MOB_ORGANIC|MOB_BEAST icon_state = "chicken_brown" icon_living = "chicken_brown" icon_dead = "chicken_brown_dead" @@ -454,7 +454,7 @@ name = "udder" /obj/item/udder/Initialize() - create_reagents(50) + create_reagents(50, NONE, NO_REAGENTS_VALUE) reagents.add_reagent(/datum/reagent/consumable/milk, 20) . = ..() diff --git a/code/modules/mob/living/simple_animal/friendly/lizard.dm b/code/modules/mob/living/simple_animal/friendly/lizard.dm index 6275256f5a..f0d354ace1 100644 --- a/code/modules/mob/living/simple_animal/friendly/lizard.dm +++ b/code/modules/mob/living/simple_animal/friendly/lizard.dm @@ -18,7 +18,7 @@ density = FALSE pass_flags = PASSTABLE | PASSMOB mob_size = MOB_SIZE_SMALL - mob_biotypes = list(MOB_ORGANIC, MOB_BEAST, MOB_REPTILE) + mob_biotypes = MOB_ORGANIC|MOB_BEAST|MOB_REPTILE gold_core_spawnable = FRIENDLY_SPAWN obj_damage = 0 environment_smash = ENVIRONMENT_SMASH_NONE diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index d326573957..c5a4fa6e1e 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -22,7 +22,7 @@ ventcrawler = VENTCRAWLER_ALWAYS pass_flags = PASSTABLE | PASSGRILLE | PASSMOB mob_size = MOB_SIZE_TINY - mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) + mob_biotypes = MOB_ORGANIC|MOB_BEAST var/body_color //brown, gray and white, leave blank for random gold_core_spawnable = FRIENDLY_SPAWN var/chew_probability = 1 diff --git a/code/modules/mob/living/simple_animal/friendly/pet.dm b/code/modules/mob/living/simple_animal/friendly/pet.dm index c24dc6857a..dbdb5c646c 100644 --- a/code/modules/mob/living/simple_animal/friendly/pet.dm +++ b/code/modules/mob/living/simple_animal/friendly/pet.dm @@ -1,7 +1,7 @@ /mob/living/simple_animal/pet icon = 'icons/mob/pets.dmi' mob_size = MOB_SIZE_SMALL - mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) + mob_biotypes = MOB_ORGANIC|MOB_BEAST blood_volume = BLOOD_VOLUME_NORMAL var/unique_pet = FALSE // if the mob can be renamed var/obj/item/clothing/neck/petcollar/pcollar diff --git a/code/modules/mob/living/simple_animal/friendly/sloth.dm b/code/modules/mob/living/simple_animal/friendly/sloth.dm index 21df73fa61..28063d6e52 100644 --- a/code/modules/mob/living/simple_animal/friendly/sloth.dm +++ b/code/modules/mob/living/simple_animal/friendly/sloth.dm @@ -14,7 +14,7 @@ response_help = "pets" response_disarm = "gently pushes aside" response_harm = "kicks" - mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) + mob_biotypes = MOB_ORGANIC|MOB_BEAST gold_core_spawnable = FRIENDLY_SPAWN melee_damage_lower = 18 melee_damage_upper = 18 diff --git a/code/modules/mob/living/simple_animal/friendly/snake.dm b/code/modules/mob/living/simple_animal/friendly/snake.dm index 95838c9acb..7f75888649 100644 --- a/code/modules/mob/living/simple_animal/friendly/snake.dm +++ b/code/modules/mob/living/simple_animal/friendly/snake.dm @@ -30,7 +30,7 @@ density = FALSE pass_flags = PASSTABLE | PASSMOB mob_size = MOB_SIZE_SMALL - mob_biotypes = list(MOB_ORGANIC, MOB_BEAST, MOB_REPTILE) + mob_biotypes = MOB_ORGANIC|MOB_BEAST|MOB_REPTILE gold_core_spawnable = FRIENDLY_SPAWN obj_damage = 0 environment_smash = ENVIRONMENT_SMASH_NONE @@ -59,4 +59,4 @@ QDEL_NULL(target) adjustBruteLoss(-2) else - return ..() \ No newline at end of file + return ..() diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm index 62c8588ac8..9ad3cbd373 100644 --- a/code/modules/mob/living/simple_animal/guardian/guardian.dm +++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm @@ -10,7 +10,7 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians desc = "A mysterious being that stands by its charge, ever vigilant." speak_emote = list("hisses") gender = NEUTER - mob_biotypes = list(MOB_INORGANIC) + mob_biotypes = NONE bubble_icon = "guardian" response_help = "passes through" response_disarm = "flails at" diff --git a/code/modules/mob/living/simple_animal/hostile/bear.dm b/code/modules/mob/living/simple_animal/hostile/bear.dm index acd8da9618..b019019c71 100644 --- a/code/modules/mob/living/simple_animal/hostile/bear.dm +++ b/code/modules/mob/living/simple_animal/hostile/bear.dm @@ -6,7 +6,7 @@ icon_living = "bear" icon_dead = "bear_dead" icon_gib = "bear_gib" - mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) + mob_biotypes = MOB_ORGANIC|MOB_BEAST speak = list("RAWR!","Rawr!","GRR!","Growl!") speak_emote = list("growls", "roars") emote_hear = list("rawrs.","grumbles.","grawls.") diff --git a/code/modules/mob/living/simple_animal/hostile/bees.dm b/code/modules/mob/living/simple_animal/hostile/bees.dm index bb1f1284b5..524c220fa4 100644 --- a/code/modules/mob/living/simple_animal/hostile/bees.dm +++ b/code/modules/mob/living/simple_animal/hostile/bees.dm @@ -37,7 +37,7 @@ pass_flags = PASSTABLE | PASSGRILLE | PASSMOB density = FALSE mob_size = MOB_SIZE_TINY - mob_biotypes = list(MOB_ORGANIC, MOB_BUG) + mob_biotypes = MOB_ORGANIC|MOB_BUG movement_type = FLYING gold_core_spawnable = HOSTILE_SPAWN search_objects = 1 //have to find those plant trays! diff --git a/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm b/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm index 2b5b5236ed..07572fff83 100644 --- a/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm +++ b/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm @@ -2,7 +2,7 @@ /mob/living/simple_animal/hostile/boss/paper_wizard name = "Mjor the Creative" desc = "A wizard with a taste for the arts." - mob_biotypes = list(MOB_INORGANIC, MOB_HUMANOID) + mob_biotypes = MOB_HUMANOID boss_abilities = list(/datum/action/boss/wizard_summon_minions, /datum/action/boss/wizard_mimic) faction = list("hostile","stickman") del_on_death = TRUE diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/hostile/carp.dm index d527a40120..36968a1ab0 100644 --- a/code/modules/mob/living/simple_animal/hostile/carp.dm +++ b/code/modules/mob/living/simple_animal/hostile/carp.dm @@ -7,7 +7,7 @@ icon_living = "carp" icon_dead = "carp_dead" icon_gib = "carp_gib" - mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) + mob_biotypes = MOB_ORGANIC|MOB_BEAST speak_chance = 0 turns_per_move = 5 butcher_results = list(/obj/item/reagent_containers/food/snacks/carpmeat = 2) diff --git a/code/modules/mob/living/simple_animal/hostile/cat_butcher.dm b/code/modules/mob/living/simple_animal/hostile/cat_butcher.dm index 5181e920d7..4e3375caf7 100644 --- a/code/modules/mob/living/simple_animal/hostile/cat_butcher.dm +++ b/code/modules/mob/living/simple_animal/hostile/cat_butcher.dm @@ -22,7 +22,7 @@ attacktext = "slashes at" attack_sound = 'sound/weapons/circsawhit.ogg' a_intent = INTENT_HARM - mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) + mob_biotypes = MOB_ORGANIC|MOB_HUMANOID loot = list(/obj/effect/mob_spawn/human/corpse/cat_butcher, /obj/item/circular_saw) atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) unsuitable_atmos_damage = 15 diff --git a/code/modules/mob/living/simple_animal/hostile/dark_wizard.dm b/code/modules/mob/living/simple_animal/hostile/dark_wizard.dm new file mode 100644 index 0000000000..aec136af7d --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/dark_wizard.dm @@ -0,0 +1,39 @@ +/mob/living/simple_animal/hostile/dark_wizard + name = "Dark Wizard" + desc = "Killing amateurs since the dawn of times." + icon = 'icons/mob/simple_human.dmi' + icon_state = "dark_wizard" + icon_living = "dark_wizard" + move_to_delay = 10 + projectiletype = /obj/item/projectile/temp/earth_bolt + projectilesound = 'sound/magic/ethereal_enter.ogg' + ranged = TRUE + ranged_message = "earth bolts" + ranged_cooldown_time = 20 + maxHealth = 50 + health = 50 + harm_intent_damage = 5 + obj_damage = 20 + melee_damage_lower = 5 + melee_damage_upper = 5 + attacktext = "staves" + a_intent = INTENT_HARM + speak_emote = list("chants") + attack_sound = 'sound/weapons/bladeslice.ogg' + aggro_vision_range = 9 + turns_per_move = 5 + gold_core_spawnable = HOSTILE_SPAWN + faction = list(ROLE_WIZARD) + do_footstep = TRUE + weather_immunities = list("lava","ash") + minbodytemp = 0 + maxbodytemp = INFINITY + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + loot = list(/obj/effect/decal/remains/human) + +/obj/item/projectile/temp/earth_bolt + name = "earth_bolt" + icon_state = "declone" + damage = 4 + damage_type = BURN + flag = "energy" \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/eyeballs.dm b/code/modules/mob/living/simple_animal/hostile/eyeballs.dm index 44f7f9c9f8..2d438dbf1c 100644 --- a/code/modules/mob/living/simple_animal/hostile/eyeballs.dm +++ b/code/modules/mob/living/simple_animal/hostile/eyeballs.dm @@ -7,7 +7,7 @@ icon_living = "eyeball" icon_gib = "" gender = NEUTER - mob_biotypes = list(MOB_ORGANIC) + mob_biotypes = MOB_ORGANIC response_help = "pets" response_disarm = "gently pushes aside" response_harm = "hits" diff --git a/code/modules/mob/living/simple_animal/hostile/faithless.dm b/code/modules/mob/living/simple_animal/hostile/faithless.dm index 3d411738c1..479b102b36 100644 --- a/code/modules/mob/living/simple_animal/hostile/faithless.dm +++ b/code/modules/mob/living/simple_animal/hostile/faithless.dm @@ -4,7 +4,7 @@ icon_state = "faithless" icon_living = "faithless" icon_dead = "faithless_dead" - mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) + mob_biotypes = MOB_ORGANIC|MOB_HUMANOID gender = MALE speak_chance = 0 turns_per_move = 5 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 20ce5ac751..cc7b1e19d1 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -22,7 +22,7 @@ icon_state = "guard" icon_living = "guard" icon_dead = "guard_dead" - mob_biotypes = list(MOB_ORGANIC, MOB_BUG) + mob_biotypes = MOB_ORGANIC|MOB_BUG speak_emote = list("chitters") emote_hear = list("chitters") speak_chance = 5 diff --git a/code/modules/mob/living/simple_animal/hostile/goose.dm b/code/modules/mob/living/simple_animal/hostile/goose.dm index 3bc8715c5c..db232c20c4 100644 --- a/code/modules/mob/living/simple_animal/hostile/goose.dm +++ b/code/modules/mob/living/simple_animal/hostile/goose.dm @@ -6,7 +6,7 @@ icon_state = "goose" // sprites by cogwerks from goonstation, used with permission icon_living = "goose" icon_dead = "goose_dead" - mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) + mob_biotypes = MOB_ORGANIC|MOB_BEAST speak_chance = 0 turns_per_move = 5 butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 2) diff --git a/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm b/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm index 6866df01d5..6d864576a1 100644 --- a/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm +++ b/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm @@ -9,7 +9,7 @@ icon_state = "crawling" icon_living = "crawling" icon_dead = "dead" - mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) + mob_biotypes = MOB_ORGANIC|MOB_HUMANOID speak_chance = 80 maxHealth = 220 health = 220 diff --git a/code/modules/mob/living/simple_animal/hostile/hivebot.dm b/code/modules/mob/living/simple_animal/hostile/hivebot.dm index ee9d1dddbd..1cc675825f 100644 --- a/code/modules/mob/living/simple_animal/hostile/hivebot.dm +++ b/code/modules/mob/living/simple_animal/hostile/hivebot.dm @@ -10,7 +10,7 @@ icon_living = "basic" icon_dead = "basic" gender = NEUTER - mob_biotypes = list(MOB_ROBOTIC) + mob_biotypes = MOB_ROBOTIC health = 50 maxHealth = 50 healable = 0 diff --git a/code/modules/mob/living/simple_animal/hostile/illusion.dm b/code/modules/mob/living/simple_animal/hostile/illusion.dm index 5ee2549054..89303702f3 100644 --- a/code/modules/mob/living/simple_animal/hostile/illusion.dm +++ b/code/modules/mob/living/simple_animal/hostile/illusion.dm @@ -6,7 +6,7 @@ icon_living = "static" icon_dead = "null" gender = NEUTER - mob_biotypes = list() + mob_biotypes = NONE melee_damage_lower = 5 melee_damage_upper = 5 a_intent = INTENT_HARM diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm b/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm index deb88d677b..ea01e4b659 100644 --- a/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm +++ b/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm @@ -10,7 +10,7 @@ icon_state = "leaper" icon_living = "leaper" icon_dead = "leaper_dead" - mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) + mob_biotypes = MOB_ORGANIC|MOB_BEAST maxHealth = 300 health = 300 ranged = TRUE diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/mega_arachnid.dm b/code/modules/mob/living/simple_animal/hostile/jungle/mega_arachnid.dm index 607db5d54f..91e17e8e57 100644 --- a/code/modules/mob/living/simple_animal/hostile/jungle/mega_arachnid.dm +++ b/code/modules/mob/living/simple_animal/hostile/jungle/mega_arachnid.dm @@ -7,7 +7,7 @@ icon_state = "arachnid" icon_living = "arachnid" icon_dead = "arachnid_dead" - mob_biotypes = list(MOB_ORGANIC, MOB_BUG) + mob_biotypes = MOB_ORGANIC|MOB_BUG melee_damage_lower = 30 melee_damage_upper = 30 maxHealth = 300 diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/mook.dm b/code/modules/mob/living/simple_animal/hostile/jungle/mook.dm index b786637592..b2e6fa9704 100644 --- a/code/modules/mob/living/simple_animal/hostile/jungle/mook.dm +++ b/code/modules/mob/living/simple_animal/hostile/jungle/mook.dm @@ -13,7 +13,7 @@ icon_state = "mook" icon_living = "mook" icon_dead = "mook_dead" - mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) + mob_biotypes = MOB_ORGANIC|MOB_HUMANOID pixel_x = -16 maxHealth = 45 health = 45 diff --git a/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm b/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm index 2e783d84d8..c025ba58db 100644 --- a/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm +++ b/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm @@ -23,7 +23,7 @@ desc = "Death to Nanotrasen. This variant comes in MECHA DEATH flavour." wanted_objects = list() search_objects = 0 - mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) + mob_biotypes = MOB_ORGANIC|MOB_HUMANOID var/spawn_mecha_type = /obj/mecha/combat/marauder/mauler/loaded var/obj/mecha/mecha //Ref to pilot's mecha instance diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm index 899e901827..a0e6561c68 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm @@ -28,7 +28,7 @@ Difficulty: Medium icon_state = "miner" icon_living = "miner" icon = 'icons/mob/broadMobs.dmi' - mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) + mob_biotypes = MOB_ORGANIC|MOB_HUMANOID light_color = "#E4C7C5" movement_type = GROUND speak_emote = list("roars") @@ -39,8 +39,8 @@ Difficulty: Medium ranged = 1 ranged_cooldown_time = 16 pixel_x = -16 - crusher_loot = list(/obj/item/melee/transforming/cleaving_saw, /obj/item/gun/energy/kinetic_accelerator, /obj/item/crusher_trophy/miner_eye) - loot = list(/obj/item/melee/transforming/cleaving_saw, /obj/item/gun/energy/kinetic_accelerator) + crusher_loot = list(/obj/item/melee/transforming/cleaving_saw, /obj/item/gun/energy/kinetic_accelerator/premiumka, /obj/item/crusher_trophy/miner_eye) + loot = list(/obj/item/melee/transforming/cleaving_saw, /obj/item/gun/energy/kinetic_accelerator/premiumka) wander = FALSE del_on_death = TRUE blood_volume = BLOOD_VOLUME_NORMAL @@ -73,7 +73,7 @@ Difficulty: Medium target.stun_absorption -= "miner" /obj/item/projectile/kinetic/miner - damage = 20 + damage = 40 speed = 0.9 icon_state = "ka_tracer" range = MINER_DASH_RANGE 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 d7c52efe1d..9ee51c0c4f 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm @@ -6,7 +6,7 @@ a_intent = INTENT_HARM sentience_type = SENTIENCE_BOSS environment_smash = ENVIRONMENT_SMASH_RWALLS - mob_biotypes = list(MOB_ORGANIC, MOB_EPIC) + mob_biotypes = MOB_ORGANIC|MOB_EPIC obj_damage = 400 light_range = 3 faction = list("mining", "boss") diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm index c7d90f9556..1ddd9079b2 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm @@ -47,7 +47,7 @@ GLOBAL_LIST_INIT(AISwarmerCapsByType, list(/mob/living/simple_animal/hostile/swa icon_state = "swarmer_console" health = 750 maxHealth = 750 //""""low-ish"""" HP because it's a passive boss, and the swarm itself is the real foe - mob_biotypes = list(MOB_ROBOTIC) + mob_biotypes = MOB_ROBOTIC medal_type = BOSS_MEDAL_SWARMERS score_type = SWARMER_BEACON_SCORE faction = list("mining", "boss", "swarmer") diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm index bbdd7ab4b0..16a55421b8 100644 --- a/code/modules/mob/living/simple_animal/hostile/mimic.dm +++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm @@ -12,7 +12,7 @@ maxHealth = 250 health = 250 gender = NEUTER - mob_biotypes = list(MOB_INORGANIC) + mob_biotypes = NONE harm_intent_damage = 5 melee_damage_lower = 8 @@ -197,8 +197,6 @@ GLOBAL_LIST_INIT(protected_objects, list(/obj/structure/table, /obj/structure/ca return 0 return ..() - - /mob/living/simple_animal/hostile/mimic/copy/ranged var/obj/item/gun/TrueGun = null var/obj/item/gun/magic/Zapstick @@ -229,14 +227,13 @@ GLOBAL_LIST_INIT(protected_objects, list(/obj/structure/table, /obj/structure/ca casingtype = initial(M.ammo_type) if(istype(G, /obj/item/gun/energy)) Zapgun = G - var/selectfiresetting = Zapgun.select - var/obj/item/ammo_casing/energy/E = Zapgun.ammo_type[selectfiresetting] + var/obj/item/ammo_casing/energy/E = Zapgun.ammo_type[Zapgun.current_firemode_index] projectiletype = initial(E.projectile_type) /mob/living/simple_animal/hostile/mimic/copy/ranged/OpenFire(the_target) if(Zapgun) if(Zapgun.cell) - var/obj/item/ammo_casing/energy/shot = Zapgun.ammo_type[Zapgun.select] + var/obj/item/ammo_casing/energy/shot = Zapgun.ammo_type[Zapgun.current_firemode_index] if(Zapgun.cell.charge >= shot.e_cost) Zapgun.cell.use(shot.e_cost) Zapgun.update_icon() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm index 2fbcf376dd..1cbabd41dd 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm @@ -8,7 +8,7 @@ icon_aggro = "Basilisk_alert" icon_dead = "Basilisk_dead" icon_gib = "syndicate_gib" - mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) + mob_biotypes = MOB_ORGANIC|MOB_BEAST move_to_delay = 20 projectiletype = /obj/item/projectile/temp/basilisk projectilesound = 'sound/weapons/pierce.ogg' @@ -131,7 +131,7 @@ /obj/item/projectile/temp/basilisk/magmawing/on_hit(atom/target, blocked = FALSE) . = ..() - if(.) + if(. && isliving(target)) var/mob/living/L = target if (istype(L)) L.adjust_fire_stacks(0.1) @@ -144,7 +144,7 @@ /obj/item/projectile/temp/basilisk/icewing/on_hit(atom/target, blocked = FALSE) . = ..() - if(.) + if(. && isliving(target)) var/mob/living/L = target L.apply_status_effect(/datum/status_effect/freon/watcher) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm index e4046138cd..8687b2d14c 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm @@ -5,7 +5,7 @@ icon_state = "curseblob" icon_living = "curseblob" icon_aggro = "curseblob" - mob_biotypes = list(MOB_SPIRIT) + mob_biotypes = MOB_SPIRIT movement_type = FLYING move_to_delay = 5 vision_range = 20 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm index 116e2b8e45..fdc3e2e9b7 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm @@ -37,7 +37,7 @@ throw_message = "does nothing to the rocky hide of the" speed = 2 move_to_delay = 5 - mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) + mob_biotypes = MOB_ORGANIC|MOB_BEAST mouse_opacity = MOUSE_OPACITY_ICON deathmessage = "explodes into gore!" loot_drop = /obj/item/crusher_trophy/broodmother_tongue @@ -178,7 +178,7 @@ throw_message = "does nothing to the rocky hide of the" speed = 2 move_to_delay = 5 - mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) + mob_biotypes = MOB_ORGANIC|MOB_BEAST mouse_opacity = MOUSE_OPACITY_ICON butcher_results = list() guaranteed_butcher_results = list(/obj/item/stack/sheet/animalhide/goliath_hide = 1) 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 f1e7494beb..0d62eb260d 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 @@ -62,8 +62,9 @@ /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) . = ..() - playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 20, TRUE) - + if(.) + playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 20, TRUE) + /datum/action/innate/elite_attack/herald_trishot name = "Triple Shot" button_icon_state = "herald_trishot" diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm index c02f0c46c7..25e38652e1 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm @@ -8,7 +8,7 @@ icon_aggro = "Goldgrub_alert" icon_dead = "Goldgrub_dead" icon_gib = "syndicate_gib" - mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) + mob_biotypes = MOB_ORGANIC|MOB_BEAST vision_range = 2 aggro_vision_range = 9 move_to_delay = 5 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm index c17e98a7db..87abc1ea14 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm @@ -8,7 +8,7 @@ icon_aggro = "Goliath_alert" icon_dead = "Goliath_dead" icon_gib = "syndicate_gib" - mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) + mob_biotypes = MOB_ORGANIC|MOB_BEAST mouse_opacity = MOUSE_OPACITY_OPAQUE move_to_delay = 10 ranged = 1 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm index 9e9fbaeab8..fd3221d900 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm @@ -6,7 +6,7 @@ icon_state = "gutlunch" icon_living = "gutlunch" icon_dead = "gutlunch" - mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) + mob_biotypes = MOB_ORGANIC|MOB_BEAST speak_emote = list("warbles", "quavers") emote_hear = list("trills.") emote_see = list("sniffs.", "burps.") 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 9e398ce0da..5d54f92d47 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 @@ -7,7 +7,7 @@ icon_aggro = "Hivelord_alert" icon_dead = "Hivelord_dead" icon_gib = "syndicate_gib" - mob_biotypes = list(MOB_ORGANIC) + mob_biotypes = MOB_ORGANIC mouse_opacity = MOUSE_OPACITY_OPAQUE move_to_delay = 14 ranged = 1 @@ -81,11 +81,13 @@ throw_message = "falls right through the strange body of the" obj_damage = 0 environment_smash = ENVIRONMENT_SMASH_NONE - pass_flags = PASSTABLE + pass_flags = PASSTABLE | PASSMOB //they shouldn't get stuck behind hivelords. + density = FALSE del_on_death = 1 /mob/living/simple_animal/hostile/asteroid/hivelordbrood/Initialize() . = ..() + AddComponent(/datum/component/swarming) //oh god not the bees addtimer(CALLBACK(src, .proc/death), 100) //Legion @@ -98,7 +100,7 @@ icon_aggro = "legion" icon_dead = "legion" icon_gib = "syndicate_gib" - mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) + mob_biotypes = MOB_ORGANIC|MOB_HUMANOID obj_damage = 60 melee_damage_lower = 15 melee_damage_upper = 15 @@ -135,6 +137,11 @@ crusher_drop_mod = 20 dwarf_mob = TRUE +/mob/living/simple_animal/hostile/asteroid/hivelord/legion/beegion + name = "beegion" + desc = "You can still see what was once a human under the shifting mass of - oh my God, those are bees." + brood_type = /mob/living/simple_animal/hostile/poison/bees/toxin + /mob/living/simple_animal/hostile/asteroid/hivelord/legion/death(gibbed) visible_message("The skulls on [src] wail in anger as they flee from their dying host!") var/turf/T = get_turf(src) @@ -174,7 +181,6 @@ speak_emote = list("echoes") attack_sound = 'sound/weapons/pierce.ogg' throw_message = "is shrugged off by" - pass_flags = PASSTABLE del_on_death = TRUE stat_attack = UNCONSCIOUS robust_searching = 1 diff --git a/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm b/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm index 543ffe6131..ed2a407b8e 100644 --- a/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm +++ b/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm @@ -6,7 +6,7 @@ icon_living = "nanotrasen" icon_dead = null icon_gib = "syndicate_gib" - mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) + mob_biotypes = MOB_ORGANIC|MOB_HUMANOID speak_chance = 12 turns_per_move = 5 response_help = "pokes" diff --git a/code/modules/mob/living/simple_animal/hostile/netherworld.dm b/code/modules/mob/living/simple_animal/hostile/netherworld.dm index 918a2d8acc..363e3ec573 100644 --- a/code/modules/mob/living/simple_animal/hostile/netherworld.dm +++ b/code/modules/mob/living/simple_animal/hostile/netherworld.dm @@ -4,7 +4,7 @@ icon_state = "otherthing" icon_living = "otherthing" icon_dead = "otherthing-dead" - mob_biotypes = list(MOB_INORGANIC) + mob_biotypes = NONE health = 80 maxHealth = 80 obj_damage = 100 diff --git a/code/modules/mob/living/simple_animal/hostile/pirate.dm b/code/modules/mob/living/simple_animal/hostile/pirate.dm index 174ae0b9fb..1b2212bf55 100644 --- a/code/modules/mob/living/simple_animal/hostile/pirate.dm +++ b/code/modules/mob/living/simple_animal/hostile/pirate.dm @@ -5,7 +5,7 @@ icon_state = "piratemelee" icon_living = "piratemelee" icon_dead = "pirate_dead" - mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) + mob_biotypes = MOB_ORGANIC|MOB_HUMANOID speak_chance = 0 turns_per_move = 5 response_help = "pushes" @@ -43,7 +43,7 @@ var/obj/effect/light_emitter/red_energy_sword/sord do_footstep = TRUE - + /mob/living/simple_animal/hostile/pirate/melee/space name = "Space Pirate Swashbuckler" icon_state = "piratespace" diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm index c518cbe083..cc17759cc6 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm @@ -10,7 +10,7 @@ response_help = "brushes aside" response_disarm = "flails at" response_harm = "hits" - mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) + mob_biotypes = MOB_ORGANIC|MOB_BEAST speak_chance = 0 maxHealth = 15 health = 15 diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm index d2c8f1f270..ca14d4ae67 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm @@ -6,7 +6,7 @@ icon_living = "clown" icon_dead = "clown_dead" icon_gib = "clown_gib" - mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) + mob_biotypes = MOB_ORGANIC|MOB_HUMANOID turns_per_move = 5 response_help = "pokes" response_disarm = "gently pushes aside" diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm index 47734abebc..ef51d8621b 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm @@ -4,7 +4,7 @@ icon_state = "frog" icon_living = "frog" icon_dead = "frog_dead" - mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) + mob_biotypes = MOB_ORGANIC|MOB_BEAST speak = list("ribbit","croak") emote_see = list("hops in a circle.", "shakes.") speak_chance = 1 diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm index bfe8349192..48d16f63f3 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm @@ -4,7 +4,7 @@ icon = 'icons/mob/mob.dmi' icon_state = "ghost" icon_living = "ghost" - mob_biotypes = list(MOB_SPIRIT) + mob_biotypes = MOB_SPIRIT speak_chance = 0 turns_per_move = 5 response_help = "passes through" diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm index c50ace8871..29b0c0b701 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm @@ -5,7 +5,7 @@ icon_living = "old" icon_dead = "old_dead" icon_gib = "clown_gib" - mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) + mob_biotypes = MOB_ORGANIC|MOB_HUMANOID gender = MALE turns_per_move = 5 response_help = "pokes" diff --git a/code/modules/mob/living/simple_animal/hostile/russian.dm b/code/modules/mob/living/simple_animal/hostile/russian.dm index f66814f01f..c99c7a04b5 100644 --- a/code/modules/mob/living/simple_animal/hostile/russian.dm +++ b/code/modules/mob/living/simple_animal/hostile/russian.dm @@ -6,7 +6,7 @@ icon_living = "russianmelee" icon_dead = "russianmelee_dead" icon_gib = "syndicate_gib" - mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) + mob_biotypes = MOB_ORGANIC|MOB_HUMANOID speak_chance = 0 turns_per_move = 5 response_help = "pokes" diff --git a/code/modules/mob/living/simple_animal/hostile/sharks.dm b/code/modules/mob/living/simple_animal/hostile/sharks.dm new file mode 100644 index 0000000000..c94e49b286 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/sharks.dm @@ -0,0 +1,91 @@ +//shameless copies of carps. + +/mob/living/simple_animal/hostile/shark + name = "Space Shark" + desc = "The best terror of the seas, next to the kraken." + icon_state = "shark" + icon_living = "shark" + icon = 'icons/mob/sharks.dmi' + icon_dead = "shark_dead" + icon_gib = "carp_gib" + environment_smash = 0 + speak_chance = 0 + turns_per_move = 3 + butcher_results = list(/obj/item/reagent_containers/food/snacks/carpmeat = 3) + response_help = "pets" + response_disarm = "gently pushes aside" + response_harm = "hits" + speed = 0 + maxHealth = 75 + health = 75 + harm_intent_damage = 18 + melee_damage_lower = 18 + melee_damage_upper = 18 + attacktext = "maims" + attack_sound = 'sound/weapons/bite.ogg' + gold_core_spawnable = 1 + //Space shark aren't affected by cold. + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + minbodytemp = 0 + maxbodytemp = 1500 + + faction = list("shark") + +/mob/living/simple_animal/hostile/shark/Process_Spacemove(var/movement_dir = 0) + return 1 //No drifting in space for space sharks....either! + +/mob/living/simple_animal/hostile/shark/FindTarget() + . = ..() + if(.) + emote("me", 1, "growls at [.]!") + +/mob/living/simple_animal/hostile/shark/AttackingTarget() + . =..() + var/mob/living/carbon/L = . + if(istype(L)) + if(prob(25)) + L.Knockdown(20) + L.visible_message("\the [src] knocks down \the [L]!") + + +/mob/living/simple_animal/hostile/shark/laser + name = "Laser-Shark" + desc = "NOW we've jumped the shark." + icon_state = "lasershark" + icon_living = "lasershark" + icon_dead = "lasershark_dead" + icon_gib = "carp_gib" + ranged = 1 + retreat_distance = 3 + minimum_distance = 0 //Between shots they can and will close in to nash + projectiletype = /obj/item/projectile/beam/laser/heavylaser + projectilesound = 'sound/weapons/lasercannonfire.ogg' + maxHealth = 50 + health = 50 + +/mob/living/simple_animal/hostile/shark/kawaii + name = "Kawaii Shark" + desc = "Senpai~ Notice me.." + icon_state = "kawaiishark" + icon_living = "kawaiishark" + icon_dead = "kawaiishark_dead" + speak = list("Oh Senpai","Notice me senpai!","Oh my...","Kawaii~") + speak_emote = list("lovingly says","says") + speak_chance = 2 + turns_per_move = 3 + butcher_results = list(/mob/living/simple_animal/butterfly = 3) + maxHealth = 50 + health = 50 + maxbodytemp = INFINITY + + harm_intent_damage = 0 + melee_damage_lower = 0 + melee_damage_upper = 0 + attacktext = "violently hugs" + vision_range = 0 + +/mob/living/simple_animal/hostile/shark/kawaii/death() + say("Senpai, you noticed~!") + LoseAggro() + ..() + walk(src, 0) diff --git a/code/modules/mob/living/simple_animal/hostile/skeleton.dm b/code/modules/mob/living/simple_animal/hostile/skeleton.dm index 48b69a1f5c..51c55cbf65 100644 --- a/code/modules/mob/living/simple_animal/hostile/skeleton.dm +++ b/code/modules/mob/living/simple_animal/hostile/skeleton.dm @@ -6,7 +6,7 @@ icon_living = "skeleton" icon_dead = "skeleton" gender = NEUTER - mob_biotypes = list(MOB_UNDEAD, MOB_HUMANOID) + mob_biotypes = MOB_UNDEAD|MOB_HUMANOID turns_per_move = 5 speak_emote = list("rattles") emote_see = list("rattles") diff --git a/code/modules/mob/living/simple_animal/hostile/statue.dm b/code/modules/mob/living/simple_animal/hostile/statue.dm index 1e1fa9d41b..2bab332cd0 100644 --- a/code/modules/mob/living/simple_animal/hostile/statue.dm +++ b/code/modules/mob/living/simple_animal/hostile/statue.dm @@ -9,7 +9,7 @@ icon_dead = "human_male" gender = NEUTER a_intent = INTENT_HARM - mob_biotypes = list(MOB_INORGANIC, MOB_HUMANOID) + mob_biotypes = MOB_HUMANOID response_help = "touches" response_disarm = "pushes" @@ -126,7 +126,7 @@ // This loop will, at most, loop twice. for(var/atom/check in check_list) for(var/mob/living/M in viewers(world.view + 1, check) - src) - if(M.client && CanAttack(M) && !M.has_unlimited_silicon_privilege) + if(M.client && CanAttack(M) && !M.silicon_privileges) if(!M.eye_blind) return M for(var/obj/mecha/M in view(world.view + 1, check)) //assuming if you can see them they can see you @@ -191,7 +191,7 @@ /obj/effect/proc_holder/spell/aoe_turf/blindness/cast(list/targets,mob/user = usr) for(var/mob/living/L in GLOB.alive_mob_list) var/turf/T = get_turf(L.loc) - if(T && T in targets) + if(T && (T in targets)) L.blind_eyes(4) return diff --git a/code/modules/mob/living/simple_animal/hostile/stickman.dm b/code/modules/mob/living/simple_animal/hostile/stickman.dm index fa5cb151ed..855d55938d 100644 --- a/code/modules/mob/living/simple_animal/hostile/stickman.dm +++ b/code/modules/mob/living/simple_animal/hostile/stickman.dm @@ -5,7 +5,7 @@ icon_living = "stickman" icon_dead = "stickman_dead" icon_gib = "syndicate_gib" - mob_biotypes = list(MOB_INORGANIC, MOB_HUMANOID) + mob_biotypes = MOB_HUMANOID gender = MALE speak_chance = 0 turns_per_move = 5 @@ -40,7 +40,7 @@ minimum_distance = 5 icon_state = "stickmanranged" icon_living = "stickmanranged" - casingtype = /obj/item/ammo_casing/c45/nostamina + casingtype = /obj/item/ammo_casing/c10mm projectilesound = 'sound/misc/bang.ogg' loot = list(/obj/item/gun/ballistic/automatic/pistol/stickman) @@ -51,7 +51,7 @@ icon_state = "stickdog" icon_living = "stickdog" icon_dead = "stickdog_dead" - mob_biotypes = list(MOB_INORGANIC, MOB_BEAST) + mob_biotypes = MOB_BEAST /mob/living/simple_animal/hostile/stickman/Initialize(mapload, var/wizard_summoned) . = ..() diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/syndicate.dm index 96a75f6b4f..0947a3090b 100644 --- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm +++ b/code/modules/mob/living/simple_animal/hostile/syndicate.dm @@ -22,7 +22,7 @@ icon_living = "syndicate" icon_dead = "syndicate_dead" icon_gib = "syndicate_gib" - mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) + mob_biotypes = MOB_ORGANIC|MOB_HUMANOID speak_chance = 0 turns_per_move = 5 response_help = "pokes" @@ -284,7 +284,7 @@ icon_living = "viscerator_attack" pass_flags = PASSTABLE | PASSMOB a_intent = INTENT_HARM - mob_biotypes = list(MOB_ROBOTIC) + mob_biotypes = MOB_ROBOTIC health = 25 maxHealth = 25 melee_damage_lower = 15 diff --git a/code/modules/mob/living/simple_animal/hostile/wizard.dm b/code/modules/mob/living/simple_animal/hostile/wizard.dm index f047a7aed1..f97613fe8f 100644 --- a/code/modules/mob/living/simple_animal/hostile/wizard.dm +++ b/code/modules/mob/living/simple_animal/hostile/wizard.dm @@ -5,7 +5,7 @@ icon_state = "wizard" icon_living = "wizard" icon_dead = "wizard_dead" - mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) + mob_biotypes = MOB_ORGANIC|MOB_HUMANOID speak_chance = 0 turns_per_move = 3 response_help = "pokes" diff --git a/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm b/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm index ec7451dc2e..88b5bcc373 100644 --- a/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm +++ b/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm @@ -8,7 +8,7 @@ icon_aggro = "Fugu0" icon_dead = "Fugu_dead" icon_gib = "syndicate_gib" - mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) + mob_biotypes = MOB_ORGANIC|MOB_BEAST mouse_opacity = MOUSE_OPACITY_ICON move_to_delay = 5 friendly = "floats near" diff --git a/code/modules/mob/living/simple_animal/hostile/zombie.dm b/code/modules/mob/living/simple_animal/hostile/zombie.dm index 7d89941687..e926a5d332 100644 --- a/code/modules/mob/living/simple_animal/hostile/zombie.dm +++ b/code/modules/mob/living/simple_animal/hostile/zombie.dm @@ -4,7 +4,7 @@ icon = 'icons/mob/simple_human.dmi' icon_state = "zombie" icon_living = "zombie" - mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) + mob_biotypes = MOB_ORGANIC|MOB_HUMANOID speak_chance = 0 stat_attack = UNCONSCIOUS //braains maxHealth = 100 @@ -64,7 +64,7 @@ icon_state = "husk" icon_living = "husk" icon_dead = "husk" - mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) + mob_biotypes = MOB_ORGANIC|MOB_HUMANOID speak_chance = 0 stat_attack = UNCONSCIOUS //braains maxHealth = 100 diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index f378906db1..e79e24b885 100644 --- a/code/modules/mob/living/simple_animal/parrot.dm +++ b/code/modules/mob/living/simple_animal/parrot.dm @@ -467,11 +467,11 @@ return return - if(parrot_interest && parrot_interest in view(src)) + if(parrot_interest && (parrot_interest in view(src))) parrot_state = PARROT_SWOOP | PARROT_STEAL return - if(parrot_perch && parrot_perch in view(src)) + if(parrot_perch && (parrot_perch in view(src))) parrot_state = PARROT_SWOOP | PARROT_RETURN return diff --git a/code/modules/mob/living/simple_animal/shade.dm b/code/modules/mob/living/simple_animal/shade.dm index 64ffa147cf..6aa7f8b401 100644 --- a/code/modules/mob/living/simple_animal/shade.dm +++ b/code/modules/mob/living/simple_animal/shade.dm @@ -6,7 +6,7 @@ icon = 'icons/mob/mob.dmi' icon_state = "shade" icon_living = "shade" - mob_biotypes = list(MOB_SPIRIT) + mob_biotypes = MOB_SPIRIT maxHealth = 40 health = 40 spacewalk = TRUE diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm index 5a1a794d4e..2ea2a412f8 100644 --- a/code/modules/mob/living/simple_animal/slime/slime.dm +++ b/code/modules/mob/living/simple_animal/slime/slime.dm @@ -97,7 +97,7 @@ else var/datum/action/innate/slime/evolve/E = new E.Grant(src) - create_reagents(100) + create_reagents(100, NONE, NO_REAGENTS_VALUE) set_colour(new_colour) . = ..() nutrition = 700 diff --git a/code/modules/mob/living/taste.dm b/code/modules/mob/living/taste.dm index e4d1aa94a5..46d0608f44 100644 --- a/code/modules/mob/living/taste.dm +++ b/code/modules/mob/living/taste.dm @@ -16,21 +16,22 @@ // non destructively tastes a reagent container /mob/living/proc/taste(datum/reagents/from) - if(last_taste_time + 50 < world.time) - var/taste_sensitivity = get_taste_sensitivity() - var/text_output = from.generate_taste_message(taste_sensitivity) - // We dont want to spam the same message over and over again at the - // person. Give it a bit of a buffer. - if(hallucination > 50 && prob(25)) - text_output = pick("spiders","dreams","nightmares","the future","the past","victory",\ - "defeat","pain","bliss","revenge","poison","time","space","death","life","truth","lies","justice","memory",\ - "regrets","your soul","suffering","music","noise","blood","hunger","the american way") - if(text_output != last_taste_text || last_taste_time + 100 < world.time) - to_chat(src, "You can taste [text_output].") - // "something indescribable" -> too many tastes, not enough flavor. - - last_taste_time = world.time - last_taste_text = text_output + if(last_taste_time + 50 > world.time) + return FALSE + var/taste_sensitivity = get_taste_sensitivity() + var/text_output = from.generate_taste_message(taste_sensitivity) + // We dont want to spam the same message over and over again at the + // person. Give it a bit of a buffer. + if(hallucination > 50 && prob(25)) + text_output = pick("spiders","dreams","nightmares","the future","the past","victory",\ + "defeat","pain","bliss","revenge","poison","time","space","death","life","truth","lies","justice","memory",\ + "regrets","your soul","suffering","music","noise","blood","hunger","the american way") + if(text_output != last_taste_text || last_taste_time + 100 < world.time) + to_chat(src, "You can taste [text_output].") + // "something indescribable" -> too many tastes, not enough flavor. + last_taste_time = world.time + last_taste_text = text_output + return TRUE //FermiChem - How to check pH of a beaker without a meter/pH paper. //Basically checks the pH of the holder and burns your poor tongue if it's too acidic! @@ -41,22 +42,24 @@ if (!T) return .=..() + if(!.) + return if ((from.pH > 12.5) || (from.pH < 1.5)) - to_chat(src, "You taste chemical burns!") T.applyOrganDamage(5) + to_chat(src, "You taste chemical burns!") if(istype(T, /obj/item/organ/tongue/cybernetic)) to_chat(src, "Your tongue moves on it's own in response to the liquid.") say("The pH is appropriately [round(from.pH, 1)].") return if (!HAS_TRAIT(src, TRAIT_AGEUSIA)) //I'll let you get away with not having 1 damage. switch(from.pH) - if(11.5 to INFINITY) + if(11.5 to 12.5) to_chat(src, "You taste a strong alkaline flavour!") if(8.5 to 11.5) to_chat(src, "You taste a sort of soapy tone in the mixture.") if(2.5 to 5.5) to_chat(src, "You taste a sort of acid tone in the mixture.") - if(-INFINITY to 2.5) + if(1.5 to 2.5) to_chat(src, "You taste a strong acidic flavour!") #undef DEFAULT_TASTE_SENSITIVITY diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 35c7510ad9..1ca6299efb 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -512,9 +512,6 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0) usr << browse(text("[][]", name, replacetext(flavor_text_2, "\n", "
")), text("window=[];size=500x200", name)) onclose(usr, "[name]") - if(href_list["flavor_change"]) - update_flavor_text() - if(href_list["refresh"]) if(machine && in_range(src, usr)) show_inv(machine) @@ -808,7 +805,7 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0) //Can the mob interact() with an atom? /mob/proc/can_interact_with(atom/A) - return IsAdminGhost(src) || Adjacent(A) + return IsAdminGhost(src) || Adjacent(A) || A.hasSiliconAccessInArea(src) //Can the mob use Topic to interact with machines /mob/proc/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE, no_tk=FALSE) diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 1402b78908..c45f6eec13 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -95,7 +95,7 @@ var/digitalinvis = 0 //Are they ivisible to the AI? var/image/digitaldisguise = null //what does the AI see instead of them? - var/has_unlimited_silicon_privilege = 0 // Can they interact with station electronics + var/silicon_privileges = NONE // Can they interact with station electronics var/obj/control_object //Used by admins to possess objects. All mobs should have this var var/atom/movable/remote_control //Calls relaymove() to whatever it is @@ -121,4 +121,10 @@ var/mob/audiovisual_redirect //Mob to redirect messages, speech, and sounds to + var/siliconaccessareas = list() + var/siliconaccesstoggle = FALSE + var/voluntary_ghosted = FALSE //whether or not they voluntarily ghosted. + + var/flavor_text = "" + var/flavor_text_2 = "" //version of the above that only lasts for the current round. diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index d78d23c234..12d74d2f8f 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -147,6 +147,10 @@ . += newletter return sanitize(.) +//Ratvarian Slurring! + +#define CLOCK_CULT_SLUR(phrase) sanitize(text2ratvar(phrase)) + ///Adds stuttering to the message passed in /proc/stutter(phrase) phrase = html_decode(phrase) @@ -402,17 +406,28 @@ It's fairly easy to fix if dealing with single letters but not so much with comp return return TRUE -/proc/canGhostWrite(var/mob/A, var/obj/target, var/desc="", var/allow_all=FALSE) - if(allow_all & TRUE) - if(!target.GetComponent(/datum/component/anti_magic)) - return 1 - if(IsAdminGhost(A)) - if (desc != "") - log_admin("GHOST: [key_name(A)] [desc] ([target.name] at [loc_name(target)])") +/atom/proc/hasSiliconAccessInArea(mob/user, flags = PRIVILEDGES_SILICON) + return user.silicon_privileges & (flags) || (user.siliconaccesstoggle && (get_area(src) in user.siliconaccessareas)) + +/mob/proc/toggleSiliconAccessArea(area/area) + if (area in siliconaccessareas) + siliconaccessareas -= area + to_chat(src,"You lost control of [area]!") + return FALSE + else + if (LAZYLEN(siliconaccessareas) < HIJACK_APC_MAX_AMOUNT) + siliconaccessareas += area + to_chat(src,"You successfully took control of [area].") else - log_admin("GHOST: [key_name(A)] fucked with the [target.name] at [loc_name(target)]") - return 1 - return 0 + to_chat(src,"You are connected to too many APCs! Too many more will fry your brain.") + return FALSE + return TRUE + +/mob/proc/getImplant(type) + return + +/mob/living/getImplant(type) + return locate(type) in implants /proc/offer_control(mob/M) to_chat(M, "Control of your mob has been offered to dead players.") @@ -540,4 +555,4 @@ It's fairly easy to fix if dealing with single letters but not so much with comp //Can the mob see reagents inside of containers? /mob/proc/can_see_reagents() - return stat == DEAD || has_unlimited_silicon_privilege //Dead guys and silicons can always see reagents + return stat == DEAD || silicon_privileges //Dead guys and silicons can always see reagents diff --git a/code/modules/mob/say_vr.dm b/code/modules/mob/say_vr.dm index 74cc0c2e77..377bb1c5fc 100644 --- a/code/modules/mob/say_vr.dm +++ b/code/modules/mob/say_vr.dm @@ -1,52 +1,6 @@ ////////////////////////////////////////////////////// ////////////////////SUBTLE COMMAND//////////////////// ////////////////////////////////////////////////////// -/mob - var/flavor_text = "" //tired of fucking double checking this - var/flavor_text_2 = "" - -/mob/proc/update_flavor_text() - set src in usr - if(usr != src) - to_chat(usr, "No.") - var/msg = stripped_multiline_input(usr, "Set the flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!", "Flavor Text", html_decode(flavor_text), MAX_MESSAGE_LEN, TRUE) - - if(msg) - flavor_text = html_encode(msg) - -/mob/proc/update_flavor_text_2() - set src in usr - if(usr != src) - to_chat(usr, "No.") - var/msg = stripped_multiline_input(usr, "Set the temporary flavor text in your 'examine' verb. This should be used only for things pertaining to the current round!", "Short-Term Flavor Text", html_decode(flavor_text_2), MAX_MESSAGE_LEN, TRUE) - - if(msg) - flavor_text_2 = html_encode(msg) - - -/mob/proc/warn_flavor_changed() - if(flavor_text && flavor_text != "") // don't spam people that don't use it! - to_chat(src, "

OOC Warning:

") - to_chat(src, "Your flavor text is likely out of date! Change") - -/mob/proc/print_flavor_text() - if(flavor_text && flavor_text != "") - // We are decoding and then encoding to not only get correct amount of characters, but also to prevent partial escaping characters being shown. - var/msg = html_decode(replacetext(flavor_text, "\n", " ")) - if(length_char(msg) <= 40) - return "[html_encode(msg)]" - else - return "[html_encode(copytext_char(msg, 1, 37))]... More..." - -/mob/proc/print_flavor_text_2() - if(flavor_text && flavor_text != "") - // We are decoding and then encoding to not only get correct amount of characters, but also to prevent partial escaping characters being shown. - var/msg = html_decode(replacetext(flavor_text_2, "\n", " ")) - if(length_char(msg) <= 40) - return "[html_encode(msg)]" - else - return "[html_encode(copytext_char(msg, 1, 37))]... More..." - /mob/proc/get_top_level_mob() if(istype(src.loc,/mob)&&src.loc!=src) @@ -60,9 +14,6 @@ proc/get_top_level_mob(var/mob/S) return M.get_top_level_mob() return S - - - ///////////////// EMOTE CODE // Maybe making this as an emote is less messy? // It was - ktccd diff --git a/code/modules/modular_computers/computers/item/computer.dm b/code/modules/modular_computers/computers/item/computer.dm index 551b77dec3..a83720dc23 100644 --- a/code/modules/modular_computers/computers/item/computer.dm +++ b/code/modules/modular_computers/computers/item/computer.dm @@ -29,7 +29,7 @@ var/max_hardware_size = 0 // Maximal hardware w_class. Tablets/PDAs have 1, laptops 2, consoles 4. var/steel_sheet_cost = 5 // Amount of steel sheets refunded when disassembling an empty frame of this computer. - integrity_failure = 50 + integrity_failure = 0.5 max_integrity = 100 armor = list("melee" = 0, "bullet" = 20, "laser" = 20, "energy" = 100, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 0, "acid" = 0) @@ -203,7 +203,7 @@ /obj/item/modular_computer/examine(mob/user) . = ..() - if(obj_integrity <= integrity_failure) + if(obj_integrity <= integrity_failure * max_integrity) . += "It is heavily damaged!" else if(obj_integrity < max_integrity) . += "It is damaged." @@ -219,7 +219,7 @@ else add_overlay(icon_state_menu) - if(obj_integrity <= integrity_failure) + if(obj_integrity <= integrity_failure * max_integrity) add_overlay("bsod") add_overlay("broken") @@ -233,7 +233,7 @@ /obj/item/modular_computer/proc/turn_on(mob/user) var/issynth = issilicon(user) // Robots and AIs get different activation messages. - if(obj_integrity <= integrity_failure) + if(obj_integrity <= integrity_failure * max_integrity) if(issynth) to_chat(user, "You send an activation signal to \the [src], but it responds with an error code. It must be damaged.") else @@ -265,7 +265,7 @@ last_power_usage = 0 return 0 - if(obj_integrity <= integrity_failure) + if(obj_integrity <= integrity_failure * max_integrity) shutdown_computer() return 0 diff --git a/code/modules/modular_computers/computers/item/computer_ui.dm b/code/modules/modular_computers/computers/item/computer_ui.dm index 3e67a14874..11f5145478 100644 --- a/code/modules/modular_computers/computers/item/computer_ui.dm +++ b/code/modules/modular_computers/computers/item/computer_ui.dm @@ -14,7 +14,7 @@ return 0 // Robots don't really need to see the screen, their wireless connection works as long as computer is on. - if(!screen_on && !issilicon(user)) + if(!screen_on && !hasSiliconAccessInArea(user)) if(ui) ui.close() return 0 diff --git a/code/modules/modular_computers/computers/machinery/modular_computer.dm b/code/modules/modular_computers/computers/machinery/modular_computer.dm index 39b2c45d99..a1f13878c1 100644 --- a/code/modules/modular_computers/computers/machinery/modular_computer.dm +++ b/code/modules/modular_computers/computers/machinery/modular_computer.dm @@ -65,7 +65,7 @@ else add_overlay(screen_icon_state_menu) - if(cpu && cpu.obj_integrity <= cpu.integrity_failure) + if(cpu && cpu.obj_integrity <= cpu.integrity_failure * cpu.max_integrity) add_overlay("bsod") add_overlay("broken") diff --git a/code/modules/modular_computers/computers/machinery/modular_console.dm b/code/modules/modular_computers/computers/machinery/modular_console.dm index 026091f88b..3d4ec22e89 100644 --- a/code/modules/modular_computers/computers/machinery/modular_console.dm +++ b/code/modules/modular_computers/computers/machinery/modular_console.dm @@ -15,7 +15,7 @@ steel_sheet_cost = 10 light_strength = 2 max_integrity = 300 - integrity_failure = 150 + integrity_failure = 0.5 var/console_department = "" // Used in New() to set network tag according to our area. /obj/machinery/modular_computer/console/buildable/Initialize() diff --git a/code/modules/modular_computers/file_system/program.dm b/code/modules/modular_computers/file_system/program.dm index f661f0ec10..b54bc9f2be 100644 --- a/code/modules/modular_computers/file_system/program.dm +++ b/code/modules/modular_computers/file_system/program.dm @@ -87,7 +87,7 @@ if(IsAdminGhost(user)) return TRUE - if(issilicon(user)) + if(computer && computer.hasSiliconAccessInArea(user)) return TRUE if(ishuman(user)) diff --git a/code/modules/newscaster/_news.dm b/code/modules/newscaster/_news.dm new file mode 100644 index 0000000000..6c6f10fdcc --- /dev/null +++ b/code/modules/newscaster/_news.dm @@ -0,0 +1,2 @@ +/datum/news + var/author = "" diff --git a/code/modules/newscaster/feed_channel.dm b/code/modules/newscaster/feed_channel.dm new file mode 100644 index 0000000000..278c9c7ad1 --- /dev/null +++ b/code/modules/newscaster/feed_channel.dm @@ -0,0 +1,33 @@ +/datum/news/feed_channel + var/channel_name = "" + var/list/datum/news/feed_message/messages = list() + var/locked = FALSE + var/censored = 0 + var/list/authorCensorTime = list() + var/list/DclassCensorTime = list() + var/authorCensor + var/is_admin_channel = 0 + +/datum/news/feed_channel/proc/returnAuthor(censor) + if(censor == -1) + censor = authorCensor + var/txt = "[GLOB.news_network.redactedText]" + if(!censor) + txt = author + return txt + +/datum/news/feed_channel/proc/toggleCensorDclass() + if(censored) + DclassCensorTime.Add(GLOB.news_network.lastAction*-1) + else + DclassCensorTime.Add(GLOB.news_network.lastAction) + censored = !censored + GLOB.news_network.lastAction ++ + +/datum/news/feed_channel/proc/toggleCensorAuthor() + if(authorCensor) + authorCensorTime.Add(GLOB.news_network.lastAction*-1) + else + authorCensorTime.Add(GLOB.news_network.lastAction) + authorCensor = !authorCensor + GLOB.news_network.lastAction ++ diff --git a/code/modules/newscaster/feed_comment.dm b/code/modules/newscaster/feed_comment.dm new file mode 100644 index 0000000000..ff5ebac028 --- /dev/null +++ b/code/modules/newscaster/feed_comment.dm @@ -0,0 +1,3 @@ +/datum/news/feed_comment + var/body = "" + var/time_stamp = "" diff --git a/code/modules/newscaster/feed_message.dm b/code/modules/newscaster/feed_message.dm new file mode 100644 index 0000000000..573b3f772d --- /dev/null +++ b/code/modules/newscaster/feed_message.dm @@ -0,0 +1,46 @@ +/datum/news/feed_message + var/body ="" + var/list/authorCensorTime = list() + var/list/bodyCensorTime = list() + var/is_admin_message = 0 + var/icon/img = null + var/time_stamp = "" + var/list/datum/news/feed_comment/comments = list() + var/locked = FALSE + var/caption = "" + var/creationTime + var/authorCensor + var/bodyCensor + var/photo_file + +/datum/news/feed_message/proc/returnAuthor(censor) + if(censor == -1) + censor = authorCensor + var/txt = "[GLOB.news_network.redactedText]" + if(!censor) + txt = author + return txt + +/datum/news/feed_message/proc/returnBody(censor) + if(censor == -1) + censor = bodyCensor + var/txt = "[GLOB.news_network.redactedText]" + if(!censor) + txt = body + return txt + +/datum/news/feed_message/proc/toggleCensorAuthor() + if(authorCensor) + authorCensorTime.Add(GLOB.news_network.lastAction*-1) + else + authorCensorTime.Add(GLOB.news_network.lastAction) + authorCensor = !authorCensor + GLOB.news_network.lastAction ++ + +/datum/news/feed_message/proc/toggleCensorBody() + if(bodyCensor) + bodyCensorTime.Add(GLOB.news_network.lastAction*-1) + else + bodyCensorTime.Add(GLOB.news_network.lastAction) + bodyCensor = !bodyCensor + GLOB.news_network.lastAction ++ diff --git a/code/modules/newscaster/ghostread.dm b/code/modules/newscaster/ghostread.dm new file mode 100644 index 0000000000..77cb1a03c8 --- /dev/null +++ b/code/modules/newscaster/ghostread.dm @@ -0,0 +1,52 @@ +/mob/dead/observer/verb/read_news() + set name = "Read Newscaster" + set desc = "Open a list of available news channels" + set category = "Ghost" + + var/datum/browser/B = new(src, "ghost_news_list", "Chanenl List", 450, 600) + B.set_content(render_news_channel_list()) + B.open() + +/mob/dead/observer/Topic(href, href_list) + . = ..() + if(href_list["show_news_channel"]) + var/datum/D = locate(href_list["show_news_channel"]) + if(istype(D, /datum/news/feed_channel)) //safety + render_news_channel(D) + +/mob/dead/observer/proc/render_news_channel_list() + var/datum/news_network/news_network = GLOB.news_network + var/list/content = list() + for(var/i in news_network.network_channels) + var/datum/news/feed_channel/FC = i + content += "[FC.channel_name] ([length(FC.messages)] messages)[FC.locked? " (LOCKED)":""][FC.censored? " (CENSORED)":""][FC.is_admin_channel? " (ADMIN)":""]" + return content.Join("
") + +/mob/dead/observer/proc/render_news_channel(datum/news/feed_channel/FC) + var/list/content = list() + content += "[FC.channel_name]: \[created by: [FC.returnAuthor(-1)]\]
" + if(FC.censored) + content += "ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a Nanotrasen D-Notice.
" + content += "No further feed story additions are allowed while the D-Notice is in effect.


" + if(!length(FC.messages)) + content += "This channel is empty.
" + else + for(var/i in FC.messages) + var/datum/news/feed_message/FM = i + content += "-[FM.returnBody(-1)]
" + if(FM.img) + src << browse_rsc(FM.img, "tmp_photo[i].png") + content += "
" + if(FM.caption) + content += "[FM.caption]
" + content += "
" + content += "\[Story by [FM.returnAuthor(-1)] \] - ([FM.time_stamp])
" + content += "[FM.comments.len] comment[FM.comments.len > 1 ? "s" : ""]
" + for(var/c in FM.comments) + var/datum/news/feed_comment/comment = c + content += "[comment.body]
[comment.author] [comment.time_stamp]
" + if(FM.locked) + content += "Comments locked
" + var/datum/browser/popup = new(src, "ghost_news_channel", 450, 900) + popup.set_content(content.Join("")) + popup.open() diff --git a/code/modules/newscaster/news_network.dm b/code/modules/newscaster/news_network.dm new file mode 100644 index 0000000000..5e056addee --- /dev/null +++ b/code/modules/newscaster/news_network.dm @@ -0,0 +1,72 @@ +GLOBAL_DATUM_INIT(news_network, /datum/news_network, new) + +/// Contains all the news datum of a newscaster system. +/datum/news_network + var/list/datum/news/feed_channel/network_channels = list() + var/datum/news/wanted_message/wanted_issue + var/lastAction + var/redactedText = "\[REDACTED\]" + +/datum/news_network/New() + CreateFeedChannel("Station Announcements", "SS13", 1) + wanted_issue = new /datum/news/wanted_message + +/datum/news_network/proc/CreateFeedChannel(channel_name, author, locked, adminChannel = 0) + var/datum/news/feed_channel/newChannel = new /datum/news/feed_channel + newChannel.channel_name = channel_name + newChannel.author = author + newChannel.locked = locked + newChannel.is_admin_channel = adminChannel + network_channels += newChannel + +/datum/news_network/proc/SubmitArticle(msg, author, channel_name, datum/picture/picture, adminMessage = 0, allow_comments = 1) + var/datum/news/feed_message/newMsg = new /datum/news/feed_message + newMsg.author = author + newMsg.body = msg + newMsg.time_stamp = STATION_TIME_TIMESTAMP("hh:mm:ss", world.time) + newMsg.is_admin_message = adminMessage + newMsg.locked = !allow_comments + if(picture) + newMsg.img = picture.picture_image + newMsg.caption = picture.caption + newMsg.photo_file = save_photo(picture.picture_image) + for(var/datum/news/feed_channel/FC in network_channels) + if(FC.channel_name == channel_name) + FC.messages += newMsg + break + for(var/obj/machinery/newscaster/NEWSCASTER in GLOB.allCasters) + NEWSCASTER.newsAlert(channel_name) + lastAction ++ + newMsg.creationTime = lastAction + +/datum/news_network/proc/submitWanted(criminal, body, scanned_user, datum/picture/picture, adminMsg = 0, newMessage = 0) + wanted_issue.active = 1 + wanted_issue.criminal = criminal + wanted_issue.body = body + wanted_issue.scannedUser = scanned_user + wanted_issue.isAdminMsg = adminMsg + if(picture) + wanted_issue.img = picture.picture_image + wanted_issue.photo_file = save_photo(picture.picture_image) + if(newMessage) + for(var/obj/machinery/newscaster/N in GLOB.allCasters) + N.newsAlert() + N.update_icon() + +/datum/news_network/proc/deleteWanted() + wanted_issue.active = 0 + wanted_issue.criminal = null + wanted_issue.body = null + wanted_issue.scannedUser = null + wanted_issue.img = null + for(var/obj/machinery/newscaster/NEWSCASTER in GLOB.allCasters) + NEWSCASTER.update_icon() + +/datum/news_network/proc/save_photo(icon/photo) + var/photo_file = copytext_char(md5("\icon[photo]"), 1, 6) + if(!fexists("[GLOB.log_directory]/photos/[photo_file].png")) + //Clean up repeated frames + var/icon/clean = new /icon() + clean.Insert(photo, "", SOUTH, 1, 0) + fcopy(clean, "[GLOB.log_directory]/photos/[photo_file].png") + return photo_file diff --git a/code/game/machinery/newscaster.dm b/code/modules/newscaster/newscaster_machine.dm similarity index 60% rename from code/game/machinery/newscaster.dm rename to code/modules/newscaster/newscaster_machine.dm index 7097de1f3b..46dc52e286 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/modules/newscaster/newscaster_machine.dm @@ -1,183 +1,12 @@ -GLOBAL_DATUM_INIT(news_network, /datum/newscaster/feed_network, new) GLOBAL_LIST_EMPTY(allCasters) -/datum/newscaster - -/datum/newscaster/feed_comment - var/author = "" - var/body = "" - var/time_stamp = "" - -/datum/newscaster/feed_message - var/author ="" - var/body ="" - var/list/authorCensorTime = list() - var/list/bodyCensorTime = list() - var/is_admin_message = 0 - var/icon/img = null - var/time_stamp = "" - var/list/datum/newscaster/feed_comment/comments = list() - var/locked = FALSE - var/caption = "" - var/creationTime - var/authorCensor - var/bodyCensor - var/photo_file - -/datum/newscaster/feed_message/proc/returnAuthor(censor) - if(censor == -1) - censor = authorCensor - var/txt = "[GLOB.news_network.redactedText]" - if(!censor) - txt = author - return txt - -/datum/newscaster/feed_message/proc/returnBody(censor) - if(censor == -1) - censor = bodyCensor - var/txt = "[GLOB.news_network.redactedText]" - if(!censor) - txt = body - return txt - -/datum/newscaster/feed_message/proc/toggleCensorAuthor() - if(authorCensor) - authorCensorTime.Add(GLOB.news_network.lastAction*-1) - else - authorCensorTime.Add(GLOB.news_network.lastAction) - authorCensor = !authorCensor - GLOB.news_network.lastAction ++ - -/datum/newscaster/feed_message/proc/toggleCensorBody() - if(bodyCensor) - bodyCensorTime.Add(GLOB.news_network.lastAction*-1) - else - bodyCensorTime.Add(GLOB.news_network.lastAction) - bodyCensor = !bodyCensor - GLOB.news_network.lastAction ++ - -/datum/newscaster/feed_channel - var/channel_name = "" - var/list/datum/newscaster/feed_message/messages = list() - var/locked = FALSE - var/author = "" - var/censored = 0 - var/list/authorCensorTime = list() - var/list/DclassCensorTime = list() - var/authorCensor - var/is_admin_channel = 0 - -/datum/newscaster/feed_channel/proc/returnAuthor(censor) - if(censor == -1) - censor = authorCensor - var/txt = "[GLOB.news_network.redactedText]" - if(!censor) - txt = author - return txt - -/datum/newscaster/feed_channel/proc/toggleCensorDclass() - if(censored) - DclassCensorTime.Add(GLOB.news_network.lastAction*-1) - else - DclassCensorTime.Add(GLOB.news_network.lastAction) - censored = !censored - GLOB.news_network.lastAction ++ - -/datum/newscaster/feed_channel/proc/toggleCensorAuthor() - if(authorCensor) - authorCensorTime.Add(GLOB.news_network.lastAction*-1) - else - authorCensorTime.Add(GLOB.news_network.lastAction) - authorCensor = !authorCensor - GLOB.news_network.lastAction ++ - -/datum/newscaster/wanted_message - var/active - var/criminal - var/body - var/scannedUser - var/isAdminMsg - var/icon/img - var/photo_file - -/datum/newscaster/feed_network - var/list/datum/newscaster/feed_channel/network_channels = list() - var/datum/newscaster/wanted_message/wanted_issue - var/lastAction - var/redactedText = "\[REDACTED\]" - -/datum/newscaster/feed_network/New() - CreateFeedChannel("Station Announcements", "SS13", 1) - wanted_issue = new /datum/newscaster/wanted_message - -/datum/newscaster/feed_network/proc/CreateFeedChannel(channel_name, author, locked, adminChannel = 0) - var/datum/newscaster/feed_channel/newChannel = new /datum/newscaster/feed_channel - newChannel.channel_name = channel_name - newChannel.author = author - newChannel.locked = locked - newChannel.is_admin_channel = adminChannel - network_channels += newChannel - -/datum/newscaster/feed_network/proc/SubmitArticle(msg, author, channel_name, datum/picture/picture, adminMessage = 0, allow_comments = 1) - var/datum/newscaster/feed_message/newMsg = new /datum/newscaster/feed_message - newMsg.author = author - newMsg.body = msg - newMsg.time_stamp = STATION_TIME_TIMESTAMP("hh:mm:ss", world.time) - newMsg.is_admin_message = adminMessage - newMsg.locked = !allow_comments - if(picture) - newMsg.img = picture.picture_image - newMsg.caption = picture.caption - newMsg.photo_file = save_photo(picture.picture_image) - for(var/datum/newscaster/feed_channel/FC in network_channels) - if(FC.channel_name == channel_name) - FC.messages += newMsg - break - for(var/obj/machinery/newscaster/NEWSCASTER in GLOB.allCasters) - NEWSCASTER.newsAlert(channel_name) - lastAction ++ - newMsg.creationTime = lastAction - -/datum/newscaster/feed_network/proc/submitWanted(criminal, body, scanned_user, datum/picture/picture, adminMsg = 0, newMessage = 0) - wanted_issue.active = 1 - wanted_issue.criminal = criminal - wanted_issue.body = body - wanted_issue.scannedUser = scanned_user - wanted_issue.isAdminMsg = adminMsg - if(picture) - wanted_issue.img = picture.picture_image - wanted_issue.photo_file = save_photo(picture.picture_image) - if(newMessage) - for(var/obj/machinery/newscaster/N in GLOB.allCasters) - N.newsAlert() - N.update_icon() - -/datum/newscaster/feed_network/proc/deleteWanted() - wanted_issue.active = 0 - wanted_issue.criminal = null - wanted_issue.body = null - wanted_issue.scannedUser = null - wanted_issue.img = null - for(var/obj/machinery/newscaster/NEWSCASTER in GLOB.allCasters) - NEWSCASTER.update_icon() - -/datum/newscaster/feed_network/proc/save_photo(icon/photo) - var/photo_file = copytext_char(md5("\icon[photo]"), 1, 6) - if(!fexists("[GLOB.log_directory]/photos/[photo_file].png")) - //Clean up repeated frames - var/icon/clean = new /icon() - clean.Insert(photo, "", SOUTH, 1, 0) - fcopy(clean, "[GLOB.log_directory]/photos/[photo_file].png") - return photo_file - /obj/item/wallframe/newscaster name = "newscaster frame" desc = "Used to build newscasters, just secure to the wall." icon_state = "newscaster" - materials = list(MAT_METAL=14000, MAT_GLASS=8000) + custom_materials = list(/datum/material/iron=14000, /datum/material/glass=8000) result_path = /obj/machinery/newscaster - /obj/machinery/newscaster name = "newscaster" desc = "A standard Nanotrasen-licensed newsfeed handler for use in commercial space stations. All the news you absolutely have no use for, in one place!" @@ -188,8 +17,7 @@ GLOBAL_LIST_EMPTY(allCasters) verb_exclaim = "beeps" armor = list("melee" = 50, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 30) max_integrity = 200 - integrity_failure = 50 - ghost_flags = INTERACT_GHOST_READ + integrity_failure = 0.25 var/screen = 0 var/paper_remaining = 15 var/securityCaster = 0 @@ -197,12 +25,11 @@ GLOBAL_LIST_EMPTY(allCasters) var/alert_delay = 500 var/alert = FALSE var/scanned_user = "Unknown" - var/mob/active_user = null var/msg = "" var/datum/picture/picture var/channel_name = "" var/c_locked=0 - var/datum/newscaster/feed_channel/viewing_channel = null + var/datum/news/feed_channel/viewing_channel = null var/allow_comments = 1 /obj/machinery/newscaster/security_unit @@ -266,10 +93,10 @@ GLOBAL_LIST_EMPTY(allCasters) /obj/machinery/newscaster/ui_interact(mob/user) . = ..() - if(ishuman(user) || issilicon(user) || isobserver(user)) - var/mob/M = user + if(ishuman(user) || issilicon(user)) + var/mob/living/human_or_robot_user = user var/dat - scan_user(M) + scan_user(human_or_robot_user) switch(screen) if(0) dat += "Welcome to Newscasting Unit #[unit_no].
Interface & News networks Operational." @@ -281,7 +108,7 @@ GLOBAL_LIST_EMPTY(allCasters) dat+= "
Submit new Feed story" dat+= "
Print newspaper" dat+= "
Re-scan User" - dat+= "

Exit" + dat+= "

Exit" if(securityCaster) var/wanted_already = 0 if(GLOB.news_network.wanted_issue.active) @@ -296,7 +123,7 @@ GLOBAL_LIST_EMPTY(allCasters) if( isemptylist(GLOB.news_network.network_channels) ) dat+="No active channels found..." else - for(var/datum/newscaster/feed_channel/CHANNEL in GLOB.news_network.network_channels) + for(var/datum/news/feed_channel/CHANNEL in GLOB.news_network.network_channels) if(CHANNEL.is_admin_channel) dat+="[CHANNEL.channel_name]
" else @@ -335,7 +162,7 @@ GLOBAL_LIST_EMPTY(allCasters) if(7) dat+="ERROR: Could not submit Feed Channel to Network.

" var/list/existing_authors = list() - for(var/datum/newscaster/feed_channel/FC in GLOB.news_network.network_channels) + for(var/datum/news/feed_channel/FC in GLOB.news_network.network_channels) if(FC.authorCensor) existing_authors += GLOB.news_network.redactedText else @@ -345,7 +172,7 @@ GLOBAL_LIST_EMPTY(allCasters) if(channel_name=="" || channel_name == "\[REDACTED\]") dat+="Invalid channel name.
" var/check = 0 - for(var/datum/newscaster/feed_channel/FC in GLOB.news_network.network_channels) + for(var/datum/news/feed_channel/FC in GLOB.news_network.network_channels) if(FC.channel_name == channel_name) check = 1 break @@ -358,7 +185,7 @@ GLOBAL_LIST_EMPTY(allCasters) var/total_num=length(GLOB.news_network.network_channels) var/active_num=total_num var/message_num=0 - for(var/datum/newscaster/feed_channel/FC in GLOB.news_network.network_channels) + for(var/datum/news/feed_channel/FC in GLOB.news_network.network_channels) if(!FC.censored) message_num += length(FC.messages) else @@ -377,7 +204,7 @@ GLOBAL_LIST_EMPTY(allCasters) dat+="No feed messages found in channel...
" else var/i = 0 - for(var/datum/newscaster/feed_message/MESSAGE in viewing_channel.messages) + for(var/datum/news/feed_message/MESSAGE in viewing_channel.messages) i++ dat+="-[MESSAGE.returnBody(-1)]
" if(MESSAGE.img) @@ -388,7 +215,7 @@ GLOBAL_LIST_EMPTY(allCasters) dat+="
" dat+="\[Story by [MESSAGE.returnAuthor(-1)] \] - ([MESSAGE.time_stamp])
" dat+="[MESSAGE.comments.len] comment[MESSAGE.comments.len > 1 ? "s" : ""]
" - for(var/datum/newscaster/feed_comment/comment in MESSAGE.comments) + for(var/datum/news/feed_comment/comment in MESSAGE.comments) dat+="[comment.body]
[comment.author] [comment.time_stamp]
" if(MESSAGE.locked) dat+="Comments locked
" @@ -404,7 +231,7 @@ GLOBAL_LIST_EMPTY(allCasters) if(isemptylist(GLOB.news_network.network_channels)) dat+="No feed channels found active...
" else - for(var/datum/newscaster/feed_channel/CHANNEL in GLOB.news_network.network_channels) + for(var/datum/news/feed_channel/CHANNEL in GLOB.news_network.network_channels) dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : ""]
" dat+="
Cancel" if(11) @@ -415,7 +242,7 @@ GLOBAL_LIST_EMPTY(allCasters) if(isemptylist(GLOB.news_network.network_channels)) dat+="No feed channels found active...
" else - for(var/datum/newscaster/feed_channel/CHANNEL in GLOB.news_network.network_channels) + for(var/datum/news/feed_channel/CHANNEL in GLOB.news_network.network_channels) dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : ""]
" dat+="
Back" if(12) @@ -424,11 +251,11 @@ GLOBAL_LIST_EMPTY(allCasters) if(isemptylist(viewing_channel.messages)) dat+="No feed messages found in channel...
" else - for(var/datum/newscaster/feed_message/MESSAGE in viewing_channel.messages) + for(var/datum/news/feed_message/MESSAGE in viewing_channel.messages) dat+="-[MESSAGE.returnBody(-1)]
\[Story by [MESSAGE.returnAuthor(-1)]\]
" dat+="[(MESSAGE.bodyCensor) ? ("Undo story censorship") : ("Censor story")] - [(MESSAGE.authorCensor) ? ("Undo Author Censorship") : ("Censor message Author")]
" dat+="[MESSAGE.comments.len] comment[MESSAGE.comments.len > 1 ? "s" : ""]: [MESSAGE.locked ? "Unlock" : "Lock"]
" - for(var/datum/newscaster/feed_comment/comment in MESSAGE.comments) + for(var/datum/news/feed_comment/comment in MESSAGE.comments) dat+="[comment.body] X
[comment.author] [comment.time_stamp]
" dat+="
Back" if(13) @@ -441,7 +268,7 @@ GLOBAL_LIST_EMPTY(allCasters) if(isemptylist(viewing_channel.messages)) dat+="No feed messages found in channel...
" else - for(var/datum/newscaster/feed_message/MESSAGE in viewing_channel.messages) + for(var/datum/news/feed_message/MESSAGE in viewing_channel.messages) dat+="-[MESSAGE.returnBody(-1)]
\[Story by [MESSAGE.returnAuthor(-1)]\]
" dat+="
Back" if(14) @@ -503,44 +330,32 @@ GLOBAL_LIST_EMPTY(allCasters) if(21) dat+="Unable to print newspaper. Insufficient paper. Please notify maintenance personnel to refill machine storage.

" dat+="Return" - var/datum/browser/popup = new(M, "newscaster_main", "Newscaster Unit #[unit_no]", 400, 600) + var/datum/browser/popup = new(human_or_robot_user, "newscaster_main", "Newscaster Unit #[unit_no]", 400, 600) popup.set_content(dat) - popup.set_title_image(M.browse_rsc_icon(icon, icon_state)) + popup.set_title_image(human_or_robot_user.browse_rsc_icon(icon, icon_state)) popup.open() /obj/machinery/newscaster/Topic(href, href_list) if(..()) return - if(active_user && !isobserver(active_user) && get_dist(active_user,src)<=1 && usr!=active_user) - to_chat(usr, "You must wait for [active_user] to finish and move away.") - return - if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && isturf(loc))) || issilicon(usr) || isobserver(usr)) + if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && isturf(loc))) || hasSiliconAccessInArea(usr)) usr.set_machine(src) scan_user(usr) if(href_list["set_channel_name"]) - if(isobserver(usr) && !canGhostWrite(usr,src,"set a channel's name")) - to_chat(usr, "You can't do that.") - return channel_name = stripped_input(usr, "Provide a Feed Channel Name", "Network Channel Handler", "", MAX_NAME_LEN) updateUsrDialog() else if(href_list["set_channel_lock"]) - if(isobserver(usr) && !canGhostWrite(usr,src,"locked a channel")) - to_chat(usr, "You can't do that.") - return c_locked = !c_locked updateUsrDialog() else if(href_list["submit_new_channel"]) - if(isobserver(usr) && !canGhostWrite(usr,src,"created a new channel")) - to_chat(usr, "You can't do that.") - return var/list/existing_authors = list() - for(var/datum/newscaster/feed_channel/FC in GLOB.news_network.network_channels) + for(var/datum/news/feed_channel/FC in GLOB.news_network.network_channels) if(FC.authorCensor) existing_authors += GLOB.news_network.redactedText else existing_authors += FC.author var/check = 0 - for(var/datum/newscaster/feed_channel/FC in GLOB.news_network.network_channels) + for(var/datum/news/feed_channel/FC in GLOB.news_network.network_channels) if(FC.channel_name == channel_name) check = 1 break @@ -555,33 +370,21 @@ GLOBAL_LIST_EMPTY(allCasters) screen=5 updateUsrDialog() else if(href_list["set_channel_receiving"]) - if(isobserver(usr) && !canGhostWrite(usr,src,"tried to set the receiving channel")) - to_chat(usr, "You can't do that.") - return var/list/available_channels = list() - for(var/datum/newscaster/feed_channel/F in GLOB.news_network.network_channels) + for(var/datum/news/feed_channel/F in GLOB.news_network.network_channels) if( (!F.locked || F.author == scanned_user) && !F.censored) available_channels += F.channel_name channel_name = input(usr, "Choose receiving Feed Channel", "Network Channel Handler") in available_channels updateUsrDialog() else if(href_list["set_new_message"]) - if(isobserver(usr) && !canGhostWrite(usr,src,"set the message of a new feed story")) - to_chat(usr, "You can't do that.") - return var/temp_message = trim(stripped_multiline_input(usr, "Write your Feed story", "Network Channel Handler", msg)) if(temp_message) msg = temp_message updateUsrDialog() else if(href_list["set_attachment"]) - if(isobserver(usr)) - to_chat(usr, "You can't do that.") - return AttachPhoto(usr) updateUsrDialog() else if(href_list["submit_new_message"]) - if(isobserver(usr) && !canGhostWrite(usr,src,"added a new story")) - to_chat(usr, "You can't do that.") - return if(msg =="" || msg=="\[REDACTED\]" || scanned_user == "Unknown" || channel_name == "" ) screen=6 else @@ -591,27 +394,15 @@ GLOBAL_LIST_EMPTY(allCasters) msg = "" updateUsrDialog() else if(href_list["create_channel"]) - if(isobserver(usr) && !canGhostWrite(usr,src,"created a channel")) - to_chat(usr, "You can't do that.") - return screen=2 updateUsrDialog() else if(href_list["create_feed_story"]) - if(isobserver(usr) && !canGhostWrite(usr,src,"created a feed story")) - to_chat(usr, "You can't do that.") - return screen=3 updateUsrDialog() else if(href_list["menu_paper"]) - if(isobserver(usr) && !canGhostWrite(usr,src,"")) - to_chat(usr, "You can't do that.") - return screen=8 updateUsrDialog() else if(href_list["print_paper"]) - if(isobserver(usr) && !canGhostWrite(usr,src,"printed a paper")) - to_chat(usr, "You can't do that.") - return if(!paper_remaining) screen=21 else @@ -619,21 +410,12 @@ GLOBAL_LIST_EMPTY(allCasters) screen = 20 updateUsrDialog() else if(href_list["menu_censor_story"]) - if(isobserver(usr) && !canGhostWrite(usr,src,"censored a story")) - to_chat(usr, "You can't do that.") - return screen=10 updateUsrDialog() else if(href_list["menu_censor_channel"]) - if(isobserver(usr) && !canGhostWrite(usr,src,"censored a channel")) - to_chat(usr, "You can't do that.") - return screen=11 updateUsrDialog() else if(href_list["menu_wanted"]) - if(isobserver(usr) && !canGhostWrite(usr,src,"")) - to_chat(usr, "You can't do that.") - return var/already_wanted = 0 if(GLOB.news_network.wanted_issue.active) already_wanted = 1 @@ -643,21 +425,12 @@ GLOBAL_LIST_EMPTY(allCasters) screen = 14 updateUsrDialog() else if(href_list["set_wanted_name"]) - if(isobserver(usr) && !canGhostWrite(usr,src,"tried to set the name of a wanted person")) - to_chat(usr, "You can't do that.") - return channel_name = stripped_input(usr, "Provide the name of the Wanted person", "Network Security Handler") updateUsrDialog() else if(href_list["set_wanted_desc"]) - if(isobserver(usr) && !canGhostWrite(usr,src,"tried to set the description of a wanted person")) - to_chat(usr, "You can't do that.") - return msg = stripped_input(usr, "Provide a description of the Wanted person and any other details you deem important", "Network Security Handler") updateUsrDialog() else if(href_list["submit_wanted"]) - if(isobserver(usr) && !canGhostWrite(usr,src,"submitted a wanted poster")) - to_chat(usr, "You can't do that.") - return var/input_param = text2num(href_list["submit_wanted"]) if(msg == "" || channel_name == "" || scanned_user == "Unknown") screen = 16 @@ -688,48 +461,33 @@ GLOBAL_LIST_EMPTY(allCasters) screen=18 updateUsrDialog() else if(href_list["censor_channel_author"]) - if(isobserver(usr) && !canGhostWrite(usr,src,"tried to censor an author")) - to_chat(usr, "You can't do that.") - return - var/datum/newscaster/feed_channel/FC = locate(href_list["censor_channel_author"]) + var/datum/news/feed_channel/FC = locate(href_list["censor_channel_author"]) if(FC.is_admin_channel) alert("This channel was created by a Nanotrasen Officer. You cannot censor it.","Ok") return FC.toggleCensorAuthor() updateUsrDialog() else if(href_list["censor_channel_story_author"]) - if(isobserver(usr) && !canGhostWrite(usr,src,"tried to censor a story's author")) - to_chat(usr, "You can't do that.") - return - var/datum/newscaster/feed_message/MSG = locate(href_list["censor_channel_story_author"]) + var/datum/news/feed_message/MSG = locate(href_list["censor_channel_story_author"]) if(MSG.is_admin_message) alert("This message was created by a Nanotrasen Officer. You cannot censor its author.","Ok") return MSG.toggleCensorAuthor() updateUsrDialog() else if(href_list["censor_channel_story_body"]) - if(isobserver(usr) && !canGhostWrite(usr,src,"tried to censor a story")) - to_chat(usr, "You can't do that.") - return - var/datum/newscaster/feed_message/MSG = locate(href_list["censor_channel_story_body"]) + var/datum/news/feed_message/MSG = locate(href_list["censor_channel_story_body"]) if(MSG.is_admin_message) alert("This channel was created by a Nanotrasen Officer. You cannot censor it.","Ok") return MSG.toggleCensorBody() updateUsrDialog() else if(href_list["pick_d_notice"]) - if(isobserver(usr) && !canGhostWrite(usr,src,"")) - to_chat(usr, "You can't do that.") - return - var/datum/newscaster/feed_channel/FC = locate(href_list["pick_d_notice"]) + var/datum/news/feed_channel/FC = locate(href_list["pick_d_notice"]) viewing_channel = FC screen=13 updateUsrDialog() else if(href_list["toggle_d_notice"]) - if(isobserver(usr) && !canGhostWrite(usr,src,"tried to set a D-notice")) - to_chat(usr, "You can't do that.") - return - var/datum/newscaster/feed_channel/FC = locate(href_list["toggle_d_notice"]) + var/datum/news/feed_channel/FC = locate(href_list["toggle_d_notice"]) if(FC.is_admin_channel) alert("This channel was created by a Nanotrasen Officer. You cannot place a D-Notice upon it.","Ok") return @@ -748,21 +506,21 @@ GLOBAL_LIST_EMPTY(allCasters) viewing_channel = null updateUsrDialog() else if(href_list["show_channel"]) - var/datum/newscaster/feed_channel/FC = locate(href_list["show_channel"]) + var/datum/news/feed_channel/FC = locate(href_list["show_channel"]) viewing_channel = FC screen = 9 updateUsrDialog() else if(href_list["pick_censor_channel"]) - var/datum/newscaster/feed_channel/FC = locate(href_list["pick_censor_channel"]) + var/datum/news/feed_channel/FC = locate(href_list["pick_censor_channel"]) viewing_channel = FC screen = 12 updateUsrDialog() else if(href_list["new_comment"]) - var/datum/newscaster/feed_message/FM = locate(href_list["new_comment"]) + var/datum/news/feed_message/FM = locate(href_list["new_comment"]) var/cominput = copytext_char(stripped_input(usr, "Write your message:", "New comment", null), 140) if(cominput) scan_user(usr) - var/datum/newscaster/feed_comment/FC = new/datum/newscaster/feed_comment + var/datum/news/feed_comment/FC = new/datum/news/feed_comment FC.author = scanned_user FC.body = cominput FC.time_stamp = STATION_TIME_TIMESTAMP("hh:mm:ss", world.time) @@ -770,14 +528,14 @@ GLOBAL_LIST_EMPTY(allCasters) usr.log_message("(as [scanned_user]) commented on message [FM.returnBody(-1)] -- [FC.body]", LOG_COMMENT) updateUsrDialog() else if(href_list["del_comment"]) - var/datum/newscaster/feed_comment/FC = locate(href_list["del_comment"]) - var/datum/newscaster/feed_message/FM = locate(href_list["del_comment_msg"]) + var/datum/news/feed_comment/FC = locate(href_list["del_comment"]) + var/datum/news/feed_message/FM = locate(href_list["del_comment_msg"]) if(istype(FC) && istype(FM)) FM.comments -= FC qdel(FC) updateUsrDialog() else if(href_list["lock_comment"]) - var/datum/newscaster/feed_message/FM = locate(href_list["lock_comment"]) + var/datum/news/feed_message/FM = locate(href_list["lock_comment"]) FM.locked ^= 1 updateUsrDialog() else if(href_list["set_comment"]) @@ -876,12 +634,6 @@ GLOBAL_LIST_EMPTY(allCasters) picture = selection /obj/machinery/newscaster/proc/scan_user(mob/living/user) - if(active_user) - if(active_user != user) - if(get_dist(active_user,src)<=1) - if(!isobserver(active_user)) - to_chat(user, "Wait for [active_user] to finish and move away.") - return if(ishuman(user)) var/mob/living/carbon/human/human_user = user if(human_user.wear_id) @@ -901,19 +653,14 @@ GLOBAL_LIST_EMPTY(allCasters) else if(issilicon(user)) var/mob/living/silicon/ai_user = user scanned_user = "[ai_user.name] ([ai_user.job])" - else if (IsAdminGhost(user)) - scanned_user = "Nanotrasen Officer #[rand(0,9)][rand(0,9)][rand(0,9)]" - else if (isobserver(user)) - scanned_user = "Space-Time Anomaly #[rand(0,9)][rand(0,9)][rand(0,9)]" else throw EXCEPTION("Invalid user for this proc") return - active_user = user /obj/machinery/newscaster/proc/print_paper() SSblackbox.record_feedback("amount", "newspapers_printed", 1) var/obj/item/newspaper/NEWSPAPER = new /obj/item/newspaper - for(var/datum/newscaster/feed_channel/FC in GLOB.news_network.network_channels) + for(var/datum/news/feed_channel/FC in GLOB.news_network.network_channels) NEWSPAPER.news_content += FC if(GLOB.news_network.wanted_issue.active) NEWSPAPER.wantedAuthor = GLOB.news_network.wanted_issue.scannedUser @@ -925,7 +672,6 @@ GLOBAL_LIST_EMPTY(allCasters) NEWSPAPER.creationTime = GLOB.news_network.lastAction paper_remaining-- - /obj/machinery/newscaster/proc/remove_alert() alert = FALSE update_icon() @@ -940,177 +686,3 @@ GLOBAL_LIST_EMPTY(allCasters) else say("Attention! Wanted issue distributed!") playsound(loc, 'sound/machines/warning-buzzer.ogg', 75, 1) - -/obj/item/newspaper - name = "newspaper" - desc = "An issue of The Griffon, the newspaper circulating aboard Nanotrasen Space Stations." - icon = 'icons/obj/bureaucracy.dmi' - icon_state = "newspaper" - lefthand_file = 'icons/mob/inhands/misc/books_lefthand.dmi' - righthand_file = 'icons/mob/inhands/misc/books_righthand.dmi' - w_class = WEIGHT_CLASS_SMALL - attack_verb = list("bapped") - var/screen = 0 - var/pages = 0 - var/curr_page = 0 - var/list/datum/newscaster/feed_channel/news_content = list() - var/scribble="" - var/scribble_page = null - var/wantedAuthor - var/wantedCriminal - var/wantedBody - var/wantedPhoto - var/creationTime - -/obj/item/newspaper/suicide_act(mob/user) - user.visible_message("[user] is focusing intently on [src]! It looks like [user.p_theyre()] trying to commit sudoku... until [user.p_their()] eyes light up with realization!") - user.say(";JOURNALISM IS MY CALLING! EVERYBODY APPRECIATES UNBIASED REPORTI-GLORF", forced="newspaper suicide") - var/mob/living/carbon/human/H = user - var/obj/W = new /obj/item/reagent_containers/food/drinks/bottle/whiskey(H.loc) - playsound(H.loc, 'sound/items/drink.ogg', rand(10,50), 1) - W.reagents.trans_to(H, W.reagents.total_volume) - user.visible_message("[user] downs the contents of [W.name] in one gulp! Shoulda stuck to sudoku!") - - return(TOXLOSS) - -/obj/item/newspaper/attack_self(mob/user) - if(ishuman(user)) - var/mob/living/carbon/human/human_user = user - var/dat - pages = 0 - switch(screen) - if(0) //Cover - dat+="
The Griffon
" - dat+="
Nanotrasen-standard newspaper, for use on Nanotrasen? Space Facilities

" - if(isemptylist(news_content)) - if(wantedAuthor) - dat+="Contents:
    **Important Security Announcement** \[page [pages+2]\]
" - else - dat+="Other than the title, the rest of the newspaper is unprinted..." - else - dat+="Contents:
    " - for(var/datum/newscaster/feed_channel/NP in news_content) - pages++ - if(wantedAuthor) - dat+="**Important Security Announcement** \[page [pages+2]\]
    " - var/temp_page=0 - for(var/datum/newscaster/feed_channel/NP in news_content) - temp_page++ - dat+="[NP.channel_name] \[page [temp_page+1]\]
    " - dat+="
" - if(scribble_page==curr_page) - dat+="
There is a small scribble near the end of this page... It reads: \"[scribble]\"" - dat+= "
" - if(1) // X channel pages inbetween. - for(var/datum/newscaster/feed_channel/NP in news_content) - pages++ - var/datum/newscaster/feed_channel/C = news_content[curr_page] - dat += "[C.channel_name] \[created by: [C.returnAuthor(notContent(C.authorCensorTime))]\]

" - if(notContent(C.DclassCensorTime)) - dat+="This channel was deemed dangerous to the general welfare of the station and therefore marked with a D-Notice. Its contents were not transferred to the newspaper at the time of printing." - else - if(isemptylist(C.messages)) - dat+="No Feed stories stem from this channel..." - else - var/i = 0 - for(var/datum/newscaster/feed_message/MESSAGE in C.messages) - if(MESSAGE.creationTime > creationTime) - if(i == 0) - dat+="No Feed stories stem from this channel..." - break - if(i == 0) - dat+="
    " - i++ - dat+="-[MESSAGE.returnBody(notContent(MESSAGE.bodyCensorTime))]
    " - if(MESSAGE.img) - user << browse_rsc(MESSAGE.img, "tmp_photo[i].png") - dat+="
    " - dat+="\[Story by [MESSAGE.returnAuthor(notContent(MESSAGE.authorCensorTime))]\]

    " - dat+="
" - if(scribble_page==curr_page) - dat+="
There is a small scribble near the end of this page... It reads: \"[scribble]\"" - dat+= "

" - if(2) //Last page - for(var/datum/newscaster/feed_channel/NP in news_content) - pages++ - if(wantedAuthor!=null) - dat+="
Wanted Issue:


" - dat+="Criminal name: [wantedCriminal]
" - dat+="Description: [wantedBody]
" - dat+="Photo:: " - if(wantedPhoto) - user << browse_rsc(wantedPhoto, "tmp_photow.png") - dat+="
" - else - dat+="None" - else - dat+="Apart from some uninteresting classified ads, there's nothing on this page..." - if(scribble_page==curr_page) - dat+="
There is a small scribble near the end of this page... It reads: \"[scribble]\"" - dat+= "
" - dat+="

[curr_page+1]
" - human_user << browse(dat, "window=newspaper_main;size=300x400") - onclose(human_user, "newspaper_main") - else - to_chat(user, "The paper is full of unintelligible symbols!") - -/obj/item/newspaper/proc/notContent(list/L) - if(!L.len) - return 0 - for(var/i=L.len;i>0;i--) - var/num = abs(L[i]) - if(creationTime <= num) - continue - else - if(L[i] > 0) - return 1 - else - return 0 - return 0 - -/obj/item/newspaper/Topic(href, href_list) - var/mob/living/U = usr - ..() - if((src in U.contents) || (isturf(loc) && in_range(src, U))) - U.set_machine(src) - if(href_list["next_page"]) - if(curr_page == pages+1) - return //Don't need that at all, but anyway. - if(curr_page == pages) //We're at the middle, get to the end - screen = 2 - else - if(curr_page == 0) //We're at the start, get to the middle - screen=1 - curr_page++ - playsound(loc, "pageturn", 50, 1) - else if(href_list["prev_page"]) - if(curr_page == 0) - return - if(curr_page == 1) - screen = 0 - else - if(curr_page == pages+1) //we're at the end, let's go back to the middle. - screen = 1 - curr_page-- - playsound(loc, "pageturn", 50, 1) - if(ismob(loc)) - attack_self(loc) - -/obj/item/newspaper/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/pen)) - if(!user.is_literate()) - to_chat(user, "You scribble illegibly on [src]!") - return - if(scribble_page == curr_page) - to_chat(user, "There's already a scribble in this page... You wouldn't want to make things too cluttered, would you?") - else - var/s = stripped_input(user, "Write something", "Newspaper") - if (!s) - return - if(!user.canUseTopic(src, BE_CLOSE)) - return - scribble_page = curr_page - scribble = s - attack_self(user) - else - return ..() diff --git a/code/modules/newscaster/newspaper.dm b/code/modules/newscaster/newspaper.dm new file mode 100644 index 0000000000..0afb36a7e7 --- /dev/null +++ b/code/modules/newscaster/newspaper.dm @@ -0,0 +1,173 @@ +/obj/item/newspaper + name = "newspaper" + desc = "An issue of The Griffon, the newspaper circulating aboard Nanotrasen Space Stations." + icon = 'icons/obj/bureaucracy.dmi' + icon_state = "newspaper" + lefthand_file = 'icons/mob/inhands/misc/books_lefthand.dmi' + righthand_file = 'icons/mob/inhands/misc/books_righthand.dmi' + w_class = WEIGHT_CLASS_SMALL + attack_verb = list("bapped") + var/screen = 0 + var/pages = 0 + var/curr_page = 0 + var/list/datum/news/feed_channel/news_content = list() + var/scribble="" + var/scribble_page = null + var/wantedAuthor + var/wantedCriminal + var/wantedBody + var/wantedPhoto + var/creationTime + +/obj/item/newspaper/suicide_act(mob/user) + user.visible_message("[user] is focusing intently on [src]! It looks like [user.p_theyre()] trying to commit sudoku... until [user.p_their()] eyes light up with realization!") + user.say(";JOURNALISM IS MY CALLING! EVERYBODY APPRECIATES UNBIASED REPORTI-GLORF", forced="newspaper suicide") + var/mob/living/carbon/human/H = user + var/obj/W = new /obj/item/reagent_containers/food/drinks/bottle/whiskey(H.loc) + playsound(H.loc, 'sound/items/drink.ogg', rand(10,50), 1) + W.reagents.trans_to(H, W.reagents.total_volume) + user.visible_message("[user] downs the contents of [W.name] in one gulp! Shoulda stuck to sudoku!") + + return(TOXLOSS) + +/obj/item/newspaper/attack_self(mob/user) + if(ishuman(user)) + var/mob/living/carbon/human/human_user = user + var/dat + pages = 0 + switch(screen) + if(0) //Cover + dat+="
The Griffon
" + dat+="
Nanotrasen-standard newspaper, for use on Nanotrasen? Space Facilities

" + if(isemptylist(news_content)) + if(wantedAuthor) + dat+="Contents:
    **Important Security Announcement** \[page [pages+2]\]
" + else + dat+="Other than the title, the rest of the newspaper is unprinted..." + else + dat+="Contents:
    " + for(var/datum/news/feed_channel/NP in news_content) + pages++ + if(wantedAuthor) + dat+="**Important Security Announcement** \[page [pages+2]\]
    " + var/temp_page=0 + for(var/datum/news/feed_channel/NP in news_content) + temp_page++ + dat+="[NP.channel_name] \[page [temp_page+1]\]
    " + dat+="
" + if(scribble_page==curr_page) + dat+="
There is a small scribble near the end of this page... It reads: \"[scribble]\"" + dat+= "
" + if(1) // X channel pages inbetween. + for(var/datum/news/feed_channel/NP in news_content) + pages++ + var/datum/news/feed_channel/C = news_content[curr_page] + dat += "[C.channel_name] \[created by: [C.returnAuthor(notContent(C.authorCensorTime))]\]

" + if(notContent(C.DclassCensorTime)) + dat+="This channel was deemed dangerous to the general welfare of the station and therefore marked with a D-Notice. Its contents were not transferred to the newspaper at the time of printing." + else + if(isemptylist(C.messages)) + dat+="No Feed stories stem from this channel..." + else + var/i = 0 + for(var/datum/news/feed_message/MESSAGE in C.messages) + if(MESSAGE.creationTime > creationTime) + if(i == 0) + dat+="No Feed stories stem from this channel..." + break + if(i == 0) + dat+="
    " + i++ + dat+="-[MESSAGE.returnBody(notContent(MESSAGE.bodyCensorTime))]
    " + if(MESSAGE.img) + user << browse_rsc(MESSAGE.img, "tmp_photo[i].png") + dat+="
    " + dat+="\[Story by [MESSAGE.returnAuthor(notContent(MESSAGE.authorCensorTime))]\]

    " + dat+="
" + if(scribble_page==curr_page) + dat+="
There is a small scribble near the end of this page... It reads: \"[scribble]\"" + dat+= "

" + if(2) //Last page + for(var/datum/news/feed_channel/NP in news_content) + pages++ + if(wantedAuthor!=null) + dat+="
Wanted Issue:


" + dat+="Criminal name: [wantedCriminal]
" + dat+="Description: [wantedBody]
" + dat+="Photo:: " + if(wantedPhoto) + user << browse_rsc(wantedPhoto, "tmp_photow.png") + dat+="
" + else + dat+="None" + else + dat+="Apart from some uninteresting classified ads, there's nothing on this page..." + if(scribble_page==curr_page) + dat+="
There is a small scribble near the end of this page... It reads: \"[scribble]\"" + dat+= "
" + dat+="

[curr_page+1]
" + human_user << browse(dat, "window=newspaper_main;size=300x400") + onclose(human_user, "newspaper_main") + else + to_chat(user, "The paper is full of unintelligible symbols!") + +/obj/item/newspaper/proc/notContent(list/L) + if(!L.len) + return 0 + for(var/i=L.len;i>0;i--) + var/num = abs(L[i]) + if(creationTime <= num) + continue + else + if(L[i] > 0) + return 1 + else + return 0 + return 0 + +/obj/item/newspaper/Topic(href, href_list) + var/mob/living/U = usr + ..() + if((src in U.contents) || (isturf(loc) && in_range(src, U))) + U.set_machine(src) + if(href_list["next_page"]) + if(curr_page == pages+1) + return //Don't need that at all, but anyway. + if(curr_page == pages) //We're at the middle, get to the end + screen = 2 + else + if(curr_page == 0) //We're at the start, get to the middle + screen=1 + curr_page++ + playsound(loc, "pageturn", 50, 1) + else if(href_list["prev_page"]) + if(curr_page == 0) + return + if(curr_page == 1) + screen = 0 + else + if(curr_page == pages+1) //we're at the end, let's go back to the middle. + screen = 1 + curr_page-- + playsound(loc, "pageturn", 50, 1) + if(ismob(loc)) + attack_self(loc) + +/obj/item/newspaper/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/pen)) + if(!user.is_literate()) + to_chat(user, "You scribble illegibly on [src]!") + return + if(scribble_page == curr_page) + to_chat(user, "There's already a scribble in this page... You wouldn't want to make things too cluttered, would you?") + else + var/s = stripped_input(user, "Write something", "Newspaper") + if (!s) + return + if(!user.canUseTopic(src, BE_CLOSE)) + return + scribble_page = curr_page + scribble = s + attack_self(user) + else + return ..() diff --git a/code/modules/newscaster/wanted_message.dm b/code/modules/newscaster/wanted_message.dm new file mode 100644 index 0000000000..58eb234f02 --- /dev/null +++ b/code/modules/newscaster/wanted_message.dm @@ -0,0 +1,8 @@ +/datum/news/wanted_message + var/active + var/criminal + var/body + var/scannedUser + var/isAdminMsg + var/icon/img + var/photo_file diff --git a/code/modules/ninja/outfit.dm b/code/modules/ninja/outfit.dm index 7ee71db1f1..323deed5c4 100644 --- a/code/modules/ninja/outfit.dm +++ b/code/modules/ninja/outfit.dm @@ -1,6 +1,6 @@ /datum/outfit/ninja name = "Space Ninja" - uniform = /obj/item/clothing/under/color/black + uniform = /obj/item/clothing/under/color/black/trackless suit = /obj/item/clothing/suit/space/space_ninja glasses = /obj/item/clothing/glasses/night mask = /obj/item/clothing/mask/gas/space_ninja diff --git a/code/modules/oracle_ui/hookup_procs.dm b/code/modules/oracle_ui/hookup_procs.dm index 0a092caf30..30db9d92b9 100644 --- a/code/modules/oracle_ui/hookup_procs.dm +++ b/code/modules/oracle_ui/hookup_procs.dm @@ -5,7 +5,7 @@ return "Default Implementation" /datum/proc/oui_canuse(mob/user) - if(isobserver(user) && !user.has_unlimited_silicon_privilege) + if(isobserver(user) && !user.silicon_privileges) return FALSE return oui_canview(user) @@ -35,9 +35,9 @@ return ..() /obj/machinery/oui_canview(mob/user) - if(user.has_unlimited_silicon_privilege) + if(hasSiliconAccessInArea(user, ALL)) return TRUE - if(!can_interact()) + if(!can_interact(user)) return FALSE if(iscyborg(user)) return can_see(user, src, 7) diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index 2650da8c7a..a98f057c4a 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -21,7 +21,7 @@ w_class = WEIGHT_CLASS_TINY throw_speed = 3 throw_range = 7 - materials = list(MAT_METAL=10) + custom_materials = list(/datum/material/iron=10) pressure_resistance = 2 grind_results = list(/datum/reagent/iron = 2, /datum/reagent/iodine = 1) var/colour = "black" //what colour the ink is! @@ -79,7 +79,7 @@ throwforce = 5 throw_speed = 4 colour = "crimson" - materials = list(MAT_GOLD = 750) + custom_materials = list(/datum/material/gold = 750) sharpness = IS_SHARP resistance_flags = FIRE_PROOF unique_reskin = list("Oak" = "pen-fountain-o", @@ -139,6 +139,7 @@ O.name = input to_chat(user, "\The [oldname] has been successfully been renamed to \the [input].") O.renamedByPlayer = TRUE + log_game("[user] [key_name(user)] has renamed [O] to [input]") if(penchoice == "Change description") var/input = stripped_input(user,"Describe \the [O.name] here", ,"", 100) @@ -146,6 +147,7 @@ return O.desc = input to_chat(user, "You have successfully changed \the [O.name]'s description.") + log_game("[user] [key_name(user)] has changed [O]'s description to to [input]") /* * Sleepypens diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 182806388a..97d28d7674 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -18,7 +18,7 @@ active_power_usage = 200 power_channel = EQUIP max_integrity = 300 - integrity_failure = 100 + integrity_failure = 0.33 var/obj/item/paper/copy = null //what's in the copier! var/obj/item/photo/photocopy = null var/obj/item/documents/doccopy = null diff --git a/code/modules/paperwork/stamps.dm b/code/modules/paperwork/stamps.dm index 1fe59623fb..2beb9296b3 100644 --- a/code/modules/paperwork/stamps.dm +++ b/code/modules/paperwork/stamps.dm @@ -8,7 +8,7 @@ w_class = WEIGHT_CLASS_TINY throw_speed = 3 throw_range = 7 - materials = list(MAT_METAL=60) + custom_materials = list(/datum/material/iron=60) item_color = "cargo" pressure_resistance = 2 attack_verb = list("stamped") diff --git a/code/modules/photography/camera/camera.dm b/code/modules/photography/camera/camera.dm index 140167c2f0..b7b7bc36b7 100644 --- a/code/modules/photography/camera/camera.dm +++ b/code/modules/photography/camera/camera.dm @@ -14,7 +14,7 @@ w_class = WEIGHT_CLASS_SMALL flags_1 = CONDUCT_1 slot_flags = ITEM_SLOT_NECK - materials = list(MAT_METAL = 50, MAT_GLASS = 150) + custom_materials = list(/datum/material/iron = 50, /datum/material/glass = 150) var/flash_enabled = TRUE var/state_on = "camera" var/state_off = "camera_off" diff --git a/code/modules/photography/camera/film.dm b/code/modules/photography/camera/film.dm index b1cd6bae66..b44b933610 100644 --- a/code/modules/photography/camera/film.dm +++ b/code/modules/photography/camera/film.dm @@ -11,4 +11,4 @@ righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' w_class = WEIGHT_CLASS_TINY resistance_flags = FLAMMABLE - materials = list(MAT_METAL = 10, MAT_GLASS = 10) + custom_materials = list(/datum/material/iron = 10, /datum/material/glass = 10) diff --git a/code/modules/photography/photos/frame.dm b/code/modules/photography/photos/frame.dm index f86cae8095..d20a71d1c6 100644 --- a/code/modules/photography/photos/frame.dm +++ b/code/modules/photography/photos/frame.dm @@ -4,7 +4,7 @@ name = "picture frame" desc = "The perfect showcase for your favorite deathtrap memories." icon = 'icons/obj/decals.dmi' - materials = list() + custom_materials = null flags_1 = 0 icon_state = "frame-empty" result_path = /obj/structure/sign/picture_frame diff --git a/code/modules/pool/pool_controller.dm b/code/modules/pool/pool_controller.dm new file mode 100644 index 0000000000..681adb0ef3 --- /dev/null +++ b/code/modules/pool/pool_controller.dm @@ -0,0 +1,422 @@ +#define POOL_NO_OVERDOSE_MEDICINE_MAX 5 //max units of no-overdose medicine to allow mobs to have through duplication + +//Originally stolen from paradise. Credits to tigercat2000. +//Modified a lot by Kokojo and Tortellini Tony for hippiestation. +//Heavily refactored by tgstation +/obj/machinery/pool + icon = 'icons/obj/machines/pool.dmi' + anchored = TRUE + resistance_flags = INDESTRUCTIBLE + +/obj/machinery/pool/controller + name = "\improper Pool Controller" + desc = "An advanced substance generation and fluid tank management system that can refill the contents of a pool to a completely different substance in minutes." + icon_state = "poolc_3" + density = TRUE + use_power = TRUE + idle_power_usage = 75 + /// How far it scans for pool objects + var/scan_range = 6 + /// Is pool mist currently on? + var/mist_state = FALSE + /// Linked mist effects + var/list/obj/effect/mist/linked_mist = list() + /// Pool turfs + var/list/turf/open/pool/linked_turfs = list() + /// All mobs in pool + var/list/mob/living/mobs_in_pool = list() + /// Is the pool bloody? + var/bloody = 0 + /// Last time we process_reagents()'d + var/last_reagent_process = 0 + /// Maximum amount we will take from a beaker + var/max_beaker_transfer = 100 + /// Minimum amount of a reagent for it to work on us + var/min_reagent_amount = 10 + /// ADMINBUS ONLY - WHETHER OR NOT WE HAVE NOREACT ;) + var/noreact_reagents = FALSE + /// how fast in deciseconds between reagent processes + var/reagent_tick_interval = 5 + /// Can we use unsafe temperatures + var/temperature_unlocked = FALSE + /// See __DEFINES/pool.dm, temperature defines + var/temperature = POOL_NORMAL + /// Whether or not the pool can be drained + var/drainable = FALSE + // Whether or not the pool is drained + var/drained = FALSE + /// Pool drain + var/obj/machinery/pool/drain/linked_drain + /// Pool filter + var/obj/machinery/pool/filter/linked_filter + /// Next world.time you can interact with settings + var/interact_delay = 0 + /// Airlock style shocks + var/shocked = FALSE + /// Old reagent color, used to determine if update_color needs to reset colors. + var/old_rcolor + /// Just to prevent spam + var/draining = FALSE + /// Reagent blacklisting + var/respect_reagent_blacklist = TRUE + +/obj/machinery/pool/controller/examine(mob/user) + . = ..() + . += "Alt click to drain reagents." + +/obj/machinery/pool/controller/Initialize() + . = ..() + START_PROCESSING(SSfastprocess, src) + create_reagents(1000) + if(noreact_reagents) + reagents.reagents_holder_flags |= NO_REACT + wires = new /datum/wires/poolcontroller(src) + scan_things() + +/obj/machinery/pool/controller/Destroy() + STOP_PROCESSING(SSprocessing, src) + linked_drain = null + linked_filter = null + linked_turfs.Cut() + mobs_in_pool.Cut() + return ..() + +/obj/machinery/pool/controller/proc/scan_things() + var/list/cached = range(scan_range, src) + for(var/turf/open/pool/W in cached) + linked_turfs += W + W.controller = src + for(var/obj/machinery/pool/drain/pooldrain in cached) + linked_drain = pooldrain + linked_drain.controller = src + break + for(var/obj/machinery/pool/filter/F in cached) + linked_filter = F + linked_filter.controller = src + break + +/obj/machinery/pool/controller/emag_act(mob/user) + . = ..() + if(!(obj_flags & EMAGGED)) //If it is not already emagged, emag it. + to_chat(user, "You disable the [src]'s safety features.") + do_sparks(5, TRUE, src) + obj_flags |= EMAGGED + temperature_unlocked = TRUE + drainable = TRUE + log_game("[key_name(user)] emagged [src]") + message_admins("[key_name_admin(user)] emagged [src]") + else + to_chat(user, "The interface on [src] is already too damaged to short it again.") + return + +/obj/machinery/pool/controller/AltClick(mob/user) + . = ..() + if(!isliving(user) || !user.Adjacent(src) || !user.CanReach(src) || user.IsStun() || user.IsKnockdown() || user.incapacitated()) + return FALSE + visible_message("[user] starts to drain [src]!") + draining = TRUE + if(!do_after(user, 50, target = src)) + draining = FALSE + return TRUE + reagents.remove_all(INFINITY) + visible_message("[user] drains [src].") + say("Reagents cleared.") + update_color() + draining = FALSE + return TRUE + +/obj/machinery/pool/controller/attackby(obj/item/W, mob/user) + if(shocked && !(stat & NOPOWER)) + shock(user,50) + if(stat & (BROKEN)) + return + if(istype(W,/obj/item/reagent_containers)) + if(W.reagents.total_volume) //check if there's reagent + user.visible_message("[user] is feeding [src] some chemicals from [W].") + if(do_after(user, 50, target = src)) + for(var/datum/reagent/R in W.reagents.reagent_list) + if(R.type in GLOB.blacklisted_pool_reagents) + to_chat(user, "[src] cannot accept [R.name].") + return + if(R.reagent_state == SOLID) + to_chat(user, "The pool cannot accept reagents in solid form!.") + return + reagents.clear_reagents() + // This also reacts them. No nitroglycerin deathpools, sorry gamers :( + W.reagents.trans_to(reagents, max_beaker_transfer) + user.visible_message("[src] makes a slurping noise.", "All of the contents of [W] are quickly suctioned out by the machine!= min_reagent_amount) && (!respect_reagent_blacklist || R.can_synth)) + reagent_names += R.name + else + reagents.remove_reagent(R.type, INFINITY) + rejected += R.name + if(length(reagent_names)) + reagent_names = english_list(reagent_names) + var/msg = "POOL: [key_name(user)] has changed [src]'s chems to [reagent_names]" + log_game(msg) + message_admins(msg) + if(length(rejected)) + rejected = english_list(rejected) + to_chat(user, "[src] rejects the following chemicals as they do not have at least [min_reagent_amount] units of volume: [rejected]") + update_color() + else + to_chat(user, "[src] beeps unpleasantly as it rejects the beaker. Why are you trying to feed it an empty beaker?") + return + else if(panel_open && is_wire_tool(W)) + wires.interact(user) + else + return ..() + +/obj/machinery/pool/controller/screwdriver_act(mob/living/user, obj/item/W) + . = ..() + if(.) + return TRUE + cut_overlays() + panel_open = !panel_open + to_chat(user, "You [panel_open ? "open" : "close"] the maintenance panel.") + W.play_tool_sound(src) + if(panel_open) + add_overlay("wires") + return TRUE + +//procs +/obj/machinery/pool/controller/proc/shock(mob/user, prb) + if(stat & (BROKEN|NOPOWER)) // unpowered, no shock + return FALSE + if(!prob(prb)) + return FALSE + var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread + s.set_up(5, 1, src) + s.start() + if(electrocute_mob(user, get_area(src), src, 0.7)) + return TRUE + else + return FALSE + +/obj/machinery/pool/controller/proc/process_reagents() + if(last_reagent_process > world.time + reagent_tick_interval) + return + if(!length(reagents.reagent_list)) + return + for(var/turf/open/pool/W in linked_turfs) + for(var/mob/living/carbon/human/swimee in W) + for(var/datum/reagent/R in reagents.reagent_list) + if(R.reagent_state == SOLID) + R.reagent_state = LIQUID + if(!swimee.reagents.has_reagent(POOL_NO_OVERDOSE_MEDICINE_MAX)) + swimee.reagents.add_reagent(R.type, 0.5) //osmosis + reagents.reaction(swimee, VAPOR, 0.03) //3 percent. Need to find a way to prevent this from stacking chems at some point like the above. + for(var/obj/objects in W) + if(W.reagents) + W.reagents.reaction(objects, VAPOR, 1) + last_reagent_process = world.time + +/obj/machinery/pool/controller/process() + updateUsrDialog() + if(stat & (NOPOWER|BROKEN)) + return + if(drained) + return + process_pool() + process_reagents() + +/obj/machinery/pool/controller/proc/process_pool() + if(drained) + return + for(var/mob/living/M in mobs_in_pool) + switch(temperature) //Apply different effects based on what the temperature is set to. + if(POOL_SCALDING) //Scalding + M.adjust_bodytemperature(50,0,500) + if(POOL_WARM) //Warm + M.adjust_bodytemperature(20,0,360) //Heats up mobs till the termometer shows up + //Normal temp does nothing, because it's just room temperature water. + if(POOL_COOL) + M.adjust_bodytemperature(-20,250) //Cools mobs till the termometer shows up + if(POOL_FRIGID) //Freezing + M.adjust_bodytemperature(-60) //cool mob at -35k per cycle, less would not affect the mob enough. + if(M.bodytemperature <= 50 && !M.stat) + M.apply_status_effect(/datum/status_effect/freon) + if(ishuman(M)) + var/mob/living/carbon/human/drownee = M + if(!drownee || drownee.stat == DEAD) + return + if(drownee.resting && !drownee.internal) + if(drownee.stat != CONSCIOUS) + drownee.adjustOxyLoss(9) + else + drownee.adjustOxyLoss(4) + if(prob(35)) + to_chat(drownee, "You're drowning!") + +/obj/machinery/pool/controller/proc/set_bloody(state) + if(bloody == state) + return + bloody = state + update_color() + +/obj/machinery/pool/controller/proc/update_color() + if(drained) + return + var/rcolor + if(reagents.reagent_list.len) + rcolor = mix_color_from_reagents(reagents.reagent_list) + if(rcolor == old_rcolor) + return // small performance upgrade hopefully? + old_rcolor = rcolor + for(var/X in linked_turfs) + var/turf/open/pool/color1 = X + if(bloody) + if(rcolor) + var/thecolor = BlendRGB(rgb(150, 20, 20), rcolor, 0.5) + color1.watereffect.add_atom_colour(thecolor, FIXED_COLOUR_PRIORITY) + color1.watertop.add_atom_colour(thecolor, FIXED_COLOUR_PRIORITY) + else + var/thecolor = rgb(150, 20, 20) + color1.watereffect.add_atom_colour(thecolor, FIXED_COLOUR_PRIORITY) + color1.watertop.add_atom_colour(thecolor, FIXED_COLOUR_PRIORITY) + else if(!bloody && rcolor) + color1.watereffect.add_atom_colour(rcolor, FIXED_COLOUR_PRIORITY) + color1.watertop.add_atom_colour(rcolor, FIXED_COLOUR_PRIORITY) + else + color1.watereffect.remove_atom_colour(FIXED_COLOUR_PRIORITY) + color1.watertop.remove_atom_colour(FIXED_COLOUR_PRIORITY) + +/obj/machinery/pool/controller/proc/update_temp() + if(mist_state) + if(temperature < POOL_SCALDING) + mist_off() + else + if(temperature == POOL_SCALDING) + mist_on() + update_icon() + +/obj/machinery/pool/controller/update_icon() + . = ..() + icon_state = "poolc_[temperature]" + +/obj/machinery/pool/controller/proc/CanUpTemp(mob/user) + if(temperature == POOL_WARM && (temperature_unlocked || issilicon(user) || IsAdminGhost(user)) || temperature < POOL_WARM) + return TRUE + return FALSE + +/obj/machinery/pool/controller/proc/CanDownTemp(mob/user) + if(temperature == POOL_COOL && (temperature_unlocked || issilicon(user) || IsAdminGhost(user)) || temperature > POOL_COOL) + return TRUE + return FALSE + +/obj/machinery/pool/controller/Topic(href, href_list) + if(..()) + return + if(interact_delay > world.time) + return + if(href_list["IncreaseTemp"]) + if(CanUpTemp(usr)) + visible_message("[usr] presses a button on [src].") + temperature++ + update_temp() + var/msg = "POOL: [key_name(usr)] increased [src]'s pool temperature at [COORD(src)] to [temperature]" + log_game(msg) + message_admins(msg) + interact_delay = world.time + 15 + if(href_list["DecreaseTemp"]) + if(CanDownTemp(usr)) + visible_message("[usr] presses a button on [src].") + temperature-- + update_temp() + var/msg = "POOL: [key_name(usr)] decreased [src]'s pool temperature at [COORD(src)] to [temperature]" + log_game(msg) + message_admins(msg) + interact_delay = world.time + 15 + if(href_list["Activate Drain"]) + if((drainable || issilicon(usr) || IsAdminGhost(usr)) && !linked_drain.active) + var/msg = "POOL: [key_name(usr)] activated [src]'s pool drain in [linked_drain.filling? "FILLING" : "DRAINING"] mode at [COORD(src)]" + log_game(msg) + message_admins(msg) + visible_message("[usr] presses a button on [src].") + mist_off() + interact_delay = world.time + 60 + linked_drain.active = TRUE + linked_drain.cycles_left = 75 + if(!linked_drain.filling) + new /obj/effect/whirlpool(linked_drain.loc) + temperature = POOL_NORMAL + else + new /obj/effect/waterspout(linked_drain.loc) + temperature = POOL_NORMAL + update_temp() + bloody = FALSE + updateUsrDialog() + +/obj/machinery/pool/controller/proc/temp2text() + switch(temperature) + if(POOL_FRIGID) + return "Frigid" + if(POOL_COOL) + return "Cool" + if(POOL_NORMAL) + return "Normal" + if(POOL_WARM) + return "Warm" + if(POOL_SCALDING) + return "Scalding" + else + return "Outside of possible range." + +/obj/machinery/pool/controller/ui_interact(mob/user) + . = ..() + if(.) + return + if(shocked && !(stat & NOPOWER)) + shock(user,50) + if(panel_open && !isAI(user)) + return wires.interact(user) + if(stat & (NOPOWER|BROKEN)) + return + var/datum/browser/popup = new(user, "Pool Controller", name, 300, 450) + var/dat = "" + if(interact_delay > world.time) + dat += "[round((interact_delay - world.time)/10, 0.1)] seconds left until [src] can operate again.
" + dat += text({" +

Temperature

+
+ Current temperature: [temp2text()]
+ [CanUpTemp(user) ? "Increase Temperature
" : "Increase Temperature
"] + [CanDownTemp(user) ? "Decrease Temperature
" : "Decrease Temperature
"] +
+

Drain

+
+ Drain status: [(issilicon(user) || IsAdminGhost(user) || drainable) ? "Enabled" : "Disabled"] +
Pool status: "}) + if(!drained) + dat += "Full
" + else + dat += "Drained
" + if((issilicon(user) || IsAdminGhost(user) || drainable) && !linked_drain.active) + dat += "[drained ? "Fill" : "Drain"] Pool
" + popup.set_content(dat) + popup.open() + +/obj/machinery/pool/controller/proc/reset(wire) + switch(wire) + if(WIRE_SHOCK) + if(!wires.is_cut(wire)) + shocked = FALSE + +/obj/machinery/pool/controller/proc/mist_on() //Spawn /obj/effect/mist (from the shower) on all linked pool tiles + if(mist_state) + return + mist_state = TRUE + for(var/X in linked_turfs) + var/turf/open/pool/W = X + if(W.filled) + var/M = new /obj/effect/mist(W) + linked_mist += M + +/obj/machinery/pool/controller/proc/mist_off() //Delete all /obj/effect/mist from all linked pool tiles. + for(var/M in linked_mist) + qdel(M) + mist_state = FALSE diff --git a/code/modules/pool/pool_drain.dm b/code/modules/pool/pool_drain.dm new file mode 100644 index 0000000000..940f7cd219 --- /dev/null +++ b/code/modules/pool/pool_drain.dm @@ -0,0 +1,160 @@ +/obj/machinery/pool/drain + name = "drain" + icon_state = "drain" + desc = "A suction system to remove the contents of the pool, and sometimes small objects. Do not insert fingers." + anchored = TRUE + /// Active/on? + var/active = FALSE + /// Filling or draining + var/filling = FALSE + /// Drain item suction range + var/item_suction_range = 2 + /// Fill mode knock away range + var/fill_push_range = 6 + /// Drain mode suction range + var/drain_suck_range = 6 + /// Parent controller + var/obj/machinery/pool/controller/controller + /// Cycles left for fill/drain while active + var/cycles_left = 0 + /// Mobs we are swirling around + var/list/whirling_mobs + /// Suck in once per x ticks + var/suck_in_once_per = 3 + + var/cooldown + +/obj/machinery/pool/drain/Initialize() + START_PROCESSING(SSfastprocess, src) + whirling_mobs = list() + return ..() + +/obj/machinery/pool/drain/Destroy() + STOP_PROCESSING(SSfastprocess, src) + controller.linked_drain = null + controller = null + whirling_mobs = null + return ..() + +/obj/machinery/pool/drain/proc/is_in_our_pool(atom/A) + . = FALSE + if(istype(A.loc, /turf/open/pool)) + var/turf/open/pool/P = A.loc + if(P.controller == controller) + . = TRUE + +// This should probably start using move force sometime in the future but I'm lazy. +/obj/machinery/pool/drain/process() + if(!filling) + for(var/obj/item/I in range(min(item_suction_range, 10), src)) + if(!I.anchored && (I.w_class <= WEIGHT_CLASS_SMALL)) + step_towards(I, src) + if((I.w_class <= WEIGHT_CLASS_TINY) && (get_dist(I, src) == 0)) + I.forceMove(controller.linked_filter) + if(active) + if(filling) + if(cycles_left-- > 0) + playsound(src, 'sound/effects/fillingwatter.ogg', 100, TRUE) + for(var/obj/O in orange(min(fill_push_range, 10), src)) + if(!O.anchored && is_in_our_pool(O)) + step_away(O, src) + for(var/mob/M in orange(min(fill_push_range, 10), src)) //compiler fastpath apparently? + if(!M.anchored && isliving(M) && is_in_our_pool(M)) + step_away(M, src) + else + for(var/turf/open/pool/P in controller.linked_turfs) + P.filled = TRUE + P.update_icon() + for(var/obj/effect/waterspout/S in range(1, src)) + qdel(S) + controller.drained = FALSE + if(controller.bloody < 1000) + controller.bloody /= 2 + else + controller.bloody /= 4 + controller.update_color() + filling = FALSE + active = FALSE + else + if(cycles_left-- > 0) + playsound(src, 'sound/effects/pooldrain.ogg', 100, TRUE) + playsound(src, "water_wade", 60, TRUE) + for(var/obj/O in orange(min(drain_suck_range, 10), src)) + if(!O.anchored && is_in_our_pool(O)) + step_towards(O, src) + for(var/mob/M in orange(min(drain_suck_range, 10), src)) + if(isliving(M) && !M.anchored && is_in_our_pool(M)) + if(!(cycles_left % suck_in_once_per)) + step_towards(M, src) + whirl_mob(M) + if(ishuman(M) && (get_dist(M, src) <= 1)) + var/mob/living/carbon/human/H = M + playsound(src, pick('sound/misc/crack.ogg','sound/misc/crunch.ogg'), 50, TRUE) + if(H.lying) //down for any reason + H.adjustBruteLoss(2) + to_chat(H, "You're caught in the drain!") + else + H.apply_damage(2.5, BRUTE, pick(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG)) //drain should only target the legs + to_chat(H, "Your legs are caught in the drain!") + else + for(var/turf/open/pool/P in controller.linked_turfs) + P.filled = FALSE + P.update_icon() + for(var/obj/effect/whirlpool/W in range(1, src)) + qdel(W) + controller.drained = TRUE + controller.mist_off() + active = FALSE + filling = TRUE + +/// dangerous proc don't fuck with, admins +/obj/machinery/pool/drain/proc/whirl_mob(mob/living/L, duration = 8, delay = 1) + set waitfor = FALSE + if(whirling_mobs[L]) + return + whirling_mobs[L] = TRUE + for(var/i in 1 to min(duration, 100)) + L.setDir(turn(L.dir, 90)) + sleep(delay) + if(QDELETED(L)) + break + if(QDELETED(src)) + return + whirling_mobs -= L + +/obj/machinery/pool/filter + name = "Filter" + icon_state = "filter" + desc = "The part of the pool where all the IDs, ATV keys, and pens, and other dangerous things get trapped." + var/obj/machinery/pool/controller/controller + +/obj/machinery/pool/filter/Destroy() + controller.linked_filter = null + controller = null + return ..() + +/obj/machinery/pool/filter/emag_act(mob/living/user) + . = ..() + if(!(obj_flags & EMAGGED)) + to_chat(user, "You disable the [src]'s shark filter! Run!") + obj_flags |= EMAGGED + do_sparks(5, TRUE, src) + icon_state = "filter_b" + addtimer(CALLBACK(src, /obj/machinery/pool/filter/proc/spawn_shark), 50) + var/msg = "[key_name(user)] emagged the pool filter and spawned a shark" + log_game(msg) + message_admins(msg) + +/obj/machinery/pool/filter/proc/spawn_shark() + if(prob(50)) + new /mob/living/simple_animal/hostile/shark(loc) + else + if(prob(50)) + new /mob/living/simple_animal/hostile/shark/kawaii(loc) + else + new /mob/living/simple_animal/hostile/shark/laser(loc) + +/obj/machinery/pool/filter/attack_hand(mob/user) + to_chat(user, "You search the filter.") + for(var/obj/O in contents) + O.forceMove(loc) diff --git a/code/modules/pool/pool_effects.dm b/code/modules/pool/pool_effects.dm new file mode 100644 index 0000000000..8d5192cd30 --- /dev/null +++ b/code/modules/pool/pool_effects.dm @@ -0,0 +1,29 @@ +/obj/effect/splash + name = "splash" + desc = "Wataaa!." + icon = 'icons/turf/pool.dmi' + icon_state = "splash" + layer = ABOVE_ALL_MOB_LAYER + +/obj/effect/whirlpool + name = "Whirlpool" + icon = 'icons/effects/96x96.dmi' + icon_state = "whirlpool" + layer = 5 + anchored = TRUE + mouse_opacity = 0 + pixel_x = -32 + pixel_y = -32 + alpha = 90 + +/obj/effect/waterspout + name = "Waterspout" + icon = 'icons/effects/96x96.dmi' + icon_state = "waterspout" + color = "#3399AA" + layer = 5 + anchored = TRUE + mouse_opacity = 0 + pixel_x = -32 + pixel_y = -32 + alpha = 120 diff --git a/code/modules/pool/pool_main.dm b/code/modules/pool/pool_main.dm new file mode 100644 index 0000000000..2b260b5c0b --- /dev/null +++ b/code/modules/pool/pool_main.dm @@ -0,0 +1,191 @@ +/turf/open/pool + icon = 'icons/turf/pool.dmi' + name = "poolwater" + desc = "You're safer here than in the deep." + icon_state = "pool_tile" + heat_capacity = INFINITY + var/filled = TRUE + var/next_splash = 0 + var/obj/machinery/pool/controller/controller + var/obj/effect/overlay/water/watereffect + var/obj/effect/overlay/water/top/watertop + +/turf/open/pool/Initialize(mapload) + . = ..() + update_icon() + +/turf/open/pool/Destroy() + if(controller) + controller.linked_turfs -= src + controller = null + QDEL_NULL(watereffect) + QDEL_NULL(watertop) + return ..() + +/turf/open/pool/update_icon() + . = ..() + if(!filled) + name = "drained pool" + desc = "No diving!" + QDEL_NULL(watereffect) + QDEL_NULL(watertop) + else + name = "poolwater" + desc = "You're safer here than in the deep." + watereffect = new /obj/effect/overlay/water(src) + watertop = new /obj/effect/overlay/water/top(src) + +/obj/effect/overlay/water + name = "water" + icon = 'icons/turf/pool.dmi' + icon_state = "bottom" + density = FALSE + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + layer = ABOVE_MOB_LAYER + anchored = TRUE + resistance_flags = INDESTRUCTIBLE + +/obj/effect/overlay/water/top + icon_state = "top" + layer = BELOW_MOB_LAYER + +// Mousedrop hook to normal turfs to get out of pools. +/turf/open/MouseDrop_T(atom/from, mob/user) + // I could make this /open/floor and not have the !istype but ehh - kev + if(isliving(from) && HAS_TRAIT(from, TRAIT_SWIMMING) && isliving(user) && ((user == from) || user.CanReach(from)) && !user.IsStun() && !user.IsKnockdown() && !user.incapacitated() && !istype(src, /turf/open/pool)) + var/mob/living/L = from + //The element only exists if you're on water and a living mob, so let's skip those checks. + var/pre_msg + var/post_msg + if(user == from) + pre_msg = "[L] is getting out of the pool." + post_msg = "[L] gets out of the pool." + else + pre_msg = "[L] is being pulled out of the pool by [user]." + post_msg = "[user] pulls [L] out of the pool." + L.visible_message(pre_msg) + if(do_mob(user, L, 20)) + L.visible_message(post_msg) + L.forceMove(src) + else + return ..() + +// Exit check +/turf/open/pool/Exit(atom/movable/AM, atom/newloc) + if(!AM.has_gravity(src)) + return ..() + if(isliving(AM) || isstructure(AM)) + if(AM.throwing) + return ..() //WHEEEEEEEEEEE + if(istype(AM, /obj/structure) && isliving(AM.pulledby)) + return ..() //people pulling stuff out of pool + if(!ishuman(AM)) + return ..() //human weak, monkey (and anyone else) ook ook eek eek strong + if(isliving(AM) && (locate(/obj/structure/pool/ladder) in src)) + return ..() //climbing out + return istype(newloc, /turf/open/pool) + return ..() + +// Exited logic +/turf/open/pool/Exited(atom/A, atom/newLoc) + . = ..() + if(isliving(A)) + var/turf/open/pool/P = newLoc + if(!istype(P) || (P.controller != controller)) + controller?.mobs_in_pool -= A + +// Entered logic +/turf/open/pool/Entered(atom/movable/AM, atom/oldloc) + if(istype(AM, /obj/effect/decal/cleanable)) + var/obj/effect/decal/cleanable/C = AM + if(prob(C.bloodiness)) + controller.set_bloody(TRUE) + QDEL_IN(AM, 25) + animate(AM, alpha = 10, time = 20) + return ..() + if(!AM.has_gravity(src)) + return ..() + if(isliving(AM)) + var/mob/living/victim = AM + if(!HAS_TRAIT(victim, TRAIT_SWIMMING)) //poor guy not swimming time to dunk them! + victim.AddElement(/datum/element/swimming) + controller.mobs_in_pool += victim + if(locate(/obj/structure/pool/ladder) in src) //safe climbing + return + if(iscarbon(AM)) //FUN TIME! + var/mob/living/carbon/H = victim + if(filled) + if (H.wear_mask && H.wear_mask.flags_cover & MASKCOVERSMOUTH) + H.visible_message("[H] falls in the water!", + "You fall in the water!") + playsound(src, 'sound/effects/splash.ogg', 60, TRUE, 1) + H.Knockdown(20) + return + else + H.Knockdown(60) + H.adjustOxyLoss(5) + H.emote("cough") + H.visible_message("[H] falls in and takes a drink!", + "You fall in and swallow some water!") + playsound(src, 'sound/effects/splash.ogg', 60, TRUE, 1) + else if(!H.head || !(H.head.armor.getRating("melee") > 20)) + if(prob(75)) + H.visible_message("[H] falls in the drained pool!", + "You fall in the drained pool!") + H.adjustBruteLoss(7) + H.Knockdown(80) + playsound(src, 'sound/effects/woodhit.ogg', 60, TRUE, 1) + else + H.visible_message("[H] falls in the drained pool, and cracks his skull!", + "You fall in the drained pool, and crack your skull!") + H.apply_damage(15, BRUTE, "head") + H.Knockdown(200) // This should hurt. And it does. + playsound(src, 'sound/effects/woodhit.ogg', 60, TRUE, 1) + playsound(src, 'sound/misc/crack.ogg', 100, TRUE) + else + H.visible_message("[H] falls in the drained pool, but had an helmet!", + "You fall in the drained pool, but you had an helmet!") + H.Knockdown(40) + playsound(src, 'sound/effects/woodhit.ogg', 60, TRUE, 1) + else if(filled) + victim.adjustStaminaLoss(1) + playsound(src, "water_wade", 20, TRUE) + return ..() + +/turf/open/pool/MouseDrop_T(atom/from, mob/user) + . = ..() + if(!isliving(from)) + return + var/mob/living/victim = from + if(user.stat || user.lying || !Adjacent(user) || !from.Adjacent(user) || !iscarbon(user) || !victim.has_gravity(src) || HAS_TRAIT(victim, TRAIT_SWIMMING)) + return + var/victimname = victim == user? "themselves" : "[victim]" + var/starttext = victim == user? "[user] is descending into [src]." : "[user] is lowering [victim] into [src]." + user.visible_message("[starttext]") + if(do_mob(user, victim, 20)) + user.visible_message("[user] lowers [victimname] into [src].") + victim.AddElement(/datum/element/swimming) //make sure they have it so they don't fall/whatever + victim.forceMove(src) + +/turf/open/pool/attackby(obj/item/W, mob/living/user) + if(istype(W, /obj/item/mop) && filled) + W.reagents.add_reagent("water", 5) + to_chat(user, "You wet [W] in [src].") + playsound(loc, 'sound/effects/slosh.ogg', 25, TRUE) + else + return ..() + +/turf/open/pool/attack_hand(mob/living/user) + . = ..() + if(.) + return + if((user.loc != src) && !user.IsStun() && !user.IsKnockdown() && !user.incapacitated() && Adjacent(user) && HAS_TRAIT(user, TRAIT_SWIMMING) && filled && (next_splash < world.time)) + playsound(src, 'sound/effects/watersplash.ogg', 8, TRUE, 1) + next_splash = world.time + 25 + var/obj/effect/splash/S = new(src) + animate(S, alpha = 0, time = 8) + QDEL_IN(S, 10) + for(var/mob/living/carbon/human/H in src) + if(!H.wear_mask && (H.stat == CONSCIOUS)) + H.emote("cough") + H.adjustStaminaLoss(4) diff --git a/code/modules/pool/pool_noodles.dm b/code/modules/pool/pool_noodles.dm new file mode 100644 index 0000000000..6118354792 --- /dev/null +++ b/code/modules/pool/pool_noodles.dm @@ -0,0 +1,32 @@ +//Pool noodles + +/obj/item/toy/poolnoodle + icon = 'icons/obj/toy.dmi' + icon_state = "noodle" + name = "pool noodle" + desc = "A strange, bulky, bendable toy that can annoy people." + force = 0 + color = "#000000" + w_class = WEIGHT_CLASS_SMALL + throwforce = 1 + throw_speed = 10 //weeee + hitsound = 'sound/weapons/tap.ogg' + attack_verb = list("flogged", "poked", "jabbed", "slapped", "annoyed") + lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items_righthand.dmi' + +/obj/item/toy/poolnoodle/attack(target as mob, mob/living/user as mob) + . = ..() + user.spin(prob(20)? 16 : 8, 1) + +/obj/item/toy/poolnoodle/red + item_state = "noodlered" + color = "#ff4c4c" + +/obj/item/toy/poolnoodle/blue + item_state = "noodleblue" + color = "#3232ff" + +/obj/item/toy/poolnoodle/yellow + item_state = "noodleyellow" + color = "#ffff66" diff --git a/code/modules/pool/pool_structures.dm b/code/modules/pool/pool_structures.dm new file mode 100644 index 0000000000..92350abf44 --- /dev/null +++ b/code/modules/pool/pool_structures.dm @@ -0,0 +1,159 @@ +/obj/structure/pool + name = "pool" + icon = 'icons/obj/machines/pool.dmi' + anchored = TRUE + resistance_flags = UNACIDABLE|INDESTRUCTIBLE + +/obj/structure/pool/ladder + name = "Ladder" + icon_state = "ladder" + desc = "Are you getting in or are you getting out?." + layer = ABOVE_MOB_LAYER + dir = EAST + +/obj/structure/pool/ladder/attack_hand(mob/living/user) + . = ..() + if(.) + return + if(!HAS_TRAIT(user, TRAIT_SWIMMING)) + if(user.CanReach(src)) + user.AddElement(/datum/element/swimming) + user.forceMove(get_step(src, dir)) + else + if(user.loc == loc) + user.forceMove(get_step(src, turn(dir, 180))) //If this moves them out the element cleans up after itself. + +/obj/structure/pool/Rboard + name = "JumpBoard" + density = FALSE + icon_state = "boardright" + desc = "The less-loved portion of the jumping board." + dir = EAST + +/obj/structure/pool/Lboard + name = "JumpBoard" + icon_state = "boardleft" + desc = "Get on there to jump!" + layer = FLY_LAYER + dir = WEST + var/jumping = FALSE + var/timer + +/obj/structure/pool/Lboard/proc/backswim() + if(jumping) + for(var/mob/living/jumpee in loc) //hackzors. + playsound(jumpee, 'sound/effects/splash.ogg', 60, TRUE, 1) + if(!HAS_TRAIT(jumpee, TRAIT_SWIMMING)) + jumpee.AddElement(/datum/element/swimming) + jumpee.Stun(2) + +/obj/structure/pool/Lboard/proc/reset_position(mob/user, initial_layer, initial_px, initial_py) + user.layer = initial_layer + user.pixel_x = initial_px + user.pixel_y = initial_py + +/obj/structure/pool/Lboard/attack_hand(mob/living/user) + if(iscarbon(user)) + var/mob/living/carbon/jumper = user + if(jumping) + to_chat(user, "Someone else is already making a jump!") + return + var/turf/T = get_turf(src) + if(HAS_TRAIT(user, TRAIT_SWIMMING)) + return + else + if(Adjacent(jumper)) + jumper.visible_message("[user] climbs up \the [src]!", \ + "You climb up \the [src] and prepares to jump!") + jumper.Stun(40) + jumping = TRUE + var/original_layer = jumper.layer + var/original_px = jumper.pixel_x + var/original_py = jumper.pixel_y + jumper.layer = RIPPLE_LAYER + jumper.pixel_x = 3 + jumper.pixel_y = 7 + jumper.dir = WEST + jumper.AddElement(/datum/element/swimming) + sleep(1) + jumper.forceMove(T) + addtimer(CALLBACK(src, .proc/dive, jumper, original_layer, original_px, original_py), 10) + +/obj/structure/pool/Lboard/proc/dive(mob/living/carbon/jumper, original_layer, original_px, original_py) + switch(rand(1, 100)) + if(1 to 20) + jumper.visible_message("[jumper] goes for a small dive!", \ + "You go for a small dive.") + sleep(15) + backswim() + var/atom/throw_target = get_edge_target_turf(src, dir) + jumper.throw_at(throw_target, 1, 1, callback = CALLBACK(src, .proc/on_finish_jump, jumper)) + + if(21 to 40) + jumper.visible_message("[jumper] goes for a dive!", \ + "You're going for a dive!") + sleep(20) + backswim() + var/atom/throw_target = get_edge_target_turf(src, dir) + jumper.throw_at(throw_target, 2, 1, callback = CALLBACK(src, .proc/on_finish_jump, jumper)) + + if(41 to 60) + jumper.visible_message("[jumper] goes for a long dive! Stay far away!", \ + "You're going for a long dive!!") + sleep(25) + backswim() + var/atom/throw_target = get_edge_target_turf(src, dir) + jumper.throw_at(throw_target, 3, 1, callback = CALLBACK(src, .proc/on_finish_jump, jumper)) + + if(61 to 80) + jumper.visible_message("[jumper] goes for an awesome dive! Don't stand in [jumper.p_their()] way!", \ + "You feel like this dive will be awesome") + sleep(30) + backswim() + var/atom/throw_target = get_edge_target_turf(src, dir) + jumper.throw_at(throw_target, 4, 1, callback = CALLBACK(src, .proc/on_finish_jump, jumper)) + if(81 to 91) + sleep(20) + backswim() + jumper.visible_message("[jumper] misses [jumper.p_their()] step!", \ + "You misstep!") + var/atom/throw_target = get_edge_target_turf(src, dir) + jumper.throw_at(throw_target, 0, 1, callback = CALLBACK(src, .proc/on_finish_jump, jumper)) + jumper.Knockdown(100) + jumper.adjustBruteLoss(10) + + if(91 to 100) + jumper.visible_message("[jumper] is preparing for the legendary dive! Can [jumper.p_they()] make it?", \ + "You start preparing for a legendary dive!") + jumper.SpinAnimation(7,1) + + sleep(30) + if(prob(75)) + backswim() + jumper.visible_message("[jumper] fails!", \ + "You can't quite do it!") + var/atom/throw_target = get_edge_target_turf(src, dir) + jumper.throw_at(throw_target, 1, 1, callback = CALLBACK(src, .proc/on_finish_jump, jumper)) + else + jumper.fire_stacks = min(1,jumper.fire_stacks + 1) + jumper.IgniteMob() + sleep(5) + backswim() + jumper.visible_message("[jumper] bursts into flames of pure awesomness!", \ + "No one can stop you now!") + var/atom/throw_target = get_edge_target_turf(src, dir) + jumper.throw_at(throw_target, 6, 1, callback = CALLBACK(src, .proc/on_finish_jump, jumper)) + addtimer(CALLBACK(src, .proc/togglejumping), 35) + reset_position(jumper, original_layer, original_px, original_py) + +/obj/structure/pool/Lboard/proc/togglejumping() + jumping = FALSE + +/obj/structure/pool/Lboard/proc/on_finish_jump(mob/living/victim) + if(istype(victim.loc, /turf/open/pool)) + var/turf/open/pool/P = victim.loc + if(!P.filled) //you dun fucked up now + to_chat(victim, "That was stupid of you..") + victim.visible_message("[victim] smashes into the ground!") + victim.apply_damage(50) + victim.Knockdown(200) diff --git a/code/modules/pool/pool_wires.dm b/code/modules/pool/pool_wires.dm new file mode 100644 index 0000000000..7341c503a9 --- /dev/null +++ b/code/modules/pool/pool_wires.dm @@ -0,0 +1,59 @@ +#define POOL_WIRE_DRAIN "drain" +#define POOL_WIRE_TEMP "temp" + + +/datum/wires/poolcontroller + holder_type = /obj/machinery/pool/controller + proper_name = "Pool" + +/datum/wires/poolcontroller/New(atom/holder) + wires = list( + POOL_WIRE_DRAIN, WIRE_SHOCK, WIRE_ZAP, POOL_WIRE_TEMP + ) + add_duds(3) + ..() + +/datum/wires/poolcontroller/interactable(mob/user) + var/obj/machinery/pool/controller/P = holder + if(P.panel_open) + return TRUE + +/datum/wires/poolcontroller/get_status() + var/obj/machinery/pool/controller/P = holder + var/list/status = list() + status += "The blue light is [P.drainable ? "on" : "off"]." + status += "The red light is [P.temperature_unlocked ? "on" : "off"]." + status += "The yellow light is [P.shocked ? "on" : "off"]." + return status + +/datum/wires/poolcontroller/on_pulse(wire) + var/obj/machinery/pool/controller/P = holder + switch(wire) + if(POOL_WIRE_DRAIN) + P.drainable = FALSE + if(POOL_WIRE_TEMP) + P.temperature_unlocked = FALSE + if(WIRE_SHOCK) + P.shocked = !P.shocked + addtimer(CALLBACK(P, /obj/machinery/autolathe.proc/reset, wire), 60) + +/datum/wires/poolcontroller/on_cut(wire, mend) + var/obj/machinery/pool/controller/P = holder + switch(wire) + if(POOL_WIRE_DRAIN) + if(mend) + P.drainable = FALSE + else + P.drainable = TRUE + if(POOL_WIRE_TEMP) + if(mend) + P.temperature_unlocked = FALSE + else + P.temperature_unlocked = TRUE + if(WIRE_ZAP) + P.shock(usr, 50) + if(WIRE_SHOCK) + if(mend) + P.stat &= ~NOPOWER + else + P.stat |= NOPOWER \ No newline at end of file diff --git a/code/modules/power/antimatter/shielding.dm b/code/modules/power/antimatter/shielding.dm index 32950a2199..624c4c0316 100644 --- a/code/modules/power/antimatter/shielding.dm +++ b/code/modules/power/antimatter/shielding.dm @@ -243,7 +243,7 @@ throwforce = 5 throw_speed = 1 throw_range = 2 - materials = list(MAT_METAL=100) + custom_materials = list(/datum/material/iron=100) /obj/item/am_shielding_container/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/multitool) && istype(src.loc, /turf)) diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 6a674fa6b1..43a1f94ca5 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -53,7 +53,7 @@ use_power = NO_POWER_USE req_access = null max_integrity = 300 - integrity_failure = 50 + integrity_failure = 0.17 var/damage_deflection = 10 resistance_flags = FIRE_PROOF armor = list("melee" = 40, "bullet" = 40, "laser" = 40, "energy" = 100, "bomb" = 30, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 50) @@ -106,6 +106,8 @@ var/update_overlay = -1 var/icon_update_needed = FALSE var/obj/machinery/computer/apc_control/remote_control = null + var/mob/living/carbon/hijacker + var/hijackerlast = TRUE /obj/machinery/power/apc/unlocked locked = FALSE @@ -260,7 +262,7 @@ . += "Alt-Click the APC to [ locked ? "unlock" : "lock"] the interface." - if(issilicon(user)) + if(area.hasSiliconAccessInArea(user)) . += "Ctrl-Click the APC to switch the breaker [ operating ? "off" : "on"]." // update the APC icon to show the three base states @@ -299,12 +301,15 @@ if(!(update_state & UPSTATE_ALLGOOD)) SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays) - + var/hijackerreturn + if (hijacker) + var/obj/item/implant/hijack/H = hijacker.getImplant(/obj/item/implant/hijack) + hijackerreturn = H && !H.stealthmode if(update & 2) SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays) if(!(stat & (BROKEN|MAINT)) && update_state & UPSTATE_ALLGOOD) SSvis_overlays.add_vis_overlay(src, icon, "apcox-[locked]", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir) - SSvis_overlays.add_vis_overlay(src, icon, "apco3-[charging]", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir) + SSvis_overlays.add_vis_overlay(src, icon, "apco3-[hijackerreturn ? "3" : charging]", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir) if(operating) SSvis_overlays.add_vis_overlay(src, icon, "apco0-[equipment]", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir) SSvis_overlays.add_vis_overlay(src, icon, "apco1-[lighting]", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir) @@ -319,6 +324,8 @@ light_color = LIGHT_COLOR_BLUE if(APC_FULLY_CHARGED) light_color = LIGHT_COLOR_GREEN + if (hijackerreturn) + light_color = LIGHT_COLOR_YELLOW set_light(lon_range) else if(update_state & UPSTATE_BLUESCREEN) light_color = LIGHT_COLOR_BLUE @@ -387,14 +394,19 @@ else if(environ==2) update_overlay |= APC_UPOVERLAY_ENVIRON2 - var/results = 0 - if(last_update_state == update_state && last_update_overlay == update_overlay) + var/hijackerreturn + if (hijacker) + var/obj/item/implant/hijack/H = hijacker.getImplant(/obj/item/implant/hijack) + hijackerreturn = H && !H.stealthmode + if(last_update_state == update_state && last_update_overlay == update_overlay && hijackerreturn == hijackerlast) return 0 if(last_update_state != update_state) results += 1 - if(last_update_overlay != update_overlay) + if(last_update_overlay != update_overlay || hijackerreturn != hijackerlast) results += 2 + if (hijackerreturn != hijackerlast) + hijackerlast = hijackerreturn return results // Used in process so it doesn't update the icon too much @@ -534,7 +546,7 @@ /obj/machinery/power/apc/attackby(obj/item/W, mob/living/user, params) - if(issilicon(user) && get_dist(src,user)>1) + if(area.hasSiliconAccessInArea(user) && get_dist(src,user)>1) return attack_hand(user) if (istype(W, /obj/item/stock_parts/cell) && opened) @@ -741,7 +753,7 @@ /obj/machinery/power/apc/AltClick(mob/user) . = ..() - if(!user.canUseTopic(src, !issilicon(user)) || !isturf(loc)) + if(!user.canUseTopic(src, !area.hasSiliconAccessInArea(user)) || !isturf(loc)) return togglelock(user) return TRUE @@ -756,7 +768,7 @@ else if(stat & (BROKEN|MAINT)) to_chat(user, "Nothing happens!") else - if(allowed(usr) && !wires.is_cut(WIRE_IDSCAN) && !malfhack) + if((allowed(usr) || area.hasSiliconAccessInArea(usr)) && !wires.is_cut(WIRE_IDSCAN) && !malfhack) locked = !locked to_chat(user, "You [ locked ? "lock" : "unlock"] the APC interface.") update_icon() @@ -833,6 +845,11 @@ if((stat & MAINT) && !opened) //no board; no interface return +/obj/machinery/power/apc/oui_canview(mob/user) + if(area.hasSiliconAccessInArea(user)) //some APCs are mapped outside their assigned area, so this is required. + return TRUE + return ..() + /obj/machinery/power/apc/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \ datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) @@ -842,8 +859,12 @@ ui.open() /obj/machinery/power/apc/ui_data(mob/user) + var/obj/item/implant/hijack/H = user.getImplant(/obj/item/implant/hijack) + var/abilitiesavail = FALSE + if (H && !H.stealthmode && H.toggled) + abilitiesavail = TRUE var/list/data = list( - "locked" = locked && !(integration_cog && is_servant_of_ratvar(user)), + "locked" = locked && !(integration_cog && is_servant_of_ratvar(user)) && !area.hasSiliconAccessInArea(user, PRIVILEDGES_SILICON|PRIVILEDGES_DRONE), "lock_nightshift" = nightshift_requires_auth, "failTime" = failure_timer, "isOperating" = operating, @@ -853,11 +874,14 @@ "chargingStatus" = charging, "totalLoad" = DisplayPower(lastused_total), "coverLocked" = coverlocked, - "siliconUser" = user.has_unlimited_silicon_privilege || user.using_power_flow_console(), + "siliconUser" = user.using_power_flow_console() || area.hasSiliconAccessInArea(user), "malfStatus" = get_malf_status(user), "emergencyLights" = !emergency_lights, "nightshiftLights" = nightshift_lights, - + "hijackable" = HAS_TRAIT(user,TRAIT_HIJACKER), + "hijacker" = hijacker == user ? TRUE : FALSE, + "drainavail" = cell && cell.percent() >= 85 && abilitiesavail, + "lockdownavail" = cell && cell.percent() >= 35 && abilitiesavail, "powerChannels" = list( list( "title" = "Equipment", @@ -925,17 +949,12 @@ /obj/machinery/power/apc/proc/can_use(mob/user, loud = 0) //used by attack_hand() and Topic() if(IsAdminGhost(user)) return TRUE - if(user.has_unlimited_silicon_privilege) + if (user == hijacker || (area.hasSiliconAccessInArea(user) && !aidisabled)) + return TRUE + if(user.silicon_privileges & PRIVILEDGES_SILICON) var/mob/living/silicon/ai/AI = user var/mob/living/silicon/robot/robot = user - if ( \ - src.aidisabled || \ - malfhack && istype(malfai) && \ - ( \ - (istype(AI) && (malfai!=AI && malfai != AI.parent)) || \ - (istype(robot) && (robot in malfai.connected_robots)) \ - ) \ - ) + if (src.aidisabled || malfhack && istype(malfai) && ((istype(AI) && (malfai!=AI && malfai != AI.parent)) || (istype(robot) && (robot in malfai.connected_robots)))) if(!loud) to_chat(user, "\The [src] has eee disabled!") return FALSE @@ -945,11 +964,15 @@ . = ..() if (!. && !QDELETED(remote_control)) . = remote_control.can_interact(user) + if (hijacker == user && area.hasSiliconAccessInArea(user)) + return TRUE /obj/machinery/power/apc/ui_status(mob/user) . = ..() if (!QDELETED(remote_control) && user == remote_control.operator) . = UI_INTERACTIVE + if (user == hijacker && area.hasSiliconAccessInArea(user)) + . = UI_INTERACTIVE /obj/machinery/power/apc/ui_act(action, params) if(..() || !can_use(usr, 1)) @@ -959,7 +982,10 @@ failure_timer = 0 update_icon() update() - var/authorized = (!locked || usr.has_unlimited_silicon_privilege || (integration_cog && (is_servant_of_ratvar(usr)))) + if (action == "hijack" && can_use(usr, 1)) //don't need auth for hijack button + hijack(usr) + return + var/authorized = (!locked || area.hasSiliconAccessInArea(usr, PRIVILEDGES_SILICON|PRIVILEDGES_DRONE) || (integration_cog && (is_servant_of_ratvar(usr)))) if((action == "toggle_nightshift") && (!nightshift_requires_auth || authorized)) toggle_nightshift_lights() return TRUE @@ -967,7 +993,7 @@ return switch(action) if("lock") - if(usr.has_unlimited_silicon_privilege) + if(area.hasSiliconAccessInArea(usr)) if((obj_flags & EMAGGED) || (stat & (BROKEN|MAINT))) to_chat(usr, "The APC does not respond to the command.") else @@ -1001,7 +1027,7 @@ update() return TRUE if("overload") - if(usr.has_unlimited_silicon_privilege) + if(area.hasSiliconAccessInArea(usr)) overload_lighting() return TRUE if("hack") @@ -1023,7 +1049,26 @@ L.no_emergency = emergency_lights INVOKE_ASYNC(L, /obj/machinery/light/.proc/update, FALSE) CHECK_TICK - return TRUE + if("drain") + cell.use(cell.charge) + hijacker.toggleSiliconAccessArea(area) + hijacker = null + set_hijacked_lighting() + update_icon() + var/obj/item/implant/hijack/H = usr.getImplant(/obj/item/implant/hijack) + H.stealthcooldown = world.time + 2 MINUTES + energy_fail(30 SECONDS * (cell.charge / cell.maxcharge)) + if("lockdown") + var/celluse = rand(20,35) + celluse = celluse /100 + for (var/obj/machinery/door/D in GLOB.airlocks) + if (get_area(D) == area) + INVOKE_ASYNC(D,/obj/machinery/door.proc/hostile_lockdown,usr, FALSE) + addtimer(CALLBACK(D,/obj/machinery/door.proc/disable_lockdown, FALSE), 30 SECONDS) + cell.charge -= cell.maxcharge*celluse + var/obj/item/implant/hijack/H = usr.getImplant(/obj/item/implant/hijack) + H.stealthcooldown = world.time + 3 MINUTES + return TRUE /obj/machinery/power/apc/proc/toggle_breaker() if(!is_operational() || failure_timer) @@ -1032,6 +1077,39 @@ update() update_icon() +/obj/machinery/power/apc/proc/hijack(mob/living/L) + if (!istype(L)) + return + if (hijacker && hijacker != L) + var/obj/item/implant/hijack/H = L.getImplant(/obj/item/implant/hijack) + to_chat(L, "Someone already has control of this APC. Beginning counter-hijack.") + H.hijacking = TRUE + if (do_after(L,20 SECONDS,target=src)) + hijacker.toggleSiliconAccessArea(area) + if (L.toggleSiliconAccessArea(area)) + hijacker = L + update_icon() + set_hijacked_lighting() + H.hijacking = FALSE + return + else + to_chat(L, "Aborting.") + H.hijacking = FALSE + return + to_chat(L, "Beginning hijack of APC.") + var/obj/item/implant/hijack/H = L.getImplant(/obj/item/implant/hijack) + H.hijacking = TRUE + if (do_after(L,H.stealthmode ? 12 SECONDS : 5 SECONDS,target=src)) + if (L.toggleSiliconAccessArea(area)) + hijacker = L + update_icon() + set_hijacked_lighting() + H.hijacking = FALSE + else + to_chat(L, "Aborting.") + H.hijacking = FALSE + return + /obj/machinery/power/apc/proc/malfhack(mob/living/silicon/ai/malf) if(!istype(malf)) return @@ -1438,6 +1516,17 @@ L.update(FALSE) CHECK_TICK +/obj/machinery/power/apc/proc/set_hijacked_lighting() + set waitfor = FALSE + var/hijackerreturn + if (hijacker) + var/obj/item/implant/hijack/H = hijacker.getImplant(/obj/item/implant/hijack) + hijackerreturn = H && !H.stealthmode + for(var/obj/machinery/light/L in area) + L.hijacked = hijackerreturn + L.update(FALSE) + CHECK_TICK + /obj/machinery/power/apc/proc/update_nightshift_auth_requirement() nightshift_requires_auth = nightshift_toggle_requires_auth() diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 3c807390a0..b9d4d1adf1 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -488,7 +488,7 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe("cable restrai w_class = WEIGHT_CLASS_SMALL throw_speed = 3 throw_range = 5 - materials = list(MAT_METAL=10, MAT_GLASS=5) + custom_materials = list(/datum/material/iron=10, /datum/material/glass=5) flags_1 = CONDUCT_1 slot_flags = ITEM_SLOT_BELT attack_verb = list("whipped", "lashed", "disciplined", "flogged") @@ -499,7 +499,7 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe("cable restrai /obj/item/stack/cable_coil/cyborg is_cyborg = 1 - materials = list() + custom_materials = null cost = 1 /obj/item/stack/cable_coil/cyborg/attack_self(mob/user) diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index 120303d4d7..a15580498c 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -13,8 +13,8 @@ w_class = WEIGHT_CLASS_SMALL var/charge = 0 // note %age conveted to actual charge in New var/maxcharge = 1000 + custom_materials = list(/datum/material/iron=700, /datum/material/glass=50) var/start_charged = TRUE - materials = list(MAT_METAL=700, MAT_GLASS=50) grind_results = list(/datum/reagent/lithium = 15, /datum/reagent/iron = 5, /datum/reagent/silicon = 5) var/rigged = FALSE // true if rigged to explode var/chargerate = 100 //how much power is given every tick in a recharger @@ -172,7 +172,7 @@ name = "\improper Nanotrasen brand rechargeable AA battery" desc = "You can't top the plasma top." //TOTALLY TRADEMARK INFRINGEMENT maxcharge = 500 - materials = list(MAT_GLASS=40) + custom_materials = list(/datum/material/glass=40) /obj/item/stock_parts/cell/crap/empty start_charged = FALSE @@ -181,7 +181,7 @@ name = "upgraded power cell" desc = "A power cell with a slightly higher capacity than normal!" maxcharge = 2500 - materials = list(MAT_GLASS=50) + custom_materials = list(/datum/material/glass=50) chargerate = 1000 /obj/item/stock_parts/cell/upgraded/plus @@ -192,7 +192,7 @@ /obj/item/stock_parts/cell/secborg name = "security borg rechargeable D battery" maxcharge = 1250 //25/12/6 disabler/laser/taser shots. - materials = list(MAT_GLASS=40) + custom_materials = list(/datum/material/glass=40) /obj/item/stock_parts/cell/secborg/empty start_charged = FALSE @@ -218,7 +218,7 @@ name = "high-capacity power cell" icon_state = "hcell" maxcharge = 10000 - materials = list(MAT_GLASS=60) + custom_materials = list(/datum/material/glass=60) chargerate = 1500 /obj/item/stock_parts/cell/high/plus @@ -235,7 +235,7 @@ name = "super-capacity power cell" icon_state = "scell" maxcharge = 20000 - materials = list(MAT_GLASS=300) + custom_materials = list(/datum/material/glass=300) chargerate = 2000 /obj/item/stock_parts/cell/super/empty @@ -245,7 +245,7 @@ name = "hyper-capacity power cell" icon_state = "hpcell" maxcharge = 30000 - materials = list(MAT_GLASS=400) + custom_materials = list(/datum/material/glass=400) chargerate = 3000 /obj/item/stock_parts/cell/hyper/empty @@ -256,7 +256,7 @@ desc = "A rechargeable transdimensional power cell." icon_state = "bscell" maxcharge = 40000 - materials = list(MAT_GLASS=600) + custom_materials = list(/datum/material/glass=600) chargerate = 4000 /obj/item/stock_parts/cell/bluespace/empty @@ -266,7 +266,7 @@ name = "infinite-capacity power cell!" icon_state = "icell" maxcharge = 30000 - materials = list(MAT_GLASS=1000) + custom_materials = list(/datum/material/glass=1000) rating = 100 chargerate = 30000 @@ -292,7 +292,7 @@ icon_state = "potato" charge = 100 maxcharge = 300 - materials = list() + custom_materials = null grown_battery = TRUE //it has the overlays for wires /obj/item/stock_parts/cell/high/slime @@ -300,7 +300,7 @@ desc = "A yellow slime core infused with plasma, it crackles with power." icon = 'icons/mob/slimes.dmi' icon_state = "yellow slime extract" - materials = list() + custom_materials = null rating = 5 //self-recharge makes these desirable self_recharge = 1 // Infused slime cores self-recharge, over time @@ -339,7 +339,7 @@ name = "miniature power cell" desc = "A tiny power cell with a very low power capacity. Used in light fixtures to power them in the event of an outage." maxcharge = 120 //Emergency lights use 0.2 W per tick, meaning ~10 minutes of emergency power from a cell - materials = list(MAT_GLASS = 20) + custom_materials = list(/datum/material/glass = 20) w_class = WEIGHT_CLASS_TINY /obj/item/stock_parts/cell/emergency_light/Initialize() @@ -357,16 +357,10 @@ maxcharge = 12000 chargerate = 600 -/obj/item/stock_parts/cell/magnetic/empty - start_charged = FALSE - /obj/item/stock_parts/cell/magnetic/pistol name = "magpistol power supply" maxcharge = 6000 -/obj/item/stock_parts/cell/magnetic/pistol/empty - start_charged = FALSE - /obj/item/stock_parts/cell/toymagburst name = "toy mag burst rifle power supply" maxcharge = 4000 diff --git a/code/modules/power/floodlight.dm b/code/modules/power/floodlight.dm index 8da3594d5e..9fb1a1ce7d 100644 --- a/code/modules/power/floodlight.dm +++ b/code/modules/power/floodlight.dm @@ -43,7 +43,7 @@ icon_state = "floodlight" density = TRUE max_integrity = 100 - integrity_failure = 80 + integrity_failure = 0.8 idle_power_usage = 100 active_power_usage = 1000 var/list/light_setting_list = list(0, 5, 10, 15) diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 441eb27621..6cfcc5192a 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -23,7 +23,7 @@ name = "small light fixture frame" icon_state = "bulb-construct-item" result_path = /obj/structure/light_construct/small - materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/iron=MINERAL_MATERIAL_AMOUNT) /obj/item/wallframe/light_fixture/try_build(turf/on_wall, user) if(!..()) @@ -220,6 +220,7 @@ var/bulb_emergency_colour = "#FF3232" // determines the colour of the light while it's in emergency mode var/bulb_emergency_pow_mul = 0.75 // the multiplier for determining the light's power in emergency mode var/bulb_emergency_pow_min = 0.5 // the minimum value for the light's power in emergency mode + var/hijacked = FALSE // if true, the light is in a hijacked area /obj/machinery/light/broken status = LIGHT_BROKEN @@ -298,7 +299,10 @@ if(emergency_mode || (A && A.fire)) icon_state = "[base_state]_emergency" else - icon_state = "[base_state]" + if (hijacked) + icon_state = "[base_state]_hijacked" + else + icon_state = "[base_state]" if(on) var/mutable_appearance/glowybit = mutable_appearance(overlayicon, base_state, ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE) glowybit.alpha = CLAMP(light_power*250, 30, 200) @@ -326,6 +330,10 @@ var/area/A = get_base_area(src) if (A && A.fire) CO = bulb_emergency_colour + else if (hijacked) + BR = BR * 1.5 + PO = PO * 1.5 + CO = color ? color : LIGHT_COLOR_YELLOW else if (nightshift_enabled) BR = nightshift_brightness PO = nightshift_light_power @@ -355,7 +363,7 @@ if(on != on_gs) on_gs = on if(on) - static_power_used = brightness * 14.4 //20W per unit luminosity + static_power_used = brightness * 14.4 * (hijacked ? 2 : 1) //20W per unit luminosity addStaticPower(static_power_used, STATIC_LIGHT) else removeStaticPower(static_power_used, STATIC_LIGHT) @@ -718,7 +726,7 @@ var/status = LIGHT_OK // LIGHT_OK, LIGHT_BURNED or LIGHT_BROKEN var/base_state var/switchcount = 0 // number of times switched - materials = list(MAT_GLASS=100) + custom_materials = list(/datum/material/glass=100) grind_results = list(/datum/reagent/silicon = 5, /datum/reagent/nitrogen = 10) //Nitrogen is used as a cheaper alternative to argon in incandescent lighbulbs var/rigged = 0 // true if rigged to explode var/brightness = 2 //how much light it gives off diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm index 0375a00c39..be8d456f20 100644 --- a/code/modules/power/singularity/collector.dm +++ b/code/modules/power/singularity/collector.dm @@ -15,7 +15,7 @@ req_access = list(ACCESS_ENGINE_EQUIP) // use_power = NO_POWER_USE max_integrity = 350 - integrity_failure = 80 + integrity_failure = 0.2 circuit = /obj/item/circuitboard/machine/rad_collector var/obj/item/tank/internals/plasma/loaded_tank = null var/stored_power = 0 diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm index e6d44de194..6c5f97557d 100644 --- a/code/modules/power/solar.dm +++ b/code/modules/power/solar.dm @@ -1,5 +1,5 @@ -#define SOLAR_MAX_DIST 40 -#define SOLARGENRATE 1500 +#define SOLAR_GEN_RATE 1500 +#define OCCLUSION_DISTANCE 20 /obj/machinery/power/solar name = "solar panel" @@ -10,58 +10,70 @@ use_power = NO_POWER_USE idle_power_usage = 0 active_power_usage = 0 - var/id = 0 max_integrity = 150 - integrity_failure = 50 - var/obscured = 0 - var/sunfrac = 0 - var/adir = SOUTH // actual dir - var/ndir = SOUTH // target dir - var/turn_angle = 0 - var/obj/machinery/power/solar_control/control = null + integrity_failure = 0.33 + + var/id + var/obscured = FALSE + var/sunfrac = 0 //[0-1] measure of obscuration -- multipllier against power generation + var/azimuth_current = 0 //[0-360) degrees, which direction are we facing? + var/azimuth_target = 0 //same but what way we're going to face next time we turn + var/obj/machinery/power/solar_control/control + var/needs_to_turn = TRUE //do we need to turn next tick? + var/needs_to_update_solar_exposure = TRUE //do we need to call update_solar_exposure() next tick? + var/obj/effect/overlay/panel var/obj/item/solar_assembly/assembly var/efficiency = 1 /obj/machinery/power/solar/Initialize(mapload, obj/item/solar_assembly/S) . = ..() + panel = new() +#if DM_VERSION >= 513 + panel.vis_flags = VIS_INHERIT_ID|VIS_INHERIT_ICON|VIS_INHERIT_PLANE + vis_contents += panel +#endif + panel.icon = icon + panel.icon_state = "solar_panel" + panel.layer = FLY_LAYER Make(S) connect_to_network() + RegisterSignal(SSsun, COMSIG_SUN_MOVED, .proc/queue_update_solar_exposure) /obj/machinery/power/solar/Destroy() unset_control() //remove from control computer return ..() -//set the control of the panel to a given computer if closer than SOLAR_MAX_DIST +//set the control of the panel to a given computer /obj/machinery/power/solar/proc/set_control(obj/machinery/power/solar_control/SC) - if(!SC || (get_dist(src, SC) > SOLAR_MAX_DIST)) - return 0 + unset_control() control = SC - SC.connected_panels |= src - return 1 + SC.connected_panels += src + queue_turn(SC.azimuth_target) //set the control of the panel to null and removes it from the control list of the previous control computer if needed /obj/machinery/power/solar/proc/unset_control() if(control) - control.connected_panels.Remove(src) - control = null + control.connected_panels -= src + control = null /obj/machinery/power/solar/proc/Make(obj/item/solar_assembly/S) if(!S) - S = new /obj/item/solar_assembly - S.glass_type = new /obj/item/stack/sheet/glass(null, 2) - S.anchored = TRUE + assembly = new /obj/item/solar_assembly + assembly.glass_type = new /obj/item/stack/sheet/glass(null, 2) + assembly.anchored = TRUE else S.moveToNullspace() - S.glass_type.on_solar_construction(src) + assembly = S + assembly.glass_type.on_solar_construction(src) obj_integrity = max_integrity update_icon() /obj/machinery/power/solar/crowbar_act(mob/user, obj/item/I) - playsound(src.loc, 'sound/machines/click.ogg', 50, 1) - user.visible_message("[user] begins to take the glass off [src].", "You begin to take the glass off [src]...") + playsound(src.loc, 'sound/machines/click.ogg', 50, TRUE) + user.visible_message("[user] begins to take the glass off [src].", "You begin to take the glass off [src]...") if(I.use_tool(src, user, 50)) - playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1) - user.visible_message("[user] takes the glass off [src].", "You take the glass off [src].") + playsound(src.loc, 'sound/items/deconstruct.ogg', 50, TRUE) + user.visible_message("[user] takes the glass off [src].", "You take the glass off [src].") deconstruct(TRUE) return TRUE @@ -69,16 +81,16 @@ switch(damage_type) if(BRUTE) if(stat & BROKEN) - playsound(loc, 'sound/effects/hit_on_shattered_glass.ogg', 60, 1) + playsound(loc, 'sound/effects/hit_on_shattered_glass.ogg', 60, TRUE) else - playsound(loc, 'sound/effects/glasshit.ogg', 90, 1) + playsound(loc, 'sound/effects/glasshit.ogg', 90, TRUE) if(BURN) - playsound(loc, 'sound/items/welder.ogg', 100, 1) + playsound(loc, 'sound/items/welder.ogg', 100, TRUE) /obj/machinery/power/solar/obj_break(damage_flag) if(!(stat & BROKEN) && !(flags_1 & NODECONSTRUCT_1)) - playsound(loc, 'sound/effects/glassbr3.ogg', 100, 1) + playsound(loc, 'sound/effects/glassbr3.ogg', 100, TRUE) stat |= BROKEN unset_control() update_icon() @@ -96,81 +108,95 @@ new shard(loc) qdel(src) - -/obj/machinery/power/solar/update_icon() - ..() - cut_overlays() +/obj/machinery/power/solar/update_overlays() + . = ..() + var/matrix/turner = matrix() + turner.Turn(azimuth_current) + panel.transform = turner if(stat & BROKEN) - add_overlay(mutable_appearance(icon, "solar_panel-b", FLY_LAYER)) + panel.icon_state = "solar_panel-b" else - add_overlay(mutable_appearance(icon, "solar_panel", FLY_LAYER)) - src.setDir(angle2dir(adir)) + panel.icon_state = "solar_panel" +#if DM_VERSION <= 512 + . += new /mutable_appearance(panel) +#endif -//calculates the fraction of the sunlight that the panel receives +/obj/machinery/power/solar/proc/queue_turn(azimuth) + needs_to_turn = TRUE + azimuth_target = azimuth + +/obj/machinery/power/solar/proc/queue_update_solar_exposure() + needs_to_update_solar_exposure = TRUE //updating right away would be wasteful if we're also turning later + +/obj/machinery/power/solar/proc/update_turn() + needs_to_turn = FALSE + if(azimuth_current != azimuth_target) + azimuth_current = azimuth_target + occlusion_setup() + update_icon() + needs_to_update_solar_exposure = TRUE + +///trace towards sun to see if we're in shadow +/obj/machinery/power/solar/proc/occlusion_setup() + obscured = TRUE + + var/distance = OCCLUSION_DISTANCE + var/target_x = round(sin(SSsun.azimuth), 0.01) + var/target_y = round(cos(SSsun.azimuth), 0.01) + var/x_hit = x + var/y_hit = y + var/turf/hit + + for(var/run in 1 to distance) + x_hit += target_x + y_hit += target_y + hit = locate(round(x_hit, 1), round(y_hit, 1), z) + if(hit.opacity) + return + if(hit.x == 1 || hit.x == world.maxx || hit.y == 1 || hit.y == world.maxy) //edge of the map + break + obscured = FALSE + +///calculates the fraction of the sunlight that the panel receives /obj/machinery/power/solar/proc/update_solar_exposure() + needs_to_update_solar_exposure = FALSE + sunfrac = 0 if(obscured) - sunfrac = 0 - return + return 0 - //find the smaller angle between the direction the panel is facing and the direction of the sun (the sign is not important here) - var/p_angle = min(abs(adir - SSsun.angle), 360 - abs(adir - SSsun.angle)) + var/sun_azimuth = SSsun.azimuth + if(azimuth_current == sun_azimuth) //just a quick optimization for the most frequent case + . = 1 + else + //dot product of sun and panel -- Lambert's Cosine Law + . = cos(azimuth_current - sun_azimuth) + . = CLAMP(round(., 0.01), 0, 1) + sunfrac = . - if(p_angle > 90) // if facing more than 90deg from sun, zero output - sunfrac = 0 - return - - sunfrac = cos(p_angle) ** 2 - //isn't the power received from the incoming light proportionnal to cos(p_angle) (Lambert's cosine law) rather than cos(p_angle)^2 ? - -/obj/machinery/power/solar/process()//TODO: remove/add this from machines to save on processing as needed ~Carn PRIORITY +/obj/machinery/power/solar/process() if(stat & BROKEN) return - if(!control) //if there's no sun or the panel is not linked to a solar control computer, no need to proceed + if(control && (!powernet || control.powernet != powernet)) + unset_control() + if(needs_to_turn) + update_turn() + if(needs_to_update_solar_exposure) + update_solar_exposure() + if(sunfrac <= 0) return - if(powernet) - if(powernet == control.powernet)//check if the panel is still connected to the computer - if(obscured) //get no light from the sun, so don't generate power - return - var/sgen = SOLARGENRATE * sunfrac * efficiency - add_avail(sgen) - control.gen += sgen - else //if we're no longer on the same powernet, remove from control computer - unset_control() + var/sgen = SOLAR_GEN_RATE * sunfrac + add_avail(sgen) + if(control) + control.gen += sgen - -/obj/machinery/power/solar/fake/New(var/turf/loc, var/obj/item/solar_assembly/S) - ..(loc, S, 0) +//Bit of a hack but this whole type is a hack +/obj/machinery/power/solar/fake/Initialize(turf/loc, obj/item/solar_assembly/S) + . = ..() + UnregisterSignal(SSsun, COMSIG_SUN_MOVED) /obj/machinery/power/solar/fake/process() - . = PROCESS_KILL - return - -//trace towards sun to see if we're in shadow -/obj/machinery/power/solar/proc/occlusion() - - var/ax = x // start at the solar panel - var/ay = y - var/turf/T = null - var/dx = SSsun.dx - var/dy = SSsun.dy - - for(var/i = 1 to 20) // 20 steps is enough - ax += dx // do step - ay += dy - - T = locate( round(ax,0.5),round(ay,0.5),z) - - if(T.x == 1 || T.x==world.maxx || T.y==1 || T.y==world.maxy) // not obscured if we reach the edge - break - - if(T.density) // if we hit a solid turf, panel is obscured - obscured = 1 - return - - obscured = 0 // if hit the edge or stepped 20 times, not obscured - update_solar_exposure() - + return PROCESS_KILL // // Solar Assembly - For construction of solar arrays. @@ -201,9 +227,10 @@ new shard(Tsec) new shard(Tsec) else if(glass_type) - forceMove(glass_type, Tsec) + glass_type.forceMove(Tsec) glass_type = null + /obj/item/solar_assembly/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/wrench) && isturf(loc)) if(isinspace()) @@ -266,25 +293,27 @@ use_power = IDLE_POWER_USE idle_power_usage = 250 max_integrity = 200 - integrity_failure = 100 + integrity_failure = 0.5 var/icon_screen = "solar" var/icon_keyboard = "power_key" var/id = 0 - var/currentdir = 0 - var/targetdir = 0 // target angle in manual tracking (since it updates every game minute) var/gen = 0 var/lastgen = 0 - var/track = 0 // 0= off 1=timed 2=auto (tracker) - var/trackrate = 600 // 300-900 seconds - var/nexttime = 0 // time for a panel to rotate of 1 degree in manual tracking + var/azimuth_target = 0 + var/azimuth_rate = 1 ///degree change per minute + + var/track = SOLAR_TRACK_OFF ///SOLAR_TRACK_OFF, SOLAR_TRACK_TIMED, SOLAR_TRACK_AUTO + var/obj/machinery/power/tracker/connected_tracker = null var/list/connected_panels = list() /obj/machinery/power/solar_control/Initialize() . = ..() - if(powernet) - set_panels(currentdir) + azimuth_rate = SSsun.base_rotation + RegisterSignal(SSsun, COMSIG_SUN_MOVED, .proc/timed_track) connect_to_network() + if(powernet) + set_panels(azimuth_target) /obj/machinery/power/solar_control/Destroy() for(var/obj/machinery/power/solar/M in connected_panels) @@ -293,16 +322,6 @@ connected_tracker.unset_control() return ..() -/obj/machinery/power/solar_control/disconnect_from_network() - ..() - SSsun.solars.Remove(src) - -/obj/machinery/power/solar_control/connect_to_network() - var/to_return = ..() - if(powernet) //if connected and not already in solar_list... - SSsun.solars |= src //... add it - return to_return - //search for unconnected panels and trackers in the computer powernet and connect them /obj/machinery/power/solar_control/proc/search_for_connected() if(powernet) @@ -317,32 +336,16 @@ if(!T.control) //i.e unconnected T.set_control(src) -//called by the sun controller, update the facing angle (either manually or via tracking) and rotates the panels accordingly -/obj/machinery/power/solar_control/proc/update() - if(stat & (NOPOWER | BROKEN)) - return - - switch(track) - if(1) - if(trackrate) //we're manual tracking. If we set a rotation speed... - currentdir = targetdir //...the current direction is the targetted one (and rotates panels to it) - if(2) // auto-tracking - if(connected_tracker) - connected_tracker.set_angle(SSsun.angle) - - set_panels(currentdir) - updateDialog() - -/obj/machinery/power/solar_control/update_icon() - cut_overlays() +/obj/machinery/power/solar_control/update_overlays() + . = ..() if(stat & NOPOWER) - add_overlay("[icon_keyboard]_off") + . += mutable_appearance(icon, "[icon_keyboard]_off") return - add_overlay(icon_keyboard) + . += mutable_appearance(icon, icon_keyboard) if(stat & BROKEN) - add_overlay("[icon_state]_broken") + . += mutable_appearance(icon, "[icon_state]_broken") else - add_overlay(icon_screen) + . += mutable_appearance(icon, icon_screen) /obj/machinery/power/solar_control/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \ datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) @@ -353,73 +356,60 @@ /obj/machinery/power/solar_control/ui_data() var/data = list() - data["generated"] = round(lastgen) - data["angle"] = currentdir - data["direction"] = angle2text(currentdir) - + data["generated_ratio"] = data["generated"] / round(max(connected_panels.len, 1) * SOLAR_GEN_RATE) + data["azimuth_current"] = azimuth_target + data["azimuth_rate"] = azimuth_rate + data["max_rotation_rate"] = SSsun.base_rotation * 2 data["tracking_state"] = track - data["tracking_rate"] = trackrate - data["rotating_way"] = (trackrate<0 ? "CCW" : "CW") - data["connected_panels"] = connected_panels.len - data["connected_tracker"] = (connected_tracker ? 1 : 0) + data["connected_tracker"] = (connected_tracker ? TRUE : FALSE) return data /obj/machinery/power/solar_control/ui_act(action, params) if(..()) return - if(action == "angle") + if(action == "azimuth") var/adjust = text2num(params["adjust"]) var/value = text2num(params["value"]) if(adjust) - value = currentdir + adjust + value = azimuth_target + adjust if(value != null) - currentdir = CLAMP((360 + value) % 360, 0, 359) - targetdir = currentdir - set_panels(currentdir) + set_panels(value) return TRUE return FALSE - if(action == "rate") + if(action == "azimuth_rate") var/adjust = text2num(params["adjust"]) var/value = text2num(params["value"]) if(adjust) - value = trackrate + adjust + value = azimuth_rate + adjust if(value != null) - trackrate = CLAMP(value, -7200, 7200) - if(trackrate) - nexttime = world.time + 36000 / abs(trackrate) + azimuth_rate = round(CLAMP(value, -2 * SSsun.base_rotation, 2 * SSsun.base_rotation), 0.01) return TRUE return FALSE if(action == "tracking") var/mode = text2num(params["mode"]) track = mode - if(mode == 2 && connected_tracker) - connected_tracker.set_angle(SSsun.angle) - set_panels(currentdir) - else if(mode == 1) - targetdir = currentdir - if(trackrate) - nexttime = world.time + 36000 / abs(trackrate) - set_panels(targetdir) + if(mode == SOLAR_TRACK_AUTO) + if(connected_tracker) + connected_tracker.sun_update(SSsun, SSsun.azimuth) + else + track = SOLAR_TRACK_OFF return TRUE if(action == "refresh") search_for_connected() - if(connected_tracker && track == 2) - connected_tracker.set_angle(SSsun.angle) - set_panels(currentdir) return TRUE return FALSE /obj/machinery/power/solar_control/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/screwdriver)) - if(I.use_tool(src, user, 20, volume=50)) - if (src.stat & BROKEN) + if(I.tool_behaviour == TOOL_SCREWDRIVER) + if(I.use_tool(src, user, 20, volume = 50)) + if(src.stat & BROKEN) to_chat(user, "The broken glass falls out.") var/obj/structure/frame/computer/A = new /obj/structure/frame/computer( src.loc ) new /obj/item/shard( src.loc ) var/obj/item/circuitboard/computer/solar_control/M = new /obj/item/circuitboard/computer/solar_control( A ) - for (var/obj/C in src) + for(var/obj/C in src) C.forceMove(drop_location()) A.circuit = M A.state = 3 @@ -430,7 +420,7 @@ to_chat(user, "You disconnect the monitor.") var/obj/structure/frame/computer/A = new /obj/structure/frame/computer( src.loc ) var/obj/item/circuitboard/computer/solar_control/M = new /obj/item/circuitboard/computer/solar_control( A ) - for (var/obj/C in src) + for(var/obj/C in src) C.forceMove(drop_location()) A.circuit = M A.state = 4 @@ -446,15 +436,15 @@ switch(damage_type) if(BRUTE) if(stat & BROKEN) - playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) + playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, TRUE) else - playsound(src.loc, 'sound/effects/glasshit.ogg', 75, 1) + playsound(src.loc, 'sound/effects/glasshit.ogg', 75, TRUE) if(BURN) - playsound(src.loc, 'sound/items/welder.ogg', 100, 1) + playsound(src.loc, 'sound/items/welder.ogg', 100, TRUE) /obj/machinery/power/solar_control/obj_break(damage_flag) if(!(stat & BROKEN) && !(flags_1 & NODECONSTRUCT_1)) - playsound(loc, 'sound/effects/glassbr3.ogg', 100, 1) + playsound(loc, 'sound/effects/glassbr3.ogg', 100, TRUE) stat |= BROKEN update_icon() @@ -462,36 +452,31 @@ lastgen = gen gen = 0 - if(stat & (NOPOWER | BROKEN)) - return + if(connected_tracker && (!powernet || connected_tracker.powernet != powernet)) + connected_tracker.unset_control() - if(connected_tracker) //NOTE : handled here so that we don't add trackers to the processing list - if(connected_tracker.powernet != powernet) - connected_tracker.unset_control() +///Ran every time the sun updates. +/obj/machinery/power/solar_control/proc/timed_track() + if(track == SOLAR_TRACK_TIMED) + azimuth_target += azimuth_rate + set_panels(azimuth_target) - if(track==1 && trackrate) //manual tracking and set a rotation speed - if(nexttime <= world.time) //every time we need to increase/decrease the angle by 1�... - targetdir = (targetdir + trackrate/abs(trackrate) + 360) % 360 //... do it - nexttime += 36000/abs(trackrate) //reset the counter for the next 1� - -//rotates the panel to the passed angle -/obj/machinery/power/solar_control/proc/set_panels(currentdir) +///Rotates the panel to the passed angles +/obj/machinery/power/solar_control/proc/set_panels(azimuth) + azimuth = CLAMP(round(azimuth, 0.01), -360, 719.99) + if(azimuth >= 360) + azimuth -= 360 + if(azimuth < 0) + azimuth += 360 + azimuth_target = azimuth for(var/obj/machinery/power/solar/S in connected_panels) - S.adir = currentdir //instantly rotates the panel - S.occlusion()//and - S.update_icon() //update it - - update_icon() - + S.queue_turn(azimuth) /obj/machinery/power/solar_control/power_change() ..() update_icon() - - - // // MISC // @@ -499,3 +484,6 @@ /obj/item/paper/guides/jobs/engi/solars name = "paper- 'Going green! Setup your own solar array instructions.'" info = "

Welcome

At greencorps we love the environment, and space. With this package you are able to help mother nature and produce energy without any usage of fossil fuel or plasma! Singularity energy is dangerous while solar energy is safe, which is why it's better. Now here is how you setup your own solar array.

You can make a solar panel by wrenching the solar assembly onto a cable node. Adding a glass panel, reinforced or regular glass will do, will finish the construction of your solar panel. It is that easy!

Now after setting up 19 more of these solar panels you will want to create a solar tracker to keep track of our mother nature's gift, the sun. These are the same steps as before except you insert the tracker equipment circuit into the assembly before performing the final step of adding the glass. You now have a tracker! Now the last step is to add a computer to calculate the sun's movements and to send commands to the solar panels to change direction with the sun. Setting up the solar computer is the same as setting up any computer, so you should have no trouble in doing that. You do need to put a wire node under the computer, and the wire needs to be connected to the tracker.

Congratulations, you should have a working solar array. If you are having trouble, here are some tips. Make sure all solar equipment are on a cable node, even the computer. You can always deconstruct your creations if you make a mistake.

That's all to it, be safe, be green!

" + +#undef SOLAR_GEN_RATE +#undef OCCLUSION_DISTANCE diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index 0b0d968919..858adc0d66 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -345,8 +345,9 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) else // Pass all the gas related code an empty gas container removed = new() - - damage_archived = damage + damage_archived = min(damage_archived + (DAMAGE_HARDCAP * explosion_point),damage) + matter_power += damage - damage_archived + damage = damage_archived if(!removed || !removed.total_moles() || isspaceturf(T)) //we're in space or there is no gas to process if(takes_damage) damage += max((power / 1000) * DAMAGE_INCREASE_MULTIPLIER, 0.1) // always does at least some damage diff --git a/code/modules/power/tracker.dm b/code/modules/power/tracker.dm index c25ece3594..0627a55de0 100644 --- a/code/modules/power/tracker.dm +++ b/code/modules/power/tracker.dm @@ -1,6 +1,6 @@ //Solar tracker -//Machine that tracks the sun and reports it's direction to the solar controllers +//Machine that tracks the sun and reports its direction to the solar controllers //As long as this is working, solar panels on same powernet will track automatically /obj/machinery/power/tracker @@ -11,79 +11,74 @@ density = TRUE use_power = NO_POWER_USE max_integrity = 250 - integrity_failure = 50 + integrity_failure = 0.2 var/id = 0 - var/sun_angle = 0 // sun angle as set by sun datum - var/obj/machinery/power/solar_control/control = null + var/obj/machinery/power/solar_control/control var/obj/item/solar_assembly/assembly /obj/machinery/power/tracker/Initialize(mapload, obj/item/solar_assembly/S) . = ..() Make(S) connect_to_network() + RegisterSignal(SSsun, COMSIG_SUN_MOVED, .proc/sun_update) /obj/machinery/power/tracker/Destroy() unset_control() //remove from control computer return ..() -//set the control of the tracker to a given computer if closer than SOLAR_MAX_DIST /obj/machinery/power/tracker/proc/set_control(obj/machinery/power/solar_control/SC) - if(!SC || (get_dist(src, SC) > SOLAR_MAX_DIST)) - return 0 + unset_control() control = SC SC.connected_tracker = src - return 1 //set the control of the tracker to null and removes it from the previous control computer if needed /obj/machinery/power/tracker/proc/unset_control() if(control) + if(control.track == SOLAR_TRACK_AUTO) + control.track = SOLAR_TRACK_OFF control.connected_tracker = null - control = null + control = null + +///Tell the controller to turn the solar panels +/obj/machinery/power/tracker/proc/sun_update(datum/source, azimuth) + setDir(angle2dir(azimuth)) + if(control && control.track == SOLAR_TRACK_AUTO) + control.set_panels(azimuth) /obj/machinery/power/tracker/proc/Make(obj/item/solar_assembly/S) if(!S) - S = new /obj/item/solar_assembly - S.glass_type = new /obj/item/stack/sheet/glass(null, 2) - S.tracker = TRUE - S.anchored = TRUE + assembly = new /obj/item/solar_assembly + assembly.glass_type = new /obj/item/stack/sheet/glass(null, 2) + assembly.tracker = TRUE + assembly.anchored = TRUE else S.moveToNullspace() + assembly = S update_icon() -//updates the tracker icon and the facing angle for the control computer -/obj/machinery/power/tracker/proc/set_angle(angle) - sun_angle = angle - - //set icon dir to show sun illumination - setDir(turn(NORTH, -angle - 22.5) )// 22.5 deg bias ensures, e.g. 67.5-112.5 is EAST - - if(powernet && (powernet == control.powernet)) //update if we're still in the same powernet - control.currentdir = angle - /obj/machinery/power/tracker/crowbar_act(mob/user, obj/item/I) - playsound(src.loc, 'sound/machines/click.ogg', 50, 1) - user.visible_message("[user] begins to take the glass off [src].", "You begin to take the glass off [src]...") + playsound(src.loc, 'sound/machines/click.ogg', 50, TRUE) + user.visible_message("[user] begins to take the glass off [src].", "You begin to take the glass off [src]...") if(I.use_tool(src, user, 50)) - playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1) - user.visible_message("[user] takes the glass off [src].", "You take the glass off [src].") + playsound(src.loc, 'sound/items/deconstruct.ogg', 50, TRUE) + user.visible_message("[user] takes the glass off [src].", "You take the glass off [src].") deconstruct(TRUE) return TRUE /obj/machinery/power/tracker/obj_break(damage_flag) if(!(stat & BROKEN) && !(flags_1 & NODECONSTRUCT_1)) - playsound(loc, 'sound/effects/glassbr3.ogg', 100, 1) - stat |= BROKEN + playsound(loc, 'sound/effects/glassbr3.ogg', 100, TRUE) unset_control() -/obj/machinery/power/solar/deconstruct(disassembled = TRUE) +/obj/machinery/power/tracker/deconstruct(disassembled = TRUE) if(!(flags_1 & NODECONSTRUCT_1)) if(disassembled) if(assembly) assembly.forceMove(loc) assembly.give_glass(stat & BROKEN) else - playsound(src, "shatter", 70, 1) + playsound(src, "shatter", 70, TRUE) var/shard = assembly?.glass_type ? assembly.glass_type.shard_type : /obj/item/shard new shard(loc) new shard(loc) diff --git a/code/modules/projectiles/ammunition/_ammunition.dm b/code/modules/projectiles/ammunition/_ammunition.dm index 1404529700..28b70bf276 100644 --- a/code/modules/projectiles/ammunition/_ammunition.dm +++ b/code/modules/projectiles/ammunition/_ammunition.dm @@ -7,7 +7,7 @@ slot_flags = ITEM_SLOT_BELT throwforce = 0 w_class = WEIGHT_CLASS_TINY - materials = list(MAT_METAL = 500) + custom_materials = list(/datum/material/iron = 500) var/fire_sound = null //What sound should play when this ammo is fired var/caliber = list() //Which kind of guns it can be loaded into var/projectile_type = null //The bullet type to create when New() is called diff --git a/code/modules/projectiles/ammunition/ballistic/shotgun.dm b/code/modules/projectiles/ammunition/ballistic/shotgun.dm index 9aabd0e6b1..0599e52a73 100644 --- a/code/modules/projectiles/ammunition/ballistic/shotgun.dm +++ b/code/modules/projectiles/ammunition/ballistic/shotgun.dm @@ -6,14 +6,14 @@ icon_state = "blshell" caliber = "shotgun" projectile_type = /obj/item/projectile/bullet/shotgun_slug - materials = list(MAT_METAL=4000) + custom_materials = list(/datum/material/iron=4000) /obj/item/ammo_casing/shotgun/beanbag name = "beanbag slug" desc = "A weak beanbag slug for riot control." icon_state = "bshell" projectile_type = /obj/item/projectile/bullet/shotgun_beanbag - materials = list(MAT_METAL=250) + custom_materials = list(/datum/material/iron=250) /obj/item/ammo_casing/shotgun/incendiary name = "incendiary slug" @@ -34,7 +34,7 @@ desc = "A stunning taser slug." icon_state = "stunshell" projectile_type = /obj/item/projectile/bullet/shotgun_stunslug - materials = list(MAT_METAL=250) + custom_materials = list(/datum/material/iron=250) /obj/item/ammo_casing/shotgun/meteorslug name = "meteorslug shell" @@ -71,14 +71,14 @@ projectile_type = /obj/item/projectile/bullet/pellet/shotgun_rubbershot pellets = 6 variance = 25 - materials = list(MAT_METAL=4000) + custom_materials = list(/datum/material/iron=4000) /obj/item/ammo_casing/shotgun/improvised name = "improvised shell" desc = "An extremely weak shotgun shell with multiple small pellets made out of metal shards." icon_state = "improvshell" projectile_type = /obj/item/projectile/bullet/pellet/shotgun_improvised - materials = list(MAT_METAL=250) + custom_materials = list(/datum/material/iron=250) pellets = 10 variance = 25 diff --git a/code/modules/projectiles/ammunition/caseless/arrow.dm b/code/modules/projectiles/ammunition/caseless/arrow.dm new file mode 100644 index 0000000000..0543e48f96 --- /dev/null +++ b/code/modules/projectiles/ammunition/caseless/arrow.dm @@ -0,0 +1,26 @@ +/obj/item/ammo_casing/caseless/arrow + name = "wooden arrow" + desc = "An arrow made of wood, typically fired from a bow." + projectile_type = /obj/item/projectile/bullet/reusable/arrow + caliber = "arrow" + icon_state = "arrow" + throwforce = 3 //good luck hitting someone with the pointy end of the arrow + throw_speed = 3 + +/obj/item/ammo_casing/caseless/arrow/ashen + name = "ashen arrow" + desc = "An arrow made of wood, hardened by fire." + icon_state = "ashenarrow" + projectile_type = /obj/item/projectile/bullet/reusable/arrow/ashen + +/obj/item/ammo_casing/caseless/arrow/bone + name = "bone arrow" + desc = "An arrow made of bone and sinew. The tip is sharp enough to pierce through a goliath plate." + icon_state = "bonearrow" + projectile_type = /obj/item/projectile/bullet/reusable/arrow/bone + +/obj/item/ammo_casing/caseless/arrow/bronze + name = "bronze arrow" + desc = "An arrow made of wood, tipped with bronze. The tip is dense enough to provide some armor penetration." + icon_state = "bronzearrow" + projectile_type = /obj/item/projectile/bullet/reusable/arrow/bronze diff --git a/code/modules/projectiles/ammunition/caseless/foam.dm b/code/modules/projectiles/ammunition/caseless/foam.dm index dd29f075f1..311f76797c 100644 --- a/code/modules/projectiles/ammunition/caseless/foam.dm +++ b/code/modules/projectiles/ammunition/caseless/foam.dm @@ -5,7 +5,7 @@ caliber = "foam_force" icon = 'icons/obj/guns/toy.dmi' icon_state = "foamdart" - materials = list(MAT_METAL = 11.25) + custom_materials = list(/datum/material/iron = 11.25) harmful = FALSE var/modified = FALSE @@ -62,7 +62,7 @@ desc = "Whose smart idea was it to use toys as crowd control? Ages 18 and up." projectile_type = /obj/item/projectile/bullet/reusable/foam_dart/riot icon_state = "foamdart_riot" - materials = list(MAT_METAL = 1125) + custom_materials = list(/datum/material/iron = 1125) /obj/item/ammo_casing/caseless/foam_dart/mag name = "magfoam dart" diff --git a/code/modules/projectiles/ammunition/energy/gravity.dm b/code/modules/projectiles/ammunition/energy/gravity.dm index eabb4f66d7..be7b618803 100644 --- a/code/modules/projectiles/ammunition/energy/gravity.dm +++ b/code/modules/projectiles/ammunition/energy/gravity.dm @@ -15,15 +15,15 @@ . = ..() /obj/item/ammo_casing/energy/gravity/repulse - projectile_type = /obj/item/projectile/gravityrepulse + projectile_type = /obj/item/projectile/gravity/repulse select_name = "repulse" /obj/item/ammo_casing/energy/gravity/attract - projectile_type = /obj/item/projectile/gravityattract + projectile_type = /obj/item/projectile/gravity/attract select_name = "attract" /obj/item/ammo_casing/energy/gravity/chaos - projectile_type = /obj/item/projectile/gravitychaos + projectile_type = /obj/item/projectile/gravity/chaos select_name = "chaos" diff --git a/code/modules/projectiles/ammunition/energy/plasma.dm b/code/modules/projectiles/ammunition/energy/plasma.dm index 42b03e4245..c7e3820177 100644 --- a/code/modules/projectiles/ammunition/energy/plasma.dm +++ b/code/modules/projectiles/ammunition/energy/plasma.dm @@ -12,4 +12,4 @@ /obj/item/ammo_casing/energy/plasma/weak projectile_type = /obj/item/projectile/plasma/weak - e_cost = 100 \ No newline at end of file + e_cost = 100 diff --git a/code/modules/projectiles/ammunition/energy/stun.dm b/code/modules/projectiles/ammunition/energy/stun.dm index 7c2b62c02c..2abc472138 100644 --- a/code/modules/projectiles/ammunition/energy/stun.dm +++ b/code/modules/projectiles/ammunition/energy/stun.dm @@ -5,6 +5,10 @@ e_cost = 200 harmful = FALSE +/obj/item/ammo_casing/energy/electrode/security + projectile_type = /obj/item/projectile/energy/electrode/security + e_cost = 100 + /obj/item/ammo_casing/energy/electrode/spec e_cost = 100 @@ -13,6 +17,7 @@ e_cost = 100 /obj/item/ammo_casing/energy/electrode/hos + projectile_type = /obj/item/projectile/energy/electrode/security/hos e_cost = 200 /obj/item/ammo_casing/energy/electrode/old @@ -27,4 +32,4 @@ click_cooldown_override = 3.5 /obj/item/ammo_casing/energy/disabler/secborg - e_cost = 50 \ No newline at end of file + e_cost = 50 diff --git a/code/modules/projectiles/boxes_magazines/_box_magazine.dm b/code/modules/projectiles/boxes_magazines/_box_magazine.dm index 3cdb5ca06d..4f37cf3ba9 100644 --- a/code/modules/projectiles/boxes_magazines/_box_magazine.dm +++ b/code/modules/projectiles/boxes_magazines/_box_magazine.dm @@ -8,7 +8,7 @@ item_state = "syringe_kit" lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' - materials = list(MAT_METAL = 30000) + custom_materials = list(/datum/material/iron = 30000) throwforce = 2 w_class = WEIGHT_CLASS_TINY throw_speed = 3 @@ -26,8 +26,8 @@ /obj/item/ammo_box/Initialize() . = ..() if (!bullet_cost) - for (var/material in materials) - var/material_amount = materials[material] + for (var/material in custom_materials) + var/material_amount = custom_materials[material] LAZYSET(base_cost, material, (material_amount * 0.10)) material_amount *= 0.90 // 10% for the container @@ -121,7 +121,8 @@ for (var/material in bullet_cost) var/material_amount = bullet_cost[material] material_amount = (material_amount*stored_ammo.len) + base_cost[material] - materials[material] = material_amount + custom_materials[material] = material_amount + set_custom_materials(custom_materials)//make sure we setup the correct properties again //Behavior for magazines /obj/item/ammo_box/magazine/proc/ammo_count() diff --git a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm index 2842f13db5..fbbca99ec2 100644 --- a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm +++ b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm @@ -19,7 +19,7 @@ ammo_type = /obj/item/ammo_casing/c38 max_ammo = 6 multiple_sprites = 1 - materials = list(MAT_METAL = 20000) + custom_materials = list(/datum/material/iron = 20000) /obj/item/ammo_box/c38/lethal name = "speed loader (.38)" @@ -85,7 +85,7 @@ icon_state = "foambox" ammo_type = /obj/item/ammo_casing/caseless/foam_dart max_ammo = 40 - materials = list(MAT_METAL = 500) + custom_materials = list(/datum/material/iron = 500) /obj/item/ammo_box/foambox/mag name = "ammo box (Magnetic Foam Darts)" @@ -97,4 +97,4 @@ /obj/item/ammo_box/foambox/riot icon_state = "foambox_riot" ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot - materials = list(MAT_METAL = 50000) + custom_materials = list(/datum/material/iron = 50000) diff --git a/code/modules/projectiles/boxes_magazines/external/toy.dm b/code/modules/projectiles/boxes_magazines/external/toy.dm index 04bcad284d..57da710ba4 100644 --- a/code/modules/projectiles/boxes_magazines/external/toy.dm +++ b/code/modules/projectiles/boxes_magazines/external/toy.dm @@ -64,4 +64,4 @@ max_ammo = 24 multiple_sprites = 2 ammo_type = /obj/item/ammo_casing/caseless/foam_dart/mag - materials = list(MAT_METAL = 200) + custom_materials = list(/datum/material/iron = 200) diff --git a/code/modules/projectiles/boxes_magazines/internal/bow.dm b/code/modules/projectiles/boxes_magazines/internal/bow.dm new file mode 100644 index 0000000000..9ce1565606 --- /dev/null +++ b/code/modules/projectiles/boxes_magazines/internal/bow.dm @@ -0,0 +1,6 @@ +/obj/item/ammo_box/magazine/internal/bow + name = "bow... magazine?" //shouldn't be seeing this + ammo_type = /obj/item/ammo_casing/caseless/arrow + caliber = "arrow" + max_ammo = 1 + start_empty = 1 \ No newline at end of file diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 0c2b5e013e..1f9f211154 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -9,13 +9,13 @@ item_state = "gun" flags_1 = CONDUCT_1 slot_flags = ITEM_SLOT_BELT - materials = list(MAT_METAL=2000) + custom_materials = list(/datum/material/iron=2000) w_class = WEIGHT_CLASS_NORMAL throwforce = 5 throw_speed = 3 throw_range = 5 force = 5 - item_flags = NEEDS_PERMIT + item_flags = NEEDS_PERMIT | NO_ATTACK_CHAIN_SOFT_STAMCRIT attack_verb = list("struck", "hit", "bashed") var/fire_sound = "gunshot" @@ -28,10 +28,19 @@ trigger_guard = TRIGGER_GUARD_NORMAL //trigger guard on the weapon, hulks can't fire them with their big meaty fingers var/sawn_desc = null //description change if weapon is sawn-off var/sawn_off = FALSE - var/burst_size = 1 //how large a burst is - var/fire_delay = 0 //rate of fire for burst firing and semi auto - var/firing_burst = 0 //Prevent the weapon from firing again while already firing - var/semicd = 0 //cooldown handler + + /// Weapon is burst fire if this is above 1 + var/burst_size = 1 + /// The time between shots in burst. + var/burst_shot_delay = 3 + /// The time between firing actions, this means between bursts if this is burst weapon. The reason this is 0 is because you are still, by default, limited by clickdelay. + var/fire_delay = 0 + /// Last world.time this was fired + var/last_fire = 0 + /// Currently firing, whether or not it's a burst or not. + 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/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. @@ -42,6 +51,7 @@ righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi' var/obj/item/firing_pin/pin = /obj/item/firing_pin //standard firing pin for most guns + var/no_pin_required = FALSE //whether the gun can be fired without a pin var/obj/item/flashlight/gun_light var/can_flashlight = 0 @@ -70,17 +80,24 @@ /obj/item/gun/Initialize() . = ..() if(pin) - pin = new pin(src) + if(no_pin_required) + pin = null + else + pin = new pin(src) if(gun_light) alight = new (src) if(zoomable) azoom = new (src) /obj/item/gun/Destroy() - QDEL_NULL(pin) - QDEL_NULL(gun_light) - QDEL_NULL(bayonet) - QDEL_NULL(chambered) + if(pin) + QDEL_NULL(pin) + if(gun_light) + QDEL_NULL(gun_light) + if(bayonet) + QDEL_NULL(bayonet) + if(chambered) + QDEL_NULL(chambered) return ..() /obj/item/gun/CheckParts(list/parts_list) @@ -94,6 +111,8 @@ /obj/item/gun/examine(mob/user) . = ..() + if(no_pin_required) + return if(pin) . += "It has \a [pin] installed." else @@ -117,13 +136,12 @@ to_chat(user, "*click*") playsound(src, "gun_dry_fire", 30, 1) - /obj/item/gun/proc/shoot_live_shot(mob/living/user as mob|obj, pointblank = 0, mob/pbtarget = null, message = 1) if(recoil) shake_camera(user, recoil + 1, recoil) if(isliving(user)) //CIT CHANGE - makes gun recoil cause staminaloss - user.adjustStaminaLossBuffered(getstamcost(user)*(firing_burst && burst_size >= 2 ? 1/burst_size : 1)) //CIT CHANGE - ditto + user.adjustStaminaLossBuffered(getstamcost(user)*(firing && burst_size >= 2 ? 1/burst_size : 1)) //CIT CHANGE - ditto if(suppressed) playsound(user, fire_sound, 10, 1) @@ -143,9 +161,15 @@ /obj/item/gun/afterattack(atom/target, mob/living/user, flag, params) . = ..() + process_afterattack(target, user, flag, params) + +/obj/item/gun/proc/process_afterattack(atom/target, mob/living/user, flag, params) if(!target) return - if(firing_burst) + if(firing) + return + if(user.getStaminaLoss() >= STAMINA_SOFTCRIT) //respect stamina softcrit + to_chat(user, "You are too exhausted to fire [src]!") return if(flag) //It's adjacent, is the user, or is on the user's person if(target in user.contents) //can't shoot stuff inside us. @@ -169,7 +193,6 @@ handle_suicide(user, target, params) return - //Exclude lasertag guns from the TRAIT_CLUMSY check. if(clumsy_check) if(istype(user)) @@ -201,8 +224,6 @@ process_fire(target, user, TRUE, params, null, bonus_spread) - - /obj/item/gun/can_trigger_gun(mob/living/user) . = ..() if(!.) @@ -214,6 +235,8 @@ return FALSE /obj/item/gun/proc/handle_pins(mob/living/user) + if(no_pin_required) + return TRUE if(pin) if(pin.pin_auth(user) || (pin.obj_flags & EMAGGED)) return TRUE @@ -227,54 +250,29 @@ /obj/item/gun/proc/recharge_newshot() return -/obj/item/gun/proc/process_burst(mob/living/user, atom/target, message = TRUE, params=null, zone_override = "", sprd = 0, randomized_gun_spread = 0, randomized_bonus_spread = 0, rand_spr = 0, iteration = 0) - if(!user || !firing_burst) - firing_burst = FALSE - return FALSE - if(!issilicon(user)) - if(iteration > 1 && !(user.is_holding(src))) //for burst firing - firing_burst = FALSE - return FALSE - if(chambered && chambered.BB) - if(HAS_TRAIT(user, TRAIT_PACIFISM)) // If the user has the pacifist trait, then they won't be able to fire [src] if the round chambered inside of [src] is lethal. - if(chambered.harmful) // Is the bullet chambered harmful? - to_chat(user, " [src] is lethally chambered! You don't want to risk harming anyone...") - return - if(randomspread) - sprd = round((rand() - 0.5) * DUALWIELD_PENALTY_EXTRA_MULTIPLIER * (randomized_gun_spread + randomized_bonus_spread), 1) - else //Smart spread - sprd = round((((rand_spr/burst_size) * iteration) - (0.5 + (rand_spr * 0.25))) * (randomized_gun_spread + randomized_bonus_spread), 1) - before_firing(target,user) - if(!chambered.fire_casing(target, user, params, ,suppressed, zone_override, sprd, src)) - shoot_with_empty_chamber(user) - firing_burst = FALSE - return FALSE - else - if(get_dist(user, target) <= 1) //Making sure whether the target is in vicinity for the pointblank shot - shoot_live_shot(user, 1, target, message) - else - shoot_live_shot(user, 0, target, message) - if (iteration >= burst_size) - firing_burst = FALSE - else - shoot_with_empty_chamber(user) - firing_burst = FALSE - return FALSE - process_chamber() - update_icon() - return TRUE +/obj/item/gun/proc/on_cooldown() + return busy_action || firing || ((last_fire + fire_delay) > world.time) /obj/item/gun/proc/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) add_fingerprint(user) - if(semicd) + if(on_cooldown()) return + firing = TRUE + . = do_fire(target, user, message, params, zone_override, bonus_spread) + firing = FALSE + last_fire = world.time + if(user) + user.update_inv_hands() + SEND_SIGNAL(user, COMSIG_LIVING_GUN_PROCESS_FIRE, target, params, zone_override) + +/obj/item/gun/proc/do_fire(atom/target, mob/living/user, message = TRUE, params, zone_override = "", bonus_spread = 0) var/sprd = 0 var/randomized_gun_spread = 0 var/rand_spr = rand() if(spread) - randomized_gun_spread = rand(0, spread) + randomized_gun_spread = rand(0, spread) else if(burst_size > 1 && burst_spread) randomized_gun_spread = rand(0, burst_spread) if(HAS_TRAIT(user, TRAIT_POOR_AIM)) //nice shootin' tex @@ -282,9 +280,12 @@ var/randomized_bonus_spread = rand(0, bonus_spread) if(burst_size > 1) - firing_burst = TRUE - for(var/i = 1 to burst_size) - addtimer(CALLBACK(src, .proc/process_burst, user, target, message, params, zone_override, sprd, randomized_gun_spread, randomized_bonus_spread, rand_spr, i), fire_delay * (i - 1)) + do_burst_shot(user, target, message, params, zone_override, sprd, randomized_gun_spread, randomized_bonus_spread, rand_spr, 1) + for(var/i in 2 to burst_size) + sleep(burst_shot_delay) + if(QDELETED(src)) + break + do_burst_shot(user, target, message, params, zone_override, sprd, randomized_gun_spread, randomized_bonus_spread, rand_spr, i) else if(chambered) sprd = round((rand() - 0.5) * DUALWIELD_PENALTY_EXTRA_MULTIPLIER * (randomized_gun_spread + randomized_bonus_spread)) @@ -302,21 +303,46 @@ return process_chamber() update_icon() - semicd = TRUE - addtimer(CALLBACK(src, .proc/reset_semicd), fire_delay) - if(user) - user.update_inv_hands() - SEND_SIGNAL(user, COMSIG_LIVING_GUN_PROCESS_FIRE, target, params, zone_override) SSblackbox.record_feedback("tally", "gun_fired", 1, type) return TRUE -/obj/item/gun/update_icon() - ..() - - -/obj/item/gun/proc/reset_semicd() - semicd = FALSE +/obj/item/gun/proc/do_burst_shot(mob/living/user, atom/target, message = TRUE, params=null, zone_override = "", sprd = 0, randomized_gun_spread = 0, randomized_bonus_spread = 0, rand_spr = 0, iteration = 0) + if(!user || !firing) + firing = FALSE + return FALSE + if(!issilicon(user)) + if(iteration > 1 && !(user.is_holding(src))) //for burst firing + firing = FALSE + return FALSE + if(chambered && chambered.BB) + if(HAS_TRAIT(user, TRAIT_PACIFISM)) // If the user has the pacifist trait, then they won't be able to fire [src] if the round chambered inside of [src] is lethal. + if(chambered.harmful) // Is the bullet chambered harmful? + to_chat(user, " [src] is lethally chambered! You don't want to risk harming anyone...") + return + if(randomspread) + sprd = round((rand() - 0.5) * DUALWIELD_PENALTY_EXTRA_MULTIPLIER * (randomized_gun_spread + randomized_bonus_spread), 1) + else //Smart spread + sprd = round((((rand_spr/burst_size) * iteration) - (0.5 + (rand_spr * 0.25))) * (randomized_gun_spread + randomized_bonus_spread), 1) + before_firing(target,user) + if(!chambered.fire_casing(target, user, params, ,suppressed, zone_override, sprd, src)) + shoot_with_empty_chamber(user) + firing = FALSE + return FALSE + else + if(get_dist(user, target) <= 1) //Making sure whether the target is in vicinity for the pointblank shot + shoot_live_shot(user, 1, target, message) + else + shoot_live_shot(user, 0, target, message) + if (iteration >= burst_size) + firing = FALSE + else + shoot_with_empty_chamber(user) + firing = FALSE + return FALSE + process_chamber() + update_icon() + return TRUE /obj/item/gun/attack(mob/M as mob, mob/user) if(user.a_intent == INTENT_HARM) //Flogging @@ -437,7 +463,7 @@ if(!ishuman(user) || !ishuman(target)) return - if(semicd) + if(on_cooldown()) return if(user == target) @@ -447,7 +473,7 @@ target.visible_message("[user] points [src] at [target]'s head, ready to pull the trigger...", \ "[user] points [src] at your head, ready to pull the trigger...") - semicd = TRUE + busy_action = TRUE if(!bypass_timer && (!do_mob(user, target, 120) || user.zone_selected != BODY_ZONE_PRECISE_MOUTH)) if(user) @@ -455,10 +481,10 @@ user.visible_message("[user] decided not to shoot.") else if(target && target.Adjacent(user)) target.visible_message("[user] has decided to spare [target]", "[user] has decided to spare your life!") - semicd = FALSE + busy_action = FALSE return - semicd = FALSE + busy_action = FALSE target.visible_message("[user] pulls the trigger!", "[user] pulls the trigger!") diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm index bcb212a031..0ff0c79f1e 100644 --- a/code/modules/projectiles/guns/ballistic/automatic.dm +++ b/code/modules/projectiles/guns/ballistic/automatic.dm @@ -5,7 +5,7 @@ var/automatic_burst_overlay = TRUE can_suppress = TRUE burst_size = 3 - fire_delay = 2 + burst_shot_delay = 2 actions_types = list(/datum/action/item_action/toggle_firemode) /obj/item/gun/ballistic/automatic/proto @@ -77,11 +77,9 @@ /obj/item/gun/ballistic/automatic/proc/enable_burst() burst_size = initial(burst_size) - fire_delay = initial(fire_delay) /obj/item/gun/ballistic/automatic/proc/disable_burst() burst_size = 1 - fire_delay = 0 /obj/item/gun/ballistic/automatic/can_shoot() return get_ammo() @@ -100,7 +98,7 @@ item_state = "c20r" mag_type = /obj/item/ammo_box/magazine/smgm45 fire_sound = 'sound/weapons/gunshot_smg.ogg' - fire_delay = 2 + burst_shot_delay = 2 burst_size = 2 pin = /obj/item/firing_pin/implant/pindicate can_bayonet = TRUE @@ -130,7 +128,7 @@ mag_type = /obj/item/ammo_box/magazine/wt550m9 can_suppress = FALSE burst_size = 2 - fire_delay = 1 + burst_shot_delay = 1 can_bayonet = TRUE knife_x_offset = 25 knife_y_offset = 12 @@ -165,7 +163,7 @@ can_suppress = FALSE var/obj/item/gun/ballistic/revolver/grenadelauncher/underbarrel burst_size = 3 - fire_delay = 2 + burst_shot_delay = 2 pin = /obj/item/firing_pin/implant/pindicate /obj/item/gun/ballistic/automatic/m90/Initialize() @@ -212,7 +210,6 @@ if(0) select = 1 burst_size = initial(burst_size) - fire_delay = initial(fire_delay) to_chat(user, "You switch to [burst_size]-rnd burst.") if(1) select = 2 @@ -220,7 +217,6 @@ if(2) select = 0 burst_size = 1 - fire_delay = 0 to_chat(user, "You switch to semi-auto.") playsound(user, 'sound/weapons/empty.ogg', 100, 1) update_icon() @@ -237,7 +233,7 @@ fire_sound = 'sound/weapons/gunshot_smg.ogg' can_suppress = FALSE burst_size = 4 - fire_delay = 1 + burst_shot_delay = 1 /obj/item/gun/ballistic/automatic/ar name = "\improper NT-ARG 'Boarder'" @@ -249,7 +245,7 @@ fire_sound = 'sound/weapons/gunshot_smg.ogg' can_suppress = FALSE burst_size = 3 - fire_delay = 1 + burst_shot_delay = 1 // Bulldog shotgun // @@ -264,7 +260,6 @@ fire_sound = 'sound/weapons/gunshot.ogg' can_suppress = FALSE burst_size = 1 - fire_delay = 0 pin = /obj/item/firing_pin/implant/pindicate actions_types = list() @@ -301,7 +296,7 @@ var/cover_open = FALSE can_suppress = FALSE burst_size = 3 - fire_delay = 1 + burst_shot_delay = 1 spread = 7 pin = /obj/item/firing_pin/implant/pindicate @@ -421,7 +416,7 @@ mag_type = /obj/item/ammo_box/magazine/recharge fire_delay = 2 can_suppress = FALSE - burst_size = 0 + burst_size = 1 actions_types = list() fire_sound = 'sound/weapons/laser.ogg' casing_ejector = FALSE diff --git a/code/modules/projectiles/guns/ballistic/bow.dm b/code/modules/projectiles/guns/ballistic/bow.dm new file mode 100644 index 0000000000..0fc181f71c --- /dev/null +++ b/code/modules/projectiles/guns/ballistic/bow.dm @@ -0,0 +1,66 @@ +/obj/item/gun/ballistic/bow + name = "wooden bow" + desc = "Some sort of primitive projectile weapon. Used to fire arrows." + icon_state = "bow" + item_state = "bow" + w_class = WEIGHT_CLASS_BULKY + weapon_weight = WEAPON_HEAVY //need both hands to fire + force = 5 + mag_type = /obj/item/ammo_box/magazine/internal/bow + fire_sound = 'sound/weapons/bowfire.wav' + slot_flags = ITEM_SLOT_BACK + item_flags = NONE + casing_ejector = FALSE + inaccuracy_modifier = 0.33 //to counteract the innaccuracy from WEAPON_HEAVY, bows are supposed to be accurate but only able to be fired with both hands + pin = null + no_pin_required = TRUE + trigger_guard = TRIGGER_GUARD_NONE //so ashwalkers can use it + +/obj/item/gun/ballistic/bow/shoot_with_empty_chamber() + return + +/obj/item/gun/ballistic/bow/chamber_round() + chambered = magazine.get_round(1) + +/obj/item/gun/ballistic/bow/process_chamber() + chambered = null + magazine.get_round(0) + update_icon() + +/obj/item/gun/ballistic/bow/attack_self(mob/living/user) + if (chambered) + var/obj/item/ammo_casing/AC = magazine.get_round(0) + user.put_in_hands(AC) + chambered = null + to_chat(user, "You gently release the bowstring, removing the arrow.") + else if (get_ammo()) + to_chat(user, "You draw back the bowstring.") + playsound(src, 'sound/weapons/bowdraw.wav', 75, 0) //gets way too high pitched if the freq varies + chamber_round() + update_icon() + +/obj/item/gun/ballistic/bow/attackby(obj/item/I, mob/user, params) + if (magazine.attackby(I, user, params, 1)) + to_chat(user, "You notch the arrow.") + update_icon() + +/obj/item/gun/ballistic/bow/update_icon() + icon_state = "[initial(icon_state)]_[get_ammo() ? (chambered ? "firing" : "loaded") : "unloaded"]" + +/obj/item/gun/ballistic/bow/can_shoot() + return chambered + +/obj/item/gun/ballistic/bow/ashen + name = "bone bow" + desc = "Some sort of primitive projectile weapon made of bone and sinew. Used to fire arrows." + icon_state = "ashenbow" + item_state = "ashenbow" + force = 8 + +/obj/item/gun/ballistic/bow/pipe + name = "pipe bow" + desc = "Some sort of pipe made projectile weapon made of a silk string and lots of bending. Used to fire arrows." + icon_state = "pipebow" + item_state = "pipebow" + inaccuracy_modifier = 1.1 //Made of pipe and in a rush + force = 0 \ No newline at end of file diff --git a/code/modules/projectiles/guns/ballistic/laser_gatling.dm b/code/modules/projectiles/guns/ballistic/laser_gatling.dm index 49ced8ff39..82f6fa700b 100644 --- a/code/modules/projectiles/guns/ballistic/laser_gatling.dm +++ b/code/modules/projectiles/guns/ballistic/laser_gatling.dm @@ -102,7 +102,7 @@ slowdown = 1 slot_flags = null w_class = WEIGHT_CLASS_HUGE - materials = list() + custom_materials = null burst_size = 3 automatic = 0 fire_delay = 1 diff --git a/code/modules/projectiles/guns/ballistic/magweapon.dm b/code/modules/projectiles/guns/ballistic/magweapon.dm index f366063a74..4e37017b79 100644 --- a/code/modules/projectiles/guns/ballistic/magweapon.dm +++ b/code/modules/projectiles/guns/ballistic/magweapon.dm @@ -61,7 +61,6 @@ /obj/item/gun/ballistic/automatic/magrifle/nopin pin = null spawnwithmagazine = FALSE - cell_type = /obj/item/stock_parts/cell/magnetic/empty /obj/item/gun/ballistic/automatic/magrifle/hyperburst name = "\improper Hyper-Burst Rifle" @@ -100,4 +99,3 @@ /obj/item/gun/ballistic/automatic/magrifle/pistol/nopin pin = null spawnwithmagazine = FALSE - cell_type = /obj/item/stock_parts/cell/magnetic/pistol/empty diff --git a/code/modules/projectiles/guns/ballistic/pistol.dm b/code/modules/projectiles/guns/ballistic/pistol.dm index 5f67194b29..68f212ba30 100644 --- a/code/modules/projectiles/guns/ballistic/pistol.dm +++ b/code/modules/projectiles/guns/ballistic/pistol.dm @@ -79,6 +79,7 @@ /obj/item/gun/ballistic/automatic/pistol/stickman name = "flat gun" desc = "A 2 dimensional gun.. what?" + can_suppress = FALSE icon_state = "flatgun" /obj/item/gun/ballistic/automatic/pistol/stickman/pickup(mob/living/user) diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index 3ca732eb0b..401678512b 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -1,3 +1,16 @@ +/* + * Energy guns that draw from a cell to fire. + * + * This is a bit weird but this is how it currently works: + * When switching shots, it clears the chamber, and loads the correct energy ammo casing if there is enough energy to fire it. + * If there's no projectile in the casing, it creates it now. + * Otherwise the chamber stays null. + * After firing, it actually deducts the energy and then clears the chamber and does the above again. + * It detects if a successful fire is done by checking if the chambered energy ammo casing still has its projectile intact. + * + * It might be good in the future to move away from ammo casinsgs and instead use a datum-firemode system, but that would make handling firing, + * which the casing does as of now, a little interesting to implement. + */ /obj/item/gun/energy icon_state = "energy" name = "energy gun" @@ -7,8 +20,10 @@ var/obj/item/stock_parts/cell/cell //What type of power cell this uses var/cell_type = /obj/item/stock_parts/cell var/modifystate = 0 - var/list/ammo_type = list(/obj/item/ammo_casing/energy) - var/select = 1 //The state of the select fire switch. Determines from the ammo_type list what kind of shot is fired next. + /// = TRUE/FALSE decides if the user can switch to it of their own accord + var/list/ammo_type = list(/obj/item/ammo_casing/energy = TRUE) + /// The index of the ammo_types/firemodes which we're using right now + var/current_firemode_index = 1 var/can_charge = 1 //Can it be charged in a recharger? var/automatic_charge_overlays = TRUE //Do we handle overlays with base update_icon()? var/charge_sections = 4 @@ -21,6 +36,9 @@ var/use_cyborg_cell = FALSE //whether the gun drains the cyborg user's cell instead, not to be confused with EGUN_SELFCHARGE_BORG var/dead_cell = FALSE //set to true so the gun is given an empty cell + /// SET THIS TO TRUE IF YOU OVERRIDE altafterattack() or ANY right click action! If this is FALSE, the gun will show in examine its default right click behavior, which is to switch modes. + var/right_click_overridden = FALSE + /obj/item/gun/energy/emp_act(severity) . = ..() if(!(. & EMP_PROTECT_CONTENTS)) @@ -46,22 +64,19 @@ START_PROCESSING(SSobj, src) update_icon() -/obj/item/gun/energy/proc/update_ammo_types() - var/obj/item/ammo_casing/energy/shot - for (var/i = 1, i <= ammo_type.len, i++) - var/shottype = ammo_type[i] - shot = new shottype(src) - ammo_type[i] = shot - shot = ammo_type[select] - fire_sound = shot.fire_sound - fire_delay = shot.delay - /obj/item/gun/energy/Destroy() - QDEL_NULL(cell) - QDEL_LIST(ammo_type) - STOP_PROCESSING(SSobj, src) + if(flags_1 & INITIALIZED_1) + QDEL_NULL(cell) + if(!(flags_1 & HOLOGRAM_1)) //holodeck stuff. + QDEL_LIST(ammo_type) + STOP_PROCESSING(SSobj, src) return ..() +/obj/item/gun/energy/examine(mob/user) + . = ..() + if(!right_click_overridden) + . += "Right click in combat mode to switch modes." + /obj/item/gun/energy/process() if(selfcharge && cell?.charge < cell.maxcharge) charge_tick++ @@ -82,13 +97,14 @@ recharge_newshot(TRUE) update_icon() -/obj/item/gun/energy/attack_self(mob/living/user as mob) - if(ammo_type.len > 1) +// ATTACK SELF IGNORING PARENT RETURN VALUE +/obj/item/gun/energy/attack_self(mob/living/user) + . = ..() + if(can_select_fire(user)) select_fire(user) - update_icon() /obj/item/gun/energy/can_shoot() - var/obj/item/ammo_casing/energy/shot = ammo_type[select] + var/obj/item/ammo_casing/energy/shot = ammo_type[current_firemode_index] return !QDELETED(cell) ? (cell.charge >= shot.e_cost) : FALSE /obj/item/gun/energy/recharge_newshot(no_cyborg_drain) @@ -98,11 +114,11 @@ if(iscyborg(loc)) var/mob/living/silicon/robot/R = loc if(R.cell) - var/obj/item/ammo_casing/energy/shot = ammo_type[select] //Necessary to find cost of shot + var/obj/item/ammo_casing/energy/shot = ammo_type[current_firemode_index] //Necessary to find cost of shot if(R.cell.use(shot.e_cost)) //Take power from the borg... cell.give(shot.e_cost) //... to recharge the shot if(!chambered) - var/obj/item/ammo_casing/energy/AC = ammo_type[select] + var/obj/item/ammo_casing/energy/AC = ammo_type[current_firemode_index] if(cell.charge >= AC.e_cost) //if there's enough power in the cell cell... chambered = AC //...prepare a new shot based on the current ammo type selected if(!chambered.BB) @@ -115,29 +131,104 @@ chambered = null //either way, released the prepared shot recharge_newshot() //try to charge a new shot -/obj/item/gun/energy/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) +/obj/item/gun/energy/do_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) if(!chambered && can_shoot()) process_chamber() // If the gun was drained and then recharged, load a new shot. return ..() -/obj/item/gun/energy/process_burst(mob/living/user, atom/target, message = TRUE, params = null, zone_override="", sprd = 0, randomized_gun_spread = 0, randomized_bonus_spread = 0, rand_spr = 0, iteration = 0) +/obj/item/gun/energy/do_burst_shot(mob/living/user, atom/target, message = TRUE, params = null, zone_override="", sprd = 0, randomized_gun_spread = 0, randomized_bonus_spread = 0, rand_spr = 0, iteration = 0) if(!chambered && can_shoot()) process_chamber() // Ditto. return ..() -/obj/item/gun/energy/proc/select_fire(mob/living/user) - select++ - if (select > ammo_type.len) - select = 1 - var/obj/item/ammo_casing/energy/shot = ammo_type[select] - fire_sound = shot.fire_sound - fire_delay = shot.delay - if (shot.select_name) - to_chat(user, "[src] is now set to [shot.select_name].") - chambered = null - recharge_newshot(TRUE) +// Firemodes/Ammotypes + +/obj/item/gun/energy/proc/update_ammo_types() + var/obj/item/ammo_casing/energy/C + for(var/i in 1 to length(ammo_type)) + var/v = ammo_type[i] + var/user_can_select = ammo_type[v] + if(istype(v, /obj/item/ammo_casing/energy)) //already set + ammo_type[v] = isnull(user_can_select)? TRUE : user_can_select + else + C = new v(src) //if you put non energycasing/type stuff in here you deserve the runtime + ammo_type[i] = C + ammo_type[C] = isnull(user_can_select)? TRUE : user_can_select + set_firemode_index(initial(current_firemode_index)) + +/obj/item/gun/energy/proc/set_firemode_index(index, mob/user_for_feedback) + chambered = null //unchamber whatever we have chambered + if(index > length(ammo_type)) + index = 1 + else if(index < 1) + index = length(ammo_type) + var/obj/item/ammo_casing/energy/C = ammo_type[index] //energy weapons should not have no casings, if it does you deserve the runtime. + current_firemode_index = index + fire_sound = C.fire_sound + fire_delay = C.delay + if(user_for_feedback) + to_chat(user_for_feedback, "[src] is now set to [C.select_name || C].") + post_set_firemode() update_icon(TRUE) - return + +/obj/item/gun/energy/proc/post_set_firemode(recharge_newshot = TRUE) + if(recharge_newshot) + recharge_newshot(TRUE) + +/obj/item/gun/energy/proc/set_firemode_to_next(mob/user_for_feedback) + return set_firemode_index(++current_firemode_index, user_for_feedback) + +/obj/item/gun/energy/proc/set_firemode_to_prev(mob/user_for_feedback) + return set_firemode_index(--current_firemode_index, user_for_feedback) + +/obj/item/gun/energy/proc/get_firemode_index(casing_type) + var/obj/item/ammo_casing/energy/E = locate(casing_type) in ammo_type + if(E) + return ammo_type.Find(E) + +/obj/item/gun/energy/proc/set_firemode_to_type(casing_type) + var/index = get_firemode_index(casing_type) + if(index) + set_firemode_index(index) + +/// This is the proc used in general for when a user switches firemodes. Just goes to next firemode by default. +/obj/item/gun/energy/proc/select_fire(mob/living/user) + return user_set_firemode_to_next(user) + +/obj/item/gun/energy/proc/can_select_fire(mob/living/user) + return TRUE + +#define INCREMENT_OR_WRAP(i) i = (i >= length(ammo_type))? 1 : (i + 1) +#define DECREMENT_OR_WRAP(i) i = (i <= 1)? length(ammo_type) : (i - 1) +#define IS_VALID_INDEX(i) (ammo_type[ammo_type[i]]) +/obj/item/gun/energy/proc/user_set_firemode_to_next(mob/user_for_feedback) + var/current_index = current_firemode_index + var/new_index = current_index + INCREMENT_OR_WRAP(new_index) + if(!IS_VALID_INDEX(new_index)) + var/initial_index = new_index + while(!IS_VALID_INDEX(new_index) && (new_index != initial_index)) + new_index = INCREMENT_OR_WRAP(new_index) + if(initial_index == new_index) //cycled through without finding another + new_index = current_index + + set_firemode_index(new_index, user_for_feedback) + +/obj/item/gun/energy/proc/user_set_firemode_to_prev(mob/user_for_feedback) + var/current_index = current_firemode_index + var/new_index = current_index + DECREMENT_OR_WRAP(new_index) + if(!IS_VALID_INDEX(new_index)) + var/initial_index = new_index + while(!IS_VALID_INDEX(new_index) && (new_index != initial_index)) + new_index = DECREMENT_OR_WRAP(new_index) + if(initial_index == new_index) //cycled through without finding another + new_index = current_index + + set_firemode_index(new_index, user_for_feedback) +#undef INCREMENT_OR_WRAP +#undef DECREMENT_OR_WRAP +#undef IS_VALID_INDEX /obj/item/gun/energy/update_icon(force_update) if(QDELETED(src)) @@ -157,7 +248,7 @@ if(!initial(item_state)) itemState = icon_state if (modifystate) - var/obj/item/ammo_casing/energy/shot = ammo_type[select] + var/obj/item/ammo_casing/energy/shot = ammo_type[current_firemode_index] add_overlay("[icon_state]_[shot.select_name]") iconState += "_[shot.select_name]" if(itemState) @@ -176,6 +267,9 @@ if(itemState) itemState += "[ratio]" item_state = itemState + if(ismob(loc)) //forces inhands to update + var/mob/M = loc + M.update_inv_hands() /obj/item/gun/energy/suicide_act(mob/living/user) if (istype(user) && can_shoot() && can_trigger_gun(user) && user.get_bodypart(BODY_ZONE_HEAD)) @@ -185,7 +279,7 @@ user.visible_message("[user] melts [user.p_their()] face off with [src]!") playsound(loc, fire_sound, 50, 1, -1) playsound(src, 'sound/weapons/dink.ogg', 30, 1) - var/obj/item/ammo_casing/energy/shot = ammo_type[select] + var/obj/item/ammo_casing/energy/shot = ammo_type[current_firemode_index] cell.use(shot.e_cost) update_icon() return(FIRELOSS) @@ -207,13 +301,12 @@ STOP_PROCESSING(SSobj, src) . = ..() - /obj/item/gun/energy/ignition_effect(atom/A, mob/living/user) - if(!can_shoot() || !ammo_type[select]) + if(!can_shoot() || !ammo_type[current_firemode_index]) shoot_with_empty_chamber() . = "" else - var/obj/item/ammo_casing/energy/E = ammo_type[select] + var/obj/item/ammo_casing/energy/E = ammo_type[current_firemode_index] var/obj/item/projectile/energy/BB = E.BB if(!BB) . = "" @@ -235,3 +328,9 @@ playsound(user, BB.hitsound, 50, 1) cell.use(E.e_cost) . = "[user] casually lights their [A.name] with [src]. Damn." + +/obj/item/gun/energy/altafterattack(atom/target, mob/user, proximity_flags, params) + if(!right_click_overridden) + select_fire(user) + return TRUE + return ..() diff --git a/code/modules/projectiles/guns/energy/dueling.dm b/code/modules/projectiles/guns/energy/dueling.dm index 6fe10eb3b6..615bb5d939 100644 --- a/code/modules/projectiles/guns/energy/dueling.dm +++ b/code/modules/projectiles/guns/energy/dueling.dm @@ -320,10 +320,10 @@ if(C.setting == counter_setting) return BULLET_ACT_BLOCK - var/mob/living/L = target - if(!istype(target)) + if(!isliving(target)) return BULLET_ACT_BLOCK + var/mob/living/L = target switch(hugbox) if(DUEL_HUGBOX_NONE) var/obj/item/bodypart/B = L.get_bodypart(BODY_ZONE_HEAD) diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm index 163deae0ed..efe107a3f8 100644 --- a/code/modules/projectiles/guns/energy/energy_gun.dm +++ b/code/modules/projectiles/guns/energy/energy_gun.dm @@ -97,7 +97,7 @@ pin = null can_charge = 0 ammo_x_offset = 1 - ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser) + ammo_type = list(/obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser) selfcharge = EGUN_SELFCHARGE var/fail_tick = 0 var/fail_chance = 0 @@ -113,18 +113,21 @@ ..() /obj/item/gun/energy/e_gun/nuclear/proc/failcheck() - if(prob(fail_chance) && isliving(loc)) - var/mob/living/M = loc + if(prob(fail_chance)) switch(fail_tick) if(0 to 200) fail_tick += (2*(fail_chance)) - M.rad_act(400) - to_chat(M, "Your [name] feels warmer.") + radiation_pulse(src, 50) + var/mob/M = (ismob(loc) && loc) || (ismob(loc.loc) && loc.loc) //thank you short circuiting. if you powergame and nest these guns deeply you get to suffer no-warning radiation death. + if(M) + to_chat(M, "Your [name] feels warmer.") if(201 to INFINITY) SSobj.processing.Remove(src) - M.rad_act(800) - crit_fail = 1 - to_chat(M, "Your [name]'s reactor overloads!") + radiation_pulse(src, 200) + crit_fail = TRUE + var/mob/M = (ismob(loc) && loc) || (ismob(loc.loc) && loc.loc) + if(M) + to_chat(M, "Your [name]'s reactor overloads!") /obj/item/gun/energy/e_gun/nuclear/emp_act(severity) . = ..() diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 32f3416faf..2fe9b326eb 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -4,13 +4,14 @@ icon_state = "laser" item_state = "laser" w_class = WEIGHT_CLASS_NORMAL - materials = list(MAT_METAL=2000) + custom_materials = list(/datum/material/iron=2000) ammo_type = list(/obj/item/ammo_casing/energy/lasergun) ammo_x_offset = 1 shaded_charge = 1 /obj/item/gun/energy/laser/practice name = "practice laser gun" + icon_state = "laser-p" desc = "A modified version of the basic laser gun, this one fires less concentrated energy bolts designed for target practice." ammo_type = list(/obj/item/ammo_casing/energy/laser/practice) clumsy_check = 0 @@ -202,7 +203,7 @@ if(!ishuman(user) || !ishuman(target)) return - if(semicd) + if(on_cooldown()) return if(user == target) @@ -212,7 +213,7 @@ target.visible_message("[user] points [src] at [target]'s head, ready to pull the trigger...", \ "[user] points [src] at your head, ready to pull the trigger...") - semicd = TRUE + busy_action = TRUE if(!bypass_timer && (!do_mob(user, target, 120) || user.zone_selected != BODY_ZONE_PRECISE_MOUTH)) if(user) @@ -220,10 +221,10 @@ user.visible_message("[user] decided not to shoot.") else if(target && target.Adjacent(user)) target.visible_message("[user] has decided to spare [target]", "[user] has decided to spare your life!") - semicd = FALSE + busy_action = FALSE return - semicd = FALSE + busy_action = FALSE target.visible_message("[user] pulls the trigger!", "[user] pulls the trigger!") diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index f0b38f2d4e..42de0dcae8 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -36,7 +36,7 @@ /obj/item/gun/energy/decloner/update_icon() ..() - var/obj/item/ammo_casing/energy/shot = ammo_type[select] + var/obj/item/ammo_casing/energy/shot = ammo_type[current_firemode_index] if(!QDELETED(cell) && (cell.charge > shot.e_cost)) add_overlay("decloner_spin") @@ -85,7 +85,7 @@ icon_state = "crossbow" item_state = "crossbow" w_class = WEIGHT_CLASS_SMALL - materials = list(MAT_METAL=2000) + custom_materials = list(/datum/material/iron=2000) suppressed = TRUE ammo_type = list(/obj/item/ammo_casing/energy/bolt) weapon_weight = WEAPON_LIGHT @@ -108,7 +108,7 @@ desc = "A reverse engineered weapon using syndicate technology. This thing seems incredibly unwieldly, and seems to be using similar internals to the Proto-Kinetic Accelerator. It might not play nice when brought near weapons similar to it." icon_state = "crossbowlarge" w_class = WEIGHT_CLASS_BULKY - materials = list(MAT_METAL=4000) + custom_materials = list(/datum/material/iron=4000) suppressed = null ammo_type = list(/obj/item/ammo_casing/energy/bolt/large) weapon_weight = WEAPON_HEAVY @@ -185,7 +185,7 @@ var/atmos_link = FALSE /obj/item/gun/energy/wormhole_projector/update_icon() - icon_state = "[initial(icon_state)][select]" + icon_state = "[initial(icon_state)][current_firemode_index]" item_state = icon_state /obj/item/gun/energy/wormhole_projector/update_ammo_types() @@ -320,7 +320,7 @@ /obj/item/gun/energy/emitter/update_icon() ..() - var/obj/item/ammo_casing/energy/shot = ammo_type[select] + var/obj/item/ammo_casing/energy/shot = ammo_type[current_firemode_index] if(!QDELETED(cell) && (cell.charge > shot.e_cost)) add_overlay("emitter_carbine_empty") else diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm index 55d11c52d1..d700db817c 100644 --- a/code/modules/projectiles/guns/energy/stun.dm +++ b/code/modules/projectiles/guns/energy/stun.dm @@ -18,10 +18,23 @@ /obj/item/gun/energy/e_gun/advtaser name = "hybrid taser" - desc = "A dual-mode taser designed to fire both short-range high-power electrodes and long-range disabler beams." + desc = "A dual-mode taser designed to fire both short-range high-power electrodes and long-range disabler beams. Right click in combat mode to fire a taser shot with a cooldown." icon_state = "advtaser" - ammo_type = list(/obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/electrode) + ammo_type = list(/obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/electrode/security = FALSE) ammo_x_offset = 2 + // Not enough guns have altfire systems like this yet for this to be a universal framework. + var/last_altfire = 0 + var/altfire_delay = 15 + +/obj/item/gun/energy/e_gun/advtaser/altafterattack(atom/target, mob/user, proximity_flag, params) + . = TRUE + if(last_altfire + altfire_delay > world.time) + return + var/current_index = current_firemode_index + set_firemode_to_type(/obj/item/ammo_casing/energy/electrode) + process_afterattack(target, user, proximity_flag, params) + set_firemode_index(current_index) + last_altfire = world.time /obj/item/gun/energy/e_gun/advtaser/cyborg name = "cyborg taser" diff --git a/code/modules/projectiles/guns/magic/wand.dm b/code/modules/projectiles/guns/magic/wand.dm index 52236ab695..57bbd13cf7 100644 --- a/code/modules/projectiles/guns/magic/wand.dm +++ b/code/modules/projectiles/guns/magic/wand.dm @@ -73,6 +73,12 @@ user.adjustOxyLoss(500) charges-- +/obj/item/gun/magic/wand/death/debug + desc = "In some obscure circles, this is known as the 'cloning tester's friend'." + max_charges = 500 + variable_charges = FALSE + can_charge = TRUE + recharge_rate = 1 ///////////////////////////////////// //WAND OF HEALING diff --git a/code/modules/projectiles/guns/misc/beam_rifle.dm b/code/modules/projectiles/guns/misc/beam_rifle.dm index c53e28ea29..098395e0d4 100644 --- a/code/modules/projectiles/guns/misc/beam_rifle.dm +++ b/code/modules/projectiles/guns/misc/beam_rifle.dm @@ -19,7 +19,7 @@ fire_sound = 'sound/weapons/beam_sniper.ogg' slot_flags = ITEM_SLOT_BACK force = 15 - materials = list() + custom_materials = null recoil = 4 ammo_x_offset = 3 ammo_y_offset = 3 @@ -43,6 +43,7 @@ var/lastangle = 0 var/aiming_lastangle = 0 + var/last_aimbeam = 0 var/mob/current_user = null var/list/obj/effect/projectile/tracer/current_tracers @@ -186,8 +187,9 @@ /obj/item/gun/energy/beam_rifle/proc/aiming_beam(force_update = FALSE) var/diff = abs(aiming_lastangle - lastangle) - check_user() - if(diff < AIMING_BEAM_ANGLE_CHANGE_THRESHOLD && !force_update) + if(!check_user()) + return + if(((diff < AIMING_BEAM_ANGLE_CHANGE_THRESHOLD) || ((last_aimbeam + 1) > world.time)) && !force_update) return aiming_lastangle = lastangle var/obj/item/projectile/beam/beam_rifle/hitscan/aiming_beam/P = new @@ -208,6 +210,7 @@ targloc = get_turf_in_angle(lastangle, curloc, 10) P.preparePixelProjectile(targloc, current_user, current_user.client.mouseParams, 0) P.fire(lastangle) + last_aimbeam = world.time /obj/item/gun/energy/beam_rifle/process() if(!aiming) @@ -296,27 +299,17 @@ if(istype(object, /obj/screen) && !istype(object, /obj/screen/click_catcher)) return process_aim() - if(aiming_time_left <= aiming_time_fire_threshold && check_user()) + if(aiming_time_left <= aiming_time_fire_threshold && check_user() && ((lastfire + delay) <= world.time)) sync_ammo() - afterattack(M.client.mouseObject, M, FALSE, M.client.mouseParams, passthrough = TRUE) + do_fire(M.client.mouseObject, M, FALSE, M.client.mouseParams, M.zone_selected) stop_aiming() QDEL_LIST(current_tracers) return ..() -/obj/item/gun/energy/beam_rifle/afterattack(atom/target, mob/living/user, flag, params, passthrough = FALSE) - if(flag) //It's adjacent, is the user, or is on the user's person - if(target in user.contents) //can't shoot stuff inside us. - return - if(!ismob(target) || user.a_intent == INTENT_HARM) //melee attack - return - if(target == user && user.zone_selected != BODY_ZONE_PRECISE_MOUTH) //so we can't shoot ourselves (unless mouth selected) - return - if(!passthrough && (aiming_time > aiming_time_fire_threshold)) - return - if(lastfire > world.time + delay) - return - lastfire = world.time +/obj/item/gun/energy/beam_rifle/do_fire(atom/target, mob/living/user, message = TRUE, params, zone_override = "", bonus_spread = 0) . = ..() + if(.) + lastfire = world.time stop_aiming() /obj/item/gun/energy/beam_rifle/proc/sync_ammo() diff --git a/code/modules/projectiles/guns/misc/chem_gun.dm b/code/modules/projectiles/guns/misc/chem_gun.dm index 9f8e92a8f8..3d400f0e16 100644 --- a/code/modules/projectiles/guns/misc/chem_gun.dm +++ b/code/modules/projectiles/guns/misc/chem_gun.dm @@ -9,7 +9,7 @@ throw_speed = 3 throw_range = 7 force = 4 - materials = list(MAT_METAL=2000) + custom_materials = list(/datum/material/iron=2000) clumsy_check = FALSE fire_sound = 'sound/items/syringeproj.ogg' var/time_per_syringe = 250 diff --git a/code/modules/projectiles/guns/misc/grenade_launcher.dm b/code/modules/projectiles/guns/misc/grenade_launcher.dm index 5a8c5a066e..6113bc4857 100644 --- a/code/modules/projectiles/guns/misc/grenade_launcher.dm +++ b/code/modules/projectiles/guns/misc/grenade_launcher.dm @@ -10,7 +10,7 @@ force = 5 var/list/grenades = new/list() var/max_grenades = 3 - materials = list(MAT_METAL=2000) + custom_materials = list(/datum/material/iron=2000) /obj/item/gun/grenadelauncher/examine(mob/user) . = ..() diff --git a/code/modules/projectiles/guns/misc/syringe_gun.dm b/code/modules/projectiles/guns/misc/syringe_gun.dm index 3a39d53d82..b3838751eb 100644 --- a/code/modules/projectiles/guns/misc/syringe_gun.dm +++ b/code/modules/projectiles/guns/misc/syringe_gun.dm @@ -7,7 +7,7 @@ throw_speed = 3 throw_range = 7 force = 4 - materials = list(MAT_METAL=2000) + custom_materials = list(/datum/material/iron=2000) clumsy_check = 0 fire_sound = 'sound/items/syringeproj.ogg' var/list/syringes = list() @@ -108,7 +108,7 @@ desc = "A compressed air gun, designed to fit medicinal darts for application of medicine for those patients just out of reach." icon_state = "dartgun" item_state = "dartgun" - materials = list(MAT_METAL=2000, MAT_GLASS=500) + custom_materials = list(/datum/material/iron=2000, /datum/material/glass=500) suppressed = TRUE //Softer fire sound can_unsuppress = FALSE diff --git a/code/modules/projectiles/pins.dm b/code/modules/projectiles/pins.dm index 0465a611cd..e754a9c070 100644 --- a/code/modules/projectiles/pins.dm +++ b/code/modules/projectiles/pins.dm @@ -23,6 +23,8 @@ if(proximity_flag) if(istype(target, /obj/item/gun)) var/obj/item/gun/G = target + if(G.no_pin_required) + return if(G.pin && (force_replace || G.pin.pin_removeable)) G.pin.forceMove(get_turf(G)) G.pin.gun_remove(user) @@ -69,13 +71,10 @@ if(gun) qdel(gun) - - /obj/item/firing_pin/magic name = "magic crystal shard" desc = "A small enchanted shard which allows magical weapons to fire." - // Test pin, works only near firing range. /obj/item/firing_pin/test_range name = "test-range firing pin" @@ -229,3 +228,16 @@ if(gun) gun.pin = null return ..() + +//Station Locked + +/obj/item/firing_pin/away + name = "station locked pin" + desc = "A firing pin that only will fire when off the station." + +/obj/item/firing_pin/away/pin_auth(mob/living/user) + var/area/station_area = get_area(src) + if(!station_area || is_station_level(station_area.z)) + to_chat(user, "The pin beeps, refusing to fire.") + return FALSE + return TRUE diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index a902c545b8..139f5a051c 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -52,7 +52,6 @@ var/hitscan = FALSE //Whether this is hitscan. If it is, speed is basically ignored. var/list/beam_segments //assoc list of datum/point or datum/point/vector, start = end. Used for hitscan effect generation. var/datum/point/beam_index - var/turf/hitscan_last //last turf touched during hitscanning. var/tracer_type var/muzzle_type var/impact_type @@ -90,6 +89,10 @@ var/decayedRange //stores original range var/reflect_range_decrease = 5 //amount of original range that falls off when reflecting, so it doesn't go forever var/is_reflectable = FALSE // Can it be reflected or not? + + /// factor to multiply by for zone accuracy percent. + var/zone_accuracy_factor = 1 + //Effects var/stun = 0 var/knockdown = 0 @@ -185,10 +188,6 @@ else new /obj/effect/temp_visual/dir_setting/bloodsplatter(target_loca, splatter_dir, bloodtype_to_color()) - if(iscarbon(L) && !HAS_TRAIT(L, TRAIT_NOMARROW)) - var/mob/living/carbon/C = L - C.bleed(damage) - else L.add_splatter_floor(target_loca) else if(impact_effect_type && !hitscan) new impact_effect_type(target_loca, hitx, hity) @@ -211,11 +210,8 @@ L.on_hit(src) var/reagent_note - if(reagents && reagents.reagent_list) - reagent_note = " REAGENTS:" - for(var/datum/reagent/R in reagents.reagent_list) - reagent_note += R.type + " (" - reagent_note += num2text(R.volume) + ") " + if(reagents) + reagent_note = reagents.log_list() if(ismob(firer)) log_combat(firer, L, "shot", src, reagent_note) @@ -253,7 +249,8 @@ return TRUE var/distance = get_dist(T, starting) // Get the distance between the turf shot from and the mob we hit and use that for the calculations. - def_zone = ran_zone(def_zone, max(100-(7*distance), 5)) //Lower accurancy/longer range tradeoff. 7 is a balanced number to use. + if(check_zone(def_zone) != BODY_ZONE_CHEST) + def_zone = ran_zone(def_zone, max(100-(7*distance), 5) * zone_accuracy_factor) //Lower accurancy/longer range tradeoff. 7 is a balanced number to use. if(isturf(A) && hitsound_wall) var/volume = CLAMP(vol_by_damage() + 20, 0, 100) @@ -494,8 +491,6 @@ process_homing() var/forcemoved = FALSE for(var/i in 1 to SSprojectiles.global_iterations_per_move) - if(QDELETED(src)) - return trajectory.increment(trajectory_multiplier) var/turf/T = trajectory.return_turf() if(!istype(T)) @@ -508,14 +503,16 @@ forceMove(T) trajectory_ignore_forcemove = FALSE after_z_change(old, loc) + forcemoved = TRUE + if(QDELETED(src)) + return if(!hitscanning) pixel_x = trajectory.return_px() pixel_y = trajectory.return_py() - forcemoved = TRUE - hitscan_last = loc else if(T != loc) step_towards(src, T) - hitscan_last = loc + if(QDELETED(src)) + return if(!hitscanning && !forcemoved) pixel_x = trajectory.return_px() - trajectory.mpx * trajectory_multiplier * SSprojectiles.global_iterations_per_move pixel_y = trajectory.return_py() - trajectory.mpy * trajectory_multiplier * SSprojectiles.global_iterations_per_move diff --git a/code/modules/projectiles/projectile/bullets/dart_syringe.dm b/code/modules/projectiles/projectile/bullets/dart_syringe.dm index 3f418df75b..b5a9eb8d69 100644 --- a/code/modules/projectiles/projectile/bullets/dart_syringe.dm +++ b/code/modules/projectiles/projectile/bullets/dart_syringe.dm @@ -6,7 +6,7 @@ /obj/item/projectile/bullet/dart/Initialize() . = ..() - create_reagents(50, NO_REACT) + create_reagents(50, NO_REACT, NO_REAGENTS_VALUE) /obj/item/projectile/bullet/dart/on_hit(atom/target, blocked = FALSE, skip = FALSE) if(iscarbon(target)) diff --git a/code/modules/projectiles/projectile/bullets/shotgun.dm b/code/modules/projectiles/projectile/bullets/shotgun.dm index 02ec167b80..c28d85511e 100644 --- a/code/modules/projectiles/projectile/bullets/shotgun.dm +++ b/code/modules/projectiles/projectile/bullets/shotgun.dm @@ -61,7 +61,7 @@ /obj/item/projectile/bullet/pellet/shotgun_buckshot name = "buckshot pellet" - damage = 10 + damage = 12.5 /obj/item/projectile/bullet/pellet/shotgun_rubbershot name = "rubbershot pellet" diff --git a/code/modules/projectiles/projectile/bullets/sniper.dm b/code/modules/projectiles/projectile/bullets/sniper.dm index bea5dbc140..5e3ae53806 100644 --- a/code/modules/projectiles/projectile/bullets/sniper.dm +++ b/code/modules/projectiles/projectile/bullets/sniper.dm @@ -7,6 +7,7 @@ knockdown = 100 dismemberment = 50 armour_penetration = 50 + zone_accuracy_factor = 100 //guarunteed 100% var/breakthings = TRUE /obj/item/projectile/bullet/p50/on_hit(atom/target, blocked = 0) diff --git a/code/modules/projectiles/projectile/energy/stun.dm b/code/modules/projectiles/projectile/energy/stun.dm index 88e70154d1..3bb1b3794e 100644 --- a/code/modules/projectiles/projectile/energy/stun.dm +++ b/code/modules/projectiles/projectile/energy/stun.dm @@ -2,11 +2,11 @@ name = "electrode" icon_state = "spark" color = "#FFFF00" - nodamage = 1 + nodamage = TRUE knockdown = 60 knockdown_stamoverride = 36 knockdown_stam_max = 50 - stutter = 5 + stutter = 10 jitter = 20 hitsound = 'sound/weapons/taserhit.ogg' range = 7 @@ -14,6 +14,7 @@ muzzle_type = /obj/effect/projectile/muzzle/stun impact_type = /obj/effect/projectile/impact/stun var/tase_duration = 50 + var/strong_tase = TRUE /obj/item/projectile/energy/electrode/on_hit(atom/target, blocked = FALSE) . = ..() @@ -26,10 +27,24 @@ C.IgniteMob() if(C.dna && C.dna.check_mutation(HULK)) C.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ), forced = "hulk") - else if((C.status_flags & CANKNOCKDOWN) && !HAS_TRAIT(C, TRAIT_STUNIMMUNE)) - C.apply_status_effect(STATUS_EFFECT_TASED, tase_duration) + else if(tase_duration && (C.status_flags & CANKNOCKDOWN) && !HAS_TRAIT(C, TRAIT_STUNIMMUNE)) + C.apply_status_effect(strong_tase? STATUS_EFFECT_TASED : STATUS_EFFECT_TASED_WEAK, tase_duration) addtimer(CALLBACK(C, /mob/living/carbon.proc/do_jitter_animation, jitter), 5) /obj/item/projectile/energy/electrode/on_range() //to ensure the bolt sparks when it reaches the end of its range if it didn't hit a target yet do_sparks(1, TRUE, src) ..() + +/obj/item/projectile/energy/electrode/security + tase_duration = 30 + knockdown = 0 + stamina = 10 + knockdown_stamoverride = 0 + knockdown_stam_max = 0 + strong_tase = FALSE + range = 12 + +/obj/item/projectile/energy/electrode/security/hos + knockdown = 100 + knockdown_stamoverride = 30 + knockdown_stam_max = null diff --git a/code/modules/projectiles/projectile/energy/tesla.dm b/code/modules/projectiles/projectile/energy/tesla.dm index 43c31816cd..2439cee429 100644 --- a/code/modules/projectiles/projectile/energy/tesla.dm +++ b/code/modules/projectiles/projectile/energy/tesla.dm @@ -7,10 +7,11 @@ var/zap_range = 3 var/power = 10000 -/obj/item/projectile/energy/tesla/fire(setAngle) - if(firer) - chain = firer.Beam(src, icon_state = "lightning[rand(1, 12)]", time = INFINITY, maxdistance = INFINITY) - ..() +/obj/item/projectile/energy/tesla/fire(setAngle, atom/direct_target) + var/atom/source = fired_from || firer + if(source) + chain = source.Beam(src, icon_state = "lightning[rand(1, 12)]", time = INFINITY, maxdistance = INFINITY) + return ..() /obj/item/projectile/energy/tesla/on_hit(atom/target) . = ..() diff --git a/code/modules/projectiles/projectile/reusable/arrow.dm b/code/modules/projectiles/projectile/reusable/arrow.dm new file mode 100644 index 0000000000..d00de79eb1 --- /dev/null +++ b/code/modules/projectiles/projectile/reusable/arrow.dm @@ -0,0 +1,25 @@ +/obj/item/projectile/bullet/reusable/arrow + name = "wooden arrow" + desc = "Woosh!" + damage = 15 + icon_state = "arrow" + ammo_type = /obj/item/ammo_casing/caseless/arrow + +/obj/item/projectile/bullet/reusable/arrow/ashen + name = "ashen arrow" + desc = "Fire harderned arrow." + damage = 25 + ammo_type = /obj/item/ammo_casing/caseless/arrow/ashen + +/obj/item/projectile/bullet/reusable/arrow/bone //AP for ashwalkers + name = "bone arrow" + desc = "Arrow made of bone and sinew." + damage = 35 + armour_penetration = 40 + ammo_type = /obj/item/ammo_casing/caseless/arrow/bone + +/obj/item/projectile/bullet/reusable/arrow/bronze //Just some AP shots + name = "bronze arrow" + desc = "Bronze tipped arrow." + armour_penetration = 10 + ammo_type = /obj/item/ammo_casing/caseless/arrow/bronze diff --git a/code/modules/projectiles/projectile/special/gravity.dm b/code/modules/projectiles/projectile/special/gravity.dm index 0ef9bc6653..ba21ecb28c 100644 --- a/code/modules/projectiles/projectile/special/gravity.dm +++ b/code/modules/projectiles/projectile/special/gravity.dm @@ -1,90 +1,65 @@ -/obj/item/projectile/gravityrepulse +/obj/item/projectile/gravity + name = "gravity bolt" + icon = 'icons/effects/effects.dmi' + icon_state = "chronofield" + hitsound = 'sound/weapons/wave.ogg' + damage = 0 + damage_type = BRUTE + nodamage = TRUE + var/power = 4 + var/list/thrown = list() //normally we wouldn't need this but incase on_hit is called multiple times, yeah.. this is a good idea. + +/obj/item/projectile/gravity/Initialize(mapload) + . = ..() + var/obj/item/ammo_casing/energy/gravity/G = loc + if(istype(G)) + power = min(G.gun.power, 15) + +/obj/item/projectile/gravity/on_hit() + . = ..() + var/turf/T = get_turf(src) + var/list/tothrow = list() + var/list/cachedrange = range(T, power) + for(var/mob/M in cachedrange) + tothrow += M + for(var/obj/O in cachedrange) + tothrow += O + var/safety = 50 + for(var/i in tothrow) + if(!safety) + break + var/atom/movable/AM = i + if((AM == src) || (AM == firer) || (AM.move_resist > MOVE_FORCE_EXTREMELY_STRONG) || AM.anchored || thrown[AM]) + continue + thrown[AM] = TRUE + safety-- + var/target = get_target(T, AM) + if(!target) + return FALSE + AM.throw_at(target, power + 1, 1) + for(var/turf/F in range(T,power)) + new /obj/effect/temp_visual/gravpush(F) + +/obj/item/projectile/gravity/proc/get_target(turf/origin, atom/movable/AM) + return origin + +/obj/item/projectile/gravity/repulse name = "repulsion bolt" - icon = 'icons/effects/effects.dmi' - icon_state = "chronofield" - hitsound = 'sound/weapons/wave.ogg' - damage = 0 - damage_type = BRUTE - nodamage = 1 color = "#33CCFF" - var/turf/T - var/power = 4 - var/list/thrown_items = list() -/obj/item/projectile/gravityrepulse/Initialize() - . = ..() - var/obj/item/ammo_casing/energy/gravity/repulse/C = loc - if(istype(C)) //Hard-coded maximum power so servers can't be crashed by trying to throw the entire Z level's items - power = min(C.gun.power, 15) +/obj/item/projectile/gravity/repulse/get_target(turf/origin, atom/movable/AM) + return get_turf_in_angle(Get_Angle(origin, AM), origin, power) -/obj/item/projectile/gravityrepulse/on_hit() - . = ..() - T = get_turf(src) - for(var/atom/movable/A in range(T, power)) - if(A == src || (firer && A == src.firer) || A.anchored || thrown_items[A]) - continue - var/throwtarget = get_edge_target_turf(src, get_dir(src, get_step_away(A, src))) - A.throw_at(throwtarget,power+1,1) - thrown_items[A] = A - for(var/turf/F in range(T,power)) - new /obj/effect/temp_visual/gravpush(F) - -/obj/item/projectile/gravityattract +/obj/item/projectile/gravity/attract name = "attraction bolt" - icon = 'icons/effects/effects.dmi' - icon_state = "chronofield" - hitsound = 'sound/weapons/wave.ogg' - damage = 0 - damage_type = BRUTE - nodamage = 1 color = "#FF6600" - var/turf/T - var/power = 4 - var/list/thrown_items = list() -/obj/item/projectile/gravityattract/Initialize() - . = ..() - var/obj/item/ammo_casing/energy/gravity/attract/C = loc - if(istype(C)) //Hard-coded maximum power so servers can't be crashed by trying to throw the entire Z level's items - power = min(C.gun.power, 15) +/obj/item/projectile/gravity/attract/get_target(turf/origin, atom/movable/AM) + return origin -/obj/item/projectile/gravityattract/on_hit() - . = ..() - T = get_turf(src) - for(var/atom/movable/A in range(T, power)) - if(A == src || (firer && A == src.firer) || A.anchored || thrown_items[A]) - continue - A.throw_at(T, power+1, 1) - thrown_items[A] = A - for(var/turf/F in range(T,power)) - new /obj/effect/temp_visual/gravpush(F) - -/obj/item/projectile/gravitychaos +/obj/item/projectile/gravity/chaos name = "gravitational blast" - icon = 'icons/effects/effects.dmi' - icon_state = "chronofield" - hitsound = 'sound/weapons/wave.ogg' - damage = 0 - damage_type = BRUTE - nodamage = 1 color = "#101010" - var/turf/T - var/power = 4 - var/list/thrown_items = list() -/obj/item/projectile/gravitychaos/Initialize() - . = ..() - var/obj/item/ammo_casing/energy/gravity/chaos/C = loc - if(istype(C)) //Hard-coded maximum power so servers can't be crashed by trying to throw the entire Z level's items - power = min(C.gun.power, 15) - -/obj/item/projectile/gravitychaos/on_hit() - . = ..() - T = get_turf(src) - for(var/atom/movable/A in range(T, power)) - if(A == src|| (firer && A == src.firer) || A.anchored || thrown_items[A]) - continue - A.throw_at(get_edge_target_turf(A, pick(GLOB.cardinals)), power+1, 1) - thrown_items[A] = A - for(var/turf/Z in range(T,power)) - new /obj/effect/temp_visual/gravpush(Z) +/obj/item/projectile/gravity/chaos/get_target(turf/origin, atom/movable/AM) + return get_turf_in_angle(rand(0, 359), origin, power) diff --git a/code/modules/projectiles/projectile/special/rocket.dm b/code/modules/projectiles/projectile/special/rocket.dm index 0cee20dd53..df417ad734 100644 --- a/code/modules/projectiles/projectile/special/rocket.dm +++ b/code/modules/projectiles/projectile/special/rocket.dm @@ -43,4 +43,34 @@ explosion(target, 0, 1, 2, 4) else explosion(target, 0, 0, 2, 4) - return BULLET_ACT_HIT \ No newline at end of file + return BULLET_ACT_HIT + +/obj/item/projectile/bullet/a84mm_br + name ="\improper HE missile" + desc = "Boom." + icon_state = "missile" + damage = 30 + ricochets_max = 0 //it's a MISSILE + var/sturdy = list( + /turf/closed, + /obj/mecha, + /obj/machinery/door/, + /obj/machinery/door/poddoor/shutters + ) + +/obj/item/broken_missile + name = "\improper broken missile" + desc = "A missile that did not detonate. The tail has snapped and it is in no way fit to be used again." + icon = 'icons/obj/projectiles.dmi' + icon_state = "missile_broken" + w_class = WEIGHT_CLASS_TINY + + +/obj/item/projectile/bullet/a84mm_br/on_hit(atom/target, blocked=0) + ..() + for(var/i in sturdy) + if(istype(target, i)) + explosion(target, 0, 1, 1, 2) + return BULLET_ACT_HIT + //if(istype(target, /turf/closed) || ismecha(target)) + new /obj/item/broken_missile(get_turf(src), 1) \ No newline at end of file diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index 95e104ba68..8635626209 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -61,8 +61,9 @@ var/reactedVol = 0 //how much of the reagent is reacted during a fermireaction var/fermiIsReacting = FALSE //that prevents multiple reactions from occurring (i.e. add_reagent calls to process_reactions(), this stops any extra reactions.) var/fermiReactID //instance of the chem reaction used during a fermireaction, kept here so it's cache isn't lost between loops/procs. + var/value_multiplier = DEFAULT_REAGENTS_VALUE //used for cargo reagents selling. -/datum/reagents/New(maximum=100, new_flags) +/datum/reagents/New(maximum=100, new_flags = NONE, new_value = DEFAULT_REAGENTS_VALUE) maximum_volume = maximum //I dislike having these here but map-objects are initialised before world/New() is called. >_> @@ -72,9 +73,12 @@ build_chemical_reactions_list() reagents_holder_flags = new_flags + value_multiplier = new_value /datum/reagents/Destroy() . = ..() + //We're about to delete all reagents, so lets cleanup + addiction_list.Cut() var/list/cached_reagents = reagent_list for(var/reagent in cached_reagents) var/datum/reagent/R = reagent @@ -330,9 +334,7 @@ if(R.addiction_stage3_end to R.addiction_stage4_end) need_mob_update += R.addiction_act_stage4(C) if(R.addiction_stage4_end to INFINITY) - to_chat(C, "You feel like you've gotten over your need for [R.name].") - SEND_SIGNAL(C, COMSIG_CLEAR_MOOD_EVENT, "[R.type]_addiction") - cached_addictions.Remove(R) + remove_addiction(R) else SEND_SIGNAL(C, COMSIG_CLEAR_MOOD_EVENT, "[R.type]_overdose") addiction_tick++ @@ -342,6 +344,12 @@ C.update_stamina() update_total() +/datum/reagents/proc/remove_addiction(datum/reagent/R) + to_chat(my_atom, "You feel like you've gotten over your need for [R.name].") + SEND_SIGNAL(my_atom, COMSIG_CLEAR_MOOD_EVENT, "[R.type]_overdose") + addiction_list.Remove(R) + qdel(R) + //Signals that metabolization has stopped, triggering the end of trait-based effects /datum/reagents/proc/end_metabolization(mob/living/carbon/C, keep_liverless = TRUE) var/list/cached_reagents = reagent_list @@ -760,6 +768,8 @@ R.metabolizing = FALSE R.on_mob_end_metabolize(M) R.on_mob_delete(M) + //Clear from relevant lists + addiction_list -= R qdel(R) reagent_list -= R update_total() @@ -1147,10 +1157,10 @@ // Convenience proc to create a reagents holder for an atom // Max vol is maximum volume of holder -/atom/proc/create_reagents(max_vol, flags) +/atom/proc/create_reagents(max_vol, flags, new_value) if(reagents) qdel(reagents) - reagents = new/datum/reagents(max_vol, flags) + reagents = new/datum/reagents(max_vol, flags, new_value) reagents.my_atom = src /proc/get_random_reagent_id() // Returns a random reagent type minus blacklisted reagents diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index 0abdc9a739..be15bb70cf 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -270,7 +270,7 @@ if(!is_operational() || recording_recipe) return var/amount = text2num(params["amount"]) - if(beaker && amount in beaker.possible_transfer_amounts) + if(beaker && (amount in beaker.possible_transfer_amounts)) beaker.reagents.remove_all(amount) work_animation() . = TRUE @@ -319,7 +319,7 @@ if(!is_operational()) return var/name = stripped_input(usr,"Name","What do you want to name this recipe?", "Recipe", MAX_NAME_LEN) - if(!usr.canUseTopic(src, !issilicon(usr))) + if(!usr.canUseTopic(src, !hasSiliconAccessInArea(usr))) return if(saved_recipes[name] && alert("\"[name]\" already exists, do you want to overwrite it?",, "Yes", "No") == "No") return @@ -408,7 +408,7 @@ if(beaker) var/obj/item/reagent_containers/B = beaker B.forceMove(drop_location()) - if(user && Adjacent(user) && !issiliconoradminghost(user)) + if(user && Adjacent(user) && user.can_hold_items()) user.put_in_hands(B) if(new_beaker) beaker = new_beaker diff --git a/code/modules/reagents/chemistry/machinery/chem_heater.dm b/code/modules/reagents/chemistry/machinery/chem_heater.dm index 189d09b06f..4c4d0fdb6e 100644 --- a/code/modules/reagents/chemistry/machinery/chem_heater.dm +++ b/code/modules/reagents/chemistry/machinery/chem_heater.dm @@ -38,7 +38,7 @@ /obj/machinery/chem_heater/proc/replace_beaker(mob/living/user, obj/item/reagent_containers/new_beaker) if(beaker) beaker.forceMove(drop_location()) - if(user && Adjacent(user) && !issiliconoradminghost(user)) + if(user && Adjacent(user) && user.can_hold_items()) user.put_in_hands(beaker) if(new_beaker) beaker = new_beaker diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index 44148c85a7..abfd00ed90 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -129,7 +129,7 @@ if(beaker) var/obj/item/reagent_containers/B = beaker B.forceMove(drop_location()) - if(user && Adjacent(user) && !issiliconoradminghost(user)) + if(user && Adjacent(user) && user.can_hold_items()) user.put_in_hands(B) if(new_beaker) beaker = new_beaker @@ -139,7 +139,7 @@ if(bottle) var/obj/item/storage/pill_bottle/B = bottle B.forceMove(drop_location()) - if(user && Adjacent(user) && !issiliconoradminghost(user)) + if(user && Adjacent(user) && user.can_hold_items()) user.put_in_hands(B) else adjust_item_drop_location(B) @@ -261,7 +261,7 @@ 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, !issilicon(usr))) + if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !hasSiliconAccessInArea(usr))) return var/obj/item/reagent_containers/pill/P var/target_loc = drop_location() @@ -288,7 +288,7 @@ 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, !issilicon(usr))) + 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()) @@ -314,7 +314,7 @@ 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, !issilicon(usr))) + if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !hasSiliconAccessInArea(usr))) return var/obj/item/reagent_containers/pill/P @@ -332,7 +332,7 @@ 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, !issilicon(usr))) + 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 @@ -345,7 +345,7 @@ 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, !issilicon(usr))) + if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !hasSiliconAccessInArea(usr))) return var/obj/item/reagent_containers/glass/bottle/P @@ -373,7 +373,7 @@ 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, !issilicon(usr))) + if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !hasSiliconAccessInArea(usr))) return var/obj/item/reagent_containers/glass/bottle/vial/small/P @@ -408,7 +408,7 @@ 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, !issilicon(usr))) + if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !hasSiliconAccessInArea(usr))) return var/obj/item/reagent_containers/syringe/dart/D diff --git a/code/modules/reagents/chemistry/machinery/pandemic.dm b/code/modules/reagents/chemistry/machinery/pandemic.dm index bba5371ef8..7b25aa769d 100644 --- a/code/modules/reagents/chemistry/machinery/pandemic.dm +++ b/code/modules/reagents/chemistry/machinery/pandemic.dm @@ -170,7 +170,7 @@ if(!A.mutable) return if(A) - var/new_name = stripped_input(usr, "Name the disease", "New name", "", MAX_NAME_LEN) + var/new_name = sanitize_name(html_encode(params["name"])) if(!new_name || ..()) return A.AssignName(new_name) @@ -181,27 +181,30 @@ if(!istype(A) || !A.mutable) to_chat(usr, "ERROR: Cannot replicate virus strain.") return + wait = TRUE + addtimer(CALLBACK(src, .proc/reset_replicator_cooldown), 50) A = A.Copy() var/list/data = list("blood_DNA" = "UNKNOWN DNA", "blood_type" = "SY", "viruses" = list(A)) var/obj/item/reagent_containers/glass/bottle/B = new(drop_location()) B.name = "[A.name] culture bottle" B.desc = "A small bottle. Contains [A.agent] culture in synthblood medium." - B.reagents.add_reagent(/datum/reagent/blood, 20, data) - wait = TRUE + B.reagents.add_reagent(/datum/reagent/blood/synthetics, 10, data) update_icon() var/turf/source_turf = get_turf(src) log_virus("A culture bottle was printed for the virus [A.admin_details()] at [loc_name(source_turf)] by [key_name(usr)]") - addtimer(CALLBACK(src, .proc/reset_replicator_cooldown), 50) + . = TRUE if("create_vaccine_bottle") + wait = TRUE + addtimer(CALLBACK(src, .proc/reset_replicator_cooldown), 400) var/id = params["index"] var/datum/disease/D = SSdisease.archive_diseases[id] var/obj/item/reagent_containers/glass/bottle/B = new(drop_location()) B.name = "[D.name] vaccine bottle" B.reagents.add_reagent(/datum/reagent/vaccine, 15, list(id)) - wait = TRUE + update_icon() - addtimer(CALLBACK(src, .proc/reset_replicator_cooldown), 200) + . = TRUE /obj/machinery/computer/pandemic/attackby(obj/item/I, mob/user, params) @@ -226,7 +229,7 @@ /obj/machinery/computer/pandemic/proc/replace_beaker(mob/living/user, obj/item/reagent_containers/new_beaker) if(beaker) - if(user && Adjacent(user) && !issiliconoradminghost(user)) + if(user && Adjacent(user) && user.can_hold_items()) if(!user.put_in_hands(beaker)) beaker.forceMove(drop_location()) if(new_beaker) diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm index 7e1b7ec018..85cdc33e72 100644 --- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm +++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm @@ -75,7 +75,7 @@ /obj/machinery/reagentgrinder/proc/replace_beaker(mob/living/user, obj/item/reagent_containers/new_beaker) if(beaker) beaker.forceMove(drop_location()) - if(user && Adjacent(user) && !issiliconoradminghost(user)) + if(user && Adjacent(user) && user.can_hold_items()) user.put_in_hands(beaker) if(new_beaker) beaker = new_beaker @@ -142,7 +142,7 @@ /obj/machinery/reagentgrinder/ui_interact(mob/user) // The microwave Menu //I am reasonably certain that this is not a microwave . = ..() - if(operating || !user.canUseTopic(src, !issilicon(user))) + if(operating || !user.canUseTopic(src, !hasSiliconAccessInArea(user))) return var/list/options = list() @@ -170,10 +170,10 @@ for(var/key in options) choice = key else - choice = show_radial_menu(user, src, options, require_near = !issilicon(user)) + choice = show_radial_menu(user, src, options, require_near = !hasSiliconAccessInArea(user)) // post choice verification - if(operating || (isAI(user) && stat & NOPOWER) || !user.canUseTopic(src, !issilicon(user))) + if(operating || (isAI(user) && stat & NOPOWER) || !user.canUseTopic(src, !hasSiliconAccessInArea(user))) return switch(choice) @@ -190,7 +190,7 @@ /obj/machinery/reagentgrinder/examine(mob/user) . = ..() - if(!in_range(user, src) && !issilicon(user) && !isobserver(user)) + if(!in_range(user, src) && !hasSiliconAccessInArea(user) && !isobserver(user)) . += "You're too far away to examine [src]'s contents and display!" return diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index 810124b2ba..4b65776ce9 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -551,7 +551,7 @@ All effects don't start immediately, but rather get worse over time; the rate is value = 1 /datum/reagent/consumable/ethanol/screwdrivercocktail/on_mob_life(mob/living/carbon/M) - if(M.mind && M.mind.assigned_role in list("Station Engineer", "Atmospheric Technician", "Chief Engineer")) //Engineers lose radiation poisoning at a massive rate. + if(M.mind && (M.mind.assigned_role in list("Station Engineer", "Atmospheric Technician", "Chief Engineer"))) //Engineers lose radiation poisoning at a massive rate. M.radiation = max(M.radiation - 25, 0) return ..() @@ -725,11 +725,15 @@ All effects don't start immediately, but rather get worse over time; the rate is var/dorf_mode /datum/reagent/consumable/ethanol/manly_dorf/on_mob_metabolize(mob/living/M) + var/real_dorf = isdwarf(M) //_species(H, /datum/species/dwarf) if(ishuman(M)) var/mob/living/carbon/human/H = M - if(H.dna.check_mutation(DWARFISM) || HAS_TRAIT(H, TRAIT_ALCOHOL_TOLERANCE)) + if(H.dna.check_mutation(DWARFISM) || HAS_TRAIT(H, TRAIT_ALCOHOL_TOLERANCE) || real_dorf) to_chat(H, "Now THAT is MANLY!") - boozepwr = 5 //We've had worse in the mines + if(real_dorf) + boozepwr = 100 // Don't want dwarves to die because of a low booze power + else + boozepwr = 5 //We've had worse in the mines dorf_mode = TRUE /datum/reagent/consumable/ethanol/manly_dorf/on_mob_life(mob/living/carbon/M) @@ -1509,6 +1513,23 @@ All effects don't start immediately, but rather get worse over time; the rate is M.stuttering = min(M.stuttering + 3, 3) ..() +/datum/reagent/consumable/ethanol/cogchamp + name = "CogChamp" + description = "Now you can fill yourself with the power of Ratvar!" + color = rgb(255, 201, 49) + boozepwr = 10 + quality = DRINK_FANTASTIC + taste_description = "a brass taste with a hint of oil" + glass_icon_state = "cogchamp" + glass_name = "CogChamp" + glass_desc = "Not even Ratvar's Four Generals could withstand this! Qevax Jryy!" + value = 8.13 + +/datum/reagent/consumable/ethanol/cogchamp/on_mob_life(mob/living/carbon/M) + M.clockcultslurring = min(M.clockcultslurring + 3, 3) + M.stuttering = min(M.stuttering + 3, 3) + ..() + /datum/reagent/consumable/ethanol/triple_sec name = "Triple Sec" description = "A sweet and vibrant orange liqueur." diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index b6cb387b81..52eee9f8ea 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -383,7 +383,7 @@ name = "Hot Chocolate" description = "Made with love! And coco beans." nutriment_factor = 3 * REAGENTS_METABOLISM - color = "#403010" // rgb: 64, 48, 16 + color = "#660000" // rgb: 221, 202, 134 taste_description = "creamy chocolate" glass_icon_state = "chocolateglass" glass_name = "glass of chocolate" diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index e8913f9ce4..0a040a4f17 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -994,7 +994,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/stimulants/on_mob_metabolize(mob/living/L) ..() - L.add_movespeed_modifier(type, update=TRUE, priority=100, multiplicative_slowdown=-1, blacklisted_movetypes=(FLYING|FLOATING)) + L.add_movespeed_modifier(type, update=TRUE, priority=100, multiplicative_slowdown=-0.5, blacklisted_movetypes=(FLYING|FLOATING)) /datum/reagent/medicine/stimulants/on_mob_end_metabolize(mob/living/L) L.remove_movespeed_modifier(type) @@ -1482,14 +1482,14 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/polypyr //This is intended to be an ingredient in advanced chems. name = "Polypyrylium Oligomers" - description = "A�purple mixture of short polyelectrolyte chains not easily synthesized in the laboratory. It is valued as an intermediate in the synthesis of the cutting edge pharmaceuticals." + description = "A purple mixture of short polyelectrolyte chains not easily synthesized in the laboratory. It is valued as an intermediate in the synthesis of the cutting edge pharmaceuticals." reagent_state = SOLID color = "#9423FF" metabolization_rate = 0.25 * REAGENTS_METABOLISM overdose_threshold = 50 taste_description = "numbing bitterness" -/datum/reagent/medicine/polypyr/on_mob_life(mob/living/carbon/M) //I w�nted a collection of small positive effects, this is as hard to obtain as coniine after all. +/datum/reagent/medicine/polypyr/on_mob_life(mob/living/carbon/M) //I wanted a collection of small positive effects, this is as hard to obtain as coniine after all. M.adjustOrganLoss(ORGAN_SLOT_LUNGS, -0.25) M.adjustBruteLoss(-0.35, 0) if(prob(50)) @@ -1511,4 +1511,3 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) M.adjustOrganLoss(ORGAN_SLOT_LUNGS, 0.5) ..() . = 1 - diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index c7e574594b..adc30ecdc9 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -93,8 +93,6 @@ taste_description = "something spicy" pH = 6.85 - - /datum/reagent/blood/on_merge(list/mix_data) if(data && mix_data) if(data["blood_DNA"] != mix_data["blood_DNA"]) @@ -131,16 +129,10 @@ /datum/reagent/blood/synthetics data = list("donor"=null,"viruses"=null,"blood_DNA"="REPLICATED", "bloodcolor" = BLOOD_COLOR_SYNTHETIC, "blood_type"="SY","resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null) name = "Synthetic Blood" + description = "A synthetically produced imitation of blood." taste_description = "oily" color = BLOOD_COLOR_SYNTHETIC // rgb: 11, 7, 48 -/datum/reagent/blood/lizard - data = list("donor"=null,"viruses"=null,"blood_DNA"=null, "bloodcolor" = BLOOD_COLOR_LIZARD, "blood_type"="L","resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null) - name = "Lizard Blood" - taste_description = "spicy" - color = BLOOD_COLOR_LIZARD // rgb: 11, 7, 48 - pH = 6.85 - /datum/reagent/blood/jellyblood data = list("donor"=null,"viruses"=null,"blood_DNA"=null, "bloodcolor" = BLOOD_COLOR_SLIME, "blood_type"="GEL","resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null) name = "Slime Jelly Blood" @@ -150,29 +142,6 @@ taste_mult = 1.3 pH = 4 -/datum/reagent/blood/xenomorph - data = list("donor"=null,"viruses"=null,"blood_DNA"=null, "bloodcolor" = BLOOD_COLOR_XENO, "blood_type"="X*","resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null) - name = "Xenomorph Blood" - taste_description = "acidic heresy" - color = BLOOD_COLOR_XENO // greenish yellow ooze - shot_glass_icon_state = "shotglassgreen" - pH = 2.5 - -/datum/reagent/blood/oil - data = list("donor"=null,"viruses"=null,"blood_DNA"=null, "bloodcolor" = BLOOD_COLOR_OIL, "blood_type"="HF","resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null) - name = "Hydraulic Blood" - taste_description = "burnt oil" - color = BLOOD_COLOR_OIL // dark, y'know, expected batman colors. - pH = 9.75 - -/datum/reagent/blood/insect - data = list("donor"=null,"viruses"=null,"blood_DNA"=null, "bloodcolor" = BLOOD_COLOR_BUG, "blood_type"="BUG","resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null) - name = "Insectoid Blood" - taste_description = "waxy" - color = BLOOD_COLOR_BUG // Bug colored, I guess. - pH = 7.25 - - /datum/reagent/blood/jellyblood/on_mob_life(mob/living/carbon/M) if(prob(10)) if(M.dna?.species?.exotic_bloodtype != "GEL") @@ -338,8 +307,8 @@ /datum/reagent/water/holywater/on_mob_life(mob/living/carbon/M) if(!data) - data = 1 - data++ + data = list("misc" = 1) + data["misc"]++ M.jitteriness = min(M.jitteriness+4,10) if(iscultist(M)) for(var/datum/action/innate/cult/blood_magic/BM in M.actions) @@ -348,7 +317,7 @@ to_chat(M, "Your blood rites falter as holy water scours your body!") for(var/datum/action/innate/cult/blood_spell/BS in BM.spells) qdel(BS) - if(data >= 25) // 10 units, 45 seconds @ metabolism 0.4 units & tick rate 1.8 sec + if(data["misc"] >= 25) // 10 units, 45 seconds @ metabolism 0.4 units & tick rate 1.8 sec if(!M.stuttering) M.stuttering = 1 M.stuttering = min(M.stuttering+4, 10) @@ -369,7 +338,7 @@ "You can't save him. Nothing can save him now", "It seems that Nar'Sie will triumph after all")].") if("emote") M.visible_message("[M] [pick("whimpers quietly", "shivers as though cold", "glances around in paranoia")].") - if(data >= 60) // 30 units, 135 seconds + if(data["misc"] >= 60) // 30 units, 135 seconds if(iscultist(M) || is_servant_of_ratvar(M)) if(iscultist(M)) SSticker.mode.remove_cultist(M.mind, FALSE, TRUE) @@ -770,7 +739,7 @@ ..() if(!istype(H)) return - if(!H.dna || !H.dna.species || !(MOB_ORGANIC in H.mob_biotypes)) + if(!H.dna || !H.dna.species || !(H.mob_biotypes & MOB_ORGANIC)) return if(isjellyperson(H)) @@ -2139,3 +2108,10 @@ to_chat(M, "You feel like playing with your [G.name]!") ..() + +/datum/reagent/preservahyde + name = "Preservahyde" + description = "A powerful preservation agent, utilizing the preservative effects of formaldehyde with significantly less of the histamine." + reagent_state = LIQUID + color = "#f7685e" + metabolization_rate = REAGENTS_METABOLISM * 0.25 diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index a32cb94401..946cb1307c 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -260,7 +260,7 @@ /datum/reagent/toxin/pestkiller/reaction_mob(mob/living/M, method=TOUCH, reac_volume) ..() - if(MOB_BUG in M.mob_biotypes) + if(M.mob_biotypes & MOB_BUG) var/damage = min(round(0.4*reac_volume, 0.1),10) M.adjustToxLoss(damage) @@ -504,7 +504,7 @@ toxpwr = 0 /datum/reagent/toxin/itching_powder/reaction_mob(mob/living/M, method=TOUCH, reac_volume) - if(method == TOUCH || method == VAPOR) + if((method == TOUCH || method == VAPOR) && M.reagents) M.reagents.add_reagent(/datum/reagent/toxin/itching_powder, reac_volume) /datum/reagent/toxin/itching_powder/on_mob_life(mob/living/carbon/M) diff --git a/code/modules/reagents/chemistry/recipes/medicine.dm b/code/modules/reagents/chemistry/recipes/medicine.dm index a07e7697bc..0b32952d20 100644 --- a/code/modules/reagents/chemistry/recipes/medicine.dm +++ b/code/modules/reagents/chemistry/recipes/medicine.dm @@ -68,6 +68,10 @@ results = list(/datum/reagent/medicine/synthflesh = 3) required_reagents = list(/datum/reagent/blood = 1, /datum/reagent/carbon = 1, /datum/reagent/medicine/styptic_powder = 1) +/datum/chemical_reaction/synthflesh/synthblood + id = "synthflesh_2" + required_reagents = list(/datum/reagent/blood/synthetics = 1, /datum/reagent/carbon = 1, /datum/reagent/medicine/styptic_powder = 1) + /datum/chemical_reaction/synthtissue name = "Synthtissue" id = /datum/reagent/synthtissue diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm index b463b5758b..57748acb1a 100644 --- a/code/modules/reagents/chemistry/recipes/others.dm +++ b/code/modules/reagents/chemistry/recipes/others.dm @@ -47,6 +47,12 @@ results = list(/datum/reagent/consumable/sodiumchloride = 3) required_reagents = list(/datum/reagent/water = 1, /datum/reagent/sodium = 1, /datum/reagent/chlorine = 1) +/datum/chemical_reaction/preservahyde + name = "Preservahyde" + id = "preservahyde" + results = list(/datum/reagent/preservahyde = 3) + required_reagents = list(/datum/reagent/water = 1, /datum/reagent/toxin/formaldehyde = 1, /datum/reagent/bromine = 1) + /datum/chemical_reaction/plasmasolidification name = "Solid Plasma" id = "solidplasma" @@ -228,7 +234,6 @@ var/level_max = 2 /datum/chemical_reaction/mix_virus/on_reaction(datum/reagents/holder, multiplier) - var/datum/reagent/blood/B = locate(/datum/reagent/blood) in holder.reagent_list if(B && B.data) var/datum/disease/advance/D = locate(/datum/disease/advance) in B.data["viruses"] @@ -236,94 +241,131 @@ for(var/i in 1 to min(multiplier, 5)) D.Evolve(level_min, level_max) -/datum/chemical_reaction/mix_virus/mix_virus_2 +/datum/chemical_reaction/mix_virus/synth + id = "mixvirus_synth" + required_catalysts = list(/datum/reagent/blood/synthetics = 1) +/datum/chemical_reaction/mix_virus/mix_virus_2 name = "Mix Virus 2" id = "mixvirus2" required_reagents = list(/datum/reagent/toxin/mutagen = 1) level_min = 2 level_max = 4 -/datum/chemical_reaction/mix_virus/mix_virus_3 +/datum/chemical_reaction/mix_virus/mix_virus_2/synth + id = "mixvirus2_synth" + required_catalysts = list(/datum/reagent/blood/synthetics = 1) +/datum/chemical_reaction/mix_virus/mix_virus_3 name = "Mix Virus 3" id = "mixvirus3" required_reagents = list(/datum/reagent/toxin/plasma = 1) level_min = 4 level_max = 6 -/datum/chemical_reaction/mix_virus/mix_virus_4 +/datum/chemical_reaction/mix_virus/mix_virus_3/synth + id = "mixvirus3_synth" + required_catalysts = list(/datum/reagent/blood/synthetics = 1) +/datum/chemical_reaction/mix_virus/mix_virus_4 name = "Mix Virus 4" id = "mixvirus4" required_reagents = list(/datum/reagent/uranium = 1) level_min = 5 level_max = 6 -/datum/chemical_reaction/mix_virus/mix_virus_5 +/datum/chemical_reaction/mix_virus/mix_virus_4/synth + id = "mixvirus4_synth" + required_catalysts = list(/datum/reagent/blood/synthetics = 1) +/datum/chemical_reaction/mix_virus/mix_virus_5 name = "Mix Virus 5" id = "mixvirus5" required_reagents = list(/datum/reagent/toxin/mutagen/mutagenvirusfood = 1) level_min = 3 level_max = 3 -/datum/chemical_reaction/mix_virus/mix_virus_6 +/datum/chemical_reaction/mix_virus/mix_virus_5/synth + id = "mixvirus5_synth" + required_catalysts = list(/datum/reagent/blood/synthetics = 1) +/datum/chemical_reaction/mix_virus/mix_virus_6 name = "Mix Virus 6" id = "mixvirus6" required_reagents = list(/datum/reagent/toxin/mutagen/mutagenvirusfood/sugar = 1) level_min = 4 level_max = 4 -/datum/chemical_reaction/mix_virus/mix_virus_7 +/datum/chemical_reaction/mix_virus/mix_virus_6/synth + id = "mixvirus6_synth" + required_catalysts = list(/datum/reagent/blood/synthetics = 1) +/datum/chemical_reaction/mix_virus/mix_virus_7 name = "Mix Virus 7" id = "mixvirus7" required_reagents = list(/datum/reagent/toxin/plasma/plasmavirusfood/weak = 1) level_min = 5 level_max = 5 -/datum/chemical_reaction/mix_virus/mix_virus_8 +/datum/chemical_reaction/mix_virus/mix_virus_7/synth + id = "mixvirus7_synth" + required_catalysts = list(/datum/reagent/blood/synthetics = 1) +/datum/chemical_reaction/mix_virus/mix_virus_8 name = "Mix Virus 8" id = "mixvirus8" required_reagents = list(/datum/reagent/toxin/plasma/plasmavirusfood = 1) level_min = 6 level_max = 6 -/datum/chemical_reaction/mix_virus/mix_virus_9 +/datum/chemical_reaction/mix_virus/mix_virus_8/synth + id = "mixvirus8_synth" + required_catalysts = list(/datum/reagent/blood/synthetics = 1) +/datum/chemical_reaction/mix_virus/mix_virus_9 name = "Mix Virus 9" id = "mixvirus9" required_reagents = list(/datum/reagent/medicine/synaptizine/synaptizinevirusfood = 1) level_min = 1 level_max = 1 -/datum/chemical_reaction/mix_virus/mix_virus_10 +/datum/chemical_reaction/mix_virus/mix_virus_9/synth + id = "mixvirus9_synth" + required_catalysts = list(/datum/reagent/blood/synthetics = 1) +/datum/chemical_reaction/mix_virus/mix_virus_10 name = "Mix Virus 10" id = "mixvirus10" required_reagents = list(/datum/reagent/uranium/uraniumvirusfood = 1) level_min = 6 level_max = 7 -/datum/chemical_reaction/mix_virus/mix_virus_11 +/datum/chemical_reaction/mix_virus/mix_virus_10/synth + id = "mixvirus10_synth" + required_catalysts = list(/datum/reagent/blood/synthetics = 1) +/datum/chemical_reaction/mix_virus/mix_virus_11 name = "Mix Virus 11" id = "mixvirus11" required_reagents = list(/datum/reagent/uranium/uraniumvirusfood/unstable = 1) level_min = 7 level_max = 7 -/datum/chemical_reaction/mix_virus/mix_virus_12 +/datum/chemical_reaction/mix_virus/mix_virus_11/synth + id = "mixvirus11_synth" + required_catalysts = list(/datum/reagent/blood/synthetics = 1) +/datum/chemical_reaction/mix_virus/mix_virus_12 name = "Mix Virus 12" id = "mixvirus12" required_reagents = list(/datum/reagent/uranium/uraniumvirusfood/stable = 1) level_min = 8 level_max = 8 +/datum/chemical_reaction/mix_virus/mix_virus_12/synth + id = "mixvirus12_synth" + required_catalysts = list(/datum/reagent/blood/synthetics = 1) + /datum/chemical_reaction/mix_virus/rem_virus name = "Devolve Virus" id = "remvirus" @@ -338,6 +380,10 @@ for(var/i in 1 to min(multiplier, 5)) D.Devolve() +/datum/chemical_reaction/mix_virus/rem_virus/synth + id = "remvirus_synth" + required_catalysts = list(/datum/reagent/blood/synthetics = 1) + /datum/chemical_reaction/mix_virus/neuter_virus name = "Neuter Virus" id = "neutervirus" @@ -352,6 +398,10 @@ for(var/i in 1 to min(multiplier, 5)) D.Neuter() +/datum/chemical_reaction/mix_virus/neuter_virus/synth + id = "neutervirus_synth" + required_catalysts = list(/datum/reagent/blood/synthetics = 1) + ////////////////////////////////// foam and foam precursor /////////////////////////////////////////////////// @@ -743,3 +793,13 @@ id = "blue_glitter_white" results = list(/datum/reagent/glitter/blue = 2) required_reagents = list(/datum/reagent/glitter/white = 1, /datum/reagent/colorful_reagent/crayonpowder/blue = 1) + +//////////////////////////////////// Synthblood /////////////////////////////////////////// + +/datum/chemical_reaction/synth_blood + name = "Synthetic Blood" + id = /datum/reagent/blood/synthetics + results = list(/datum/reagent/blood/synthetics = 3) + required_reagents = list(/datum/reagent/medicine/salglu_solution = 1, /datum/reagent/iron = 1, /datum/reagent/stable_plasma = 1) + mix_message = "The mixture congeals and gives off a faint copper scent." + required_temp = 350 diff --git a/code/modules/reagents/chemistry/recipes/special.dm b/code/modules/reagents/chemistry/recipes/special.dm index cc63a8c692..fb4552f96b 100644 --- a/code/modules/reagents/chemistry/recipes/special.dm +++ b/code/modules/reagents/chemistry/recipes/special.dm @@ -168,7 +168,7 @@ GLOBAL_LIST_INIT(food_reagents, build_reagents_to_food()) //reagentid = related /obj/item/paper/secretrecipe name = "old recipe" - var/recipe_id = "secretsauce" + var/recipe_id = /datum/reagent/consumable/secretsauce /obj/item/paper/secretrecipe/examine(mob/user) //Extra secret if(isobserver(user)) diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm index 23176f8a05..c178aad717 100644 --- a/code/modules/reagents/reagent_containers.dm +++ b/code/modules/reagents/reagent_containers.dm @@ -7,7 +7,8 @@ var/amount_per_transfer_from_this = 5 var/list/possible_transfer_amounts = list(5,10,15,20,25,30) var/volume = 30 - var/reagent_flags //used to determine the reagent holder flags on add_initial_reagents() + var/reagent_flags = NONE //used to determine the reagent holder flags on add_initial_reagents() + var/reagent_value = DEFAULT_REAGENTS_VALUE //same as above but for the holder value multiplier. var/list/list_reagents = null var/spawned_disease = null var/disease_amount = 20 @@ -22,7 +23,7 @@ volume = vol if(container_flags & APTFT_VERB && length(possible_transfer_amounts)) verbs += /obj/item/reagent_containers/proc/set_APTFT - create_reagents(volume, reagent_flags) + create_reagents(volume, reagent_flags, reagent_value) if(spawned_disease) var/datum/disease/F = new spawned_disease() var/list/data = list("blood_DNA" = "UNKNOWN DNA", "blood_type" = "SY","viruses"= list(F)) @@ -105,11 +106,11 @@ /obj/item/reagent_containers/proc/bartender_check(atom/target) . = FALSE var/turf/T = get_turf(src) - if(!T || target.CanPass(src, T) || !thrownby || !thrownby.actions) + if(!T || !target.CanPass(src, T) || !thrownby || !thrownby.actions) return - for(var/datum/action/innate/drink_fling/D in thrownby.actions) - if(D.active) - return TRUE + var/datum/action/innate/D = get_action_of_type(thrownby, /datum/action/innate/drink_fling) + if(D?.active) + return TRUE /obj/item/reagent_containers/proc/ForceResetRotation() transform = initial(transform) @@ -131,13 +132,14 @@ if(thrownby) log_combat(thrownby, M, "splashed", R) reagents.reaction(target, TOUCH) - + else if(bartender_check(target) && thrown) visible_message("[src] lands onto the [target.name] without spilling a single drop.") transform = initial(transform) addtimer(CALLBACK(src, .proc/ForceResetRotation), 1) return + else if(isturf(target) && reagents.reagent_list.len && thrownby) log_combat(thrownby, target, "splashed (thrown) [english_list(reagents.reagent_list)]", "in [AREACOORD(target)]") diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm index 34dd97b0aa..73d0c5eafa 100644 --- a/code/modules/reagents/reagent_containers/borghydro.dm +++ b/code/modules/reagents/reagent_containers/borghydro.dm @@ -19,6 +19,7 @@ Borg Hypospray amount_per_transfer_from_this = 5 volume = 30 possible_transfer_amounts = list() + reagent_value = NO_REAGENTS_VALUE var/mode = 1 var/charge_cost = 50 var/charge_tick = 0 diff --git a/code/modules/reagents/reagent_containers/bottle.dm b/code/modules/reagents/reagent_containers/bottle.dm index c05f4f3e78..e4741bb858 100644 --- a/code/modules/reagents/reagent_containers/bottle.dm +++ b/code/modules/reagents/reagent_containers/bottle.dm @@ -431,4 +431,4 @@ /obj/item/reagent_containers/glass/bottle/hexacamphor name = "Hexacamphor bottle" desc = "A bottle of strong anaphrodisiac. Reduces libido." - list_reagents = list(/datum/reagent/drug/anaphrodisiacplus = 30) \ No newline at end of file + list_reagents = list(/datum/reagent/drug/anaphrodisiacplus = 30) diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm index 9feec362a4..4e1de85fce 100644 --- a/code/modules/reagents/reagent_containers/dropper.dm +++ b/code/modules/reagents/reagent_containers/dropper.dm @@ -44,7 +44,7 @@ if(safe_thing) if(!safe_thing.reagents) - safe_thing.create_reagents(100) + safe_thing.create_reagents(100, NONE, NO_REAGENTS_VALUE) reagents.reaction(safe_thing, TOUCH, fraction) trans = reagents.trans_to(safe_thing, amount_per_transfer_from_this) diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index db0aa8ce99..23f149ade4 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -109,7 +109,7 @@ volume = 60 icon_state = "beaker" item_state = "beaker" - materials = list(MAT_GLASS=500) + custom_materials = list(/datum/material/glass=500) possible_transfer_amounts = list(5,10,15,20,25,30,50,60) container_flags = PH_WEAK|APTFT_ALTCLICK|APTFT_VERB @@ -159,7 +159,7 @@ /obj/item/reagent_containers/glass/beaker/glass_dish name = "glass dish" desc = "A tiny glass dish. It can hold up to 3 units. Unable to withstand reagents of an extreme pH." - materials = list(MAT_GLASS=500) + custom_materials = list(/datum/material/glass = 500) icon_state = "glass_disk" possible_transfer_amounts = list(0.1,0.5,0.75,1,2,3) volume = 3 @@ -167,21 +167,21 @@ /obj/item/reagent_containers/glass/beaker/flask/large name = "large flask" desc = "A large flask. It can hold up to 80 units. Unable to withstand reagents of an extreme pH." - materials = list(MAT_GLASS=2500) + custom_materials = list(/datum/material/glass = 2500) icon_state = "flasklarge" volume = 80 /obj/item/reagent_containers/glass/beaker/flask name = "small flask" desc = "A small flask. It can hold up to 40 units. Unable to withstand reagents of an extreme pH." - materials = list(MAT_GLASS=1000) + custom_materials = list(/datum/material/glass = 1000) icon_state = "flasksmall" volume = 40 /obj/item/reagent_containers/glass/beaker/flask/spouty name = "flask with spout" desc = "A flask with a spout! It can hold up to 120 units. Unable to withstand reagents of an extreme pH." - materials = list(MAT_GLASS=2500) + custom_materials = list(/datum/material/glass = 2500) icon_state = "flaskspouty" possible_transfer_amounts = list(1,2,3,4,5,10,15,20,25,30,50,100,120) volume = 120 @@ -190,7 +190,7 @@ name = "large beaker" desc = "A large beaker. Can hold up to 120 units. Unable to withstand reagents of an extreme pH." icon_state = "beakerlarge" - materials = list(MAT_GLASS=2500) + custom_materials = list(/datum/material/glass=2500) volume = 120 amount_per_transfer_from_this = 10 possible_transfer_amounts = list(5,10,15,20,25,30,40,50,60,120) @@ -200,7 +200,7 @@ name = "x-large beaker" desc = "An extra-large beaker. Can hold up to 180 units. Is able to resist acid and alkaline solutions, but melts at 444 K." icon_state = "beakerwhite" - materials = list(MAT_GLASS=2500, MAT_PLASTIC=3000) + custom_materials = list(/datum/material/glass=2500, /datum/material/plastic=3000) volume = 180 amount_per_transfer_from_this = 10 possible_transfer_amounts = list(5,10,15,20,25,30,40,50,60,120,180) @@ -215,7 +215,7 @@ name = "metamaterial beaker" desc = "A large beaker. Can hold up to 240 units, and is able to withstand all chemical situations." icon_state = "beakergold" - materials = list(MAT_GLASS=2500, MAT_PLASTIC=3000, MAT_GOLD=1000, MAT_TITANIUM=1000) + custom_materials = list(/datum/material/glass=2500, /datum/material/plastic=3000, /datum/material/gold=1000, /datum/material/titanium=1000) volume = 240 amount_per_transfer_from_this = 10 possible_transfer_amounts = list(5,10,15,20,25,30,40,50,60,120,200,240) @@ -226,7 +226,7 @@ desc = "A cryostasis beaker that allows for chemical storage without \ reactions. Can hold up to 50 units." icon_state = "beakernoreact" - materials = list(MAT_METAL=3000) + custom_materials = list(/datum/material/iron=3000) reagent_flags = OPENCONTAINER | NO_REACT volume = 50 amount_per_transfer_from_this = 10 @@ -239,8 +239,9 @@ and Element Cuban combined with the Compound Pete. Can hold up to \ 300 units. Unable to withstand reagents of an extreme pH." icon_state = "beakerbluespace" - materials = list(MAT_GLASS=3000) + custom_materials = list(/datum/material/glass = 5000, /datum/material/plasma = 3000, /datum/material/diamond = 1000, /datum/material/bluespace = 1000) volume = 300 + material_flags = MATERIAL_NO_EFFECTS amount_per_transfer_from_this = 10 possible_transfer_amounts = list(5,10,15,20,25,30,50,100,300) container_HP = 5 @@ -281,7 +282,7 @@ item_state = "bucket" lefthand_file = 'icons/mob/inhands/equipment/custodial_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/custodial_righthand.dmi' - materials = list(MAT_METAL=200) + custom_materials = list(/datum/material/iron=200) w_class = WEIGHT_CLASS_NORMAL amount_per_transfer_from_this = 20 possible_transfer_amounts = list(5,10,15,20,25,30,50,70) @@ -348,7 +349,7 @@ icon_state = "smallbottle" item_state = "bottle" list_reagents = list(/datum/reagent/water = 49.5, /datum/reagent/fluorine = 0.5)//see desc, don't think about it too hard - materials = list(MAT_GLASS=0) + custom_materials = list(/datum/material/glass=0) volume = 50 amount_per_transfer_from_this = 10 possible_transfer_amounts = list(5,10,15,20,25,30,50) @@ -361,7 +362,7 @@ /obj/item/reagent_containers/glass/beaker/waterbottle/large desc = "A fresh commercial-sized bottle of water." icon_state = "largebottle" - materials = list(MAT_GLASS=0) + custom_materials = list(/datum/material/glass=0) list_reagents = list(/datum/reagent/water = 100) volume = 100 amount_per_transfer_from_this = 20 diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index eac8edcbc8..f29b785c95 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -95,7 +95,7 @@ ignore_flags = 1 //so you can medipen through hardsuits reagent_flags = DRAWABLE flags_1 = null - list_reagents = list(/datum/reagent/medicine/epinephrine = 10, /datum/reagent/toxin/formaldehyde = 3) + list_reagents = list(/datum/reagent/medicine/epinephrine = 10, /datum/reagent/preservahyde = 3) /obj/item/reagent_containers/hypospray/medipen/suicide_act(mob/living/carbon/user) user.visible_message("[user] begins to choke on \the [src]! It looks like [user.p_theyre()] trying to commit suicide!") @@ -423,9 +423,9 @@ else unload_hypo(vial,user) -/obj/item/hypospray/mkii/AltClick(mob/living/user) +/obj/item/hypospray/mkii/CtrlClick(mob/living/user) . = ..() - if(user.canUseTopic(src, FALSE)) + if(user.canUseTopic(src, FALSE) && user.get_active_held_item(src)) switch(mode) if(HYPO_SPRAY) mode = HYPO_INJECT @@ -437,7 +437,7 @@ /obj/item/hypospray/mkii/examine(mob/user) . = ..() - . += "Alt-Click it to toggle its mode from spraying to injecting and vice versa." + . += "Ctrl-Click it to toggle its mode from spraying to injecting and vice versa." #undef HYPO_SPRAY #undef HYPO_INJECT diff --git a/code/modules/reagents/reagent_containers/rags.dm b/code/modules/reagents/reagent_containers/rags.dm index 59c956acd6..c6903ff7b4 100644 --- a/code/modules/reagents/reagent_containers/rags.dm +++ b/code/modules/reagents/reagent_containers/rags.dm @@ -11,6 +11,7 @@ container_flags = APTFT_VERB volume = 5 spillable = FALSE + reagent_value = NO_REAGENTS_VALUE var/wipe_sound var/soak_efficiency = 1 var/extinguish_efficiency = 0 @@ -26,7 +27,7 @@ if(reagents.total_volume) . += "It's soaked. Alt-Click to squeeze it dry, and perhaps gather the liquids into another held open container." -/obj/item/reagent_containers/rag/afterattack(atom/A as obj|turf|area, mob/user,proximity) +/obj/item/reagent_containers/rag/afterattack(atom/A, mob/user,proximity) . = ..() if(!proximity) return @@ -45,14 +46,14 @@ C.visible_message("[user] has touched \the [C] with \the [src].") log_combat(user, C, "touched", log_object) - else if(istype(A) && src in user) + else if(istype(A) && (src in user)) user.visible_message("[user] starts to wipe down [A] with [src]!", "You start to wipe down [A] with [src]...") if(do_after(user, action_speed, target = A)) user.visible_message("[user] finishes wiping off [A]!", "You finish wiping off [A].") SEND_SIGNAL(A, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_MEDIUM) return -/obj/item/reagent_containers/rag/pre_altattackby(mob/living/M, mob/living/user, params) +/obj/item/reagent_containers/rag/alt_pre_attack(mob/living/M, mob/living/user, params) if(istype(M) && user.a_intent == INTENT_HELP) user.changeNext_move(CLICK_CD_MELEE) if(M.on_fire) diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index e8c8d14141..62ca5d658e 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -68,7 +68,7 @@ /obj/item/reagent_containers/spray/proc/spray(atom/A) var/range = CLAMP(get_dist(src, A), 1, current_range) var/obj/effect/decal/chempuff/D = new /obj/effect/decal/chempuff(get_turf(src)) - D.create_reagents(amount_per_transfer_from_this) + D.create_reagents(amount_per_transfer_from_this, NONE, NO_REAGENTS_VALUE) var/puff_reagent_left = range //how many turf, mob or dense objet we can react with before we consider the chem puff consumed if(stream_mode) reagents.trans_to(D, amount_per_transfer_from_this) @@ -172,6 +172,7 @@ /obj/item/reagent_containers/spray/drying_agent name = "drying agent spray" desc = "A spray bottle for drying agent." + icon_state = "cleaner_drying" volume = 100 list_reagents = list(/datum/reagent/drying_agent = 100) amount_per_transfer_from_this = 2 diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 763184da46..45bf8591a8 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -12,7 +12,7 @@ var/mode = SYRINGE_DRAW var/busy = FALSE // needed for delayed drawing of blood var/proj_piercing = 0 //does it pierce through thick clothes when shot with syringe gun - materials = list(MAT_METAL=10, MAT_GLASS=20) + custom_materials = list(/datum/material/iron=10, /datum/material/glass=20) reagent_flags = TRANSPARENT /obj/item/reagent_containers/syringe/Initialize() diff --git a/code/modules/recycling/disposal/bin.dm b/code/modules/recycling/disposal/bin.dm index 90f96d0352..d39d9f4b85 100644 --- a/code/modules/recycling/disposal/bin.dm +++ b/code/modules/recycling/disposal/bin.dm @@ -79,12 +79,12 @@ /obj/machinery/disposal/attackby(obj/item/I, mob/user, params) add_fingerprint(user) if(!pressure_charging && !full_pressure && !flush) - if(istype(I, /obj/item/screwdriver)) + if(I.tool_behaviour == TOOL_SCREWDRIVER) panel_open = !panel_open I.play_tool_sound(src) to_chat(user, "You [panel_open ? "remove":"attach"] the screws around the power connection.") return - else if(istype(I, /obj/item/weldingtool) && panel_open) + else if(I.tool_behaviour == TOOL_WELDER && panel_open) if(!I.tool_start_check(user, amount=0)) return @@ -99,7 +99,7 @@ return place_item_in_disposal(I, user) update_icon() - return 1 //no afterattack + return TRUE //no afterattack else return ..() @@ -288,32 +288,16 @@ var/datum/oracle_ui/themed/nano/ui obj_flags = CAN_BE_HIT | USES_TGUI | SHOVABLE_ONTO - // attack by item places it in to disposal /obj/machinery/disposal/bin/attackby(obj/item/I, mob/user, params) - add_fingerprint(user) - if(!pressure_charging && !full_pressure && !flush) - if(I.tool_behaviour == TOOL_SCREWDRIVER) - panel_open = !panel_open - I.play_tool_sound(src) - to_chat(user, "You [panel_open ? "remove":"attach"] the screws around the power connection.") - return - else if(I.tool_behaviour == TOOL_WELDER && panel_open) - if(!I.tool_start_check(user, amount=0)) - return - - to_chat(user, "You start slicing the floorweld off \the [src]...") - if(I.use_tool(src, user, 20, volume=100) && panel_open) - to_chat(user, "You slice the floorweld off \the [src].") - deconstruct() - return - - if(user.a_intent != INTENT_HARM) - if((I.item_flags & ABSTRACT) || !user.temporarilyRemoveItemFromInventory(I)) - return - place_item_in_disposal(I, user) + if(istype(I, /obj/item/storage/bag/trash)) //Not doing component overrides because this is a specific type. + var/obj/item/storage/bag/trash/T = I + var/datum/component/storage/STR = T.GetComponent(/datum/component/storage) + to_chat(user, "You empty the bag.") + for(var/obj/item/O in T.contents) + STR.remove_from_storage(O,src) + T.update_icon() update_icon() - return TRUE //no afterattack else return ..() diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index 812637efed..0f9c64545a 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -7,15 +7,6 @@ For the materials datum, it assumes you need reagents unless specified otherwise you use one of the material IDs below. These are NOT ids in the usual sense (they aren't defined in the object or part of a datum), they are simply references used as part of a "has materials?" type proc. They all start with a $ to denote that they aren't reagents. The currently supporting non-reagent materials. All material amounts are set as the define MINERAL_MATERIAL_AMOUNT, which defaults to 2000 -- MAT_METAL (/obj/item/stack/metal). -- MAT_GLASS (/obj/item/stack/glass). -- MAT_PLASMA (/obj/item/stack/plasma). -- MAT_SILVER (/obj/item/stack/silver). -- MAT_GOLD (/obj/item/stack/gold). -- MAT_URANIUM (/obj/item/stack/uranium). -- MAT_DIAMOND (/obj/item/stack/diamond). -- MAT_BANANIUM (/obj/item/stack/bananium). -(Insert new ones here) Don't add new keyword/IDs if they are made from an existing one (such as rods which are made from metal). Only add raw materials. @@ -57,6 +48,17 @@ other types of metals and chemistry for reagents). SSresearch.techweb_designs -= id return ..() +/datum/design/proc/InitializeMaterials() + var/list/temp_list = list() + for(var/i in materials) //Go through all of our materials, get the subsystem instance, and then replace the list. + var/amount = materials[i] + if(!istext(i)) //Not a category, so get the ref the normal way + var/datum/material/M = getmaterialref(i) + temp_list[M] = amount + else + temp_list[i] = amount + materials = temp_list + /datum/design/proc/icon_html(client/user) var/datum/asset/spritesheet/sheet = get_asset_datum(/datum/asset/spritesheet/research_designs) sheet.send(user) @@ -70,7 +72,7 @@ other types of metals and chemistry for reagents). name = "Component Design Disk" desc = "A disk for storing device design data for construction in lathes." icon_state = "datadisk1" - materials = list(MAT_METAL=300, MAT_GLASS=100) + custom_materials = list(/datum/material/iron=300, /datum/material/glass=100) var/list/blueprints = list() var/max_blueprints = 1 @@ -84,5 +86,5 @@ other types of metals and chemistry for reagents). /obj/item/disk/design_disk/adv name = "Advanced Component Design Disk" desc = "A disk for storing device design data for construction in lathes. This one has extra storage space." - materials = list(MAT_METAL=300, MAT_GLASS=100, MAT_SILVER = 50) + custom_materials = list(/datum/material/iron=300, /datum/material/glass=100, /datum/material/silver = 50) max_blueprints = 5 diff --git a/code/modules/research/designs/AI_module_designs.dm b/code/modules/research/designs/AI_module_designs.dm index 305b39b694..98e295b83a 100644 --- a/code/modules/research/designs/AI_module_designs.dm +++ b/code/modules/research/designs/AI_module_designs.dm @@ -14,7 +14,7 @@ name = "Module Design (Safeguard)" desc = "Allows for the construction of a Safeguard AI Module." id = "safeguard_module" - materials = list(MAT_GLASS = 1000, MAT_GOLD = 2000) + materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000) build_path = /obj/item/aiModule/supplied/safeguard category = list("AI Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -23,7 +23,7 @@ name = "Module Design (OneCrew)" desc = "Allows for the construction of a OneCrew AI Module." id = "onehuman_module" - materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 6000) + materials = list(/datum/material/glass = 1000, /datum/material/diamond = 6000) build_path = /obj/item/aiModule/zeroth/oneHuman category = list("AI Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -32,7 +32,7 @@ name = "Module Design (ProtectStation)" desc = "Allows for the construction of a ProtectStation AI Module." id = "protectstation_module" - materials = list(MAT_GLASS = 1000, MAT_GOLD = 2000) + materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000) build_path = /obj/item/aiModule/supplied/protectStation category = list("AI Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -41,7 +41,7 @@ name = "Module Design (Quarantine)" desc = "Allows for the construction of a Quarantine AI Module." id = "quarantine_module" - materials = list(MAT_GLASS = 1000, MAT_GOLD = 2000) + materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000) build_path = /obj/item/aiModule/supplied/quarantine category = list("AI Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -50,7 +50,7 @@ name = "Module Design (OxygenIsToxicToHumans)" desc = "Allows for the construction of a Safeguard AI Module." id = "oxygen_module" - materials = list(MAT_GLASS = 1000, MAT_GOLD = 2000) + materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000) build_path = /obj/item/aiModule/supplied/oxygen category = list("AI Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -59,7 +59,7 @@ name = "Module Design (Freeform)" desc = "Allows for the construction of a Freeform AI Module." id = "freeform_module" - materials = list(MAT_GLASS = 1000, MAT_GOLD = 10000)//Custom inputs should be more expensive to get + materials = list(/datum/material/glass = 1000, /datum/material/gold = 10000)//Custom inputs should be more expensive to get build_path = /obj/item/aiModule/supplied/freeform category = list("AI Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -68,7 +68,7 @@ name = "Module Design (Reset)" desc = "Allows for the construction of a Reset AI Module." id = "reset_module" - materials = list(MAT_GLASS = 1000, MAT_GOLD = 2000) + materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000) build_path = /obj/item/aiModule/reset category = list("AI Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -77,7 +77,7 @@ name = "Module Design (Purge)" desc = "Allows for the construction of a Purge AI Module." id = "purge_module" - materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 2000) + materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000) build_path = /obj/item/aiModule/reset/purge category = list("AI Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -86,7 +86,7 @@ name = "Module Design (Law Removal)" desc = "Allows for the construction of a Law Removal AI Core Module." id = "remove_module" - materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 2000) + materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000) build_path = /obj/item/aiModule/remove category = list("AI Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -95,7 +95,7 @@ name = "AI Core Module (Freeform)" desc = "Allows for the construction of a Freeform AI Core Module." id = "freeformcore_module" - materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 10000)//Ditto + materials = list(/datum/material/glass = 1000, /datum/material/diamond = 10000)//Ditto build_path = /obj/item/aiModule/core/freeformcore category = list("AI Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -104,7 +104,7 @@ name = "Core Module Design (Asimov)" desc = "Allows for the construction of an Asimov AI Core Module." id = "asimov_module" - materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 2000) + materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000) build_path = /obj/item/aiModule/core/full/asimov category = list("AI Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -114,7 +114,7 @@ desc = "Allows for the construction of a P.A.L.A.D.I.N. AI Core Module." id = "paladin_module" build_type = IMPRINTER - materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 2000) + materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000) build_path = /obj/item/aiModule/core/full/paladin category = list("AI Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -123,7 +123,7 @@ name = "Core Module Design (T.Y.R.A.N.T.)" desc = "Allows for the construction of a T.Y.R.A.N.T. AI Module." id = "tyrant_module" - materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 2000) + materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000) build_path = /obj/item/aiModule/core/full/tyrant category = list("AI Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -132,7 +132,7 @@ name = "Core Module Design (Corporate)" desc = "Allows for the construction of a Corporate AI Core Module." id = "corporate_module" - materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 2000) + materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000) build_path = /obj/item/aiModule/core/full/corp category = list("AI Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -141,7 +141,7 @@ name = "Core Module Design (Default)" desc = "Allows for the construction of a Default AI Core Module." id = "default_module" - materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 2000) + materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000) build_path = /obj/item/aiModule/core/full/custom category = list("AI Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE diff --git a/code/modules/research/designs/autobotter_designs.dm b/code/modules/research/designs/autobotter_designs.dm index 6eb7e8354b..eab7423b91 100644 --- a/code/modules/research/designs/autobotter_designs.dm +++ b/code/modules/research/designs/autobotter_designs.dm @@ -6,13 +6,13 @@ name = "Machine Design (AutoBottler)" desc = "Allows for the construction of circuit boards used to build an Autobottler." id = "autobottler" - materials = list(MAT_GLASS = 2000) + materials = list(/datum/material/glass = 2000) build_path = /obj/item/circuitboard/machine/autobottler category = list ("Misc. Machinery") departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SERVICE /datum/design/bottle - materials = list(MAT_GLASS = 1200) + materials = list(/datum/material/glass = 1200) build_type = AUTOBOTTLER category = list("Storge") @@ -143,7 +143,7 @@ build_path = /obj/item/reagent_containers/food/drinks/bottle/grenadine/empty /datum/design/bottle/export - materials = list(MAT_GLASS = 1200) + materials = list(/datum/material/glass = 1200) build_type = AUTOBOTTLER category = list("Brands") diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_construction.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_construction.dm index bfc92d24d8..ee9ee14e4a 100644 --- a/code/modules/research/designs/autolathe_desings/autolathe_designs_construction.dm +++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_construction.dm @@ -11,7 +11,7 @@ name = "Metal Rod" id = "rods" build_type = AUTOLATHE - materials = list(MAT_METAL = 1000) + materials = list(/datum/material/iron = 1000) build_path = /obj/item/stack/rods category = list("initial","Construction") maxstack = 50 @@ -20,7 +20,7 @@ name = "Metal" id = "metal" build_type = AUTOLATHE - materials = list(MAT_METAL = MINERAL_MATERIAL_AMOUNT) + materials = list(/datum/material/iron = MINERAL_MATERIAL_AMOUNT) build_path = /obj/item/stack/sheet/metal category = list("initial","Construction") maxstack = 50 @@ -29,7 +29,7 @@ name = "Glass" id = "glass" build_type = AUTOLATHE - materials = list(MAT_GLASS = MINERAL_MATERIAL_AMOUNT) + materials = list(/datum/material/glass = MINERAL_MATERIAL_AMOUNT) build_path = /obj/item/stack/sheet/glass category = list("initial","Construction") maxstack = 50 @@ -38,7 +38,7 @@ name = "Reinforced Glass" id = "rglass" build_type = AUTOLATHE | SMELTER | PROTOLATHE - materials = list(MAT_METAL = 1000, MAT_GLASS = MINERAL_MATERIAL_AMOUNT) + materials = list(/datum/material/iron = 1000, /datum/material/glass = MINERAL_MATERIAL_AMOUNT) build_path = /obj/item/stack/sheet/rglass category = list("initial","Construction","Stock Parts") maxstack = 50 @@ -47,7 +47,7 @@ name = "Light Tube" id = "light_tube" build_type = AUTOLATHE - materials = list(MAT_GLASS = 100) + materials = list(/datum/material/glass = 100) build_path = /obj/item/light/tube category = list("initial", "Construction") @@ -55,7 +55,7 @@ name = "Light Bulb" id = "light_bulb" build_type = AUTOLATHE - materials = list(MAT_GLASS = 100) + materials = list(/datum/material/glass = 100) build_path = /obj/item/light/bulb category = list("initial", "Construction") @@ -63,7 +63,7 @@ name = "Camera Assembly" id = "camera_assembly" build_type = AUTOLATHE - materials = list(MAT_METAL = 400, MAT_GLASS = 250) + materials = list(/datum/material/iron = 400, /datum/material/glass = 250) build_path = /obj/item/wallframe/camera category = list("initial", "Construction") @@ -71,7 +71,7 @@ name = "Newscaster Frame" id = "newscaster_frame" build_type = AUTOLATHE - materials = list(MAT_METAL = 14000, MAT_GLASS = 8000) + materials = list(/datum/material/iron = 14000, /datum/material/glass = 8000) build_path = /obj/item/wallframe/newscaster category = list("initial", "Construction") @@ -79,7 +79,7 @@ name = "Turret Control Frame" id = "turret_control" build_type = AUTOLATHE - materials = list(MAT_METAL = 12000) + materials = list(/datum/material/iron = 12000) build_path = /obj/item/wallframe/turret_control category = list("initial", "Construction") @@ -87,7 +87,7 @@ name = "Conveyor Belt" id = "conveyor_belt" build_type = AUTOLATHE - materials = list(MAT_METAL = 3000) + materials = list(/datum/material/iron = 3000) build_path = /obj/item/stack/conveyor category = list("initial", "Construction") maxstack = 30 @@ -96,7 +96,7 @@ name = "Conveyor Belt Switch" id = "conveyor_switch" build_type = AUTOLATHE - materials = list(MAT_METAL = 450, MAT_GLASS = 190) + materials = list(/datum/material/iron = 450, /datum/material/glass = 190) build_path = /obj/item/conveyor_switch_construct category = list("initial", "Construction") @@ -104,7 +104,7 @@ name = "Compressed Matter Cartridge" id = "rcd_ammo" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 12000, MAT_GLASS = 8000) + materials = list(/datum/material/iron = 12000, /datum/material/glass=8000) build_path = /obj/item/rcd_ammo category = list("initial","Construction","Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -113,7 +113,7 @@ name = "Large Compressed Matter Cartridge" id = "rcd_ammo_large" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 48000, MAT_GLASS = 32000) + materials = list(/datum/material/iron = 48000, /datum/material/glass = 32000) build_path = /obj/item/rcd_ammo/large category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_electronics.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_electronics.dm index 4ca780620d..86e11010bc 100644 --- a/code/modules/research/designs/autolathe_desings/autolathe_designs_electronics.dm +++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_electronics.dm @@ -10,7 +10,7 @@ name = "APC Module" id = "power control" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 100, MAT_GLASS = 100) + materials = list(/datum/material/iron = 100, /datum/material/glass = 100) build_path = /obj/item/electronics/apc category = list("initial", "Electronics") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -19,7 +19,7 @@ name = "Airlock Electronics" id = "airlock_board" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 50) + materials = list(/datum/material/iron = 50, /datum/material/glass = 50) build_path = /obj/item/electronics/airlock category = list("initial", "Electronics") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -28,7 +28,7 @@ name = "Firelock Circuitry" id = "firelock_board" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 50) + materials = list(/datum/material/iron = 50, /datum/material/glass = 50) build_path = /obj/item/electronics/firelock category = list("initial", "Electronics") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -37,7 +37,7 @@ name = "Air Alarm Electronics" id = "airalarm_electronics" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 50) + materials = list(/datum/material/iron = 50, /datum/material/glass = 50) build_path = /obj/item/electronics/airalarm category = list("initial", "Electronics") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -46,7 +46,7 @@ name = "Fire Alarm Electronics" id = "firealarm_electronics" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 50) + materials = list(/datum/material/iron = 50, /datum/material/glass = 50) build_path = /obj/item/electronics/firealarm category = list("initial", "Electronics") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -55,7 +55,7 @@ name = "Destination Tagger" id = "desttagger" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 250, MAT_GLASS = 125) + materials = list(/datum/material/iron = 250, /datum/material/glass = 125) build_path = /obj/item/destTagger category = list("initial", "Electronics") @@ -63,7 +63,7 @@ name = "Hand Labeler" id = "handlabel" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 150, MAT_GLASS = 125) + materials = list(/datum/material/iron = 150, /datum/material/glass = 125) build_path = /obj/item/hand_labeler category = list("initial", "Electronics") @@ -71,6 +71,6 @@ name = "Light Fixture Battery" id = "miniature_power_cell" build_type = AUTOLATHE - materials = list(MAT_GLASS = 20) + materials = list(/datum/material/glass = 20) build_path = /obj/item/stock_parts/cell/emergency_light category = list("initial", "Electronics") diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm index 0d303c3968..b62f30e041 100644 --- a/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm +++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm @@ -9,7 +9,7 @@ name = "Kitchen Knife" id = "kitchen_knife" build_type = AUTOLATHE - materials = list(MAT_METAL = 12000) + materials = list(/datum/material/iron = 12000) build_path = /obj/item/kitchen/knife category = list("initial","Dinnerware") @@ -17,7 +17,7 @@ name = "Fork" id = "fork" build_type = AUTOLATHE - materials = list(MAT_METAL = 80) + materials = list(/datum/material/iron = 80) build_path = /obj/item/kitchen/fork category = list("initial","Dinnerware") @@ -25,7 +25,7 @@ name = "Tray" id = "tray" build_type = AUTOLATHE - materials = list(MAT_METAL = 3000) + materials = list(/datum/material/iron = 3000) build_path = /obj/item/storage/bag/tray category = list("initial","Dinnerware") @@ -33,7 +33,7 @@ name = "Bowl" id = "bowl" build_type = AUTOLATHE - materials = list(MAT_GLASS = 500) + materials = list(/datum/material/glass = 500) build_path = /obj/item/reagent_containers/glass/bowl category = list("initial","Dinnerware") @@ -41,7 +41,7 @@ name = "Drinking Glass" id = "drinking_glass" build_type = AUTOLATHE - materials = list(MAT_GLASS = 500) + materials = list(/datum/material/glass = 500) build_path = /obj/item/reagent_containers/food/drinks/drinkingglass category = list("initial","Dinnerware") @@ -49,7 +49,7 @@ name = "Shot Glass" id = "shot_glass" build_type = AUTOLATHE - materials = list(MAT_GLASS = 100) + materials = list(/datum/material/glass = 100) build_path = /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass category = list("initial","Dinnerware") @@ -57,7 +57,7 @@ name = "Shaker" id = "shaker" build_type = AUTOLATHE - materials = list(MAT_METAL = 1500) + materials = list(/datum/material/iron = 1500) build_path = /obj/item/reagent_containers/food/drinks/shaker category = list("initial","Dinnerware") @@ -69,7 +69,7 @@ name = "Scalpel" id = "scalpel" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 4000, MAT_GLASS = 1000) + materials = list(/datum/material/iron = 4000, /datum/material/glass = 1000) build_path = /obj/item/scalpel category = list("initial", "Medical","Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE @@ -78,7 +78,7 @@ name = "Circular Saw" id = "circular_saw" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 10000, MAT_GLASS = 6000) + materials = list(/datum/material/iron = 10000, /datum/material/glass = 6000) build_path = /obj/item/circular_saw category = list("initial", "Medical","Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE @@ -87,7 +87,7 @@ name = "Surgical Drill" id = "surgicaldrill" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 10000, MAT_GLASS = 6000) + materials = list(/datum/material/iron = 10000, /datum/material/glass = 6000) build_path = /obj/item/surgicaldrill category = list("initial", "Medical","Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE @@ -96,7 +96,7 @@ name = "Retractor" id = "retractor" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 6000, MAT_GLASS = 3000) + materials = list(/datum/material/iron = 6000, /datum/material/glass = 3000) build_path = /obj/item/retractor category = list("initial", "Medical","Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE @@ -105,7 +105,7 @@ name = "Cautery" id = "cautery" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 2500, MAT_GLASS = 750) + materials = list(/datum/material/iron = 2500, /datum/material/glass = 750) build_path = /obj/item/cautery category = list("initial", "Medical","Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE @@ -114,7 +114,7 @@ name = "Hemostat" id = "hemostat" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_GLASS = 2500) + materials = list(/datum/material/iron = 5000, /datum/material/glass = 2500) build_path = /obj/item/hemostat category = list("initial", "Medical","Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE @@ -123,7 +123,7 @@ name = "Beaker" id = "beaker" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_GLASS = 500) + materials = list(/datum/material/glass = 500) build_path = /obj/item/reagent_containers/glass/beaker category = list("initial", "Medical","Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SERVICE | DEPARTMENTAL_FLAG_SCIENCE @@ -132,7 +132,7 @@ name = "Large Beaker" id = "large_beaker" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_GLASS = 2500) + materials = list(/datum/material/glass = 2500) build_path = /obj/item/reagent_containers/glass/beaker/large category = list("initial", "Medical","Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SERVICE | DEPARTMENTAL_FLAG_SCIENCE @@ -141,7 +141,7 @@ name = "Health Analyzer" id = "healthanalyzer" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 50) + materials = list(/datum/material/iron = 500, /datum/material/glass = 50) build_path = /obj/item/healthanalyzer category = list("initial", "Medical") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -150,7 +150,7 @@ name = "Pill Bottle" id = "pillbottle" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 20, MAT_GLASS = 100) + materials = list(/datum/material/iron = 20, /datum/material/glass = 100) build_path = /obj/item/storage/pill_bottle category = list("initial", "Medical","Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -159,7 +159,7 @@ name = "Syringe" id = "syringe" build_type = AUTOLATHE - materials = list(MAT_METAL = 10, MAT_GLASS = 20) + materials = list(/datum/material/iron = 10, /datum/material/glass = 20) build_path = /obj/item/reagent_containers/syringe category = list("initial", "Medical") @@ -167,7 +167,7 @@ name = "Health Sensor" id = "health_sensor" build_type = AUTOLATHE - materials = list(MAT_METAL = 800, MAT_GLASS = 200) + materials = list(/datum/material/iron = 800, /datum/material/glass = 200) build_path = /obj/item/assembly/health category = list("initial", "Medical") @@ -175,7 +175,7 @@ name = "Hypovial" id = "hypovial" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 500) + materials = list(/datum/material/iron = 500) build_path = /obj/item/reagent_containers/glass/bottle/vial/small category = list("initial","Medical","Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -184,7 +184,7 @@ name = "Large Hypovial" id = "large_hypovial" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 2500) + materials = list(/datum/material/iron = 2500) build_path = /obj/item/reagent_containers/glass/bottle/vial/large category = list("initial","Medical","Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_sec_and_hacked.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_sec_and_hacked.dm index ae0f13764b..173240e196 100644 --- a/code/modules/research/designs/autolathe_desings/autolathe_designs_sec_and_hacked.dm +++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_sec_and_hacked.dm @@ -9,7 +9,7 @@ name = "Beanbag Slug" id = "beanbag_slug" build_type = AUTOLATHE - materials = list(MAT_METAL = 250) + materials = list(/datum/material/iron = 250) build_path = /obj/item/ammo_casing/shotgun/beanbag category = list("initial", "Security") @@ -17,7 +17,7 @@ name = "Rubber Shot" id = "rubber_shot" build_type = AUTOLATHE - materials = list(MAT_METAL = 4000) + materials = list(/datum/material/iron = 4000) build_path = /obj/item/ammo_casing/shotgun/rubbershot category = list("initial", "Security") @@ -25,7 +25,7 @@ name = "Speed Loader (.38 rubber)" id = "c38" build_type = AUTOLATHE - materials = list(MAT_METAL = 20000) + materials = list(/datum/material/iron = 20000) build_path = /obj/item/ammo_box/c38 category = list("initial", "Security") @@ -37,7 +37,7 @@ name = "Industrial Welding Tool" id = "large_welding_tool" build_type = AUTOLATHE - materials = list(MAT_METAL = 70, MAT_GLASS = 60) + materials = list(/datum/material/iron = 70, /datum/material/glass = 60) build_path = /obj/item/weldingtool/largetank category = list("hacked", "Tools") @@ -45,7 +45,7 @@ name = "Flamethrower" id = "flamethrower" build_type = AUTOLATHE - materials = list(MAT_METAL = 500) + materials = list(/datum/material/iron = 500) build_path = /obj/item/flamethrower/full category = list("hacked", "Security") @@ -53,7 +53,7 @@ name = "Rapid Construction Device (RCD)" id = "rcd" build_type = AUTOLATHE - materials = list(MAT_METAL = 30000) + materials = list(/datum/material/iron = 30000) build_path = /obj/item/construction/rcd category = list("hacked", "Construction") @@ -61,7 +61,7 @@ name = "Rapid Pipe Dispenser (RPD)" id = "rpd" build_type = AUTOLATHE - materials = list(MAT_METAL = 75000, MAT_GLASS = 37500) + materials = list(/datum/material/iron = 75000, /datum/material/glass = 37500) build_path = /obj/item/pipe_dispenser category = list("hacked", "Construction") @@ -69,7 +69,7 @@ name = "Handcuffs" id = "handcuffs" build_type = AUTOLATHE - materials = list(MAT_METAL = 500) + materials = list(/datum/material/iron = 500) build_path = /obj/item/restraints/handcuffs category = list("hacked", "Security") @@ -77,7 +77,7 @@ name = "Modular Receiver" id = "receiver" build_type = AUTOLATHE - materials = list(MAT_METAL = 15000) + materials = list(/datum/material/iron = 15000) build_path = /obj/item/weaponcrafting/receiver category = list("hacked", "Security") @@ -85,7 +85,7 @@ name = "Shotgun Slug" id = "shotgun_slug" build_type = AUTOLATHE - materials = list(MAT_METAL = 4000) + materials = list(/datum/material/iron = 4000) build_path = /obj/item/ammo_casing/shotgun category = list("hacked", "Security") @@ -93,7 +93,7 @@ name = "Buckshot Shell" id = "buckshot_shell" build_type = AUTOLATHE - materials = list(MAT_METAL = 4000) + materials = list(/datum/material/iron = 4000) build_path = /obj/item/ammo_casing/shotgun/buckshot category = list("hacked", "Security") @@ -101,7 +101,7 @@ name = "Shotgun Dart" id = "shotgun_dart" build_type = AUTOLATHE - materials = list(MAT_METAL = 4000) + materials = list(/datum/material/iron = 4000) build_path = /obj/item/ammo_casing/shotgun/dart category = list("hacked", "Security") @@ -109,7 +109,7 @@ name = "Incendiary Slug" id = "incendiary_slug" build_type = AUTOLATHE - materials = list(MAT_METAL = 4000) + materials = list(/datum/material/iron = 4000) build_path = /obj/item/ammo_casing/shotgun/incendiary category = list("hacked", "Security") @@ -117,7 +117,7 @@ name = "Foam Riot Dart" id = "riot_dart" build_type = AUTOLATHE - materials = list(MAT_METAL = 1125) //Discount for making individually - no box = less metal! + materials = list(/datum/material/iron = 1125) //Discount for making individually - no box = less metal! build_path = /obj/item/ammo_casing/caseless/foam_dart/riot category = list("hacked", "Security") @@ -125,7 +125,7 @@ name = "Foam Riot Dart Box" id = "riot_darts" build_type = AUTOLATHE - materials = list(MAT_METAL = 50000) //Comes with 40 darts + materials = list(/datum/material/iron = 50000) //Comes with 40 darts build_path = /obj/item/ammo_box/foambox/riot category = list("hacked", "Security") @@ -133,7 +133,7 @@ name = "Revolver Bullet (.357)" id = "a357" build_type = AUTOLATHE - materials = list(MAT_METAL = 4000) + materials = list(/datum/material/iron = 4000) build_path = /obj/item/ammo_casing/a357 category = list("hacked", "Security") @@ -141,7 +141,7 @@ name = "Rifle Bullet (7.62mm)" id = "a762" build_type = AUTOLATHE - materials = list(MAT_METAL = 5000) //need seclathe for clips + materials = list(/datum/material/iron = 5000) //need seclathe for clips build_path = /obj/item/ammo_casing/a762 category = list("hacked", "Security") @@ -149,7 +149,7 @@ name = "Ammo Box (10mm)" id = "c10mm" build_type = AUTOLATHE - materials = list(MAT_METAL = 30000) + materials = list(/datum/material/iron = 30000) build_path = /obj/item/ammo_box/c10mm category = list("hacked", "Security") @@ -157,7 +157,7 @@ name = "Ammo Box (.45)" id = "c45" build_type = AUTOLATHE - materials = list(MAT_METAL = 30000) + materials = list(/datum/material/iron = 30000) build_path = /obj/item/ammo_box/c45 category = list("hacked", "Security") @@ -165,7 +165,7 @@ name = "Ammo Box (9mm)" id = "c9mm" build_type = AUTOLATHE - materials = list(MAT_METAL = 30000) + materials = list(/datum/material/iron = 30000) build_path = /obj/item/ammo_box/c9mm category = list("hacked", "Security") @@ -173,7 +173,7 @@ name = "Electropack" id = "electropack" build_type = AUTOLATHE - materials = list(MAT_METAL = 10000, MAT_GLASS = 2500) + materials = list(/datum/material/iron = 10000, /datum/material/glass = 2500) build_path = /obj/item/electropack category = list("hacked", "Security") @@ -181,7 +181,7 @@ name = "Butcher's Cleaver" id = "cleaver" build_type = AUTOLATHE - materials = list(MAT_METAL = 18000) + materials = list(/datum/material/iron = 18000) build_path = /obj/item/kitchen/knife/butcher category = list("hacked", "Dinnerware") @@ -189,6 +189,6 @@ name = "Tinfoil Hat" id = "tinfoil_hat" build_type = AUTOLATHE - materials = list(MAT_METAL = 5500) + materials = list(/datum/material/iron = 5500) build_path = /obj/item/clothing/head/foilhat category = list("hacked", "Misc") diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_tcomms_and_misc.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_tcomms_and_misc.dm index a0af3d8b1e..30cd56c66a 100644 --- a/code/modules/research/designs/autolathe_desings/autolathe_designs_tcomms_and_misc.dm +++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_tcomms_and_misc.dm @@ -9,7 +9,7 @@ name = "Remote Signaling Device" id = "signaler" build_type = AUTOLATHE - materials = list(MAT_METAL = 400, MAT_GLASS = 120) + materials = list(/datum/material/iron = 400, /datum/material/glass = 120) build_path = /obj/item/assembly/signaler category = list("initial", "T-Comm") @@ -17,7 +17,7 @@ name = "Radio Headset" id = "radio_headset" build_type = AUTOLATHE - materials = list(MAT_METAL = 75) + materials = list(/datum/material/iron = 75) build_path = /obj/item/radio/headset category = list("initial", "T-Comm") @@ -25,7 +25,7 @@ name = "Station Bounced Radio" id = "bounced_radio" build_type = AUTOLATHE - materials = list(MAT_METAL = 75, MAT_GLASS = 25) + materials = list(/datum/material/iron = 75, /datum/material/glass = 25) build_path = /obj/item/radio/off category = list("initial", "T-Comm") @@ -33,7 +33,7 @@ name = "Intercom Frame" id = "intercom_frame" build_type = AUTOLATHE - materials = list(MAT_METAL = 75, MAT_GLASS = 25) + materials = list(/datum/material/iron = 75, /datum/material/glass = 25) build_path = /obj/item/wallframe/intercom category = list("initial", "T-Comm") @@ -45,7 +45,7 @@ name = "Camera" id = "camera" build_type = AUTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 100) + materials = list(/datum/material/iron = 50, /datum/material/glass = 100) build_path = /obj/item/camera category = list("initial", "Misc") @@ -53,7 +53,7 @@ name = "Camera Film Cartridge" id = "camera_film" build_type = AUTOLATHE - materials = list(MAT_METAL = 10, MAT_GLASS = 10) + materials = list(/datum/material/iron = 10, /datum/material/glass = 10) build_path = /obj/item/camera_film category = list("initial", "Misc") @@ -61,7 +61,7 @@ name = "Earmuffs" id = "earmuffs" build_type = AUTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500) + materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/clothing/ears/earmuffs category = list("initial", "Misc") @@ -69,7 +69,7 @@ name = "Pipe Painter" id = "pipe_painter" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_GLASS = 2000) + materials = list(/datum/material/iron = 5000, /datum/material/glass = 2000) build_path = /obj/item/pipe_painter category = list("initial", "Misc","Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -78,7 +78,7 @@ name = "Airlock Painter" id = "airlock_painter" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 50) + materials = list(/datum/material/iron = 50, /datum/material/glass = 50) build_path = /obj/item/airlock_painter category = list("initial", "Misc","Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -87,7 +87,7 @@ name = "Cultivator" id = "cultivator" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL=50) + materials = list(/datum/material/iron=50) build_path = /obj/item/cultivator category = list("initial","Misc","Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_SERVICE @@ -96,7 +96,7 @@ name = "Plant Analyzer" id = "plant_analyzer" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 30, MAT_GLASS = 20) + materials = list(/datum/material/iron = 30, /datum/material/glass = 20) build_path = /obj/item/plant_analyzer category = list("initial","Misc","Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_SERVICE @@ -105,7 +105,7 @@ name = "Shovel" id = "shovel" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 50) + materials = list(/datum/material/iron = 50) build_path = /obj/item/shovel category = list("initial","Misc","Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_SERVICE | DEPARTMENTAL_FLAG_CARGO @@ -114,7 +114,7 @@ name = "Spade" id = "spade" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 50) + materials = list(/datum/material/iron = 50) build_path = /obj/item/shovel/spade category = list("initial","Misc","Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_SERVICE @@ -123,7 +123,7 @@ name = "Hatchet" id = "hatchet" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 15000) + materials = list(/datum/material/iron = 15000) build_path = /obj/item/hatchet category = list("initial","Misc","Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_SERVICE @@ -132,7 +132,7 @@ name = "Universal Recorder" id = "recorder" build_type = AUTOLATHE - materials = list(MAT_METAL = 60, MAT_GLASS = 30) + materials = list(/datum/material/iron = 60, /datum/material/glass = 30) build_path = /obj/item/taperecorder/empty category = list("initial", "Misc") @@ -140,7 +140,7 @@ name = "Tape" id = "tape" build_type = AUTOLATHE - materials = list(MAT_METAL = 20, MAT_GLASS = 5) + materials = list(/datum/material/iron = 20, /datum/material/glass = 5) build_path = /obj/item/tape/random category = list("initial", "Misc") @@ -148,7 +148,7 @@ name = "Igniter" id = "igniter" build_type = AUTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 50) + materials = list(/datum/material/iron = 500, /datum/material/glass = 50) build_path = /obj/item/assembly/igniter category = list("initial", "Misc") @@ -156,7 +156,7 @@ name = "Infrared Emitter" id = "infrared_emitter" build_type = AUTOLATHE - materials = list(MAT_METAL = 1000, MAT_GLASS = 500) + materials = list(/datum/material/iron = 1000, /datum/material/glass = 500) build_path = /obj/item/assembly/infra category = list("initial", "Misc") @@ -164,7 +164,7 @@ name = "Timer" id = "timer" build_type = AUTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 50) + materials = list(/datum/material/iron = 500, /datum/material/glass = 50) build_path = /obj/item/assembly/timer category = list("initial", "Misc") @@ -172,7 +172,7 @@ name = "Voice Analyser" id = "voice_analyser" build_type = AUTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 50) + materials = list(/datum/material/iron = 500, /datum/material/glass = 50) build_path = /obj/item/assembly/voice category = list("initial", "Misc") @@ -180,7 +180,7 @@ name = "Proximity Sensor" id = "prox_sensor" build_type = AUTOLATHE - materials = list(MAT_METAL = 800, MAT_GLASS = 200) + materials = list(/datum/material/iron = 800, /datum/material/glass = 200) build_path = /obj/item/assembly/prox_sensor category = list("initial", "Misc") @@ -188,7 +188,7 @@ name = "Box of Foam Darts" id = "foam_dart" build_type = AUTOLATHE - materials = list(MAT_METAL = 500) + materials = list(/datum/material/iron = 500) build_path = /obj/item/ammo_box/foambox category = list("initial", "Misc") @@ -196,7 +196,7 @@ name = "Laptop Frame" id = "laptop" build_type = AUTOLATHE - materials = list(MAT_METAL = 10000, MAT_GLASS = 1000) + materials = list(/datum/material/iron = 10000, /datum/material/glass = 1000) build_path = /obj/item/modular_computer/laptop/buildable category = list("initial","Misc") @@ -204,7 +204,7 @@ name = "Tablet Frame" id = "tablet" build_type = AUTOLATHE - materials = list(MAT_METAL = 2000, MAT_GLASS = 1000) + materials = list(/datum/material/iron = 2000, /datum/material/glass = 1000) build_path = /obj/item/modular_computer/tablet category = list("initial","Misc") @@ -212,7 +212,7 @@ name = "Slime Scanner" id = "slime_scanner" build_type = AUTOLATHE - materials = list(MAT_METAL = 300, MAT_GLASS = 200) + materials = list(/datum/material/iron = 300, /datum/material/glass = 200) build_path = /obj/item/slime_scanner category = list("initial", "Misc") @@ -220,7 +220,7 @@ name = "Pet Carrier" id = "pet_carrier" build_type = AUTOLATHE - materials = list(MAT_METAL = 7500, MAT_GLASS = 100) + materials = list(/datum/material/iron = 7500, /datum/material/glass = 100) build_path = /obj/item/pet_carrier category = list("initial", "Misc") @@ -228,7 +228,7 @@ name = "Package Wrapping" id = "packagewrap" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 200, MAT_GLASS = 200) + materials = list(/datum/material/iron = 200, /datum/material/glass = 200) build_path = /obj/item/stack/packageWrap category = list("initial", "Misc","Equipment") maxstack = 30 @@ -237,7 +237,7 @@ name = "Holodisk" id = "holodisk" build_type = AUTOLATHE - materials = list(MAT_METAL = 100, MAT_GLASS = 100) + materials = list(/datum/material/iron = 100, /datum/material/glass = 100) build_path = /obj/item/disk/holodisk category = list("initial", "Misc") @@ -245,7 +245,7 @@ name = "Lockable Collar" id = "lock_collar" build_type = AUTOLATHE - materials = list(MAT_METAL = 1200, MAT_GLASS = 100) + materials = list(/datum/material/iron = 1200, /datum/material/glass = 100) build_path = /obj/item/clothing/neck/petcollar/locked category = list("initial", "Misc") @@ -253,6 +253,6 @@ name = "Collar Key" id = "collar_key" build_type = AUTOLATHE - materials = list(MAT_METAL = 300, MAT_GLASS = 150) + materials = list(/datum/material/iron = 300, /datum/material/glass = 150) build_path = /obj/item/key/collar category = list("initial", "Misc") diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_tools.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_tools.dm index 6affacf1b1..8288ceff23 100644 --- a/code/modules/research/designs/autolathe_desings/autolathe_designs_tools.dm +++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_tools.dm @@ -8,7 +8,7 @@ name = "Bucket" id = "bucket" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 200) + materials = list(/datum/material/iron = 200) build_path = /obj/item/reagent_containers/glass/bucket category = list("initial","Tools","Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_SERVICE @@ -17,7 +17,7 @@ name = "Pocket Crowbar" id = "crowbar" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 50) + materials = list(/datum/material/iron = 50) build_path = /obj/item/crowbar category = list("initial","Tools","Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE @@ -26,7 +26,7 @@ name = "Flashlight" id = "flashlight" build_type = AUTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 20) + materials = list(/datum/material/iron = 50, /datum/material/glass = 20) build_path = /obj/item/flashlight category = list("initial","Tools") @@ -34,7 +34,7 @@ name = "Fire Extinguisher" id = "extinguisher" build_type = AUTOLATHE - materials = list(MAT_METAL = 90) + materials = list(/datum/material/iron = 90) build_path = /obj/item/extinguisher category = list("initial","Tools") @@ -42,15 +42,15 @@ name = "Pocket Fire Extinguisher" id = "pocketfireextinguisher" build_type = AUTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 40) + materials = list(/datum/material/iron = 50, /datum/material/glass = 40) build_path = /obj/item/extinguisher/mini category = list("initial","Tools") /datum/design/multitool name = "Multitool" id = "multitool" - build_type = AUTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 20) + build_type = AUTOLATHE | PROTOLATHE + materials = list(/datum/material/iron = 50, /datum/material/glass = 20) build_path = /obj/item/multitool category = list("initial","Tools","Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE @@ -59,7 +59,7 @@ name = "Analyzer" id = "analyzer" build_type = AUTOLATHE - materials = list(MAT_METAL = 30, MAT_GLASS = 20) + materials = list(/datum/material/iron = 30, /datum/material/glass = 20) build_path = /obj/item/analyzer category = list("initial","Tools") @@ -67,7 +67,7 @@ name = "T-Ray Scanner" id = "tscanner" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 150) + materials = list(/datum/material/iron = 150) build_path = /obj/item/t_scanner category = list("initial","Tools","Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -76,7 +76,7 @@ name = "Welding Tool" id = "welding_tool" build_type = AUTOLATHE - materials = list(MAT_METAL = 70, MAT_GLASS = 20) + materials = list(/datum/material/iron = 70, /datum/material/glass = 20) build_path = /obj/item/weldingtool category = list("initial","Tools","Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE @@ -85,7 +85,7 @@ name = "Emergency Welding Tool" id = "mini_welding_tool" build_type = AUTOLATHE - materials = list(MAT_METAL = 30, MAT_GLASS = 10) + materials = list(/datum/material/iron = 30, /datum/material/glass = 10) build_path = /obj/item/weldingtool/mini category = list("initial","Tools") @@ -93,7 +93,7 @@ name = "Screwdriver" id = "screwdriver" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 75) + materials = list(/datum/material/iron = 75) build_path = /obj/item/screwdriver category = list("initial","Tools","Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE @@ -101,7 +101,7 @@ name = "Wirecutters" id = "wirecutters" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 80) + materials = list(/datum/material/iron = 80) build_path = /obj/item/wirecutters category = list("initial","Tools","Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE @@ -110,7 +110,7 @@ name = "Wrench" id = "wrench" build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 150) + materials = list(/datum/material/iron = 150) build_path = /obj/item/wrench category = list("initial","Tools","Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE @@ -119,7 +119,7 @@ name = "Welding Helmet" id = "welding_helmet" build_type = AUTOLATHE - materials = list(MAT_METAL = 1750, MAT_GLASS = 400) + materials = list(/datum/material/iron = 1750, /datum/material/glass = 400) build_path = /obj/item/clothing/head/welding category = list("initial","Tools") @@ -127,7 +127,7 @@ name = "Cable Coil" id = "cable_coil" build_type = AUTOLATHE - materials = list(MAT_METAL = 10, MAT_GLASS = 5) + materials = list(/datum/material/iron = 10, /datum/material/glass = 5) build_path = /obj/item/stack/cable_coil/random category = list("initial","Tools","Tool Designs") maxstack = 30 @@ -137,7 +137,7 @@ name = "Toolbox" id = "tool_box" build_type = AUTOLATHE - materials = list(MAT_METAL = 500) + materials = list(MAT_CATEGORY_RIGID = 500) build_path = /obj/item/storage/toolbox category = list("initial","Tools") @@ -145,7 +145,7 @@ name = "Spraycan" id = "spraycan" build_type = AUTOLATHE - materials = list(MAT_METAL = 100, MAT_GLASS = 100) + materials = list(/datum/material/iron = 100, /datum/material/glass = 100) build_path = /obj/item/toy/crayon/spraycan category = list("initial", "Tools") @@ -153,6 +153,6 @@ name = "Geiger Counter" id = "geigercounter" build_type = AUTOLATHE - materials = list(MAT_METAL = 150, MAT_GLASS = 150) + materials = list(/datum/material/iron = 150, /datum/material/glass = 150) build_path = /obj/item/geiger_counter category = list("initial", "Tools") diff --git a/code/modules/research/designs/autoylathe_designs.dm b/code/modules/research/designs/autoylathe_designs.dm index d54dce9e8a..7811cfdaad 100644 --- a/code/modules/research/designs/autoylathe_designs.dm +++ b/code/modules/research/designs/autoylathe_designs.dm @@ -13,508 +13,508 @@ /datum/design/autoylathe/balloon name = "Empty Water balloon" id = "waterballoon" - materials = list(MAT_PLASTIC = 50) + materials = list(/datum/material/plastic = 50) build_path = /obj/item/toy/balloon category = list("initial", "Toys") /datum/design/autoylathe/spinningtoy name = "Toy Singularity" id = "singuloutoy" - materials = list(MAT_PLASTIC = 500) + materials = list(/datum/material/plastic = 500) build_path = /obj/item/toy/spinningtoy category = list("initial", "Toys") /datum/design/autoylathe/capgun name = "Cap Gun" id = "capgun" - materials = list(MAT_PLASTIC = 500) + materials = list(/datum/material/plastic = 500) build_path = /obj/item/toy/gun category = list("initial", "Pistols") /datum/design/autoylathe/capgunammo name = "Capgun Ammo" id = "capgunammo" - materials = list(MAT_PLASTIC = 50) + materials = list(/datum/material/plastic = 50) build_path = /obj/item/toy/ammo/gun category = list("initial", "misc") /datum/design/autoylathe/toysword name = "Toy Sword" id = "toysword" - materials = list(MAT_PLASTIC = 500) + materials = list(/datum/material/plastic = 500) build_path = /obj/item/toy/sword category = list("initial", "Melee") /datum/design/autoylathe/foamblade name = "Foam Armblade" id = "foamblade" - materials = list(MAT_PLASTIC = 500) + materials = list(/datum/material/plastic = 500) build_path = /obj/item/toy/foamblade category = list("initial", "Melee") /datum/design/autoylathe/windupbox name = "Wind Up Toolbox" id = "windupbox" - materials = list(MAT_PLASTIC = 500) + materials = list(/datum/material/plastic = 500) build_path = /obj/item/toy/windupToolbox category = list("initial", "Toys") /datum/design/autoylathe/toydualsword name = "Double-Bladed Toy Sword" id = "dbtoysword" - materials = list(MAT_PLASTIC = 1000) + materials = list(/datum/material/plastic = 1000) build_path = /obj/item/twohanded/dualsaber/toy category = list("initial", "Melee") /datum/design/autoylathe/toykatana name = "Replica Katana" id = "toykatana" - materials = list(MAT_PLASTIC = 50, MAT_METAL = 450) + materials = list(/datum/material/plastic = 50, /datum/material/iron = 450) build_path = /obj/item/toy/katana category = list("initial", "Melee") /datum/design/autoylathe/snappop name = "Snap Pop" id = "snappop_phoenix" - materials = list(MAT_PLASTIC = 50) + materials = list(/datum/material/plastic = 50) build_path = /obj/item/toy/snappop category = list("initial", "Toys") /datum/design/autoylathe/mech/model1 name = "Toy Ripley" id = "toymech1" - materials = list(MAT_PLASTIC = 250) + materials = list(/datum/material/plastic = 250) build_path = /obj/item/toy/prize/ripley /datum/design/autoylathe/mech/model2 name = "Toy Firefighter Ripley" id = "toymech2" - materials = list(MAT_PLASTIC = 250) + materials = list(/datum/material/plastic = 250) build_path = /obj/item/toy/prize/fireripley /datum/design/autoylathe/mech/contraband/model3 name = "Toy Deathsquad fireripley " id = "toymech3" - materials = list(MAT_PLASTIC = 250) + materials = list(/datum/material/plastic = 250) build_path = /obj/item/toy/prize/deathripley /datum/design/autoylathe/mech/model4 name = "Toy Gygax" id = "toymech4" - materials = list(MAT_PLASTIC = 250) + materials = list(/datum/material/plastic = 250) build_path = /obj/item/toy/prize/gygax /datum/design/autoylathe/mech/model5 name = "Toy Durand" id = "toymech5" - materials = list(MAT_PLASTIC = 250) + materials = list(/datum/material/plastic = 250) build_path = /obj/item/toy/prize/durand /datum/design/autoylathe/mech/contraband/model6 name = "Toy H.O.N.K." id = "toymech6" - materials = list(MAT_PLASTIC = 250) + materials = list(/datum/material/plastic = 250) build_path = /obj/item/toy/prize/honk /datum/design/autoylathe/mech/contraband/model7 name = "Toy Marauder" id = "toymech7" - materials = list(MAT_PLASTIC = 250) + materials = list(/datum/material/plastic = 250) build_path = /obj/item/toy/prize/marauder /datum/design/autoylathe/mech/contraband/model8 name = "Toy Seraph" id = "toymech8" - materials = list(MAT_PLASTIC = 250) + materials = list(/datum/material/plastic = 250) build_path = /obj/item/toy/prize/seraph /datum/design/autoylathe/mech/contraband/model9 name = "Toy Mauler" id = "toymech9" - materials = list(MAT_PLASTIC = 250) + materials = list(/datum/material/plastic = 250) build_path = /obj/item/toy/prize/mauler /datum/design/autoylathe/mech/model10 name = "Toy Odysseus" id = "toymech10" - materials = list(MAT_PLASTIC = 250) + materials = list(/datum/material/plastic = 250) build_path = /obj/item/toy/prize/odysseus /datum/design/autoylathe/mech/model11 name = "Toy Phazon" id = "toymech11" - materials = list(MAT_PLASTIC = 250) + materials = list(/datum/material/plastic = 250) build_path = /obj/item/toy/prize/phazon /datum/design/autoylathe/mech/contraband/model12 name = "Toy Reticence" id = "toymech12" - materials = list(MAT_PLASTIC = 250) + materials = list(/datum/material/plastic = 250) build_path = /obj/item/toy/prize/reticence category = list("hacked", "Figurines") /datum/design/autoylathe/talking/AI name = "Toy AI" id = "ToyAICore" - materials = list(MAT_PLASTIC = 250, MAT_METAL = 50) + materials = list(/datum/material/plastic = 250, /datum/material/iron = 50) build_path = /obj/item/toy/talking/AI category = list("initial", "Toys") /datum/design/autoylathe/talking/codex_gigas name = "Toy Codex Gigas" id = "ToyCodex" - materials = list(MAT_PLASTIC = 250, MAT_METAL = 50) + materials = list(/datum/material/plastic = 250, /datum/material/iron = 50) build_path = /obj/item/toy/talking/codex_gigas category = list("initial", "Toys") /datum/design/autoylathe/talking/owl name = "Owl Action Figure" id = "owlactionfig" - materials = list(MAT_PLASTIC = 250, MAT_METAL = 50) + materials = list(/datum/material/plastic = 250, /datum/material/iron = 50) build_path = /obj/item/toy/talking/owl /datum/design/autoylathe/talking/griffin name = "Griffon Action Figure" id = "griffinactionfig" - materials = list(MAT_PLASTIC = 250, MAT_METAL = 50) + materials = list(/datum/material/plastic = 250, /datum/material/iron = 50) build_path = /obj/item/toy/talking/griffin /datum/design/autoylathe/cards name = "Deck of Cards" id = "carddeck" - materials = list(MAT_PLASTIC = 250) + materials = list(/datum/material/plastic = 250) build_path = /obj/item/toy/cards/deck category = list("initial", "Toys") /datum/design/autoylathe/nuke name = "Nuclear Fission Explosive Toy" id = "nuketoy" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/nuke category = list("initial", "Toys") /datum/design/autoylathe/minimeteor name = "Mini-Meteor" id = "meattoy" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/minimeteor category = list("hacked", "Misc") /datum/design/autoylathe/redbutton name = "Big Red Button" id = "redbutton" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/redbutton category = list("initial", "Toys") /datum/design/autoylathe/beach_ball name = "Beach Ball" id = "beachball" - materials = list(MAT_PLASTIC = 500) + materials = list(/datum/material/plastic = 500) build_path = /obj/item/toy/beach_ball category = list("initial", "Toys") /datum/design/autoylathe/clockwork_watch name = "Clockwork Watch" id = "clockwatch" - materials = list(MAT_PLASTIC = 1000) + materials = list(/datum/material/plastic = 1000) build_path = /obj/item/toy/clockwork_watch category = list("initial", "misc") /datum/design/autoylathe/dagger name = "Toy Dagger" id = "toydagger" - materials = list(MAT_PLASTIC = 1000) + materials = list(/datum/material/plastic = 1000) build_path = /obj/item/toy/toy_dagger category = list("initial", "Melee") /datum/design/autoylathe/xeno name = "Xenomorph" id = "xenomorph" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/toy_xeno /datum/design/autoylathe/cattoy name = "Toy Mouse" id = "cattoy" - materials = list(MAT_PLASTIC = 500) + materials = list(/datum/material/plastic = 500) build_path = /obj/item/toy/cattoy category = list("initial", "Toys") /datum/design/autoylathe/figure/assistant name = "Assistant" id = "assfigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/assistant /datum/design/autoylathe/figure/atmos name = "Atmos Tech" id = "atmfigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/atmos /datum/design/autoylathe/figure/bartender name = "Bartender" id = "barfigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/bartender /datum/design/autoylathe/figure/botanist name = "Botanist" id = "botfigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/botanist /datum/design/autoylathe/figure/captain name = "Captain" id = "capfigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/captain /datum/design/autoylathe/figure/cargotech name = "Cargo Technician" id = "carfigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/cargotech /datum/design/autoylathe/figure/ce name = "Chief Engineer" id = "cefigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/ce /datum/design/autoylathe/figure/chaplain name = "Chaplain" id = "chafigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/chaplain /datum/design/autoylathe/figure/chef name = "Chef" id = "chefigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/chef /datum/design/autoylathe/figure/chemist name = "Chemist" id = "chmfigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/chemist /datum/design/autoylathe/figure/clown name = "Clown" id = "clnfigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/clown /datum/design/autoylathe/figure/cmo name = "Chief Medical Officer" id = "cmofigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/cmo /datum/design/autoylathe/figure/curator name = "Curator" id = "curfigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/curator /datum/design/autoylathe/figure/borg name = "Cyborg" id = "cybfigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/borg /datum/design/autoylathe/figure/detective name = "Detective" id = "detfigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/detective /datum/design/autoylathe/figure/engineer name = "Engineer" id = "engfigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/engineer /datum/design/autoylathe/figure/geneticist name = "Geneticist" id = "genfigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/geneticist /datum/design/autoylathe/figure/hop name = "Head of Personnel" id = "hopfigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/hop /datum/design/autoylathe/figure/hos name = "Head of Security" id = "hosfigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/hos /datum/design/autoylathe/figure/janitor name = "Janitor" id = "janfigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/janitor /datum/design/autoylathe/figure/lawyer name = "Lawyer" id = "lawfigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/lawyer /datum/design/autoylathe/figure/md name = "Medical Doctor" id = "medfigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/md /datum/design/autoylathe/figure/mime name = "Mime" id = "mimfigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/mime /datum/design/autoylathe/figure/miner name = "Miner" id = "minfigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/miner /datum/design/autoylathe/figure/rd name = "Research Director" id = "rdfigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/rd /datum/design/autoylathe/figure/robotocist name = "Robotocist" id = "robfigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/roboticist /datum/design/autoylathe/figure/qm name = "Quartermaster" id = "qtmfigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/qm /datum/design/autoylathe/figure/scientist name = "Scientist" id = "scifigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/scientist /datum/design/autoylathe/figure/secofficer name = "Security Officer" id = "secfigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/secofficer /datum/design/autoylathe/figure/virologist name = "Virologist" id = "virfigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/virologist /datum/design/autoylathe/figure/warden name = "Warden" id = "warfigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/warden /datum/design/autoylathe/figure/dsquad name = "Deathsquad" id = "dsqfigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/dsquad category = list("hacked", "Figurines") /datum/design/autoylathe/figure/ian name = "Ian" id = "ianfigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/ian category = list("hacked", "Figurines") /datum/design/autoylathe/figure/ninja name = "Ninja" id = "ninfigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/ninja category = list("hacked", "Figurines") /datum/design/autoylathe/figure/syndie name = "Nuclear Operative" id = "nucfigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/syndie category = list("hacked", "Figurines") /datum/design/autoylathe/figure/wizard name = "Wizard" id = "wizfigure" - materials = list(MAT_PLASTIC = 500, MAT_METAL = 50) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 50) build_path = /obj/item/toy/figure/wizard category = list("hacked", "Figurines") /datum/design/autoylathe/dildo name = "Customizable Dildo" id = "dildo" - materials = list(MAT_PLASTIC = 2000) + materials = list(/datum/material/plastic = 2000) build_path = /obj/item/dildo/custom category = list("initial", "Adult") /datum/design/autoylathe/collar name = "Collar" id = "collar" - materials = list(MAT_PLASTIC = 250, MAT_METAL = 50) + materials = list(/datum/material/plastic = 250, /datum/material/iron = 50) build_path = /obj/item/clothing/neck/petcollar category = list("initial", "Adult") /datum/design/autoylathe/lastag/blue/gun name = "Blue Lasertag Rifle" id = "lastagrifleblue" - materials = list(MAT_PLASTIC = 2000, MAT_METAL = 500, MAT_GLASS = 500) + materials = list(/datum/material/plastic = 2000, /datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/gun/energy/laser/bluetag category = list("initial", "Rifles") /datum/design/autoylathe/lastag/red/gun name = "Red Lasertag Rifle" id = "lastagriflered" - materials = list(MAT_PLASTIC = 2000, MAT_METAL = 500, MAT_GLASS = 500) + materials = list(/datum/material/plastic = 2000, /datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/gun/energy/laser/redtag category = list("initial", "Rifles") /datum/design/autoylathe/lastag/blue/hat name = "Blue Lasertag Helmet" id = "lastaghatblue" - materials = list(MAT_PLASTIC = 4000, MAT_METAL = 1000, MAT_GLASS = 500) + materials = list(/datum/material/plastic = 4000, /datum/material/iron = 1000, /datum/material/glass = 500) build_path = /obj/item/clothing/head/helmet/bluetaghelm category = list("initial", "Armor") /datum/design/autoylathe/lastag/blue/armor name = "Blue Lasertag Armor" id = "lastagarmorblue" - materials = list(MAT_PLASTIC = 8000, MAT_METAL = 2000, MAT_GLASS = 100) + materials = list(/datum/material/plastic = 8000, /datum/material/iron = 2000, /datum/material/glass = 100) build_path = /obj/item/clothing/suit/bluetag category = list("initial", "Armor") /datum/design/autoylathe/lastag/red/hat name = "Red Lasertag Helmet" id = "lastaghelmetred" - materials = list(MAT_PLASTIC = 4000, MAT_METAL = 1000, MAT_GLASS = 500) + materials = list(/datum/material/plastic = 4000, /datum/material/iron = 1000, /datum/material/glass = 500) build_path = /obj/item/clothing/head/helmet/redtaghelm category = list("initial", "Armor") /datum/design/autoylathe/lastag/red/armor name = "Red Lasertag Armor" id = "lastagarmorred" - materials = list(MAT_PLASTIC = 8000, MAT_METAL = 2000, MAT_GLASS = 1000) + materials = list(/datum/material/plastic = 8000, /datum/material/iron = 2000, /datum/material/glass = 1000) build_path = /obj/item/clothing/suit/redtag category = list("initial", "Armor") @@ -544,14 +544,14 @@ /datum/design/autoylathe/lastag/blue name = "Blue Lasertag Kit" id = "lastagkitblue" - materials = list(MAT_PLASTIC = 16000, MAT_METAL = 4000, MAT_GLASS = 2000) + materials = list(/datum/material/plastic = 16000, /datum/material/iron = 4000, /datum/material/glass = 2000) build_path = /obj/item/storage/box/blueteam category = list("initial", "Misc") /datum/design/autoylathe/lastag/red name = "Red Lasertag Kit" id = "lastagkitred" - materials = list(MAT_PLASTIC = 16000, MAT_METAL = 4000, MAT_GLASS = 2000) + materials = list(/datum/material/plastic = 16000, /datum/material/iron = 4000, /datum/material/glass = 2000) build_path = /obj/item/storage/box/redteam category = list("initial", "Misc") @@ -559,7 +559,7 @@ name = "Foam Force X9 Rifle" id = "foam_x9" build_type = AUTOYLATHE - materials = list(MAT_PLASTIC = 4000, MAT_METAL = 500) + materials = list(/datum/material/plastic = 4000, /datum/material/iron = 500) build_path = /obj/item/gun/ballistic/automatic/x9/toy category = list("initial", "Rifles") @@ -567,7 +567,7 @@ name = "Box of Foam Darts" id = "foam_dart" build_type = AUTOYLATHE - materials = list(MAT_PLASTIC = 500, MAT_METAL = 100) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 100) build_path = /obj/item/ammo_box/foambox category = list("initial", "Misc") @@ -575,7 +575,7 @@ name = "Foam Force Magpistol" id = "magfoam_launcher" build_type = AUTOYLATHE - materials = list(MAT_PLASTIC = 2000, MAT_METAL = 250) + materials = list(/datum/material/plastic = 2000, /datum/material/iron = 250) build_path = /obj/item/gun/ballistic/shotgun/toy/mag category = list("initial", "Pistols") @@ -583,7 +583,7 @@ name = "Foam Force MagRifle" id = "foam_magrifle" build_type = AUTOYLATHE - materials = list(MAT_PLASTIC = 4000, MAT_METAL = 500) + materials = list(/datum/material/plastic = 4000, /datum/material/iron = 500) build_path = /obj/item/gun/ballistic/automatic/toy/magrifle category = list("initial", "Rifles") @@ -591,7 +591,7 @@ name = "MagTag Hyper Rifle" id = "foam_hyperburst" build_type = AUTOYLATHE - materials = list(MAT_PLASTIC = 4000, MAT_METAL = 2000, MAT_GLASS = 1000) + materials = list(/datum/material/plastic = 4000, /datum/material/iron = 2000, /datum/material/glass = 1000) build_path = /obj/item/gun/energy/laser/practice/hyperburst category = list("initial", "Rifles") @@ -599,7 +599,7 @@ name = "Foam Force Stealth Pistol" id = "foam_sp" build_type = AUTOYLATHE - materials = list(MAT_PLASTIC = 2000, MAT_METAL = 1000) + materials = list(/datum/material/plastic = 2000, /datum/material/iron = 1000) build_path = /obj/item/gun/ballistic/automatic/toy/pistol/stealth category = list("initial", "Pistols") @@ -607,7 +607,7 @@ name = "RayTag Gun" id = "toyray" build_type = AUTOYLATHE - materials = list(MAT_PLASTIC = 2000, MAT_METAL = 1000, MAT_GLASS = 1000) + materials = list(/datum/material/plastic = 2000, /datum/material/iron = 1000, /datum/material/glass = 1000) build_path = /obj/item/gun/energy/laser/practice/raygun category = list("initial", "Pistols") @@ -615,7 +615,7 @@ name = "Foam Force AM4-C Rifle" id = "foam_am4c" build_type = AUTOYLATHE - materials = list(MAT_PLASTIC = 4000, MAT_METAL = 500) + materials = list(/datum/material/plastic = 4000, /datum/material/iron = 500) build_path = /obj/item/gun/ballistic/automatic/AM4C category = list("initial", "Rifles") @@ -623,7 +623,7 @@ name = "Replica F3 Justicar" id = "foam_f3" build_type = AUTOYLATHE - materials = list(MAT_PLASTIC = 2000, MAT_METAL = 250) + materials = list(/datum/material/plastic = 2000, /datum/material/iron = 250) build_path = /obj/item/toy/gun/justicar category = list("initial", "Pistols") @@ -631,7 +631,7 @@ name = "pump-action plastic blaster" id = "toy_blaster" build_type = AUTOYLATHE - materials = list(MAT_PLASTIC = 2000, MAT_METAL = 750, MAT_GLASS = 1000) + materials = list(/datum/material/plastic = 2000, /datum/material/iron = 750, /datum/material/glass = 1000) build_path = /obj/item/gun/energy/pumpaction/toy category = list("initial", "Rifles") @@ -639,7 +639,7 @@ name = "Box of Caps" id = "capammo" build_type = AUTOYLATHE - materials = list(MAT_METAL = 10, MAT_GLASS = 10) + materials = list(/datum/material/iron = 10, /datum/material/glass = 10) build_path = /obj/item/toy/ammo/gun category = list("initial", "Misc") @@ -647,7 +647,7 @@ name = "Foam Force SMG" id = "foam_smg" build_type = AUTOYLATHE - materials = list(MAT_PLASTIC = 2000, MAT_METAL = 250) + materials = list(/datum/material/plastic = 2000, /datum/material/iron = 250) build_path = /obj/item/gun/ballistic/automatic/toy/unrestricted category = list("initial", "Pistols") @@ -655,7 +655,7 @@ name = "Foam Force Pistol" id = "foam_pistol" build_type = AUTOYLATHE - materials = list(MAT_PLASTIC = 2000, MAT_METAL = 250) + materials = list(/datum/material/plastic = 2000, /datum/material/iron = 250) build_path = /obj/item/gun/ballistic/automatic/toy/pistol/unrestricted category = list("initial", "Pistols") @@ -663,7 +663,7 @@ name = "Foam Force Shotgun" id = "foam_shotgun" build_type = AUTOYLATHE - materials = list(MAT_PLASTIC = 4000, MAT_METAL = 500) + materials = list(/datum/material/plastic = 4000, /datum/material/iron = 500) build_path = /obj/item/gun/ballistic/shotgun/toy/unrestricted category = list("initial", "Rifles") @@ -671,7 +671,7 @@ name = "Box of Lastag Red Foam Darts" id = "redfoam_dart" build_type = AUTOYLATHE - materials = list(MAT_PLASTIC = 500, MAT_METAL = 100) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 100) build_path = /obj/item/ammo_box/foambox/tag/red category = list("initial", "Misc") @@ -679,7 +679,7 @@ name = "Box of Lastag Blue Foam Darts" id = "bluefoam_dart" build_type = AUTOYLATHE - materials = list(MAT_PLASTIC = 500, MAT_METAL = 100) + materials = list(/datum/material/plastic = 500, /datum/material/iron = 100) build_path = /obj/item/ammo_box/foambox/tag/blue category = list("initial", "Misc") @@ -687,7 +687,7 @@ name = "Foam Force Crossbow" id = "foam_bow" build_type = AUTOYLATHE - materials = list(MAT_PLASTIC = 2000, MAT_METAL = 250) + materials = list(/datum/material/plastic = 2000, /datum/material/iron = 250) build_path = /obj/item/gun/ballistic/shotgun/toy/crossbow category = list("initial", "Pistols") @@ -695,7 +695,7 @@ name = "Donksoft C20R" id = "foam_c20" build_type = AUTOYLATHE - materials = list(MAT_PLASTIC = 4000, MAT_METAL = 500) + materials = list(/datum/material/plastic = 4000, /datum/material/iron = 500) build_path = /obj/item/gun/ballistic/automatic/c20r/toy/unrestricted category = list("hacked", "Rifles") @@ -703,6 +703,6 @@ name = "Donksoft LMG" id = "foam_LMG" build_type = AUTOYLATHE - materials = list(MAT_PLASTIC = 4000, MAT_METAL = 500) + materials = list(/datum/material/plastic = 4000, /datum/material/iron = 500) build_path = /obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted category = list("hacked", "Rifles") diff --git a/code/modules/research/designs/biogenerator_designs.dm b/code/modules/research/designs/biogenerator_designs.dm index dd55697bee..e82dffbe07 100644 --- a/code/modules/research/designs/biogenerator_designs.dm +++ b/code/modules/research/designs/biogenerator_designs.dm @@ -3,18 +3,18 @@ /////////////////////////////////// /datum/design/milk - name = "10 Milk" + name = "10u Milk" id = "milk" build_type = BIOGENERATOR - materials = list(MAT_BIOMASS = 20) + materials = list(/datum/material/biomass = 20) make_reagents = list(/datum/reagent/consumable/milk = 10) category = list("initial","Food") /datum/design/cream - name = "10 Cream" + name = "10u Cream" id = "cream" build_type = BIOGENERATOR - materials = list(MAT_BIOMASS = 30) + materials = list(/datum/material/biomass = 30) make_reagents = list(/datum/reagent/consumable/cream = 10) category = list("initial","Food") @@ -22,7 +22,7 @@ name = "Milk Carton" id = "milk_carton" build_type = BIOGENERATOR - materials = list(MAT_BIOMASS = 100) + materials = list(/datum/material/biomass = 100) build_path = /obj/item/reagent_containers/food/condiment/milk category = list("initial","Food") @@ -30,7 +30,7 @@ name = "Cream Carton" id = "cream_carton" build_type = BIOGENERATOR - materials = list(MAT_BIOMASS = 300) + materials = list(/datum/material/biomass = 300) build_path = /obj/item/reagent_containers/food/drinks/bottle/cream category = list("initial","Food") @@ -38,7 +38,7 @@ name = "10u Black Pepper" id = "black_pepper" build_type = BIOGENERATOR - materials = list(MAT_BIOMASS = 25) + materials = list(/datum/material/biomass = 25) make_reagents = list(/datum/reagent/consumable/blackpepper = 10) category = list("initial","Food") @@ -46,7 +46,7 @@ name = "Pepper Mill" id = "pepper_mill" build_type = BIOGENERATOR - materials = list(MAT_BIOMASS = 50) + materials = list(/datum/material/biomass = 50) build_path = /obj/item/reagent_containers/food/condiment/peppermill make_reagents = list() category = list("initial","Food") @@ -55,15 +55,15 @@ name = "10u Universal Enzyme" id = "enzyme" build_type = BIOGENERATOR - materials = list(MAT_BIOMASS = 30) - make_reagents = list("enzyme" = 10) + materials = list(/datum/material/biomass = 30) + make_reagents = list(/datum/reagent/consumable/enzyme = 10) category = list("initial","Food") /datum/design/flour_sack name = "Flour Sack" id = "flour_sack" build_type = BIOGENERATOR - materials = list(MAT_BIOMASS = 150) + materials = list(/datum/material/biomass = 150) build_path = /obj/item/reagent_containers/food/condiment/flour category = list("initial","Food") @@ -71,7 +71,7 @@ name = "Monkey Cube" id = "mcube" build_type = BIOGENERATOR - materials = list(MAT_BIOMASS = 250) + materials = list(/datum/material/biomass = 250) build_path = /obj/item/reagent_containers/food/snacks/monkeycube category = list("initial", "Food") @@ -79,7 +79,7 @@ name = "Biomass Meat Slab" id = "smeat" build_type = BIOGENERATOR - materials = list(MAT_BIOMASS = 175) + materials = list(/datum/material/biomass = 175) build_path = /obj/item/reagent_containers/food/snacks/meat/slab/synthmeat category = list("initial", "Food") @@ -87,7 +87,7 @@ name = "E-Z Nutrient" id = "ez_nut" build_type = BIOGENERATOR - materials = list(MAT_BIOMASS = 10) + materials = list(/datum/material/biomass = 10) build_path = /obj/item/reagent_containers/glass/bottle/nutrient/ez category = list("initial","Botany Chemicals") @@ -95,7 +95,7 @@ name = "Left 4 Zed" id = "l4z_nut" build_type = BIOGENERATOR - materials = list(MAT_BIOMASS = 20) + materials = list(/datum/material/biomass = 20) build_path = /obj/item/reagent_containers/glass/bottle/nutrient/l4z category = list("initial","Botany Chemicals") @@ -103,7 +103,7 @@ name = "Robust Harvest" id = "rh_nut" build_type = BIOGENERATOR - materials = list(MAT_BIOMASS = 25) + materials = list(/datum/material/biomass = 25) build_path = /obj/item/reagent_containers/glass/bottle/nutrient/rh category = list("initial","Botany Chemicals") @@ -111,7 +111,7 @@ name = "Weed Killer" id = "weed_killer" build_type = BIOGENERATOR - materials = list(MAT_BIOMASS = 50) + materials = list(/datum/material/biomass = 50) build_path = /obj/item/reagent_containers/glass/bottle/killer/weedkiller category = list("initial","Botany Chemicals") @@ -119,15 +119,31 @@ name = "Pest Killer" id = "pest_spray" build_type = BIOGENERATOR - materials = list(MAT_BIOMASS = 50) + materials = list(/datum/material/biomass = 50) build_path = /obj/item/reagent_containers/glass/bottle/killer/pestkiller category = list("initial","Botany Chemicals") +/datum/design/ammonia + name = "10u Ammonia" + id = "ammonia_biogen" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 25) + make_reagents = list(/datum/reagent/ammonia = 10) + category = list("initial","Botany Chemicals") + +/datum/design/saltpetre + name = "10u Saltpetre" + id = "saltpetre_biogen" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 75) + make_reagents = list(/datum/reagent/saltpetre = 10) + category = list("initial","Botany Chemicals") + /datum/design/botany_bottle name = "Empty Bottle" id = "botany_bottle" build_type = BIOGENERATOR - materials = list(MAT_BIOMASS = 5) + materials = list(/datum/material/biomass = 5) build_path = /obj/item/reagent_containers/glass/bottle/nutrient/empty category = list("initial", "Botany Chemicals") @@ -135,7 +151,7 @@ name = "Roll of Cloth" id = "cloth" build_type = BIOGENERATOR - materials = list(MAT_BIOMASS = 50) + materials = list(/datum/material/biomass = 50) build_path = /obj/item/stack/sheet/cloth category = list("initial","Organic Materials") @@ -143,7 +159,7 @@ name = "Sheet of Cardboard" id = "cardboard" build_type = BIOGENERATOR - materials = list(MAT_BIOMASS = 25) + materials = list(/datum/material/biomass = 25) build_path = /obj/item/stack/sheet/cardboard category = list("initial","Organic Materials") @@ -151,7 +167,7 @@ name = "Sheet of Leather" id = "leather" build_type = BIOGENERATOR - materials = list(MAT_BIOMASS = 150) + materials = list(/datum/material/biomass = 150) build_path = /obj/item/stack/sheet/leather category = list("initial","Organic Materials") @@ -159,7 +175,7 @@ name = "Security Belt" id = "secbelt" build_type = BIOGENERATOR - materials = list(MAT_BIOMASS = 300) + materials = list(/datum/material/biomass = 300) build_path = /obj/item/storage/belt/security category = list("initial","Organic Materials") @@ -167,7 +183,7 @@ name = "Medical Belt" id = "medbel" build_type = BIOGENERATOR - materials = list(MAT_BIOMASS = 300) + materials = list(/datum/material/biomass = 300) build_path = /obj/item/storage/belt/medical category = list("initial","Organic Materials") @@ -175,7 +191,7 @@ name = "Janitorial Belt" id = "janibelt" build_type = BIOGENERATOR - materials = list(MAT_BIOMASS = 300) + materials = list(/datum/material/biomass = 300) build_path = /obj/item/storage/belt/janitor category = list("initial","Organic Materials") @@ -183,7 +199,7 @@ name = "Shoulder Holster" id = "s_holster" build_type = BIOGENERATOR - materials = list(MAT_BIOMASS = 400) + materials = list(/datum/material/biomass = 400) build_path = /obj/item/storage/belt/holster category = list("initial","Organic Materials") @@ -191,6 +207,6 @@ name = "Rice Hat" id = "rice_hat" build_type = BIOGENERATOR - materials = list(MAT_BIOMASS = 300) + materials = list(/datum/material/biomass = 300) build_path = /obj/item/clothing/head/rice_hat category = list("initial","Organic Materials") diff --git a/code/modules/research/designs/bluespace_designs.dm b/code/modules/research/designs/bluespace_designs.dm index 84fe526cd8..b03b85f99b 100644 --- a/code/modules/research/designs/bluespace_designs.dm +++ b/code/modules/research/designs/bluespace_designs.dm @@ -8,7 +8,7 @@ desc = "A blue space tracking beacon." id = "beacon" build_type = PROTOLATHE - materials = list(MAT_METAL = 150, MAT_GLASS = 100) + materials = list(/datum/material/iron = 150, /datum/material/glass = 100) build_path = /obj/item/beacon category = list("Bluespace Designs") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SECURITY @@ -18,7 +18,7 @@ desc = "A backpack that opens into a localized pocket of bluespace." id = "bag_holding" build_type = PROTOLATHE - materials = list(MAT_GOLD = 3000, MAT_DIAMOND = 1500, MAT_URANIUM = 250, MAT_BLUESPACE = 2000) + materials = list(/datum/material/gold = 3000, /datum/material/diamond = 1500, /datum/material/uranium = 250, /datum/material/bluespace = 2000) build_path = /obj/item/storage/backpack/holding category = list("Bluespace Designs") dangerous_construction = TRUE @@ -29,7 +29,7 @@ desc = "A satchel that opens into a localized pocket of bluespace." id = "satchel_holding" build_type = PROTOLATHE - materials = list(MAT_GOLD = 3000, MAT_DIAMOND = 1500, MAT_URANIUM = 250, MAT_BLUESPACE = 2000) + materials = list(/datum/material/gold = 3000, /datum/material/diamond = 1500, /datum/material/uranium = 250, /datum/material/bluespace = 2000) build_path = /obj/item/storage/backpack/holding/satchel category = list("Bluespace Designs") dangerous_construction = TRUE @@ -40,7 +40,7 @@ desc = "A chemical holding thingy. Mostly used for xenobiology." id = "biobag_holding" build_type = PROTOLATHE - materials = list(MAT_GOLD = 1500, MAT_DIAMOND = 750, MAT_URANIUM = 250, MAT_BLUESPACE = 1000) + materials = list(/datum/material/gold = 1500, /datum/material/diamond = 750, /datum/material/uranium = 250, /datum/material/bluespace = 1000) build_path = /obj/item/storage/bag/bio/holding category = list("Bluespace Designs") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -50,7 +50,7 @@ desc = "A small blue crystal with mystical properties." id = "bluespace_crystal" build_type = PROTOLATHE - materials = list(MAT_DIAMOND = 1500, MAT_PLASMA = 1500) + materials = list(/datum/material/diamond = 1500, /datum/material/plasma = 1500) build_path = /obj/item/stack/ore/bluespace_crystal/artificial category = list("Bluespace Designs") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -60,7 +60,7 @@ desc = "Little thingie that can track its position at all times." id = "telesci_gps" build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 1000) + materials = list(/datum/material/iron = 500, /datum/material/glass = 1000) build_path = /obj/item/gps category = list("Bluespace Designs") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_CARGO @@ -70,7 +70,7 @@ desc = "A device that can desynchronize the user from spacetime." id = "desynchronizer" build_type = PROTOLATHE - materials = list(MAT_METAL = 1000, MAT_GLASS = 500, MAT_SILVER = 1500, MAT_BLUESPACE = 1000) + materials = list(/datum/material/iron = 1000, /datum/material/glass = 500, /datum/material/silver = 1500, /datum/material/bluespace = 1000) build_path = /obj/item/desynchronizer category = list("Bluespace Designs") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -80,7 +80,7 @@ desc = "A mining satchel that can hold an infinite amount of ores." id = "minerbag_holding" build_type = PROTOLATHE - materials = list(MAT_GOLD = 250, MAT_URANIUM = 500) //quite cheap, for more convenience + materials = list(/datum/material/gold = 250, /datum/material/uranium = 500) //quite cheap, for more convenience build_path = /obj/item/storage/bag/ore/holding category = list("Bluespace Designs") departmental_flags = DEPARTMENTAL_FLAG_CARGO diff --git a/code/modules/research/designs/comp_board_designs/comp_board_designs_all_misc.dm b/code/modules/research/designs/comp_board_designs/comp_board_designs_all_misc.dm index 65a435a309..27560f29a1 100644 --- a/code/modules/research/designs/comp_board_designs/comp_board_designs_all_misc.dm +++ b/code/modules/research/designs/comp_board_designs/comp_board_designs_all_misc.dm @@ -3,7 +3,7 @@ name = "Computer Design ( NULL ENTRY )" desc = "A blank compurter board!" build_type = IMPRINTER - materials = list(MAT_GLASS = 1000) + materials = list(/datum/material/glass = 1000) /datum/design/board/arcade_battle name = "Computer Design (Battle Arcade Machine)" diff --git a/code/modules/research/designs/comp_board_designs/comp_board_designs_sci.dm b/code/modules/research/designs/comp_board_designs/comp_board_designs_sci.dm index e0b0a22be6..55171e2221 100644 --- a/code/modules/research/designs/comp_board_designs/comp_board_designs_sci.dm +++ b/code/modules/research/designs/comp_board_designs/comp_board_designs_sci.dm @@ -22,7 +22,7 @@ name = "Computer Design (AI Upload)" desc = "Allows for the construction of circuit boards used to build an AI Upload Console." id = "aiupload" - materials = list(MAT_GLASS = 1000, MAT_GOLD = 2000) + materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000) build_path = /obj/item/circuitboard/computer/aiupload category = list("Computer Boards") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -31,7 +31,7 @@ name = "Computer Design (Cyborg Upload)" desc = "Allows for the construction of circuit boards used to build a Cyborg Upload Console." id = "borgupload" - materials = list(MAT_GLASS = 1000, MAT_GOLD = 2000) + materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000) build_path = /obj/item/circuitboard/computer/borgupload category = list("Computer Boards") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE diff --git a/code/modules/research/designs/computer_part_designs.dm b/code/modules/research/designs/computer_part_designs.dm index a8813b726d..ab487b0aaa 100644 --- a/code/modules/research/designs/computer_part_designs.dm +++ b/code/modules/research/designs/computer_part_designs.dm @@ -6,7 +6,7 @@ name = "Hard Disk Drive" id = "hdd_basic" build_type = PROTOLATHE - materials = list(MAT_METAL = 400, MAT_GLASS = 100) + materials = list(/datum/material/iron = 400, /datum/material/glass = 100) build_path = /obj/item/computer_hardware/hard_drive category = list("Computer Parts") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -15,7 +15,7 @@ name = "Advanced Hard Disk Drive" id = "hdd_advanced" build_type = PROTOLATHE - materials = list(MAT_METAL = 800, MAT_GLASS = 200) + materials = list(/datum/material/iron = 800, /datum/material/glass = 200) build_path = /obj/item/computer_hardware/hard_drive/advanced category = list("Computer Parts") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -24,7 +24,7 @@ name = "Super Hard Disk Drive" id = "hdd_super" build_type = PROTOLATHE - materials = list(MAT_METAL = 1600, MAT_GLASS = 400) + materials = list(/datum/material/iron = 1600, /datum/material/glass = 400) build_path = /obj/item/computer_hardware/hard_drive/super category = list("Computer Parts") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -33,7 +33,7 @@ name = "Cluster Hard Disk Drive" id = "hdd_cluster" build_type = PROTOLATHE - materials = list(MAT_METAL = 3200, MAT_GLASS = 800) + materials = list(/datum/material/iron = 3200, /datum/material/glass = 800) build_path = /obj/item/computer_hardware/hard_drive/cluster category = list("Computer Parts") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -42,7 +42,7 @@ name = "Solid State Drive" id = "ssd_small" build_type = PROTOLATHE - materials = list(MAT_METAL = 800, MAT_GLASS = 200) + materials = list(/datum/material/iron = 800, /datum/material/glass = 200) build_path = /obj/item/computer_hardware/hard_drive/small category = list("Computer Parts") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -51,7 +51,7 @@ name = "Micro Solid State Drive" id = "ssd_micro" build_type = PROTOLATHE - materials = list(MAT_METAL = 400, MAT_GLASS = 100) + materials = list(/datum/material/iron = 400, /datum/material/glass = 100) build_path = /obj/item/computer_hardware/hard_drive/micro category = list("Computer Parts") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -61,7 +61,7 @@ name = "Network Card" id = "netcard_basic" build_type = IMPRINTER - materials = list(MAT_METAL = 250, MAT_GLASS = 100) + materials = list(/datum/material/iron = 250, /datum/material/glass = 100) build_path = /obj/item/computer_hardware/network_card category = list("Computer Parts") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -70,7 +70,7 @@ name = "Advanced Network Card" id = "netcard_advanced" build_type = IMPRINTER - materials = list(MAT_METAL = 500, MAT_GLASS = 200) + materials = list(/datum/material/iron = 500, /datum/material/glass = 200) build_path = /obj/item/computer_hardware/network_card/advanced category = list("Computer Parts") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -79,7 +79,7 @@ name = "Wired Network Card" id = "netcard_wired" build_type = IMPRINTER - materials = list(MAT_METAL = 2500, MAT_GLASS = 400) + materials = list(/datum/material/iron = 2500, /datum/material/glass = 400) build_path = /obj/item/computer_hardware/network_card/wired category = list("Computer Parts") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -89,7 +89,7 @@ name = "Data Disk" id = "portadrive_basic" build_type = IMPRINTER - materials = list(MAT_GLASS = 800) + materials = list(/datum/material/glass = 800) build_path = /obj/item/computer_hardware/hard_drive/portable category = list("Computer Parts") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -98,7 +98,7 @@ name = "Advanced Data Disk" id = "portadrive_advanced" build_type = IMPRINTER - materials = list(MAT_GLASS = 1600) + materials = list(/datum/material/glass = 1600) build_path = /obj/item/computer_hardware/hard_drive/portable/advanced category = list("Computer Parts") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -107,7 +107,7 @@ name = "Super Data Disk" id = "portadrive_super" build_type = IMPRINTER - materials = list(MAT_GLASS = 3200) + materials = list(/datum/material/glass = 3200) build_path = /obj/item/computer_hardware/hard_drive/portable/super category = list("Computer Parts") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -117,7 +117,7 @@ name = "ID Card Slot" id = "cardslot" build_type = PROTOLATHE - materials = list(MAT_METAL = 600) + materials = list(/datum/material/iron = 600) build_path = /obj/item/computer_hardware/card_slot category = list("Computer Parts") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -127,7 +127,7 @@ name = "Intellicard Slot" id = "aislot" build_type = PROTOLATHE - materials = list(MAT_METAL = 600) + materials = list(/datum/material/iron = 600) build_path = /obj/item/computer_hardware/ai_slot category = list("Computer Parts") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -137,7 +137,7 @@ name = "Miniprinter" id = "miniprinter" build_type = PROTOLATHE - materials = list(MAT_METAL = 600) + materials = list(/datum/material/iron = 600) build_path = /obj/item/computer_hardware/printer/mini category = list("Computer Parts") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -147,7 +147,7 @@ name = "Area Power Connector" id = "APClink" build_type = PROTOLATHE - materials = list(MAT_METAL = 2000) + materials = list(/datum/material/iron = 2000) build_path = /obj/item/computer_hardware/recharger/APC category = list("Computer Parts") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -157,7 +157,7 @@ name = "Power Cell Controller" id = "bat_control" build_type = PROTOLATHE - materials = list(MAT_METAL = 400) + materials = list(/datum/material/iron = 400) build_path = /obj/item/computer_hardware/battery category = list("Computer Parts") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -166,7 +166,7 @@ name = "Battery Module" id = "bat_normal" build_type = PROTOLATHE - materials = list(MAT_METAL = 400) + materials = list(/datum/material/iron = 400) build_path = /obj/item/stock_parts/cell/computer category = list("Computer Parts") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -175,7 +175,7 @@ name = "Advanced Battery Module" id = "bat_advanced" build_type = PROTOLATHE - materials = list(MAT_METAL = 800) + materials = list(/datum/material/iron = 800) build_path = /obj/item/stock_parts/cell/computer/advanced category = list("Computer Parts") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -184,7 +184,7 @@ name = "Super Battery Module" id = "bat_super" build_type = PROTOLATHE - materials = list(MAT_METAL = 1600) + materials = list(/datum/material/iron = 1600) build_path = /obj/item/stock_parts/cell/computer/super category = list("Computer Parts") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -193,7 +193,7 @@ name = "Nano Battery Module" id = "bat_nano" build_type = PROTOLATHE - materials = list(MAT_METAL = 200) + materials = list(/datum/material/iron = 200) build_path = /obj/item/stock_parts/cell/computer/nano category = list("Computer Parts") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -202,7 +202,7 @@ name = "Micro Battery Module" id = "bat_micro" build_type = PROTOLATHE - materials = list(MAT_METAL = 400) + materials = list(/datum/material/iron = 400) build_path = /obj/item/stock_parts/cell/computer/micro category = list("Computer Parts") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -212,7 +212,7 @@ name = "Processor Board" id = "cpu_normal" build_type = IMPRINTER - materials = list(MAT_GLASS = 1600) + materials = list(/datum/material/glass = 1600) build_path = /obj/item/computer_hardware/processor_unit category = list("Computer Parts") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -221,7 +221,7 @@ name = "Microprocessor" id = "cpu_small" build_type = IMPRINTER - materials = list(MAT_GLASS = 800) + materials = list(/datum/material/glass = 800) build_path = /obj/item/computer_hardware/processor_unit/small category = list("Computer Parts") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -230,7 +230,7 @@ name = "Photonic Processor Board" id = "pcpu_normal" build_type = IMPRINTER - materials = list(MAT_GLASS= 6400, MAT_GOLD = 2000) + materials = list(/datum/material/glass= 6400, /datum/material/gold = 2000) build_path = /obj/item/computer_hardware/processor_unit/photonic category = list("Computer Parts") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -239,7 +239,7 @@ name = "Photonic Microprocessor" id = "pcpu_small" build_type = IMPRINTER - materials = list(MAT_GLASS = 3200, MAT_GOLD = 1000) + materials = list(/datum/material/glass = 3200, /datum/material/gold = 1000) build_path = /obj/item/computer_hardware/processor_unit/photonic/small category = list("Computer Parts") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING diff --git a/code/modules/research/designs/electronics_designs.dm b/code/modules/research/designs/electronics_designs.dm index 82fd71d895..57d0b78547 100644 --- a/code/modules/research/designs/electronics_designs.dm +++ b/code/modules/research/designs/electronics_designs.dm @@ -8,7 +8,7 @@ desc = "Allows for the construction of an intellicard." id = "intellicard" build_type = PROTOLATHE - materials = list(MAT_GLASS = 1000, MAT_GOLD = 200) + materials = list(/datum/material/glass = 1000, /datum/material/gold = 200) build_path = /obj/item/aicard category = list("Electronics") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -18,7 +18,7 @@ desc = "Allows for the construction of a pAI Card." id = "paicard" build_type = PROTOLATHE - materials = list(MAT_GLASS = 500, MAT_METAL = 500) + materials = list(/datum/material/glass = 500, /datum/material/iron = 500) build_path = /obj/item/paicard category = list("Electronics") departmental_flags = DEPARTMENTAL_FLAG_ALL @@ -28,7 +28,7 @@ desc = "A software package that will allow an artificial intelligence to 'hear' from its cameras via lip reading." id = "ai_cam_upgrade" build_type = PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_GLASS = 5000, MAT_GOLD = 15000, MAT_SILVER = 15000, MAT_DIAMOND = 20000, MAT_PLASMA = 10000) + materials = list(/datum/material/iron = 5000, /datum/material/glass = 5000, /datum/material/gold = 15000, /datum/material/silver = 15000, /datum/material/diamond = 20000, /datum/material/plasma = 10000) build_path = /obj/item/surveillance_upgrade category = list("Electronics") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -41,7 +41,7 @@ desc = "Allows for the construction of a nanite remote." id = "nanite_remote" build_type = PROTOLATHE - materials = list(MAT_GLASS = 500, MAT_METAL = 500) + materials = list(/datum/material/glass = 500, /datum/material/iron = 500) build_path = /obj/item/nanite_remote category = list("Electronics") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -51,7 +51,7 @@ desc = "Allows for the construction of a nanite communication remote." id = "nanite_comm_remote" build_type = PROTOLATHE - materials = list(MAT_GLASS = 500, MAT_METAL = 500) + materials = list(/datum/material/glass = 500, /datum/material/iron = 500) build_path = /obj/item/nanite_remote/comm category = list("Electronics") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -61,7 +61,7 @@ desc = "Allows for the construction of a nanite scanner." id = "nanite_scanner" build_type = PROTOLATHE - materials = list(MAT_GLASS = 500, MAT_METAL = 500) + materials = list(/datum/material/glass = 500, /datum/material/iron = 500) build_path = /obj/item/nanite_scanner category = list("Electronics") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -74,7 +74,7 @@ desc = "Produce additional disks for storing device designs." id = "design_disk" build_type = PROTOLATHE | AUTOLATHE - materials = list(MAT_METAL = 300, MAT_GLASS = 100) + materials = list(/datum/material/iron = 300, /datum/material/glass = 100) build_path = /obj/item/disk/design_disk category = list("Electronics") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -84,7 +84,7 @@ desc = "Produce additional disks for storing device designs." id = "design_disk_adv" build_type = PROTOLATHE - materials = list(MAT_METAL = 300, MAT_GLASS = 100, MAT_SILVER=50) + materials = list(/datum/material/iron = 300, /datum/material/glass = 100, /datum/material/silver=50) build_path = /obj/item/disk/design_disk/adv category = list("Electronics") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -94,7 +94,7 @@ desc = "Produce additional disks for storing technology data." id = "tech_disk" build_type = PROTOLATHE | AUTOLATHE - materials = list(MAT_METAL = 300, MAT_GLASS = 100) + materials = list(/datum/material/iron = 300, /datum/material/glass = 100) build_path = /obj/item/disk/tech_disk category = list("Electronics") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -104,7 +104,7 @@ desc = "Stores nanite programs." id = "nanite_disk" build_type = PROTOLATHE - materials = list(MAT_METAL = 300, MAT_GLASS = 100) + materials = list(/datum/material/iron = 300, /datum/material/glass = 100) build_path = /obj/item/disk/nanite_program category = list("Electronics") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -114,7 +114,7 @@ desc = "This machine provides all necessary things for circuitry." id = "icprinter" build_type = PROTOLATHE - materials = list(MAT_GLASS = 5000, MAT_METAL = 10000) + materials = list(/datum/material/glass = 5000, /datum/material/iron = 10000) build_path = /obj/item/integrated_circuit_printer category = list("Electronics") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -124,7 +124,7 @@ desc = "This disk allows for integrated circuit printers to print advanced circuitry designs." id = "icupgadv" build_type = PROTOLATHE - materials = list(MAT_GLASS = 10000, MAT_METAL = 10000) + materials = list(/datum/material/glass = 10000, /datum/material/iron = 10000) build_path = /obj/item/disk/integrated_circuit/upgrade/advanced category = list("Electronics") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -134,7 +134,7 @@ desc = "This disk allows for integrated circuit printers to clone designs instantaneously." id = "icupgclo" build_type = PROTOLATHE - materials = list(MAT_GLASS = 10000, MAT_METAL = 10000) + materials = list(/datum/material/glass = 10000, /datum/material/iron = 10000) build_path = /obj/item/disk/integrated_circuit/upgrade/clone category = list("Electronics") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -145,7 +145,7 @@ desc = "A shell of a maintenance drone, an expendable robot built to perform station repairs." id = "drone_shell" build_type = MECHFAB | PROTOLATHE - materials = list(MAT_METAL = 800, MAT_GLASS = 350) + materials = list(/datum/material/iron = 800, /datum/material/glass = 350) construction_time = 150 build_path = /obj/item/drone_shell category = list("Misc") @@ -155,7 +155,7 @@ name = "owo" desc = "someone's bussin" build_type = PROTOLATHE - materials = list(MAT_METAL = 300, MAT_GLASS = 100) + materials = list(/datum/material/iron = 300, /datum/material/glass = 100) category = list("Electronics") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE diff --git a/code/modules/research/designs/equipment_designs.dm b/code/modules/research/designs/equipment_designs.dm index 9f954adb33..de97747928 100644 --- a/code/modules/research/designs/equipment_designs.dm +++ b/code/modules/research/designs/equipment_designs.dm @@ -5,7 +5,7 @@ id = "flightsuit" build_type = PROTOLATHE build_path = /obj/item/clothing/suit/space/hardsuit/flightsuit - materials = list(MAT_METAL=16000, MAT_GLASS = 8000, MAT_DIAMOND = 200, MAT_GOLD = 3000, MAT_SILVER = 3000, MAT_TITANIUM = 16000) //This expensive enough for you? + materials = list(/datum/material/iron=16000, /datum/material/glass = 8000, /datum/material/diamond = 200, /datum/material/gold = 3000, /datum/material/silver = 3000, /datum/material/titanium = 16000) //This expensive enough for you? construction_time = 250 category = list("Misc") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -16,7 +16,7 @@ id = "flightpack" build_type = PROTOLATHE build_path = /obj/item/flightpack - materials = list(MAT_METAL=16000, MAT_GLASS = 8000, MAT_DIAMOND = 4000, MAT_GOLD = 12000, MAT_SILVER = 12000, MAT_URANIUM = 20000, MAT_PLASMA = 16000, MAT_TITANIUM = 16000) //This expensive enough for you? + materials = list(/datum/material/iron=16000, /datum/material/glass = 8000, /datum/material/diamond = 4000, /datum/material/gold = 12000, /datum/material/silver = 12000, /datum/material/uranium = 20000, /datum/material/plasma = 16000, /datum/material/titanium = 16000) //This expensive enough for you? construction_time = 250 category = list("Misc") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -27,7 +27,7 @@ id = "flightshoes" build_type = PROTOLATHE build_path = /obj/item/clothing/shoes/flightshoes - materials = list(MAT_METAL = 5000, MAT_GLASS = 5000, MAT_GOLD = 1500, MAT_SILVER = 1500, MAT_PLASMA = 2000, MAT_TITANIUM = 2000) + materials = list(/datum/material/iron = 5000, /datum/material/glass = 5000, /datum/material/gold = 1500, /datum/material/silver = 1500, /datum/material/plasma = 2000, /datum/material/titanium = 2000) construction_time = 100 category = list("Misc") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING */ @@ -38,7 +38,7 @@ id = "chardsuit" build_type = PROTOLATHE build_path = /obj/item/clothing/suit/space/hardsuit/engine - materials = list(MAT_METAL=16000, MAT_GLASS = 8000, MAT_DIAMOND = 200, MAT_GOLD = 3000, MAT_SILVER = 3000, MAT_TITANIUM = 16000) + materials = list(/datum/material/iron=16000, /datum/material/glass = 8000, /datum/material/diamond = 200, /datum/material/gold = 3000, /datum/material/silver = 3000, /datum/material/titanium = 16000) construction_time = 100 category = list("Misc") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -49,7 +49,7 @@ id = "hardsuitjpack" build_type = PROTOLATHE build_path = /obj/item/tank/jetpack/suit - materials = list(MAT_METAL=16000, MAT_GLASS = 8000, MAT_DIAMOND = 2000, MAT_GOLD = 6000, MAT_SILVER = 6000, MAT_URANIUM = 10000, MAT_PLASMA = 8000, MAT_TITANIUM = 16000) + materials = list(/datum/material/iron=16000, /datum/material/glass = 8000, /datum/material/diamond = 2000, /datum/material/gold = 6000, /datum/material/silver = 6000, /datum/material/uranium = 10000, /datum/material/plasma = 8000, /datum/material/titanium = 16000) construction_time = 100 category = list("Misc") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING \ No newline at end of file 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 b4d67315ba..c5f6b01e57 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 @@ -26,11 +26,19 @@ category = list ("Misc. Machinery") departmental_flags = DEPARTMENTAL_FLAG_ALL +/datum/design/board/autolathe_secure + name = "Machine Design (Secure Autolathe Board)" + desc = "The circuit board for an autolathe. This one is programmed to not allow hacking." + id = "autolathe_secure" + build_path = /obj/item/circuitboard/machine/autolathe/secure + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ALL + /datum/design/board/recharger name = "Machine Design (Weapon Recharger Board)" desc = "The circuit board for a Weapon Recharger." id = "recharger" - materials = list(MAT_GLASS = 1000, MAT_GOLD = 2000) + materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000) build_path = /obj/item/circuitboard/machine/recharger category = list("Misc. Machinery") departmental_flags = DEPARTMENTAL_FLAG_ALL diff --git a/code/modules/research/designs/mecha_designs.dm b/code/modules/research/designs/mecha_designs.dm index 7ccc41c232..7d651a84d8 100644 --- a/code/modules/research/designs/mecha_designs.dm +++ b/code/modules/research/designs/mecha_designs.dm @@ -110,7 +110,7 @@ name = "\"Phazon\" Central Control module" desc = "Allows for the construction of a \"Phazon\" Central Control module." id = "phazon_main" - materials = list(MAT_GLASS = 1000, MAT_BLUESPACE = 100) + materials = list(/datum/material/glass = 1000, /datum/material/bluespace = 100) build_path = /obj/item/circuitboard/mecha/phazon/main category = list("Exosuit Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -119,7 +119,7 @@ name = "\"Phazon\" Peripherals Control module" desc = "Allows for the construction of a \"Phazon\" Peripheral Control module." id = "phazon_peri" - materials = list(MAT_GLASS = 1000, MAT_BLUESPACE = 100) + materials = list(/datum/material/glass = 1000, /datum/material/bluespace = 100) build_path = /obj/item/circuitboard/mecha/phazon/peripherals category = list("Exosuit Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -128,7 +128,7 @@ name = "\"Phazon\" Weapons & Targeting Control module" desc = "Allows for the construction of a \"Phazon\" Weapons & Targeting Control module." id = "phazon_targ" - materials = list(MAT_GLASS = 1000, MAT_BLUESPACE = 100) + materials = list(/datum/material/glass = 1000, /datum/material/bluespace = 100) build_path = /obj/item/circuitboard/mecha/phazon/targeting category = list("Exosuit Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -143,7 +143,7 @@ id = "mech_scattershot" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot - materials = list(MAT_METAL=10000) + materials = list(/datum/material/iron=10000) construction_time = 100 category = list("Exosuit Equipment") @@ -153,27 +153,49 @@ id = "mech_seedscatter" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/seedscatter - materials = list(MAT_METAL=10000, MAT_GLASS = 10000) + materials = list(/datum/material/iron=10000, /datum/material/glass = 10000) construction_time = 70 category = list("Exosuit Equipment") +/datum/design/mech_scattershot_ammo + name = "Scattershot Ammunition" + desc = "Ammunition for the LBX AC 10 and Melon Seed exosuit weapon." + id = "mech_scattershot_ammo" + build_type = PROTOLATHE | MECHFAB + build_path = /obj/item/mecha_ammo/scattershot + materials = list(/datum/material/iron=6000) + construction_time = 20 + category = list("Exosuit Ammunition", "Ammo") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + /datum/design/mech_carbine name = "Exosuit Weapon (FNX-99 \"Hades\" Carbine)" desc = "Allows for the construction of FNX-99 \"Hades\" Carbine." id = "mech_carbine" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/carbine - materials = list(MAT_METAL=10000) + materials = list(/datum/material/iron=10000) construction_time = 100 category = list("Exosuit Equipment") +/datum/design/mech_carbine_ammo + name = "FNX-99 Carbine Ammunition" + desc = "Ammunition for the FNX-99 \"Hades\" Carbine." + id = "mech_carbine_ammo" + build_type = PROTOLATHE | MECHFAB + build_path = /obj/item/mecha_ammo/incendiary + materials = list(/datum/material/iron=6000) + construction_time = 20 + category = list("Exosuit Ammunition", "Ammo") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + /datum/design/mech_ion name = "Exosuit Weapon (MKIV Ion Heavy Cannon)" desc = "Allows for the construction of MKIV Ion Heavy Cannon." id = "mech_ion" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/ion - materials = list(MAT_METAL=20000,MAT_SILVER=6000,MAT_URANIUM=2000) + materials = list(/datum/material/iron=20000,/datum/material/silver=6000,/datum/material/uranium=2000) construction_time = 100 category = list("Exosuit Equipment") @@ -183,7 +205,7 @@ id = "mech_tesla" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/tesla - materials = list(MAT_METAL=20000,MAT_SILVER=8000) + materials = list(/datum/material/iron=20000,/datum/material/silver=8000) construction_time = 100 category = list("Exosuit Equipment") @@ -193,7 +215,7 @@ id = "mech_laser" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser - materials = list(MAT_METAL=10000) + materials = list(/datum/material/iron=10000) construction_time = 100 category = list("Exosuit Equipment") @@ -203,7 +225,7 @@ id = "mech_laser_heavy" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy - materials = list(MAT_METAL=10000) + materials = list(/datum/material/iron=10000) construction_time = 100 category = list("Exosuit Equipment") @@ -213,37 +235,70 @@ id = "mech_grenade_launcher" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/flashbang - materials = list(MAT_METAL=22000,MAT_GOLD=6000,MAT_SILVER=8000) + materials = list(/datum/material/iron=22000,/datum/material/gold=6000,/datum/material/silver=8000) construction_time = 100 category = list("Exosuit Equipment") +/datum/design/mech_grenade_launcher_ammo + name = "SGL-6 Grenade Launcher Ammunition" + desc = "Ammunition for the SGL-6 Grenade Launcher." + id = "mech_grenade_launcher_ammo" + build_type = PROTOLATHE | MECHFAB + build_path = /obj/item/mecha_ammo/flashbang + materials = list(/datum/material/iron=4000,/datum/material/gold=500,/datum/material/silver=500) + construction_time = 20 + category = list("Exosuit Ammunition", "Ammo") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + /datum/design/mech_missile_rack - name = "Exosuit Weapon (SRM-8 Missile Rack)" - desc = "Allows for the construction of an SRM-8 Missile Rack." + name = "Exosuit Weapon (BRM-6 Missile Rack)" + desc = "Allows for the construction of an BRM-6 Breaching Missile Rack." id = "mech_missile_rack" build_type = MECHFAB - build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack - materials = list(MAT_METAL=22000,MAT_GOLD=6000,MAT_SILVER=8000) + build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/breaching + materials = list(/datum/material/iron=22000,/datum/material/gold=6000,/datum/material/silver=8000) construction_time = 100 category = list("Exosuit Equipment") +/datum/design/mech_missile_rack_ammo + name = "SRM-8 Missile Rack Ammunition" + desc = "Ammunition for the SRM-8 Missile Rack." + id = "mech_missile_rack_ammo" + build_type = PROTOLATHE | MECHFAB + build_path = /obj/item/mecha_ammo/missiles_br + materials = list(/datum/material/iron=8000,/datum/material/gold=500,/datum/material/silver=500) + construction_time = 20 + category = list("Exosuit Ammunition", "Ammo") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + /datum/design/clusterbang_launcher name = "Exosuit Module (SOB-3 Clusterbang Launcher)" desc = "A weapon that violates the Geneva Convention at 3 rounds per minute" id = "clusterbang_launcher" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/flashbang/clusterbang - materials = list(MAT_METAL=20000,MAT_GOLD=10000,MAT_URANIUM=10000) + materials = list(/datum/material/iron=20000,/datum/material/gold=10000,/datum/material/uranium=10000) construction_time = 100 category = list("Exosuit Equipment") +/datum/design/clusterbang_launcher_ammo + name = "SOB-3 Clusterbang Launcher Ammunition" + desc = "Ammunition for the SOB-3 Clusterbang Launcher" + id = "clusterbang_launcher_ammo" + build_type = PROTOLATHE | MECHFAB + build_path = /obj/item/mecha_ammo/clusterbang + materials = list(/datum/material/iron=6000,/datum/material/gold=1500,/datum/material/uranium=1500) + construction_time = 20 + category = list("Exosuit Ammunition", "Ammo") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + /datum/design/mech_wormhole_gen name = "Exosuit Module (Localized Wormhole Generator)" desc = "An exosuit module that allows generating of small quasi-stable wormholes." id = "mech_wormhole_gen" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/wormhole_generator - materials = list(MAT_METAL=10000) + materials = list(/datum/material/iron=10000) construction_time = 100 category = list("Exosuit Equipment") @@ -253,7 +308,7 @@ id = "mech_teleporter" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/teleporter - materials = list(MAT_METAL=10000,MAT_DIAMOND=10000) + materials = list(/datum/material/iron=10000,/datum/material/diamond=10000) construction_time = 100 category = list("Exosuit Equipment") @@ -263,7 +318,7 @@ id = "mech_rcd" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/rcd - materials = list(MAT_METAL=30000,MAT_GOLD=20000,MAT_PLASMA=25000,MAT_SILVER=20000) + materials = list(/datum/material/iron=30000,/datum/material/gold=20000,/datum/material/plasma=25000,/datum/material/silver=20000) construction_time = 1200 category = list("Exosuit Equipment") @@ -273,7 +328,7 @@ id = "mech_gravcatapult" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/gravcatapult - materials = list(MAT_METAL=10000) + materials = list(/datum/material/iron=10000) construction_time = 100 category = list("Exosuit Equipment") @@ -283,7 +338,7 @@ id = "mech_repair_droid" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/repair_droid - materials = list(MAT_METAL=10000,MAT_GLASS=5000,MAT_GOLD=1000,MAT_SILVER=2000) + materials = list(/datum/material/iron=10000,/datum/material/glass=5000,/datum/material/gold=1000,/datum/material/silver=2000) construction_time = 100 category = list("Exosuit Equipment") @@ -293,7 +348,7 @@ id = "mech_energy_relay" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay - materials = list(MAT_METAL=10000,MAT_GLASS=2000,MAT_GOLD=2000,MAT_SILVER=3000) + materials = list(/datum/material/iron=10000,/datum/material/glass=2000,/datum/material/gold=2000,/datum/material/silver=3000) construction_time = 100 category = list("Exosuit Equipment") @@ -303,7 +358,7 @@ id = "mech_ccw_armor" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/anticcw_armor_booster - materials = list(MAT_METAL=20000,MAT_SILVER=5000) + materials = list(/datum/material/iron=20000,/datum/material/silver=5000) construction_time = 100 category = list("Exosuit Equipment") @@ -313,7 +368,7 @@ id = "mech_proj_armor" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster - materials = list(MAT_METAL=20000,MAT_GOLD=5000) + materials = list(/datum/material/iron=20000,/datum/material/gold=5000) construction_time = 100 category = list("Exosuit Equipment") @@ -323,7 +378,7 @@ id = "mech_diamond_drill" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/drill/diamonddrill - materials = list(MAT_METAL=10000,MAT_DIAMOND=6500) + materials = list(/datum/material/iron=10000,/datum/material/diamond=6500) construction_time = 100 category = list("Exosuit Equipment") @@ -333,7 +388,7 @@ id = "mech_generator_nuclear" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/generator/nuclear - materials = list(MAT_METAL=10000,MAT_GLASS=1000,MAT_SILVER=500) + materials = list(/datum/material/iron=10000,/datum/material/glass=1000,/datum/material/silver=500) construction_time = 100 category = list("Exosuit Equipment") @@ -343,7 +398,7 @@ id = "mech_plasma_cutter" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/plasma - materials = list(MAT_METAL = 8000, MAT_GLASS = 1000, MAT_PLASMA = 2000) + materials = list(/datum/material/iron = 8000, /datum/material/glass = 1000, /datum/material/plasma = 2000) construction_time = 100 category = list("Exosuit Equipment") @@ -353,7 +408,7 @@ id = "mech_taser" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/taser - materials = list(MAT_METAL=10000) + materials = list(/datum/material/iron=10000) construction_time = 100 category = list("Exosuit Equipment") @@ -363,17 +418,28 @@ id = "mech_lmg" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg - materials = list(MAT_METAL=10000) + materials = list(/datum/material/iron=10000) construction_time = 100 category = list("Exosuit Equipment") +/datum/design/mech_lmg_ammo + name = "Ultra AC 2 Ammunition" + desc = "Ammunition for the Ultra AC 2 LMG" + id = "mech_lmg_ammo" + build_type = PROTOLATHE | MECHFAB + build_path = /obj/item/mecha_ammo/lmg + materials = list(/datum/material/iron=4000) + construction_time = 20 + category = list("Exosuit Ammunition", "Ammo") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + /datum/design/mech_sleeper name = "Exosuit Medical Equipment (Mounted Sleeper)" desc = "Equipment for medical exosuits. A mounted sleeper that stabilizes patients and can inject reagents in the exosuit's reserves." id = "mech_sleeper" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/medical/sleeper - materials = list(MAT_METAL=5000,MAT_GLASS=10000) + materials = list(/datum/material/iron=5000,/datum/material/glass=10000) construction_time = 100 category = list("Exosuit Equipment") @@ -383,7 +449,7 @@ id = "mech_syringe_gun" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/medical/syringe_gun - materials = list(MAT_METAL=3000,MAT_GLASS=2000) + materials = list(/datum/material/iron=3000,/datum/material/glass=2000) construction_time = 200 category = list("Exosuit Equipment") @@ -392,7 +458,7 @@ desc = "Equipment for medical exosuits. A mounted medical nanite projector which will treat patients with a focused beam." id = "mech_medi_beam" build_type = MECHFAB - materials = list(MAT_METAL = 15000, MAT_GLASS = 8000, MAT_PLASMA = 3000, MAT_GOLD = 8000, MAT_DIAMOND = 2000) + materials = list(/datum/material/iron = 15000, /datum/material/glass = 8000, /datum/material/plasma = 3000, /datum/material/gold = 8000, /datum/material/diamond = 2000) construction_time = 250 build_path = /obj/item/mecha_parts/mecha_equipment/medical/mechmedbeam category = list("Exosuit Equipment") diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index 5fab7705a8..a5ad3287fc 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -4,7 +4,7 @@ id = "borg_suit" build_type = MECHFAB build_path = /obj/item/robot_suit - materials = list(MAT_METAL=15000) + materials = list(/datum/material/iron=15000) construction_time = 500 category = list("Cyborg") @@ -13,7 +13,7 @@ id = "borg_chest" build_type = MECHFAB build_path = /obj/item/bodypart/chest/robot - materials = list(MAT_METAL=40000) + materials = list(/datum/material/iron=40000) construction_time = 350 category = list("Cyborg") @@ -22,7 +22,7 @@ id = "borg_head" build_type = MECHFAB build_path = /obj/item/bodypart/head/robot - materials = list(MAT_METAL=5000) + materials = list(/datum/material/iron=5000) construction_time = 350 category = list("Cyborg") @@ -31,7 +31,7 @@ id = "borg_l_arm" build_type = MECHFAB build_path = /obj/item/bodypart/l_arm/robot - materials = list(MAT_METAL=10000) + materials = list(/datum/material/iron=10000) construction_time = 200 category = list("Cyborg") @@ -40,7 +40,7 @@ id = "borg_r_arm" build_type = MECHFAB build_path = /obj/item/bodypart/r_arm/robot - materials = list(MAT_METAL=10000) + materials = list(/datum/material/iron=10000) construction_time = 200 category = list("Cyborg") @@ -49,7 +49,7 @@ id = "borg_l_leg" build_type = MECHFAB build_path = /obj/item/bodypart/l_leg/robot - materials = list(MAT_METAL=10000) + materials = list(/datum/material/iron=10000) construction_time = 200 category = list("Cyborg") @@ -58,7 +58,7 @@ id = "borg_r_leg" build_type = MECHFAB build_path = /obj/item/bodypart/r_leg/robot - materials = list(MAT_METAL=10000) + materials = list(/datum/material/iron=10000) construction_time = 200 category = list("Cyborg") @@ -68,7 +68,7 @@ id = "ripley_chassis" build_type = MECHFAB build_path = /obj/item/mecha_parts/chassis/ripley - materials = list(MAT_METAL=20000) + materials = list(/datum/material/iron=20000) construction_time = 100 category = list("Ripley") @@ -78,7 +78,7 @@ id = "firefighter_chassis" build_type = MECHFAB build_path = /obj/item/mecha_parts/chassis/firefighter - materials = list(MAT_METAL=20000) + materials = list(/datum/material/iron=20000) construction_time = 100 category = list("Firefighter") @@ -87,7 +87,7 @@ id = "ripley_torso" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/ripley_torso - materials = list(MAT_METAL=20000, MAT_GLASS=7500) + materials = list(/datum/material/iron=20000, /datum/material/glass=7500) construction_time = 200 category = list("Ripley","Firefighter") @@ -96,7 +96,7 @@ id = "ripley_left_arm" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/ripley_left_arm - materials = list(MAT_METAL=15000) + materials = list(/datum/material/iron=15000) construction_time = 150 category = list("Ripley","Firefighter") @@ -105,7 +105,7 @@ id = "ripley_right_arm" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/ripley_right_arm - materials = list(MAT_METAL=15000) + materials = list(/datum/material/iron=15000) construction_time = 150 category = list("Ripley","Firefighter") @@ -114,7 +114,7 @@ id = "ripley_left_leg" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/ripley_left_leg - materials = list(MAT_METAL=15000) + materials = list(/datum/material/iron=15000) construction_time = 150 category = list("Ripley","Firefighter") @@ -123,7 +123,7 @@ id = "ripley_right_leg" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/ripley_right_leg - materials = list(MAT_METAL=15000) + materials = list(/datum/material/iron=15000) construction_time = 150 category = list("Ripley","Firefighter") @@ -133,7 +133,7 @@ id = "odysseus_chassis" build_type = MECHFAB build_path = /obj/item/mecha_parts/chassis/odysseus - materials = list(MAT_METAL=20000) + materials = list(/datum/material/iron=20000) construction_time = 100 category = list("Odysseus") @@ -142,7 +142,7 @@ id = "odysseus_torso" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/odysseus_torso - materials = list(MAT_METAL=12000) + materials = list(/datum/material/iron=12000) construction_time = 180 category = list("Odysseus") @@ -151,7 +151,7 @@ id = "odysseus_head" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/odysseus_head - materials = list(MAT_METAL=6000,MAT_GLASS=10000) + materials = list(/datum/material/iron=6000,/datum/material/glass=10000) construction_time = 100 category = list("Odysseus") @@ -160,7 +160,7 @@ id = "odysseus_left_arm" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/odysseus_left_arm - materials = list(MAT_METAL=6000) + materials = list(/datum/material/iron=6000) construction_time = 120 category = list("Odysseus") @@ -169,7 +169,7 @@ id = "odysseus_right_arm" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/odysseus_right_arm - materials = list(MAT_METAL=6000) + materials = list(/datum/material/iron=6000) construction_time = 120 category = list("Odysseus") @@ -178,7 +178,7 @@ id = "odysseus_left_leg" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/odysseus_left_leg - materials = list(MAT_METAL=7000) + materials = list(/datum/material/iron=7000) construction_time = 130 category = list("Odysseus") @@ -187,7 +187,7 @@ id = "odysseus_right_leg" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/odysseus_right_leg - materials = list(MAT_METAL=7000) + materials = list(/datum/material/iron=7000) construction_time = 130 category = list("Odysseus") @@ -197,7 +197,7 @@ id = "gygax_chassis" build_type = MECHFAB build_path = /obj/item/mecha_parts/chassis/gygax - materials = list(MAT_METAL=20000) + materials = list(/datum/material/iron=20000) construction_time = 100 category = list("Gygax") @@ -206,7 +206,7 @@ id = "gygax_torso" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/gygax_torso - materials = list(MAT_METAL=20000,MAT_GLASS=10000,MAT_DIAMOND=2000) + materials = list(/datum/material/iron=20000,/datum/material/glass=10000,/datum/material/diamond=2000) construction_time = 300 category = list("Gygax") @@ -215,7 +215,7 @@ id = "gygax_head" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/gygax_head - materials = list(MAT_METAL=10000,MAT_GLASS=5000, MAT_DIAMOND=2000) + materials = list(/datum/material/iron=10000,/datum/material/glass=5000, /datum/material/diamond=2000) construction_time = 200 category = list("Gygax") @@ -224,7 +224,7 @@ id = "gygax_left_arm" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/gygax_left_arm - materials = list(MAT_METAL=15000, MAT_DIAMOND=1000) + materials = list(/datum/material/iron=15000, /datum/material/diamond=1000) construction_time = 200 category = list("Gygax") @@ -233,7 +233,7 @@ id = "gygax_right_arm" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/gygax_right_arm - materials = list(MAT_METAL=15000, MAT_DIAMOND=1000) + materials = list(/datum/material/iron=15000, /datum/material/diamond=1000) construction_time = 200 category = list("Gygax") @@ -242,7 +242,7 @@ id = "gygax_left_leg" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/gygax_left_leg - materials = list(MAT_METAL=15000, MAT_DIAMOND=2000) + materials = list(/datum/material/iron=15000, /datum/material/diamond=2000) construction_time = 200 category = list("Gygax") @@ -251,7 +251,7 @@ id = "gygax_right_leg" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/gygax_right_leg - materials = list(MAT_METAL=15000, MAT_DIAMOND=2000) + materials = list(/datum/material/iron=15000, /datum/material/diamond=2000) construction_time = 200 category = list("Gygax") @@ -260,7 +260,7 @@ id = "gygax_armor" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/gygax_armor - materials = list(MAT_METAL=15000,MAT_DIAMOND=10000,MAT_TITANIUM=10000) + materials = list(/datum/material/iron=15000,/datum/material/diamond=10000,/datum/material/titanium=10000) construction_time = 600 category = list("Gygax") @@ -270,7 +270,7 @@ id = "durand_chassis" build_type = MECHFAB build_path = /obj/item/mecha_parts/chassis/durand - materials = list(MAT_METAL=25000) + materials = list(/datum/material/iron=25000) construction_time = 100 category = list("Durand") @@ -279,7 +279,7 @@ id = "durand_torso" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/durand_torso - materials = list(MAT_METAL=25000,MAT_GLASS=10000,MAT_SILVER=10000) + materials = list(/datum/material/iron=25000,/datum/material/glass=10000,/datum/material/silver=10000) construction_time = 300 category = list("Durand") @@ -288,7 +288,7 @@ id = "durand_head" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/durand_head - materials = list(MAT_METAL=10000,MAT_GLASS=15000,MAT_SILVER=2000) + materials = list(/datum/material/iron=10000,/datum/material/glass=15000,/datum/material/silver=2000) construction_time = 200 category = list("Durand") @@ -297,7 +297,7 @@ id = "durand_left_arm" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/durand_left_arm - materials = list(MAT_METAL=10000,MAT_SILVER=4000) + materials = list(/datum/material/iron=10000,/datum/material/silver=4000) construction_time = 200 category = list("Durand") @@ -306,7 +306,7 @@ id = "durand_right_arm" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/durand_right_arm - materials = list(MAT_METAL=10000,MAT_SILVER=4000) + materials = list(/datum/material/iron=10000,/datum/material/silver=4000) construction_time = 200 category = list("Durand") @@ -315,7 +315,7 @@ id = "durand_left_leg" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/durand_left_leg - materials = list(MAT_METAL=15000,MAT_SILVER=4000) + materials = list(/datum/material/iron=15000,/datum/material/silver=4000) construction_time = 200 category = list("Durand") @@ -324,7 +324,7 @@ id = "durand_right_leg" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/durand_right_leg - materials = list(MAT_METAL=15000,MAT_SILVER=4000) + materials = list(/datum/material/iron=15000,/datum/material/silver=4000) construction_time = 200 category = list("Durand") @@ -333,7 +333,7 @@ id = "durand_armor" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/durand_armor - materials = list(MAT_METAL=30000,MAT_URANIUM=25000,MAT_TITANIUM=20000) + materials = list(/datum/material/iron=30000,/datum/material/uranium=25000,/datum/material/titanium=20000) construction_time = 600 category = list("Durand") @@ -343,7 +343,7 @@ id = "honk_chassis" build_type = MECHFAB build_path = /obj/item/mecha_parts/chassis/honker - materials = list(MAT_METAL=20000) + materials = list(/datum/material/iron=20000) construction_time = 100 category = list("H.O.N.K") @@ -352,7 +352,7 @@ id = "honk_torso" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/honker_torso - materials = list(MAT_METAL=20000,MAT_GLASS=10000,MAT_BANANIUM=10000) + materials = list(/datum/material/iron=20000,/datum/material/glass=10000,/datum/material/bananium=10000) construction_time = 300 category = list("H.O.N.K") @@ -361,7 +361,7 @@ id = "honk_head" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/honker_head - materials = list(MAT_METAL=10000,MAT_GLASS=5000,MAT_BANANIUM=5000) + materials = list(/datum/material/iron=10000,/datum/material/glass=5000,/datum/material/bananium=5000) construction_time = 200 category = list("H.O.N.K") @@ -370,7 +370,7 @@ id = "honk_left_arm" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/honker_left_arm - materials = list(MAT_METAL=15000,MAT_BANANIUM=5000) + materials = list(/datum/material/iron=15000,/datum/material/bananium=5000) construction_time = 200 category = list("H.O.N.K") @@ -379,7 +379,7 @@ id = "honk_right_arm" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/honker_right_arm - materials = list(MAT_METAL=15000,MAT_BANANIUM=5000) + materials = list(/datum/material/iron=15000,/datum/material/bananium=5000) construction_time = 200 category = list("H.O.N.K") @@ -388,7 +388,7 @@ id = "honk_left_leg" build_type = MECHFAB build_path =/obj/item/mecha_parts/part/honker_left_leg - materials = list(MAT_METAL=20000,MAT_BANANIUM=5000) + materials = list(/datum/material/iron=20000,/datum/material/bananium=5000) construction_time = 200 category = list("H.O.N.K") @@ -397,7 +397,7 @@ id = "honk_right_leg" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/honker_right_leg - materials = list(MAT_METAL=20000,MAT_BANANIUM=5000) + materials = list(/datum/material/iron=20000,/datum/material/bananium=5000) construction_time = 200 category = list("H.O.N.K") @@ -408,7 +408,7 @@ id = "phazon_chassis" build_type = MECHFAB build_path = /obj/item/mecha_parts/chassis/phazon - materials = list(MAT_METAL=20000) + materials = list(/datum/material/iron=20000) construction_time = 100 category = list("Phazon") @@ -417,7 +417,7 @@ id = "phazon_torso" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/phazon_torso - materials = list(MAT_METAL=35000,MAT_GLASS=10000,MAT_PLASMA=20000) + materials = list(/datum/material/iron=35000,/datum/material/glass=10000,/datum/material/plasma=20000) construction_time = 300 category = list("Phazon") @@ -426,7 +426,7 @@ id = "phazon_head" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/phazon_head - materials = list(MAT_METAL=15000,MAT_GLASS=5000,MAT_PLASMA=10000) + materials = list(/datum/material/iron=15000,/datum/material/glass=5000,/datum/material/plasma=10000) construction_time = 200 category = list("Phazon") @@ -435,7 +435,7 @@ id = "phazon_left_arm" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/phazon_left_arm - materials = list(MAT_METAL=20000,MAT_PLASMA=10000) + materials = list(/datum/material/iron=20000,/datum/material/plasma=10000) construction_time = 200 category = list("Phazon") @@ -444,7 +444,7 @@ id = "phazon_right_arm" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/phazon_right_arm - materials = list(MAT_METAL=20000,MAT_PLASMA=10000) + materials = list(/datum/material/iron=20000,/datum/material/plasma=10000) construction_time = 200 category = list("Phazon") @@ -453,7 +453,7 @@ id = "phazon_left_leg" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/phazon_left_leg - materials = list(MAT_METAL=20000,MAT_PLASMA=10000) + materials = list(/datum/material/iron=20000,/datum/material/plasma=10000) construction_time = 200 category = list("Phazon") @@ -462,7 +462,7 @@ id = "phazon_right_leg" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/phazon_right_leg - materials = list(MAT_METAL=20000,MAT_PLASMA=10000) + materials = list(/datum/material/iron=20000,/datum/material/plasma=10000) construction_time = 200 category = list("Phazon") @@ -471,7 +471,7 @@ id = "phazon_armor" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/phazon_armor - materials = list(MAT_METAL=25000,MAT_PLASMA=20000,MAT_TITANIUM=20000) + materials = list(/datum/material/iron=25000,/datum/material/plasma=20000,/datum/material/titanium=20000) construction_time = 300 category = list("Phazon") @@ -481,7 +481,7 @@ id = "mech_hydraulic_clamp" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/hydraulic_clamp - materials = list(MAT_METAL=10000) + materials = list(/datum/material/iron=10000) construction_time = 100 category = list("Exosuit Equipment") @@ -490,7 +490,7 @@ id = "mech_drill" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/drill - materials = list(MAT_METAL=10000) + materials = list(/datum/material/iron=10000) construction_time = 100 category = list("Exosuit Equipment") @@ -499,7 +499,7 @@ id = "mech_mscanner" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/mining_scanner - materials = list(MAT_METAL=5000,MAT_GLASS=2500) + materials = list(/datum/material/iron=5000,/datum/material/glass=2500) construction_time = 50 category = list("Exosuit Equipment") @@ -508,7 +508,7 @@ id = "mech_extinguisher" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/extinguisher - materials = list(MAT_METAL=10000) + materials = list(/datum/material/iron=10000) construction_time = 100 category = list("Exosuit Equipment") @@ -517,7 +517,7 @@ id = "mech_cable_layer" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/cable_layer - materials = list(MAT_METAL=10000) + materials = list(/datum/material/iron=10000) construction_time = 100 category = list("Exosuit Equipment") @@ -526,7 +526,7 @@ id = "mech_generator" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/generator - materials = list(MAT_METAL=10000,MAT_GLASS=1000,MAT_SILVER=2000,MAT_PLASMA=5000) + materials = list(/datum/material/iron=10000,/datum/material/glass=1000,/datum/material/silver=2000,/datum/material/plasma=5000) construction_time = 100 category = list("Exosuit Equipment") @@ -535,7 +535,7 @@ id = "mech_mousetrap_mortar" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/mousetrap_mortar - materials = list(MAT_METAL=20000,MAT_BANANIUM=5000) + materials = list(/datum/material/iron=20000,/datum/material/bananium=5000) construction_time = 300 category = list("Exosuit Equipment") @@ -544,7 +544,7 @@ id = "mech_banana_mortar" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/banana_mortar - materials = list(MAT_METAL=20000,MAT_BANANIUM=5000) + materials = list(/datum/material/iron=20000,/datum/material/bananium=5000) construction_time = 300 category = list("Exosuit Equipment") @@ -553,7 +553,7 @@ id = "mech_honker" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/honker - materials = list(MAT_METAL=20000,MAT_BANANIUM=10000) + materials = list(/datum/material/iron=20000,/datum/material/bananium=10000) construction_time = 500 category = list("Exosuit Equipment") @@ -562,7 +562,7 @@ id = "mech_punching_face" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/punching_glove - materials = list(MAT_METAL=20000,MAT_BANANIUM=7500) + materials = list(/datum/material/iron=20000,/datum/material/bananium=7500) construction_time = 400 category = list("Exosuit Equipment") @@ -575,7 +575,7 @@ id = "borg_upgrade_rename" build_type = MECHFAB build_path = /obj/item/borg/upgrade/rename - materials = list(MAT_METAL=35000) + materials = list(/datum/material/iron=35000) construction_time = 120 category = list("Cyborg Upgrade Modules") @@ -584,7 +584,7 @@ id = "borg_upgrade_restart" build_type = MECHFAB build_path = /obj/item/borg/upgrade/restart - materials = list(MAT_METAL=60000 , MAT_GLASS=5000) + materials = list(/datum/material/iron=60000 , /datum/material/glass=5000) construction_time = 120 category = list("Cyborg Upgrade Modules") @@ -593,7 +593,7 @@ id = "borg_upgrade_vtec" build_type = MECHFAB build_path = /obj/item/borg/upgrade/vtec - materials = list(MAT_METAL=80000 , MAT_GLASS=6000 , MAT_URANIUM= 5000) + materials = list(/datum/material/iron=80000 , /datum/material/glass=6000 , /datum/material/uranium= 5000) construction_time = 120 category = list("Cyborg Upgrade Modules") @@ -602,7 +602,7 @@ id = "borg_upgrade_thrusters" build_type = MECHFAB build_path = /obj/item/borg/upgrade/thrusters - materials = list(MAT_METAL=10000, MAT_PLASMA=5000, MAT_URANIUM = 6000) + materials = list(/datum/material/iron=10000, /datum/material/plasma=5000, /datum/material/uranium = 6000) construction_time = 120 category = list("Cyborg Upgrade Modules") @@ -611,7 +611,7 @@ id = "borg_upgrade_disablercooler" build_type = MECHFAB build_path = /obj/item/borg/upgrade/disablercooler - materials = list(MAT_METAL=80000 , MAT_GLASS=6000 , MAT_GOLD= 2000, MAT_DIAMOND = 500) + materials = list(/datum/material/iron=80000 , /datum/material/glass=6000 , /datum/material/gold= 2000, /datum/material/diamond = 500) construction_time = 120 category = list("Cyborg Upgrade Modules") @@ -620,7 +620,7 @@ id = "borg_upgrade_diamonddrill" build_type = MECHFAB build_path = /obj/item/borg/upgrade/ddrill - materials = list(MAT_METAL=10000, MAT_DIAMOND=2000) + materials = list(/datum/material/iron=10000, /datum/material/diamond=2000) construction_time = 120 category = list("Cyborg Upgrade Modules") @@ -629,7 +629,7 @@ id = "borg_upgrade_advcutter" build_type = MECHFAB build_path = /obj/item/borg/upgrade/advcutter - materials = list(MAT_METAL=8000, MAT_PLASMA=2000, MAT_GOLD= 2000) + materials = list(/datum/material/iron = 8000, /datum/material/plasma = 2000, /datum/material/gold = 2000) construction_time = 120 category = list("Cyborg Upgrade Modules") @@ -638,7 +638,7 @@ id = "borg_upgrade_premiumka" build_type = MECHFAB build_path = /obj/item/borg/upgrade/premiumka - materials = list(MAT_METAL=8000, MAT_GLASS=4000, MAT_TITANIUM=2000) + materials = list(/datum/material/iron=8000, /datum/material/glass=4000, /datum/material/titanium=2000) construction_time = 120 category = list("Cyborg Upgrade Modules") @@ -647,7 +647,7 @@ id = "borg_upgrade_lavaproof" build_type = MECHFAB build_path = /obj/item/borg/upgrade/lavaproof - materials = list(MAT_METAL = 10000, MAT_PLASMA = 4000, MAT_TITANIUM = 5000) + materials = list(/datum/material/iron = 10000, /datum/material/plasma = 4000, /datum/material/titanium = 5000) construction_time = 120 category = list("Cyborg Upgrade Modules") @@ -656,7 +656,7 @@ id = "borg_syndicate_module" build_type = MECHFAB build_path = /obj/item/borg/upgrade/syndicate - materials = list(MAT_METAL=10000,MAT_GLASS=15000,MAT_DIAMOND = 10000) + materials = list(/datum/material/iron=10000,/datum/material/glass=15000,/datum/material/diamond = 10000) construction_time = 120 category = list("Cyborg Upgrade Modules") @@ -665,7 +665,7 @@ id = "borg_transform_clown" build_type = MECHFAB build_path = /obj/item/borg/upgrade/transform/clown - materials = list(MAT_METAL=10000, MAT_GLASS=15000, MAT_BANANIUM = 1000) + materials = list(/datum/material/iron=10000, /datum/material/glass=15000, /datum/material/bananium = 1000) construction_time = 120 category = list("Cyborg Upgrade Modules") @@ -674,7 +674,7 @@ id = "borg_upgrade_selfrepair" build_type = MECHFAB build_path = /obj/item/borg/upgrade/selfrepair - materials = list(MAT_METAL=15000, MAT_GLASS=15000) + materials = list(/datum/material/iron=15000, /datum/material/glass=15000) construction_time = 120 category = list("Cyborg Upgrade Modules") @@ -683,7 +683,7 @@ id = "borg_upgrade_expandedsynthesiser" build_type = MECHFAB build_path = /obj/item/borg/upgrade/hypospray/expanded - materials = list(MAT_METAL=15000, MAT_GLASS=15000, MAT_PLASMA=5000) + materials = list(/datum/material/iron=15000, /datum/material/glass=15000, /datum/material/plasma=5000) construction_time = 120 category = list("Cyborg Upgrade Modules") @@ -692,7 +692,7 @@ id = "borg_upgrade_highstrengthsynthesiser" build_type = MECHFAB build_path = /obj/item/borg/upgrade/hypospray/high_strength - materials = list(MAT_METAL=15000, MAT_GLASS=15000, MAT_PLASMA=10000, MAT_URANIUM=5000) + materials = list(/datum/material/iron=15000, /datum/material/glass=15000, /datum/material/plasma=10000, /datum/material/uranium=5000) construction_time = 120 category = list("Cyborg Upgrade Modules") @@ -701,7 +701,7 @@ id = "borg_upgrade_piercinghypospray" build_type = MECHFAB build_path = /obj/item/borg/upgrade/piercing_hypospray - materials = list(MAT_METAL=15000, MAT_GLASS=15000, MAT_TITANIUM=10000, MAT_DIAMOND=5000) + materials = list(/datum/material/iron=15000, /datum/material/glass=15000, /datum/material/titanium=10000, /datum/material/diamond=5000) construction_time = 120 category = list("Cyborg Upgrade Modules") @@ -710,7 +710,7 @@ id = "borg_upgrade_surgicalprocessor" build_type = MECHFAB build_path = /obj/item/borg/upgrade/processor - materials = list(MAT_METAL=15000, MAT_GLASS=15000, MAT_SILVER=10000) + materials = list(/datum/material/iron=15000, /datum/material/glass=15000, /datum/material/silver=10000) construction_time = 120 category = list("Cyborg Upgrade Modules") @@ -719,7 +719,7 @@ id = "borg_upgrade_trashofholding" build_type = MECHFAB build_path = /obj/item/borg/upgrade/tboh - materials = list(MAT_METAL=10000, MAT_GOLD=1500, MAT_URANIUM=250, MAT_PLASMA=1500) + materials = list(/datum/material/iron=10000, /datum/material/gold=1500, /datum/material/uranium=250, /datum/material/plasma=1500) construction_time = 120 category = list("Cyborg Upgrade Modules") @@ -728,7 +728,7 @@ id = "borg_upgrade_advancedmop" build_type = MECHFAB build_path = /obj/item/borg/upgrade/amop - materials = list(MAT_METAL=10000, MAT_GLASS=200, MAT_TITANIUM=1000) + materials = list(/datum/material/iron=10000, /datum/material/glass=200, /datum/material/titanium=1000) construction_time = 120 category = list("Cyborg Upgrade Modules") @@ -737,7 +737,7 @@ id = "borg_upgrade_expand" build_type = MECHFAB build_path = /obj/item/borg/upgrade/expand - materials = list(MAT_METAL=200000, MAT_TITANIUM=5000) + materials = list(/datum/material/iron=200000, /datum/material/titanium=5000) construction_time = 120 category = list("Cyborg Upgrade Modules") @@ -746,7 +746,7 @@ id = "borg_ai_control" build_type = MECHFAB build_path = /obj/item/borg/upgrade/ai - materials = list(MAT_METAL = 1200, MAT_GLASS = 1500, MAT_GOLD = 200) + materials = list(/datum/material/iron = 1200, /datum/material/glass = 1500, /datum/material/gold = 200) construction_time = 50 category = list("Misc") @@ -755,7 +755,7 @@ id = "borg_upgrade_rped" build_type = MECHFAB build_path = /obj/item/borg/upgrade/rped - materials = list(MAT_METAL = 10000, MAT_GLASS = 5000) + materials = list(/datum/material/iron = 10000, /datum/material/glass = 5000) construction_time = 120 category = list("Cyborg Upgrade Modules") @@ -764,7 +764,7 @@ id = "borg_upgrade_pinpointer" build_type = MECHFAB build_path = /obj/item/borg/upgrade/pinpointer - materials = list(MAT_METAL = 1000, MAT_GLASS = 500) + materials = list(/datum/material/iron = 1000, /datum/material/glass = 500) construction_time = 120 category = list("Cyborg Upgrade Modules") @@ -773,7 +773,7 @@ id = "borg_upgrade_advhealth" build_type = MECHFAB build_path = /obj/item/borg/upgrade/advhealth - materials = list(MAT_METAL=7500, MAT_GLASS=7500, MAT_SILVER=1000, MAT_GOLD=1000, MAT_TITANIUM=2000) + materials = list(/datum/material/iron=7500, /datum/material/glass=7500, /datum/material/silver=1000, /datum/material/gold=1000, /datum/material/titanium=2000) construction_time = 100 category = list("Cyborg Upgrade Modules") @@ -783,7 +783,7 @@ id = "mecha_tracking" build_type = MECHFAB build_path =/obj/item/mecha_parts/mecha_tracking - materials = list(MAT_METAL=500) + materials = list(/datum/material/iron=500) construction_time = 50 category = list("Misc") @@ -792,7 +792,7 @@ id = "mecha_tracking_ai_control" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_tracking/ai_control - materials = list(MAT_METAL = 1000, MAT_GLASS = 500, MAT_SILVER = 200) + materials = list(/datum/material/iron = 1000, /datum/material/glass = 500, /datum/material/silver = 200) construction_time = 50 category = list("Misc") @@ -801,7 +801,7 @@ desc = "When a problem arises, SCIENCE is the solution." id = "sflash" build_type = MECHFAB - materials = list(MAT_METAL = 750, MAT_GLASS = 750) + materials = list(/datum/material/iron = 750, /datum/material/glass = 750) construction_time = 100 build_path = /obj/item/assembly/flash/handheld category = list("Misc") diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index bef25456ca..af80aa6671 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -7,7 +7,7 @@ desc = "The Warrior's bland acronym, MMI, obscures the true horror of this monstrosity." id = "mmi" build_type = PROTOLATHE | MECHFAB - materials = list(MAT_METAL = 1000, MAT_GLASS = 500) + materials = list(/datum/material/iron = 1000, /datum/material/glass = 500) construction_time = 75 build_path = /obj/item/mmi category = list("Misc","Medical Designs") @@ -18,7 +18,7 @@ desc = "The latest in Artificial Intelligences." id = "mmi_posi" build_type = PROTOLATHE | MECHFAB - materials = list(MAT_METAL = 1700, MAT_GLASS = 1350, MAT_GOLD = 500) //Gold, because SWAG. + materials = list(/datum/material/iron = 1700, /datum/material/glass = 1350, /datum/material/gold = 500) //Gold, because SWAG. construction_time = 75 build_path = /obj/item/mmi/posibrain category = list("Misc", "Medical Designs") @@ -29,7 +29,7 @@ desc = "A bluespace beaker, powered by experimental bluespace technology and Element Cuban combined with the Compound Pete. Can hold up to 300 units." id = "bluespacebeaker" build_type = PROTOLATHE - materials = list(MAT_GLASS = 3000, MAT_PLASMA = 3000, MAT_DIAMOND = 250, MAT_BLUESPACE = 250) + materials = list(/datum/material/glass = 3000, /datum/material/plasma = 3000, /datum/material/diamond = 250, /datum/material/bluespace = 250) build_path = /obj/item/reagent_containers/glass/beaker/bluespace category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE @@ -39,7 +39,7 @@ desc = "A cryostasis beaker that allows for chemical storage without reactions. Can hold up to 50 units." id = "splitbeaker" build_type = PROTOLATHE - materials = list(MAT_METAL = 3000) + materials = list(/datum/material/iron = 3000) build_path = /obj/item/reagent_containers/glass/beaker/noreact category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -49,7 +49,7 @@ id = "xlarge_beaker" build_type = PROTOLATHE departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - materials = list(MAT_GLASS = 2500, MAT_PLASTIC = 3000) + materials = list(/datum/material/glass = 2500, /datum/material/plastic = 3000) build_path = /obj/item/reagent_containers/glass/beaker/plastic category = list("Medical Designs") @@ -58,7 +58,7 @@ id = "meta_beaker" build_type = PROTOLATHE departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - materials = list(MAT_GLASS = 2500, MAT_PLASTIC = 3000, MAT_GOLD = 1000, MAT_TITANIUM = 1000) + materials = list(/datum/material/glass = 2500, /datum/material/plastic = 3000, /datum/material/gold = 1000, /datum/material/titanium = 1000) build_path = /obj/item/reagent_containers/glass/beaker/meta category = list("Medical Designs") @@ -67,7 +67,7 @@ desc = "An advanced syringe that can hold 60 units of chemicals" id = "bluespacesyringe" build_type = PROTOLATHE - materials = list(MAT_GLASS = 2000, MAT_PLASMA = 1000, MAT_DIAMOND = 1000, MAT_BLUESPACE = 500) + materials = list(/datum/material/glass = 2000, /datum/material/plasma = 1000, /datum/material/diamond = 1000, /datum/material/bluespace = 500) build_path = /obj/item/reagent_containers/syringe/bluespace category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE @@ -77,7 +77,7 @@ desc = "An advanced syringe that stops reagents inside from reacting. It can hold up to 20 units." id = "noreactsyringe" build_type = PROTOLATHE - materials = list(MAT_GLASS = 2000, MAT_GOLD = 1000) + materials = list(/datum/material/glass = 2000, /datum/material/gold = 1000) build_path = /obj/item/reagent_containers/syringe/noreact category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -87,7 +87,7 @@ desc = "A diamond-tipped syringe that pierces armor when launched at high velocity. It can hold up to 10 units." id = "piercesyringe" build_type = PROTOLATHE - materials = list(MAT_GLASS = 2000, MAT_DIAMOND = 1000) + materials = list(/datum/material/glass = 2000, /datum/material/diamond = 1000) build_path = /obj/item/reagent_containers/syringe/piercing category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -97,7 +97,7 @@ desc = "A non-harmful dart that can administer medication from a range. Once it hits a patient using it's smart nanofilter technology only medicines contained within the dart are administered to the patient. Additonally, due to capillary action, injection of chemicals past the overdose limit is prevented." id = "medicinalsmartdart" build_type = PROTOLATHE - materials = list(MAT_GLASS = 100, MAT_PLASTIC = 100, MAT_METAL = 100) + materials = list(/datum/material/glass = 100, /datum/material/plastic = 100, /datum/material/iron = 100) build_path = /obj/item/reagent_containers/syringe/dart category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -107,7 +107,7 @@ desc = "A non-harmful dart that can administer medication from a range. Once it hits a patient using it's smart nanofilter technology only medicines contained within the dart are administered to the patient. Additonally, due to capillary action, injection of chemicals past the overdose limit is prevented. Has an extended volume capacity thanks to bluespace foam." id = "bluespacesmartdart" build_type = PROTOLATHE - materials = list(MAT_GLASS = 250, MAT_PLASTIC = 250, MAT_METAL = 250, MAT_BLUESPACE = 250) + materials = list(/datum/material/glass = 250, /datum/material/plastic = 250, /datum/material/iron = 250, /datum/material/bluespace = 250) build_path = /obj/item/reagent_containers/syringe/dart/bluespace category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -117,7 +117,7 @@ desc = "A compressed air gun, designed to fit medicinal darts for application of medicine for those patients just out of reach." id = "smartdartgun" build_type = PROTOLATHE - materials = list(MAT_GLASS = 500, MAT_PLASTIC = 1000, MAT_METAL = 500) + materials = list(/datum/material/glass = 500, /datum/material/plastic = 1000, /datum/material/iron = 500) build_path = /obj/item/gun/syringe/dart category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -127,7 +127,7 @@ 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(MAT_METAL = 3000, MAT_PLASMA = 2000, MAT_DIAMOND = 500, MAT_BLUESPACE = 500) + 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 @@ -137,7 +137,7 @@ desc = "A refill pack for the auto-extinguisher on Plasma-man suits." id = "plasmarefiller" //Why did this have no plasmatech build_type = PROTOLATHE - materials = list(MAT_METAL = 4000, MAT_PLASMA = 1000) + materials = list(/datum/material/iron = 4000, /datum/material/plasma = 1000) build_path = /obj/item/extinguisher_refill category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_ALL @@ -147,7 +147,7 @@ desc = "Allows tracking of someone's location if their suit sensors are turned to tracking beacon." id = "crewpinpointer" build_type = PROTOLATHE - materials = list(MAT_METAL = 3000, MAT_GLASS = 1500, MAT_GOLD = 200) + materials = list(/datum/material/iron = 3000, /datum/material/glass = 1500, /datum/material/gold = 200) build_path = /obj/item/pinpointer/crew category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -157,7 +157,7 @@ desc = "An IV drip with an advanced infusion pump that can both drain blood into and inject liquids from attached containers. Blood packs are processed at an accelerated rate. This one is telescopic, and can be picked up and put down." id = "telescopiciv" build_type = PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_GLASS = 3500, MAT_SILVER = 1000) + materials = list(/datum/material/iron = 5000, /datum/material/glass = 3500, /datum/material/silver = 1000) build_path = /obj/item/tele_iv category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -168,7 +168,7 @@ id = "healthanalyzer_advanced" build_path = /obj/item/healthanalyzer/advanced build_type = PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_GLASS = 2500, MAT_SILVER = 2000, MAT_GOLD = 1500) + materials = list(/datum/material/iron = 5000, /datum/material/glass = 2500, /datum/material/silver = 2000, /datum/material/gold = 1500) category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -178,7 +178,7 @@ id = "medspray" build_path = /obj/item/reagent_containers/medspray build_type = PROTOLATHE - materials = list(MAT_METAL = 2500, MAT_GLASS = 500) + materials = list(/datum/material/iron = 2500, /datum/material/glass = 500) category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -187,7 +187,7 @@ desc = "A plastic medical kit for storging medical items." id = "medicalkit" build_type = PROTOLATHE - materials = list(MAT_PLASTIC = 5000) + materials = list(/datum/material/plastic = 5000) build_path = /obj/item/storage/firstaid //So we dont spawn medical items in it category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE @@ -198,7 +198,7 @@ id = "blood_bag" build_path = /obj/item/reagent_containers/blood build_type = PROTOLATHE - materials = list(MAT_GLASS = 1500, MAT_PLASTIC = 3500) + materials = list(/datum/material/glass = 1500, /datum/material/plastic = 3500) category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -208,7 +208,7 @@ id = "bsblood_bag" build_path = /obj/item/reagent_containers/blood/bluespace build_type = PROTOLATHE - materials = list(MAT_GLASS = 2500, MAT_PLASTIC = 4500, MAT_BLUESPACE = 250) + materials = list(/datum/material/glass = 2500, /datum/material/plastic = 4500, /datum/material/bluespace = 250) category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -217,7 +217,7 @@ desc = "Produce additional disks for storing genetic data." id = "cloning_disk" build_type = PROTOLATHE - materials = list(MAT_METAL = 300, MAT_GLASS = 100, MAT_SILVER = 50) + materials = list(/datum/material/iron = 300, /datum/material/glass = 100, /datum/material/silver=50) build_path = /obj/item/disk/data category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE @@ -227,7 +227,7 @@ desc = "A large cool box that can hold large amouts of medical tools or organs." id = "organbox" build_type = PROTOLATHE - materials = list(MAT_METAL = 3000, MAT_GLASS = 1000, MAT_SILVER= 3500, MAT_GOLD = 3500, MAT_PLASTIC = 5000) + materials = list(/datum/material/iron = 3000, /datum/material/glass = 1000, /datum/material/silver= 3500, /datum/material/gold = 3500, /datum/material/plastic = 5000) build_path = /obj/item/storage/belt/organbox category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE @@ -242,7 +242,7 @@ id = "defibrillator" build_type = PROTOLATHE build_path = /obj/item/defibrillator - materials = list(MAT_METAL = 8000, MAT_GLASS = 4000, MAT_SILVER = 3000, MAT_GOLD = 1500) + materials = list(/datum/material/iron = 8000, /datum/material/glass = 4000, /datum/material/silver = 3000, /datum/material/gold = 1500) category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -251,7 +251,7 @@ desc = "An all-in-one mounted frame for holding defibrillators, complete with ID-locked clamps and recharging cables." id = "defibmount" build_type = PROTOLATHE - materials = list(MAT_METAL = 2000, MAT_GLASS = 1000) + materials = list(/datum/material/iron = 2000, /datum/material/glass = 1000) build_path = /obj/item/wallframe/defib_mount category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -261,7 +261,7 @@ desc = "An upgrade which increases the healing power of the defibrillator." id = "defib_heal" build_type = PROTOLATHE - materials = list(MAT_METAL = 16000, MAT_GLASS = 18000, MAT_GOLD = 6000, MAT_SILVER = 6000) + materials = list(/datum/material/iron = 16000, /datum/material/glass = 18000, /datum/material/gold = 6000, /datum/material/silver = 6000) build_path = /obj/item/disk/medical/defib_heal construction_time = 10 category = list("Misc") @@ -272,7 +272,7 @@ desc = "A safety upgrade that guarantees only the patient will get shocked." id = "defib_shock" build_type = PROTOLATHE - materials = list(MAT_METAL = 16000, MAT_GLASS = 18000, MAT_GOLD = 6000, MAT_SILVER = 6000) + materials = list(/datum/material/iron = 16000, /datum/material/glass = 18000, /datum/material/gold = 6000, /datum/material/silver = 6000) build_path = /obj/item/disk/medical/defib_shock construction_time = 10 category = list("Misc") @@ -283,7 +283,7 @@ desc = "An upgrade allowing the defibrillator to work on more decayed bodies." id = "defib_decay" build_type = PROTOLATHE - materials = list(MAT_METAL = 16000, MAT_GLASS = 18000, MAT_GOLD = 16000, MAT_SILVER = 6000, MAT_TITANIUM = 2000) + materials = list(/datum/material/iron = 16000, /datum/material/glass = 18000, /datum/material/gold = 16000, /datum/material/silver = 6000, /datum/material/titanium = 2000) build_path = /obj/item/disk/medical/defib_decay construction_time = 10 category = list("Misc") @@ -295,7 +295,7 @@ id = "defib_speed" build_type = PROTOLATHE build_path = /obj/item/disk/medical/defib_speed - materials = list(MAT_METAL = 16000, MAT_GLASS = 8000, MAT_GOLD = 26000, MAT_SILVER = 26000) + materials = list(/datum/material/iron = 16000, /datum/material/glass = 8000, /datum/material/gold = 26000, /datum/material/silver = 26000) construction_time = 10 category = list("Misc") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -306,7 +306,7 @@ id = "defibrillator_compact" build_type = PROTOLATHE build_path = /obj/item/defibrillator/compact - materials = list(MAT_METAL = 16000, MAT_GLASS = 8000, MAT_SILVER = 6000, MAT_GOLD = 3000) + materials = list(/datum/material/iron = 16000, /datum/material/glass = 8000, /datum/material/silver = 6000, /datum/material/gold = 3000) category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -320,7 +320,7 @@ id = "ci-welding" build_type = PROTOLATHE | MECHFAB construction_time = 40 - materials = list(MAT_METAL = 600, MAT_GLASS = 400) + materials = list(/datum/material/iron = 600, /datum/material/glass = 400) build_path = /obj/item/organ/eyes/robotic/shield category = list("Misc", "Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -331,7 +331,7 @@ id = "ci-gloweyes" build_type = PROTOLATHE | MECHFAB construction_time = 40 - materials = list(MAT_METAL = 600, MAT_GLASS = 1000) + materials = list(/datum/material/iron = 600, /datum/material/glass = 1000) build_path = /obj/item/organ/eyes/robotic/glow category = list("Misc", "Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -342,7 +342,7 @@ id = "ci-breather" build_type = PROTOLATHE | MECHFAB construction_time = 35 - materials = list(MAT_METAL = 600, MAT_GLASS = 250) + materials = list(/datum/material/iron = 600, /datum/material/glass = 250) build_path = /obj/item/organ/cyberimp/mouth/breathing_tube category = list("Misc", "Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -352,7 +352,7 @@ desc = "A set of surgical tools hidden behind a concealed panel on the user's arm." id = "ci-surgery" build_type = PROTOLATHE | MECHFAB - materials = list (MAT_METAL = 2500, MAT_GLASS = 1500, MAT_SILVER = 1500) + materials = list (/datum/material/iron = 2500, /datum/material/glass = 1500, /datum/material/silver = 1500) construction_time = 200 build_path = /obj/item/organ/cyberimp/arm/surgery category = list("Misc", "Medical Designs") @@ -363,7 +363,7 @@ desc = "A stripped-down version of engineering cyborg toolset, designed to be installed on subject's arm." id = "ci-toolset" build_type = PROTOLATHE | MECHFAB - materials = list (MAT_METAL = 2500, MAT_GLASS = 1500, MAT_SILVER = 1500) + materials = list (/datum/material/iron = 2500, /datum/material/glass = 1500, /datum/material/silver = 1500) construction_time = 200 build_path = /obj/item/organ/cyberimp/arm/toolset category = list("Misc", "Medical Designs") @@ -375,7 +375,7 @@ id = "ci-medhud" build_type = PROTOLATHE | MECHFAB construction_time = 50 - materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 500, MAT_GOLD = 500) + materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/silver = 500, /datum/material/gold = 500) build_path = /obj/item/organ/cyberimp/eyes/hud/medical category = list("Misc", "Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -386,7 +386,7 @@ id = "ci-sechud" build_type = PROTOLATHE | MECHFAB construction_time = 50 - materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 750, MAT_GOLD = 750) + materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/silver = 750, /datum/material/gold = 750) build_path = /obj/item/organ/cyberimp/eyes/hud/security category = list("Misc", "Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -397,7 +397,7 @@ id = "ci-xray" build_type = PROTOLATHE | MECHFAB construction_time = 60 - materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 600, MAT_GOLD = 600, MAT_PLASMA = 1000, MAT_URANIUM = 1000, MAT_DIAMOND = 1000, MAT_BLUESPACE = 1000) + materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/silver = 600, /datum/material/gold = 600, /datum/material/plasma = 1000, /datum/material/uranium = 1000, /datum/material/diamond = 1000, /datum/material/bluespace = 1000) build_path = /obj/item/organ/eyes/robotic/xray category = list("Misc", "Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -408,7 +408,7 @@ id = "ci-thermals" build_type = PROTOLATHE | MECHFAB construction_time = 60 - materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 600, MAT_GOLD = 600, MAT_PLASMA = 1000, MAT_DIAMOND = 2000) + materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/silver = 600, /datum/material/gold = 600, /datum/material/plasma = 1000, /datum/material/diamond = 2000) build_path = /obj/item/organ/eyes/robotic/thermals category = list("Misc", "Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -419,7 +419,7 @@ id = "ci-antidrop" build_type = PROTOLATHE | MECHFAB construction_time = 60 - materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 400, MAT_GOLD = 400) + materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/silver = 400, /datum/material/gold = 400) build_path = /obj/item/organ/cyberimp/brain/anti_drop category = list("Misc", "Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -430,7 +430,7 @@ id = "ci-antistun" build_type = PROTOLATHE | MECHFAB construction_time = 60 - materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 500, MAT_GOLD = 1000) + materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/silver = 500, /datum/material/gold = 1000) build_path = /obj/item/organ/cyberimp/brain/anti_stun category = list("Misc", "Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -441,7 +441,7 @@ id = "ci-nutriment" build_type = PROTOLATHE | MECHFAB construction_time = 40 - materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_GOLD = 500) + materials = list(/datum/material/iron = 500, /datum/material/glass = 500, /datum/material/gold = 500) build_path = /obj/item/organ/cyberimp/chest/nutriment category = list("Misc", "Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -452,7 +452,7 @@ id = "ci-nutrimentplus" build_type = PROTOLATHE | MECHFAB construction_time = 50 - materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_GOLD = 500, MAT_URANIUM = 750) + materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/gold = 500, /datum/material/uranium = 750) build_path = /obj/item/organ/cyberimp/chest/nutriment/plus category = list("Misc", "Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -463,7 +463,7 @@ id = "ci-reviver" build_type = PROTOLATHE | MECHFAB construction_time = 60 - materials = list(MAT_METAL = 800, MAT_GLASS = 800, MAT_GOLD = 300, MAT_URANIUM = 500) + materials = list(/datum/material/iron = 800, /datum/material/glass = 800, /datum/material/gold = 300, /datum/material/uranium = 500) build_path = /obj/item/organ/cyberimp/chest/reviver category = list("Misc", "Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -474,7 +474,7 @@ id = "ci-thrusters" build_type = PROTOLATHE | MECHFAB construction_time = 80 - materials = list(MAT_METAL = 4000, MAT_GLASS = 2000, MAT_SILVER = 1000, MAT_DIAMOND = 1000) + materials = list(/datum/material/iron = 4000, /datum/material/glass = 2000, /datum/material/silver = 1000, /datum/material/diamond = 1000) build_path = /obj/item/organ/cyberimp/chest/thrusters category = list("Misc", "Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -488,7 +488,7 @@ desc = "A sterile automatic implant injector." id = "implanter" build_type = PROTOLATHE - materials = list(MAT_METAL = 600, MAT_GLASS = 200) + materials = list(/datum/material/iron = 600, /datum/material/glass = 200) build_path = /obj/item/implanter category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL @@ -498,7 +498,7 @@ desc = "A glass case for containing an implant." id = "implantcase" build_type = PROTOLATHE - materials = list(MAT_GLASS = 500) + materials = list(/datum/material/glass = 500) build_path = /obj/item/implantcase category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL @@ -508,7 +508,7 @@ desc = "Makes death amusing." id = "implant_trombone" build_type = PROTOLATHE - materials = list(MAT_GLASS = 500, MAT_BANANIUM = 500) + materials = list(/datum/material/glass = 500, /datum/material/bananium = 500) build_path = /obj/item/implantcase/sad_trombone category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_ALL //if you get bananium you get the sad trombones. @@ -518,7 +518,7 @@ desc = "A glass case containing an implant." id = "implant_chem" build_type = PROTOLATHE - materials = list(MAT_GLASS = 700) + materials = list(/datum/material/glass = 700) build_path = /obj/item/implantcase/chem category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL @@ -528,7 +528,7 @@ desc = "A glass case containing an implant." id = "implant_tracking" build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500) + materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/implantcase/track category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL @@ -540,7 +540,7 @@ desc = "A cybernetic liver" id = "cybernetic_liver" build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500) + materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/organ/liver/cybernetic category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -550,7 +550,7 @@ desc = "A cybernetic heart" id = "cybernetic_heart" build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500) + materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/organ/heart/cybernetic category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -561,7 +561,7 @@ id = "cybernetic_heart_u" build_type = PROTOLATHE | MECHFAB construction_time = 50 - materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER = 500) + materials = list(/datum/material/iron = 500, /datum/material/glass = 500, /datum/material/silver = 500) build_path = /obj/item/organ/heart/cybernetic/upgraded category = list("Misc", "Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -571,7 +571,7 @@ desc = "An upgraded cybernetic liver" id = "cybernetic_liver_u" build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500) + materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/organ/liver/cybernetic/upgraded category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -581,7 +581,7 @@ desc = "A pair of cybernetic lungs." id = "cybernetic_lungs" build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500) + materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/organ/lungs/cybernetic category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -591,7 +591,7 @@ desc = "A pair of upgraded cybernetic lungs." id = "cybernetic_lungs_u" build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER = 500) + materials = list(/datum/material/iron = 500, /datum/material/glass = 500, /datum/material/silver = 500) build_path = /obj/item/organ/lungs/cybernetic/upgraded category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -601,7 +601,7 @@ desc = "A fancy cybernetic tongue." id = "cybernetic_tongue" build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500) + materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/organ/tongue/cybernetic category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -612,7 +612,7 @@ id = "cybernetic_ears" build_type = PROTOLATHE | MECHFAB construction_time = 30 - materials = list(MAT_METAL = 250, MAT_GLASS = 400) + materials = list(/datum/material/iron = 250, /datum/material/glass = 400) build_path = /obj/item/organ/ears/cybernetic category = list("Misc", "Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -623,7 +623,7 @@ id = "cybernetic_ears_u" build_type = PROTOLATHE | MECHFAB construction_time = 40 - materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER = 500) + materials = list(/datum/material/iron = 500, /datum/material/glass = 500, /datum/material/silver = 500) build_path = /obj/item/organ/ears/cybernetic/upgraded category = list("Misc", "Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -802,7 +802,7 @@ desc = "Basic outdated and fragile prosthetic left arm." id = "basic_l_arm" build_type = PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_GLASS = 2500) + materials = list(/datum/material/iron = 5000, /datum/material/glass = 2500) construction_time = 20 build_path = /obj/item/bodypart/l_arm/robot/surplus category = list("Medical Designs") @@ -813,7 +813,7 @@ desc = "Basic outdated and fragile prosthetic left arm." id = "basic_r_arm" build_type = PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_GLASS = 2500) + materials = list(/datum/material/iron = 5000, /datum/material/glass = 2500) construction_time = 20 build_path = /obj/item/bodypart/r_arm/robot/surplus category = list("Medical Designs") @@ -824,7 +824,7 @@ desc = "Basic outdated and fragile prosthetic left leg." id = "basic_l_leg" build_type = PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_GLASS = 2500) + materials = list(/datum/material/iron = 5000, /datum/material/glass = 2500) construction_time = 20 build_path = /obj/item/bodypart/l_leg/robot/surplus category = list("Medical Designs") @@ -835,7 +835,7 @@ desc = "Basic outdated and fragile prosthetic right leg." id = "basic_r_leg" build_type = PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_GLASS = 2500) + materials = list(/datum/material/iron = 5000, /datum/material/glass = 2500) construction_time = 20 build_path = /obj/item/bodypart/r_leg/robot/surplus category = list("Medical Designs") @@ -846,7 +846,7 @@ desc = "A renforced prosthetic right leg." id = "adv_r_leg" build_type = PROTOLATHE - materials = list(MAT_METAL = 6000, MAT_GLASS = 3500, MAT_GOLD = 500, MAT_TITANIUM = 800) + materials = list(/datum/material/iron = 6000, /datum/material/glass = 3500, /datum/material/gold = 500, /datum/material/titanium = 800) construction_time = 40 build_path = /obj/item/bodypart/r_leg/robot/surplus_upgraded category = list("Medical Designs") @@ -857,7 +857,7 @@ desc = "A renforced prosthetic left leg." id = "adv_l_leg" build_type = PROTOLATHE - materials = list(MAT_METAL = 6000, MAT_GLASS = 3500, MAT_GOLD = 500, MAT_TITANIUM = 800) + materials = list(/datum/material/iron = 6000, /datum/material/glass = 3500, /datum/material/gold = 500, /datum/material/titanium = 800) construction_time = 40 build_path = /obj/item/bodypart/l_leg/robot/surplus_upgraded category = list("Medical Designs") @@ -868,7 +868,7 @@ desc = "A renforced prosthetic left arm." id = "adv_l_arm" build_type = PROTOLATHE - materials = list(MAT_METAL = 6000, MAT_GLASS = 3500, MAT_GOLD = 500, MAT_TITANIUM = 800) + materials = list(/datum/material/iron = 6000, /datum/material/glass = 3500, /datum/material/gold = 500, /datum/material/titanium = 800) construction_time = 40 build_path = /obj/item/bodypart/l_arm/robot/surplus_upgraded category = list("Medical Designs") @@ -879,7 +879,7 @@ desc = "A renforced prosthetic right arm." id = "adv_r_arm" build_type = PROTOLATHE - materials = list(MAT_METAL = 6000, MAT_GLASS = 3500, MAT_GOLD = 500, MAT_TITANIUM = 800) + materials = list(/datum/material/iron = 6000, /datum/material/glass = 3500, /datum/material/gold = 500, /datum/material/titanium = 800) construction_time = 40 build_path = /obj/item/bodypart/r_arm/robot/surplus_upgraded category = list("Medical Designs") diff --git a/code/modules/research/designs/mining_designs.dm b/code/modules/research/designs/mining_designs.dm index b4ac5f109d..53fa5b21ea 100644 --- a/code/modules/research/designs/mining_designs.dm +++ b/code/modules/research/designs/mining_designs.dm @@ -7,7 +7,7 @@ desc = "Allows for the construction of circuit boards used to build an Express Supply Console."//who? id = "cargoexpress"//the coder reading this build_type = IMPRINTER - materials = list(MAT_GLASS = 1000) + materials = list(/datum/material/glass = 1000) build_path = /obj/item/circuitboard/computer/cargo/express category = list("Mining Designs") departmental_flags = DEPARTMENTAL_FLAG_CARGO @@ -17,7 +17,7 @@ desc = "Allows the Cargo Express Console to call down the Bluespace Drop Pod, greatly increasing user safety."//who? id = "bluespace_pod"//the coder reading this build_type = PROTOLATHE - materials = list(MAT_GLASS = 1000) + materials = list(/datum/material/glass = 1000) build_path = /obj/item/disk/cargo/bluespace_pod category = list("Mining Designs") departmental_flags = DEPARTMENTAL_FLAG_CARGO @@ -27,7 +27,7 @@ desc = "Yours is the drill that will pierce through the rock walls." id = "drill" build_type = PROTOLATHE - materials = list(MAT_METAL = 6000, MAT_GLASS = 1000) //expensive, but no need for miners. + materials = list(/datum/material/iron = 6000, /datum/material/glass = 1000) //expensive, but no need for miners. build_path = /obj/item/pickaxe/drill category = list("Mining Designs") departmental_flags = DEPARTMENTAL_FLAG_CARGO @@ -37,7 +37,7 @@ desc = "Yours is the drill that will pierce the heavens!" id = "drill_diamond" build_type = PROTOLATHE - materials = list(MAT_METAL = 6000, MAT_GLASS = 1000, MAT_DIAMOND = 2000) //Yes, a whole diamond is needed. + materials = list(/datum/material/iron = 6000, /datum/material/glass = 1000, /datum/material/diamond = 2000) //Yes, a whole diamond is needed. build_path = /obj/item/pickaxe/drill/diamonddrill category = list("Mining Designs") departmental_flags = DEPARTMENTAL_FLAG_CARGO @@ -47,7 +47,7 @@ desc = "You could use it to cut limbs off of xenos! Or, you know, mine stuff." id = "plasmacutter" build_type = PROTOLATHE - materials = list(MAT_METAL = 1500, MAT_GLASS = 500, MAT_PLASMA = 400) + materials = list(/datum/material/iron = 1500, /datum/material/glass = 500, /datum/material/plasma = 400) build_path = /obj/item/gun/energy/plasmacutter category = list("Mining Designs") departmental_flags = DEPARTMENTAL_FLAG_CARGO @@ -57,17 +57,37 @@ desc = "It's an advanced plasma cutter, oh my god." id = "plasmacutter_adv" build_type = PROTOLATHE - materials = list(MAT_METAL = 3000, MAT_GLASS = 1000, MAT_PLASMA = 2000, MAT_GOLD = 500) + materials = list(/datum/material/iron = 3000, /datum/material/glass = 1000, /datum/material/plasma = 2000, /datum/material/gold = 500) build_path = /obj/item/gun/energy/plasmacutter/adv category = list("Mining Designs") departmental_flags = DEPARTMENTAL_FLAG_CARGO +/datum/design/plasteel_pick + name = "plasteel-tipped pickaxe" + desc = "A pickaxe with a plasteel pick head. Less robust at cracking rock walls and digging up dirt than the titanium pickaxe, but better at cracking open skulls." + id = "plasteel_pick" + build_type = PROTOLATHE + materials = list(/datum/material/iron=2000, /datum/material/plasma=2000) + build_path = /obj/item/pickaxe/plasteel + category = list("Mining Designs") + departmental_flags = DEPARTMENTAL_FLAG_CARGO + +/datum/design/titanium_pick + name = "titanium-tipped pickaxe" + desc = "A pickaxe with a titanium pick head. Extremely robust at cracking rock walls and digging up dirt, but less than the plasteel pickaxe at cracking open skulls." + id = "titanium_pick" + build_type = PROTOLATHE + materials = list(/datum/material/titanium = 4000) + build_path = /obj/item/pickaxe/titanium + category = list("Mining Designs") + departmental_flags = DEPARTMENTAL_FLAG_CARGO + /datum/design/jackhammer name = "Sonic Jackhammer" desc = "Essentially a handheld planet-cracker. Can drill through walls with ease as well." id = "jackhammer" build_type = PROTOLATHE - materials = list(MAT_METAL = 6000, MAT_GLASS = 2000, MAT_SILVER = 2000, MAT_DIAMOND = 6000) + materials = list(/datum/material/iron = 6000, /datum/material/glass = 2000, /datum/material/silver = 2000, /datum/material/diamond = 6000) build_path = /obj/item/pickaxe/drill/jackhammer category = list("Mining Designs") departmental_flags = DEPARTMENTAL_FLAG_CARGO @@ -77,7 +97,7 @@ desc = "An upgraded version of the resonator that allows more fields to be active at once." id = "superresonator" build_type = PROTOLATHE - materials = list(MAT_METAL = 4000, MAT_GLASS = 1500, MAT_SILVER = 1000, MAT_URANIUM = 1000) + materials = list(/datum/material/iron = 4000, /datum/material/glass = 1500, /datum/material/silver = 1000, /datum/material/uranium = 1000) build_path = /obj/item/resonator/upgraded category = list("Mining Designs") departmental_flags = DEPARTMENTAL_FLAG_CARGO @@ -87,7 +107,7 @@ desc = "A device which allows kinetic accelerators to be wielded by any organism." id = "triggermod" build_type = PROTOLATHE - materials = list(MAT_METAL = 2000, MAT_GLASS = 1500, MAT_GOLD = 1500, MAT_URANIUM = 1000) + materials = list(/datum/material/iron = 2000, /datum/material/glass = 1500, /datum/material/gold = 1500, /datum/material/uranium = 1000) build_path = /obj/item/borg/upgrade/modkit/trigger_guard category = list("Mining Designs") departmental_flags = DEPARTMENTAL_FLAG_CARGO @@ -97,7 +117,7 @@ desc = "A device which allows kinetic accelerators to deal more damage." id = "damagemod" build_type = PROTOLATHE | MECHFAB - materials = list(MAT_METAL = 2000, MAT_GLASS = 1500, MAT_GOLD = 1500, MAT_URANIUM = 1000) + materials = list(/datum/material/iron = 2000, /datum/material/glass = 1500, /datum/material/gold = 1500, /datum/material/uranium = 1000) build_path = /obj/item/borg/upgrade/modkit/damage category = list("Mining Designs", "Cyborg Upgrade Modules") departmental_flags = DEPARTMENTAL_FLAG_CARGO @@ -107,7 +127,7 @@ desc = "A device which decreases the cooldown of a Kinetic Accelerator." id = "cooldownmod" build_type = PROTOLATHE | MECHFAB - materials = list(MAT_METAL = 2000, MAT_GLASS = 1500, MAT_GOLD = 1500, MAT_URANIUM = 1000) + materials = list(/datum/material/iron = 2000, /datum/material/glass = 1500, /datum/material/gold = 1500, /datum/material/uranium = 1000) build_path = /obj/item/borg/upgrade/modkit/cooldown category = list("Mining Designs", "Cyborg Upgrade Modules") departmental_flags = DEPARTMENTAL_FLAG_CARGO @@ -117,7 +137,7 @@ desc = "A device which allows kinetic accelerators to fire at a further range." id = "rangemod" build_type = PROTOLATHE | MECHFAB - materials = list(MAT_METAL = 2000, MAT_GLASS = 1500, MAT_GOLD = 1500, MAT_URANIUM = 1000) + materials = list(/datum/material/iron = 2000, /datum/material/glass = 1500, /datum/material/gold = 1500, /datum/material/uranium = 1000) build_path = /obj/item/borg/upgrade/modkit/range category = list("Mining Designs", "Cyborg Upgrade Modules") departmental_flags = DEPARTMENTAL_FLAG_CARGO @@ -127,7 +147,7 @@ desc = "A modification kit for Kinetic Accelerators which causes it to fire AoE blasts that destroy rock." id = "hypermod" build_type = PROTOLATHE | MECHFAB - materials = list(MAT_METAL = 8000, MAT_GLASS = 1500, MAT_SILVER = 2000, MAT_GOLD = 2000, MAT_DIAMOND = 2000) + materials = list(/datum/material/iron = 8000, /datum/material/glass = 1500, /datum/material/silver = 2000, /datum/material/gold = 2000, /datum/material/diamond = 2000) build_path = /obj/item/borg/upgrade/modkit/aoe/turfs category = list("Mining Designs", "Cyborg Upgrade Modules") departmental_flags = DEPARTMENTAL_FLAG_CARGO diff --git a/code/modules/research/designs/misc_designs.dm b/code/modules/research/designs/misc_designs.dm index 3867fa9f23..c18c33b04b 100644 --- a/code/modules/research/designs/misc_designs.dm +++ b/code/modules/research/designs/misc_designs.dm @@ -7,7 +7,7 @@ desc = "A heads-up display that scans the humans in view and provides accurate data about their health status." id = "health_hud" build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500) + materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/clothing/glasses/hud/health category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -17,7 +17,7 @@ desc = "A heads-up display that scans the humans in view and provides accurate data about their health status. This one has a prescription lens." id = "health_hud_prescription" build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER = 350) + materials = list(/datum/material/iron = 500, /datum/material/glass = 500, /datum/material/silver = 350) build_path = /obj/item/clothing/glasses/hud/health/prescription category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -27,7 +27,7 @@ desc = "An advanced medical head-up display that allows doctors to find patients in complete darkness." id = "health_hud_night" build_type = PROTOLATHE - materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_URANIUM = 1000, MAT_SILVER = 350) + materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/uranium = 1000, /datum/material/silver = 350) build_path = /obj/item/clothing/glasses/hud/health/night category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -37,7 +37,7 @@ desc = "A heads-up display that scans the humans in view and provides accurate data about their ID status." id = "security_hud" build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500) + materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/clothing/glasses/hud/security category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -47,7 +47,7 @@ desc = "A heads-up display that scans the humans in view and provides accurate data about their ID status. This one has a prescription lens." id = "security_hud_prescription" build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER = 350) + materials = list(/datum/material/iron = 500, /datum/material/glass = 500, /datum/material/silver = 350) build_path = /obj/item/clothing/glasses/hud/security/prescription category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -57,7 +57,7 @@ desc = "A heads-up display which provides id data and vision in complete darkness." id = "security_hud_night" build_type = PROTOLATHE - materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_URANIUM = 1000, MAT_GOLD = 350) + materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/uranium = 1000, /datum/material/gold = 350) build_path = /obj/item/clothing/glasses/hud/security/night category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -67,7 +67,7 @@ desc = "A HUD used to analyze and determine faults within robotic machinery." id = "diagnostic_hud" build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500) + materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/clothing/glasses/hud/diagnostic category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -77,7 +77,7 @@ desc = "A HUD used to analyze and determine faults within robotic machinery. This one has a prescription lens." id = "diagnostic_hud_prescription" build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_GOLD = 350) + materials = list(/datum/material/iron = 500, /datum/material/glass = 500, /datum/material/gold = 350) build_path = /obj/item/clothing/glasses/hud/diagnostic/prescription category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -87,7 +87,7 @@ desc = "Upgraded version of the diagnostic HUD designed to function during a power failure." id = "diagnostic_hud_night" build_type = PROTOLATHE - materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_URANIUM = 1000, MAT_PLASMA = 300) + materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/uranium = 1000, /datum/material/plasma = 300) build_path = /obj/item/clothing/glasses/hud/diagnostic/night category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -97,7 +97,7 @@ desc = "Goggles fitted with a portable analyzer capable of determining the research worth of an item or components of a machine." id = "scigoggles" build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500) + materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/clothing/glasses/science category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -107,7 +107,7 @@ desc = "Used by engineering and mining staff to see basic structural and terrain layouts through walls, regardless of lighting condition." id = "mesons" build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500) + materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/clothing/glasses/meson category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_ENGINEERING @@ -117,7 +117,7 @@ desc = "Used by engineering and mining staff to see basic structural and terrain layouts through walls, regardless of lighting condition. Prescription lens has been added into this design." id = "mesons_prescription" build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER = 350) + materials = list(/datum/material/iron = 500, /datum/material/glass = 500, /datum/material/silver = 350) build_path = /obj/item/clothing/glasses/meson/prescription category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_ENGINEERING @@ -127,7 +127,7 @@ desc = "Goggles used by engineers. The Meson Scanner mode lets you see basic structural and terrain layouts through walls, regardless of lighting condition. The T-ray Scanner mode lets you see underfloor objects such as cables and pipes." id = "engine_goggles" build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_PLASMA = 100) + materials = list(/datum/material/iron = 500, /datum/material/glass = 500, /datum/material/plasma = 100) build_path = /obj/item/clothing/glasses/meson/engine category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -137,7 +137,7 @@ desc = "Goggles used by engineers. The Meson Scanner mode lets you see basic structural and terrain layouts through walls, regardless of lighting condition. The T-ray Scanner mode lets you see underfloor objects such as cables and pipes. Prescription lens has been added into this design." id = "engine_goggles_prescription" build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_PLASMA = 100, MAT_SILVER = 350) + materials = list(/datum/material/iron = 500, /datum/material/glass = 500, /datum/material/plasma = 100, /datum/material/silver = 350) build_path = /obj/item/clothing/glasses/meson/engine/prescription category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -147,7 +147,7 @@ desc = "Used by engineering staff to see underfloor objects such as cables and pipes." id = "tray_goggles" build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500) + materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/clothing/glasses/meson/engine/tray category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -157,7 +157,7 @@ desc = "Used by engineering staff to see underfloor objects such as cables and pipes. Prescription lens has been added into this design." id = "tray_goggles_prescription" build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER = 150) + materials = list(/datum/material/iron = 500, /datum/material/glass = 500, /datum/material/silver = 150) build_path = /obj/item/clothing/glasses/meson/engine/tray/prescription category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -167,7 +167,7 @@ desc = "Prototype meson scanners fitted with an extra sensor which amplifies the visible light spectrum and overlays it to the UHD display." id = "nvgmesons" build_type = PROTOLATHE - materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_PLASMA = 350, MAT_URANIUM = 1000) + materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/plasma = 350, /datum/material/uranium = 1000) build_path = /obj/item/clothing/glasses/meson/night category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_CARGO @@ -177,7 +177,7 @@ desc = "Goggles that let you see through darkness unhindered." id = "night_visision_goggles" build_type = PROTOLATHE - materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_PLASMA = 350, MAT_URANIUM = 1000) + materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/plasma = 350, /datum/material/uranium = 1000) build_path = /obj/item/clothing/glasses/night category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_SECURITY @@ -187,7 +187,7 @@ desc = "Goggles that let you see through darkness unhindered. Corrects vision." id = "night_visision_goggles_glasses" build_type = PROTOLATHE - materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_PLASMA = 350, MAT_URANIUM = 1000) + materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/plasma = 350, /datum/material/uranium = 1000) build_path = /obj/item/clothing/glasses/night/prescription category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_ENGINEERING @@ -201,7 +201,7 @@ desc = "A gas mask with built in welding goggles and face shield. Looks like a skull, clearly designed by a nerd." id = "weldingmask" build_type = PROTOLATHE - materials = list(MAT_METAL = 3000, MAT_GLASS = 1000) + materials = list(/datum/material/iron = 3000, /datum/material/glass = 1000) build_path = /obj/item/clothing/mask/gas/welding category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -211,7 +211,7 @@ desc = "For the enterprising botanist on the go. Less efficient than the stationary model, it creates one seed per plant." id = "portaseeder" build_type = PROTOLATHE - materials = list(MAT_METAL = 1000, MAT_GLASS = 400) + materials = list(/datum/material/iron = 1000, /datum/material/glass = 400) build_path = /obj/item/storage/bag/plants/portaseeder category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SERVICE @@ -221,7 +221,7 @@ desc = "Damn son, where'd you find this?" id = "air_horn" build_type = PROTOLATHE - materials = list(MAT_METAL = 4000, MAT_BANANIUM = 1000) + materials = list(/datum/material/iron = 4000, /datum/material/bananium = 1000) build_path = /obj/item/bikehorn/airhorn category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_ALL //HONK! @@ -231,7 +231,7 @@ desc = "Magnetic boots, often used during extravehicular activity to ensure the user remains safely attached to the vehicle." id = "magboots" build_type = PROTOLATHE - materials = list(MAT_METAL = 4500, MAT_SILVER = 1500, MAT_GOLD = 2500) + materials = list(/datum/material/iron = 4500, /datum/material/silver = 1500, /datum/material/gold = 2500) build_path = /obj/item/clothing/shoes/magboots category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -241,7 +241,7 @@ desc = "Goggles fitted with a portable analyzer capable of determining the research worth of an item or components of a machine." id = "scigoggles" build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500) + materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/clothing/glasses/science category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -250,10 +250,10 @@ name = "Plant Data Disk" desc = "A disk for storing plant genetic data." id = "diskplantgene" - build_type = PROTOLATHE - materials = list(MAT_METAL=200, MAT_GLASS=100) + build_type = PROTOLATHE | AUTOLATHE + materials = list(/datum/material/iron=200, /datum/material/glass=100) build_path = /obj/item/disk/plantgene - category = list("Electronics") + category = list("Electronics","Imported") departmental_flags = DEPARTMENTAL_FLAG_SERVICE /datum/design/roastingstick @@ -261,7 +261,7 @@ desc = "A roasting stick for cooking sausages in exotic ovens." id = "roastingstick" build_type = PROTOLATHE - materials = list(MAT_METAL=1000, MAT_GLASS=500, MAT_BLUESPACE = 250) + materials = list(/datum/material/iron=1000, /datum/material/glass=500, /datum/material/bluespace = 250) build_path = /obj/item/melee/roastingstick category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SERVICE @@ -271,7 +271,7 @@ desc = "Used to track portable teleportation beacons and targets with embedded tracking implants." id = "locator" build_type = PROTOLATHE - materials = list(MAT_METAL=1000, MAT_GLASS=500, MAT_SILVER = 500) + materials = list(/datum/material/iron=1000, /datum/material/glass=500, /datum/material/silver = 500) build_path = /obj/item/locator category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -281,7 +281,7 @@ desc = "A refill canister for Donksoft Toy Vendors." id = "donksoft_refill" build_type = PROTOLATHE - materials = list(MAT_METAL = 25000, MAT_GLASS = 15000, MAT_PLASMA = 20000, MAT_GOLD = 10000, MAT_SILVER = 10000) + materials = list(/datum/material/iron = 25000, /datum/material/glass = 15000, /datum/material/plasma = 20000, /datum/material/gold = 10000, /datum/material/silver = 10000) build_path = /obj/item/vending_refill/donksoft category = list("Equipment") @@ -289,12 +289,32 @@ ////////////Janitor Designs////////////// ///////////////////////////////////////// +/datum/design/broom + name = "Broom" + desc = "Just your everyday standard broom." + id = "broom" + build_type = PROTOLATHE + materials = list(/datum/material/iron = 1000, /datum/material/glass = 600) + build_path = /obj/item/twohanded/broom + category = list("Equipment") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE + +/datum/design/mop + name = "Mop" + desc = "Just your everyday standard mop." + id = "mop" + build_type = PROTOLATHE + materials = list(/datum/material/iron = 1200, /datum/material/glass = 100) + build_path = /obj/item/mop + category = list("Equipment") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE + /datum/design/advmop name = "Advanced Mop" desc = "An upgraded mop with a large internal capacity for holding water or other cleaning chemicals." id = "advmop" build_type = PROTOLATHE - materials = list(MAT_METAL = 2500, MAT_GLASS = 200) + materials = list(/datum/material/iron = 2500, /datum/material/glass = 200) build_path = /obj/item/mop/advanced category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SERVICE @@ -304,7 +324,7 @@ desc = "A device to automatically replace lights. Refill with working light bulbs." id = "light_replacer" build_type = PROTOLATHE - materials = list(MAT_METAL = 1500, MAT_SILVER = 150, MAT_GLASS = 3000) + materials = list(/datum/material/iron = 1500, /datum/material/silver = 150, /datum/material/glass = 3000) build_path = /obj/item/lightreplacer category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SERVICE @@ -314,7 +334,7 @@ desc = "An advanced trash bag with bluespace properties; capable of holding a plethora of garbage." id = "blutrash" build_type = PROTOLATHE - materials = list(MAT_GOLD = 1500, MAT_URANIUM = 250, MAT_PLASMA = 1500) + materials = list(/datum/material/gold = 1500, /datum/material/uranium = 250, /datum/material/plasma = 1500) build_path = /obj/item/storage/bag/trash/bluespace category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SERVICE @@ -324,7 +344,7 @@ desc = "A floor buffer that can be attached to vehicular janicarts." id = "buffer" build_type = PROTOLATHE - materials = list(MAT_METAL = 3000, MAT_GLASS = 200) + materials = list(/datum/material/iron = 3000, /datum/material/glass = 200) build_path = /obj/item/janiupgrade category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SERVICE @@ -334,7 +354,7 @@ desc = "A spray bottle, with an unscrewable top." id = "spraybottle" build_type = PROTOLATHE - materials = list(MAT_METAL = 3000, MAT_GLASS = 200) + materials = list(/datum/material/iron = 3000, /datum/material/glass = 200) build_path = /obj/item/reagent_containers/spray category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SERVICE @@ -344,7 +364,7 @@ desc = "A trap used to catch space bears and other legged creatures." id = "beartrap" build_type = PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_TITANIUM = 1000) + materials = list(/datum/material/iron = 5000, /datum/material/titanium = 1000) build_path = /obj/item/restraints/legcuffs/beartrap category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SERVICE @@ -358,7 +378,7 @@ desc = "A holograpic projector used to project various warning signs." id = "holosign" build_type = PROTOLATHE - materials = list(MAT_METAL = 2000, MAT_GLASS = 1000) + materials = list(/datum/material/iron = 2000, /datum/material/glass = 1000) build_path = /obj/item/holosign_creator category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SERVICE @@ -368,7 +388,7 @@ desc = "A holographic projector that creates holographic security barriers." id = "holosignsec" build_type = PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_GLASS = 1000, MAT_GOLD = 1000, MAT_SILVER = 1000) + materials = list(/datum/material/iron = 5000, /datum/material/glass = 1000, /datum/material/gold = 1000, /datum/material/silver = 1000) build_path = /obj/item/holosign_creator/security category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -378,7 +398,7 @@ desc = "A holographic projector that creates holographic engineering barriers." id = "holosignengi" build_type = PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_GLASS = 1000, MAT_GOLD = 1000, MAT_SILVER = 1000) + materials = list(/datum/material/iron = 5000, /datum/material/glass = 1000, /datum/material/gold = 1000, /datum/material/silver = 1000) build_path = /obj/item/holosign_creator/engineering category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -388,7 +408,7 @@ desc = "A holographic projector that creates holographic barriers that prevent changes in atmospheric conditions." id = "holosignatmos" build_type = PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_GLASS = 1000, MAT_GOLD = 1000, MAT_SILVER = 1000) + materials = list(/datum/material/iron = 5000, /datum/material/glass = 1000, /datum/material/gold = 1000, /datum/material/silver = 1000) build_path = /obj/item/holosign_creator/atmos category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -398,7 +418,7 @@ desc = "A holographic projector that creates holographic barriers that prevent changes in temperature conditions." id = "holosignfirelock" build_type = PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_GLASS = 1000, MAT_GOLD = 1000, MAT_SILVER = 1000) + materials = list(/datum/material/iron = 5000, /datum/material/glass = 1000, /datum/material/gold = 1000, /datum/material/silver = 1000) build_path = /obj/item/holosign_creator/firelock category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -408,7 +428,7 @@ desc = "A holographic projector that creates holographic barriers that prevent changes in atmospheric and temperature conditions." id = "holosigncombifan" build_type = PROTOLATHE - materials = list(MAT_METAL = 7500, MAT_GLASS = 2500, MAT_SILVER = 2500, MAT_GOLD = 2500, MAT_TITANIUM = 1750) + materials = list(/datum/material/iron = 7500, /datum/material/glass = 2500, /datum/material/silver = 2500, /datum/material/gold = 2500, /datum/material/titanium = 1750) build_path = /obj/item/holosign_creator/combifan category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -418,7 +438,7 @@ desc = "A device which can project temporary forcefields to seal off an area." id = "forcefield_projector" build_type = PROTOLATHE - materials = list(MAT_METAL = 2500, MAT_GLASS = 1000) + materials = list(/datum/material/iron = 2500, /datum/material/glass = 1000) build_path = /obj/item/forcefield_projector category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -428,7 +448,7 @@ desc = "PENLITE holobarriers, a device that halts individuals with malicious diseases." build_type = PROTOLATHE build_path = /obj/item/holosign_creator/medical - materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER = 100) //a hint of silver since it can troll 2 antags (bad viros and sentient disease) + materials = list(/datum/material/iron = 500, /datum/material/glass = 500, /datum/material/silver = 100) //a hint of silver since it can troll 2 antags (bad viros and sentient disease) id = "holobarrier_med" category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -442,7 +462,7 @@ desc = "Allows for the construction of a quantum keycard." id = "quantum_keycard" build_type = PROTOLATHE - materials = list(MAT_GLASS = 500, MAT_METAL = 500, MAT_SILVER = 500, MAT_BLUESPACE = 1000) + materials = list(/datum/material/glass = 500, /datum/material/iron = 500, /datum/material/silver = 500, /datum/material/bluespace = 1000) build_path = /obj/item/quantum_keycard category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -452,7 +472,7 @@ desc = "An advanced tool capable of instantly neutralizing anomalies, designed to capture the fleeting aberrations created by the engine." id = "anomaly_neutralizer" build_type = PROTOLATHE - materials = list(MAT_METAL = 2000, MAT_GOLD = 2000, MAT_PLASMA = 5000, MAT_URANIUM = 2000) + materials = list(/datum/material/iron = 2000, /datum/material/gold = 2000, /datum/material/plasma = 5000, /datum/material/uranium = 2000) build_path = /obj/item/anomaly_neutralizer category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -462,7 +482,7 @@ desc = "A a electrode attached to a small circuit box that will tell you the pH of a solution." id = "pHmeter" build_type = PROTOLATHE - materials = list(MAT_METAL = 1000, MAT_SILVER = 100, MAT_PLASTIC = 100) + materials = list(/datum/material/iron = 1000, /datum/material/silver = 100, /datum/material/plastic = 100) build_path = /obj/item/fermichem/pHmeter category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE @@ -476,11 +496,29 @@ desc = "An experimental suit of armour capable of utilizing an implanted anomaly core to protect the user." id = "reactive_armour" build_type = PROTOLATHE - materials = list(MAT_METAL = 10000, MAT_DIAMOND = 5000, MAT_URANIUM = 8000, MAT_SILVER = 4500, MAT_GOLD = 5000) + materials = list(/datum/material/iron = 10000, /datum/material/diamond = 5000, /datum/material/uranium = 8000, /datum/material/silver = 4500, /datum/material/gold = 5000) build_path = /obj/item/reactive_armour_shell category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING +/datum/design/knight_armour + name = "Knight Armour" + desc = "A royal knight's favorite garments. Can be trimmed by any friendly person." + id = "knight_armour" + build_type = AUTOLATHE + materials = list(MAT_CATEGORY_RIGID = 10000) + build_path = /obj/item/clothing/suit/armor/riot/knight/greyscale + category = list("Imported") + +/datum/design/knight_helmet + name = "Knight Helmet" + desc = "A royal knight's favorite hat. If you hold it upside down it's actually a bucket." + id = "knight_helmet" + build_type = AUTOLATHE + materials = list(MAT_CATEGORY_RIGID = 5000) + build_path = /obj/item/clothing/head/helmet/knight/greyscale + category = list("Imported") + ///////////////////////////////////////// /////////////Security//////////////////// ///////////////////////////////////////// @@ -490,57 +528,57 @@ desc = "A robust flashlight used by security." id = "seclite" build_type = PROTOLATHE - materials = list(MAT_METAL = 2500) + materials = list(/datum/material/iron = 2500) build_path = /obj/item/flashlight/seclite category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SECURITY - + /datum/design/detective_scanner name = "Forensic Scanner" desc = "Used to remotely scan objects and biomass for DNA and fingerprints. Can print a report of the findings." id = "detective_scanner" build_type = PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_GLASS = 1000, MAT_GOLD = 2500, MAT_SILVER = 2000) + materials = list(/datum/material/iron = 5000, /datum/material/glass = 1000, /datum/material/gold = 2500, /datum/material/silver = 2000) build_path = /obj/item/detective_scanner category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SECURITY - + /datum/design/pepperspray name = "Pepper Spray" desc = "Manufactured by UhangInc, used to blind and down an opponent quickly. Printed pepper sprays do not contain reagents." id = "pepperspray" build_type = PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_GLASS = 1000) + materials = list(/datum/material/iron = 5000, /datum/material/glass = 1000) build_path = /obj/item/reagent_containers/spray/pepper/empty category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SECURITY - + /datum/design/bola_energy name = "Energy Bola" desc = "A specialized hard-light bola designed to ensnare fleeing criminals and aid in arrests." id = "bola_energy" build_type = PROTOLATHE - materials = list(MAT_SILVER = 500, MAT_PLASMA = 500, MAT_TITANIUM = 500) + materials = list(/datum/material/silver = 500, /datum/material/plasma = 500, /datum/material/titanium = 500) build_path = /obj/item/restraints/legcuffs/bola/energy category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SECURITY - + /datum/design/zipties name = "Zipties" desc = "Plastic, disposable zipties that can be used to restrain temporarily but are destroyed after use." id = "zipties" build_type = PROTOLATHE - materials = list(MAT_PLASTIC = 250) + materials = list(/datum/material/plastic = 250) build_path = /obj/item/restraints/handcuffs/cable/zipties category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SECURITY - + /datum/design/evidencebag name = "Evidence Bag" desc = "An empty evidence bag." id = "evidencebag" build_type = PROTOLATHE - materials = list(MAT_PLASTIC = 100) + materials = list(/datum/material/plastic = 100) build_path = /obj/item/evidencebag category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -554,7 +592,7 @@ desc = "A blue print of a early model of the Meteor defence turret." id = "meteor_defence" build_type = PROTOLATHE - materials = list(MAT_METAL = 50000, MAT_GLASS = 50000, MAT_SILVER = 8500, MAT_GOLD = 8500, MAT_TITANIUM = 7500, MAT_URANIUM = 7500) + materials = list(/datum/material/iron = 50000, /datum/material/glass = 50000, /datum/material/silver = 8500, /datum/material/gold = 8500, /datum/material/titanium = 7500, /datum/material/uranium = 7500) build_path = /obj/machinery/satellite/meteor_shield/sci category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -564,7 +602,7 @@ desc = "A disk containing debugging programming to solve and monitor meteors more effectively." id = "meteor_disk" build_type = PROTOLATHE - materials = list(MAT_METAL = 1500, MAT_GLASS = 1500, MAT_SILVER = 2500, MAT_GOLD = 1000) + materials = list(/datum/material/iron = 1500, /datum/material/glass = 1500, /datum/material/silver = 2500, /datum/material/gold = 1000) build_path = /obj/item/disk/meteor category = list("Electronics") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING diff --git a/code/modules/research/designs/nanite_designs.dm b/code/modules/research/designs/nanite_designs.dm index 13668ba570..c72ee4fb8c 100644 --- a/code/modules/research/designs/nanite_designs.dm +++ b/code/modules/research/designs/nanite_designs.dm @@ -50,7 +50,7 @@ name = "Host Scan" desc = "The nanites display a detailed readout of a body scan to the host." id = "selfscan_nanites" - program_type = /datum/nanite_program/triggered/self_scan + program_type = /datum/nanite_program/self_scan category = list("Utility Nanites") /datum/design/nanites/dermal_button @@ -67,7 +67,6 @@ program_type = /datum/nanite_program/stealth category = list("Utility Nanites") - /datum/design/nanites/reduced_diagnostics name = "Reduced Diagnostics" desc = "Disables some high-cost diagnostics in the nanites, making them unable to communicate their program list to portable scanners. \ @@ -80,7 +79,7 @@ name = "Subdermal ID" desc = "The nanites store the host's ID access rights in a subdermal magnetic strip. Updates when triggered, copying the host's current access." id = "access_nanites" - program_type = /datum/nanite_program/triggered/access + program_type = /datum/nanite_program/access category = list("Utility Nanites") /datum/design/nanites/relay @@ -106,9 +105,9 @@ /datum/design/nanites/emp name = "Electromagnetic Resonance" - desc = "The nanites cause an elctromagnetic pulse around the host when triggered. Will corrupt other nanite programs!" + desc = "The nanites cause an electromagnetic pulse around the host when triggered. Will corrupt other nanite programs!" id = "emp_nanites" - program_type = /datum/nanite_program/triggered/emp + program_type = /datum/nanite_program/emp category = list("Utility Nanites") /datum/design/nanites/spreading @@ -119,6 +118,13 @@ program_type = /datum/nanite_program/spreading category = list("Utility Nanites") +/datum/design/nanites/nanite_sting + name = "Nanite Sting" + desc = "When triggered, projects a nearly invisible spike of nanites that attempts to infect a nearby non-host with a copy of the host's nanites cluster." + id = "nanite_sting_nanites" + program_type = /datum/nanite_program/nanite_sting + category = list("Utility Nanites") + /datum/design/nanites/mitosis name = "Mitosis" desc = "The nanites gain the ability to self-replicate, using bluespace to power the process, instead of drawing from a template. This rapidly speeds up the replication rate,\ @@ -197,7 +203,7 @@ name = "Defibrillation" desc = "The nanites, when triggered, send a defibrillating shock to the host's heart." id = "defib_nanites" - program_type = /datum/nanite_program/triggered/defib + program_type = /datum/nanite_program/defib category = list("Medical Nanites") @@ -242,7 +248,7 @@ name = "Adrenaline Burst" desc = "The nanites cause a burst of adrenaline when triggered, waking the host from stuns and temporarily increasing their speed." id = "adrenaline_nanites" - program_type = /datum/nanite_program/triggered/adrenaline + program_type = /datum/nanite_program/adrenaline category = list("Augmentation Nanites") /datum/design/nanites/mindshield @@ -366,21 +372,21 @@ name = "Heart-Stopper" desc = "Stops the host's heart when triggered; restarts it if triggered again." id = "heartstop_nanites" - program_type = /datum/nanite_program/triggered/heart_stop + program_type = /datum/nanite_program/heart_stop category = list("Weaponized Nanites") /datum/design/nanites/explosive name = "Chain Detonation" desc = "Blows up all the nanites inside the host in a chain reaction when triggered." id = "explosive_nanites" - program_type = /datum/nanite_program/triggered/explosive + program_type = /datum/nanite_program/explosive category = list("Weaponized Nanites") /datum/design/nanites/mind_control name = "Mind Control" desc = "The nanites imprint an absolute directive onto the host's brain while they're active." id = "mindcontrol_nanites" - program_type = /datum/nanite_program/triggered/comm/mind_control + program_type = /datum/nanite_program/comm/mind_control category = list("Weaponized Nanites") ////////////////////SUPPRESSION NANITES////////////////////////////////////// @@ -389,21 +395,21 @@ name = "Electric Shock" desc = "The nanites shock the host when triggered. Destroys a large amount of nanites!" id = "shock_nanites" - program_type = /datum/nanite_program/triggered/shocking + program_type = /datum/nanite_program/shocking category = list("Suppression Nanites") /datum/design/nanites/stun name = "Neural Shock" desc = "The nanites pulse the host's nerves when triggered, inapacitating them for a short period." id = "stun_nanites" - program_type = /datum/nanite_program/triggered/stun + program_type = /datum/nanite_program/stun category = list("Suppression Nanites") /datum/design/nanites/sleepy name = "Sleep Induction" desc = "The nanites cause rapid narcolepsy when triggered." id = "sleep_nanites" - program_type = /datum/nanite_program/triggered/sleepy + program_type = /datum/nanite_program/sleepy category = list("Suppression Nanites") /datum/design/nanites/paralyzing @@ -445,21 +451,21 @@ name = "Skull Echo" desc = "The nanites echo a synthesized message inside the host's skull." id = "voice_nanites" - program_type = /datum/nanite_program/triggered/comm/voice + program_type = /datum/nanite_program/comm/voice category = list("Suppression Nanites") /datum/design/nanites/speech name = "Forced Speech" desc = "The nanites force the host to say a pre-programmed sentence when triggered." id = "speech_nanites" - program_type = /datum/nanite_program/triggered/comm/speech + program_type = /datum/nanite_program/comm/speech category = list("Suppression Nanites") /datum/design/nanites/hallucination name = "Hallucination" desc = "The nanites make the host see and hear things that aren't real." id = "hallucination_nanites" - program_type = /datum/nanite_program/triggered/comm/hallucination + program_type = /datum/nanite_program/comm/hallucination category = list("Suppression Nanites") /datum/design/nanites/good_mood @@ -513,9 +519,42 @@ program_type = /datum/nanite_program/sensor/voice category = list("Sensor Nanites") -/datum/design/nanites/sensor__nanite_volume +/datum/design/nanites/sensor_nanite_volume name = "Nanite Volume Sensor" desc = "The nanites receive a signal when the nanite supply is above/below a certain percentage." id = "sensor_nanite_volume" program_type = /datum/nanite_program/sensor/nanite_volume - category = list("Sensor Nanites") \ No newline at end of file + category = list("Sensor Nanites") + +////////////////////NANITE PROTOCOLS////////////////////////////////////// +//Note about the category name: The UI cuts the last 8 characters from the category name to remove the " Nanites" in the other categories +//Because of this, Protocols was getting cut down to "P", so i had to add some padding +/* +/datum/design/nanites/kickstart + name = "Kickstart Protocol" + desc = "Replication Protocol: the nanites focus on early growth, heavily boosting replication rate for a few minutes after the initial implantation." + id = "kickstart_nanites" + program_type = /datum/nanite_program/protocol/kickstart + category = list("Protocols_Nanites") + +/datum/design/nanites/factory + name = "Factory Protocol" + desc = "Replication Protocol: the nanites build a factory matrix within the host, gradually increasing replication speed over time. The factory decays if the protocol is not active." + id = "factory_nanites" + program_type = /datum/nanite_program/protocol/factory + category = list("Protocols_Nanites") + +/datum/design/nanites/tinker + name = "Tinker Protocol" + desc = "Replication Protocol: the nanites learn to use metallic material in the host's bloodstream to speed up the replication process." + id = "tinker_nanites" + program_type = /datum/nanite_program/protocol/tinker + category = list("Protocols_Nanites") + +/datum/design/nanites/offline + name = "Offline Production Protocol" + desc = "Replication Protocol: while the host is asleep or otherwise unconcious, the nanites exploit the reduced interference to replicate more quickly." + id = "offline_nanites" + program_type = /datum/nanite_program/protocol/offline + category = list("Protocols_Nanites") +*/ diff --git a/code/modules/research/designs/power_designs.dm b/code/modules/research/designs/power_designs.dm index 1dbd111785..3403d96049 100644 --- a/code/modules/research/designs/power_designs.dm +++ b/code/modules/research/designs/power_designs.dm @@ -7,7 +7,7 @@ desc = "A basic power cell that holds 1 MJ of energy." id = "basic_cell" build_type = PROTOLATHE | AUTOLATHE |MECHFAB - materials = list(MAT_METAL = 700, MAT_GLASS = 50) + materials = list(/datum/material/iron = 700, /datum/material/glass = 50) construction_time=100 build_path = /obj/item/stock_parts/cell/empty category = list("Misc","Power Designs","Machinery","initial") @@ -18,7 +18,7 @@ desc = "A power cell that holds 10 MJ of energy." id = "high_cell" build_type = PROTOLATHE | AUTOLATHE | MECHFAB - materials = list(MAT_METAL = 700, MAT_GLASS = 60) + materials = list(/datum/material/iron = 700, /datum/material/glass = 60) construction_time=100 build_path = /obj/item/stock_parts/cell/high/empty category = list("Misc","Power Designs") @@ -29,7 +29,7 @@ desc = "A power cell that holds 20 MJ of energy." id = "super_cell" build_type = PROTOLATHE | MECHFAB - materials = list(MAT_METAL = 700, MAT_GLASS = 70) + materials = list(/datum/material/iron = 700, /datum/material/glass = 70) construction_time=100 build_path = /obj/item/stock_parts/cell/super/empty category = list("Misc","Power Designs") @@ -40,7 +40,7 @@ desc = "A power cell that holds 30 MJ of energy." id = "hyper_cell" build_type = PROTOLATHE | MECHFAB - materials = list(MAT_METAL = 700, MAT_GOLD = 150, MAT_SILVER = 150, MAT_GLASS = 80) + materials = list(/datum/material/iron = 700, /datum/material/gold = 150, /datum/material/silver = 150, /datum/material/glass = 80) construction_time=100 build_path = /obj/item/stock_parts/cell/hyper/empty category = list("Misc","Power Designs") @@ -51,7 +51,7 @@ desc = "A power cell that holds 40 MJ of energy." id = "bluespace_cell" build_type = PROTOLATHE | MECHFAB - materials = list(MAT_METAL = 800, MAT_GOLD = 120, MAT_GLASS = 160, MAT_DIAMOND = 160, MAT_TITANIUM = 300, MAT_BLUESPACE = 100) + materials = list(/datum/material/iron = 800, /datum/material/gold = 120, /datum/material/glass = 160, /datum/material/diamond = 160, /datum/material/titanium = 300, /datum/material/bluespace = 100) construction_time=100 build_path = /obj/item/stock_parts/cell/bluespace/empty category = list("Misc","Power Designs") @@ -62,7 +62,7 @@ desc = "The NT-75 Electromagnetic Power Inducer can wirelessly induce electric charge in an object, allowing you to recharge power cells without having to remove them." id = "inducer" build_type = PROTOLATHE - materials = list(MAT_METAL = 3000, MAT_GLASS = 1000) + materials = list(/datum/material/iron = 3000, /datum/material/glass = 1000) build_path = /obj/item/inducer/sci category = list("Power Designs") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -72,7 +72,7 @@ desc = "The improved NT-8475 Electromagnetic Power Inducer can this one has been SCIENCED to allow for combat. It still comes printed with SCIENCED colors!" id = "combatinducer" build_type = PROTOLATHE - materials = list(MAT_METAL = 13000, MAT_GLASS = 10000, MAT_SILVER = 1500, MAT_GOLD = 1250, MAT_DIAMOND = 500, MAT_TITANIUM = 1200) + materials = list(/datum/material/iron = 13000, /datum/material/glass = 10000, /datum/material/silver = 1500, /datum/material/gold = 1250, /datum/material/diamond = 500, /datum/material/titanium = 1200) build_path = /obj/item/inducer/sci/combat/dry category = list("Power Designs") departmental_flags = DEPARTMENTAL_FLAG_SECURITY diff --git a/code/modules/research/designs/smelting_designs.dm b/code/modules/research/designs/smelting_designs.dm index 64dcb5f754..3c83698fd1 100644 --- a/code/modules/research/designs/smelting_designs.dm +++ b/code/modules/research/designs/smelting_designs.dm @@ -4,7 +4,7 @@ name = "Plasma + Iron alloy" id = "plasteel" build_type = SMELTER | PROTOLATHE - materials = list(MAT_METAL = MINERAL_MATERIAL_AMOUNT, MAT_PLASMA = MINERAL_MATERIAL_AMOUNT) + materials = list(/datum/material/iron = MINERAL_MATERIAL_AMOUNT, /datum/material/plasma = MINERAL_MATERIAL_AMOUNT) build_path = /obj/item/stack/sheet/plasteel category = list("initial", "Stock Parts") departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SECURITY @@ -14,7 +14,7 @@ name = "Plasma + Titanium alloy" id = "plastitanium" build_type = SMELTER | PROTOLATHE - materials = list(MAT_TITANIUM = MINERAL_MATERIAL_AMOUNT, MAT_PLASMA = MINERAL_MATERIAL_AMOUNT) + materials = list(/datum/material/titanium = MINERAL_MATERIAL_AMOUNT, /datum/material/plasma = MINERAL_MATERIAL_AMOUNT) build_path = /obj/item/stack/sheet/mineral/plastitanium category = list("initial", "Stock Parts") departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -24,7 +24,7 @@ name = "Plasma + Glass alloy" id = "plasmaglass" build_type = SMELTER | PROTOLATHE - materials = list(MAT_PLASMA = MINERAL_MATERIAL_AMOUNT * 0.5, MAT_GLASS = MINERAL_MATERIAL_AMOUNT) + materials = list(/datum/material/plasma = MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass = MINERAL_MATERIAL_AMOUNT) build_path = /obj/item/stack/sheet/plasmaglass category = list("initial", "Stock Parts") departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -34,7 +34,7 @@ name = "Plasma + Metal + Glass alloy" id = "plasmareinforcedglass" build_type = SMELTER | PROTOLATHE - materials = list(MAT_PLASMA = MINERAL_MATERIAL_AMOUNT * 0.5, MAT_METAL = MINERAL_MATERIAL_AMOUNT * 0.5, MAT_GLASS = MINERAL_MATERIAL_AMOUNT) + materials = list(/datum/material/plasma = MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/iron = MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass = MINERAL_MATERIAL_AMOUNT) build_path = /obj/item/stack/sheet/plasmarglass category = list("initial", "Stock Parts") departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -44,7 +44,7 @@ name = "Titanium + Glass alloy" id = "titaniumglass" build_type = SMELTER | PROTOLATHE - materials = list(MAT_TITANIUM = MINERAL_MATERIAL_AMOUNT * 0.5, MAT_GLASS = MINERAL_MATERIAL_AMOUNT) + materials = list(/datum/material/titanium = MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass = MINERAL_MATERIAL_AMOUNT) build_path = /obj/item/stack/sheet/titaniumglass category = list("initial", "Stock Parts") departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -54,7 +54,7 @@ name = "Plasma + Titanium + Glass alloy" id = "plastitaniumglass" build_type = SMELTER | PROTOLATHE - materials = list(MAT_PLASMA = MINERAL_MATERIAL_AMOUNT * 0.5, MAT_TITANIUM = MINERAL_MATERIAL_AMOUNT * 0.5, MAT_GLASS = MINERAL_MATERIAL_AMOUNT) + materials = list(/datum/material/plasma = MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/titanium = MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass = MINERAL_MATERIAL_AMOUNT) build_path = /obj/item/stack/sheet/plastitaniumglass category = list("initial", "Stock Parts") departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -65,7 +65,7 @@ desc = "A sheet of reverse-engineered alien alloy." id = "alienalloy" build_type = PROTOLATHE | SMELTER - materials = list(MAT_METAL = 4000, MAT_PLASMA = 4000) + materials = list(/datum/material/iron = 4000, /datum/material/plasma = 4000) build_path = /obj/item/stack/sheet/mineral/abductor category = list("Stock Parts") departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING diff --git a/code/modules/research/designs/stock_parts_designs.dm b/code/modules/research/designs/stock_parts_designs.dm index 6526599179..7392f83975 100644 --- a/code/modules/research/designs/stock_parts_designs.dm +++ b/code/modules/research/designs/stock_parts_designs.dm @@ -7,7 +7,7 @@ desc = "Special mechanical module made to store, sort, and apply standard machine parts." id = "rped" build_type = PROTOLATHE - materials = list(MAT_METAL = 10000, MAT_GLASS = 5000) //hardcore + materials = list(/datum/material/iron = 10000, /datum/material/glass = 5000) //hardcore build_path = /obj/item/storage/part_replacer category = list("Stock Parts") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE @@ -17,7 +17,7 @@ desc = "Powered by bluespace technology, this RPED variant can upgrade buildings from a distance, without needing to remove the panel first." id = "bs_rped" build_type = PROTOLATHE - materials = list(MAT_METAL = 15000, MAT_GLASS = 5000, MAT_SILVER = 2500) //hardcore + materials = list(/datum/material/iron = 15000, /datum/material/glass = 5000, /datum/material/silver = 2500) //hardcore build_path = /obj/item/storage/part_replacer/bluespace category = list("Stock Parts") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE @@ -28,7 +28,7 @@ desc = "A stock part used in the construction of various devices." id = "basic_capacitor" build_type = PROTOLATHE | AUTOLATHE - materials = list(MAT_METAL = 100, MAT_GLASS = 100) + materials = list(/datum/material/iron = 100, /datum/material/glass = 100) build_path = /obj/item/stock_parts/capacitor category = list("Stock Parts","Machinery","initial") lathe_time_factor = 0.2 @@ -39,7 +39,7 @@ desc = "A stock part used in the construction of various devices." id = "adv_capacitor" build_type = PROTOLATHE - materials = list(MAT_METAL = 150, MAT_GLASS = 150) + materials = list(/datum/material/iron = 150, /datum/material/glass = 150) build_path = /obj/item/stock_parts/capacitor/adv category = list("Stock Parts") lathe_time_factor = 0.2 @@ -50,7 +50,7 @@ desc = "A stock part used in the construction of various devices." id = "super_capacitor" build_type = PROTOLATHE - materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_GOLD = 100) + materials = list(/datum/material/iron = 200, /datum/material/glass = 200, /datum/material/gold = 100) build_path = /obj/item/stock_parts/capacitor/super category = list("Stock Parts") lathe_time_factor = 0.2 @@ -61,7 +61,7 @@ desc = "A stock part used in the construction of various devices." id = "quadratic_capacitor" build_type = PROTOLATHE - materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_GOLD = 100, MAT_DIAMOND = 100) + materials = list(/datum/material/iron = 200, /datum/material/glass = 200, /datum/material/gold = 100, /datum/material/diamond = 100) build_path = /obj/item/stock_parts/capacitor/quadratic category = list("Stock Parts") lathe_time_factor = 0.2 @@ -73,7 +73,7 @@ desc = "A stock part used in the construction of various devices." id = "basic_scanning" build_type = PROTOLATHE | AUTOLATHE - materials = list(MAT_METAL = 100, MAT_GLASS = 50) + materials = list(/datum/material/iron = 100, /datum/material/glass = 50) build_path = /obj/item/stock_parts/scanning_module category = list("Stock Parts","Machinery","initial") lathe_time_factor = 0.2 @@ -84,7 +84,7 @@ desc = "A stock part used in the construction of various devices." id = "adv_scanning" build_type = PROTOLATHE - materials = list(MAT_METAL = 150, MAT_GLASS = 100) + materials = list(/datum/material/iron = 150, /datum/material/glass = 100) build_path = /obj/item/stock_parts/scanning_module/adv category = list("Stock Parts") lathe_time_factor = 0.2 @@ -95,7 +95,7 @@ desc = "A stock part used in the construction of various devices." id = "phasic_scanning" build_type = PROTOLATHE - materials = list(MAT_METAL = 200, MAT_GLASS = 150, MAT_SILVER = 60) + materials = list(/datum/material/iron = 200, /datum/material/glass = 150, /datum/material/silver = 60) build_path = /obj/item/stock_parts/scanning_module/phasic category = list("Stock Parts") lathe_time_factor = 0.2 @@ -106,7 +106,7 @@ desc = "A stock part used in the construction of various devices." id = "triphasic_scanning" build_type = PROTOLATHE - materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_DIAMOND = 30, MAT_BLUESPACE = 30) + materials = list(/datum/material/iron = 200, /datum/material/glass = 200, /datum/material/diamond = 30, /datum/material/bluespace = 30) build_path = /obj/item/stock_parts/scanning_module/triphasic category = list("Stock Parts") lathe_time_factor = 0.2 @@ -118,7 +118,7 @@ desc = "A stock part used in the construction of various devices." id = "micro_mani" build_type = PROTOLATHE | AUTOLATHE - materials = list(MAT_METAL = 100) + materials = list(/datum/material/iron = 100) build_path = /obj/item/stock_parts/manipulator category = list("Stock Parts","Machinery","initial") lathe_time_factor = 0.2 @@ -129,7 +129,7 @@ desc = "A stock part used in the construction of various devices." id = "nano_mani" build_type = PROTOLATHE - materials = list(MAT_METAL = 150) + materials = list(/datum/material/iron = 150) build_path = /obj/item/stock_parts/manipulator/nano category = list("Stock Parts") lathe_time_factor = 0.2 @@ -140,7 +140,7 @@ desc = "A stock part used in the construction of various devices." id = "pico_mani" build_type = PROTOLATHE - materials = list(MAT_METAL = 200) + materials = list(/datum/material/iron = 200) build_path = /obj/item/stock_parts/manipulator/pico category = list("Stock Parts") lathe_time_factor = 0.2 @@ -151,7 +151,7 @@ desc = "A stock part used in the construction of various devices." id = "femto_mani" build_type = PROTOLATHE - materials = list(MAT_METAL = 200, MAT_DIAMOND = 30, MAT_TITANIUM = 30) + materials = list(/datum/material/iron = 200, /datum/material/diamond = 30, /datum/material/titanium = 30) build_path = /obj/item/stock_parts/manipulator/femto category = list("Stock Parts") lathe_time_factor = 0.2 @@ -163,7 +163,7 @@ desc = "A stock part used in the construction of various devices." id = "basic_micro_laser" build_type = PROTOLATHE | AUTOLATHE - materials = list(MAT_METAL = 100, MAT_GLASS = 50) + materials = list(/datum/material/iron = 100, /datum/material/glass = 50) build_path = /obj/item/stock_parts/micro_laser category = list("Stock Parts","Machinery","initial") lathe_time_factor = 0.2 @@ -174,7 +174,7 @@ desc = "A stock part used in the construction of various devices." id = "high_micro_laser" build_type = PROTOLATHE - materials = list(MAT_METAL = 150, MAT_GLASS = 100) + materials = list(/datum/material/iron = 150, /datum/material/glass = 100) build_path = /obj/item/stock_parts/micro_laser/high category = list("Stock Parts") lathe_time_factor = 0.2 @@ -185,7 +185,7 @@ desc = "A stock part used in the construction of various devices." id = "ultra_micro_laser" build_type = PROTOLATHE - materials = list(MAT_METAL = 200, MAT_GLASS = 150, MAT_URANIUM = 60) + materials = list(/datum/material/iron = 200, /datum/material/glass = 150, /datum/material/uranium = 60) build_path = /obj/item/stock_parts/micro_laser/ultra category = list("Stock Parts") lathe_time_factor = 0.2 @@ -196,7 +196,7 @@ desc = "A stock part used in the construction of various devices." id = "quadultra_micro_laser" build_type = PROTOLATHE - materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_URANIUM = 100, MAT_DIAMOND = 60) + materials = list(/datum/material/iron = 200, /datum/material/glass = 200, /datum/material/uranium = 100, /datum/material/diamond = 60) build_path = /obj/item/stock_parts/micro_laser/quadultra category = list("Stock Parts") lathe_time_factor = 0.2 @@ -207,7 +207,7 @@ desc = "A stock part used in the construction of various devices." id = "basic_matter_bin" build_type = PROTOLATHE | AUTOLATHE - materials = list(MAT_METAL = 100) + materials = list(/datum/material/iron = 100) build_path = /obj/item/stock_parts/matter_bin category = list("Stock Parts","Machinery","initial") lathe_time_factor = 0.2 @@ -218,7 +218,7 @@ desc = "A stock part used in the construction of various devices." id = "adv_matter_bin" build_type = PROTOLATHE - materials = list(MAT_METAL = 150) + materials = list(/datum/material/iron = 150) build_path = /obj/item/stock_parts/matter_bin/adv category = list("Stock Parts") lathe_time_factor = 0.2 @@ -229,7 +229,7 @@ desc = "A stock part used in the construction of various devices." id = "super_matter_bin" build_type = PROTOLATHE - materials = list(MAT_METAL = 200) + materials = list(/datum/material/iron = 200) build_path = /obj/item/stock_parts/matter_bin/super category = list("Stock Parts") lathe_time_factor = 0.2 @@ -240,7 +240,7 @@ desc = "A stock part used in the construction of various devices." id = "bluespace_matter_bin" build_type = PROTOLATHE - materials = list(MAT_METAL = 250, MAT_DIAMOND = 100, MAT_BLUESPACE = 100) + materials = list(/datum/material/iron = 250, /datum/material/diamond = 100, /datum/material/bluespace = 100) build_path = /obj/item/stock_parts/matter_bin/bluespace category = list("Stock Parts") lathe_time_factor = 0.2 @@ -252,7 +252,7 @@ desc = "A compact module capable of sensing extradimensional activity." id = "s-ansible" build_type = PROTOLATHE - materials = list(MAT_METAL = 100, MAT_SILVER = 100) + materials = list(/datum/material/iron = 100, /datum/material/silver = 100) build_path = /obj/item/stock_parts/subspace/ansible category = list("Stock Parts") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE @@ -262,7 +262,7 @@ desc = "A tiny device capable of filtering and converting super-intense radiowaves." id = "s-filter" build_type = PROTOLATHE - materials = list(MAT_METAL = 100, MAT_SILVER = 100) + materials = list(/datum/material/iron = 100, /datum/material/silver = 100) build_path = /obj/item/stock_parts/subspace/filter category = list("Stock Parts") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE @@ -272,7 +272,7 @@ desc = "A compact micro-machine capable of amplifying weak subspace transmissions." id = "s-amplifier" build_type = PROTOLATHE - materials = list(MAT_METAL = 100, MAT_GOLD = 100, MAT_URANIUM = 100) + materials = list(/datum/material/iron = 100, /datum/material/gold = 100, /datum/material/uranium = 100) build_path = /obj/item/stock_parts/subspace/amplifier category = list("Stock Parts") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE @@ -282,7 +282,7 @@ desc = "A compact micro-machine capable of stretching out hyper-compressed radio waves." id = "s-treatment" build_type = PROTOLATHE - materials = list(MAT_METAL = 100, MAT_SILVER = 200) + materials = list(/datum/material/iron = 100, /datum/material/silver = 200) build_path = /obj/item/stock_parts/subspace/treatment category = list("Stock Parts") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE @@ -292,7 +292,7 @@ desc = "A sophisticated analyzer capable of analyzing cryptic subspace wavelengths." id = "s-analyzer" build_type = PROTOLATHE - materials = list(MAT_METAL = 100, MAT_GOLD = 100) + materials = list(/datum/material/iron = 100, /datum/material/gold = 100) build_path = /obj/item/stock_parts/subspace/analyzer category = list("Stock Parts") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE @@ -302,7 +302,7 @@ desc = "A sophisticated analyzer capable of analyzing cryptic subspace wavelengths." id = "s-crystal" build_type = PROTOLATHE - materials = list(MAT_GLASS = 800, MAT_SILVER = 100, MAT_GOLD = 100) + materials = list(/datum/material/glass = 800, /datum/material/silver = 100, /datum/material/gold = 100) build_path = /obj/item/stock_parts/subspace/crystal category = list("Stock Parts") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE @@ -312,7 +312,7 @@ desc = "A large piece of equipment used to open a window into the subspace dimension." id = "s-transmitter" build_type = PROTOLATHE - materials = list(MAT_GLASS = 100, MAT_SILVER = 100, MAT_URANIUM = 100) + materials = list(/datum/material/glass = 100, /datum/material/silver = 100, /datum/material/uranium = 100) build_path = /obj/item/stock_parts/subspace/transmitter category = list("Stock Parts") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE diff --git a/code/modules/research/designs/tool_designs.dm b/code/modules/research/designs/tool_designs.dm index 300fe6c68a..2d938bc38c 100644 --- a/code/modules/research/designs/tool_designs.dm +++ b/code/modules/research/designs/tool_designs.dm @@ -7,7 +7,7 @@ desc = "Adds the computer frame and machine frame to the RCD." id = "rcd_upgrade_frames" build_type = PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_GLASS = 2500, MAT_SILVER = 1500, MAT_TITANIUM = 2000) + materials = list(/datum/material/iron = 5000, /datum/material/glass = 2500, /datum/material/silver = 1500, /datum/material/titanium = 2000) build_path = /obj/item/rcd_upgrade/frames category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -17,7 +17,7 @@ desc = "Adds the simple circuits to the RCD." id = "rcd_upgrade_simple_circuits" build_type = PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_GLASS = 2500, MAT_SILVER = 1500, MAT_TITANIUM = 2000) + materials = list(/datum/material/iron = 5000, /datum/material/glass = 2500, /datum/material/silver = 1500, /datum/material/titanium = 2000) build_path = /obj/item/rcd_upgrade/simple_circuits category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -27,7 +27,7 @@ desc = "A tool that can construct and deconstruct walls, airlocks and floors on the fly." id = "rcd_loaded" build_type = PROTOLATHE - materials = list(MAT_METAL = MINERAL_MATERIAL_AMOUNT, MAT_GLASS = MINERAL_MATERIAL_AMOUNT) // costs more than what it did in the autolathe, this one comes loaded. + materials = list(/datum/material/iron = 36000) // costs more than what it did in the autolathe, this one comes loaded. build_path = /obj/item/construction/rcd/loaded category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -37,7 +37,7 @@ desc = "A tool that can construct and deconstruct pipes on the fly." id = "rpd" build_type = PROTOLATHE - materials = list(MAT_METAL = 75000, MAT_GLASS = 37500) + materials = list(/datum/material/iron = 75000, /datum/material/glass = 37500) build_path = /obj/item/pipe_dispenser category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -47,7 +47,7 @@ desc = "A small electric hand drill with an interchangeable screwdriver and bolt bit" id = "handdrill" build_type = PROTOLATHE - materials = list(MAT_METAL = 3500, MAT_SILVER = 1500, MAT_TITANIUM = 2500) + materials = list(/datum/material/iron = 3500, /datum/material/silver = 1500, /datum/material/titanium = 2500) build_path = /obj/item/screwdriver/power category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -58,7 +58,7 @@ id = "jawsoflife" // added one more requirment since the Jaws of Life are a bit OP build_path = /obj/item/crowbar/power build_type = PROTOLATHE - materials = list(MAT_METAL = 4500, MAT_SILVER = 2500, MAT_TITANIUM = 3500) + materials = list(/datum/material/iron = 4500, /datum/material/silver = 2500, /datum/material/titanium = 3500) category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -67,7 +67,7 @@ desc = "An experimental welder capable of self-fuel generation." id = "exwelder" build_type = PROTOLATHE - materials = list(MAT_METAL = 1000, MAT_GLASS = 500, MAT_PLASMA = 1500, MAT_URANIUM = 200) + materials = list(/datum/material/iron = 1000, /datum/material/glass = 500, /datum/material/plasma = 1500, /datum/material/uranium = 200) build_path = /obj/item/weldingtool/experimental category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING @@ -82,7 +82,7 @@ id = "alien_wrench" build_path = /obj/item/wrench/abductor build_type = PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000) + materials = list(/datum/material/iron = 5000, /datum/material/silver = 2500, /datum/material/plasma = 1000, /datum/material/titanium = 2000, /datum/material/diamond = 2000) category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -92,7 +92,7 @@ id = "alien_wirecutters" build_path = /obj/item/wirecutters/abductor build_type = PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000) + materials = list(/datum/material/iron = 5000, /datum/material/silver = 2500, /datum/material/plasma = 1000, /datum/material/titanium = 2000, /datum/material/diamond = 2000) category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -102,7 +102,7 @@ id = "alien_screwdriver" build_path = /obj/item/screwdriver/abductor build_type = PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000) + materials = list(/datum/material/iron = 5000, /datum/material/silver = 2500, /datum/material/plasma = 1000, /datum/material/titanium = 2000, /datum/material/diamond = 2000) category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -112,7 +112,7 @@ id = "alien_crowbar" build_path = /obj/item/crowbar/abductor build_type = PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000) + materials = list(/datum/material/iron = 5000, /datum/material/silver = 2500, /datum/material/plasma = 1000, /datum/material/titanium = 2000, /datum/material/diamond = 2000) category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -122,7 +122,7 @@ id = "alien_welder" build_path = /obj/item/weldingtool/abductor build_type = PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 5000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000) + materials = list(/datum/material/iron = 5000, /datum/material/silver = 2500, /datum/material/plasma = 5000, /datum/material/titanium = 2000, /datum/material/diamond = 2000) category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -132,7 +132,7 @@ id = "alien_multitool" build_path = /obj/item/multitool/abductor build_type = PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 5000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000) + materials = list(/datum/material/iron = 5000, /datum/material/silver = 2500, /datum/material/plasma = 5000, /datum/material/titanium = 2000, /datum/material/diamond = 2000) category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING @@ -146,7 +146,7 @@ id = "alien_scalpel" build_path = /obj/item/scalpel/alien build_type = PROTOLATHE - materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500) + materials = list(/datum/material/iron = 2000, /datum/material/silver = 1500, /datum/material/plasma = 500, /datum/material/titanium = 1500) category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -156,7 +156,7 @@ id = "alien_hemostat" build_path = /obj/item/hemostat/alien build_type = PROTOLATHE - materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500) + materials = list(/datum/material/iron = 2000, /datum/material/silver = 1500, /datum/material/plasma = 500, /datum/material/titanium = 1500) category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -166,7 +166,7 @@ id = "alien_retractor" build_path = /obj/item/retractor/alien build_type = PROTOLATHE - materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500) + materials = list(/datum/material/iron = 2000, /datum/material/silver = 1500, /datum/material/plasma = 500, /datum/material/titanium = 1500) category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -176,7 +176,7 @@ id = "alien_saw" build_path = /obj/item/circular_saw/alien build_type = PROTOLATHE - materials = list(MAT_METAL = 10000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 1500) + materials = list(/datum/material/iron = 10000, /datum/material/silver = 2500, /datum/material/plasma = 1000, /datum/material/titanium = 1500) category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -186,7 +186,7 @@ id = "alien_drill" build_path = /obj/item/surgicaldrill/alien build_type = PROTOLATHE - materials = list(MAT_METAL = 10000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 1500) + materials = list(/datum/material/iron = 10000, /datum/material/silver = 2500, /datum/material/plasma = 1000, /datum/material/titanium = 1500) category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -196,7 +196,7 @@ id = "alien_cautery" build_path = /obj/item/cautery/alien build_type = PROTOLATHE - materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500) + materials = list(/datum/material/iron = 2000, /datum/material/silver = 1500, /datum/material/plasma = 500, /datum/material/titanium = 1500) category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -210,7 +210,7 @@ desc = "A large surgery drape made of plastic." id = "drapes" build_type = PROTOLATHE - materials = list(MAT_PLASTIC = 2500) + materials = list(/datum/material/plastic = 2500) build_path = /obj/item/surgical_drapes category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE @@ -220,7 +220,7 @@ desc = "An almagation of rods and gears, able to function as both a surgical clamp and retractor. " id = "retractor_adv" build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER = 1500, MAT_GOLD = 1000) + materials = list(/datum/material/iron = 500, /datum/material/glass = 500, /datum/material/silver = 1500, /datum/material/gold = 1000) build_path = /obj/item/retractor/advanced category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE @@ -230,7 +230,7 @@ desc = "It projects a high power laser used for medical applications." id = "surgicaldrill_adv" build_type = PROTOLATHE - materials = list(MAT_METAL = 2500, MAT_GLASS = 2500, MAT_SILVER = 6000, MAT_GOLD = 5500, MAT_DIAMOND = 3500) + materials = list(/datum/material/iron = 2500, /datum/material/glass = 2500, /datum/material/silver = 6000, /datum/material/gold = 5500, /datum/material/diamond = 3500) build_path = /obj/item/surgicaldrill/advanced category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE @@ -240,7 +240,7 @@ desc = "An advanced scalpel which uses laser technology to cut." id = "scalpel_adv" build_type = PROTOLATHE - materials = list(MAT_METAL = 1500, MAT_GLASS = 1500, MAT_SILVER = 4000, MAT_GOLD = 2500) + materials = list(/datum/material/iron = 1500, /datum/material/glass = 1500, /datum/material/silver = 4000, /datum/material/gold = 2500) build_path = /obj/item/scalpel/advanced category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index 1d65edbe9a..658e108288 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -22,7 +22,7 @@ desc = "Designed to quickly reload revolvers. TRAC bullets embed a tracking implant within the target's body." id = "c38_trac" build_type = PROTOLATHE - materials = list(MAT_METAL = 20000, MAT_SILVER = 5000, MAT_GOLD = 1000) + materials = list(/datum/material/iron = 20000, /datum/material/silver = 5000, /datum/material/gold = 1000) build_path = /obj/item/ammo_box/c38/trac category = list("Ammo") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -32,7 +32,7 @@ desc = "Designed to quickly reload revolvers. Hot Shot bullets contain an incendiary payload." id = "c38_hotshot" build_type = PROTOLATHE - materials = list(MAT_METAL = 20000, MAT_PLASMA = 5000) + materials = list(/datum/material/iron = 20000, /datum/material/plasma = 5000) build_path = /obj/item/ammo_box/c38/hotshot category = list("Ammo") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -42,7 +42,7 @@ desc = "Designed to quickly reload revolvers. Iceblox bullets contain a cryogenic payload." id = "c38_iceblox" build_type = PROTOLATHE - materials = list(MAT_METAL = 20000, MAT_PLASMA = 5000) + materials = list(/datum/material/iron = 20000, /datum/material/plasma = 5000) build_path = /obj/item/ammo_box/c38/iceblox category = list("Ammo") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -56,7 +56,7 @@ desc = "A 24-round magazine for the Magrifle." id = "mag_magrifle" build_type = PROTOLATHE - materials = list(MAT_METAL = 8000, MAT_SILVER = 1000) + materials = list(/datum/material/iron = 8000, /datum/material/silver = 1000) build_path = /obj/item/ammo_box/magazine/mmag/lethal category = list("Ammo") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -65,7 +65,7 @@ name = "Magrifle Magazine (Non-Lethal)" desc = "A 24- round non-lethal magazine for the Magrifle." id = "mag_magrifle_nl" - materials = list(MAT_METAL = 6000, MAT_SILVER = 500, MAT_TITANIUM = 500) + materials = list(/datum/material/iron = 6000, /datum/material/silver = 500, /datum/material/titanium = 500) build_path = /obj/item/ammo_box/magazine/mmag /datum/design/mag_magpistol @@ -73,7 +73,7 @@ desc = "A 14 round magazine for the Magpistol." id = "mag_magpistol" build_type = PROTOLATHE - materials = list(MAT_METAL = 4000, MAT_SILVER = 500) + materials = list(/datum/material/iron = 4000, /datum/material/silver = 500) build_path = /obj/item/ammo_box/magazine/mmag/small/lethal category = list("Ammo") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -82,7 +82,7 @@ name = "Magpistol Magazine (Non-Lethal)" desc = "A 14 round non-lethal magazine for the Magpistol." id = "mag_magpistol_nl" - materials = list(MAT_METAL = 3000, MAT_SILVER = 250, MAT_TITANIUM = 250) + materials = list(/datum/material/iron = 3000, /datum/material/silver = 250, /datum/material/titanium = 250) build_path = /obj/item/ammo_box/magazine/mmag/small ////////////// @@ -94,7 +94,7 @@ desc = "A 20 round magazine for the out of date security WT-550 Semi-Auto SMG." id = "mag_oldsmg" build_type = PROTOLATHE - materials = list(MAT_METAL = 4000) + materials = list(/datum/material/iron = 4000) build_path = /obj/item/ammo_box/magazine/wt550m9 category = list("Ammo") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -103,7 +103,7 @@ name = "WT-550 Semi-Auto SMG Armour Piercing Magazine (4.6x30mm AP)" desc = "A 20 round armour piercing magazine for the out of date security WT-550 Semi-Auto SMG." id = "mag_oldsmg_ap" - materials = list(MAT_METAL = 6000, MAT_SILVER = 600) + materials = list(/datum/material/iron = 6000, /datum/material/silver = 600) build_path = /obj/item/ammo_box/magazine/wt550m9/wtap departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -111,7 +111,7 @@ name = "WT-550 Semi-Auto SMG Incendiary Magazine (4.6x30mm IC)" desc = "A 20 round armour piercing magazine for the out of date security WT-550 Semi-Auto SMG." id = "mag_oldsmg_ic" - materials = list(MAT_METAL = 6000, MAT_SILVER = 600, MAT_GLASS = 1000) + materials = list(/datum/material/iron = 6000, /datum/material/silver = 600, /datum/material/glass = 1000) build_path = /obj/item/ammo_box/magazine/wt550m9/wtic departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -119,7 +119,7 @@ name = "WT-550 Semi-Auto SMG Uranium Magazine (4.6x30mm TX)" desc = "A 20 round uranium tipped magazine for the out of date security WT-550 Semi-Auto SMG." id = "mag_oldsmg_tx" - materials = list(MAT_METAL = 6000, MAT_SILVER = 600, MAT_URANIUM = 2000) + materials = list(/datum/material/iron = 6000, /datum/material/silver = 600, /datum/material/uranium = 2000) build_path = /obj/item/ammo_box/magazine/wt550m9/wttx departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -127,7 +127,7 @@ name = "WT-550 Semi-Auto SMG rubberbullets Magazine (4.6x30mm rubber)" desc = "A 20 round rubber shots magazine for the out of date security WT-550 Semi-Auto SMG" id = "mag_oldsmg_rubber" - materials = list(MAT_METAL = 6000) + materials = list(/datum/material/iron = 6000) build_path = /obj/item/ammo_box/magazine/wt550m9/wtrubber departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -176,7 +176,7 @@ desc = "A stunning shell for a shotgun." id = "stunshell" build_type = PROTOLATHE - materials = list(MAT_METAL = 200) + materials = list(/datum/material/iron = 200) build_path = /obj/item/ammo_casing/shotgun/stunslug category = list("Ammo") departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_SCIENCE @@ -186,7 +186,7 @@ desc = "A high-tech shotgun shell which can be loaded with materials to produce unique effects." id = "techshotshell" build_type = PROTOLATHE - materials = list(MAT_METAL = 1000, MAT_GLASS = 200) + materials = list(/datum/material/iron = 1000, /datum/material/glass = 200) build_path = /obj/item/ammo_casing/shotgun/techshell category = list("Ammo") departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_SCIENCE @@ -196,7 +196,7 @@ desc = "A shotgun dart designed with similar internals to that of a cryostatis beaker, allowing reagents to not react when inside." id = "shotgundartcryostatis" build_type = PROTOLATHE - materials = list(MAT_METAL = 3500) + materials = list(/datum/material/iron = 3500) build_path = /obj/item/ammo_casing/shotgun/dart/noreact category = list("Ammo") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -210,7 +210,7 @@ desc = "This safety firing pin allows firearms to be operated within proximity to a firing range." id = "pin_testing" build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 300) + materials = list(/datum/material/iron = 500, /datum/material/glass = 300) build_path = /obj/item/firing_pin/test_range category = list("Firing Pins") departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_SCIENCE @@ -220,11 +220,21 @@ desc = "This is a security firing pin which only authorizes users who are mindshield-implanted." id = "pin_loyalty" build_type = PROTOLATHE - materials = list(MAT_SILVER = 600, MAT_DIAMOND = 600, MAT_URANIUM = 200) + materials = list(/datum/material/silver = 600, /datum/material/diamond = 600, /datum/material/uranium = 200) build_path = /obj/item/firing_pin/implant/mindshield category = list("Firing Pins") departmental_flags = DEPARTMENTAL_FLAG_SECURITY +/datum/design/pin_away + name = "Station Locked Pin" + desc = "This is a security firing pin which only authorizes users who are off station." + id = "pin_away" + build_type = PROTOLATHE + materials = list(/datum/material/iron = 1500, /datum/material/glass = 2000) + build_path = /obj/item/firing_pin/away + category = list("Firing Pins") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + ////////////// //Guns//////// ////////////// @@ -234,7 +244,7 @@ desc = "Beefed up version of a standard laser gun." id = "lasercarbine" build_type = PROTOLATHE - materials = list(MAT_METAL = 15000, MAT_GLASS = 10000, MAT_GOLD = 2500, MAT_SILVER = 2500) + materials = list(/datum/material/iron = 15000, /datum/material/glass = 10000, /datum/material/gold = 2500, /datum/material/silver = 2500) build_path = /obj/item/gun/energy/laser/carbine/nopin category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -244,7 +254,7 @@ desc = "A high-tech revolver that fires internal, reusable shock cartridges in a revolving cylinder. The cartridges can be recharged using conventional rechargers." id = "stunrevolver" build_type = PROTOLATHE - materials = list(MAT_METAL = 10000, MAT_GLASS = 10000, MAT_SILVER = 10000) + materials = list(/datum/material/iron = 10000, /datum/material/glass = 10000, /datum/material/silver = 10000) build_path = /obj/item/gun/energy/tesla_revolver category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -254,7 +264,7 @@ desc = "An energy gun with an experimental miniaturized reactor." id = "nuclear_gun" build_type = PROTOLATHE - materials = list(MAT_METAL = 10000, MAT_GLASS = 2000, MAT_URANIUM = 3000, MAT_TITANIUM = 1000) + materials = list(/datum/material/iron = 10000, /datum/material/glass = 2000, /datum/material/uranium = 3000, /datum/material/titanium = 1000) build_path = /obj/item/gun/energy/e_gun/nuclear category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -264,7 +274,7 @@ desc = "A powerful long ranged anti-material rifle that fires charged particle beams to obliterate targets." id = "beamrifle" build_type = PROTOLATHE - materials = list(MAT_METAL = 10000, MAT_GLASS = 5000, MAT_DIAMOND = 5000, MAT_URANIUM = 8000, MAT_SILVER = 4500, MAT_GOLD = 5000) + materials = list(/datum/material/iron = 10000, /datum/material/glass = 5000, /datum/material/diamond = 5000, /datum/material/uranium = 8000, /datum/material/silver = 4500, /datum/material/gold = 5000) build_path = /obj/item/gun/energy/beam_rifle category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -274,7 +284,7 @@ desc = "Your opponent will bubble into a messy pile of goop." id = "decloner" build_type = PROTOLATHE - materials = list(MAT_GOLD = 5000,MAT_URANIUM = 10000) + materials = list(/datum/material/gold = 5000,/datum/material/uranium = 10000) reagents_list = list(/datum/reagent/toxin/mutagen = 40) build_path = /obj/item/gun/energy/decloner category = list("Weapons") @@ -285,7 +295,7 @@ desc = "A gun that fires many syringes." id = "rapidsyringe" build_type = PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_GLASS = 1000) + materials = list(/datum/material/iron = 5000, /datum/material/glass = 1000) build_path = /obj/item/gun/syringe/rapidsyringe category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL @@ -295,7 +305,7 @@ desc = "A gun that shoots temperature beam like projectiles to change temperature." id = "temp_gun" build_type = PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_GLASS = 500, MAT_SILVER = 3000) + materials = list(/datum/material/iron = 5000, /datum/material/glass = 500, /datum/material/silver = 3000) build_path = /obj/item/gun/energy/temperature category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -305,7 +315,7 @@ desc = "A tool that discharges controlled radiation which induces mutation in plant cells. Harmless to other organic life." id = "flora_gun" build_type = PROTOLATHE - materials = list(MAT_METAL = 2000, MAT_GLASS = 500) + materials = list(/datum/material/iron = 2000, /datum/material/glass = 500) reagents_list = list(/datum/reagent/radium = 20) build_path = /obj/item/gun/energy/floragun category = list("Weapons") @@ -316,7 +326,7 @@ desc = "Not quite as menacing as it sounds" id = "xray_laser" build_type = PROTOLATHE - materials = list(MAT_GOLD = 5000, MAT_URANIUM = 4000, MAT_METAL = 5000, MAT_TITANIUM = 2000, MAT_BLUESPACE = 2000) + materials = list(/datum/material/gold = 5000, /datum/material/uranium = 4000, /datum/material/iron = 5000, /datum/material/titanium = 2000, /datum/material/bluespace = 2000) build_path = /obj/item/gun/energy/xray category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -326,7 +336,7 @@ desc = "How to dismantle a cyborg : The gun." id = "ioncarbine" build_type = PROTOLATHE - materials = list(MAT_SILVER = 6000, MAT_METAL = 8000, MAT_URANIUM = 2000) + materials = list(/datum/material/silver = 6000, /datum/material/iron = 8000, /datum/material/uranium = 2000) build_path = /obj/item/gun/energy/ionrifle/carbine category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -336,7 +346,7 @@ desc = "A projector that emits high density quantum-coupled bluespace beams." id = "wormholeprojector" build_type = PROTOLATHE - materials = list(MAT_SILVER = 2000, MAT_METAL = 5000, MAT_DIAMOND = 2000, MAT_BLUESPACE = 3000) + materials = list(/datum/material/silver = 2000, /datum/material/iron = 5000, /datum/material/diamond = 2000, /datum/material/bluespace = 3000) build_path = /obj/item/gun/energy/wormhole_projector category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -346,7 +356,7 @@ desc = "A multi-mode device that blasts one-point bluespace-gravitational bolts that locally distort gravity." id = "gravitygun" build_type = PROTOLATHE - materials = list(MAT_SILVER = 8000, MAT_URANIUM = 8000, MAT_GLASS = 12000, MAT_METAL = 12000, MAT_DIAMOND = 3000, MAT_BLUESPACE = 3000) + materials = list(/datum/material/silver = 8000, /datum/material/uranium = 8000, /datum/material/glass = 12000, /datum/material/iron = 12000, /datum/material/diamond = 3000, /datum/material/bluespace = 3000) build_path = /obj/item/gun/energy/gravity_gun category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE @@ -356,7 +366,7 @@ desc = "A reverse-engineered energy crossbow favored by syndicate infiltration teams and carp hunters." id = "largecrossbow" build_type = PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_GLASS = 1500, MAT_URANIUM = 1500, MAT_SILVER = 1500) + materials = list(/datum/material/iron = 5000, /datum/material/glass = 1500, /datum/material/uranium = 1500, /datum/material/silver = 1500) build_path = /obj/item/gun/energy/kinetic_accelerator/crossbow/large category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -366,7 +376,7 @@ desc = "A weapon which fires ferromagnetic slugs." id = "magpistol" build_type = PROTOLATHE - materials = list(MAT_METAL = 7500, MAT_GLASS = 1000, MAT_URANIUM = 1000, MAT_TITANIUM = 5000, MAT_SILVER = 2000) + materials = list(/datum/material/iron = 7500, /datum/material/glass = 1000, /datum/material/uranium = 1000, /datum/material/titanium = 5000, /datum/material/silver = 2000) build_path = /obj/item/gun/ballistic/automatic/magrifle/pistol/nopin category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -376,7 +386,7 @@ desc = "An upscaled Magpistol in rifle form." id = "magrifle" build_type = PROTOLATHE - materials = list(MAT_METAL = 10000, MAT_GLASS = 2000, MAT_URANIUM = 2000, MAT_TITANIUM = 10000, MAT_SILVER = 4000, MAT_GOLD = 2000) + materials = list(/datum/material/iron = 10000, /datum/material/glass = 2000, /datum/material/uranium = 2000, /datum/material/titanium = 10000, /datum/material/silver = 4000, /datum/material/gold = 2000) build_path = /obj/item/gun/ballistic/automatic/magrifle/nopin category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -390,7 +400,7 @@ desc = "A grenade that affects a larger area and use larger containers." id = "large_Grenade" build_type = PROTOLATHE - materials = list(MAT_METAL = 3000) + materials = list(/datum/material/iron = 3000) build_path = /obj/item/grenade/chem_grenade/large category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE @@ -400,7 +410,7 @@ desc = "An advanced grenade that is able to self ignite its mixture." id = "pyro_Grenade" build_type = PROTOLATHE - materials = list(MAT_METAL = 2000, MAT_PLASMA = 500) + materials = list(/datum/material/iron = 2000, /datum/material/plasma = 500) build_path = /obj/item/grenade/chem_grenade/pyro category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE @@ -410,7 +420,7 @@ desc = "An advanced grenade that rapidly cools its contents upon detonation." id = "cryo_Grenade" build_type = PROTOLATHE - materials = list(MAT_METAL = 2000, MAT_SILVER = 500) + materials = list(/datum/material/iron = 2000, /datum/material/silver = 500) build_path = /obj/item/grenade/chem_grenade/cryo category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE @@ -420,7 +430,7 @@ desc = "An advanced grenade that can be detonated several times, best used with a repeating igniter." id = "adv_Grenade" build_type = PROTOLATHE - materials = list(MAT_METAL = 3000, MAT_GLASS = 500) + materials = list(/datum/material/iron = 3000, /datum/material/glass = 500) build_path = /obj/item/grenade/chem_grenade/adv_release category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE @@ -434,7 +444,7 @@ desc = "An advanced riot shield made of lightweight materials that collapses for easy storage." id = "tele_shield" build_type = PROTOLATHE - materials = list(MAT_METAL = 4000, MAT_GLASS = 4000, MAT_SILVER = 300, MAT_TITANIUM = 200) + materials = list(/datum/material/iron = 4000, /datum/material/glass = 4000, /datum/material/silver = 300, /datum/material/titanium = 200) build_path = /obj/item/shield/riot/tele category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -444,7 +454,16 @@ desc = "A reverse-engineered suppressor that fits on most small arms with threaded barrels." id = "suppressor" build_type = PROTOLATHE - materials = list(MAT_METAL = 2000, MAT_SILVER = 500) + materials = list(/datum/material/iron = 2000, /datum/material/silver = 500) build_path = /obj/item/suppressor category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SECURITY + +/datum/design/cleric_mace + name = "Cleric Mace" + desc = "A mace fit for a cleric. Useful for bypassing plate armor, but too bulky for much else." + id = "cleric_mace" + build_type = AUTOLATHE + materials = list(MAT_CATEGORY_RIGID = 12000) + build_path = /obj/item/melee/cleric_mace + category = list("Imported") diff --git a/code/modules/research/destructive_analyzer.dm b/code/modules/research/destructive_analyzer.dm index 7dd7b76007..10566b7de2 100644 --- a/code/modules/research/destructive_analyzer.dm +++ b/code/modules/research/destructive_analyzer.dm @@ -61,12 +61,12 @@ Note: Must be placed within 3 tiles of the R&D Console . = 0 var/datum/component/material_container/storage = linked_console?.linked_lathe?.materials.mat_container if(storage) //Also sends salvaged materials to a linked protolathe, if any. - for(var/material in thing.materials) - var/can_insert = min((storage.max_amount - storage.total_amount), (max(thing.materials[material]*(decon_mod/10), thing.materials[material]))) - storage.insert_amount(can_insert, material) + for(var/material in thing.custom_materials) + var/can_insert = min((storage.max_amount - storage.total_amount), (min(thing.custom_materials[material]*(decon_mod/10), thing.custom_materials[material]))) + storage.insert_amount_mat(can_insert, material) . += can_insert if (.) - linked_console.linked_lathe.materials.silo_log(src, "reclaimed", 1, "[thing.name]", thing.materials) + linked_console.linked_lathe.materials.silo_log(src, "reclaimed", 1, "[thing.name]", thing.custom_materials) /obj/machinery/rnd/destructive_analyzer/proc/destroy_item(obj/item/thing, innermode = FALSE) if(QDELETED(thing) || QDELETED(src) || QDELETED(linked_console)) @@ -132,7 +132,7 @@ Note: Must be placed within 3 tiles of the R&D Console var/user_mode_string = "" if(length(point_value)) user_mode_string = " for [json_encode(point_value)] points" - else if(loaded_item.materials.len) + else if(loaded_item.custom_materials?.len) user_mode_string = " for material reclamation" var/choice = input("Are you sure you want to destroy [loaded_item][user_mode_string]?") in list("Proceed", "Cancel") if(choice == "Cancel") diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index fd68a393f9..b43abf97b2 100644 --- a/code/modules/research/experimentor.dm +++ b/code/modules/research/experimentor.dm @@ -430,8 +430,8 @@ visible_message("[exp_on] activates the crushing mechanism, [exp_on] is destroyed!") if(linked_console.linked_lathe) var/datum/component/material_container/linked_materials = linked_console.linked_lathe.GetComponent(/datum/component/material_container) - for(var/material in exp_on.materials) - linked_materials.insert_amount( min((linked_materials.max_amount - linked_materials.total_amount), (exp_on.materials[material])), material) + for(var/material in exp_on.custom_materials) + linked_materials.insert_amount_mat( min((linked_materials.max_amount - linked_materials.total_amount), (exp_on.custom_materials[material])), material) if(prob(EFFECT_PROB_LOW) && criticalReaction) visible_message("[src]'s crushing mechanism slowly and smoothly descends, flattening the [exp_on]!") new /obj/item/stack/sheet/plasteel(get_turf(pick(oview(1,src)))) diff --git a/code/modules/research/machinery/_production.dm b/code/modules/research/machinery/_production.dm index 25e8b82cc4..41ed6a556e 100644 --- a/code/modules/research/machinery/_production.dm +++ b/code/modules/research/machinery/_production.dm @@ -29,6 +29,14 @@ materials = AddComponent(/datum/component/remote_materials, "lathe", mapload) RefreshParts() +/obj/machinery/rnd/production/Destroy() + materials = null + cached_designs = null + matching_designs = null + QDEL_NULL(stored_research) + host_research = null + return ..() + /obj/machinery/rnd/production/proc/update_research() host_research.copy_research_to(stored_research, TRUE) update_designs() @@ -51,10 +59,6 @@ popup.set_content(generate_ui()) popup.open() -/obj/machinery/rnd/production/Destroy() - QDEL_NULL(stored_research) - return ..() - /obj/machinery/rnd/production/proc/calculate_efficiency() efficiency_coeff = 1 if(reagents) //If reagents/materials aren't initialized, don't bother, we'll be doing this again after reagents init anyways. @@ -92,23 +96,24 @@ var/obj/O = new path(get_turf(src)) if(efficient_with(O.type) && isitem(O)) var/obj/item/I = O - I.materials = matlist.Copy() + I.material_flags |= MATERIAL_NO_EFFECTS //Find a better way to do this. + I.set_custom_materials(matlist.Copy()) SSblackbox.record_feedback("nested tally", "item_printed", amount, list("[type]", "[path]")) investigate_log("[key_name(user)] built [amount] of [path] at [src]([type]).", INVESTIGATE_RESEARCH) -/obj/machinery/rnd/production/proc/check_mat(datum/design/being_built, M) // now returns how many times the item can be built with the material +/obj/machinery/rnd/production/proc/check_mat(datum/design/being_built, var/mat) // now returns how many times the item can be built with the material if (!materials.mat_container) // no connected silo return 0 var/list/all_materials = being_built.reagents_list + being_built.materials - var/A = materials.mat_container.amount(M) + var/A = materials.mat_container.get_material_amount(mat) if(!A) - A = reagents.get_reagent_amount(M) + A = reagents.get_reagent_amount(mat) // these types don't have their .materials set in do_print, so don't allow // them to be constructed efficiently var/ef = efficient_with(being_built.build_path) ? efficiency_coeff : 1 - return round(A / max(1, all_materials[M] / ef)) + return round(A / max(1, all_materials[mat] / ef)) /obj/machinery/rnd/production/proc/efficient_with(path) return !ispath(path, /obj/item/stack/sheet) && !ispath(path, /obj/item/stack/ore/bluespace_crystal) @@ -152,7 +157,7 @@ if(!reagents.has_reagent(R, D.reagents_list[R]*amount/coeff)) say("Not enough reagents to complete prototype[amount > 1? "s" : ""].") return FALSE - materials.mat_container.use_amount(efficient_mats, amount) + materials.mat_container.use_materials(efficient_mats, amount) materials.silo_log(src, "built", -amount, "[D.name]", efficient_mats) for(var/R in D.reagents_list) reagents.remove_reagent(R, D.reagents_list[R]*amount/coeff) @@ -213,11 +218,13 @@ var/list/l = list() l += "

Material Storage:

" for(var/mat_id in materials.mat_container.materials) - var/datum/material/M = materials.mat_container.materials[mat_id] - l += "* [M.amount] of [M.name]: " - if(M.amount >= MINERAL_MATERIAL_AMOUNT) l += "Eject [RDSCREEN_NOBREAK]" - if(M.amount >= MINERAL_MATERIAL_AMOUNT*5) l += "5x [RDSCREEN_NOBREAK]" - if(M.amount >= MINERAL_MATERIAL_AMOUNT) l += "All[RDSCREEN_NOBREAK]" + var/datum/material/M = mat_id + var/amount = materials.mat_container.materials[mat_id] + var/ref = REF(M) + l += "* [amount] of [M.name]: " + if(amount >= MINERAL_MATERIAL_AMOUNT) l += "Eject [RDSCREEN_NOBREAK]" + if(amount >= MINERAL_MATERIAL_AMOUNT*5) l += "5x [RDSCREEN_NOBREAK]" + if(amount >= MINERAL_MATERIAL_AMOUNT) l += "All[RDSCREEN_NOBREAK]" l += "" l += "
[RDSCREEN_NOBREAK]" return l @@ -305,7 +312,8 @@ if(ls["disposeall"]) //Causes the protolathe to dispose of all it's reagents. reagents.clear_reagents() if(ls["ejectsheet"]) //Causes the protolathe to eject a sheet of material - eject_sheets(ls["ejectsheet"], ls["eject_amt"]) + var/datum/material/M = locate(ls["ejectsheet"]) + eject_sheets(M, ls["eject_amt"]) updateUsrDialog() /obj/machinery/rnd/production/proc/eject_sheets(eject_sheet, eject_amt) diff --git a/code/modules/research/nanites/extra_settings/_extra_setting.dm b/code/modules/research/nanites/extra_settings/_extra_setting.dm new file mode 100644 index 0000000000..b3bef77eb4 --- /dev/null +++ b/code/modules/research/nanites/extra_settings/_extra_setting.dm @@ -0,0 +1,20 @@ +/datum/nanite_extra_setting + var/setting_type + var/value + +/datum/nanite_extra_setting/proc/get_value() + return value + +/datum/nanite_extra_setting/proc/set_value(value) + src.value = value + +/datum/nanite_extra_setting/proc/get_copy() + return + +//I made the choice to send the name as part of the parameter instead of storing it directly on +//this datum as a way of avoiding duplication of data between the containing assoc list +//and this datum. +//Also make sure to double wrap the list when implementing this as +//+= is interpreted as a combine on lists, so the outer list gets unwrapped +/datum/nanite_extra_setting/proc/get_frontend_list(name) + return diff --git a/code/modules/research/nanites/extra_settings/boolean.dm b/code/modules/research/nanites/extra_settings/boolean.dm new file mode 100644 index 0000000000..7d66eb988e --- /dev/null +++ b/code/modules/research/nanites/extra_settings/boolean.dm @@ -0,0 +1,27 @@ +/datum/nanite_extra_setting/boolean + setting_type = NESTYPE_BOOLEAN + var/true_text + var/false_text + +/datum/nanite_extra_setting/boolean/New(initial, true_text, false_text) + value = initial + src.true_text = true_text + src.false_text = false_text + +/datum/nanite_extra_setting/boolean/set_value(value) + if(isnull(value)) + src.value = !src.value + return + . = ..() + +/datum/nanite_extra_setting/boolean/get_copy() + return new /datum/nanite_extra_setting/boolean(value, true_text, false_text) + +/datum/nanite_extra_setting/boolean/get_frontend_list(name) + return list(list( + "name" = name, + "type" = setting_type, + "value" = value, + "true_text" = true_text, + "false_text" = false_text + )) diff --git a/code/modules/research/nanites/extra_settings/number.dm b/code/modules/research/nanites/extra_settings/number.dm new file mode 100644 index 0000000000..6e63ae067e --- /dev/null +++ b/code/modules/research/nanites/extra_settings/number.dm @@ -0,0 +1,32 @@ +/datum/nanite_extra_setting/number + setting_type = NESTYPE_NUMBER + var/min + var/max + var/unit = "" + +/datum/nanite_extra_setting/number/New(initial, min, max, unit) + value = initial + src.min = min + src.max = max + if(unit) + src.unit = unit + +/datum/nanite_extra_setting/number/set_value(value) + if(istext(value)) + value = text2num(value) + if(!value || !isnum(value)) + return + src.value = CLAMP(value, min, max) + +/datum/nanite_extra_setting/number/get_copy() + return new /datum/nanite_extra_setting/number(value, min, max, unit) + +/datum/nanite_extra_setting/number/get_frontend_list(name) + return list(list( + "name" = name, + "type" = setting_type, + "value" = value, + "min" = min, + "max" = max, + "unit" = unit + )) diff --git a/code/modules/research/nanites/extra_settings/text.dm b/code/modules/research/nanites/extra_settings/text.dm new file mode 100644 index 0000000000..56aa3dd07f --- /dev/null +++ b/code/modules/research/nanites/extra_settings/text.dm @@ -0,0 +1,18 @@ +/datum/nanite_extra_setting/text + setting_type = NESTYPE_TEXT + +/datum/nanite_extra_setting/text/New(initial) + value = initial + +/datum/nanite_extra_setting/text/set_value(value) + src.value = trim(value) + +/datum/nanite_extra_setting/text/get_copy() + return new /datum/nanite_extra_setting/text(value) + +/datum/nanite_extra_setting/text/get_frontend_list(name) + return list(list( + "name" = name, + "type" = setting_type, + "value" = value + )) diff --git a/code/modules/research/nanites/extra_settings/type.dm b/code/modules/research/nanites/extra_settings/type.dm new file mode 100644 index 0000000000..2085ba510c --- /dev/null +++ b/code/modules/research/nanites/extra_settings/type.dm @@ -0,0 +1,18 @@ +/datum/nanite_extra_setting/type + setting_type = NESTYPE_TYPE + var/list/types + +/datum/nanite_extra_setting/type/New(initial, types) + value = initial + src.types = types + +/datum/nanite_extra_setting/type/get_copy() + return new /datum/nanite_extra_setting/type(value, types) + +/datum/nanite_extra_setting/type/get_frontend_list(name) + return list(list( + "name" = name, + "type" = setting_type, + "value" = value, + "types" = types + )) diff --git a/code/modules/research/nanites/nanite_chamber.dm b/code/modules/research/nanites/nanite_chamber.dm index 515231c24c..4a980a0436 100644 --- a/code/modules/research/nanites/nanite_chamber.dm +++ b/code/modules/research/nanites/nanite_chamber.dm @@ -77,7 +77,7 @@ return occupant.AddComponent(/datum/component/nanites, 100) -/obj/machinery/nanite_chamber/proc/install_program(datum/nanite_program/NP) +/obj/machinery/nanite_chamber/proc/remove_nanites(datum/nanite_program/NP) if(stat & (NOPOWER|BROKEN)) return if((stat & MAINT) || panel_open) @@ -88,74 +88,46 @@ var/locked_state = locked locked = TRUE - //TODO COMPUTERY MACHINE SOUNDS - set_busy(TRUE, "Initializing installation protocol...", "[initial(icon_state)]_raising") - addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Connecting to nanite framework...", "[initial(icon_state)]_active"),20) - addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Installing program...", "[initial(icon_state)]_falling"),35) - addtimer(CALLBACK(src, .proc/complete_installation, locked_state, NP),55) + //TODO OMINOUS MACHINE SOUNDS + set_busy(TRUE, "Initializing cleanup protocol...", "[initial(icon_state)]_raising") + addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Analyzing host bio-structure...", "[initial(icon_state)]_active"),20) + addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Pinging nanites...", "[initial(icon_state)]_active"),40) + addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Initiating graceful self-destruct sequence...", "[initial(icon_state)]_active"),70) + addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Removing debris...", "[initial(icon_state)]_falling"),110) + addtimer(CALLBACK(src, .proc/complete_removal, locked_state),130) -/obj/machinery/nanite_chamber/proc/complete_installation(locked_state, datum/nanite_program/NP) +/obj/machinery/nanite_chamber/proc/complete_removal(locked_state) //TODO MACHINE DING locked = locked_state set_busy(FALSE) if(!occupant) return + SEND_SIGNAL(occupant, COMSIG_NANITE_DELETE) - SEND_SIGNAL(occupant, COMSIG_NANITE_ADD_PROGRAM, NP.copy()) - -/obj/machinery/nanite_chamber/proc/uninstall_program(datum/nanite_program/NP) - if(stat & (NOPOWER|BROKEN)) - return - if((stat & MAINT) || panel_open) - return - if(!occupant || busy) - return - - var/locked_state = locked - locked = TRUE - - //TODO COMPUTERY MACHINE SOUNDS - set_busy(TRUE, "Initializing uninstallation protocol...", "[initial(icon_state)]_raising") - addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Connecting to nanite framework...", "[initial(icon_state)]_active"),20) - addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Uninstalling program...", "[initial(icon_state)]_falling"),35) - addtimer(CALLBACK(src, .proc/complete_uninstallation, locked_state, NP),55) - -/obj/machinery/nanite_chamber/proc/complete_uninstallation(locked_state, datum/nanite_program/NP) - //TODO MACHINE DING - locked = locked_state - set_busy(FALSE) - if(!occupant) - return - qdel(NP) - -/obj/machinery/nanite_chamber/update_icon() - cut_overlays() - - if((stat & MAINT) || panel_open) - add_overlay("maint") - - else if(!(stat & (NOPOWER|BROKEN))) - if(busy || locked) - add_overlay("red") - if(locked) - add_overlay("bolted") - else - add_overlay("green") - +/obj/machinery/nanite_chamber/update_icon_state() //running and someone in there if(occupant) if(busy) icon_state = busy_icon_state else - icon_state = initial(icon_state)+ "_occupied" - return + icon_state = initial(icon_state) + "_occupied" + else + //running + icon_state = initial(icon_state) + (state_open ? "_open" : "") - //running - icon_state = initial(icon_state)+ (state_open ? "_open" : "") +/obj/machinery/nanite_chamber/update_overlays() + . = ..() -/obj/machinery/nanite_chamber/power_change() - ..() - update_icon() + if((stat & MAINT) || panel_open) + . += "maint" + + else if(!(stat & (NOPOWER|BROKEN))) + if(busy || locked) + . += "red" + if(locked) + . += "bolted" + else + . += "green" /obj/machinery/nanite_chamber/proc/toggle_open(mob/user) if(panel_open) @@ -182,7 +154,7 @@ user.last_special = world.time + CLICK_CD_BREAKOUT user.visible_message("You see [user] kicking against the door of [src]!", \ "You lean on the back of [src] and start pushing the door open... (this will take about [DisplayTimeText(breakout_time)].)", \ - "You hear a metallic creaking from [src].") + "You hear a metallic creaking from [src].") if(do_after(user,(breakout_time), target = src)) if(!user || user.stat != CONSCIOUS || user.loc != src || state_open || !locked || busy) return @@ -231,6 +203,8 @@ toggle_open(user) /obj/machinery/nanite_chamber/MouseDrop_T(mob/target, mob/user) - if(user.stat || user.lying || !Adjacent(user) || !user.Adjacent(target) || !iscarbon(target) || !user.IsAdvancedToolUser()) + if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK) || !Adjacent(target) || !user.Adjacent(target) || !iscarbon(target)) return - close_machine(target) + if(close_machine(target)) + log_combat(user, target, "inserted", null, "into [src].") + add_fingerprint(user) diff --git a/code/modules/research/nanites/nanite_chamber_computer.dm b/code/modules/research/nanites/nanite_chamber_computer.dm index f9d931b3de..0750d3d268 100644 --- a/code/modules/research/nanites/nanite_chamber_computer.dm +++ b/code/modules/research/nanites/nanite_chamber_computer.dm @@ -5,30 +5,13 @@ var/obj/item/disk/nanite_program/disk circuit = /obj/item/circuitboard/computer/nanite_chamber_control icon_screen = "nanite_chamber_control" + ui_x = 380 + ui_y = 570 /obj/machinery/computer/nanite_chamber_control/Initialize() . = ..() find_chamber() -/obj/machinery/computer/nanite_chamber_control/attackby(obj/item/I, mob/user) - if(istype(I, /obj/item/disk/nanite_program)) - var/obj/item/disk/nanite_program/N = I - if(disk) - eject(user) - if(user.transferItemToLoc(N, src)) - to_chat(user, "You insert [N] into [src]") - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0) - disk = N - else - ..() - -/obj/machinery/computer/nanite_chamber_control/proc/eject(mob/living/user) - if(!disk) - return - if(!istype(user) || !Adjacent(user) || !user.put_in_active_hand(disk)) - disk.forceMove(drop_location()) - disk = null - /obj/machinery/computer/nanite_chamber_control/proc/find_chamber() for(var/direction in GLOB.cardinals) var/C = locate(/obj/machinery/nanite_chamber, get_step(src, direction)) @@ -43,41 +26,13 @@ ..() /obj/machinery/computer/nanite_chamber_control/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) - SStgui.try_update_ui(user, src, ui_key, ui, force_open) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) - ui = new(user, src, ui_key, "nanite_chamber_control", name, 550, 800, master_ui, state) + ui = new(user, src, ui_key, "nanite_chamber_control", name, ui_x, ui_y, master_ui, state) ui.open() /obj/machinery/computer/nanite_chamber_control/ui_data() var/list/data = list() - if(disk) - data["has_disk"] = TRUE - var/list/disk_data = list() - var/datum/nanite_program/P = disk.program - if(P) - data["has_program"] = TRUE - disk_data["name"] = P.name - disk_data["desc"] = P.desc - - disk_data["activated"] = P.activated - disk_data["activation_delay"] = P.activation_delay - disk_data["timer"] = P.timer - disk_data["activation_code"] = P.activation_code - disk_data["deactivation_code"] = P.deactivation_code - disk_data["kill_code"] = P.kill_code - disk_data["trigger_code"] = P.trigger_code - disk_data["timer_type"] = P.get_timer_type_text() - - var/list/extra_settings = list() - for(var/X in P.extra_settings) - var/list/setting = list() - setting["name"] = X - setting["value"] = P.get_extra_setting(X) - extra_settings += list(setting) - disk_data["extra_settings"] = extra_settings - if(LAZYLEN(extra_settings)) - disk_data["has_extra_settings"] = TRUE - data["disk"] = disk_data if(!chamber) data["status_msg"] = "No chamber detected." @@ -89,7 +44,7 @@ var/mob/living/L = chamber.occupant - if(!(MOB_ORGANIC in L.mob_biotypes) && !(MOB_UNDEAD in L.mob_biotypes)) + if(!(L.mob_biotypes & (MOB_ORGANIC|MOB_UNDEAD))) data["status_msg"] = "Occupant not compatible with nanites." return data @@ -97,6 +52,7 @@ data["status_msg"] = chamber.busy_message return data + data["status_msg"] = null data["scan_level"] = chamber.scan_level data["locked"] = chamber.locked data["occupant_name"] = chamber.occupant.name @@ -113,46 +69,32 @@ chamber.locked = !chamber.locked chamber.update_icon() . = TRUE - if("eject") - eject(usr) - . = TRUE if("set_safety") - var/threshold = input("Set safety threshold (0-500):", name, null) as null|num + var/threshold = text2num(params["value"]) if(!isnull(threshold)) chamber.set_safety(CLAMP(round(threshold, 1),0,500)) - playsound(src, "terminal_type", 25, 0) - investigate_log("[key_name(chamber.occupant)]'s nanites' safety threshold was set to [threshold] by [key_name(usr)].", INVESTIGATE_NANITES) + playsound(src, "terminal_type", 25, FALSE) + chamber.occupant.investigate_log("'s nanites' safety threshold was set to [threshold] by [key_name(usr)] via [src] at [AREACOORD(src)].", INVESTIGATE_NANITES) . = TRUE if("set_cloud") - var/cloud_id = input("Set cloud ID (1-100, 0 to disable):", name, null) as null|num + var/cloud_id = text2num(params["value"]) if(!isnull(cloud_id)) chamber.set_cloud(CLAMP(round(cloud_id, 1),0,100)) - playsound(src, "terminal_type", 25, 0) - investigate_log("[key_name(chamber.occupant)]'s nanites' cloud id was set to [cloud_id] by [key_name(usr)].", INVESTIGATE_NANITES) + playsound(src, "terminal_type", 25, FALSE) + chamber.occupant.investigate_log("'s nanites' cloud id was set to [cloud_id] by [key_name(usr)] via [src] at [AREACOORD(src)].", INVESTIGATE_NANITES) . = TRUE if("connect_chamber") find_chamber() . = TRUE + if("remove_nanites") + playsound(src, 'sound/machines/terminal_prompt.ogg', 25, FALSE) + chamber.remove_nanites() + log_combat(usr, chamber.occupant, "cleared nanites from", null, "via [src]") + chamber.occupant.investigate_log("'s nanites were cleared by [key_name(usr)] via [src] at [AREACOORD(src)].", INVESTIGATE_NANITES) + . = TRUE if("nanite_injection") - playsound(src, 'sound/machines/terminal_prompt.ogg', 25, 0) + playsound(src, 'sound/machines/terminal_prompt.ogg', 25, FALSE) chamber.inject_nanites() - investigate_log("[key_name(chamber.occupant)] was injected with nanites by [key_name(usr)] using a nanite chamber.", INVESTIGATE_NANITES) + log_combat(usr, chamber.occupant, "injected", null, "with nanites via [src]") + chamber.occupant.investigate_log("was injected with nanites by [key_name(usr)] via [src] at [AREACOORD(src)].", INVESTIGATE_NANITES) . = TRUE - if("add_program") - if(!disk || !chamber || !chamber.occupant) - return - playsound(src, 'sound/machines/terminal_prompt.ogg', 25, 0) - chamber.install_program(disk.program) - investigate_log("Program of type [disk.program.type] was installed into [key_name(chamber.occupant)]'s nanites with a nanite chamber by [key_name(usr)].", INVESTIGATE_NANITES) - . = TRUE - if("remove_program") - if(!chamber || !chamber.occupant) - return - playsound(src, 'sound/machines/terminal_prompt.ogg', 25, 0) - var/list/nanite_programs = list() - SEND_SIGNAL(chamber.occupant, COMSIG_NANITE_GET_PROGRAMS, nanite_programs) - if(LAZYLEN(nanite_programs)) - var/datum/nanite_program/P = nanite_programs[text2num(params["program_id"])] - chamber.uninstall_program(P) - investigate_log("Program of type [P.type] was uninstalled from [key_name(chamber.occupant)]'s nanites with a nanite chamber by [key_name(usr)].", INVESTIGATE_NANITES) - . = TRUE \ No newline at end of file diff --git a/code/modules/research/nanites/nanite_cloud_controller.dm b/code/modules/research/nanites/nanite_cloud_controller.dm index 081b1a7a4c..0731d3067c 100644 --- a/code/modules/research/nanites/nanite_cloud_controller.dm +++ b/code/modules/research/nanites/nanite_cloud_controller.dm @@ -4,9 +4,13 @@ circuit = /obj/item/circuitboard/computer/nanite_cloud_controller icon = 'icons/obj/machines/research.dmi' icon_state = "nanite_cloud_controller" + ui_x = 375 + ui_y = 700 + var/obj/item/disk/nanite_program/disk var/list/datum/nanite_cloud_backup/cloud_backups = list() var/current_view = 0 //0 is the main menu, any other number is the page of the backup with that ID + var/new_backup_id = 1 /obj/machinery/computer/nanite_cloud_controller/Destroy() QDEL_LIST(cloud_backups) //rip backups @@ -19,8 +23,8 @@ if(disk) eject(user) if(user.transferItemToLoc(N, src)) - to_chat(user, "You insert [N] into [src]") - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0) + to_chat(user, "You insert [N] into [src].") + playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE) disk = N else ..() @@ -50,13 +54,14 @@ investigate_log("[key_name(user)] created a new nanite cloud backup with id #[cloud_id]", INVESTIGATE_NANITES) /obj/machinery/computer/nanite_cloud_controller/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) - SStgui.try_update_ui(user, src, ui_key, ui, force_open) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) - ui = new(user, src, ui_key, "nanite_cloud_control", name, 600, 800, master_ui, state) + ui = new(user, src, ui_key, "nanite_cloud_control", name, ui_x, ui_y, master_ui, state) ui.open() /obj/machinery/computer/nanite_cloud_controller/ui_data() var/list/data = list() + if(disk) data["has_disk"] = TRUE var/list/disk_data = list() @@ -71,24 +76,28 @@ disk_data["trigger_cooldown"] = P.trigger_cooldown / 10 disk_data["activated"] = P.activated - disk_data["activation_delay"] = P.activation_delay - disk_data["timer"] = P.timer disk_data["activation_code"] = P.activation_code disk_data["deactivation_code"] = P.deactivation_code disk_data["kill_code"] = P.kill_code disk_data["trigger_code"] = P.trigger_code - disk_data["timer_type"] = P.get_timer_type_text() + disk_data["timer_restart"] = P.timer_restart / 10 + disk_data["timer_shutdown"] = P.timer_shutdown / 10 + disk_data["timer_trigger"] = P.timer_trigger / 10 + disk_data["timer_trigger_delay"] = P.timer_trigger_delay / 10 - var/list/extra_settings = list() - for(var/X in P.extra_settings) - var/list/setting = list() - setting["name"] = X - setting["value"] = P.get_extra_setting(X) - extra_settings += list(setting) + var/list/extra_settings = P.get_extra_settings_frontend() disk_data["extra_settings"] = extra_settings if(LAZYLEN(extra_settings)) disk_data["has_extra_settings"] = TRUE + if(istype(P, /datum/nanite_program/sensor)) + var/datum/nanite_program/sensor/sensor = P + if(sensor.can_rule) + disk_data["can_rule"] = TRUE data["disk"] = disk_data + else + data["has_disk"] = FALSE + + data["new_backup_id"] = new_backup_id data["current_view"] = current_view if(current_view) @@ -108,19 +117,30 @@ cloud_program["trigger_cost"] = P.trigger_cost cloud_program["trigger_cooldown"] = P.trigger_cooldown / 10 cloud_program["activated"] = P.activated - cloud_program["activation_delay"] = P.activation_delay - cloud_program["timer"] = P.timer - cloud_program["timer_type"] = P.get_timer_type_text() + cloud_program["timer_restart"] = P.timer_restart / 10 + cloud_program["timer_shutdown"] = P.timer_shutdown / 10 + cloud_program["timer_trigger"] = P.timer_trigger / 10 + cloud_program["timer_trigger_delay"] = P.timer_trigger_delay / 10 + cloud_program["activation_code"] = P.activation_code cloud_program["deactivation_code"] = P.deactivation_code cloud_program["kill_code"] = P.kill_code cloud_program["trigger_code"] = P.trigger_code - var/list/extra_settings = list() - for(var/X in P.extra_settings) - var/list/setting = list() - setting["name"] = X - setting["value"] = P.get_extra_setting(X) - extra_settings += list(setting) + var/list/rules = list() + var/rule_id = 1 + for(var/X in P.rules) + var/datum/nanite_rule/nanite_rule = X + var/list/rule = list() + rule["display"] = nanite_rule.display() + rule["program_id"] = id + rule["id"] = rule_id + rules += list(rule) + rule_id++ + cloud_program["rules"] = rules + if(LAZYLEN(rules)) + cloud_program["has_rules"] = TRUE + + var/list/extra_settings = P.get_extra_settings_frontend() cloud_program["extra_settings"] = extra_settings if(LAZYLEN(extra_settings)) cloud_program["has_extra_settings"] = TRUE @@ -147,17 +167,20 @@ if("set_view") current_view = text2num(params["view"]) . = TRUE + if("update_new_backup_value") + var/backup_value = text2num(params["value"]) + new_backup_id = backup_value if("create_backup") - var/cloud_id = input("Choose a cloud ID (1-100):", name, null) as null|num + var/cloud_id = new_backup_id if(!isnull(cloud_id)) - playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt.ogg', 50, FALSE) cloud_id = CLAMP(round(cloud_id, 1),1,100) generate_backup(cloud_id, usr) . = TRUE if("delete_backup") var/datum/nanite_cloud_backup/backup = get_backup(current_view) if(backup) - playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt.ogg', 50, FALSE) qdel(backup) investigate_log("[key_name(usr)] deleted the nanite cloud backup #[current_view]", INVESTIGATE_NANITES) . = TRUE @@ -165,7 +188,7 @@ if(disk && disk.program) var/datum/nanite_cloud_backup/backup = get_backup(current_view) if(backup) - playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt.ogg', 50, FALSE) var/datum/component/nanites/nanites = backup.nanites nanites.add_program(null, disk.program.copy()) investigate_log("[key_name(usr)] uploaded program [disk.program.name] to cloud #[current_view]", INVESTIGATE_NANITES) @@ -173,12 +196,37 @@ if("remove_program") var/datum/nanite_cloud_backup/backup = get_backup(current_view) if(backup) - playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt.ogg', 50, FALSE) var/datum/component/nanites/nanites = backup.nanites var/datum/nanite_program/P = nanites.programs[text2num(params["program_id"])] investigate_log("[key_name(usr)] deleted program [P.name] from cloud #[current_view]", INVESTIGATE_NANITES) qdel(P) . = TRUE + if("add_rule") + if(disk && disk.program && istype(disk.program, /datum/nanite_program/sensor)) + var/datum/nanite_program/sensor/rule_template = disk.program + if(!rule_template.can_rule) + return + var/datum/nanite_cloud_backup/backup = get_backup(current_view) + if(backup) + playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) + var/datum/component/nanites/nanites = backup.nanites + var/datum/nanite_program/P = nanites.programs[text2num(params["program_id"])] + var/datum/nanite_rule/rule = rule_template.make_rule(P) + + investigate_log("[key_name(usr)] added rule [rule.display()] to program [P.name] in cloud #[current_view]", INVESTIGATE_NANITES) + . = TRUE + if("remove_rule") + var/datum/nanite_cloud_backup/backup = get_backup(current_view) + if(backup) + playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) + var/datum/component/nanites/nanites = backup.nanites + var/datum/nanite_program/P = nanites.programs[text2num(params["program_id"])] + var/datum/nanite_rule/rule = P.rules[text2num(params["rule_id"])] + rule.remove() + + investigate_log("[key_name(usr)] removed rule [rule.display()] from program [P.name] in cloud #[current_view]", INVESTIGATE_NANITES) + . = TRUE /datum/nanite_cloud_backup var/cloud_id = 0 @@ -193,4 +241,4 @@ /datum/nanite_cloud_backup/Destroy() storage.cloud_backups -= src SSnanites.cloud_backups -= src - return ..() \ No newline at end of file + return ..() diff --git a/code/modules/research/nanites/nanite_hijacker.dm b/code/modules/research/nanites/nanite_hijacker.dm deleted file mode 100644 index 920c42b411..0000000000 --- a/code/modules/research/nanites/nanite_hijacker.dm +++ /dev/null @@ -1,157 +0,0 @@ -/obj/item/nanite_hijacker - name = "nanite remote control" //fake name - desc = "A device that can load nanite programming disks, edit them at will, and imprint them to nanites remotely." - w_class = WEIGHT_CLASS_SMALL - icon = 'icons/obj/device.dmi' - icon_state = "nanite_remote" - item_flags = NOBLUDGEON - var/obj/item/disk/nanite_program/disk - var/datum/nanite_program/program - -/obj/item/nanite_hijacker/AltClick(mob/user) - . = ..() - if(!user.canUseTopic(src, BE_CLOSE)) - return - if(disk) - eject() - return TRUE - -/obj/item/nanite_hijacker/examine(mob/user) - . = ..() - if(disk) - . += "Alt-click [src] to eject the disk." - -/obj/item/nanite_hijacker/attackby(obj/item/I, mob/user) - if(istype(I, /obj/item/disk/nanite_program)) - var/obj/item/disk/nanite_program/N = I - if(disk) - eject() - if(user.transferItemToLoc(N, src)) - to_chat(user, "You insert [N] into [src]") - disk = N - program = N.program - else - ..() - -/obj/item/nanite_hijacker/proc/eject(mob/living/user) - if(!disk) - return - if(!istype(user) || !Adjacent(user) || !user.put_in_hand(disk)) - disk.forceMove(drop_location()) - disk = null - program = null - -/obj/item/nanite_hijacker/afterattack(atom/target, mob/user, etc) - if(!disk || !disk.program) - return - if(isliving(target)) - var/success = SEND_SIGNAL(target, COMSIG_NANITE_ADD_PROGRAM, program.copy()) - switch(success) - if(NONE) - to_chat(user, "You don't detect any nanites in [target].") - if(COMPONENT_PROGRAM_INSTALLED) - to_chat(user, "You insert the currently loaded program into [target]'s nanites.") - if(COMPONENT_PROGRAM_NOT_INSTALLED) - to_chat(user, "You try to insert the currently loaded program into [target]'s nanites, but the installation fails.") - -//Same UI as the nanite programmer, as it pretty much does the same -/obj/item/nanite_hijacker/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.hands_state) - SStgui.try_update_ui(user, src, ui_key, ui, force_open) - if(!ui) - ui = new(user, src, ui_key, "nanite_programmer", "Internal Nanite Programmer", 420, 800, master_ui, state) - ui.open() - -/obj/item/nanite_hijacker/ui_data() - var/list/data = list() - data["has_disk"] = istype(disk) - data["has_program"] = istype(program) - if(program) - data["name"] = program.name - data["desc"] = program.desc - data["use_rate"] = program.use_rate - data["can_trigger"] = program.can_trigger - data["trigger_cost"] = program.trigger_cost - data["trigger_cooldown"] = program.trigger_cooldown / 10 - - data["activated"] = program.activated - data["activation_delay"] = program.activation_delay - data["timer"] = program.timer - data["activation_code"] = program.activation_code - data["deactivation_code"] = program.deactivation_code - data["kill_code"] = program.kill_code - data["trigger_code"] = program.trigger_code - data["timer_type"] = program.get_timer_type_text() - - var/list/extra_settings = list() - for(var/X in program.extra_settings) - var/list/setting = list() - setting["name"] = X - setting["value"] = program.get_extra_setting(X) - extra_settings += list(setting) - data["extra_settings"] = extra_settings - if(LAZYLEN(extra_settings)) - data["has_extra_settings"] = TRUE - - return data - -/obj/item/nanite_hijacker/ui_act(action, params) - if(..()) - return - switch(action) - if("eject") - eject(usr) - . = TRUE - if("toggle_active") - program.activated = !program.activated //we don't use the activation procs since we aren't in a mob - if(program.activated) - program.activation_delay = 0 - . = TRUE - if("set_code") - var/new_code = input("Set code (0000-9999):", name, null) as null|num - if(!isnull(new_code)) - new_code = CLAMP(round(new_code, 1),0,9999) - else - return - - var/target_code = params["target_code"] - switch(target_code) - if("activation") - program.activation_code = CLAMP(round(new_code, 1),0,9999) - if("deactivation") - program.deactivation_code = CLAMP(round(new_code, 1),0,9999) - if("kill") - program.kill_code = CLAMP(round(new_code, 1),0,9999) - if("trigger") - program.trigger_code = CLAMP(round(new_code, 1),0,9999) - . = TRUE - if("set_extra_setting") - program.set_extra_setting(usr, params["target_setting"]) - . = TRUE - if("set_activation_delay") - var/delay = input("Set activation delay in seconds (0-1800):", name, program.activation_delay) as null|num - if(!isnull(delay)) - delay = CLAMP(round(delay, 1),0,1800) - program.activation_delay = delay - if(delay) - program.activated = FALSE - . = TRUE - if("set_timer") - var/timer = input("Set timer in seconds (10-3600):", name, program.timer) as null|num - if(!isnull(timer)) - if(!timer == 0) - timer = CLAMP(round(timer, 1),10,3600) - program.timer = timer - . = TRUE - if("set_timer_type") - var/new_type = input("Choose the timer effect","Timer Effect") as null|anything in list("Deactivate","Self-Delete","Trigger","Reset Activation Timer") - if(new_type) - switch(new_type) - if("Deactivate") - program.timer_type = NANITE_TIMER_DEACTIVATE - if("Self-Delete") - program.timer_type = NANITE_TIMER_SELFDELETE - if("Trigger") - program.timer_type = NANITE_TIMER_TRIGGER - if("Reset Activation Timer") - program.timer_type = NANITE_TIMER_RESET - . = TRUE \ No newline at end of file diff --git a/code/modules/research/nanites/nanite_misc_items.dm b/code/modules/research/nanites/nanite_misc_items.dm index cbcdfb0f9f..6837543d11 100644 --- a/code/modules/research/nanites/nanite_misc_items.dm +++ b/code/modules/research/nanites/nanite_misc_items.dm @@ -6,4 +6,4 @@ icon_state = "nanite_remote" /obj/item/nanite_injector/attack_self(mob/user) - user.AddComponent(/datum/component/nanites, 150) \ No newline at end of file + user.AddComponent(/datum/component/nanites, 150) diff --git a/code/modules/research/nanites/nanite_program_hub.dm b/code/modules/research/nanites/nanite_program_hub.dm index d6e0bbdabb..ea4392f236 100644 --- a/code/modules/research/nanites/nanite_program_hub.dm +++ b/code/modules/research/nanites/nanite_program_hub.dm @@ -7,18 +7,21 @@ use_power = IDLE_POWER_USE anchored = TRUE density = TRUE + ui_x = 500 + ui_y = 700 var/obj/item/disk/nanite_program/disk var/datum/techweb/linked_techweb var/current_category = "Main" - var/detail_view = FALSE + var/detail_view = TRUE var/categories = list( list(name = "Utility Nanites"), list(name = "Medical Nanites"), list(name = "Sensor Nanites"), list(name = "Augmentation Nanites"), list(name = "Suppression Nanites"), - list(name = "Weaponized Nanites") + list(name = "Weaponized Nanites"), + //list(name = "Protocols") B.E.P.I.S Content, which we dont have ) /obj/machinery/nanite_program_hub/Initialize() @@ -31,8 +34,8 @@ if(disk) eject(user) if(user.transferItemToLoc(N, src)) - to_chat(user, "You insert [N] into [src]") - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0) + to_chat(user, "You insert [N] into [src].") + playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE) disk = N else ..() @@ -45,10 +48,9 @@ disk = null /obj/machinery/nanite_program_hub/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) - SStgui.try_update_ui(user, src, ui_key, ui, force_open) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) - ui = new(user, src, ui_key, "nanite_program_hub", name, 500, 700, master_ui, state) - ui.set_autoupdate(FALSE) //to avoid making the whole program list every second + ui = new(user, src, ui_key, "nanite_program_hub", name, ui_x, ui_y, master_ui, state) ui.open() /obj/machinery/nanite_program_hub/ui_data() @@ -62,25 +64,31 @@ disk_data["name"] = P.name disk_data["desc"] = P.desc data["disk"] = disk_data + else + data["has_disk"] = FALSE data["detail_view"] = detail_view - data["category"] = current_category - if(current_category != "Main") - var/list/program_list = list() - for(var/i in linked_techweb.researched_designs) - var/datum/design/nanites/D = SSresearch.techweb_design_by_id(i) - if(!istype(D)) - continue - if(current_category in D.category) - var/list/program_design = list() - program_design["id"] = D.id - program_design["name"] = D.name - program_design["desc"] = D.desc - program_list += list(program_design) - data["program_list"] = program_list - else - data["categories"] = categories + return data + +/obj/machinery/nanite_program_hub/ui_static_data(mob/user) + var/list/data = list() + data["programs"] = list() + for(var/i in linked_techweb.researched_designs) + var/datum/design/nanites/D = SSresearch.techweb_design_by_id(i) + if(!istype(D)) + continue + var/cat_name = D.category[1] //just put them in the first category fuck it + if(isnull(data["programs"][cat_name])) + data["programs"][cat_name] = list() + var/list/program_design = list() + program_design["id"] = D.id + program_design["name"] = D.name + program_design["desc"] = D.desc + data["programs"][cat_name] += list(program_design) + + if(!length(data["programs"])) + data["programs"] = null return data @@ -101,11 +109,10 @@ qdel(disk.program) disk.program = new downloaded.program_type disk.name = "[initial(disk.name)] \[[disk.program.name]\]" - playsound(src, 'sound/machines/terminal_prompt.ogg', 25, 0) + playsound(src, 'sound/machines/terminal_prompt.ogg', 25, FALSE) . = TRUE - if("set_category") - var/new_category = params["category"] - current_category = new_category + if("refresh") + update_static_data(usr) . = TRUE if("toggle_details") detail_view = !detail_view diff --git a/code/modules/research/nanites/nanite_programmer.dm b/code/modules/research/nanites/nanite_programmer.dm index fd22fbf4b1..d81880c6d9 100644 --- a/code/modules/research/nanites/nanite_programmer.dm +++ b/code/modules/research/nanites/nanite_programmer.dm @@ -9,6 +9,9 @@ use_power = IDLE_POWER_USE anchored = TRUE density = TRUE + flags_1 = HEAR_1 + ui_x = 420 + ui_y = 550 /obj/machinery/nanite_programmer/attackby(obj/item/I, mob/user) if(istype(I, /obj/item/disk/nanite_program)) @@ -17,7 +20,7 @@ eject(user) if(user.transferItemToLoc(N, src)) to_chat(user, "You insert [N] into [src]") - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE) disk = N program = N.program else @@ -32,9 +35,9 @@ program = null /obj/machinery/nanite_programmer/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) - SStgui.try_update_ui(user, src, ui_key, ui, force_open) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) - ui = new(user, src, ui_key, "nanite_programmer", name, 600, 800, master_ui, state) + ui = new(user, src, ui_key, "nanite_programmer", name, ui_x, ui_y, master_ui, state) ui.open() /obj/machinery/nanite_programmer/ui_data() @@ -50,20 +53,16 @@ data["trigger_cooldown"] = program.trigger_cooldown / 10 data["activated"] = program.activated - data["activation_delay"] = program.activation_delay - data["timer"] = program.timer data["activation_code"] = program.activation_code data["deactivation_code"] = program.deactivation_code data["kill_code"] = program.kill_code data["trigger_code"] = program.trigger_code - data["timer_type"] = program.get_timer_type_text() + data["timer_restart"] = program.timer_restart / 10 + data["timer_shutdown"] = program.timer_shutdown / 10 + data["timer_trigger"] = program.timer_trigger / 10 + data["timer_trigger_delay"] = program.timer_trigger_delay / 10 - var/list/extra_settings = list() - for(var/X in program.extra_settings) - var/list/setting = list() - setting["name"] = X - setting["value"] = program.get_extra_setting(X) - extra_settings += list(setting) + var/list/extra_settings = program.get_extra_settings_frontend() data["extra_settings"] = extra_settings if(LAZYLEN(extra_settings)) data["has_extra_settings"] = TRUE @@ -78,20 +77,12 @@ eject(usr) . = TRUE if("toggle_active") - playsound(src, "terminal_type", 25, 0) + playsound(src, "terminal_type", 25, FALSE) program.activated = !program.activated //we don't use the activation procs since we aren't in a mob - if(program.activated) - program.activation_delay = 0 . = TRUE if("set_code") - var/new_code = input("Set code (0000-9999):", name, null) as null|num - if(!isnull(new_code)) - playsound(src, "terminal_type", 25, 0) - new_code = CLAMP(round(new_code, 1),0,9999) - else - return - - playsound(src, "terminal_type", 25, 0) + var/new_code = text2num(params["code"]) + playsound(src, "terminal_type", 25, FALSE) var/target_code = params["target_code"] switch(target_code) if("activation") @@ -104,37 +95,44 @@ program.trigger_code = CLAMP(round(new_code, 1),0,9999) . = TRUE if("set_extra_setting") - program.set_extra_setting(usr, params["target_setting"]) - playsound(src, "terminal_type", 25, 0) + program.set_extra_setting(params["target_setting"], params["value"]) + playsound(src, "terminal_type", 25, FALSE) . = TRUE - if("set_activation_delay") - var/delay = input("Set activation delay in seconds (0-1800):", name, program.activation_delay) as null|num - if(!isnull(delay)) - playsound(src, "terminal_type", 25, 0) - delay = CLAMP(round(delay, 1),0,1800) - program.activation_delay = delay - if(delay) - program.activated = FALSE - . = TRUE - if("set_timer") - var/timer = input("Set timer in seconds (10-3600):", name, program.timer) as null|num + if("set_restart_timer") + var/timer = text2num(params["delay"]) if(!isnull(timer)) - playsound(src, "terminal_type", 25, 0) - if(!timer == 0) - timer = CLAMP(round(timer, 1),10,3600) - program.timer = timer + playsound(src, "terminal_type", 25, FALSE) + timer = CLAMP(round(timer, 1), 0, 3600) + timer *= 10 //convert to deciseconds + program.timer_restart = timer . = TRUE - if("set_timer_type") - var/new_type = input("Choose the timer effect","Timer Effect") as null|anything in list("Deactivate","Self-Delete","Trigger","Reset Activation Timer") - if(new_type) - playsound(src, "terminal_type", 25, 0) - switch(new_type) - if("Deactivate") - program.timer_type = NANITE_TIMER_DEACTIVATE - if("Self-Delete") - program.timer_type = NANITE_TIMER_SELFDELETE - if("Trigger") - program.timer_type = NANITE_TIMER_TRIGGER - if("Reset Activation Timer") - program.timer_type = NANITE_TIMER_RESET - . = TRUE \ No newline at end of file + if("set_shutdown_timer") + var/timer = text2num(params["delay"]) + if(!isnull(timer)) + playsound(src, "terminal_type", 25, FALSE) + timer = CLAMP(round(timer, 1), 0, 3600) + timer *= 10 //convert to deciseconds + program.timer_shutdown = timer + . = TRUE + if("set_trigger_timer") + var/timer = text2num(params["delay"]) + if(!isnull(timer)) + playsound(src, "terminal_type", 25, FALSE) + timer = CLAMP(round(timer, 1), 0, 3600) + timer *= 10 //convert to deciseconds + program.timer_trigger = timer + . = TRUE + if("set_timer_trigger_delay") + var/timer = text2num(params["delay"]) + if(!isnull(timer)) + playsound(src, "terminal_type", 25, FALSE) + timer = CLAMP(round(timer, 1), 0, 3600) + timer *= 10 //convert to deciseconds + program.timer_trigger_delay = timer + . = TRUE + +/obj/machinery/nanite_programmer/Hear(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, message_mode, atom/movable/source) + . = ..() + var/static/regex/when = regex("(?:^\\W*when|when\\W*$)", "i") //starts or ends with when + if(findtext(raw_message, when) && !istype(speaker, /obj/machinery/nanite_programmer)) + say("When you code it!!") diff --git a/code/modules/research/nanites/nanite_programs.dm b/code/modules/research/nanites/nanite_programs.dm index 0d27d7ba0d..72f969a77e 100644 --- a/code/modules/research/nanites/nanite_programs.dm +++ b/code/modules/research/nanites/nanite_programs.dm @@ -11,7 +11,7 @@ var/trigger_cost = 0 //Amount of nanites required to trigger var/trigger_cooldown = 50 //Deciseconds required between each trigger activation var/next_trigger = 0 //World time required for the next trigger activation - var/timer_counter = 0 //Counts up while active. Used for the timer and the activation delay. + var/program_flags = NONE var/passive_enabled = FALSE //If the nanites have an on/off-style effect, it's tracked by this var @@ -28,9 +28,17 @@ //The following vars are customizable var/activated = TRUE //If FALSE, the program won't process, disables passive effects, can't trigger and doesn't consume nanites - var/activation_delay = 0 //Seconds before the program self-activates. - var/timer = 0 //Seconds before the timer effect activates. Starts counting AFTER the activation delay - var/timer_type = NANITE_TIMER_DEACTIVATE //What happens when the timer runs out + + var/timer_restart = 0 //When deactivated, the program will wait X deciseconds before self-reactivating. Also works if the program begins deactivated. + var/timer_shutdown = 0 //When activated, the program will wait X deciseconds before self-deactivating. Also works if the program begins activated. + var/timer_trigger = 0 //[Trigger only] While active, the program will attempt to trigger once every x deciseconds. + var/timer_trigger_delay = 0 //[Trigger only] While active, the program will delay trigger signals by X deciseconds. + + //Indicates the next world.time tick where these timers will act + var/timer_restart_next = 0 + var/timer_shutdown_next = 0 + var/timer_trigger_next = 0 + var/timer_trigger_delay_next = 0 //Signal codes, these handle remote input to the nanites. If set to 0 they'll ignore signals. var/activation_code = 0 //Code that activates the program [1-9999] @@ -39,19 +47,19 @@ var/trigger_code = 0 //Code that triggers the program (if available) [1-9999] //Extra settings - //Must be listed in text form, with the same title they'll be displayed in the programmer UI - //Changing these values is handled by set_extra_setting() - //Viewing these values is handled by get_extra_setting() - //Copying these values is handled by copy_extra_settings_to() + ///Don't ever override this or I will come to your house and stand menacingly behind a bush var/list/extra_settings = list() -/datum/nanite_program/triggered - use_rate = 0 - trigger_cost = 5 - trigger_cooldown = 50 - can_trigger = TRUE + //Rules + //Rules that automatically manage if the program's active without requiring separate sensor programs + var/list/datum/nanite_rule/rules = list() + +/datum/nanite_program/New() + . = ..() + register_extra_settings() /datum/nanite_program/Destroy() + extra_settings = null if(host_mob) if(activated) deactivate() @@ -64,39 +72,60 @@ /datum/nanite_program/proc/copy() var/datum/nanite_program/new_program = new type() - - new_program.activated = activated - new_program.activation_delay = activation_delay - new_program.timer = timer - new_program.timer_type = timer_type - new_program.activation_code = activation_code - new_program.deactivation_code = deactivation_code - new_program.kill_code = kill_code - new_program.trigger_code = trigger_code - copy_extra_settings_to(new_program) + copy_programming(new_program, TRUE) return new_program /datum/nanite_program/proc/copy_programming(datum/nanite_program/target, copy_activated = TRUE) if(copy_activated) target.activated = activated - target.activation_delay = activation_delay - target.timer = timer - target.timer_type = timer_type + target.timer_restart = timer_restart + target.timer_shutdown = timer_shutdown + target.timer_trigger = timer_trigger + target.timer_trigger_delay = timer_trigger_delay target.activation_code = activation_code target.deactivation_code = deactivation_code target.kill_code = kill_code target.trigger_code = trigger_code - copy_extra_settings_to(target) -/datum/nanite_program/proc/set_extra_setting(user, setting) + target.rules = list() + for(var/R in rules) + var/datum/nanite_rule/rule = R + rule.copy_to(target) + + if(istype(target,src)) + copy_extra_settings_to(target) + +///Register extra settings by overriding this. +///extra_settings[name] = new typepath() for each extra setting +/datum/nanite_program/proc/register_extra_settings() return -/datum/nanite_program/proc/get_extra_setting(setting) - return +///You can override this if you need to have special behavior after setting certain settings. +/datum/nanite_program/proc/set_extra_setting(setting, value) + var/datum/nanite_extra_setting/ES = extra_settings[setting] + return ES.set_value(value) +///You probably shouldn't be overriding this one, but I'm not a cop. +/datum/nanite_program/proc/get_extra_setting_value(setting) + var/datum/nanite_extra_setting/ES = extra_settings[setting] + return ES.get_value() + +///Used for getting information about the extra settings to the frontend +/datum/nanite_program/proc/get_extra_settings_frontend() + var/list/out = list() + for(var/name in extra_settings) + var/datum/nanite_extra_setting/ES = extra_settings[name] + out += ES.get_frontend_list(name) + return out + +///Copy of the list instead of direct reference for obvious reasons /datum/nanite_program/proc/copy_extra_settings_to(datum/nanite_program/target) - return + var/list/copy_list = list() + for(var/ns_name in extra_settings) + var/datum/nanite_extra_setting/extra_setting = extra_settings[ns_name] + copy_list[ns_name] = extra_setting.get_copy() + target.extra_settings = copy_list /datum/nanite_program/proc/on_add(datum/component/nanites/_nanites) nanites = _nanites @@ -105,10 +134,12 @@ /datum/nanite_program/proc/on_mob_add() host_mob = nanites.host_mob - if(activated) //apply activation effects if it starts active + if(activated) //apply activation effects depending on initial status; starts the restart and shutdown timers activate() + else + deactivate() -datum/nanite_program/proc/on_mob_remove() +/datum/nanite_program/proc/on_mob_remove() return /datum/nanite_program/proc/toggle() @@ -119,36 +150,35 @@ datum/nanite_program/proc/on_mob_remove() /datum/nanite_program/proc/activate() activated = TRUE - timer_counter = activation_delay + if(timer_shutdown) + timer_shutdown_next = world.time + timer_shutdown /datum/nanite_program/proc/deactivate() if(passive_enabled) disable_passive_effect() activated = FALSE + if(timer_restart) + timer_restart_next = world.time + timer_restart /datum/nanite_program/proc/on_process() - timer_counter++ - - if(activation_delay) - if(activated && timer_counter < activation_delay) - deactivate() - else if(!activated && timer_counter >= activation_delay) - activate() if(!activated) + if(timer_restart_next && world.time > timer_restart_next) + activate() + timer_restart_next = 0 return - if(timer && timer_counter > timer) - if(timer_type == NANITE_TIMER_DEACTIVATE) - deactivate() - return - else if(timer_type == NANITE_TIMER_SELFDELETE) - qdel(src) - return - else if(can_trigger && timer_type == NANITE_TIMER_TRIGGER) - trigger() - timer_counter = activation_delay - else if(timer_type == NANITE_TIMER_RESET) - timer_counter = 0 + if(timer_shutdown_next && world.time > timer_shutdown_next) + deactivate() + timer_shutdown_next = 0 + + if(timer_trigger && world.time > timer_trigger_next) + trigger() + timer_trigger_next = world.time + timer_trigger + + if(timer_trigger_delay_next && world.time > timer_trigger_delay_next) + trigger(delayed = TRUE) + timer_trigger_delay_next = 0 + if(check_conditions() && consume_nanites(use_rate)) if(!passive_enabled) enable_passive_effect() @@ -160,6 +190,10 @@ datum/nanite_program/proc/on_mob_remove() //If false, disables active and passive effects, but doesn't consume nanites //Can be used to avoid consuming nanites for nothing /datum/nanite_program/proc/check_conditions() + for(var/R in rules) + var/datum/nanite_rule/rule = R + if(!rule.check_rule()) + return FALSE return TRUE //Constantly procs as long as the program is active @@ -174,15 +208,25 @@ datum/nanite_program/proc/on_mob_remove() /datum/nanite_program/proc/disable_passive_effect() passive_enabled = FALSE -/datum/nanite_program/proc/trigger() +//Checks conditions then fires the nanite trigger effect +/datum/nanite_program/proc/trigger(delayed = FALSE, comm_message) + if(!can_trigger) + return if(!activated) - return FALSE + return + if(timer_trigger_delay && !delayed) + timer_trigger_delay_next = world.time + timer_trigger_delay + return if(world.time < next_trigger) - return FALSE + return if(!consume_nanites(trigger_cost)) - return FALSE + return next_trigger = world.time + trigger_cooldown - return TRUE + on_trigger(comm_message) + +//Nanite trigger effect, requires can_trigger to be used +/datum/nanite_program/proc/on_trigger(comm_message) + return /datum/nanite_program/proc/consume_nanites(amount, force = FALSE) return nanites.consume_nanites(amount, force) @@ -234,24 +278,36 @@ datum/nanite_program/proc/on_mob_remove() /datum/nanite_program/proc/receive_signal(code, source) if(activation_code && code == activation_code && !activated) activate() - host_mob.investigate_log("[host_mob]'s [name] nanite program was activated by [source] with code [code].", INVESTIGATE_NANITES) + host_mob.investigate_log("'s [name] nanite program was activated by [source] with code [code].", INVESTIGATE_NANITES) else if(deactivation_code && code == deactivation_code && activated) deactivate() - host_mob.investigate_log("[host_mob]'s [name] nanite program was deactivated by [source] with code [code].", INVESTIGATE_NANITES) - if(kill_code && code == kill_code) - host_mob.investigate_log("[host_mob]'s [name] nanite program was deleted by [source] with code [code].", INVESTIGATE_NANITES) - qdel(src) - else if(can_trigger && trigger_code && code == trigger_code) + host_mob.investigate_log("'s [name] nanite program was deactivated by [source] with code [code].", INVESTIGATE_NANITES) + if(can_trigger && trigger_code && code == trigger_code) trigger() - host_mob.investigate_log("[host_mob]'s [name] nanite program was triggered by [source] with code [code].", INVESTIGATE_NANITES) + host_mob.investigate_log("'s [name] nanite program was triggered by [source] with code [code].", INVESTIGATE_NANITES) + if(kill_code && code == kill_code) + host_mob.investigate_log("'s [name] nanite program was deleted by [source] with code [code].", INVESTIGATE_NANITES) + qdel(src) + +///A nanite program containing a behaviour protocol. Only one protocol of each class can be active at once. +//Currently unused due to us lacking the B.E.P.I.S +/datum/nanite_program/protocol + name = "Nanite Protocol" + var/protocol_class = NONE + +/datum/nanite_program/protocol/check_conditions() + . = ..() + for(var/protocol in nanites.protocols) + var/datum/nanite_program/protocol/P = protocol + if(P != src && P.activated && P.protocol_class == protocol_class) + return FALSE + +/datum/nanite_program/protocol/on_add(datum/component/nanites/_nanites) + ..() + nanites.protocols += src + +/datum/nanite_program/protocol/Destroy() + if(nanites) + nanites.protocols -= src + return ..() -/datum/nanite_program/proc/get_timer_type_text() - switch(timer_type) - if(NANITE_TIMER_DEACTIVATE) - return "Deactivate" - if(NANITE_TIMER_SELFDELETE) - return "Self-Delete" - if(NANITE_TIMER_TRIGGER) - return "Trigger" - if(NANITE_TIMER_RESET) - return "Reset Activation Timer" diff --git a/code/modules/research/nanites/nanite_programs/buffing.dm b/code/modules/research/nanites/nanite_programs/buffing.dm index dde61ec378..f52ae4843a 100644 --- a/code/modules/research/nanites/nanite_programs/buffing.dm +++ b/code/modules/research/nanites/nanite_programs/buffing.dm @@ -18,24 +18,16 @@ var/mob/living/carbon/human/H = host_mob H.physiology.stun_mod *= 2 -/datum/nanite_program/triggered/adrenaline +/datum/nanite_program/adrenaline name = "Adrenaline Burst" desc = "The nanites cause a burst of adrenaline when triggered, waking the host from stuns and temporarily increasing their speed." + can_trigger = TRUE trigger_cost = 25 trigger_cooldown = 1200 rogue_types = list(/datum/nanite_program/toxic, /datum/nanite_program/nerve_decay) -/datum/nanite_program/triggered/adrenaline/trigger() - if(!..()) - return - to_chat(host_mob, "You feel a sudden surge of energy!") - host_mob.SetStun(0) - host_mob.SetKnockdown(0) - host_mob.SetUnconscious(0) - host_mob.adjustStaminaLoss(-10) //stimulants give stamina heal now - host_mob.lying = 0 - host_mob.update_canmove() - host_mob.reagents.add_reagent(/datum/reagent/medicine/stimulants, 1.5) +/datum/nanite_program/adrenaline/on_trigger() + host_mob.do_adrenaline(-10, TRUE, TRUE, FALSE, TRUE, list(/datum/reagent/medicine/stimulants = 1.5), "You feel a sudden surge of energy!", FALSE, FALSE, FALSE) /datum/nanite_program/hardening name = "Dermal Hardening" @@ -120,7 +112,7 @@ /datum/nanite_program/mindshield/enable_passive_effect() . = ..() - if(!host_mob.mind.has_antag_datum(/datum/antagonist/rev)) //won't work if on a rev, to avoid having implanted revs + if(!host_mob.mind.has_antag_datum(/datum/antagonist/rev, TRUE)) //won't work if on a rev, to avoid having implanted revs. ADD_TRAIT(host_mob, TRAIT_MINDSHIELD, "nanites") host_mob.sec_hud_set_implants() diff --git a/code/modules/research/nanites/nanite_programs/healing.dm b/code/modules/research/nanites/nanite_programs/healing.dm index df439e4496..70a1412b11 100644 --- a/code/modules/research/nanites/nanite_programs/healing.dm +++ b/code/modules/research/nanites/nanite_programs/healing.dm @@ -23,7 +23,7 @@ if(!parts.len) return for(var/obj/item/bodypart/L in parts) - if(L.heal_damage(0.5/parts.len, 0.5/parts.len, null, BODYPART_ORGANIC)) + if(L.heal_damage(0.5/parts.len, 0.5/parts.len)) host_mob.update_damage_overlays() else host_mob.adjustBruteLoss(-0.5, TRUE) @@ -48,12 +48,12 @@ /datum/nanite_program/purging name = "Blood Purification" - desc = "The nanites purge toxins and chemicals from the host's bloodstream, however it is dangerous to slimepeople biology due to inaccuracy." + desc = "The nanites purge toxins and chemicals from the host's bloodstream, however it is dangerous to slime biology due to inaccuracy." use_rate = 1 rogue_types = list(/datum/nanite_program/suffocating, /datum/nanite_program/necrotic) /datum/nanite_program/purging/check_conditions() - var/foreign_reagent = LAZYLEN(host_mob.reagents.reagent_list) + var/foreign_reagent = length(host_mob.reagents?.reagent_list) if(!host_mob.getToxLoss() && !foreign_reagent) return FALSE return ..() @@ -73,18 +73,17 @@ rogue_types = list(/datum/nanite_program/brain_decay) /datum/nanite_program/brain_heal/check_conditions() + var/problems = FALSE if(iscarbon(host_mob)) var/mob/living/carbon/C = host_mob - for(var/X in C.get_traumas()) - var/datum/brain_trauma/BT = X - if(BT.resilience <= TRAUMA_RESILIENCE_BASIC) - return ..() - if(host_mob.getOrganLoss(ORGAN_SLOT_BRAIN)) - return ..() - return FALSE + if(length(C.get_traumas())) + problems = TRUE + if(host_mob.getOrganLoss(ORGAN_SLOT_BRAIN) > 0) + problems = TRUE + return problems ? ..() : FALSE /datum/nanite_program/brain_heal/active_effect() - host_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, -1, TRUE) + host_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, -1) if(iscarbon(host_mob) && prob(10)) var/mob/living/carbon/C = host_mob C.cure_trauma_type(resilience = TRAUMA_RESILIENCE_BASIC) @@ -125,7 +124,7 @@ if(!parts.len) return FALSE else - if(!(MOB_ROBOTIC in host_mob.mob_biotypes)) + if(!(host_mob.mob_biotypes & MOB_ROBOTIC)) return FALSE return ..() @@ -137,7 +136,7 @@ return var/update = FALSE for(var/obj/item/bodypart/L in parts) - if(L.heal_damage(1.5/parts.len, 1.5/parts.len, null, BODYPART_ROBOTIC)) //much faster than organic healing + if(L.heal_damage(1.5/parts.len, 1.5/parts.len, null, TRUE, FALSE)) //much faster than organic healing update = TRUE if(update) host_mob.update_damage_overlays() @@ -148,7 +147,7 @@ /datum/nanite_program/purging_advanced name = "Selective Blood Purification" desc = "The nanites purge toxins and dangerous chemicals from the host's bloodstream, while ignoring beneficial chemicals. \ - The added processing power required to analyze the chemicals severely increases the nanite consumption rate. Due to added complexity, it is safe with slimepeople biology." + The added processing power required to analyze the chemicals severely increases the nanite consumption rate. This program is safe with slime biology due to the increased precision." use_rate = 2 rogue_types = list(/datum/nanite_program/suffocating, /datum/nanite_program/necrotic) @@ -181,7 +180,7 @@ return var/update = FALSE for(var/obj/item/bodypart/L in parts) - if(L.heal_damage(3/parts.len, 3/parts.len)) + if(L.heal_damage(3/parts.len, 3/parts.len, FALSE)) update = TRUE if(update) host_mob.update_damage_overlays() @@ -196,70 +195,54 @@ rogue_types = list(/datum/nanite_program/brain_decay, /datum/nanite_program/brain_misfire) /datum/nanite_program/brain_heal_advanced/check_conditions() + var/problems = FALSE if(iscarbon(host_mob)) var/mob/living/carbon/C = host_mob - for(var/X in C.get_traumas()) - var/datum/brain_trauma/BT = X - if(BT.resilience <= TRAUMA_RESILIENCE_LOBOTOMY) - return ..() - if(host_mob.getOrganLoss(ORGAN_SLOT_BRAIN)) - return ..() - return FALSE + if(length(C.get_traumas())) + problems = TRUE + if(host_mob.getOrganLoss(ORGAN_SLOT_BRAIN) > 0) + problems = TRUE + return problems ? ..() : FALSE /datum/nanite_program/brain_heal_advanced/active_effect() - host_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, -2, TRUE) + host_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, -2) if(iscarbon(host_mob) && prob(10)) var/mob/living/carbon/C = host_mob C.cure_trauma_type(resilience = TRAUMA_RESILIENCE_LOBOTOMY) -/datum/nanite_program/triggered/defib +/datum/nanite_program/defib name = "Defibrillation" desc = "The nanites shock the host's heart when triggered, bringing them back to life if the body can sustain it." + can_trigger = TRUE trigger_cost = 25 trigger_cooldown = 120 - rogue_types = list(/datum/nanite_program/triggered/shocking) - -/datum/nanite_program/triggered/defib/trigger() - if(!..()) - return + rogue_types = list(/datum/nanite_program/shocking) +/datum/nanite_program/defib/on_trigger(comm_message) host_mob.notify_ghost_cloning("Your heart is being defibrillated by nanites. Re-enter your corpse if you want to be revived!") addtimer(CALLBACK(src, .proc/zap), 50) -/datum/nanite_program/triggered/defib/proc/check_revivable() +/datum/nanite_program/defib/proc/check_revivable() if(!iscarbon(host_mob)) //nonstandard biology return FALSE var/mob/living/carbon/C = host_mob - if(C.suiciding || HAS_TRAIT(C, TRAIT_NOCLONE) || C.hellbound) //can't revive - return FALSE - if((world.time - C.timeofdeath) > 1800) //too late - return FALSE - if((C.getBruteLoss() > 180) || (C.getFireLoss() > 180) || !C.can_be_revived()) //too damaged - return FALSE - if(!C.getorgan(/obj/item/organ/heart)) //what are we even shocking - return FALSE - var/obj/item/organ/brain/BR = C.getorgan(/obj/item/organ/brain) - if(QDELETED(BR) || BR.brain_death || (BR.organ_flags & ORGAN_FAILING) || C.suiciding) - return FALSE if(C.get_ghost()) return FALSE - return TRUE + return C.can_defib() -/datum/nanite_program/triggered/defib/proc/zap() +/datum/nanite_program/defib/proc/zap() var/mob/living/carbon/C = host_mob - playsound(C, 'sound/machines/defib_charge.ogg', 50, 0) + playsound(C, 'sound/machines/defib_charge.ogg', 50, FALSE) sleep(30) - playsound(C, 'sound/machines/defib_zap.ogg', 50, 0) + playsound(C, 'sound/machines/defib_zap.ogg', 50, FALSE) if(check_revivable()) - playsound(C, 'sound/machines/defib_success.ogg', 50, 0) + playsound(C, 'sound/machines/defib_success.ogg', 50, FALSE) C.set_heartattack(FALSE) - C.revive() + C.revive(full_heal = FALSE, admin_revive = FALSE) C.emote("gasp") C.Jitter(100) SEND_SIGNAL(C, COMSIG_LIVING_MINOR_SHOCK) - var/tplus = world.time - C.timeofdeath - if(tplus > 600) - C.adjustOrganLoss(ORGAN_SLOT_BRAIN, max(0, ((1800 - tplus) / 1800 * 150)), 150) log_game("[C] has been successfully defibrillated by nanites.") else - playsound(C, 'sound/machines/defib_failed.ogg', 50, 0) + playsound(C, 'sound/machines/defib_failed.ogg', 50, FALSE) + diff --git a/code/modules/research/nanites/nanite_programs/protocols.dm b/code/modules/research/nanites/nanite_programs/protocols.dm new file mode 100644 index 0000000000..73976abe09 --- /dev/null +++ b/code/modules/research/nanites/nanite_programs/protocols.dm @@ -0,0 +1,107 @@ +//Replication Protocols +/datum/nanite_program/protocol/kickstart + name = "Kickstart Protocol" + desc = "Replication Protocol: the nanites focus on early growth, heavily boosting replication rate for a few minutes after the initial implantation." + use_rate = 0 + rogue_types = list(/datum/nanite_program/necrotic) + protocol_class = NANITE_PROTOCOL_REPLICATION + var/boost_duration = 1200 + +/datum/nanite_program/protocol/kickstart/check_conditions() + if(!(world.time < nanites.start_time + boost_duration)) + return FALSE + return ..() + +/datum/nanite_program/protocol/kickstart/active_effect() + nanites.adjust_nanites(null, 3.5) + +/datum/nanite_program/protocol/factory + name = "Factory Protocol" + desc = "Replication Protocol: the nanites build a factory matrix within the host, gradually increasing replication speed over time. \ + The factory decays if the protocol is not active, or if the nanites are disrupted by shocks or EMPs." + use_rate = 0 + rogue_types = list(/datum/nanite_program/necrotic) + protocol_class = NANITE_PROTOCOL_REPLICATION + var/factory_efficiency = 0 + var/max_efficiency = 1000 //Goes up to 2 bonus regen per tick after 16 minutes and 40 seconds + +/datum/nanite_program/protocol/factory/on_process() + if(!activated || !check_conditions()) + factory_efficiency = max(0, factory_efficiency - 5) + ..() + +/datum/nanite_program/protocol/factory/on_emp(severity) + ..() + factory_efficiency = max(0, factory_efficiency - 300) + +/datum/nanite_program/protocol/factory/on_shock(shock_damage) + ..() + factory_efficiency = max(0, factory_efficiency - 200) + +/datum/nanite_program/protocol/factory/on_minor_shock() + ..() + factory_efficiency = max(0, factory_efficiency - 100) + +/datum/nanite_program/protocol/factory/active_effect() + factory_efficiency = min(factory_efficiency + 1, max_efficiency) + nanites.adjust_nanites(null, round(0.002 * factory_efficiency, 0.1)) + +/datum/nanite_program/protocol/tinker + name = "Tinker Protocol" + desc = "Replication Protocol: the nanites learn to use metallic material in the host's bloodstream to speed up the replication process." + use_rate = 0 + rogue_types = list(/datum/nanite_program/necrotic) + protocol_class = NANITE_PROTOCOL_REPLICATION + var/boost = 2 + var/list/valid_reagents = list( + /datum/reagent/iron, + /datum/reagent/copper, + /datum/reagent/gold, + /datum/reagent/silver, + /datum/reagent/mercury, + /datum/reagent/aluminium, + /datum/reagent/silicon) + +/datum/nanite_program/protocol/tinker/check_conditions() + if(!nanites.host_mob.reagents) + return FALSE + + var/found_reagent = FALSE + + var/datum/reagents/R = nanites.host_mob.reagents + for(var/VR in valid_reagents) + if(R.has_reagent(VR, 0.5)) + R.remove_reagent(VR, 0.5) + found_reagent = TRUE + break + if(!found_reagent) + return FALSE + return ..() + +/datum/nanite_program/protocol/tinker/active_effect() + nanites.adjust_nanites(null, boost) + +/datum/nanite_program/protocol/offline + name = "Offline Production Protocol" + desc = "Replication Protocol: while the host is asleep or otherwise unconcious, the nanites exploit the reduced interference to replicate more quickly." + use_rate = 0 + rogue_types = list(/datum/nanite_program/necrotic) + protocol_class = NANITE_PROTOCOL_REPLICATION + var/boost = 3 + +/datum/nanite_program/protocol/offline/check_conditions() + var/is_offline = FALSE + if(nanites.host_mob.IsSleeping() || nanites.host_mob.IsUnconscious()) + is_offline = TRUE + if(nanites.host_mob.stat == DEAD || HAS_TRAIT(nanites.host_mob, TRAIT_DEATHCOMA)) + is_offline = TRUE + if(nanites.host_mob.InCritical() && !HAS_TRAIT(nanites.host_mob, TRAIT_NOSOFTCRIT)) + is_offline = TRUE + if(nanites.host_mob.InFullCritical() && !HAS_TRAIT(nanites.host_mob, TRAIT_NOHARDCRIT)) + is_offline = TRUE + if(!is_offline) + return FALSE + return ..() + +/datum/nanite_program/protocol/offline/active_effect() + nanites.adjust_nanites(null, boost) diff --git a/code/modules/research/nanites/nanite_programs/sensor.dm b/code/modules/research/nanites/nanite_programs/sensor.dm index 535b92c6e1..260811445b 100644 --- a/code/modules/research/nanites/nanite_programs/sensor.dm +++ b/code/modules/research/nanites/nanite_programs/sensor.dm @@ -2,71 +2,41 @@ name = "Sensor Nanites" desc = "These nanites send a signal code when a certain condition is met." unique = FALSE - extra_settings = list("Sent Code") + var/can_rule = FALSE - var/sent_code = 0 - -/datum/nanite_program/sensor/set_extra_setting(user, setting) - if(setting == "Sent Code") - var/new_code = input(user, "Set the sent code (1-9999):", name, null) as null|num - if(isnull(new_code)) - return - sent_code = CLAMP(round(new_code, 1), 1, 9999) - -/datum/nanite_program/sensor/get_extra_setting(setting) - if(setting == "Sent Code") - return sent_code - -/datum/nanite_program/sensor/copy_extra_settings_to(datum/nanite_program/sensor/target) - target.sent_code = sent_code +/datum/nanite_program/sensor/register_extra_settings() + extra_settings[NES_SENT_CODE] = new /datum/nanite_extra_setting/number(0, 1, 9999) /datum/nanite_program/sensor/proc/check_event() return FALSE /datum/nanite_program/sensor/proc/send_code() if(activated) - SEND_SIGNAL(host_mob, COMSIG_NANITE_SIGNAL, sent_code, "a [name] program") + var/datum/nanite_extra_setting/ES = extra_settings[NES_SENT_CODE] + SEND_SIGNAL(host_mob, COMSIG_NANITE_SIGNAL, ES.value, "a [name] program") /datum/nanite_program/sensor/active_effect() - if(sent_code && check_event()) + if(check_event()) send_code() +/datum/nanite_program/sensor/proc/make_rule(datum/nanite_program/target) + return + /datum/nanite_program/sensor/repeat name = "Signal Repeater" desc = "When triggered, sends another signal to the nanites, optionally with a delay." can_trigger = TRUE trigger_cost = 0 trigger_cooldown = 10 - extra_settings = list("Sent Code","Delay") var/spent = FALSE - var/delay = 0 -/datum/nanite_program/sensor/repeat/set_extra_setting(user, setting) - if(setting == "Sent Code") - var/new_code = input(user, "Set the sent code (1-9999):", name, null) as null|num - if(isnull(new_code)) - return - sent_code = CLAMP(round(new_code, 1), 1, 9999) - if(setting == "Delay") - var/new_delay = input(user, "Set the delay in seconds:", name, null) as null|num - if(isnull(new_delay)) - return - delay = (CLAMP(round(new_delay, 1), 0, 3600)) * 10 //max 1 hour +/datum/nanite_program/sensor/repeat/register_extra_settings() + . = ..() + extra_settings[NES_DELAY] = new /datum/nanite_extra_setting/number(0, 0, 3600, "s") -/datum/nanite_program/sensor/repeat/get_extra_setting(setting) - if(setting == "Sent Code") - return sent_code - if(setting == "Delay") - return "[delay/10] seconds" - -/datum/nanite_program/sensor/repeat/copy_extra_settings_to(datum/nanite_program/sensor/repeat/target) - target.sent_code = sent_code - target.delay = delay - -/datum/nanite_program/sensor/repeat/trigger() - if(!..()) - return - addtimer(CALLBACK(src, .proc/send_code), delay) +/datum/nanite_program/sensor/repeat/on_trigger(comm_message) + var/datum/nanite_extra_setting/ES = extra_settings[NES_DELAY] + addtimer(CALLBACK(src, .proc/send_code), ES.get_value() * 10) /datum/nanite_program/sensor/relay_repeat name = "Relay Signal Repeater" @@ -74,98 +44,46 @@ can_trigger = TRUE trigger_cost = 0 trigger_cooldown = 10 - extra_settings = list("Sent Code","Relay Channel","Delay") var/spent = FALSE - var/delay = 0 - var/relay_channel = 0 -/datum/nanite_program/sensor/relay_repeat/set_extra_setting(user, setting) - if(setting == "Sent Code") - var/new_code = input(user, "Set the sent code (1-9999):", name, null) as null|num - if(isnull(new_code)) - return - sent_code = CLAMP(round(new_code, 1), 1, 9999) - if(setting == "Relay Channel") - var/new_channel = input(user, "Set the relay channel (1-9999):", name, null) as null|num - if(isnull(new_channel)) - return - relay_channel = CLAMP(round(new_channel, 1), 1, 9999) - if(setting == "Delay") - var/new_delay = input(user, "Set the delay in seconds:", name, null) as null|num - if(isnull(new_delay)) - return - delay = (CLAMP(round(new_delay, 1), 0, 3600)) * 10 //max 1 hour +/datum/nanite_program/sensor/relay_repeat/register_extra_settings() + . = ..() + extra_settings[NES_RELAY_CHANNEL] = new /datum/nanite_extra_setting/number(1, 1, 9999) + extra_settings[NES_DELAY] = new /datum/nanite_extra_setting/number(0, 0, 3600, "s") -/datum/nanite_program/sensor/relay_repeat/get_extra_setting(setting) - if(setting == "Sent Code") - return sent_code - if(setting == "Relay Channel") - return relay_channel - if(setting == "Delay") - return "[delay/10] seconds" - -/datum/nanite_program/sensor/relay_repeat/copy_extra_settings_to(datum/nanite_program/sensor/relay_repeat/target) - target.sent_code = sent_code - target.delay = delay - target.relay_channel = relay_channel - -/datum/nanite_program/sensor/relay_repeat/trigger() - if(!..()) - return - addtimer(CALLBACK(src, .proc/send_code), delay) +/datum/nanite_program/sensor/relay_repeat/on_trigger(comm_message) + var/datum/nanite_extra_setting/ES = extra_settings[NES_DELAY] + addtimer(CALLBACK(src, .proc/send_code), ES.get_value() * 10) /datum/nanite_program/sensor/relay_repeat/send_code() - if(activated && relay_channel) + var/datum/nanite_extra_setting/relay = extra_settings[NES_RELAY_CHANNEL] + if(activated && relay.get_value()) for(var/X in SSnanites.nanite_relays) var/datum/nanite_program/relay/N = X - N.relay_signal(sent_code, relay_channel, "a [name] program") + var/datum/nanite_extra_setting/code = extra_settings[NES_SENT_CODE] + N.relay_signal(code.get_value(), relay.get_value(), "a [name] program") /datum/nanite_program/sensor/health name = "Health Sensor" desc = "The nanites receive a signal when the host's health is above/below a target percentage." - extra_settings = list("Sent Code","Health Percent","Direction") + can_rule = TRUE var/spent = FALSE - var/percent = 50 - var/direction = "Above" -/datum/nanite_program/sensor/health/set_extra_setting(user, setting) - if(setting == "Sent Code") - var/new_code = input(user, "Set the sent code (1-9999):", name, null) as null|num - if(isnull(new_code)) - return - sent_code = CLAMP(round(new_code, 1), 1, 9999) - if(setting == "Health Percent") - var/new_percent = input(user, "Set the health percentage:", name, null) as null|num - if(isnull(new_percent)) - return - percent = CLAMP(round(new_percent, 1), -99, 100) - if(setting == "Direction") - if(direction == "Above") - direction = "Below" - else - direction = "Above" - -/datum/nanite_program/sensor/health/get_extra_setting(setting) - if(setting == "Sent Code") - return sent_code - if(setting == "Health Percent") - return "[percent]%" - if(setting == "Direction") - return direction - -/datum/nanite_program/sensor/health/copy_extra_settings_to(datum/nanite_program/sensor/health/target) - target.sent_code = sent_code - target.percent = percent - target.direction = direction +/datum/nanite_program/sensor/health/register_extra_settings() + . = ..() + extra_settings[NES_HEALTH_PERCENT] = new /datum/nanite_extra_setting/number(50, -99, 100, "%") + extra_settings[NES_DIRECTION] = new /datum/nanite_extra_setting/boolean(TRUE, "Above", "Below") /datum/nanite_program/sensor/health/check_event() var/health_percent = host_mob.health / host_mob.maxHealth * 100 + var/datum/nanite_extra_setting/percent = extra_settings[NES_HEALTH_PERCENT] + var/datum/nanite_extra_setting/direction = extra_settings[NES_DIRECTION] var/detected = FALSE - if(direction == "Above") - if(health_percent >= percent) + if(direction.get_value()) + if(health_percent >= percent.get_value()) detected = TRUE else - if(health_percent < percent) + if(health_percent < percent.get_value()) detected = TRUE if(detected) @@ -177,9 +95,18 @@ spent = FALSE return FALSE +/datum/nanite_program/sensor/health/make_rule(datum/nanite_program/target) + var/datum/nanite_rule/health/rule = new(target) + var/datum/nanite_extra_setting/direction = extra_settings[NES_DIRECTION] + var/datum/nanite_extra_setting/percent = extra_settings[NES_HEALTH_PERCENT] + rule.above = direction.get_value() + rule.threshold = percent.get_value() + return rule + /datum/nanite_program/sensor/crit name = "Critical Health Sensor" desc = "The nanites receive a signal when the host first reaches critical health." + can_rule = TRUE var/spent = FALSE /datum/nanite_program/sensor/crit/check_event() @@ -192,61 +119,44 @@ spent = FALSE return FALSE +/datum/nanite_program/sensor/crit/make_rule(datum/nanite_program/target) + var/datum/nanite_rule/crit/rule = new(target) + return rule + /datum/nanite_program/sensor/death name = "Death Sensor" desc = "The nanites receive a signal when they detect the host is dead." + can_rule = TRUE var/spent = FALSE /datum/nanite_program/sensor/death/on_death() send_code() +/datum/nanite_program/sensor/death/make_rule(datum/nanite_program/target) + var/datum/nanite_rule/death/rule = new(target) + return rule + /datum/nanite_program/sensor/nanite_volume name = "Nanite Volume Sensor" desc = "The nanites receive a signal when the nanite supply is above/below a certain percentage." - extra_settings = list("Sent Code","Nanite Percent","Direction") + can_rule = TRUE var/spent = FALSE - var/percent = 50 - var/direction = "Above" -/datum/nanite_program/sensor/nanite_volume/set_extra_setting(user, setting) - if(setting == "Sent Code") - var/new_code = input(user, "Set the sent code (1-9999):", name, null) as null|num - if(isnull(new_code)) - return - sent_code = CLAMP(round(new_code, 1), 1, 9999) - if(setting == "Nanite Percent") - var/new_percent = input(user, "Set the nanite percentage:", name, null) as null|num - if(isnull(new_percent)) - return - percent = CLAMP(round(new_percent, 1), 1, 100) - if(setting == "Direction") - if(direction == "Above") - direction = "Below" - else - direction = "Above" - -/datum/nanite_program/sensor/nanite_volume/get_extra_setting(setting) - if(setting == "Sent Code") - return sent_code - if(setting == "Nanite Percent") - return "[percent]%" - if(setting == "Direction") - return direction - -/datum/nanite_program/sensor/nanite_volume/copy_extra_settings_to(datum/nanite_program/sensor/nanite_volume/target) - target.sent_code = sent_code - target.percent = percent - target.direction = direction +/datum/nanite_program/sensor/nanite_volume/register_extra_settings() + . = ..() + extra_settings[NES_NANITE_PERCENT] = new /datum/nanite_extra_setting/number(50, -99, 100, "%") + extra_settings[NES_DIRECTION] = new /datum/nanite_extra_setting/boolean(TRUE, "Above", "Below") /datum/nanite_program/sensor/nanite_volume/check_event() var/nanite_percent = (nanites.nanite_volume - nanites.safety_threshold)/(nanites.max_nanites - nanites.safety_threshold)*100 + var/datum/nanite_extra_setting/percent = extra_settings[NES_NANITE_PERCENT] + var/datum/nanite_extra_setting/direction = extra_settings[NES_DIRECTION] var/detected = FALSE - - if(direction == "Above") - if(nanite_percent >= percent) + if(direction.get_value()) + if(nanite_percent >= percent.get_value()) detected = TRUE else - if(nanite_percent < percent) + if(nanite_percent < percent.get_value()) detected = TRUE if(detected) @@ -258,75 +168,51 @@ spent = FALSE return FALSE +/datum/nanite_program/sensor/nanite_volume/make_rule(datum/nanite_program/target) + var/datum/nanite_rule/nanites/rule = new(target) + var/datum/nanite_extra_setting/direction = extra_settings[NES_DIRECTION] + var/datum/nanite_extra_setting/percent = extra_settings[NES_NANITE_PERCENT] + rule.above = direction.get_value() + rule.threshold = percent.get_value() + return rule + /datum/nanite_program/sensor/damage name = "Damage Sensor" desc = "The nanites receive a signal when a host's specific damage type is above/below a target value." - extra_settings = list("Sent Code","Damage Type","Damage","Direction") + can_rule = TRUE var/spent = FALSE - var/damage_type = "Brute" - var/damage = 50 - var/direction = "Above" -/datum/nanite_program/sensor/damage/set_extra_setting(user, setting) - if(setting == "Sent Code") - var/new_code = input(user, "Set the sent code (1-9999):", name, null) as null|num - if(isnull(new_code)) - return - sent_code = CLAMP(round(new_code, 1), 1, 9999) - if(setting == "Damage") - var/new_damage = input(user, "Set the damage threshold:", name, null) as null|num - if(isnull(new_damage)) - return - damage = CLAMP(round(new_damage, 1), 0, 500) - if(setting == "Damage Type") - var/list/damage_types = list("Brute","Burn","Toxin","Oxygen","Cellular") - var/new_damage_type = input("Choose the damage type", name) as null|anything in damage_types - if(!new_damage_type) - return - damage_type = new_damage_type - if(setting == "Direction") - if(direction == "Above") - direction = "Below" - else - direction = "Above" - -/datum/nanite_program/sensor/damage/get_extra_setting(setting) - if(setting == "Sent Code") - return sent_code - if(setting == "Damage") - return damage - if(setting == "Damage Type") - return damage_type - if(setting == "Direction") - return direction - -/datum/nanite_program/sensor/damage/copy_extra_settings_to(datum/nanite_program/sensor/damage/target) - target.sent_code = sent_code - target.damage = damage - target.damage_type = damage_type - target.direction = direction +/datum/nanite_program/sensor/damage/register_extra_settings() + . = ..() + extra_settings[NES_DAMAGE_TYPE] = new /datum/nanite_extra_setting/type(BRUTE, list(BRUTE, BURN, TOX, OXY, CLONE)) + extra_settings[NES_DAMAGE] = new /datum/nanite_extra_setting/number(50, 0, 500) + extra_settings[NES_DIRECTION] = new /datum/nanite_extra_setting/boolean(TRUE, "Above", "Below") /datum/nanite_program/sensor/damage/check_event() var/reached_threshold = FALSE - var/check_above = (direction == "Above") + var/datum/nanite_extra_setting/type = extra_settings[NES_DAMAGE_TYPE] + var/datum/nanite_extra_setting/damage = extra_settings[NES_DAMAGE] + var/datum/nanite_extra_setting/direction = extra_settings[NES_DIRECTION] + var/check_above = direction.get_value() var/damage_amt = 0 - switch(damage_type) - if("Brute") + switch(type.get_value()) + if(BRUTE) damage_amt = host_mob.getBruteLoss() - if("Burn") + if(BURN) damage_amt = host_mob.getFireLoss() - if("Toxin") + if(TOX) damage_amt = host_mob.getToxLoss() - if("Oxygen") + if(OXY) damage_amt = host_mob.getOxyLoss() - if("Cellular") + if(CLONE) damage_amt = host_mob.getCloneLoss() - if(damage_amt >= damage) - if(check_above) + if(check_above) + if(damage_amt >= damage.get_value()) + reached_threshold = TRUE + else + if(damage_amt < damage.get_value()) reached_threshold = TRUE - else if(!check_above) - reached_threshold = TRUE if(reached_threshold) if(!spent) @@ -337,14 +223,25 @@ spent = FALSE return FALSE +/datum/nanite_program/sensor/damage/make_rule(datum/nanite_program/target) + var/datum/nanite_rule/damage/rule = new(target) + var/datum/nanite_extra_setting/direction = extra_settings[NES_DIRECTION] + var/datum/nanite_extra_setting/damage_type = extra_settings[NES_DAMAGE_TYPE] + var/datum/nanite_extra_setting/damage = extra_settings[NES_DAMAGE] + rule.above = direction.get_value() + rule.threshold = damage.get_value() + rule.damage_type = damage_type.get_value() + return rule + /datum/nanite_program/sensor/voice name = "Voice Sensor" desc = "Sends a signal when the nanites hear a determined word or sentence." - extra_settings = list("Sent Code","Sentence","Inclusive Mode") var/spent = FALSE - var/sentence = "" - var/inclusive = TRUE +/datum/nanite_program/sensor/voice/register_extra_settings() + . = ..() + extra_settings[NES_SENTENCE] = new /datum/nanite_extra_setting/text("") + extra_settings[NES_INCLUSIVE_MODE] = new /datum/nanite_extra_setting/boolean(TRUE, "Inclusive", "Exclusive") /datum/nanite_program/sensor/voice/on_mob_add() . = ..() @@ -353,45 +250,14 @@ /datum/nanite_program/sensor/voice/on_mob_remove() UnregisterSignal(host_mob, COMSIG_MOVABLE_HEAR, .proc/on_hear) -/datum/nanite_program/sensor/voice/set_extra_setting(user, setting) - if(setting == "Sent Code") - var/new_code = input(user, "Set the sent code (1-9999):", name, null) as null|num - if(isnull(new_code)) - return - sent_code = CLAMP(round(new_code, 1), 1, 9999) - if(setting == "Sentence") - var/new_sentence = stripped_input(user, "Choose the sentence that triggers the sensor.", "Sentence", sentence, MAX_MESSAGE_LEN) - if(!new_sentence) - return - sentence = new_sentence - if(setting == "Inclusive Mode") - var/new_inclusive = input("Should the sensor detect the sentence if contained within another sentence?", name) as null|anything in list("Inclusive","Exclusive") - if(!new_inclusive) - return - inclusive = (new_inclusive == "Inclusive") - -/datum/nanite_program/sensor/voice/get_extra_setting(setting) - if(setting == "Sent Code") - return sent_code - if(setting == "Sentence") - return sentence - if(setting == "Inclusive Mode") - if(inclusive) - return "Inclusive" - else - return "Exclusive" - -/datum/nanite_program/sensor/voice/copy_extra_settings_to(datum/nanite_program/sensor/voice/target) - target.sent_code = sent_code - target.sentence = sentence - target.inclusive = inclusive - /datum/nanite_program/sensor/voice/proc/on_hear(datum/source, list/hearing_args) - if(!sentence) + var/datum/nanite_extra_setting/sentence = extra_settings[NES_SENTENCE] + var/datum/nanite_extra_setting/inclusive = extra_settings[NES_INCLUSIVE_MODE] + if(!sentence.get_value()) return - if(inclusive) + if(inclusive.get_value()) if(findtextEx(hearing_args[HEARING_RAW_MESSAGE], sentence)) send_code() else if(hearing_args[HEARING_RAW_MESSAGE] == sentence) - send_code() \ No newline at end of file + send_code() diff --git a/code/modules/research/nanites/nanite_programs/suppression.dm b/code/modules/research/nanites/nanite_programs/suppression.dm index e4b250ad61..56fd7fa044 100644 --- a/code/modules/research/nanites/nanite_programs/suppression.dm +++ b/code/modules/research/nanites/nanite_programs/suppression.dm @@ -1,15 +1,14 @@ //Programs that are generally useful for population control and non-harmful suppression. -/datum/nanite_program/triggered/sleepy +/datum/nanite_program/sleepy name = "Sleep Induction" desc = "The nanites cause rapid narcolepsy when triggered." + can_trigger = TRUE trigger_cost = 15 trigger_cooldown = 1200 rogue_types = list(/datum/nanite_program/brain_misfire, /datum/nanite_program/brain_decay) -/datum/nanite_program/triggered/sleepy/trigger() - if(!..()) - return +/datum/nanite_program/sleepy/on_trigger(comm_message) to_chat(host_mob, "You start to feel very sleepy...") host_mob.drowsyness += 20 addtimer(CALLBACK(host_mob, /mob/living.proc/Sleeping, 200), rand(60,200)) @@ -31,30 +30,28 @@ . = ..() to_chat(host_mob, "Your muscles relax, and you can move again.") -/datum/nanite_program/triggered/shocking +/datum/nanite_program/shocking name = "Electric Shock" desc = "The nanites shock the host when triggered. Destroys a large amount of nanites!" + can_trigger = TRUE trigger_cost = 10 trigger_cooldown = 300 program_flags = NANITE_SHOCK_IMMUNE rogue_types = list(/datum/nanite_program/toxic) -/datum/nanite_program/triggered/shocking/trigger() - if(!..()) - return +/datum/nanite_program/shocking/on_trigger(comm_message) host_mob.electrocute_act(rand(5,10), "shock nanites", TRUE, TRUE) -/datum/nanite_program/triggered/stun +/datum/nanite_program/stun name = "Neural Shock" desc = "The nanites pulse the host's nerves when triggered, inapacitating them for a short period." + can_trigger = TRUE trigger_cost = 4 trigger_cooldown = 300 - rogue_types = list(/datum/nanite_program/triggered/shocking, /datum/nanite_program/nerve_decay) + rogue_types = list(/datum/nanite_program/shocking, /datum/nanite_program/nerve_decay) -/datum/nanite_program/triggered/stun/trigger() - if(!..()) - return - playsound(host_mob, "sparks", 75, 1, -1) +/datum/nanite_program/stun/on_trigger(comm_message) + playsound(host_mob, "sparks", 75, TRUE, -1) host_mob.Knockdown(80) /datum/nanite_program/pacifying @@ -115,64 +112,50 @@ host_mob.cure_fakedeath("nanites") //Can receive transmissions from a nanite communication remote for customized messages -/datum/nanite_program/triggered/comm +/datum/nanite_program/comm + can_trigger = TRUE var/comm_code = 0 var/comm_message = "" -/datum/nanite_program/triggered/comm/proc/receive_comm_signal(signal_comm_code, comm_message, comm_source) +/datum/nanite_program/comm/register_extra_settings() + extra_settings[NES_COMM_CODE] = new /datum/nanite_extra_setting/number(0, 0, 9999) + +/datum/nanite_program/comm/proc/receive_comm_signal(signal_comm_code, comm_message, comm_source) if(!activated || !comm_code) return if(signal_comm_code == comm_code) host_mob.investigate_log("'s [name] nanite program was messaged by [comm_source] with comm code [signal_comm_code] and message '[comm_message]'.", INVESTIGATE_NANITES) trigger(comm_message) -/datum/nanite_program/triggered/comm/speech +/datum/nanite_program/comm/speech name = "Forced Speech" desc = "The nanites force the host to say a pre-programmed sentence when triggered." unique = FALSE trigger_cost = 3 trigger_cooldown = 20 rogue_types = list(/datum/nanite_program/brain_misfire, /datum/nanite_program/brain_decay) + var/static/list/blacklist = list( + "*surrender", + "*collapse" + ) - extra_settings = list("Sentence","Comm Code") - var/sentence = "" +/datum/nanite_program/comm/speech/register_extra_settings() + . = ..() + extra_settings[NES_SENTENCE] = new /datum/nanite_extra_setting/text("") -/datum/nanite_program/triggered/comm/speech/set_extra_setting(user, setting) - if(setting == "Sentence") - var/new_sentence = stripped_input(user, "Choose the sentence that the host will be forced to say.", "Sentence", sentence, MAX_MESSAGE_LEN) - if(!new_sentence) - return - if(new_sentence[1] == "*") //emotes are abusable, like surrender - return - sentence = new_sentence - if(setting == "Comm Code") - var/new_code = input(user, "Set the communication code (1-9999) or set to 0 to disable external signals.", name, null) as null|num - if(isnull(new_code)) - return - comm_code = CLAMP(round(new_code, 1), 0, 9999) - -/datum/nanite_program/triggered/comm/speech/get_extra_setting(setting) - if(setting == "Sentence") - return sentence - if(setting == "Comm Code") - return comm_code - -/datum/nanite_program/triggered/comm/speech/copy_extra_settings_to(datum/nanite_program/triggered/comm/speech/target) - target.sentence = sentence - target.comm_code = comm_code - -/datum/nanite_program/triggered/comm/speech/trigger(comm_message) - if(!..()) - return +/datum/nanite_program/comm/speech/on_trigger(comm_message) var/sent_message = comm_message if(!comm_message) - sent_message = sentence + var/datum/nanite_extra_setting/sentence = extra_settings[NES_SENTENCE] + sent_message = sentence.get_value() + if(sent_message in blacklist) + return if(host_mob.stat == DEAD) return to_chat(host_mob, "You feel compelled to speak...") host_mob.say(sent_message, forced = "nanite speech") -/datum/nanite_program/triggered/comm/voice +/datum/nanite_program/comm/voice name = "Skull Echo" desc = "The nanites echo a synthesized message inside the host's skull." unique = FALSE @@ -180,56 +163,50 @@ trigger_cooldown = 20 rogue_types = list(/datum/nanite_program/brain_misfire, /datum/nanite_program/brain_decay) - extra_settings = list("Message","Comm Code") - var/message = "" +/datum/nanite_program/comm/voice/register_extra_settings() + . = ..() + extra_settings[NES_MESSAGE] = new /datum/nanite_extra_setting/text("") -/datum/nanite_program/triggered/comm/voice/set_extra_setting(user, setting) - if(setting == "Message") - var/new_message = stripped_input(user, "Choose the message sent to the host.", "Message", message, MAX_MESSAGE_LEN) - if(!new_message) - return - message = new_message - if(setting == "Comm Code") - var/new_code = input(user, "Set the communication code (1-9999) or set to 0 to disable external signals.", name, null) as null|num - if(isnull(new_code)) - return - comm_code = CLAMP(round(new_code, 1), 0, 9999) - -/datum/nanite_program/triggered/comm/voice/get_extra_setting(setting) - if(setting == "Message") - return message - if(setting == "Comm Code") - return comm_code - -/datum/nanite_program/triggered/comm/voice/copy_extra_settings_to(datum/nanite_program/triggered/comm/voice/target) - target.message = message - target.comm_code = comm_code - -/datum/nanite_program/triggered/comm/voice/trigger(comm_message) - if(!..()) - return +/datum/nanite_program/comm/voice/on_trigger(comm_message) var/sent_message = comm_message if(!comm_message) - sent_message = message + var/datum/nanite_extra_setting/message_setting = extra_settings[NES_MESSAGE] + sent_message = message_setting.get_value() if(host_mob.stat == DEAD) return to_chat(host_mob, "You hear a strange, robotic voice in your head... \"[sent_message]\"") -/datum/nanite_program/triggered/comm/hallucination +/datum/nanite_program/comm/hallucination name = "Hallucination" desc = "The nanites make the host hallucinate something when triggered." trigger_cost = 4 trigger_cooldown = 80 unique = FALSE rogue_types = list(/datum/nanite_program/brain_misfire) - extra_settings = list("Hallucination Type", "Comm Code") - var/hal_type - var/hal_details -/datum/nanite_program/triggered/comm/hallucination/trigger(comm_message) - if(!..()) - return +/datum/nanite_program/comm/hallucination/register_extra_settings() + . = ..() + var/list/options = list( + "Message", + "Battle", + "Sound", + "Weird Sound", + "Station Message", + "Health", + "Alert", + "Fire", + "Shock", + "Plasma Flood", + "Random" + ) + extra_settings[NES_HALLUCINATION_TYPE] = new /datum/nanite_extra_setting/type("Message", options) + extra_settings[NES_HALLUCINATION_DETAIL] = new /datum/nanite_extra_setting/text("") +/datum/nanite_program/comm/hallucination/on_trigger(comm_message) + var/datum/nanite_extra_setting/hal_setting = extra_settings[NES_HALLUCINATION_TYPE] + var/hal_type = hal_setting.get_value() + var/datum/nanite_extra_setting/hal_detail_setting = extra_settings[NES_HALLUCINATION_DETAIL] + var/hal_details = hal_detail_setting.get_value() if(comm_message && (hal_type != "Message")) //Triggered via comm remote, but not set to a message hallucination return var/sent_message = comm_message //Comm remotes can send custom hallucination messages for the chat hallucination @@ -239,7 +216,9 @@ if(!iscarbon(host_mob)) return var/mob/living/carbon/C = host_mob - if(!hal_type) + if(hal_details == "random") + hal_details = null + if(hal_type == "Random") C.hallucination += 15 else switch(hal_type) @@ -254,6 +233,13 @@ if("Station Message") new /datum/hallucination/stationmessage(C, TRUE, hal_details) if("Health") + switch(hal_details) + if("critical") + hal_details = SCREWYHUD_CRIT + if("dead") + hal_details = SCREWYHUD_DEAD + if("healthy") + hal_details = SCREWYHUD_HEALTHY new /datum/hallucination/hudscrew(C, TRUE, hal_details) if("Alert") new /datum/hallucination/fake_alert(C, TRUE, hal_details) @@ -264,127 +250,40 @@ if("Plasma Flood") new /datum/hallucination/fake_flood(C, TRUE) -/datum/nanite_program/triggered/comm/hallucination/set_extra_setting(user, setting) - if(setting == "Comm Code") - var/new_code = input(user, "(Only for Message) Set the communication code (1-9999) or set to 0 to disable external signals.", name, null) as null|num - if(isnull(new_code)) - return - comm_code = CLAMP(round(new_code, 1), 0, 9999) - - if(setting == "Hallucination Type") - var/list/possible_hallucinations = list("Random","Message","Battle","Sound","Weird Sound","Station Message","Health","Alert","Fire","Shock","Plasma Flood") - var/hal_type_choice = input("Choose the hallucination type", name) as null|anything in possible_hallucinations - if(!hal_type_choice) - return - switch(hal_type_choice) - if("Random") - hal_type = null - hal_details = null +/datum/nanite_program/comm/hallucination/set_extra_setting(setting, value) + . = ..() + if(setting == NES_HALLUCINATION_TYPE) + switch(value) if("Message") - hal_type = "Message" - var/hal_chat = stripped_input(user, "Choose the message the host will hear, or leave empty for random messages.", "Message", hal_details, MAX_MESSAGE_LEN) - if(hal_chat) - hal_details = hal_chat + extra_settings[NES_HALLUCINATION_DETAIL] = new /datum/nanite_extra_setting/text("") if("Battle") - hal_type = "Battle" - var/sound_list = list("random","laser","disabler","esword","gun","stunprod","harmbaton","bomb") - var/hal_choice = input("Choose the hallucination battle type", name) as null|anything in sound_list - if(!hal_choice || hal_choice == "random") - hal_details = null - else - hal_details = hal_choice + extra_settings[NES_HALLUCINATION_DETAIL] = new /datum/nanite_extra_setting/type("random", list("random","laser","disabler","esword","gun","stunprod","harmbaton","bomb")) if("Sound") - hal_type = "Sound" - var/sound_list = list("random","airlock","airlock pry","console","explosion","far explosion","mech","glass","alarm","beepsky","mech","wall decon","door hack") - var/hal_choice = input("Choose the hallucination sound", name) as null|anything in sound_list - if(!hal_choice || hal_choice == "random") - hal_details = null - else - hal_details = hal_choice + extra_settings[NES_HALLUCINATION_DETAIL] = new /datum/nanite_extra_setting/type("random", list("random","airlock","airlock pry","console","explosion","far explosion","mech","glass","alarm","beepsky","mech","wall decon","door hack")) if("Weird Sound") - hal_type = "Weird Sound" - var/sound_list = list("random","phone","hallelujah","highlander","laughter","hyperspace","game over","creepy","tesla") - var/hal_choice = input("Choose the hallucination sound", name) as null|anything in sound_list - if(!hal_choice || hal_choice == "random") - hal_details = null - else - hal_details = hal_choice + extra_settings[NES_HALLUCINATION_DETAIL] = new /datum/nanite_extra_setting/type("random", list("random","phone","hallelujah","highlander","laughter","hyperspace","game over","creepy","tesla")) if("Station Message") - hal_type = "Station Message" - var/msg_list = list("random","ratvar","shuttle dock","blob alert","malf ai","meteors","supermatter") - var/hal_choice = input("Choose the hallucination station message", name) as null|anything in msg_list - if(!hal_choice || hal_choice == "random") - hal_details = null - else - hal_details = hal_choice + extra_settings[NES_HALLUCINATION_DETAIL] = new /datum/nanite_extra_setting/type("random", list("random","ratvar","shuttle dock","blob alert","malf ai","meteors","supermatter")) if("Health") - hal_type = "Health" - var/health_list = list("random","critical","dead","healthy") - var/hal_choice = input("Choose the health status", name) as null|anything in health_list - if(!hal_choice || hal_choice == "random") - hal_details = null - else - switch(hal_choice) - if("critical") - hal_details = SCREWYHUD_CRIT - if("dead") - hal_details = SCREWYHUD_DEAD - if("healthy") - hal_details = SCREWYHUD_HEALTHY + extra_settings[NES_HALLUCINATION_DETAIL] = new /datum/nanite_extra_setting/type("random", list("random","critical","dead","healthy")) if("Alert") - hal_type = "Alert" - var/alert_list = list("random","not_enough_oxy","not_enough_tox","not_enough_co2","too_much_oxy","too_much_co2","too_much_tox","newlaw","nutrition","charge","gravity","fire","locked","hacked","temphot","tempcold","pressure") - var/hal_choice = input("Choose the alert", name) as null|anything in alert_list - if(!hal_choice || hal_choice == "random") - hal_details = null - else - hal_details = hal_choice - if("Fire") - hal_type = "Fire" - if("Shock") - hal_type = "Shock" - if("Plasma Flood") - hal_type = "Plasma Flood" - -/datum/nanite_program/triggered/comm/hallucination/get_extra_setting(setting) - if(setting == "Hallucination Type") - if(!hal_type) - return "Random" - else - return hal_type - if(setting == "Comm Code") - return comm_code - -/datum/nanite_program/triggered/comm/hallucination/copy_extra_settings_to(datum/nanite_program/triggered/comm/hallucination/target) - target.hal_type = hal_type - target.hal_details = hal_details - target.comm_code = comm_code + extra_settings[NES_HALLUCINATION_DETAIL] = new /datum/nanite_extra_setting/type("random", list("random","not_enough_oxy","not_enough_tox","not_enough_co2","too_much_oxy","too_much_co2","too_much_tox","newlaw","nutrition","charge","gravity","fire","locked","hacked","temphot","tempcold","pressure")) + else + extra_settings.Remove(NES_HALLUCINATION_DETAIL) /datum/nanite_program/good_mood name = "Happiness Enhancer" desc = "The nanites synthesize serotonin inside the host's brain, creating an artificial sense of happiness." use_rate = 0.1 rogue_types = list(/datum/nanite_program/brain_decay) - extra_settings = list("Mood Message") - var/message = "HAPPINESS ENHANCEMENT" -/datum/nanite_program/good_mood/set_extra_setting(user, setting) - if(setting == "Mood Message") - var/new_message = stripped_input(user, "Choose the message visible on the mood effect.", "Message", message, MAX_NAME_LEN) - if(!new_message) - return - message = new_message - -/datum/nanite_program/good_mood/get_extra_setting(setting) - if(setting == "Mood Message") - return message - -/datum/nanite_program/good_mood/copy_extra_settings_to(datum/nanite_program/good_mood/target) - target.message = message +/datum/nanite_program/good_mood/register_extra_settings() + . = ..() + extra_settings[NES_MOOD_MESSAGE] = new /datum/nanite_extra_setting/text("HAPPINESS ENHANCEMENT") /datum/nanite_program/good_mood/enable_passive_effect() . = ..() - SEND_SIGNAL(host_mob, COMSIG_ADD_MOOD_EVENT, "nanite_happy", /datum/mood_event/nanite_happiness, message) + SEND_SIGNAL(host_mob, COMSIG_ADD_MOOD_EVENT, "nanite_happy", /datum/mood_event/nanite_happiness, get_extra_setting_value(NES_MOOD_MESSAGE)) /datum/nanite_program/good_mood/disable_passive_effect() . = ..() @@ -395,26 +294,14 @@ desc = "The nanites suppress the production of serotonin inside the host's brain, creating an artificial state of depression." use_rate = 0.1 rogue_types = list(/datum/nanite_program/brain_decay) - extra_settings = list("Mood Message") - var/message = "HAPPINESS SUPPRESSION" -/datum/nanite_program/bad_mood/set_extra_setting(user, setting) - if(setting == "Mood Message") - var/new_message = stripped_input(user, "Choose the message visible on the mood effect.", "Message", message, MAX_NAME_LEN) - if(!new_message) - return - message = new_message - -/datum/nanite_program/bad_mood/get_extra_setting(setting) - if(setting == "Mood Message") - return message - -/datum/nanite_program/bad_mood/copy_extra_settings_to(datum/nanite_program/bad_mood/target) - target.message = message +/datum/nanite_program/bad_mood/register_extra_settings() + . = ..() + extra_settings[NES_MOOD_MESSAGE] = new /datum/nanite_extra_setting/text("HAPPINESS SUPPRESSION") /datum/nanite_program/bad_mood/enable_passive_effect() . = ..() - SEND_SIGNAL(host_mob, COMSIG_ADD_MOOD_EVENT, "nanite_sadness", /datum/mood_event/nanite_sadness, message) + SEND_SIGNAL(host_mob, COMSIG_ADD_MOOD_EVENT, "nanite_sadness", /datum/mood_event/nanite_sadness, get_extra_setting_value(NES_MOOD_MESSAGE)) /datum/nanite_program/bad_mood/disable_passive_effect() . = ..() diff --git a/code/modules/research/nanites/nanite_programs/utility.dm b/code/modules/research/nanites/nanite_programs/utility.dm index deafbcd02c..6352f50b8b 100644 --- a/code/modules/research/nanites/nanite_programs/utility.dm +++ b/code/modules/research/nanites/nanite_programs/utility.dm @@ -1,82 +1,29 @@ //Programs that interact with other programs or nanites directly, or have other special purposes. /datum/nanite_program/viral name = "Viral Replica" - desc = "The nanites constantly send encrypted signals attempting to forcefully copy their own programming into other nanite clusters." + desc = "The nanites constantly send encrypted signals attempting to forcefully copy their own programming into other nanite clusters, also overriding or disabling their cloud sync." use_rate = 0.5 rogue_types = list(/datum/nanite_program/toxic) - extra_settings = list("Program Overwrite","Cloud Overwrite") - var/pulse_cooldown = 0 - var/sync_programs = TRUE - var/sync_overwrite = FALSE - var/overwrite_cloud = FALSE - var/set_cloud = 0 -/datum/nanite_program/viral/set_extra_setting(user, setting) - if(setting == "Program Overwrite") - var/overwrite_type = input("Choose what to do with the target's programs", name) as null|anything in list("Overwrite","Add To","Ignore") - if(!overwrite_type) - return - switch(overwrite_type) - if("Ignore") //Do not affect programs (if you only want to set the cloud ID) - sync_programs = FALSE - sync_overwrite = FALSE - if("Add To") //Add to existing programs (so the target does not notice theirs are missing) - sync_programs = TRUE - sync_overwrite = FALSE - if("Overwrite") //Replace target's programs with the source - sync_programs = TRUE - sync_overwrite = TRUE - if(setting == "Cloud Overwrite") - var/overwrite_type = input("Choose what to do with the target's Cloud ID", name) as null|anything in list("Overwrite","Disable","Keep") - if(!overwrite_type) - return - switch(overwrite_type) - if("Keep") //Don't change the cloud ID - overwrite_cloud = FALSE - set_cloud = 0 - if("Disable") //Set the cloud ID to disabled - overwrite_cloud = TRUE - set_cloud = 0 - if("Overwrite") //Set the cloud ID to what we choose - var/new_cloud = input(user, "Choose the Cloud ID to set on infected nanites (1-100)", name, null) as null|num - if(isnull(new_cloud)) - return - overwrite_cloud = TRUE - set_cloud = CLAMP(round(new_cloud, 1), 1, 100) - -/datum/nanite_program/viral/get_extra_setting(setting) - if(setting == "Program Overwrite") - if(!sync_programs) - return "Ignore" - else if(sync_overwrite) - return "Overwrite" - else - return "Add To" - if(setting == "Cloud Overwrite") - if(!overwrite_cloud) - return "None" - else if(set_cloud == 0) - return "Disable" - else - return set_cloud - -/datum/nanite_program/viral/copy_extra_settings_to(datum/nanite_program/viral/target) - target.overwrite_cloud = overwrite_cloud - target.set_cloud = set_cloud - target.sync_programs = sync_programs - target.sync_overwrite = sync_overwrite +/datum/nanite_program/viral/register_extra_settings() + extra_settings[NES_PROGRAM_OVERWRITE] = new /datum/nanite_extra_setting/type("Add To", list("Overwrite", "Add To", "Ignore")) + extra_settings[NES_CLOUD_OVERWRITE] = new /datum/nanite_extra_setting/number(0, 0, 100) /datum/nanite_program/viral/active_effect() if(world.time < pulse_cooldown) return + var/datum/nanite_extra_setting/program = extra_settings[NES_PROGRAM_OVERWRITE] + var/datum/nanite_extra_setting/cloud = extra_settings[NES_CLOUD_OVERWRITE] for(var/mob/M in orange(host_mob, 5)) if(SEND_SIGNAL(M, COMSIG_NANITE_IS_STEALTHY)) continue - if(sync_programs) - SEND_SIGNAL(M, COMSIG_NANITE_SYNC, nanites, sync_overwrite) - if(overwrite_cloud) - SEND_SIGNAL(M, COMSIG_NANITE_SET_CLOUD, set_cloud) + switch(program.get_value()) + if("Overwrite") + SEND_SIGNAL(M, COMSIG_NANITE_SYNC, nanites, TRUE) + if("Add To") + SEND_SIGNAL(M, COMSIG_NANITE_SYNC, nanites, FALSE) + SEND_SIGNAL(M, COMSIG_NANITE_SET_CLOUD, cloud.get_value()) pulse_cooldown = world.time + 75 /datum/nanite_program/monitoring @@ -94,38 +41,23 @@ SSnanites.nanite_monitored_mobs -= host_mob host_mob.hud_set_nanite_indicator() -/datum/nanite_program/triggered/self_scan +/datum/nanite_program/self_scan name = "Host Scan" desc = "The nanites display a detailed readout of a body scan to the host." unique = FALSE + can_trigger = TRUE trigger_cost = 3 trigger_cooldown = 50 rogue_types = list(/datum/nanite_program/toxic) - extra_settings = list("Scan Type") - var/scan_type = "Medical" +/datum/nanite_program/self_scan/register_extra_settings() + extra_settings[NES_SCAN_TYPE] = new /datum/nanite_extra_setting/type("Medical", list("Medical", "Chemical", "Nanite")) -/datum/nanite_program/triggered/self_scan/set_extra_setting(user, setting) - if(setting == "Scan Type") - var/list/scan_types = list("Medical","Chemical","Nanite") - var/new_scan_type = input("Choose the scan type", name) as null|anything in scan_types - if(!new_scan_type) - return - scan_type = new_scan_type - -/datum/nanite_program/triggered/self_scan/get_extra_setting(setting) - if(setting == "Scan Type") - return scan_type - -/datum/nanite_program/triggered/self_scan/copy_extra_settings_to(datum/nanite_program/triggered/self_scan/target) - target.scan_type = scan_type - -/datum/nanite_program/triggered/self_scan/trigger() - if(!..()) - return +/datum/nanite_program/self_scan/on_trigger(comm_message) if(host_mob.stat == DEAD) return - switch(scan_type) + var/datum/nanite_extra_setting/NS = extra_settings[NES_SCAN_TYPE] + switch(NS.get_value()) if("Medical") healthscan(host_mob, host_mob) if("Chemical") @@ -162,28 +94,13 @@ . = ..() nanites.diagnostics = TRUE - /datum/nanite_program/relay name = "Relay" desc = "The nanites receive and relay long-range nanite signals." rogue_types = list(/datum/nanite_program/toxic) - extra_settings = list("Relay Channel") - var/relay_channel = 1 - -/datum/nanite_program/relay/set_extra_setting(user, setting) - if(setting == "Relay Channel") - var/new_channel = input(user, "Set the relay channel (1-9999):", name, null) as null|num - if(isnull(new_channel)) - return - relay_channel = CLAMP(round(new_channel, 1), 1, 9999) - -/datum/nanite_program/relay/get_extra_setting(setting) - if(setting == "Relay Channel") - return relay_channel - -/datum/nanite_program/relay/copy_extra_settings_to(datum/nanite_program/relay/target) - target.relay_channel = relay_channel +/datum/nanite_program/relay/register_extra_settings() + extra_settings[NES_RELAY_CHANNEL] = new /datum/nanite_extra_setting/number(1, 1, 9999) /datum/nanite_program/relay/enable_passive_effect() . = ..() @@ -198,7 +115,8 @@ return if(!host_mob) return - if(relay_code != relay_channel) + var/datum/nanite_extra_setting/NS = extra_settings[NES_RELAY_CHANNEL] + if(relay_code != NS.get_value()) return SEND_SIGNAL(host_mob, COMSIG_NANITE_SIGNAL, code, source) @@ -207,7 +125,8 @@ return if(!host_mob) return - if(relay_code != relay_channel) + var/datum/nanite_extra_setting/NS = extra_settings[NES_RELAY_CHANNEL] + if(relay_code != NS.get_value()) return SEND_SIGNAL(host_mob, COMSIG_NANITE_COMM_SIGNAL, comm_code, comm_message) @@ -228,14 +147,64 @@ host_mob.nutrition -= 0.5 nanites.adjust_nanites(src, 0.5) -/datum/nanite_program/triggered/access +/datum/nanite_program/research + name = "Distributed Computing" + desc = "The nanites aid the research servers by performing a portion of its calculations, increasing research point generation." + use_rate = 0.2 + rogue_types = list(/datum/nanite_program/toxic) + +/datum/nanite_program/research/active_effect() + if(!iscarbon(host_mob)) + return + var/points = 1 + if(!host_mob.client) //less brainpower + points *= 0.25 + SSresearch.science_tech.add_point_list(list(TECHWEB_POINT_TYPE_GENERIC = points)) + +/datum/nanite_program/researchplus + name = "Neural Network" + desc = "The nanites link the host's brains together forming a neural research network, that becomes more efficient with the amount of total hosts." + use_rate = 0.3 + rogue_types = list(/datum/nanite_program/brain_decay) + +/datum/nanite_program/researchplus/enable_passive_effect() + . = ..() + if(!iscarbon(host_mob)) + return + if(host_mob.client) + SSnanites.neural_network_count++ + else + SSnanites.neural_network_count += 0.25 + +/datum/nanite_program/researchplus/disable_passive_effect() + . = ..() + if(!iscarbon(host_mob)) + return + if(host_mob.client) + SSnanites.neural_network_count-- + else + SSnanites.neural_network_count -= 0.25 + +/datum/nanite_program/researchplus/active_effect() + if(!iscarbon(host_mob)) + return + var/mob/living/carbon/C = host_mob + var/points = round(SSnanites.neural_network_count / 12, 0.1) + if(!C.client) //less brainpower + points *= 0.25 + SSresearch.science_tech.add_point_list(list(TECHWEB_POINT_TYPE_GENERIC = points)) + +/datum/nanite_program/access name = "Subdermal ID" desc = "The nanites store the host's ID access rights in a subdermal magnetic strip. Updates when triggered, copying the host's current access." + can_trigger = TRUE + trigger_cost = 3 + trigger_cooldown = 30 rogue_types = list(/datum/nanite_program/skin_decay) var/access = list() //Syncs the nanites with the cumulative current mob's access level. Can potentially wipe existing access. -/datum/nanite_program/triggered/access/trigger() +/datum/nanite_program/access/on_trigger(comm_message) var/list/new_access = list() var/obj/item/current_item current_item = host_mob.get_active_held_item() @@ -284,19 +253,42 @@ SEND_SIGNAL(infectee, COMSIG_NANITE_SYNC, nanites) infectee.investigate_log("was infected by spreading nanites by [key_name(host_mob)] at [AREACOORD(infectee)].", INVESTIGATE_NANITES) +/datum/nanite_program/nanite_sting + name = "Nanite Sting" + desc = "When triggered, projects a nearly invisible spike of nanites that attempts to infect a nearby non-host with a copy of the host's nanites cluster." + can_trigger = TRUE + trigger_cost = 5 + trigger_cooldown = 100 + rogue_types = list(/datum/nanite_program/glitch, /datum/nanite_program/toxic) + +/datum/nanite_program/nanite_sting/on_trigger(comm_message) + var/list/mob/living/target_hosts = list() + for(var/mob/living/L in oview(1, host_mob)) + if(!(L.mob_biotypes & (MOB_ORGANIC|MOB_UNDEAD)) || SEND_SIGNAL(L, COMSIG_HAS_NANITES) || !L.Adjacent(host_mob)) + continue + target_hosts += L + if(!target_hosts.len) + consume_nanites(-5) + return + var/mob/living/infectee = pick(target_hosts) + if(prob(100 - (infectee.get_permeability_protection() * 100))) + //unlike with Infective Exo-Locomotion, this can't take over existing nanites, because Nanite Sting only targets non-hosts. + infectee.AddComponent(/datum/component/nanites, 5) + SEND_SIGNAL(infectee, COMSIG_NANITE_SYNC, nanites) + infectee.investigate_log("was infected by a nanite cluster by [key_name(host_mob)] at [AREACOORD(infectee)].", INVESTIGATE_NANITES) + to_chat(infectee, "You feel a tiny prick.") + /datum/nanite_program/mitosis name = "Mitosis" - desc = "The nanites gain the ability to self-replicate, using bluespace to power the process, instead of drawing from a template. This rapidly speeds up the replication rate,\ - but it causes occasional software errors due to faulty copies. Not compatible with cloud sync." + desc = "The nanites gain the ability to self-replicate, using bluespace to power the process. Becomes more effective the more nanites are already in the host.\ + The replication has also a chance to corrupt the nanite programming due to copy faults - cloud sync is highly recommended." use_rate = 0 rogue_types = list(/datum/nanite_program/toxic) /datum/nanite_program/mitosis/active_effect() - if(nanites.cloud_id) - return var/rep_rate = round(nanites.nanite_volume / 50, 1) //0.5 per 50 nanite volume rep_rate *= 0.5 - nanites.adjust_nanites(rep_rate) + nanites.adjust_nanites(null, rep_rate) if(prob(rep_rate)) var/datum/nanite_program/fault = pick(nanites.programs) if(fault == src) @@ -306,56 +298,22 @@ /datum/nanite_program/dermal_button name = "Dermal Button" desc = "Displays a button on the host's skin, which can be used to send a signal to the nanites." - extra_settings = list("Sent Code","Button Name","Icon","Color") unique = FALSE var/datum/action/innate/nanite_button/button - var/button_name = "Button" - var/icon = "power" - var/color = "green" - var/sent_code = 0 -/datum/nanite_program/dermal_button/set_extra_setting(user, setting) - if(setting == "Sent Code") - var/new_code = input(user, "Set the sent code (1-9999):", name, null) as null|num - if(isnull(new_code)) - return - sent_code = CLAMP(round(new_code, 1), 1, 9999) - if(setting == "Button Name") - var/new_button_name = stripped_input(user, "Choose the name for the button.", "Button Name", button_name, MAX_NAME_LEN) - if(!new_button_name) - return - button_name = new_button_name - if(setting == "Icon") - var/new_icon = input("Select the icon to display on the button:", name) as null|anything in list("one","two","three","four","five","plus","minus","power") - if(!new_icon) - return - icon = new_icon - if(setting == "Color") - var/new_color = input("Select the color of the button's icon:", name) as null|anything in list("green","red","yellow","blue") - if(!new_color) - return - color = new_color - -/datum/nanite_program/dermal_button/get_extra_setting(setting) - if(setting == "Sent Code") - return sent_code - if(setting == "Button Name") - return button_name - if(setting == "Icon") - return capitalize(icon) - if(setting == "Color") - return capitalize(color) - -/datum/nanite_program/dermal_button/copy_extra_settings_to(datum/nanite_program/dermal_button/target) - target.sent_code = sent_code - target.button_name = button_name - target.icon = icon - target.color = color +/datum/nanite_program/dermal_button/register_extra_settings() + extra_settings[NES_SENT_CODE] = new /datum/nanite_extra_setting/number(1, 1, 9999) + extra_settings[NES_BUTTON_NAME] = new /datum/nanite_extra_setting/text("Button") + extra_settings[NES_ICON] = new /datum/nanite_extra_setting/type("power", list("one","two","three","four","five","plus","minus","power")) + extra_settings[NES_COLOR] = new /datum/nanite_extra_setting/type("green", list("green","red","yellow","blue")) /datum/nanite_program/dermal_button/enable_passive_effect() . = ..() + var/datum/nanite_extra_setting/bn_name = extra_settings[NES_BUTTON_NAME] + var/datum/nanite_extra_setting/bn_icon = extra_settings[NES_ICON] + var/datum/nanite_extra_setting/bn_color = extra_settings[NES_COLOR] if(!button) - button = new(src, button_name, icon, color) + button = new(src, bn_name.get_value(), bn_icon.get_value(), bn_color.get_value()) button.target = host_mob button.Grant(host_mob) @@ -372,7 +330,8 @@ if(activated) host_mob.visible_message("[host_mob] presses a button on [host_mob.p_their()] forearm.", "You press the nanite button on your forearm.", null, 2) - SEND_SIGNAL(host_mob, COMSIG_NANITE_SIGNAL, sent_code, "a [name] program") + var/datum/nanite_extra_setting/sent_code = extra_settings[NES_SENT_CODE] + SEND_SIGNAL(host_mob, COMSIG_NANITE_SIGNAL, sent_code.get_value(), "a [name] program") /datum/action/innate/nanite_button name = "Button" @@ -389,51 +348,3 @@ /datum/action/innate/nanite_button/Activate() program.press() - -/datum/nanite_program/research - name = "Distributed Computing" - desc = "The nanites aid the research servers by performing a portion of its calculations, increasing research point generation." - use_rate = 0.2 - rogue_types = list(/datum/nanite_program/toxic) - -/datum/nanite_program/research/active_effect() - if(!iscarbon(host_mob)) - return - var/points = 1 - if(!host_mob.client) //less brainpower - points *= 0.25 - SSresearch.science_tech.add_point_list(list(TECHWEB_POINT_TYPE_GENERIC = points)) - -/datum/nanite_program/researchplus - name = "Neural Network" - desc = "The nanites link the host's brains together forming a neural research network, that becomes more efficient with the amount of total hosts." - use_rate = 0.3 - rogue_types = list(/datum/nanite_program/brain_decay) - -/datum/nanite_program/researchplus/enable_passive_effect() - . = ..() - if(!iscarbon(host_mob)) - return - if(host_mob.client) - SSnanites.neural_network_count++ - else - SSnanites.neural_network_count += 0.25 - -/datum/nanite_program/researchplus/disable_passive_effect() - . = ..() - if(!iscarbon(host_mob)) - return - if(host_mob.client) - SSnanites.neural_network_count-- - else - SSnanites.neural_network_count -= 0.25 - -/datum/nanite_program/researchplus/active_effect() - if(!iscarbon(host_mob)) - return - var/mob/living/carbon/C = host_mob - var/points = round(SSnanites.neural_network_count / 12, 0.1) - if(!C.client) //less brainpower - points *= 0.25 - SSresearch.science_tech.add_point_list(list(TECHWEB_POINT_TYPE_GENERIC = points)) - diff --git a/code/modules/research/nanites/nanite_programs/weapon.dm b/code/modules/research/nanites/nanite_programs/weapon.dm index f634b2088c..bd2b9618de 100644 --- a/code/modules/research/nanites/nanite_programs/weapon.dm +++ b/code/modules/research/nanites/nanite_programs/weapon.dm @@ -73,21 +73,20 @@ . = ..() to_chat(host_mob, "Your blood cools down, and the pain gradually fades.") -/datum/nanite_program/triggered/explosive +/datum/nanite_program/explosive name = "Chain Detonation" desc = "Detonates all the nanites inside the host in a chain reaction when triggered." + can_trigger = TRUE trigger_cost = 25 //plus every idle nanite left afterwards trigger_cooldown = 100 //Just to avoid double-triggering rogue_types = list(/datum/nanite_program/toxic) -/datum/nanite_program/triggered/explosive/trigger() - if(!..()) - return +/datum/nanite_program/explosive/on_trigger(comm_message) host_mob.visible_message("[host_mob] starts emitting a high-pitched buzzing, and [host_mob.p_their()] skin begins to glow...",\ "You start emitting a high-pitched buzzing, and your skin begins to glow...") addtimer(CALLBACK(src, .proc/boom), CLAMP((nanites.nanite_volume * 0.35), 25, 150)) -/datum/nanite_program/triggered/explosive/proc/boom() +/datum/nanite_program/explosive/proc/boom() var/nanite_amount = nanites.nanite_volume var/heavy_range = FLOOR(nanite_amount/100, 1) - 1 var/light_range = FLOOR(nanite_amount/50, 1) - 1 @@ -96,16 +95,15 @@ //TODO make it defuse if triggered again -/datum/nanite_program/triggered/heart_stop +/datum/nanite_program/heart_stop name = "Heart-Stopper" desc = "Stops the host's heart when triggered; restarts it if triggered again." + can_trigger = TRUE trigger_cost = 12 trigger_cooldown = 10 rogue_types = list(/datum/nanite_program/nerve_decay) -/datum/nanite_program/triggered/heart_stop/trigger() - if(!..()) - return +/datum/nanite_program/heart_stop/on_trigger(comm_message) if(iscarbon(host_mob)) var/mob/living/carbon/C = host_mob var/obj/item/organ/heart/heart = C.getorganslot(ORGAN_SLOT_HEART) @@ -115,16 +113,16 @@ else heart.Restart() -/datum/nanite_program/triggered/emp +/datum/nanite_program/emp name = "Electromagnetic Resonance" - desc = "The nanites cause an elctromagnetic pulse around the host when triggered. Will corrupt other nanite programs!" + desc = "The nanites cause an electromagnetic pulse around the host when triggered. Will corrupt other nanite programs!" + can_trigger = TRUE trigger_cost = 10 + trigger_cooldown = 50 program_flags = NANITE_EMP_IMMUNE rogue_types = list(/datum/nanite_program/toxic) -/datum/nanite_program/triggered/emp/trigger() - if(!..()) - return +/datum/nanite_program/emp/on_trigger(comm_message) empulse(host_mob, 1, 2) /datum/nanite_program/pyro/active_effect() @@ -148,7 +146,7 @@ /datum/nanite_program/cryo name = "Cryogenic Treatment" - desc = "The nanites rapidly skin heat through the host's skin, lowering their temperature." + desc = "The nanites rapidly sink heat through the host's skin, lowering their temperature." use_rate = 1 rogue_types = list(/datum/nanite_program/skin_decay, /datum/nanite_program/pyro) @@ -160,55 +158,33 @@ /datum/nanite_program/cryo/active_effect() host_mob.adjust_bodytemperature(-rand(15,25), 50) -/datum/nanite_program/triggered/comm/mind_control +/datum/nanite_program/comm/mind_control name = "Mind Control" desc = "The nanites imprint an absolute directive onto the host's brain for one minute when triggered." trigger_cost = 30 trigger_cooldown = 1800 rogue_types = list(/datum/nanite_program/brain_decay, /datum/nanite_program/brain_misfire) - extra_settings = list("Directive","Comm Code") - var/directive = "..." +/datum/nanite_program/comm/mind_control/register_extra_settings() + . = ..() + extra_settings[NES_DIRECTIVE] = new /datum/nanite_extra_setting/text("...") -/datum/nanite_program/triggered/comm/mind_control/set_extra_setting(user, setting) - if(setting == "Directive") - var/new_directive = stripped_input(user, "Choose the directive to imprint with mind control.", "Directive", directive, MAX_MESSAGE_LEN) - if(!new_directive) - return - directive = new_directive - if(setting == "Comm Code") - var/new_code = input(user, "Set the communication code (1-9999) or set to 0 to disable external signals.", name, null) as null|num - if(isnull(new_code)) - return - comm_code = CLAMP(round(new_code, 1), 0, 9999) - -/datum/nanite_program/triggered/comm/mind_control/get_extra_setting(setting) - if(setting == "Directive") - return directive - if(setting == "Comm Code") - return comm_code - -/datum/nanite_program/triggered/comm/mind_control/copy_extra_settings_to(datum/nanite_program/triggered/comm/mind_control/target) - target.directive = directive - target.comm_code = comm_code - -/datum/nanite_program/triggered/comm/mind_control/trigger(comm_message) - if(!..()) - return +/datum/nanite_program/comm/mind_control/on_trigger(comm_message) if(host_mob.stat == DEAD) return var/sent_directive = comm_message if(!comm_message) - sent_directive = directive + var/datum/nanite_extra_setting/ES = extra_settings[NES_DIRECTIVE] + sent_directive = ES.get_value() brainwash(host_mob, sent_directive) - log_game("A mind control nanite program brainwashed [key_name(host_mob)] with the objective '[directive]'.") + log_game("A mind control nanite program brainwashed [key_name(host_mob)] with the objective '[sent_directive]'.") addtimer(CALLBACK(src, .proc/end_brainwashing), 600) -/datum/nanite_program/triggered/comm/mind_control/proc/end_brainwashing() +/datum/nanite_program/comm/mind_control/proc/end_brainwashing() if(host_mob.mind && host_mob.mind.has_antag_datum(/datum/antagonist/brainwashed)) host_mob.mind.remove_antag_datum(/datum/antagonist/brainwashed) log_game("[key_name(host_mob)] is no longer brainwashed by nanites.") - -/datum/nanite_program/triggered/comm/mind_control/disable_passive_effect() + +/datum/nanite_program/comm/mind_control/disable_passive_effect() . = ..() end_brainwashing() diff --git a/code/modules/research/nanites/nanite_remote.dm b/code/modules/research/nanites/nanite_remote.dm index e10d8f8c4b..71aecc8f2c 100644 --- a/code/modules/research/nanites/nanite_remote.dm +++ b/code/modules/research/nanites/nanite_remote.dm @@ -18,6 +18,7 @@ var/last_id = 0 var/code = 0 var/relay_code = 0 + var/current_program_name = "Program" /obj/item/nanite_remote/examine(mob/user) . = ..() @@ -35,10 +36,8 @@ update_icon() else to_chat(user, "Access denied.") - return TRUE /obj/item/nanite_remote/emag_act(mob/user) - . = ..() if(obj_flags & EMAGGED) return to_chat(user, "You override [src]'s ID lock.") @@ -46,33 +45,31 @@ if(locked) locked = FALSE update_icon() - return TRUE -/obj/item/nanite_remote/update_icon() +/obj/item/nanite_remote/update_overlays() . = ..() - cut_overlays() if(obj_flags & EMAGGED) - add_overlay("nanite_remote_emagged") + . += "nanite_remote_emagged" if(locked) - add_overlay("nanite_remote_locked") + . += "nanite_remote_locked" /obj/item/nanite_remote/afterattack(atom/target, mob/user, etc) switch(mode) if(REMOTE_MODE_OFF) return if(REMOTE_MODE_SELF) - to_chat(user, "You activate [src], signaling the nanites in your bloodstream.") + to_chat(user, "You activate [src], signaling the nanites in your bloodstream.") signal_mob(user, code, key_name(user)) if(REMOTE_MODE_TARGET) if(isliving(target) && (get_dist(target, get_turf(src)) <= 7)) - to_chat(user, "You activate [src], signaling the nanites inside [target].") + to_chat(user, "You activate [src], signaling the nanites inside [target].") signal_mob(target, code, key_name(user)) if(REMOTE_MODE_AOE) - to_chat(user, "You activate [src], signaling the nanites inside every host around you.") + to_chat(user, "You activate [src], signaling the nanites inside every host around you.") for(var/mob/living/L in view(user, 7)) signal_mob(L, code, key_name(user)) if(REMOTE_MODE_RELAY) - to_chat(user, "You activate [src], signaling all connected relay nanites.") + to_chat(user, "You activate [src], signaling all connected relay nanites.") signal_relay(code, relay_code, key_name(user)) /obj/item/nanite_remote/proc/signal_mob(mob/living/M, code, source) @@ -84,9 +81,9 @@ N.relay_signal(code, relay_code, source) /obj/item/nanite_remote/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.hands_state) - SStgui.try_update_ui(user, src, ui_key, ui, force_open) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) - ui = new(user, src, ui_key, "nanite_remote", name, 420, 800, master_ui, state) + ui = new(user, src, ui_key, "nanite_remote", name, 420, 500, master_ui, state) ui.open() /obj/item/nanite_remote/ui_data() @@ -96,6 +93,7 @@ data["mode"] = mode data["locked"] = locked data["saved_settings"] = saved_settings + data["program_name"] = current_program_name return data @@ -106,7 +104,7 @@ if("set_code") if(locked) return - var/new_code = input("Set code (0000-9999):", name, code) as null|num + var/new_code = text2num(params["code"]) if(!isnull(new_code)) new_code = CLAMP(round(new_code, 1),0,9999) code = new_code @@ -114,21 +112,21 @@ if("set_relay_code") if(locked) return - var/new_code = input("Set relay code (0000-9999):", name, code) as null|num + var/new_code = text2num(params["code"]) if(!isnull(new_code)) new_code = CLAMP(round(new_code, 1),0,9999) relay_code = new_code . = TRUE + if("update_name") + current_program_name = params["name"] + . = TRUE if("save") if(locked) return - var/code_name = stripped_input(usr, "Set the setting name", "Set Name", null , 15) - if(!code_name) - return var/new_save = list() new_save["id"] = last_id + 1 last_id++ - new_save["name"] = code_name + new_save["name"] = current_program_name new_save["code"] = code new_save["mode"] = mode new_save["relay_code"] = relay_code @@ -172,7 +170,6 @@ name = "nanite communication remote" desc = "A device that can send text messages to specific programs." icon_state = "nanite_comm_remote" - var/comm_code = 0 var/comm_message = "" /obj/item/nanite_remote/comm/afterattack(atom/target, mob/user, etc) @@ -180,42 +177,38 @@ if(REMOTE_MODE_OFF) return if(REMOTE_MODE_SELF) - to_chat(user, "You activate [src], signaling the nanites in your bloodstream.") - signal_mob(user, comm_code, comm_message) + to_chat(user, "You activate [src], signaling the nanites in your bloodstream.") + signal_mob(user, code, comm_message) if(REMOTE_MODE_TARGET) if(isliving(target) && (get_dist(target, get_turf(src)) <= 7)) - to_chat(user, "You activate [src], signaling the nanites inside [target].") + to_chat(user, "You activate [src], signaling the nanites inside [target].") signal_mob(target, code, comm_message, key_name(user)) if(REMOTE_MODE_AOE) - to_chat(user, "You activate [src], signaling the nanites inside every host around you.") + to_chat(user, "You activate [src], signaling the nanites inside every host around you.") for(var/mob/living/L in view(user, 7)) signal_mob(L, code, comm_message, key_name(user)) if(REMOTE_MODE_RELAY) - to_chat(user, "You activate [src], signaling all connected relay nanites.") + to_chat(user, "You activate [src], signaling all connected relay nanites.") signal_relay(code, relay_code, comm_message, key_name(user)) /obj/item/nanite_remote/comm/signal_mob(mob/living/M, code, source) - SEND_SIGNAL(M, COMSIG_NANITE_COMM_SIGNAL, comm_code, comm_message) + SEND_SIGNAL(M, COMSIG_NANITE_COMM_SIGNAL, code, comm_message) /obj/item/nanite_remote/comm/signal_relay(code, relay_code, source) for(var/X in SSnanites.nanite_relays) var/datum/nanite_program/relay/N = X - N.relay_comm_signal(comm_code, relay_code, comm_message) - -/obj/item/nanite_remote/comm/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.hands_state) - SStgui.try_update_ui(user, src, ui_key, ui, force_open) - if(!ui) - ui = new(user, src, ui_key, "nanite_comm_remote", name, 420, 800, master_ui, state) - ui.open() + N.relay_comm_signal(code, relay_code, comm_message) /obj/item/nanite_remote/comm/ui_data() var/list/data = list() - data["comm_code"] = comm_code + data["comms"] = TRUE + data["code"] = code data["relay_code"] = relay_code - data["comm_message"] = comm_message + data["message"] = comm_message data["mode"] = mode data["locked"] = locked data["saved_settings"] = saved_settings + data["program_name"] = current_program_name return data @@ -223,56 +216,17 @@ if(..()) return switch(action) - if("set_comm_code") - if(locked) - return - var/new_code = input("Set comm code (0000-9999):", name, code) as null|num - if(!isnull(new_code)) - new_code = CLAMP(round(new_code, 1),0,9999) - comm_code = new_code - . = TRUE if("set_message") if(locked) return - var/new_message = stripped_input(usr, "Set the message (Max 300 characters):", "Set Message", null , 300) + var/new_message = html_encode(params["value"]) if(!new_message) return comm_message = new_message . = TRUE - if("comm_save") - if(locked) - return - var/code_name = stripped_input(usr, "Set the setting name", "Set Name", null , 15) - if(!code_name) - return - var/new_save = list() - new_save["id"] = last_id + 1 - last_id++ - new_save["name"] = code_name - new_save["code"] = comm_code - new_save["mode"] = mode - new_save["relay_code"] = relay_code - new_save["message"] = comm_message - - saved_settings += list(new_save) - . = TRUE - if("comm_load") - var/code_id = params["save_id"] - var/list/setting - for(var/list/X in saved_settings) - if(X["id"] == text2num(code_id)) - setting = X - break - if(setting) - comm_code = setting["code"] - mode = setting["mode"] - relay_code = setting["relay_code"] - comm_message = setting["message"] - . = TRUE - #undef REMOTE_MODE_OFF #undef REMOTE_MODE_SELF #undef REMOTE_MODE_TARGET #undef REMOTE_MODE_AOE -#undef REMOTE_MODE_RELAY \ No newline at end of file +#undef REMOTE_MODE_RELAY diff --git a/code/modules/research/nanites/program_disks.dm b/code/modules/research/nanites/program_disks.dm index 6444ebc025..667618173c 100644 --- a/code/modules/research/nanites/program_disks.dm +++ b/code/modules/research/nanites/program_disks.dm @@ -31,7 +31,7 @@ program_type = /datum/nanite_program/relay /obj/item/disk/nanite_program/emp - program_type = /datum/nanite_program/triggered/emp + program_type = /datum/nanite_program/emp /obj/item/disk/nanite_program/spreading program_type = /datum/nanite_program/spreading @@ -91,16 +91,16 @@ program_type = /datum/nanite_program/suffocating /obj/item/disk/nanite_program/heart_stop - program_type = /datum/nanite_program/triggered/heart_stop + program_type = /datum/nanite_program/heart_stop /obj/item/disk/nanite_program/explosive - program_type = /datum/nanite_program/triggered/explosive + program_type = /datum/nanite_program/explosive /obj/item/disk/nanite_program/shock - program_type = /datum/nanite_program/triggered/shocking + program_type = /datum/nanite_program/shocking /obj/item/disk/nanite_program/sleepy - program_type = /datum/nanite_program/triggered/sleepy + program_type = /datum/nanite_program/sleepy /obj/item/disk/nanite_program/paralyzing program_type = /datum/nanite_program/paralyzing @@ -130,7 +130,7 @@ program_type = /datum/nanite_program/pacifying /obj/item/disk/nanite_program/stun - program_type = /datum/nanite_program/triggered/stun + program_type = /datum/nanite_program/stun /obj/item/disk/nanite_program/dermal_button program_type = /datum/nanite_program/dermal_button @@ -149,3 +149,4 @@ /obj/item/disk/nanite_program/bad_mood program_type = /datum/nanite_program/bad_mood + diff --git a/code/modules/research/nanites/public_chamber.dm b/code/modules/research/nanites/public_chamber.dm index c0d19e0375..76392c66e9 100644 --- a/code/modules/research/nanites/public_chamber.dm +++ b/code/modules/research/nanites/public_chamber.dm @@ -32,7 +32,7 @@ busy_icon_state = working_icon update_icon() -/obj/machinery/public_nanite_chamber/proc/inject_nanites() +/obj/machinery/public_nanite_chamber/proc/inject_nanites(mob/living/attacker) if(stat & (NOPOWER|BROKEN)) return if((stat & MAINT) || panel_open) @@ -47,46 +47,67 @@ set_busy(TRUE, "[initial(icon_state)]_raising") addtimer(CALLBACK(src, .proc/set_busy, TRUE, "[initial(icon_state)]_active"),20) addtimer(CALLBACK(src, .proc/set_busy, TRUE, "[initial(icon_state)]_falling"),60) - addtimer(CALLBACK(src, .proc/complete_injection, locked_state),80) + addtimer(CALLBACK(src, .proc/complete_injection, locked_state, attacker),80) -/obj/machinery/public_nanite_chamber/proc/complete_injection(locked_state) +/obj/machinery/public_nanite_chamber/proc/complete_injection(locked_state, mob/living/attacker) //TODO MACHINE DING locked = locked_state set_busy(FALSE) if(!occupant) return + if(attacker) + occupant.investigate_log("was injected with nanites by [key_name(attacker)] using [src] at [AREACOORD(src)].", INVESTIGATE_NANITES) + log_combat(attacker, occupant, "injected", null, "with nanites via [src]") occupant.AddComponent(/datum/component/nanites, 75, cloud_id) -/obj/machinery/public_nanite_chamber/update_icon() - cut_overlays() - +/obj/machinery/public_nanite_chamber/proc/change_cloud(mob/living/attacker) + if(stat & (NOPOWER|BROKEN)) + return if((stat & MAINT) || panel_open) - add_overlay("maint") + return + if(!occupant || busy) + return - else if(!(stat & (NOPOWER|BROKEN))) - if(busy || locked) - add_overlay("red") - if(locked) - add_overlay("bolted") - else - add_overlay("green") + var/locked_state = locked + locked = TRUE + set_busy(TRUE, "[initial(icon_state)]_raising") + addtimer(CALLBACK(src, .proc/set_busy, TRUE, "[initial(icon_state)]_active"),20) + addtimer(CALLBACK(src, .proc/set_busy, TRUE, "[initial(icon_state)]_falling"),40) + addtimer(CALLBACK(src, .proc/complete_cloud_change, locked_state, attacker),60) +/obj/machinery/public_nanite_chamber/proc/complete_cloud_change(locked_state, mob/living/attacker) + locked = locked_state + set_busy(FALSE) + if(!occupant) + return + if(attacker) + occupant.investigate_log("had their nanite cloud ID changed into [cloud_id] by [key_name(attacker)] using [src] at [AREACOORD(src)].", INVESTIGATE_NANITES) + SEND_SIGNAL(occupant, COMSIG_NANITE_SET_CLOUD, cloud_id) +/obj/machinery/public_nanite_chamber/update_icon_state() //running and someone in there if(occupant) if(busy) icon_state = busy_icon_state else icon_state = initial(icon_state)+ "_occupied" - return + else + //running + icon_state = initial(icon_state)+ (state_open ? "_open" : "") - //running - icon_state = initial(icon_state)+ (state_open ? "_open" : "") - -/obj/machinery/public_nanite_chamber/power_change() +/obj/machinery/public_nanite_chamber/update_overlays() . = ..() - update_icon() + if((stat & MAINT) || panel_open) + . += "maint" + + else if(!(stat & (NOPOWER|BROKEN))) + if(busy || locked) + . += "red" + if(locked) + . += "bolted" + else + . += "green" /obj/machinery/public_nanite_chamber/proc/toggle_open(mob/user) if(panel_open) @@ -94,7 +115,7 @@ return if(state_open) - close_machine() + close_machine(null, user) return else if(locked) @@ -113,7 +134,7 @@ user.last_special = world.time + CLICK_CD_BREAKOUT user.visible_message("You see [user] kicking against the door of [src]!", \ "You lean on the back of [src] and start pushing the door open... (this will take about [DisplayTimeText(breakout_time)].)", \ - "You hear a metallic creaking from [src].") + "You hear a metallic creaking from [src].") if(do_after(user,(breakout_time), target = src)) if(!user || user.stat != CONSCIOUS || user.loc != src || state_open || !locked || busy) return @@ -122,7 +143,7 @@ "You successfully break out of [src]!") open_machine() -/obj/machinery/public_nanite_chamber/close_machine(mob/living/carbon/user) +/obj/machinery/public_nanite_chamber/close_machine(mob/living/carbon/user, mob/living/attacker) if(!state_open) return FALSE @@ -130,15 +151,18 @@ . = TRUE - addtimer(CALLBACK(src, .proc/try_inject_nanites), 30) //If someone is shoved in give them a chance to get out before the injection starts + addtimer(CALLBACK(src, .proc/try_inject_nanites, attacker), 30) //If someone is shoved in give them a chance to get out before the injection starts -/obj/machinery/public_nanite_chamber/proc/try_inject_nanites() +/obj/machinery/public_nanite_chamber/proc/try_inject_nanites(mob/living/attacker) if(occupant) var/mob/living/L = occupant if(SEND_SIGNAL(L, COMSIG_HAS_NANITES)) + var/datum/component/nanites/nanites = L.GetComponent(/datum/component/nanites) + if(nanites && nanites.cloud_id != cloud_id) + change_cloud(attacker) return - if((MOB_ORGANIC in L.mob_biotypes) || (MOB_UNDEAD in L.mob_biotypes)) - inject_nanites() + if(L.mob_biotypes & (MOB_ORGANIC | MOB_UNDEAD)) + inject_nanites(attacker) /obj/machinery/public_nanite_chamber/open_machine() if(state_open) @@ -173,6 +197,8 @@ toggle_open(user) /obj/machinery/public_nanite_chamber/MouseDrop_T(mob/target, mob/user) - if(user.stat || user.lying || !Adjacent(user) || !user.Adjacent(target) || !iscarbon(target) || !user.IsAdvancedToolUser()) + if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK) || !Adjacent(target) || !user.Adjacent(target) || !iscarbon(target)) return - close_machine(target) + if(close_machine(target, user)) + log_combat(user, target, "inserted", null, "into [src].") + add_fingerprint(user) diff --git a/code/modules/research/nanites/rules.dm b/code/modules/research/nanites/rules.dm new file mode 100644 index 0000000000..f496abe6e1 --- /dev/null +++ b/code/modules/research/nanites/rules.dm @@ -0,0 +1,151 @@ +/datum/nanite_rule + var/name = "Generic Condition" + var/desc = "When triggered, the program is active" + var/datum/nanite_program/program + +/datum/nanite_rule/New(datum/nanite_program/new_program) + program = new_program + if(LAZYLEN(new_program.rules) <= 5) //Avoid infinite stacking rules + new_program.rules += src + else + qdel(src) + +/datum/nanite_rule/proc/remove() + program.rules -= src + program = null + qdel(src) + +/datum/nanite_rule/proc/check_rule() + return TRUE + +/datum/nanite_rule/proc/display() + return name + +/datum/nanite_rule/proc/copy_to(datum/nanite_program/new_program) + new type(new_program) + +/datum/nanite_rule/health + name = "Health" + desc = "Checks the host's health status." + + var/threshold = 50 + var/above = TRUE + +/datum/nanite_rule/health/check_rule() + var/health_percent = program.host_mob.health / program.host_mob.maxHealth * 100 + if(above) + if(health_percent >= threshold) + return TRUE + else + if(health_percent < threshold) + return TRUE + return FALSE + +/datum/nanite_rule/health/display() + return "[name] [above ? ">" : "<"] [threshold]%" + +/datum/nanite_rule/health/copy_to(datum/nanite_program/new_program) + var/datum/nanite_rule/health/rule = new(new_program) + rule.above = above + rule.threshold = threshold + +//TODO allow inversion +/datum/nanite_rule/crit + name = "Crit" + desc = "Checks if the host is in critical condition." + +/datum/nanite_rule/crit/check_rule() + if(program.host_mob.InCritical()) + return TRUE + return FALSE + +/datum/nanite_rule/death + name = "Death" + desc = "Checks if the host is dead." + +/datum/nanite_rule/death/check_rule() + if(program.host_mob.stat == DEAD || HAS_TRAIT(program.host_mob, TRAIT_FAKEDEATH)) + return TRUE + return FALSE + +/datum/nanite_rule/cloud_sync + name = "Cloud Sync" + desc = "Checks if the nanites have cloud sync enabled or disabled." + var/check_type = "Enabled" + +/datum/nanite_rule/cloud_sync/check_rule() + if(check_type == "Enabled") + return program.nanites.cloud_active + else + return !program.nanites.cloud_active + +/datum/nanite_rule/cloud_sync/copy_to(datum/nanite_program/new_program) + var/datum/nanite_rule/cloud_sync/rule = new(new_program) + rule.check_type = check_type + +/datum/nanite_rule/cloud_sync/display() + return "[name]:[check_type]" + +/datum/nanite_rule/nanites + name = "Nanite Volume" + desc = "Checks the host's nanite volume." + + var/threshold = 50 + var/above = TRUE + +/datum/nanite_rule/nanites/check_rule() + var/nanite_percent = (program.nanites.nanite_volume - program.nanites.safety_threshold)/(program.nanites.max_nanites - program.nanites.safety_threshold)*100 + if(above) + if(nanite_percent >= threshold) + return TRUE + else + if(nanite_percent < threshold) + return TRUE + return FALSE + +/datum/nanite_rule/nanites/copy_to(datum/nanite_program/new_program) + var/datum/nanite_rule/nanites/rule = new(new_program) + rule.above = above + rule.threshold = threshold + +/datum/nanite_rule/nanites/display() + return "[name] [above ? ">" : "<"] [threshold]%" + +/datum/nanite_rule/damage + name = "Damage" + desc = "Checks the host's damage." + + var/threshold = 50 + var/above = TRUE + var/damage_type = BRUTE + +/datum/nanite_rule/damage/check_rule() + var/damage_amt = 0 + switch(damage_type) + if(BRUTE) + damage_amt = program.host_mob.getBruteLoss() + if(BURN) + damage_amt = program.host_mob.getFireLoss() + if(TOX) + damage_amt = program.host_mob.getToxLoss() + if(OXY) + damage_amt = program.host_mob.getOxyLoss() + if(CLONE) + damage_amt = program.host_mob.getCloneLoss() + + if(above) + if(damage_amt >= threshold) + return TRUE + else + if(damage_amt < threshold) + return TRUE + return FALSE + +/datum/nanite_rule/damage/copy_to(datum/nanite_program/new_program) + var/datum/nanite_rule/damage/rule = new(new_program) + rule.above = above + rule.threshold = threshold + rule.damage_type = damage_type + +/datum/nanite_rule/damage/display() + return "[damage_type] [above ? ">" : "<"] [threshold]" diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index d33ef29155..0104bfba7b 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -52,14 +52,10 @@ Nothing else in the console has ID requirements. research_control = FALSE /proc/CallMaterialName(ID) - if (ID[1] == "$" && GLOB.materials_list[ID]) - var/datum/material/material = GLOB.materials_list[ID] + if (istype(ID, /datum/material)) + var/datum/material/material = ID return material.name - - else if(GLOB.chemical_reagents_list[ID]) - var/datum/reagent/reagent = GLOB.chemical_reagents_list[ID] - return reagent.name - return "ERROR: Report This" + return ID /obj/machinery/computer/rdconsole/proc/SyncRDevices() //Makes sure it is properly sync'ed up with the devices attached to it (if any). for(var/obj/machinery/rnd/D in oview(3,src)) @@ -377,11 +373,13 @@ Nothing else in the console has ID requirements. l += ui_protolathe_header() l += "

Material Storage:

" for(var/mat_id in mat_container.materials) - var/datum/material/M = mat_container.materials[mat_id] - l += "* [M.amount] of [M.name]: " - if(M.amount >= MINERAL_MATERIAL_AMOUNT) l += "Eject [RDSCREEN_NOBREAK]" - if(M.amount >= MINERAL_MATERIAL_AMOUNT*5) l += "5x [RDSCREEN_NOBREAK]" - if(M.amount >= MINERAL_MATERIAL_AMOUNT) l += "All[RDSCREEN_NOBREAK]" + var/datum/material/M = mat_id + var/amount = mat_container.materials[mat_id] + var/ref = REF(M) + l += "* [amount] of [M.name]: " + if(amount >= MINERAL_MATERIAL_AMOUNT) l += "Eject [RDSCREEN_NOBREAK]" + if(amount >= MINERAL_MATERIAL_AMOUNT*5) l += "5x [RDSCREEN_NOBREAK]" + if(amount >= MINERAL_MATERIAL_AMOUNT) l += "All[RDSCREEN_NOBREAK]" l += "" l += "
[RDSCREEN_NOBREAK]" return l @@ -510,11 +508,13 @@ Nothing else in the console has ID requirements. l += ui_circuit_header() l += "

Material Storage:

" for(var/mat_id in mat_container.materials) - var/datum/material/M = mat_container.materials[mat_id] - l += "* [M.amount] of [M.name]: " - if(M.amount >= MINERAL_MATERIAL_AMOUNT) l += "Eject [RDSCREEN_NOBREAK]" - if(M.amount >= MINERAL_MATERIAL_AMOUNT*5) l += "5x [RDSCREEN_NOBREAK]" - if(M.amount >= MINERAL_MATERIAL_AMOUNT) l += "All[RDSCREEN_NOBREAK]
" + var/datum/material/M = mat_id + var/amount = mat_container.materials[mat_id] + var/ref = REF(M) + l += "* [amount] of [M.name]: " + if(amount >= MINERAL_MATERIAL_AMOUNT) l += "Eject [RDSCREEN_NOBREAK]" + if(amount >= MINERAL_MATERIAL_AMOUNT*5) l += "5x [RDSCREEN_NOBREAK]" + if(amount >= MINERAL_MATERIAL_AMOUNT) l += "All[RDSCREEN_NOBREAK]
" return l /obj/machinery/computer/rdconsole/proc/ui_techdisk() //Legacy code @@ -616,8 +616,8 @@ Nothing else in the console has ID requirements. l += "[RDSCREEN_NOBREAK]" if(!(linked_destroy.loaded_item.resistance_flags & INDESTRUCTIBLE)) - var/list/materials = linked_destroy.loaded_item.materials - l += "
[materials.len? "Material Reclamation" : "Destroy Item"]" + var/list/materials = linked_destroy.loaded_item.custom_materials + l += "
[LAZYLEN(materials)? "Material Reclamation" : "Destroy Item"]" for (var/M in materials) l += "* [CallMaterialName(M)] x [materials[M]]" l += "
[RDSCREEN_NOBREAK]" @@ -934,7 +934,8 @@ Nothing else in the console has ID requirements. if(!linked_lathe.materials.mat_container) say("No material storage linked to protolathe!") return - linked_lathe.eject_sheets(ls["ejectsheet"], ls["eject_amt"]) + var/datum/material/M = locate(ls["ejectsheet"]) in linked_lathe.materials.mat_container.materials + linked_lathe.eject_sheets(M, ls["eject_amt"]) //Circuit Imprinter Materials if(ls["disposeI"]) //Causes the circuit imprinter to dispose of a single reagent (all of it) if(QDELETED(linked_imprinter)) @@ -953,7 +954,8 @@ Nothing else in the console has ID requirements. if(!linked_imprinter.materials.mat_container) say("No material storage linked to circuit imprinter!") return - linked_imprinter.eject_sheets(ls["imprinter_ejectsheet"], ls["eject_amt"]) + var/datum/material/M = locate(ls["imprinter_ejectsheet"]) in linked_imprinter.materials.mat_container.materials + linked_imprinter.eject_sheets(M, ls["eject_amt"]) if(ls["disk_slot"]) disk_slot_selected = text2num(ls["disk_slot"]) if(ls["research_node"]) @@ -1016,7 +1018,7 @@ Nothing else in the console has ID requirements. D.category -= "Imported" else for(var/x in D.materials) - if( !(x in list(MAT_METAL, MAT_GLASS))) + if( !(x in list(/datum/material/iron, /datum/material/glass))) autolathe_friendly = FALSE D.category -= "Imported" diff --git a/code/modules/research/rdmachines.dm b/code/modules/research/rdmachines.dm index 18bf8033b9..2237284a64 100644 --- a/code/modules/research/rdmachines.dm +++ b/code/modules/research/rdmachines.dm @@ -93,14 +93,14 @@ loaded_item.forceMove(loc) ..() -/obj/machinery/rnd/proc/AfterMaterialInsert(type_inserted, id_inserted, amount_inserted) +/obj/machinery/rnd/proc/AfterMaterialInsert(item_inserted, id_inserted, amount_inserted) var/stack_name - if(ispath(type_inserted, /obj/item/stack/ore/bluespace_crystal)) + if(istype(item_inserted, /obj/item/stack/ore/bluespace_crystal)) stack_name = "bluespace" use_power(MINERAL_MATERIAL_AMOUNT / 10) else - var/obj/item/stack/S = type_inserted - stack_name = initial(S.name) + var/obj/item/stack/S = item_inserted + stack_name = S.name use_power(min(1000, (amount_inserted / 100))) add_overlay("protolathe_[stack_name]") addtimer(CALLBACK(src, /atom/proc/cut_overlay, "protolathe_[stack_name]"), 10) diff --git a/code/modules/research/research_disk.dm b/code/modules/research/research_disk.dm index e4c036f7ff..aa781ca06b 100644 --- a/code/modules/research/research_disk.dm +++ b/code/modules/research/research_disk.dm @@ -3,7 +3,7 @@ name = "technology disk" desc = "A disk for storing technology data for further research." icon_state = "datadisk0" - materials = list(MAT_METAL=300, MAT_GLASS=100) + custom_materials = list(/datum/material/iron=300, /datum/material/glass=100) var/datum/techweb/stored_research /obj/item/disk/tech_disk/Initialize() @@ -15,7 +15,7 @@ /obj/item/disk/tech_disk/debug name = "\improper CentCom technology disk" desc = "A debug item for research" - materials = list() + custom_materials = null /obj/item/disk/tech_disk/debug/Initialize() . = ..() @@ -24,7 +24,7 @@ /obj/item/disk/tech_disk/illegal name = "Illegal technology disk" desc = "A technology disk containing schematics for syndicate inspired equipment." - materials = list() + custom_materials = null /obj/item/disk/tech_disk/illegal/Initialize() . = ..() @@ -33,7 +33,7 @@ /obj/item/disk/tech_disk/abductor name = "Gray technology disk" desc = "You feel like it's not Gray because of its color." - materials = list() + custom_materials = null /obj/item/disk/tech_disk/abductor/Initialize() . = ..() diff --git a/code/modules/research/stock_parts.dm b/code/modules/research/stock_parts.dm index e29cf28f34..fb29399064 100644 --- a/code/modules/research/stock_parts.dm +++ b/code/modules/research/stock_parts.dm @@ -22,7 +22,7 @@ If you create T5+ please take a pass at gene_modder.dm [L40]. Max_values MUST fi if(works_from_distance) user.Beam(T, icon_state = "rped_upgrade", time = 5) T.exchange_parts(user, src) - return FALSE + return TRUE return ..() /obj/item/storage/part_replacer/afterattack(obj/machinery/T, mob/living/user, adjacent, params) @@ -60,6 +60,7 @@ If you create T5+ please take a pass at gene_modder.dm [L40]. Max_values MUST fi new /obj/item/stock_parts/manipulator(src) new /obj/item/stock_parts/micro_laser(src) new /obj/item/stock_parts/matter_bin(src) + new /obj/item/stock_parts/cell/high(src) /obj/item/storage/part_replacer/bluespace/tier2 @@ -70,6 +71,7 @@ If you create T5+ please take a pass at gene_modder.dm [L40]. Max_values MUST fi new /obj/item/stock_parts/manipulator/nano(src) new /obj/item/stock_parts/micro_laser/high(src) new /obj/item/stock_parts/matter_bin/adv(src) + new /obj/item/stock_parts/cell/super(src) /obj/item/storage/part_replacer/bluespace/tier3 @@ -80,6 +82,7 @@ If you create T5+ please take a pass at gene_modder.dm [L40]. Max_values MUST fi new /obj/item/stock_parts/manipulator/pico(src) new /obj/item/stock_parts/micro_laser/ultra(src) new /obj/item/stock_parts/matter_bin/super(src) + new /obj/item/stock_parts/cell/hyper(src) /obj/item/storage/part_replacer/bluespace/tier4 @@ -90,6 +93,7 @@ If you create T5+ please take a pass at gene_modder.dm [L40]. Max_values MUST fi new /obj/item/stock_parts/manipulator/femto(src) new /obj/item/stock_parts/micro_laser/quadultra(src) new /obj/item/stock_parts/matter_bin/bluespace(src) + new /obj/item/stock_parts/cell/bluespace(src) /obj/item/storage/part_replacer/cargo //used in a cargo crate @@ -132,31 +136,31 @@ If you create T5+ please take a pass at gene_modder.dm [L40]. Max_values MUST fi name = "capacitor" desc = "A basic capacitor used in the construction of a variety of devices." icon_state = "capacitor" - materials = list(MAT_METAL=50, MAT_GLASS=50) + custom_materials = list(/datum/material/iron=50, /datum/material/glass=50) /obj/item/stock_parts/scanning_module name = "scanning module" desc = "A compact, high resolution scanning module used in the construction of certain devices." icon_state = "scan_module" - materials = list(MAT_METAL=50, MAT_GLASS=20) + custom_materials = list(/datum/material/iron=50, /datum/material/glass=20) /obj/item/stock_parts/manipulator name = "micro-manipulator" desc = "A tiny little manipulator used in the construction of certain devices." icon_state = "micro_mani" - materials = list(MAT_METAL=30) + custom_materials = list(/datum/material/iron=30) /obj/item/stock_parts/micro_laser name = "micro-laser" desc = "A tiny laser used in certain devices." icon_state = "micro_laser" - materials = list(MAT_METAL=10, MAT_GLASS=20) + custom_materials = list(/datum/material/iron=10, /datum/material/glass=20) /obj/item/stock_parts/matter_bin name = "matter bin" desc = "A container designed to hold compressed matter awaiting reconstruction." icon_state = "matter_bin" - materials = list(MAT_METAL=80) + custom_materials = list(/datum/material/iron=80) //Rating 2 @@ -165,35 +169,35 @@ If you create T5+ please take a pass at gene_modder.dm [L40]. Max_values MUST fi desc = "An advanced capacitor used in the construction of a variety of devices." icon_state = "adv_capacitor" rating = 2 - materials = list(MAT_METAL=50, MAT_GLASS=50) + custom_materials = list(/datum/material/iron=50, /datum/material/glass=50) /obj/item/stock_parts/scanning_module/adv name = "advanced scanning module" desc = "A compact, high resolution scanning module used in the construction of certain devices." icon_state = "adv_scan_module" rating = 2 - materials = list(MAT_METAL=50, MAT_GLASS=20) + custom_materials = list(/datum/material/iron=50, /datum/material/glass=20) /obj/item/stock_parts/manipulator/nano name = "nano-manipulator" desc = "A tiny little manipulator used in the construction of certain devices." icon_state = "nano_mani" rating = 2 - materials = list(MAT_METAL=30) + custom_materials = list(/datum/material/iron=30) /obj/item/stock_parts/micro_laser/high name = "high-power micro-laser" desc = "A tiny laser used in certain devices." icon_state = "high_micro_laser" rating = 2 - materials = list(MAT_METAL=10, MAT_GLASS=20) + custom_materials = list(/datum/material/iron=10, /datum/material/glass=20) /obj/item/stock_parts/matter_bin/adv name = "advanced matter bin" desc = "A container designed to hold compressed matter awaiting reconstruction." icon_state = "advanced_matter_bin" rating = 2 - materials = list(MAT_METAL=80) + custom_materials = list(/datum/material/iron=80) //Rating 3 @@ -202,35 +206,35 @@ If you create T5+ please take a pass at gene_modder.dm [L40]. Max_values MUST fi desc = "A super-high capacity capacitor used in the construction of a variety of devices." icon_state = "super_capacitor" rating = 3 - materials = list(MAT_METAL=50, MAT_GLASS=50) + custom_materials = list(/datum/material/iron=50, /datum/material/glass=50) /obj/item/stock_parts/scanning_module/phasic name = "phasic scanning module" desc = "A compact, high resolution phasic scanning module used in the construction of certain devices." icon_state = "super_scan_module" rating = 3 - materials = list(MAT_METAL=50, MAT_GLASS=20) + custom_materials = list(/datum/material/iron=50, /datum/material/glass=20) /obj/item/stock_parts/manipulator/pico name = "pico-manipulator" desc = "A tiny little manipulator used in the construction of certain devices." icon_state = "pico_mani" rating = 3 - materials = list(MAT_METAL=30) + custom_materials = list(/datum/material/iron=30) /obj/item/stock_parts/micro_laser/ultra name = "ultra-high-power micro-laser" icon_state = "ultra_high_micro_laser" desc = "A tiny laser used in certain devices." rating = 3 - materials = list(MAT_METAL=10, MAT_GLASS=20) + custom_materials = list(/datum/material/iron=10, /datum/material/glass=20) /obj/item/stock_parts/matter_bin/super name = "super matter bin" desc = "A container designed to hold compressed matter awaiting reconstruction." icon_state = "super_matter_bin" rating = 3 - materials = list(MAT_METAL=80) + custom_materials = list(/datum/material/iron=80) //Rating 4 @@ -239,35 +243,35 @@ If you create T5+ please take a pass at gene_modder.dm [L40]. Max_values MUST fi desc = "An capacity capacitor used in the construction of a variety of devices." icon_state = "quadratic_capacitor" rating = 4 - materials = list(MAT_METAL=50, MAT_GLASS=50) + custom_materials = list(/datum/material/iron=50, /datum/material/glass=50) /obj/item/stock_parts/scanning_module/triphasic name = "triphasic scanning module" desc = "A compact, ultra resolution triphasic scanning module used in the construction of certain devices." icon_state = "triphasic_scan_module" rating = 4 - materials = list(MAT_METAL=50, MAT_GLASS=20) + custom_materials = list(/datum/material/iron=50, /datum/material/glass=20) /obj/item/stock_parts/manipulator/femto name = "femto-manipulator" desc = "A tiny little manipulator used in the construction of certain devices." icon_state = "femto_mani" rating = 4 - materials = list(MAT_METAL=30) + custom_materials = list(/datum/material/iron=30) /obj/item/stock_parts/micro_laser/quadultra name = "quad-ultra micro-laser" icon_state = "quadultra_micro_laser" desc = "A tiny laser used in certain devices." rating = 4 - materials = list(MAT_METAL=10, MAT_GLASS=20) + custom_materials = list(/datum/material/iron=10, /datum/material/glass=20) /obj/item/stock_parts/matter_bin/bluespace name = "bluespace matter bin" desc = "A container designed to hold compressed matter awaiting reconstruction." icon_state = "bluespace_matter_bin" rating = 4 - materials = list(MAT_METAL=80) + custom_materials = list(/datum/material/iron=80) // Subspace stock parts @@ -275,43 +279,43 @@ If you create T5+ please take a pass at gene_modder.dm [L40]. Max_values MUST fi name = "subspace ansible" icon_state = "subspace_ansible" desc = "A compact module capable of sensing extradimensional activity." - materials = list(MAT_METAL=30, MAT_GLASS=10) + custom_materials = list(/datum/material/iron=30, /datum/material/glass=10) /obj/item/stock_parts/subspace/filter name = "hyperwave filter" icon_state = "hyperwave_filter" desc = "A tiny device capable of filtering and converting super-intense radiowaves." - materials = list(MAT_METAL=30, MAT_GLASS=10) + custom_materials = list(/datum/material/iron=30, /datum/material/glass=10) /obj/item/stock_parts/subspace/amplifier name = "subspace amplifier" icon_state = "subspace_amplifier" desc = "A compact micro-machine capable of amplifying weak subspace transmissions." - materials = list(MAT_METAL=30, MAT_GLASS=10) + custom_materials = list(/datum/material/iron=30, /datum/material/glass=10) /obj/item/stock_parts/subspace/treatment name = "subspace treatment disk" icon_state = "treatment_disk" desc = "A compact micro-machine capable of stretching out hyper-compressed radio waves." - materials = list(MAT_METAL=30, MAT_GLASS=10) + custom_materials = list(/datum/material/iron=30, /datum/material/glass=10) /obj/item/stock_parts/subspace/analyzer name = "subspace wavelength analyzer" icon_state = "wavelength_analyzer" desc = "A sophisticated analyzer capable of analyzing cryptic subspace wavelengths." - materials = list(MAT_METAL=30, MAT_GLASS=10) + custom_materials = list(/datum/material/iron=30, /datum/material/glass=10) /obj/item/stock_parts/subspace/crystal name = "ansible crystal" icon_state = "ansible_crystal" desc = "A crystal made from pure glass used to transmit laser databursts to subspace." - materials = list(MAT_GLASS=50) + custom_materials = list(/datum/material/glass=50) /obj/item/stock_parts/subspace/transmitter name = "subspace transmitter" icon_state = "subspace_transmitter" desc = "A large piece of equipment used to open a window into the subspace dimension." - materials = list(MAT_METAL=50) + custom_materials = list(/datum/material/iron=50) /obj/item/research//Makes testing much less of a pain -Sieve name = "research" diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index e1abfedde6..a9f5dbf3c6 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -190,7 +190,7 @@ description = "A refresher course on modern engineering technology." prereq_ids = list("base") design_ids = list("solarcontrol", "recharger", "powermonitor", "rped", "pacman", "adv_capacitor", "adv_scanning", "emitter", "high_cell", "adv_matter_bin", - "atmosalerts", "atmos_control", "recycler", "autolathe", "high_micro_laser", "nano_mani", "mesons", "thermomachine", "rad_collector", "tesla_coil", "grounding_rod", + "atmosalerts", "atmos_control", "recycler", "autolathe", "autolathe_secure", "high_micro_laser", "nano_mani", "mesons", "thermomachine", "rad_collector", "tesla_coil", "grounding_rod", "apc_control", "cell_charger", "power control", "airlock_board", "firelock_board", "airalarm_electronics", "firealarm_electronics", "cell_charger", "stack_console", "stack_machine", "rcd_ammo") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 6000) export_price = 5000 @@ -602,7 +602,7 @@ display_name = "Basic Tools" description = "Basic mechanical, electronic, surgical and botanical tools." prereq_ids = list("base") - design_ids = list("screwdriver", "wrench", "wirecutters", "crowbar", "multitool", "welding_tool", "tscanner", "analyzer", "cable_coil", "pipe_painter", "airlock_painter", "scalpel", "circular_saw", "surgicaldrill", "retractor", "cautery", "hemostat", "cultivator", "plant_analyzer", "shovel", "spade", "hatchet") + design_ids = list("screwdriver", "wrench", "wirecutters", "crowbar", "multitool", "welding_tool", "tscanner", "analyzer", "cable_coil", "pipe_painter", "airlock_painter", "scalpel", "circular_saw", "surgicaldrill", "retractor", "cautery", "hemostat", "cultivator", "plant_analyzer", "shovel", "spade", "hatchet", "mop", "broom") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 500) export_price = 5000 @@ -620,7 +620,7 @@ display_name = "Advanced Mining Technology" description = "Efficiency Level 127" //dumb mc references prereq_ids = list("basic_mining", "adv_engi", "adv_power", "adv_plasma") - design_ids = list("drill_diamond", "jackhammer", "hypermod", "plasmacutter_adv", "ore_silo") + design_ids = list("drill_diamond", "jackhammer", "hypermod", "plasmacutter_adv", "ore_silo", "plasteel_pick", "titanium_pick") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -666,7 +666,7 @@ display_name = "Weapon Development Technology" description = "Our researchers have found new to weaponize just about everything now." prereq_ids = list("engineering") - design_ids = list("pin_testing", "tele_shield", "lasercarbine") + design_ids = list("pin_testing", "tele_shield", "lasercarbine", "pin_away") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 7500) export_price = 5000 @@ -851,7 +851,7 @@ display_name = "Exosuit Weapon (LBX AC 10 \"Scattershot\")" description = "An advanced piece of mech weaponry" prereq_ids = list("ballistic_weapons") - design_ids = list("mech_scattershot") + design_ids = list("mech_scattershot", "mech_scattershot_ammo") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -869,7 +869,7 @@ display_name = "Exosuit Weapon (FNX-99 \"Hades\" Carbine)" description = "An advanced piece of mech weaponry" prereq_ids = list("ballistic_weapons") - design_ids = list("mech_carbine") + design_ids = list("mech_carbine", "mech_carbine_ammo") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -914,16 +914,16 @@ display_name = "Exosuit Weapon (SGL-6 Grenade Launcher)" description = "An advanced piece of mech weaponry" prereq_ids = list("explosive_weapons") - design_ids = list("mech_grenade_launcher") + design_ids = list("mech_grenade_launcher", "mech_grenade_launcher_ammo") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 /datum/techweb_node/mech_missile_rack id = "mech_missile_rack" - display_name = "Exosuit Weapon (SRM-8 Missile Rack)" + display_name = "Exosuit Weapon (BRM-6 Missile Rack)" description = "An advanced piece of mech weaponry" prereq_ids = list("explosive_weapons") - design_ids = list("mech_missile_rack") + design_ids = list("mech_missile_rack", "mech_missile_rack_ammo") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -932,7 +932,7 @@ display_name = "Exosuit Module (SOB-3 Clusterbang Launcher)" description = "An advanced piece of mech weaponry" prereq_ids = list("explosive_weapons") - design_ids = list("clusterbang_launcher") + design_ids = list("clusterbang_launcher", "clusterbang_launcher_ammo") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -968,7 +968,7 @@ display_name = "Exosuit Weapon (\"Ultra AC 2\" LMG)" description = "An advanced piece of mech weaponry" prereq_ids = list("ballistic_weapons") - design_ids = list("mech_lmg") + design_ids = list("mech_lmg", "mech_lmg_ammo") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 diff --git a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm index 0838e70bfd..9efbe58a29 100644 --- a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm +++ b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm @@ -890,8 +890,8 @@ datum/status_effect/stabilized/blue/on_remove() healing_types += TOX if(owner.getCloneLoss() > 0) healing_types += CLONE - - owner.apply_damage_type(-heal_amount, damagetype=pick(healing_types)) + if(length(healing_types)) + owner.apply_damage_type(-heal_amount, damagetype=pick(healing_types)) owner.nutrition += 3 M.adjustCloneLoss(heal_amount * 1.2) //This way, two people can't just convert each other's damage away. else diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm index 0c21b19b5f..af825eb5ee 100644 --- a/code/modules/research/xenobiology/xenobiology.dm +++ b/code/modules/research/xenobiology/xenobiology.dm @@ -983,7 +983,7 @@ icon_state = "tile-bluespace" w_class = WEIGHT_CLASS_NORMAL force = 6 - materials = list(MAT_METAL=500) + custom_materials = list(/datum/material/iron=500) throwforce = 10 throw_speed = 3 throw_range = 7 @@ -999,7 +999,7 @@ icon_state = "tile-sepia" w_class = WEIGHT_CLASS_NORMAL force = 6 - materials = list(MAT_METAL=500) + custom_materials = list(/datum/material/iron=500) throwforce = 10 throw_speed = 0.1 throw_range = 28 diff --git a/code/modules/ruins/lavaland_ruin_code.dm b/code/modules/ruins/lavaland_ruin_code.dm index 6e3b452b81..d09c1ce86f 100644 --- a/code/modules/ruins/lavaland_ruin_code.dm +++ b/code/modules/ruins/lavaland_ruin_code.dm @@ -3,6 +3,17 @@ /obj/structure/fans/tiny/invisible //For blocking air in ruin doorways invisibility = INVISIBILITY_ABSTRACT +///Wizard tower item +/obj/item/disk/design_disk/adv/knight_gear + name = "Magic Disk of Smithing" + +/obj/item/disk/design_disk/adv/knight_gear/Initialize() + . = ..() + var/datum/design/knight_armour/A = new + var/datum/design/knight_helmet/H = new + blueprints[1] = A + blueprints[2] = H + //lavaland_surface_seed_vault.dmm //Seed Vault @@ -45,7 +56,7 @@ desc = "Allows for the construction of a Golem Shell." id = "golem" build_type = AUTOLATHE - materials = list(MAT_METAL = 40000) + materials = list(/datum/material/iron = 40000) build_path = /obj/item/golem_shell category = list("Imported") diff --git a/code/modules/ruins/objects_and_mobs/necropolis_gate.dm b/code/modules/ruins/objects_and_mobs/necropolis_gate.dm index 26e5f1a9c0..c80b4d972c 100644 --- a/code/modules/ruins/objects_and_mobs/necropolis_gate.dm +++ b/code/modules/ruins/objects_and_mobs/necropolis_gate.dm @@ -22,6 +22,8 @@ var/static/mutable_appearance/dais_overlay var/obj/structure/opacity_blocker/sight_blocker var/sight_blocker_distance = 1 + var/uses + var/ashwalker_only = FALSE /obj/structure/necropolis_gate/Initialize() . = ..() @@ -87,9 +89,13 @@ //ATTACK HAND IGNORING PARENT RETURN VALUE /obj/structure/necropolis_gate/attack_hand(mob/user) - if(locked) + if(locked || uses == 0) to_chat(user, "It's [open ? "stuck open":"locked"].") return + if(ashwalker_only) + if(!(user.mind.assigned_role == "Ash Walker")) + to_chat(user, "The gate screeches in an incoherant language!") + return toggle_the_gate(user) return ..() @@ -131,12 +137,18 @@ density = FALSE sleep(5) open = TRUE + if(uses && uses > 0) + uses -= 1 changing_openness = FALSE return TRUE /obj/structure/necropolis_gate/locked locked = TRUE +/obj/structure/necropolis_gate/ashwalker + uses = 1 + ashwalker_only = TRUE + GLOBAL_DATUM(necropolis_gate, /obj/structure/necropolis_gate/legion_gate) /obj/structure/necropolis_gate/legion_gate desc = "A tremendous, impossibly large gateway, set into a massive tower of stone." diff --git a/code/modules/ruins/spaceruin_code/clericsden.dm b/code/modules/ruins/spaceruin_code/clericsden.dm new file mode 100644 index 0000000000..46f8f806e4 --- /dev/null +++ b/code/modules/ruins/spaceruin_code/clericsden.dm @@ -0,0 +1,36 @@ +/////////// cleric's den items. + +//Primary reward: the cleric's mace design disk. +/obj/item/disk/design_disk/adv/cleric_mace + name = "Enshrined Disc of Smiting" + +/obj/item/disk/design_disk/adv/cleric_mace/Initialize() + . = ..() + var/datum/design/cleric_mace/M = new + blueprints[1] = M + +/obj/item/paper/fluff/ruins/clericsden/contact + info = "Father Aurellion, the ritual is complete, and soon our brothers at the bastion will see the error of our ways. After all, a god of clockwork or blood? Preposterous. Only the TRUE GOD should have so much power. Signed, Father Odivallus." + +/obj/item/paper/fluff/ruins/clericsden/warning + info = "FATHER ODIVALLUS DO NOT GO FORWARD WITH THE RITUAL. THE ASTEROID WE'RE ANCHORED TO IS UNSTABLE, YOU WILL DESTROY THE STATION. I HOPE THIS REACHES YOU IN TIME. FATHER AURELLION." + +/mob/living/simple_animal/hostile/construct/proteon + name = "Proteon" + real_name = "Proteon" + desc = "A weaker construct meant to scour ruins for objects of Nar'Sie's affection. Those barbed claws are no joke." + icon_state = "proteon" + icon_living = "proteon" + maxHealth = 35 + health = 35 + melee_damage_lower = 8 + melee_damage_upper = 10 + retreat_distance = 4 //AI proteons will rapidly move in and out of combat to avoid conflict, but will still target and follow you. + attacktext = "pinches" + environment_smash = ENVIRONMENT_SMASH_WALLS + attack_sound = 'sound/weapons/punch2.ogg' + playstyle_string = "You are a Proteon. Your abilities in combat are outmatched by most combat constructs, but you are still fast and nimble. Run metal and supplies, and cooperate with your fellow cultists." + +/mob/living/simple_animal/hostile/construct/proteon/hostile //Style of mob spawned by trapped cult runes in the cleric ruin. + AIStatus = AI_ON + environment_smash = ENVIRONMENT_SMASH_STRUCTURES //standard ai construct behavior, breaks things if it wants, but not walls. diff --git a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm index 9229781c0f..9919a6bf26 100644 --- a/code/modules/shuttle/emergency.dm +++ b/code/modules/shuttle/emergency.dm @@ -3,13 +3,38 @@ #define ENGINES_STARTED (SSshuttle.emergency.mode == SHUTTLE_IGNITING) #define IS_DOCKED (SSshuttle.emergency.mode == SHUTTLE_DOCKED || (ENGINES_STARTED)) +#define NOT_BEGUN 0 +#define STAGE_1 1 +#define STAGE_2 2 +#define STAGE_3 3 +#define STAGE_4 4 +#define HIJACKED 5 + /obj/machinery/computer/emergency_shuttle name = "emergency shuttle console" desc = "For shuttle control." icon_screen = "shuttle" icon_keyboard = "tech_key" + resistance_flags = INDESTRUCTIBLE var/auth_need = 3 var/list/authorized = list() + var/hijack_last_stage_increase = 0 + var/hijack_stage_time = 50 + var/hijack_stage_cooldown = 50 + var/hijack_flight_time_increase = 300 + var/hijack_completion_flight_time_set = 100 //How long in deciseconds to set shuttle's timer after hijack is done. + var/hijack_hacking = FALSE + var/hijack_announce = TRUE + +/obj/machinery/computer/emergency_shuttle/examine(mob/user) + . = ..() + if(hijack_announce) + . += "Security systems present on console. Any unauthorized tampering will result in an emergency announcement." + if(user?.mind?.get_hijack_speed()) + . += "Alt click on this to attempt to hijack the shuttle. This will take multiple tries (current: stage [SSshuttle.emergency.hijack_status]/[HIJACKED])." + . += "It will take you [(hijack_stage_time * user.mind.get_hijack_speed()) / 10] seconds to reprogram a stage of the shuttle's navigational firmware, and the console will undergo automated timed lockout for [hijack_stage_cooldown/10] seconds after each stage." + if(hijack_announce) + . += "It is probably best to fortify your position as to be uninterrupted during the attempt, given the automatic announcements.." /obj/machinery/computer/emergency_shuttle/attackby(obj/item/I, mob/user,params) if(istype(I, /obj/item/card/id)) @@ -133,6 +158,71 @@ [TIME_LEFT] seconds", system_error, alert=TRUE) . = TRUE +/obj/machinery/computer/emergency_shuttle/proc/increase_hijack_stage() + var/obj/docking_port/mobile/emergency/shuttle = SSshuttle.emergency + shuttle.hijack_status++ + if(hijack_announce) + announce_hijack_stage() + hijack_last_stage_increase = world.time + say("Navigational protocol error! Rebooting systems.") + if(shuttle.mode == SHUTTLE_ESCAPE) + if(shuttle.hijack_status == HIJACKED) + shuttle.setTimer(hijack_completion_flight_time_set) + else + shuttle.setTimer(shuttle.timeLeft(1) + hijack_flight_time_increase) //give the guy more time to hijack if it's already in flight. + return shuttle.hijack_status + +/obj/machinery/computer/emergency_shuttle/AltClick(user) + attempt_hijack_stage(user) + +/obj/machinery/computer/emergency_shuttle/proc/attempt_hijack_stage(mob/living/user) + if(!user.CanReach(src)) + return + if(!user?.mind?.get_hijack_speed()) + to_chat(user, "You manage to open a user-mode shell on [src], and hundreds of lines of debugging output fly through your vision. It is probably best to leave this alone.= HIJACKED) + to_chat(user, "The emergency shuttle is already loaded with a corrupt navigational payload. What more do you want from it?") + return + if(hijack_last_stage_increase >= world.time + hijack_stage_cooldown) + say("Error - Catastrophic software error detected. Input is currently on timeout.") + return + hijack_hacking = TRUE + to_chat(user, "You [SSshuttle.emergency.hijack_status == NOT_BEGUN? "begin" : "continue"] to override [src]'s navigational protocols.") + say("Software override initiated.") + . = FALSE + if(do_after(user, hijack_stage_time * (1 / user.mind.get_hijack_speed()), target = src)) + increase_hijack_stage() + . = TRUE + to_chat(user, "You reprogram some of [src]'s programming, putting it on timeout for [hijack_stage_cooldown/10] seconds.") + hijack_hacking = FALSE + +/obj/machinery/computer/emergency_shuttle/proc/announce_hijack_stage() + var/msg + switch(SSshuttle.emergency.hijack_status) + if(NOT_BEGUN) + return + if(STAGE_1) + var/datum/species/S = new + msg = "AUTHENTICATING - FAIL. AUTHENTICATING - FAIL. AUTHENTICATING - FAI###### Welcome, technician JOHN DOE." + qdel(S) + if(STAGE_2) + msg = "Warning: Navigational route fails \"IS_AUTHORIZED\". Please try againNN[scramble_message_replace_chars("againagainagainagainagain", 70)]." + if(STAGE_3) + var/hex = "" + for(var/i in 1 to 8) + hex += num2hex(rand(1,16)) + msg = "CRC mismatch at 0x[hex] in calculated route buffer. Full reset initiated of FTL_NAVIGATION_SERVICES. Memory decrypted for automatic repair." + if(STAGE_4) + msg = "~ACS_directive module_load(cyberdyne.exploit.nanotrasen.shuttlenav)... NT key mismatch. Confirm load? Y...###Reboot complete. $SET transponder_state = 0; System link initiated with connected engines..." + if(HIJACKED) + msg = "SYSTEM OVERRIDE - Resetting course to \[[scramble_message_replace_chars("###########", 100)]\] \ + ([scramble_message_replace_chars("#######", 100)]/[scramble_message_replace_chars("#######", 100)]/[scramble_message_replace_chars("#######", 100)]) \ + {AUTH - ROOT (uid: 0)}.[SSshuttle.emergency.mode == SHUTTLE_ESCAPE? "Diverting from existing route - Bluespace exit in [hijack_completion_flight_time_set/10] seconds." : ""]" + minor_announce(scramble_message_replace_chars(msg, replaceprob = 10), "Emergency Shuttle", TRUE) + /obj/machinery/computer/emergency_shuttle/emag_act(mob/user) . = ..() @@ -185,6 +275,7 @@ dir = EAST port_direction = WEST var/sound_played = 0 //If the launch sound has been sent to all players on the shuttle itself + var/hijack_status = NOT_BEGUN /obj/docking_port/mobile/emergency/canDock(obj/docking_port/stationary/S) return SHUTTLE_CAN_DOCK //If the emergency shuttle can't move, the whole game breaks, so it will force itself to land even if it has to crush a few departments in the process @@ -250,37 +341,7 @@ priority_announce("The emergency shuttle has been recalled.[SSshuttle.emergencyLastCallLoc ? " Recall signal traced. Results can be viewed on any communications console." : "" ]", null, "shuttlerecalled", "Priority") /obj/docking_port/mobile/emergency/proc/is_hijacked() - var/has_people = FALSE - var/hijacker_present = FALSE - for(var/mob/living/player in GLOB.player_list) - if(player.mind) - if(player.stat != DEAD) - if(issilicon(player)) //Borgs are technically dead anyways - continue - if(isanimal(player)) //animals don't count - continue - if(isbrain(player)) //also technically dead - continue - if(shuttle_areas[get_area(player)]) - has_people = TRUE - var/location = get_turf(player.mind.current) - //Non-antag present. Can't hijack. - if(!(player.mind.has_antag_datum(/datum/antagonist)) && !istype(location, /turf/open/floor/plasteel/shuttle/red) && !istype(location, /turf/open/floor/mineral/plastitanium/red/brig)) - return FALSE - //Antag present, doesn't stop but let's see if we actually want to hijack - var/prevent = FALSE - for(var/datum/antagonist/A in player.mind.antag_datums) - if(A.can_hijack == HIJACK_HIJACKER) - hijacker_present = TRUE - prevent = FALSE - break //If we have both prevent and hijacker antags assume we want to hijack. - else if(A.can_hijack == HIJACK_PREVENT) - prevent = TRUE - if(prevent) - return FALSE - - - return has_people && hijacker_present + return hijack_status == HIJACKED /obj/docking_port/mobile/emergency/proc/ShuttleDBStuff() set waitfor = FALSE @@ -422,7 +483,7 @@ mode = SHUTTLE_ESCAPE launch_status = ENDGAME_LAUNCHED setTimer(SSshuttle.emergencyEscapeTime) - priority_announce("The Emergency Shuttle preparing for direct jump. Estimate [timeLeft(600)] minutes until the shuttle docks at Central Command.", null, null, "Priority") + priority_announce("The Emergency Shuttle is preparing for direct jump. Estimate [timeLeft(600)] minutes until the shuttle docks at Central Command.", null, null, "Priority") /obj/docking_port/mobile/pod @@ -524,7 +585,7 @@ anchored = TRUE icon = 'icons/obj/storage.dmi' icon_state = "safe" - integrity_failure = 100 + integrity_failure = 0.2 component_type = /datum/component/storage/concrete/emergency /obj/item/storage/pod/PopulateContents() @@ -567,3 +628,10 @@ #undef ENGINES_START_TIME #undef ENGINES_STARTED #undef IS_DOCKED + +#undef NOT_BEGUN +#undef STAGE_1 +#undef STAGE_2 +#undef STAGE_3 +#undef STAGE_4 +#undef HIJACKED diff --git a/code/modules/shuttle/supply.dm b/code/modules/shuttle/supply.dm index 0e7cba9776..bdf6e8cc87 100644 --- a/code/modules/shuttle/supply.dm +++ b/code/modules/shuttle/supply.dm @@ -168,7 +168,7 @@ GLOBAL_LIST_INIT(cargo_shuttle_leave_behind_typecache, typecacheof(list( for(var/chem in ex.reagents_value) var/value = ex.reagents_value[chem] - msg += "[value] credits: received [ex.reagents_volume[chem]]u of [chem].\n" + msg += "[value > 0 ? "+" : ""][value] credits: received [ex.reagents_volume[chem]]u of [chem].\n" SSshuttle.points += value msg = copytext_char(msg, 1, MAX_MESSAGE_LEN) diff --git a/code/modules/spells/spell_types/bloodcrawl.dm b/code/modules/spells/spell_types/bloodcrawl.dm index e4c33380b2..49d73b445b 100644 --- a/code/modules/spells/spell_types/bloodcrawl.dm +++ b/code/modules/spells/spell_types/bloodcrawl.dm @@ -13,6 +13,7 @@ action_icon_state = "bloodcrawl" action_background_icon_state = "bg_demon" var/phased = 0 + charge_max = 6 /obj/effect/proc_holder/spell/bloodcrawl/choose_targets(mob/user = usr) for(var/obj/effect/decal/cleanable/target in range(range, get_turf(user))) diff --git a/code/modules/spells/spell_types/summonitem.dm b/code/modules/spells/spell_types/summonitem.dm index c4b184cc9b..d0e415fb2a 100644 --- a/code/modules/spells/spell_types/summonitem.dm +++ b/code/modules/spells/spell_types/summonitem.dm @@ -38,7 +38,7 @@ else message = "You must hold the desired item in your hands to mark it for recall." - else if(marked_item && marked_item in hand_items) //unlinking item to the spell + else if(marked_item && (marked_item in hand_items)) //unlinking item to the spell message = "You remove the mark on [marked_item] to use elsewhere." name = "Instant Summons" marked_item = null @@ -78,7 +78,7 @@ if(iscarbon(M)) //Edge case housekeeping var/mob/living/carbon/C = M - if(C.stomach_contents && item_to_retrieve in C.stomach_contents) + if(C.stomach_contents && (item_to_retrieve in C.stomach_contents)) C.stomach_contents -= item_to_retrieve for(var/X in C.bodyparts) var/obj/item/bodypart/part = X diff --git a/code/modules/spells/spell_types/wizard.dm b/code/modules/spells/spell_types/wizard.dm index e098fe389d..44fdd1eb55 100644 --- a/code/modules/spells/spell_types/wizard.dm +++ b/code/modules/spells/spell_types/wizard.dm @@ -248,6 +248,7 @@ mutations = list(BLINDMUT) duration = 300 sound = 'sound/magic/blind.ogg' + /obj/effect/proc_holder/spell/aoe_turf/repulse name = "Repulse" desc = "This spell throws everything around the user away." @@ -266,15 +267,22 @@ action_icon_state = "repulse" /obj/effect/proc_holder/spell/aoe_turf/repulse/cast(list/targets,mob/user = usr, stun_amt = 50) + var/list/mobs = list() + var/list/objs = list() var/list/thrownatoms = list() var/atom/throwtarget var/distfromcaster playMagSound() for(var/turf/T in targets) //Done this way so things don't get thrown all around hilariously. - for(var/atom/movable/AM in T) - thrownatoms += AM - + for(var/mob/M in T) + mobs += M + for(var/obj/O in T) + objs += O + thrownatoms = mobs + objs //mobs first + var/safety = 50 for(var/am in thrownatoms) + if(!safety) + break var/atom/movable/AM = am if(AM == user || AM.anchored) continue @@ -299,6 +307,7 @@ M.Knockdown(stun_amt, override_hardstun = stun_amt * 0.2) to_chat(M, "You're thrown back by [user]!") AM.throw_at(throwtarget, ((CLAMP((maxthrow - (CLAMP(distfromcaster - 2, 0, distfromcaster))), 3, maxthrow))), 1,user)//So stuff gets tossed around at the same time. + safety-- /obj/effect/proc_holder/spell/aoe_turf/repulse/xeno //i fixed conflicts only to find out that this is in the WIZARD file instead of the xeno file?! name = "Tail Sweep" diff --git a/code/modules/surgery/advanced/bioware/bioware_surgery.dm b/code/modules/surgery/advanced/bioware/bioware_surgery.dm index eb8f739193..a68ac6eb1c 100644 --- a/code/modules/surgery/advanced/bioware/bioware_surgery.dm +++ b/code/modules/surgery/advanced/bioware/bioware_surgery.dm @@ -2,7 +2,7 @@ name = "enhancement surgery" var/bioware_target = BIOWARE_GENERIC -/datum/surgery/advanced/bioware/can_start(mob/user, mob/living/carbon/human/target) +/datum/surgery/advanced/bioware/can_start(mob/user, mob/living/carbon/human/target, obj/item/tool) if(!..()) return FALSE if(!istype(target)) diff --git a/code/modules/surgery/advanced/brainwashing.dm b/code/modules/surgery/advanced/brainwashing.dm index b067cce56b..28103f7f97 100644 --- a/code/modules/surgery/advanced/brainwashing.dm +++ b/code/modules/surgery/advanced/brainwashing.dm @@ -16,7 +16,7 @@ target_mobtypes = list(/mob/living/carbon/human) possible_locs = list(BODY_ZONE_HEAD) -/datum/surgery/advanced/brainwashing/can_start(mob/user, mob/living/carbon/target) +/datum/surgery/advanced/brainwashing/can_start(mob/user, mob/living/carbon/target, obj/item/tool) if(!..()) return FALSE var/obj/item/organ/brain/B = target.getorganslot(ORGAN_SLOT_BRAIN) diff --git a/code/modules/surgery/advanced/lobotomy.dm b/code/modules/surgery/advanced/lobotomy.dm index 0149fc6c27..a41e72b76d 100644 --- a/code/modules/surgery/advanced/lobotomy.dm +++ b/code/modules/surgery/advanced/lobotomy.dm @@ -12,7 +12,7 @@ target_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) possible_locs = list(BODY_ZONE_HEAD) requires_bodypart_type = 0 -/datum/surgery/advanced/lobotomy/can_start(mob/user, mob/living/carbon/target) +/datum/surgery/advanced/lobotomy/can_start(mob/user, mob/living/carbon/target, obj/item/tool) if(!..()) return FALSE var/obj/item/organ/brain/B = target.getorganslot(ORGAN_SLOT_BRAIN) diff --git a/code/modules/surgery/advanced/necrotic_revival.dm b/code/modules/surgery/advanced/necrotic_revival.dm index d95d0a3ac7..bae2bc064b 100644 --- a/code/modules/surgery/advanced/necrotic_revival.dm +++ b/code/modules/surgery/advanced/necrotic_revival.dm @@ -8,7 +8,7 @@ /datum/surgery_step/bionecrosis, /datum/surgery_step/close) possible_locs = list(BODY_ZONE_HEAD) -/datum/surgery/advanced/necrotic_revival/can_start(mob/user, mob/living/carbon/target) +/datum/surgery/advanced/necrotic_revival/can_start(mob/user, mob/living/carbon/target, obj/item/tool) . = ..() var/obj/item/organ/zombie_infection/ZI = target.getorganslot(ORGAN_SLOT_ZOMBIE) if(ZI) diff --git a/code/modules/surgery/advanced/pacification.dm b/code/modules/surgery/advanced/pacification.dm index 866c85842b..7b85015420 100644 --- a/code/modules/surgery/advanced/pacification.dm +++ b/code/modules/surgery/advanced/pacification.dm @@ -11,7 +11,7 @@ target_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) possible_locs = list(BODY_ZONE_HEAD) requires_bodypart_type = 0 -/datum/surgery/advanced/pacify/can_start(mob/user, mob/living/carbon/target) +/datum/surgery/advanced/pacify/can_start(mob/user, mob/living/carbon/target, obj/item/tool) . = ..() var/obj/item/organ/brain/B = target.getorganslot(ORGAN_SLOT_BRAIN) if(!B) diff --git a/code/modules/surgery/advanced/revival.dm b/code/modules/surgery/advanced/revival.dm index fbfec404b2..e9f8ff4446 100644 --- a/code/modules/surgery/advanced/revival.dm +++ b/code/modules/surgery/advanced/revival.dm @@ -12,7 +12,7 @@ target_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) possible_locs = list(BODY_ZONE_HEAD) requires_bodypart_type = 0 -/datum/surgery/advanced/revival/can_start(mob/user, mob/living/carbon/target) +/datum/surgery/advanced/revival/can_start(mob/user, mob/living/carbon/target, obj/item/tool) if(!..()) return FALSE if(target.stat != DEAD) diff --git a/code/modules/surgery/advanced/viral_bonding.dm b/code/modules/surgery/advanced/viral_bonding.dm index 86832602e8..1cb06d1560 100644 --- a/code/modules/surgery/advanced/viral_bonding.dm +++ b/code/modules/surgery/advanced/viral_bonding.dm @@ -10,7 +10,7 @@ target_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) possible_locs = list(BODY_ZONE_CHEST) -/datum/surgery/advanced/viral_bonding/can_start(mob/user, mob/living/carbon/target) +/datum/surgery/advanced/viral_bonding/can_start(mob/user, mob/living/carbon/target, obj/item/tool) if(!..()) return FALSE if(!LAZYLEN(target.diseases)) diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index 097be23c40..c9affe92f9 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -5,6 +5,7 @@ force = 3 throwforce = 3 icon = 'icons/mob/human_parts.dmi' + w_class = WEIGHT_CLASS_SMALL icon_state = "" layer = BELOW_MOB_LAYER //so it isn't hidden behind objects when on the floor var/mob/living/carbon/owner = null diff --git a/code/modules/surgery/brain_surgery.dm b/code/modules/surgery/brain_surgery.dm index d86f5731c7..afaa66dae9 100644 --- a/code/modules/surgery/brain_surgery.dm +++ b/code/modules/surgery/brain_surgery.dm @@ -15,7 +15,7 @@ name = "fix brain" implements = list(TOOL_HEMOSTAT = 85, TOOL_SCREWDRIVER = 35, /obj/item/pen = 15) //don't worry, pouring some alcohol on their open brain will get that chance to 100 time = 120 //long and complicated -/datum/surgery/brain_surgery/can_start(mob/user, mob/living/carbon/target) +/datum/surgery/brain_surgery/can_start(mob/user, mob/living/carbon/target, obj/item/tool) var/obj/item/organ/brain/B = target.getorganslot(ORGAN_SLOT_BRAIN) if(!B) return FALSE diff --git a/code/modules/surgery/core_removal.dm b/code/modules/surgery/core_removal.dm index 07b762bd2f..683663c241 100644 --- a/code/modules/surgery/core_removal.dm +++ b/code/modules/surgery/core_removal.dm @@ -6,7 +6,7 @@ lying_required = FALSE ignore_clothes = TRUE -/datum/surgery/core_removal/can_start(mob/user, mob/living/target) +/datum/surgery/core_removal/can_start(mob/user, mob/living/target, obj/item/tool) if(target.stat == DEAD) return 1 return 0 diff --git a/code/modules/surgery/coronary_bypass.dm b/code/modules/surgery/coronary_bypass.dm index 71a48ae68c..af736e393c 100644 --- a/code/modules/surgery/coronary_bypass.dm +++ b/code/modules/surgery/coronary_bypass.dm @@ -4,7 +4,7 @@ /datum/surgery_step/incise_heart, /datum/surgery_step/coronary_bypass, /datum/surgery_step/close) possible_locs = list(BODY_ZONE_CHEST) -/datum/surgery/coronary_bypass/can_start(mob/user, mob/living/carbon/target) +/datum/surgery/coronary_bypass/can_start(mob/user, mob/living/carbon/target, obj/item/tool) var/obj/item/organ/heart/H = target.getorganslot(ORGAN_SLOT_HEART) if(H) if(H.damage > 60 && !H.operated) diff --git a/code/modules/surgery/experimental_dissection.dm b/code/modules/surgery/experimental_dissection.dm index 40fe90a829..6110bb6202 100644 --- a/code/modules/surgery/experimental_dissection.dm +++ b/code/modules/surgery/experimental_dissection.dm @@ -15,7 +15,7 @@ requires_tech = FALSE var/value_multiplier = 1 -/datum/surgery/advanced/experimental_dissection/can_start(mob/user, mob/living/target) +/datum/surgery/advanced/experimental_dissection/can_start(mob/user, mob/living/target, obj/item/tool) . = ..() if(HAS_TRAIT_FROM(target, TRAIT_DISSECTED,"[name]")) return FALSE @@ -24,8 +24,8 @@ /datum/surgery_step/dissection name = "dissection" - implements = list(/obj/item/scalpel/augment = 75, /obj/item/scalpel/advanced = 60, /obj/item/scalpel = 45, /obj/item/kitchen/knife = 20, /obj/item/shard = 10)// special tools not only cut down time but also improve probability, doesn't use TOOL_SCALPEL because different scalpels have different probs - time = 125 + implements = list(/obj/item/scalpel/alien = 100, /obj/item/scalpel/advanced = 99, /obj/item/scalpel = 90, /obj/item/kitchen/knife = 45, /obj/item/shard = 25)// special tools not only cut down time but also improve probability, doesn't use TOOL_SCALPEL because different scalpels have different probs + time = 100 silicons_obey_prob = TRUE repeatable = TRUE @@ -110,4 +110,4 @@ requires_tech = TRUE replaced_by = null -#undef BASE_HUMAN_REWARD \ No newline at end of file +#undef BASE_HUMAN_REWARD diff --git a/code/modules/surgery/eye_surgery.dm b/code/modules/surgery/eye_surgery.dm index c104afd25a..006dbe2af1 100644 --- a/code/modules/surgery/eye_surgery.dm +++ b/code/modules/surgery/eye_surgery.dm @@ -9,7 +9,7 @@ name = "fix eyes" implements = list(TOOL_HEMOSTAT = 100, TOOL_SCREWDRIVER = 45, /obj/item/pen = 25) time = 64 -/datum/surgery/eye_surgery/can_start(mob/user, mob/living/carbon/target) +/datum/surgery/eye_surgery/can_start(mob/user, mob/living/carbon/target, obj/item/tool) var/obj/item/organ/eyes/E = target.getorganslot(ORGAN_SLOT_EYES) if(!E) to_chat(user, "It's hard to do surgery on someone's eyes when [target.p_they()] [target.p_do()]n't have any.") diff --git a/code/modules/surgery/helpers.dm b/code/modules/surgery/helpers.dm index cdae1aea48..773048f838 100644 --- a/code/modules/surgery/helpers.dm +++ b/code/modules/surgery/helpers.dm @@ -34,7 +34,7 @@ continue if(S.lying_required && !(M.lying)) continue - if(!S.can_start(user, M)) + if(!S.can_start(user, M, I)) continue for(var/path in S.target_mobtypes) if(istype(M, path)) @@ -64,7 +64,7 @@ return if(S.lying_required && !(M.lying)) return - if(!S.can_start(user, M)) + if(!S.can_start(user, M, I)) return if(S.ignore_clothes || get_location_accessible(M, selected_zone)) diff --git a/code/modules/surgery/lipoplasty.dm b/code/modules/surgery/lipoplasty.dm index b774883528..63e828d3c9 100644 --- a/code/modules/surgery/lipoplasty.dm +++ b/code/modules/surgery/lipoplasty.dm @@ -2,7 +2,7 @@ name = "Lipoplasty" steps = list(/datum/surgery_step/incise, /datum/surgery_step/clamp_bleeders, /datum/surgery_step/cut_fat, /datum/surgery_step/remove_fat, /datum/surgery_step/close) possible_locs = list(BODY_ZONE_CHEST) -/datum/surgery/lipoplasty/can_start(mob/user, mob/living/carbon/target) +/datum/surgery/lipoplasty/can_start(mob/user, mob/living/carbon/target, obj/item/tool) if(HAS_TRAIT(target, TRAIT_FAT)) return 1 return 0 diff --git a/code/modules/surgery/lobectomy.dm b/code/modules/surgery/lobectomy.dm index 297be175a0..7ef7e4cd7f 100644 --- a/code/modules/surgery/lobectomy.dm +++ b/code/modules/surgery/lobectomy.dm @@ -4,7 +4,7 @@ /datum/surgery_step/lobectomy, /datum/surgery_step/close) possible_locs = list(BODY_ZONE_CHEST) -/datum/surgery/lobectomy/can_start(mob/user, mob/living/carbon/target) +/datum/surgery/lobectomy/can_start(mob/user, mob/living/carbon/target, obj/item/tool) var/obj/item/organ/lungs/L = target.getorganslot(ORGAN_SLOT_LUNGS) if(L) if(L.damage > 60 && !L.operated) diff --git a/code/modules/surgery/organs/augments_arms.dm b/code/modules/surgery/organs/augments_arms.dm index 792facd360..7371afd40f 100644 --- a/code/modules/surgery/organs/augments_arms.dm +++ b/code/modules/surgery/organs/augments_arms.dm @@ -92,7 +92,7 @@ ADD_TRAIT(holder, TRAIT_NODROP, HAND_REPLACEMENT_TRAIT) holder.resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF holder.slot_flags = null - holder.materials = null + holder.set_custom_materials(null) if(istype(holder, /obj/item/assembly/flash/armimplant)) var/obj/item/assembly/flash/F = holder diff --git a/code/modules/surgery/organs/eyes.dm b/code/modules/surgery/organs/eyes.dm index dfbf4ee21e..a915d12838 100644 --- a/code/modules/surgery/organs/eyes.dm +++ b/code/modules/surgery/organs/eyes.dm @@ -51,12 +51,12 @@ clear_eye_trauma() . = ..() var/mob/living/carbon/C = . - if(C) + if(!QDELETED(C)) if(ishuman(C) && eye_color) var/mob/living/carbon/human/H = C H.eye_color = old_eye_color if(!special) - H.dna.species.handle_body() + H.dna.species.handle_body(H) if(!special) C.update_tint() C.update_sight() @@ -377,3 +377,7 @@ name = "insect eyes" desc = "These eyes seem to have increased sensitivity to bright light, with no improvement to low light vision." flash_protect = -1 + +/obj/item/organ/eyes/ipc + name = "ipc eyes" + icon_state = "cybernetic_eyeballs" \ No newline at end of file diff --git a/code/modules/surgery/organs/heart.dm b/code/modules/surgery/organs/heart.dm index 77aa302f8c..547ca38ead 100644 --- a/code/modules/surgery/organs/heart.dm +++ b/code/modules/surgery/organs/heart.dm @@ -6,7 +6,7 @@ slot = ORGAN_SLOT_HEART healing_factor = STANDARD_ORGAN_HEALING - decay_factor = 2.5 * STANDARD_ORGAN_DECAY //designed to fail about 5 minutes after death + decay_factor = 2 * STANDARD_ORGAN_DECAY low_threshold_passed = "Prickles of pain appear then die out from within your chest..." high_threshold_passed = "Something inside your chest hurts, and the pain isn't subsiding. You notice yourself breathing far faster than before." @@ -222,9 +222,8 @@ obj/item/organ/heart/cybernetic/upgraded/on_life() /obj/item/organ/heart/ipc name = "IPC heart" - desc = "An electronic pump that regulates hydraulic functions, they have an auto-restart after EMPs." + desc = "An electronic pump that regulates hydraulic functions, the electronics have EMP shielding." icon_state = "heart-c" - organ_flags = ORGAN_SYNTHETIC /obj/item/organ/heart/freedom name = "heart of freedom" diff --git a/code/modules/surgery/organs/liver.dm b/code/modules/surgery/organs/liver.dm index 680d2389de..73225fc41c 100755 --- a/code/modules/surgery/organs/liver.dm +++ b/code/modules/surgery/organs/liver.dm @@ -95,6 +95,10 @@ icon_state = "liver-p" desc = "A large crystal that is somehow capable of metabolizing chemicals, these are found in plasmamen." +/obj/item/organ/liver/ipc + name = "reagent processing liver" + icon_state = "liver-c" + /obj/item/organ/liver/cybernetic name = "cybernetic liver" icon_state = "liver-c" diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm index 91153655d3..b774aaf793 100644 --- a/code/modules/surgery/organs/lungs.dm +++ b/code/modules/surgery/organs/lungs.dm @@ -2,6 +2,7 @@ /obj/item/organ/lungs name = "lungs" + desc = "Looking at them makes you start manual breathing." icon_state = "lungs" zone = BODY_ZONE_CHEST slot = ORGAN_SLOT_LUNGS @@ -462,6 +463,10 @@ S.reagents.add_reagent(/datum/reagent/medicine/salbutamol, 5) return S +/obj/item/organ/lungs/ipc + name = "ipc lungs" + icon_state = "lungs-c" + /obj/item/organ/lungs/plasmaman name = "plasma filter" desc = "A spongy rib-shaped mass for filtering plasma from the air." @@ -543,4 +548,4 @@ /obj/item/organ/lungs/yamerol/on_life() ..() - damage += 2 //Yamerol lungs are temporary + damage += 2 //Yamerol lungs are temporary \ No newline at end of file diff --git a/code/modules/surgery/organs/stomach.dm b/code/modules/surgery/organs/stomach.dm index 94f88cbe67..3b383581cf 100755 --- a/code/modules/surgery/organs/stomach.dm +++ b/code/modules/surgery/organs/stomach.dm @@ -96,3 +96,7 @@ name = "digestive crystal" icon_state = "stomach-p" desc = "A strange crystal that is responsible for metabolizing the unseen energy force that feeds plasmamen." + +/obj/item/organ/stomach/ipc + name = "ipc stomach" + icon_state = "stomach-ipc" diff --git a/code/modules/surgery/organs/tongue.dm b/code/modules/surgery/organs/tongue.dm index 8ad293fbcb..bcc764d00a 100644 --- a/code/modules/surgery/organs/tongue.dm +++ b/code/modules/surgery/organs/tongue.dm @@ -30,39 +30,23 @@ /obj/item/organ/tongue/Initialize(mapload) . = ..() + low_threshold_passed = "Your [name] feels a little sore." + low_threshold_cleared = "Your [name] soreness has subsided." + high_threshold_passed = "Your [name] is really starting to hurt." + high_threshold_cleared = "The pain of your [name] has subsided a little." + now_failing = "Your [name] feels like it's about to fall out!." + now_fixed = "The excruciating pain of your [name] has subsided." languages_possible = languages_possible_base /obj/item/organ/tongue/proc/handle_speech(datum/source, list/speech_args) + return -/obj/item/organ/tongue/emp_act(severity) +/obj/item/organ/tongue/applyOrganDamage(d, maximum = maxHealth) . = ..() - if(. & EMP_PROTECT_SELF) - return - if(organ_flags & ORGAN_SYNTHETIC) - var/errormessage = list("Runtime in tongue.dm, line 39: Undefined operation \"zapzap ow my tongue\"", "afhsjifksahgjkaslfhashfjsak", "-1.#IND", "Graham's number", "inside you all along", "awaiting at least 1 approving review before merging this taste request") - owner.say("The pH is appropriately [pick(errormessage)].") - -/obj/item/organ/tongue/applyOrganDamage(var/d, var/maximum = maxHealth) - - if(!d) //Micro-optimization. - return - if(maximum < damage) - return - damage = CLAMP(damage + d, 0, maximum) - var/mess = check_damage_thresholds(owner) - prev_damage = damage - if(mess && owner) - to_chat(owner, mess) - - if ((damage / maxHealth) > 1) + if (damage >= maxHealth) to_chat(owner, "Your tongue is singed beyond recognition, and disintegrates!") SSblackbox.record_feedback("tally", "fermi_chem", 1, "Tongues lost to Fermi") qdel(src) - else if ((damage / maxHealth) > 0.85) - to_chat(owner, "Your tongue feels like it's about to fall out!.") - else if ((damage / maxHealth) > 0.5) - to_chat(owner, "Your tongue is really starting to hurt.") - /obj/item/organ/tongue/Insert(mob/living/carbon/M, special = 0, drop_if_replaced = TRUE) ..() @@ -311,6 +295,13 @@ maxHealth = 60 //It's robotic! organ_flags = ORGAN_SYNTHETIC +/obj/item/organ/tongue/cybernetic/emp_act(severity) + . = ..() + if(. & EMP_PROTECT_SELF) + return + var/errormessage = list("Runtime in tongue.dm, line 39: Undefined operation \"zapzap ow my tongue\"", "afhsjifksahgjkaslfhashfjsak", "-1.#IND", "Graham's number", "inside you all along", "awaiting at least 1 approving review before merging this taste request") + owner.say("The pH is appropriately [pick(errormessage)].", forced = "EMPed synthetic tongue") + /obj/item/organ/tongue/cybernetic/handle_speech(datum/source, list/speech_args) speech_args[SPEECH_SPANS] |= SPAN_ROBOT diff --git a/code/modules/surgery/prosthetic_replacement.dm b/code/modules/surgery/prosthetic_replacement.dm index 8efa40a70a..62ce16e7e6 100644 --- a/code/modules/surgery/prosthetic_replacement.dm +++ b/code/modules/surgery/prosthetic_replacement.dm @@ -5,7 +5,7 @@ possible_locs = list(BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG, BODY_ZONE_HEAD) requires_bodypart = FALSE //need a missing limb requires_bodypart_type = 0 -/datum/surgery/prosthetic_replacement/can_start(mob/user, mob/living/carbon/target) +/datum/surgery/prosthetic_replacement/can_start(mob/user, mob/living/carbon/target, obj/item/tool) if(!iscarbon(target)) return 0 var/mob/living/carbon/C = target diff --git a/code/modules/surgery/surgery.dm b/code/modules/surgery/surgery.dm index a920ea765a..51ce2726b0 100644 --- a/code/modules/surgery/surgery.dm +++ b/code/modules/surgery/surgery.dm @@ -37,7 +37,7 @@ return ..() -/datum/surgery/proc/can_start(mob/user, mob/living/patient) //FALSE to not show in list +/datum/surgery/proc/can_start(mob/user, mob/living/patient, obj/item/tool) //FALSE to not show in list . = TRUE if(replaced_by == /datum/surgery) return FALSE @@ -55,27 +55,26 @@ if(requires_tech) . = FALSE + var/list/advanced_surgeries = list() if(iscyborg(user)) var/mob/living/silicon/robot/R = user var/obj/item/surgical_processor/SP = locate() in R.module.modules if(SP) - if (replaced_by in SP.advanced_surgeries) - return . - if(type in SP.advanced_surgeries) - return TRUE - + advanced_surgeries |= SP.advanced_surgeries var/turf/T = get_turf(patient) var/obj/structure/table/optable/table = locate(/obj/structure/table/optable, T) - if(table) - if(!table.computer) - return . - if(table.computer.stat & (NOPOWER|BROKEN)) - return . - if(replaced_by in table.computer.advanced_surgeries) - return FALSE - if(type in table.computer.advanced_surgeries) - return TRUE + if(table?.computer && !CHECK_BITFIELD(table.computer.stat, NOPOWER|BROKEN)) + advanced_surgeries |= table.computer.advanced_surgeries + + if(istype(tool, /obj/item/surgical_drapes/advanced)) + var/obj/item/surgical_drapes/advanced/A = tool + advanced_surgeries |= A.get_advanced_surgeries() + + if(replaced_by in advanced_surgeries) + return FALSE + if(type in advanced_surgeries) + return TRUE /datum/surgery/proc/next_step(mob/user, intent) if(step_in_progress) @@ -132,14 +131,14 @@ name = "Surgery Procedure Disk" desc = "A disk that contains advanced surgery procedures, must be loaded into an Operating Console." icon_state = "datadisk1" - materials = list(MAT_METAL=300, MAT_GLASS=100) + custom_materials = list(/datum/material/iron=300, /datum/material/glass=100) var/list/surgeries /obj/item/disk/surgery/debug name = "Debug Surgery Disk" desc = "A disk that contains all existing surgery procedures." icon_state = "datadisk1" - materials = list(MAT_METAL=300, MAT_GLASS=100) + custom_materials = list(/datum/material/iron=300, /datum/material/glass=100) /obj/item/disk/surgery/debug/Initialize() . = ..() diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm index c8fe7597da..8dae96eaf9 100644 --- a/code/modules/surgery/tools.dm +++ b/code/modules/surgery/tools.dm @@ -3,7 +3,7 @@ desc = "Retracts stuff." icon = 'icons/obj/surgery.dmi' icon_state = "retractor" - materials = list(MAT_METAL=6000, MAT_GLASS=3000) + custom_materials = list(/datum/material/iron=6000, /datum/material/glass=3000) item_flags = SURGICAL_TOOL flags_1 = CONDUCT_1 w_class = WEIGHT_CLASS_TINY @@ -37,7 +37,7 @@ desc = "Micro-mechanical manipulator for retracting stuff." icon = 'icons/obj/surgery.dmi' icon_state = "retractor" - materials = list(MAT_METAL=6000, MAT_GLASS=3000) + custom_materials = list(/datum/material/iron=6000, /datum/material/glass=3000) flags_1 = CONDUCT_1 w_class = WEIGHT_CLASS_TINY toolspeed = 0.5 @@ -47,7 +47,7 @@ desc = "You think you have seen this before." icon = 'icons/obj/surgery.dmi' icon_state = "hemostat" - materials = list(MAT_METAL=5000, MAT_GLASS=2500) + custom_materials = list(/datum/material/iron=5000, /datum/material/glass=2500) item_flags = SURGICAL_TOOL flags_1 = CONDUCT_1 w_class = WEIGHT_CLASS_TINY @@ -60,7 +60,7 @@ desc = "Tiny servos power a pair of pincers to stop bleeding." icon = 'icons/obj/surgery.dmi' icon_state = "hemostat" - materials = list(MAT_METAL=5000, MAT_GLASS=2500) + custom_materials = list(/datum/material/iron=5000, /datum/material/glass=2500) flags_1 = CONDUCT_1 w_class = WEIGHT_CLASS_TINY toolspeed = 0.5 @@ -72,7 +72,7 @@ desc = "This stops bleeding." icon = 'icons/obj/surgery.dmi' icon_state = "cautery" - materials = list(MAT_METAL=2500, MAT_GLASS=750) + custom_materials = list(/datum/material/iron=2500, /datum/material/glass=750) item_flags = SURGICAL_TOOL flags_1 = CONDUCT_1 w_class = WEIGHT_CLASS_TINY @@ -85,7 +85,7 @@ desc = "A heated element that cauterizes wounds." icon = 'icons/obj/surgery.dmi' icon_state = "cautery" - materials = list(MAT_METAL=2500, MAT_GLASS=750) + custom_materials = list(/datum/material/iron=2500, /datum/material/glass=750) flags_1 = CONDUCT_1 w_class = WEIGHT_CLASS_TINY toolspeed = 0.5 @@ -100,7 +100,7 @@ lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' hitsound = 'sound/weapons/circsawhit.ogg' - materials = list(MAT_METAL=10000, MAT_GLASS=6000) + custom_materials = list(/datum/material/iron=10000, /datum/material/glass=6000) item_flags = SURGICAL_TOOL flags_1 = CONDUCT_1 force = 15 @@ -141,7 +141,7 @@ icon = 'icons/obj/surgery.dmi' icon_state = "drill" hitsound = 'sound/weapons/circsawhit.ogg' - materials = list(MAT_METAL=10000, MAT_GLASS=6000) + custom_materials = list(/datum/material/iron=10000, /datum/material/glass=6000) flags_1 = CONDUCT_1 force = 10 w_class = WEIGHT_CLASS_SMALL @@ -162,7 +162,7 @@ throwforce = 5 throw_speed = 3 throw_range = 5 - materials = list(MAT_METAL=4000, MAT_GLASS=1000) + custom_materials = list(/datum/material/iron=4000, /datum/material/glass=1000) item_flags = SURGICAL_TOOL attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") hitsound = 'sound/weapons/bladeslice.ogg' @@ -219,7 +219,7 @@ throwforce = 5 throw_speed = 3 throw_range = 5 - materials = list(MAT_METAL=4000, MAT_GLASS=1000) + custom_materials = list(/datum/material/iron=4000, /datum/material/glass=1000) attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") toolspeed = 0.5 hitsound = 'sound/weapons/bladeslice.ogg' @@ -246,7 +246,7 @@ throwforce = 9 throw_speed = 2 throw_range = 5 - materials = list(MAT_METAL=10000, MAT_GLASS=6000) + custom_materials = list(/datum/material/iron=10000, /datum/material/glass=6000) attack_verb = list("attacked", "slashed", "sawed", "cut") sharpness = IS_SHARP tool_behaviour = TOOL_SAW @@ -270,7 +270,7 @@ throwforce = 9 throw_speed = 2 throw_range = 5 - materials = list(MAT_METAL=10000, MAT_GLASS=6000) + custom_materials = list(/datum/material/iron=10000, /datum/material/glass=6000) toolspeed = 0.5 attack_verb = list("attacked", "slashed", "sawed", "cut") sharpness = IS_SHARP @@ -287,6 +287,26 @@ if(!attempt_initiate_surgery(src, M, user)) ..() +/obj/item/surgical_drapes/advanced + name = "smart surgical drapes" + desc = "A quite quirky set of drapes with wireless synchronization to the station's research networks, with an integrated display allowing users to execute advanced surgeries without the aid of an operating computer." + var/datum/techweb/linked_techweb + +/obj/item/surgical_drapes/advanced/Initialize(mapload) + . = ..() + linked_techweb = SSresearch.science_tech + +/obj/item/surgical_drapes/advanced/proc/get_advanced_surgeries() + . = list() + if(!linked_techweb) + return + for(var/subtype in subtypesof(/datum/design/surgery)) + var/datum/design/surgery/prototype = subtype + var/id = initial(prototype.id) + if(id in linked_techweb.researched_designs) + prototype = SSresearch.techweb_design_by_id(id) + . |= prototype.surgery + /obj/item/organ_storage //allows medical cyborgs to manipulate organs without hands name = "organ storage bag" desc = "A container for holding body parts." diff --git a/code/modules/tgs/core/core.dm b/code/modules/tgs/core/core.dm index 61f1e71d2e..70252cfb49 100644 --- a/code/modules/tgs/core/core.dm +++ b/code/modules/tgs/core/core.dm @@ -1,47 +1,60 @@ -/world/TgsNew(datum/tgs_event_handler/event_handler) - var/tgs_version = world.params[TGS_VERSION_PARAMETER] - if(!tgs_version) +/world/TgsNew(datum/tgs_event_handler/event_handler, minimum_required_security_level = TGS_SECURITY_ULTRASAFE) + var/current_api = TGS_READ_GLOBAL(tgs) + if(current_api) + TGS_ERROR_LOG("TgsNew(): TGS API datum already set ([current_api])! Was TgsNew() called more than once?") return - var/path = SelectTgsApi(tgs_version) - if(!path) - TGS_ERROR_LOG("Found unsupported API version: [tgs_version]. If this is a valid version please report this, backporting is done on demand.") +#ifdef TGS_V3_API + minimum_required_security_level = TGS_SECURITY_TRUSTED +#endif + var/raw_parameter = world.params[TGS_VERSION_PARAMETER] + if(!raw_parameter) + return - TGS_INFO_LOG("Activating API for version [tgs_version]") - var/datum/tgs_api/new_api = new path + var/datum/tgs_version/version = new(raw_parameter) + if(!version.Valid(FALSE)) + TGS_ERROR_LOG("Failed to validate TGS version parameter: [raw_parameter]!") + return - var/result = new_api.OnWorldNew(event_handler ? event_handler : new /datum/tgs_event_handler/tgs_default) - if(result && result != TGS_UNIMPLEMENTED) - TGS_WRITE_GLOBAL(tgs, new_api) - else + var/api_datum + switch(version.suite) + if(3) +#ifndef TGS_V3_API + TGS_ERROR_LOG("Detected V3 API but TGS_V3_API isn't defined!") +#else + switch(version.major) + if(2) + api_datum = /datum/tgs_api/v3210 +#endif + if(4) + switch(version.major) + if(0) + api_datum = /datum/tgs_api/v4 + + var/datum/tgs_version/max_api_version = TgsMaximumAPIVersion(); + if(version.suite != null && version.major != null && version.minor != null && version.patch != null && version.deprefixed_parameter > max_api_version.deprefixed_parameter) + TGS_ERROR_LOG("Detected unknown API version! Defaulting to latest. Update the DMAPI to fix this problem.") + api_datum = /datum/tgs_api/latest + + if(!api_datum) + TGS_ERROR_LOG("Found unsupported API version: [raw_parameter]. If this is a valid version please report this, backporting is done on demand.") + return + + TGS_INFO_LOG("Activating API for version [version.deprefixed_parameter]") + var/datum/tgs_api/new_api = new api_datum(version) + + TGS_WRITE_GLOBAL(tgs, new_api) + + var/result = new_api.OnWorldNew(event_handler, minimum_required_security_level) + if(!result || result == TGS_UNIMPLEMENTED) + TGS_WRITE_GLOBAL(tgs, null) TGS_ERROR_LOG("Failed to activate API!") -/world/proc/SelectTgsApi(tgs_version) - //remove the old 3.0 header - tgs_version = replacetext(tgs_version, "/tg/station 13 Server v", "") - - var/list/version_bits = splittext(tgs_version, ".") - - var/super = text2num(version_bits[1]) - var/major = text2num(version_bits[2]) - var/minor = text2num(version_bits[3]) - var/patch = text2num(version_bits[4]) - - switch(super) - if(3) - switch(major) - if(2) - return /datum/tgs_api/v3210 - - if(super != null && major != null && minor != null && patch != null && tgs_version > TgsMaximumAPIVersion()) - TGS_ERROR_LOG("Detected unknown API version! Defaulting to latest. Update the DMAPI to fix this problem.") - return /datum/tgs_api/latest - /world/TgsMaximumAPIVersion() - return "4.0.0.0" + return new /datum/tgs_version("4.0.x.x") /world/TgsMinimumAPIVersion() - return "3.2.0.0" + return new /datum/tgs_version("3.2.0.0") /world/TgsInitializationComplete() var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) @@ -71,7 +84,9 @@ return TGS_READ_GLOBAL(tgs) != null /world/TgsVersion() - return world.params[TGS_VERSION_PARAMETER] + var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) + if(api) + return api.version /world/TgsInstanceName() var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) @@ -116,6 +131,11 @@ if(api) api.ChatPrivateMessage(message, user) +/world/TgsSecurityLevel() + var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) + if(api) + api.SecurityLevel() + /* The MIT License diff --git a/code/modules/tgs/core/datum.dm b/code/modules/tgs/core/datum.dm index 6af39a75df..fb2508059a 100644 --- a/code/modules/tgs/core/datum.dm +++ b/code/modules/tgs/core/datum.dm @@ -1,9 +1,14 @@ TGS_DEFINE_AND_SET_GLOBAL(tgs, null) /datum/tgs_api + var/datum/tgs_version/version + +/datum/tgs_api/New(datum/tgs_version/version) + . = ..() + src.version = version /datum/tgs_api/latest - parent_type = /datum/tgs_api/v3210 + parent_type = /datum/tgs_api/v4 TGS_PROTECT_DATUM(/datum/tgs_api) @@ -46,6 +51,9 @@ TGS_PROTECT_DATUM(/datum/tgs_api) /datum/tgs_api/proc/ChatPrivateMessage(message, admin_only) return TGS_UNIMPLEMENTED +/datum/tgs_api/proc/SecurityLevel() + return TGS_UNIMPLEMENTED + /* The MIT License diff --git a/code/modules/tgs/core/default_event_handler.dm b/code/modules/tgs/core/default_event_handler.dm deleted file mode 100644 index 716715bb26..0000000000 --- a/code/modules/tgs/core/default_event_handler.dm +++ /dev/null @@ -1,30 +0,0 @@ -/datum/tgs_event_handler/tgs_default/HandleEvent(event_code) - //TODO - return - -/* -The MIT License - -Copyright (c) 2017 Jordan Brown - -Permission is hereby granted, free of charge, -to any person obtaining a copy of this software and -associated documentation files (the "Software"), to -deal in the Software without restriction, including -without limitation the rights to use, copy, modify, -merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom -the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR -ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ diff --git a/code/modules/tgs/core/tgs_version.dm b/code/modules/tgs/core/tgs_version.dm new file mode 100644 index 0000000000..b97745611f --- /dev/null +++ b/code/modules/tgs/core/tgs_version.dm @@ -0,0 +1,22 @@ +/datum/tgs_version/New(raw_parameter) + src.raw_parameter = raw_parameter + deprefixed_parameter = replacetext(raw_parameter, "/tg/station 13 Server v", "") + var/list/version_bits = splittext(deprefixed_parameter, ".") + + suite = text2num(version_bits[1]) + if(version_bits.len > 1) + major = text2num(version_bits[2]) + if(version_bits.len > 2) + minor = text2num(version_bits[3]) + if(version_bits.len == 4) + patch = text2num(version_bits[4]) + +/datum/tgs_version/proc/Valid(allow_wildcards = FALSE) + if(suite == null) + return FALSE + if(allow_wildcards) + return TRUE + return !Wildcard() + +/datum/tgs_version/Wildcard() + return major == null || minor == null || patch == null diff --git a/code/modules/tgs/includes.dm b/code/modules/tgs/includes.dm index 7ca906c840..247f1fda5d 100644 --- a/code/modules/tgs/includes.dm +++ b/code/modules/tgs/includes.dm @@ -1,6 +1,10 @@ #include "core\_definitions.dm" #include "core\core.dm" #include "core\datum.dm" -#include "core\default_event_handler.dm" +#include "core\tgs_version.dm" +#ifdef TGS_V3_API #include "v3210\api.dm" #include "v3210\commands.dm" +#endif +#include "v4\api.dm" +#include "v4\commands.dm" diff --git a/code/modules/tgs/v3210/api.dm b/code/modules/tgs/v3210/api.dm index 2a95f7861e..c536995b04 100644 --- a/code/modules/tgs/v3210/api.dm +++ b/code/modules/tgs/v3210/api.dm @@ -56,8 +56,9 @@ /datum/tgs_api/v3210/proc/file2list(filename) return splittext(trim_left(trim_right(file2text(filename))), "\n") -/datum/tgs_api/v3210/OnWorldNew(datum/tgs_event_handler/event_handler) //don't use event handling in this version +/datum/tgs_api/v3210/OnWorldNew(datum/tgs_event_handler/event_handler, minimum_required_security_level) //don't use event handling in this version . = FALSE + comms_key = world.params[SERVICE_WORLD_PARAM] instance_name = world.params[SERVICE_INSTANCE_PARAM] if(!instance_name) @@ -170,6 +171,7 @@ var/datum/tgs_revision_information/ri = new ri.commit = commit ri.origin_commit = originmastercommit + return ri /datum/tgs_api/v3210/EndProcess() sleep(world.tick_lag) //flush the buffers @@ -187,9 +189,12 @@ /datum/tgs_api/v3210/ChatTargetedBroadcast(message, admin_only) ExportService("[admin_only ? SERVICE_REQUEST_IRC_ADMIN_CHANNEL_MESSAGE : SERVICE_REQUEST_IRC_BROADCAST] [message]") -/datum/tgs_api/v3210/ChatPrivateMessage(message, admin_only) +/datum/tgs_api/v3210/ChatPrivateMessage(message, datum/tgs_chat_user/user) return TGS_UNIMPLEMENTED +/datum/tgs_api/v3210/SecurityLevel() + return TGS_SECURITY_TRUSTED + #undef REBOOT_MODE_NORMAL #undef REBOOT_MODE_HARD #undef REBOOT_MODE_SHUTDOWN diff --git a/code/modules/tgs/v4/api.dm b/code/modules/tgs/v4/api.dm new file mode 100644 index 0000000000..b61cddbeba --- /dev/null +++ b/code/modules/tgs/v4/api.dm @@ -0,0 +1,342 @@ +#define TGS4_PARAM_INFO_JSON "tgs_json" + +#define TGS4_INTEROP_ACCESS_IDENTIFIER "tgs_tok" + +#define TGS4_RESPONSE_SUCCESS "tgs_succ" + +#define TGS4_TOPIC_CHANGE_PORT "tgs_port" +#define TGS4_TOPIC_CHANGE_REBOOT_MODE "tgs_rmode" +#define TGS4_TOPIC_CHAT_COMMAND "tgs_chat_comm" +#define TGS4_TOPIC_EVENT "tgs_event" +#define TGS4_TOPIC_INTEROP_RESPONSE "tgs_interop" + +#define TGS4_COMM_NEW_PORT "tgs_new_port" +#define TGS4_COMM_VALIDATE "tgs_validate" +#define TGS4_COMM_SERVER_PRIMED "tgs_prime" +#define TGS4_COMM_WORLD_REBOOT "tgs_reboot" +#define TGS4_COMM_END_PROCESS "tgs_kill" +#define TGS4_COMM_CHAT "tgs_chat_send" + +#define TGS4_PARAMETER_COMMAND "tgs_com" +#define TGS4_PARAMETER_DATA "tgs_data" + +#define TGS4_PORT_CRITFAIL_MESSAGE " Must exit to let watchdog reboot..." + +#define EXPORT_TIMEOUT_DS 200 + +/datum/tgs_api/v4 + var/access_identifier + var/instance_name + var/json_path + var/chat_channels_json_path + var/chat_commands_json_path + var/server_commands_json_path + var/reboot_mode = TGS_REBOOT_MODE_NORMAL + var/security_level + + var/requesting_new_port = FALSE + + var/list/intercepted_message_queue + + var/list/custom_commands + + var/list/cached_test_merges + var/datum/tgs_revision_information/cached_revision + + var/datum/tgs_event_handler/event_handler + + var/export_lock = FALSE + var/list/last_interop_response + +/datum/tgs_api/v4/ApiVersion() + return "4.0.0.0" + +/datum/tgs_api/v4/OnWorldNew(datum/tgs_event_handler/event_handler, minimum_required_security_level) + json_path = world.params[TGS4_PARAM_INFO_JSON] + if(!json_path) + TGS_ERROR_LOG("Missing [TGS4_PARAM_INFO_JSON] world parameter!") + return + var/json_file = file2text(json_path) + if(!json_file) + TGS_ERROR_LOG("Missing specified json file: [json_path]") + return + var/cached_json = json_decode(json_file) + if(!cached_json) + TGS_ERROR_LOG("Failed to decode info json: [json_file]") + return + + access_identifier = cached_json["accessIdentifier"] + server_commands_json_path = cached_json["serverCommandsJson"] + + if(cached_json["apiValidateOnly"]) + TGS_INFO_LOG("Validating API and exiting...") + Export(TGS4_COMM_VALIDATE, list(TGS4_PARAMETER_DATA = "[minimum_required_security_level]")) + del(world) + + security_level = cached_json["securityLevel"] + chat_channels_json_path = cached_json["chatChannelsJson"] + chat_commands_json_path = cached_json["chatCommandsJson"] + src.event_handler = event_handler + instance_name = cached_json["instanceName"] + + ListCustomCommands() + + var/list/revisionData = cached_json["revision"] + if(revisionData) + cached_revision = new + cached_revision.commit = revisionData["commitSha"] + cached_revision.origin_commit = revisionData["originCommitSha"] + + cached_test_merges = list() + var/list/json = cached_json["testMerges"] + for(var/entry in json) + var/datum/tgs_revision_information/test_merge/tm = new + tm.time_merged = text2num(entry["timeMerged"]) + + var/list/revInfo = entry["revision"] + if(revInfo) + tm.commit = revInfo["commitSha"] + tm.origin_commit = revInfo["originCommitSha"] + + tm.title = entry["titleAtMerge"] + tm.body = entry["bodyAtMerge"] + tm.url = entry["url"] + tm.author = entry["author"] + tm.number = entry["number"] + tm.pull_request_commit = entry["pullRequestRevision"] + tm.comment = entry["comment"] + + cached_test_merges += tm + + return TRUE + +/datum/tgs_api/v4/OnInitializationComplete() + Export(TGS4_COMM_SERVER_PRIMED) + + var/tgs4_secret_sleep_offline_sauce = 24051994 + var/old_sleep_offline = world.sleep_offline + world.sleep_offline = tgs4_secret_sleep_offline_sauce + sleep(1) + if(world.sleep_offline == tgs4_secret_sleep_offline_sauce) //if not someone changed it + world.sleep_offline = old_sleep_offline + +/datum/tgs_api/v4/OnTopic(T) + var/list/params = params2list(T) + var/their_sCK = params[TGS4_INTEROP_ACCESS_IDENTIFIER] + if(!their_sCK) + return FALSE //continue world/Topic + + if(their_sCK != access_identifier) + return "Invalid comms key!"; + + var/command = params[TGS4_PARAMETER_COMMAND] + if(!command) + return "No command!" + + . = TGS4_RESPONSE_SUCCESS + + switch(command) + if(TGS4_TOPIC_CHAT_COMMAND) + var/result = HandleCustomCommand(params[TGS4_PARAMETER_DATA]) + if(result == null) + result = "Error running chat command!" + return result + if(TGS4_TOPIC_EVENT) + intercepted_message_queue = list() + var/list/event_notification = json_decode(params[TGS4_PARAMETER_DATA]) + var/list/event_parameters = event_notification["Parameters"] + + var/list/event_call = list(event_notification["Type"]) + if(event_parameters) + event_call += event_parameters + + if(event_handler != null) + event_handler.HandleEvent(arglist(event_call)) + + . = json_encode(intercepted_message_queue) + intercepted_message_queue = null + return + if(TGS4_TOPIC_INTEROP_RESPONSE) + last_interop_response = json_decode(params[TGS4_PARAMETER_DATA]) + return + if(TGS4_TOPIC_CHANGE_PORT) + var/new_port = text2num(params[TGS4_PARAMETER_DATA]) + if (!(new_port > 0)) + return "Invalid port: [new_port]" + + //the topic still completes, miraculously + //I honestly didn't believe byond could do it + if(event_handler != null) + event_handler.HandleEvent(TGS_EVENT_PORT_SWAP, new_port) + if(!world.OpenPort(new_port)) + return "Port change failed!" + return + if(TGS4_TOPIC_CHANGE_REBOOT_MODE) + var/new_reboot_mode = text2num(params[TGS4_PARAMETER_DATA]) + if(event_handler != null) + event_handler.HandleEvent(TGS_EVENT_REBOOT_MODE_CHANGE, reboot_mode, new_reboot_mode) + reboot_mode = new_reboot_mode + return + + return "Unknown command: [command]" + +/datum/tgs_api/v4/proc/Export(command, list/data, override_requesting_new_port = FALSE) + if(!data) + data = list() + data[TGS4_PARAMETER_COMMAND] = command + var/json = json_encode(data) + + while(requesting_new_port && !override_requesting_new_port) + sleep(1) + + //we need some port open at this point to facilitate return communication + if(!world.port) + requesting_new_port = TRUE + if(!world.OpenPort(0)) //open any port + TGS_ERROR_LOG("Unable to open random port to retrieve new port![TGS4_PORT_CRITFAIL_MESSAGE]") + del(world) + + //request a new port + export_lock = FALSE + var/list/new_port_json = Export(TGS4_COMM_NEW_PORT, list(TGS4_PARAMETER_DATA = "[world.port]"), TRUE) //stringify this on purpose + + if(!new_port_json) + TGS_ERROR_LOG("No new port response from server![TGS4_PORT_CRITFAIL_MESSAGE]") + del(world) + + var/new_port = new_port_json[TGS4_PARAMETER_DATA] + if(!isnum(new_port) || new_port <= 0) + TGS_ERROR_LOG("Malformed new port json ([json_encode(new_port_json)])![TGS4_PORT_CRITFAIL_MESSAGE]") + del(world) + + if(new_port != world.port && !world.OpenPort(new_port)) + TGS_ERROR_LOG("Unable to open port [new_port]![TGS4_PORT_CRITFAIL_MESSAGE]") + del(world) + requesting_new_port = FALSE + + while(export_lock) + sleep(1) + export_lock = TRUE + + last_interop_response = null + fdel(server_commands_json_path) + text2file(json, server_commands_json_path) + + for(var/I = 0; I < EXPORT_TIMEOUT_DS && !last_interop_response; ++I) + sleep(1) + + if(!last_interop_response) + TGS_ERROR_LOG("Failed to get export result for: [json]") + else + . = last_interop_response + + export_lock = FALSE + +/datum/tgs_api/v4/OnReboot() + var/list/result = Export(TGS4_COMM_WORLD_REBOOT) + if(!result) + return + + //okay so the standard TGS4 proceedure is: right before rebooting change the port to whatever was sent to us in the above json's data parameter + + var/port = result[TGS4_PARAMETER_DATA] + if(!isnum(port)) + return //this is valid, server may just want use to reboot + + if(port == 0) + //to byond 0 means any port and "none" means close vOv + port = "none" + + if(!world.OpenPort(port)) + TGS_ERROR_LOG("Unable to set port to [port]!") + +/datum/tgs_api/v4/InstanceName() + return instance_name + +/datum/tgs_api/v4/TestMerges() + return cached_test_merges + +/datum/tgs_api/v4/EndProcess() + Export(TGS4_COMM_END_PROCESS) + +/datum/tgs_api/v4/Revision() + return cached_revision + +/datum/tgs_api/v4/ChatBroadcast(message, list/channels) + var/list/ids + if(length(channels)) + ids = list() + for(var/I in channels) + var/datum/tgs_chat_channel/channel = I + ids += channel.id + message = list("message" = message, "channelIds" = ids) + if(intercepted_message_queue) + intercepted_message_queue += list(message) + else + Export(TGS4_COMM_CHAT, message) + +/datum/tgs_api/v4/ChatTargetedBroadcast(message, admin_only) + var/list/channels = list() + for(var/I in ChatChannelInfo()) + var/datum/tgs_chat_channel/channel = I + if (!channel.is_private_channel && ((channel.is_admin_channel && admin_only) || (!channel.is_admin_channel && !admin_only))) + channels += channel.id + message = list("message" = message, "channelIds" = channels) + if(intercepted_message_queue) + intercepted_message_queue += list(message) + else + Export(TGS4_COMM_CHAT, message) + +/datum/tgs_api/v4/ChatPrivateMessage(message, datum/tgs_chat_user/user) + message = list("message" = message, "channelIds" = list(user.channel.id)) + if(intercepted_message_queue) + intercepted_message_queue += list(message) + else + Export(TGS4_COMM_CHAT, message) + +/datum/tgs_api/v4/ChatChannelInfo() + . = list() + //no caching cause tgs may change this + var/list/json = json_decode(file2text(chat_channels_json_path)) + for(var/I in json) + . += DecodeChannel(I) + +/datum/tgs_api/v4/proc/DecodeChannel(channel_json) + var/datum/tgs_chat_channel/channel = new + channel.id = channel_json["id"] + channel.friendly_name = channel_json["friendlyName"] + channel.connection_name = channel_json["connectionName"] + channel.is_admin_channel = channel_json["isAdminChannel"] + channel.is_private_channel = channel_json["isPrivateChannel"] + channel.custom_tag = channel_json["tag"] + return channel + +/datum/tgs_api/v4/SecurityLevel() + return security_level + +/* +The MIT License + +Copyright (c) 2017 Jordan Brown + +Permission is hereby granted, free of charge, +to any person obtaining a copy of this software and +associated documentation files (the "Software"), to +deal in the Software without restriction, including +without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom +the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ diff --git a/code/modules/tgs/v4/commands.dm b/code/modules/tgs/v4/commands.dm new file mode 100644 index 0000000000..af21a86fb6 --- /dev/null +++ b/code/modules/tgs/v4/commands.dm @@ -0,0 +1,69 @@ +/datum/tgs_api/v4/proc/ListCustomCommands() + var/results = list() + custom_commands = list() + for(var/I in typesof(/datum/tgs_chat_command) - /datum/tgs_chat_command) + var/datum/tgs_chat_command/stc = new I + var/command_name = stc.name + if(!command_name || findtext(command_name, " ") || findtext(command_name, "'") || findtext(command_name, "\"")) + TGS_ERROR_LOG("Custom command [command_name] ([I]) can't be used as it is empty or contains illegal characters!") + continue + + if(results[command_name]) + var/datum/other = custom_commands[command_name] + TGS_ERROR_LOG("Custom commands [other.type] and [I] have the same name (\"[command_name]\"), only [other.type] will be available!") + continue + results += list(list("name" = command_name, "help_text" = stc.help_text, "admin_only" = stc.admin_only)) + custom_commands[command_name] = stc + + var/commands_file = chat_commands_json_path + if(!commands_file) + return + text2file(json_encode(results), commands_file) + +/datum/tgs_api/v4/proc/HandleCustomCommand(command_json) + var/list/data = json_decode(command_json) + var/command = data["command"] + var/user = data["user"] + var/params = data["params"] + + var/datum/tgs_chat_user/u = new + u.id = user["id"] + u.friendly_name = user["friendlyName"] + u.mention = user["mention"] + u.channel = DecodeChannel(user["channel"]) + + var/datum/tgs_chat_command/sc = custom_commands[command] + if(sc) + var/result = sc.Run(u, params) + if(result == null) + result = "" + return result + return "Unknown command: [command]!" + +/* + +The MIT License + +Copyright (c) 2017 Jordan Brown + +Permission is hereby granted, free of charge, +to any person obtaining a copy of this software and +associated documentation files (the "Software"), to +deal in the Software without restriction, including +without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom +the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ diff --git a/code/modules/tgui/states.dm b/code/modules/tgui/states.dm index fc30d171fb..959f096d05 100644 --- a/code/modules/tgui/states.dm +++ b/code/modules/tgui/states.dm @@ -103,7 +103,7 @@ return UI_CLOSE var/dist = get_dist(src_object, src) - if(dist <= 1) // Open and interact if 1-0 tiles away. + if(dist <= 1 || src_object.hasSiliconAccessInArea(src)) // Open and interact if 1-0 tiles away. return UI_INTERACTIVE else if(dist <= 2) // View only if 2-3 tiles away. return UI_UPDATE diff --git a/code/modules/uplink/uplink_devices.dm b/code/modules/uplink/uplink_devices.dm index 2bcfb40c45..9c09a7334a 100644 --- a/code/modules/uplink/uplink_devices.dm +++ b/code/modules/uplink/uplink_devices.dm @@ -57,3 +57,22 @@ /obj/item/pen/uplink/Initialize(mapload, owner, tc_amount = 20) . = ..() AddComponent(/datum/component/uplink, owner, TRUE, FALSE, null, tc_amount) + +/obj/item/uplink/debug + name = "debug uplink" + +/obj/item/uplink/debug/Initialize(mapload, owner, tc_amount = 9000) + . = ..() + var/datum/component/uplink/hidden_uplink = GetComponent(/datum/component/uplink) + hidden_uplink.name = "debug uplink" + hidden_uplink.debug = TRUE + +/obj/item/uplink/nuclear/debug + name = "debug nuclear uplink" + +/obj/item/uplink/nuclear/debug/Initialize(mapload, owner, tc_amount = 9000) + . = ..() + var/datum/component/uplink/hidden_uplink = GetComponent(/datum/component/uplink) + hidden_uplink.set_gamemode(/datum/game_mode/nuclear) + hidden_uplink.name = "debug nuclear uplink" + hidden_uplink.debug = TRUE diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index b75f212ba9..52f6efd3df 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -157,6 +157,7 @@ category = "Role-Restricted" exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) surplus = 0 + cant_discount = TRUE /datum/uplink_item/badass category = "(Pointless) Badassery" @@ -164,4 +165,4 @@ //Discounts (dynamically filled above) /datum/uplink_item/discounts - category = "Discounted Gear" \ No newline at end of file + category = "Discounted Gear" diff --git a/code/modules/uplink/uplink_items/uplink_ammo.dm b/code/modules/uplink/uplink_items/uplink_ammo.dm index 0db1bc96f0..911aa1a32e 100644 --- a/code/modules/uplink/uplink_items/uplink_ammo.dm +++ b/code/modules/uplink/uplink_items/uplink_ammo.dm @@ -253,3 +253,17 @@ item = /obj/item/ammo_box/a762 cost = 1 include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/dark_gygax/bag + name = "Dark Gygax Ammo Bag" + desc = "A duffel bag containing ammo for three full reloads of the incendiary carbine and flash bang launcher that are equipped on a standard Dark Gygax exosuit." + item = /obj/item/storage/backpack/duffelbag/syndie/ammo/dark_gygax + cost = 4 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/mauler/bag + name = "Mauler Ammo Bag" + desc = "A duffel bag containing ammo for three full reloads of the LMG, scattershot carbine, and SRM-8 missile laucher that are equipped on a standard Mauler exosuit." + item = /obj/item/storage/backpack/duffelbag/syndie/ammo/mauler + cost = 6 + include_modes = list(/datum/game_mode/nuclear) diff --git a/code/modules/uplink/uplink_items/uplink_clothing.dm b/code/modules/uplink/uplink_items/uplink_clothing.dm index 5e2c09ec13..fcbe0fb9a6 100644 --- a/code/modules/uplink/uplink_items/uplink_clothing.dm +++ b/code/modules/uplink/uplink_items/uplink_clothing.dm @@ -78,3 +78,9 @@ cost = 30 include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) exclude_modes = list() + +/datum/uplink_item/suits/thiefgloves + 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 diff --git a/code/modules/uplink/uplink_items/uplink_implants.dm b/code/modules/uplink/uplink_items/uplink_implants.dm index d8a31a9b9c..02b8b1e01d 100644 --- a/code/modules/uplink/uplink_items/uplink_implants.dm +++ b/code/modules/uplink/uplink_items/uplink_implants.dm @@ -29,6 +29,22 @@ item = /obj/item/storage/box/syndie_kit/imp_freedom cost = 5 +/datum/uplink_item/implants/hijack + name = "Hijack Implant" + desc = "An implant that will let you hack into the APCs on station, allowing you to control them at will and the machinery within those rooms." + item = /obj/item/implanter/hijack + cost = 14 //really overkill, 14 tc, can still get caught in a room you haven't hijacked and you're fucked. + surplus = 0 //nope not having hijack implants with surplus crates nope nope nope nope + restricted = TRUE + +/datum/uplink_item/implants/radio + name = "Internal Syndicate Radio Implant" + desc = "An implant injected into the body, allowing the use of an internal Syndicate radio. \ + Used just like a regular headset, but can be disabled to use external headsets normally and to avoid detection." + item = /obj/item/storage/box/syndie_kit/imp_radio + cost = 4 + restricted = TRUE + /datum/uplink_item/implants/microbomb name = "Microbomb Implant" desc = "An implant injected into the body, and later activated either manually or automatically upon death. \ @@ -47,14 +63,6 @@ include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) restricted = TRUE -/datum/uplink_item/implants/radio - name = "Internal Syndicate Radio Implant" - desc = "An implant injected into the body, allowing the use of an internal Syndicate radio. \ - Used just like a regular headset, but can be disabled to use external headsets normally and to avoid detection." - item = /obj/item/storage/box/syndie_kit/imp_radio - cost = 4 - restricted = TRUE - /datum/uplink_item/implants/reviver name = "Reviver Implant" desc = "This implant will attempt to revive and heal you if you lose consciousness. Comes with an autosurgeon." diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm index 7089845dce..8a62c19e16 100644 --- a/code/modules/vending/_vending.dm +++ b/code/modules/vending/_vending.dm @@ -33,7 +33,7 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C verb_ask = "beeps" verb_exclaim = "beeps" max_integrity = 300 - integrity_failure = 100 + 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! diff --git a/code/modules/vending/snack.dm b/code/modules/vending/snack.dm index efb0905f6b..9dda649b24 100644 --- a/code/modules/vending/snack.dm +++ b/code/modules/vending/snack.dm @@ -4,22 +4,25 @@ product_slogans = "Try our new nougat bar!;Twice the calories for half the price!" product_ads = "The healthiest!;Award-winning chocolate bars!;Mmm! So good!;Oh my god it's so juicy!;Have a snack.;Snacks are good for you!;Have some more Getmore!;Best quality snacks straight from mars.;We love chocolate!;Try our new jerky!" icon_state = "snack" - products = list(/obj/item/reagent_containers/food/snacks/candy = 6, - /obj/item/reagent_containers/food/drinks/dry_ramen = 6, - /obj/item/reagent_containers/food/snacks/chips = 6, - /obj/item/reagent_containers/food/snacks/sosjerky = 6, - /obj/item/reagent_containers/food/snacks/no_raisin = 6, - /obj/item/reagent_containers/food/snacks/spacetwinkie = 6, - /obj/item/reagent_containers/food/snacks/cheesiehonkers = 6) + products = list(/obj/item/reagent_containers/food/snacks/candy = 5, + /obj/item/reagent_containers/food/snacks/chocolatebar = 5, + /obj/item/reagent_containers/food/drinks/dry_ramen = 5, + /obj/item/reagent_containers/food/snacks/chips = 5, + /obj/item/reagent_containers/food/snacks/sosjerky = 5, + /obj/item/reagent_containers/food/snacks/no_raisin = 5, + /obj/item/reagent_containers/food/snacks/spacetwinkie = 5, + /obj/item/reagent_containers/food/snacks/cheesiehonkers = 5, + /obj/item/reagent_containers/food/snacks/cornchips = 5) contraband = list( - /obj/item/reagent_containers/food/snacks/cracker = 12, - /obj/item/reagent_containers/food/snacks/beans = 2, - /obj/item/reagent_containers/food/snacks/honeybar = 6, - /obj/item/reagent_containers/food/snacks/syndicake = 6) + /obj/item/reagent_containers/food/snacks/cracker = 10, + /obj/item/reagent_containers/food/snacks/honeybar = 5, + /obj/item/reagent_containers/food/snacks/syndicake = 5, + /obj/item/reagent_containers/food/snacks/beans = 2) premium = list( /obj/item/reagent_containers/food/snacks/lollipop = 2, /obj/item/reagent_containers/food/snacks/spiderlollipop = 2, /obj/item/reagent_containers/food/snacks/chococoin = 1, + /obj/item/storage/box/marshmallow = 1, /obj/item/storage/box/donkpockets = 2) refill_canister = /obj/item/vending_refill/snack diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm index cd643e4220..d368a9bbca 100644 --- a/code/modules/vending/wardrobes.dm +++ b/code/modules/vending/wardrobes.dm @@ -20,7 +20,6 @@ /obj/item/clothing/under/rank/security/grey = 5, /obj/item/clothing/under/pants/khaki = 5) premium = list(/obj/item/clothing/under/rank/security/navyblue = 5, - /obj/item/clothing/suit/security/officer = 5, /obj/item/clothing/head/beret/sec/navyofficer = 5) refill_canister = /obj/item/vending_refill/wardrobe/sec_wardrobe @@ -267,16 +266,17 @@ /obj/item/cartridge/janitor = 3, /obj/item/clothing/gloves/color/black = 2, /obj/item/clothing/head/soft/purple = 2, + /obj/item/twohanded/broom = 2, /obj/item/paint/paint_remover = 2, - /obj/item/melee/flyswatter = 1, + /obj/item/melee/flyswatter = 2, /obj/item/flashlight = 2, /obj/item/caution = 8, - /obj/item/holosign_creator = 1, - /obj/item/lightreplacer = 1, - /obj/item/soap = 1, - /obj/item/storage/bag/trash = 1, - /obj/item/clothing/shoes/galoshes = 1, - /obj/item/watertank/janitor = 1, + /obj/item/holosign_creator = 2, + /obj/item/lightreplacer = 2, + /obj/item/soap = 2, + /obj/item/storage/bag/trash = 2, + /obj/item/clothing/shoes/galoshes = 2, + /obj/item/watertank/janitor = 2, /obj/item/storage/belt/janitor = 2, /obj/item/screwdriver = 2, /obj/item/stack/cable_coil/random = 4) @@ -400,3 +400,35 @@ /obj/item/vending_refill/wardrobe/viro_wardrobe machine_name = "ViroDrobe" + +/obj/machinery/vending/wardrobe/cap_wardrobe + name = "Captain's Wardrobe" + desc = "The latest and greatest in Nanotrasen fashion for your great leader." + icon_state = "capsdrobe" + icon_deny = "capsdrobe-deny" + product_ads = "Only the greatest for a commander such as ours." + req_access = list(ACCESS_CAPTAIN) + vend_reply = "A wonderful day to you, great leader." + products = list(/obj/item/clothing/suit/hooded/wintercoat/captain = 1, + /obj/item/storage/backpack/captain = 1, + /obj/item/storage/backpack/satchel/cap = 1, + /obj/item/storage/backpack/duffelbag/captain = 1, + /obj/item/clothing/neck/cloak/cap = 1, + /obj/item/clothing/shoes/sneakers/brown = 2, + /obj/item/clothing/under/rank/captain = 1, + /obj/item/clothing/under/rank/captain/skirt = 1, + /obj/item/clothing/head/caphat = 1, + /obj/item/clothing/head/caphat/parade = 1, + /obj/item/clothing/head/caphat/beret = 1, + /obj/item/clothing/head/caphat/beret/white = 1, + /obj/item/clothing/under/captainparade = 1, + /obj/item/clothing/suit/captunic = 1, + /obj/item/clothing/under/rank/captain/femformal = 1, + /obj/item/clothing/glasses/sunglasses/gar/supergar = 1, + /obj/item/clothing/gloves/color/captain = 1) + refill_canister = /obj/item/vending_refill/wardrobe/cap_wardrobe + +/obj/item/vending_refill/wardrobe/cap_wardrobe + machine_name = "Captain's Wardrobe" + icon_state = "refill_caps" + \ No newline at end of file diff --git a/code/modules/vore/eating/belly_obj.dm b/code/modules/vore/eating/belly_obj.dm index 460ea74225..e33f748292 100644 --- a/code/modules/vore/eating/belly_obj.dm +++ b/code/modules/vore/eating/belly_obj.dm @@ -190,7 +190,7 @@ if(H && H.client && (isturf(H.loc) || (H.loc != src.contents))) var/sound/eating = GLOB.pred_vore_sounds[vore_sound] SEND_SOUND(H,eating) - else if(H && H in contents && H.client) + else if(H?.client && (H in contents)) var/sound/eating = GLOB.prey_vore_sounds[vore_sound] SEND_SOUND(H,eating) recent_sound = TRUE @@ -246,7 +246,7 @@ if(H && H.client && (isturf(H.loc) || (H.loc != src.contents))) var/sound/releasement = GLOB.pred_release_sounds[release_sound] H.playsound_local(owner.loc, releasement, vol = 75, vary = 1, falloff = VORE_SOUND_FALLOFF) - else if(H && H in contents && H.client) + else if(H?.client && (H in contents)) var/sound/releasement = GLOB.prey_release_sounds[release_sound] SEND_SOUND(H,releasement) recent_sound = TRUE @@ -302,7 +302,7 @@ if(H && H.client && (isturf(H.loc) || (H.loc != src.contents))) var/sound/releasement = GLOB.pred_release_sounds[release_sound] H.playsound_local(owner.loc, releasement, vol = 75, vary = 1, falloff = VORE_SOUND_FALLOFF) - else if(H && H in contents && H.client) + else if(H?.client && (H in contents)) var/sound/releasement = GLOB.prey_release_sounds[release_sound] SEND_SOUND(H,releasement) recent_sound = TRUE @@ -364,7 +364,7 @@ if(H && H.client && (isturf(H.loc) || (H.loc != src.contents))) var/sound/eating = GLOB.pred_vore_sounds[vore_sound] H.playsound_local(owner.loc, eating, vol = 75, vary = 1, falloff = VORE_SOUND_FALLOFF) - else if(H && H in contents && H.client) + else if(H?.client && (H in contents)) var/sound/eating = GLOB.prey_vore_sounds[vore_sound] SEND_SOUND(H,eating) recent_sound = TRUE @@ -586,7 +586,7 @@ for(var/mob/living/H in hearing_mobs) if(H && H.client && (isturf(H.loc) || (H.loc != src.contents))) H.playsound_local(owner.loc, pred_struggle_snuggle, vol = 75, vary = 1, falloff = VORE_SOUND_FALLOFF) - else if(H && H in contents && H.client) + else if(H && H.client && (H in contents)) SEND_SOUND(H,prey_struggle_snuggle) else diff --git a/code/modules/vore/eating/bellymodes.dm b/code/modules/vore/eating/bellymodes.dm index 6942a2d5a9..ea15892a30 100644 --- a/code/modules/vore/eating/bellymodes.dm +++ b/code/modules/vore/eating/bellymodes.dm @@ -195,7 +195,7 @@ 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 && H in contents && H.client) + else if(H?.client && (H in contents)) SEND_SOUND(H,prey_digest) //No digestion protection for megafauna. diff --git a/code/modules/vore/eating/living.dm b/code/modules/vore/eating/living.dm index bf41c46332..5f280fb04d 100644 --- a/code/modules/vore/eating/living.dm +++ b/code/modules/vore/eating/living.dm @@ -384,6 +384,9 @@ if(!istype(tasted)) return + if(!tasted.client?.prefs_vr.lickable) + return + if(src == stat) return diff --git a/code/modules/vore/eating/vore.dm b/code/modules/vore/eating/vore.dm index 29391547bd..abb5bbb988 100644 --- a/code/modules/vore/eating/vore.dm +++ b/code/modules/vore/eating/vore.dm @@ -40,6 +40,7 @@ GLOBAL_LIST_EMPTY(vore_preferences_datums) var/digestable = FALSE var/devourable = FALSE var/feeding = FALSE + var/lickable = FALSE // var/allowmobvore = TRUE var/list/belly_prefs = list() var/vore_taste = "nothing in particular" @@ -107,6 +108,7 @@ GLOBAL_LIST_EMPTY(vore_preferences_datums) digestable = json_from_file["digestable"] devourable = json_from_file["devourable"] feeding = json_from_file["feeding"] + lickable = json_from_file["lickable"] vore_taste = json_from_file["vore_taste"] belly_prefs = json_from_file["belly_prefs"] @@ -117,6 +119,8 @@ GLOBAL_LIST_EMPTY(vore_preferences_datums) devourable = FALSE if(isnull(feeding)) feeding = FALSE + if(isnull(lickable)) + lickable = FALSE if(isnull(belly_prefs)) belly_prefs = list() @@ -132,6 +136,7 @@ GLOBAL_LIST_EMPTY(vore_preferences_datums) "digestable" = digestable, "devourable" = devourable, "feeding" = feeding, + "lickable" = lickable, "vore_taste" = vore_taste, "belly_prefs" = belly_prefs, ) diff --git a/code/modules/vore/eating/vorepanel.dm b/code/modules/vore/eating/vorepanel.dm index 962fe54af7..a2746f35e8 100644 --- a/code/modules/vore/eating/vorepanel.dm +++ b/code/modules/vore/eating/vorepanel.dm @@ -242,22 +242,13 @@ dat += "Reload Slot Prefs" dat += "
" - switch(user.digestable) - if(TRUE) - dat += "
Toggle Digestable (Currently: ON)" - if(FALSE) - dat += "
Toggle Digestable (Currently: OFF)" - switch(user.devourable) - if(TRUE) - dat += "
Toggle Devourable (Currently: ON)" - if(FALSE) - dat += "
Toggle Devourable (Currently: OFF)" - switch(user.feeding) - if(TRUE) - dat += "
Toggle Feeding (Currently: ON)" - if(FALSE) - dat += "
Toggle Feeding (Currently: OFF)" - + var/pref_on = "#173d15" + var/pref_off = "#990000" + dat += "
Toggle Digestable (Currently: [user.digestable ? "ON" : "OFF"])" + dat += "
Toggle Devourable (Currently: [user.devourable ? "ON" : "OFF"])" + dat += "
Toggle Feeding (Currently: [user.feeding ? "ON" : "OFF"])" + if(user.client.prefs_vr) + dat += "
Toggle Licking (Currently: [user.client.prefs_vr.lickable ? "ON" : "OFF"])" //Returns the dat html to the vore_look return dat @@ -734,5 +725,16 @@ if(user.client.prefs_vr) user.client.prefs_vr.feeding = user.feeding + if(href_list["toggledlickable"]) + if(user.client.prefs_vr) + var/choice = alert(user, "This button is to toggle your ability to be licked. Being licked is currently: [user.client.prefs_vr.lickable ? "Allowed" : "Prevented"]", "", "Allow Licking", "Cancel", "Prevent Licking") + switch(choice) + if("Cancel") + return FALSE + if("Allow Licking") + user.client.prefs_vr.lickable = TRUE + if("Prevent Licking") + user.client.prefs_vr.lickable = FALSE + //Refresh when interacted with, returning 1 makes vore_look.Topic update - return TRUE \ No newline at end of file + return TRUE diff --git a/code/modules/zombie/organs.dm b/code/modules/zombie/organs.dm index 59c6a321e6..3d045ba31e 100644 --- a/code/modules/zombie/organs.dm +++ b/code/modules/zombie/organs.dm @@ -45,7 +45,9 @@ if(!owner) return if(!(src in owner.internal_organs)) - Remove() + Remove(owner) + if(owner.mob_biotypes & MOB_MINERAL)//does not process in inorganic things + return if (causes_damage && !iszombie(owner) && owner.stat != DEAD) owner.adjustToxLoss(1) if (prob(10)) diff --git a/config/config.txt b/config/config.txt index 6d302a5512..1d987070dd 100644 --- a/config/config.txt +++ b/config/config.txt @@ -6,6 +6,7 @@ $include comms.txt $include antag_rep.txt $include donator_groupings.txt $include dynamic_config.txt +$include plushies/defines.txt # You can use the @ character at the beginning of a config option to lock it from being edited in-game # Example usage: @@ -183,6 +184,15 @@ VOTE_DELAY 6000 ## time period (deciseconds) which voting session will last (default 1 minute) VOTE_PERIOD 600 +## autovote initial delay (deciseconds) before first automatic transfer vote call (default 120 minutes) +VOTE_AUTOTRANSFER_INITIAL 72000 + +## autovote delay (deciseconds) before sequential automatic transfer votes are called (default 30 minutes) +VOTE_AUTOTRANSFER_INTERVAL 18000 + +## autovote maximum votes until automatic transfer call (default 4) +VOTE_AUTOTRANSFER_MAXIMUM 4 + ## prevents dead players from voting or starting votes # NO_DEAD_VOTE @@ -384,6 +394,15 @@ MAPROTATION ## When it's set to zero, the map will be randomly picked each round ALLOW_MAP_VOTING 1 +## Map voting type +## Determines what kind of vote the map vote is +## Options are: +## PLURALITY (default, only vote for one option) +## APPROVAL (can vote for as many as you want), I +## IRV (vote by ranked choice, winner determined by instant runoff algorithm) +## SCORE (give individual rankings of each choice, winner determined by majority judgement algorithm) +MAP_VOTE_TYPE SCORE + ## Map rotate chance delta ## This is the chance of map rotation factored to the round length. ## A value of 1 would mean the map rotation chance is the round length in minutes (hour long round == 60% rotation chance) @@ -438,8 +457,14 @@ MINUTE_CLICK_LIMIT 400 ##How long to wait between messaging admins about occurences of a unique error #ERROR_MSG_DELAY 50 -## Send a message to IRC when starting a new game -#IRC_ANNOUNCE_NEW_GAME +## Chat Announce Options +## Various messages to be sent to game chats +## Uncommenting these will enable them, by default they will be broadcast to Game chat channels on TGS3 or non-admin channels on TGS4 +## If using TGS4, the string option can be set as a chat channel tag to limit the message to channels of that tag type (case-sensitive) +## i.e. CHAT_ANNOUNCE_NEW_GAME chat_channel_tag + +## Send a message with the station name starting a new game +#CHAT_ANNOUNCE_NEW_GAME ## Allow admin hrefs that don't use the new token system, will eventually be removed DEBUG_ADMIN_HREFS @@ -490,3 +515,5 @@ FAIL2TOPIC_MAX_FAILS 5 ## Firewall rule name used on physical server FAIL2TOPIC_RULE_NAME _dd_fail2topic +## Enable automatic profiling - Byond 513.1506 and newer only. +#AUTO_PROFILE diff --git a/config/game_options.txt b/config/game_options.txt index 0fa4db519d..b2b0ac0abd 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -426,6 +426,7 @@ ROUNDSTART_RACES lizard ROUNDSTART_RACES plasmaman #ROUNDSTART_RACES shadow ROUNDSTART_RACES felinid +ROUNDSTART_RACES dwarf ## Races that are better than humans in some ways, but worse in others #ROUNDSTART_RACES jelly diff --git a/config/jobs.txt b/config/jobs.txt index a0c1ffa970..1bf271763b 100644 --- a/config/jobs.txt +++ b/config/jobs.txt @@ -31,6 +31,7 @@ Station Engineer=5,5 Atmospheric Technician=3,2 Medical Doctor=5,3 +Paramedic=2,2 Chemist=2,2 Geneticist=2,2 Virologist=1,1 @@ -43,4 +44,4 @@ Detective=1,1 Security Officer=5,5 AI=0,1 -Cyborg=0,1 \ No newline at end of file +Cyborg=0,1 diff --git a/config/maps.txt b/config/maps.txt index 6792cb9468..4bd2b1ce8a 100644 --- a/config/maps.txt +++ b/config/maps.txt @@ -40,4 +40,7 @@ map runtimestation endmap map multiz_debug +endmap + +map kilostation endmap \ No newline at end of file diff --git a/code/modules/games/cards.dm b/config/plushies/defines.txt similarity index 100% rename from code/modules/games/cards.dm rename to config/plushies/defines.txt diff --git a/config/plushies/plushie_config.txt b/config/plushies/plushie_config.txt new file mode 100644 index 0000000000..7cd1d88f3e --- /dev/null +++ b/config/plushies/plushie_config.txt @@ -0,0 +1,2 @@ +# EXAMPLE +# SNOWFLAKE_PLUSHIES example {"name":"example","desc":"thanks, coders.","icon_state":"","attack_verb":["thumped","whomped","bumped"],"squeak_override":{"sound/weapons/magout.ogg":1}} diff --git a/config/plushies/sprites.dmi b/config/plushies/sprites.dmi new file mode 100644 index 0000000000..2970010b2b Binary files /dev/null and b/config/plushies/sprites.dmi differ diff --git a/config/spaceRuinBlacklist.txt b/config/spaceRuinBlacklist.txt index 4ea7611937..90682f5bad 100644 --- a/config/spaceRuinBlacklist.txt +++ b/config/spaceRuinBlacklist.txt @@ -13,6 +13,7 @@ #_maps/RandomRuins/SpaceRuins/bigderelict1.dmm #_maps/RandomRuins/SpaceRuins/bus.dmm #_maps/RandomRuins/SpaceRuins/caravanambush.dmm +#_maps/RandomRuins/SpaceRuins/clericden.dmm #_maps/RandomRuins/SpaceRuins/cloning_facility.dmm #_maps/RandomRuins/SpaceRuins/crashedclownship.dmm #_maps/RandomRuins/SpaceRuins/crashedship.dmm diff --git a/dependencies.sh b/dependencies.sh index 0f66dcab1a..488504b288 100644 --- a/dependencies.sh +++ b/dependencies.sh @@ -17,10 +17,10 @@ export RUST_G_VERSION=0.4.2 export BSQL_VERSION=v1.4.0.0 #node version -export NODE_VERSION=8 +export NODE_VERSION=12 # PHP version export PHP_VERSION=5.6 # SpacemanDMM git tag -export SPACEMAN_DMM_VERSION=suite-1.0 +export SPACEMAN_DMM_VERSION=suite-1.2 diff --git a/html/changelogs/AutoChangeLog-pr-10277.yml b/html/changelogs/AutoChangeLog-pr-10277.yml new file mode 100644 index 0000000000..d2c873d010 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10277.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - refactor: "Custom snowflake plushies are now in config rather than code." diff --git a/html/changelogs/AutoChangeLog-pr-10541.yml b/html/changelogs/AutoChangeLog-pr-10541.yml new file mode 100644 index 0000000000..f59ebe0e75 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10541.yml @@ -0,0 +1,5 @@ +author: "Detective-Google" +delete-after: True +changes: + - rscadd: "the POOL. +remove: boxstation dorms 7" diff --git a/html/changelogs/AutoChangeLog-pr-10572.yml b/html/changelogs/AutoChangeLog-pr-10572.yml new file mode 100644 index 0000000000..d18e2d9e93 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10572.yml @@ -0,0 +1,5 @@ +author: "Tupinambis" +delete-after: True +changes: + - tweak: "the portion of laws that require harm prevention by silicons has been removed." + - server: "silicon_laws.txt config file is required to be modified for full implementation." diff --git a/html/changelogs/AutoChangeLog-pr-10596.yml b/html/changelogs/AutoChangeLog-pr-10596.yml new file mode 100644 index 0000000000..7f56a256a0 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10596.yml @@ -0,0 +1,5 @@ +author: "Seris02" +delete-after: True +changes: + - rscadd: "hijack implant" + - code_imp: "changed mentions of the issilion proc to hasSiliconAccessInArea based on what the proc is used for" diff --git a/html/changelogs/AutoChangeLog-pr-10649.yml b/html/changelogs/AutoChangeLog-pr-10649.yml new file mode 100644 index 0000000000..04e3569ad3 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10649.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - rscadd: "Shuttle hijacking has been completely reworked. Alt-click the shuttle as a hijack-capable mind (so traitors, and especially traitors with hijack) to begin or continue a hacking process." diff --git a/html/changelogs/AutoChangeLog-pr-10704.yml b/html/changelogs/AutoChangeLog-pr-10704.yml new file mode 100644 index 0000000000..1acd46b51f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10704.yml @@ -0,0 +1,4 @@ +author: "nemvar" +delete-after: True +changes: + - code_imp: "Slight changes the self-repair borg module. It no longer references the borg that owns it." diff --git a/html/changelogs/AutoChangeLog-pr-10774.yml b/html/changelogs/AutoChangeLog-pr-10774.yml new file mode 100644 index 0000000000..f596bdcddb --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10774.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - tweak: "nuke explosion is now full dev radius for anti lag purposes" diff --git a/html/changelogs/AutoChangeLog-pr-10787.yml b/html/changelogs/AutoChangeLog-pr-10787.yml new file mode 100644 index 0000000000..ee221b69f3 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10787.yml @@ -0,0 +1,4 @@ +author: "Seris02" +delete-after: True +changes: + - rscadd: "thief's gloves" diff --git a/html/changelogs/AutoChangeLog-pr-10792.yml b/html/changelogs/AutoChangeLog-pr-10792.yml new file mode 100644 index 0000000000..78c86a838a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10792.yml @@ -0,0 +1,4 @@ +author: "Naksu" +delete-after: True +changes: + - bugfix: "Odysseus chem synthesizing now works again." diff --git a/html/changelogs/AutoChangeLog-pr-10798.yml b/html/changelogs/AutoChangeLog-pr-10798.yml new file mode 100644 index 0000000000..637343c7b6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10798.yml @@ -0,0 +1,5 @@ +author: "necromanceranne" +delete-after: True +changes: + - rscdel: "Removed the formal security officer jacket from the secdrobe" + - tweak: "formal security jackets are now armor vests" diff --git a/html/changelogs/AutoChangeLog-pr-10848.yml b/html/changelogs/AutoChangeLog-pr-10848.yml new file mode 100644 index 0000000000..b620b95ba7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10848.yml @@ -0,0 +1,16 @@ +author: "Ghommie (original PRs by Floyd/Qustinnus, 4Dplanner, Willox, ninjanomnom, mrdoombringer, Fikou, Fox McCloud, TheChosenEvilOne, nemvar, bobbahbrown, Time-Green, Stonebaykyle, MrPerson, ArcaneMusic and zxaber)" +delete-after: True +changes: + - rscadd: "You can now make toolboxes out of almost any solid material in an autolathe" + - rscadd: "adds Knight's Armour made out of any materials" + - rscadd: "new ruin found in lavaland protected by dark wizards, I wonder what they're guarding" + - rscadd: "You can now put a bunch more mats in the coin mint and autolathe" + - rscadd: "Adamantine and Mythril are now materials (Adamantine still only from xenobio, Mythril still only from badminnery). Adamantine boosts an item's force by 1.5, Mythril gives an item RPG statistics." + - rscdel: "most custom sprites for coins have been lost" + - rscadd: "You can now give your ass acute radiation poisoning" + - rscadd: "floydmats now apply to all objs / items" + - rscadd: "you can now make tables and chairs out of any material" + - bugfix: "Fixes being able to exploit fully upgraded destructive analyzers to multiply materials" + - rscadd: "An old monastery from a previously abandoned sector of space has recently resurfaced in some regions surrounding the station." + - rscadd: "Latent scans of the surrounding systems have picked up trace signs of new, smaller cult constructs, however these signatures quickly vanished." + - rscadd: "In other news, scavengers in your sector have been seen occasionally with classically recreated maces, so autolathe firmware has been upgraded to accommodate this." diff --git a/html/changelogs/AutoChangeLog-pr-10857.yml b/html/changelogs/AutoChangeLog-pr-10857.yml new file mode 100644 index 0000000000..ae8c5f6ac0 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10857.yml @@ -0,0 +1,4 @@ +author: "Seris02" +delete-after: True +changes: + - rscadd: "Added naked hallucination" diff --git a/html/changelogs/AutoChangeLog-pr-10861.yml b/html/changelogs/AutoChangeLog-pr-10861.yml new file mode 100644 index 0000000000..5071cc30f9 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10861.yml @@ -0,0 +1,4 @@ +author: "ancientpower" +delete-after: True +changes: + - rscadd: "Ported drink sliding from /vg/station." diff --git a/html/changelogs/AutoChangeLog-pr-10877.yml b/html/changelogs/AutoChangeLog-pr-10877.yml new file mode 100644 index 0000000000..4cf54b422f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10877.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - rscadd: "Security now has riot quarterstaves in their lethal shotgun locker." diff --git a/html/changelogs/AutoChangeLog-pr-10892.yml b/html/changelogs/AutoChangeLog-pr-10892.yml new file mode 100644 index 0000000000..88f12ef378 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10892.yml @@ -0,0 +1,5 @@ +author: "kevinz000" +delete-after: True +changes: + - refactor: "Guncode and energy guns have been refactored a bit." + - rscadd: "You can now combat mode ight click on an energy gun to attempt to switch firing modes. This only works on guns without right click functions overridden." diff --git a/html/changelogs/AutoChangeLog-pr-10904.yml b/html/changelogs/AutoChangeLog-pr-10904.yml new file mode 100644 index 0000000000..112c0bc593 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10904.yml @@ -0,0 +1,4 @@ +author: "Hatterhat" +delete-after: True +changes: + - rscadd: "The ships often crashed by Free Golems on Lavaland now have GPSes. They're off, by default, but an awakening Golem could easily turn one on." diff --git a/html/changelogs/AutoChangeLog-pr-10910.yml b/html/changelogs/AutoChangeLog-pr-10910.yml new file mode 100644 index 0000000000..2b11650c80 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10910.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Fixed a little issue with sleeper UI and blood types." diff --git a/html/changelogs/AutoChangeLog-pr-10913.yml b/html/changelogs/AutoChangeLog-pr-10913.yml new file mode 100644 index 0000000000..8bf549a154 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10913.yml @@ -0,0 +1,4 @@ +author: "Feasel" +delete-after: True +changes: + - balance: "Buffed dissection success chances." diff --git a/html/changelogs/AutoChangeLog-pr-10916.yml b/html/changelogs/AutoChangeLog-pr-10916.yml new file mode 100644 index 0000000000..05d9b007b1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10916.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - balance: "Projectiles now always hit chest if targeting chest, snipers have 100% targeting zone accuracy. All other cases are unchanged." diff --git a/html/changelogs/AutoChangeLog-pr-10918.yml b/html/changelogs/AutoChangeLog-pr-10918.yml new file mode 100644 index 0000000000..bf47d0accf --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10918.yml @@ -0,0 +1,4 @@ +author: "r4d6" +delete-after: True +changes: + - config: "Made dwarves into a roundstart races" diff --git a/html/changelogs/AutoChangeLog-pr-10921.yml b/html/changelogs/AutoChangeLog-pr-10921.yml new file mode 100644 index 0000000000..d6d551b40d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10921.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "The Lavaland's Herald speech sound should only play if they are actually speaking." diff --git a/html/changelogs/AutoChangeLog-pr-10922.yml b/html/changelogs/AutoChangeLog-pr-10922.yml new file mode 100644 index 0000000000..c71630fd0d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10922.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - tweak: "The lawyer's PDA cartridge has been rebranded to something more accurate to its true nature." diff --git a/html/changelogs/AutoChangeLog-pr-10923.yml b/html/changelogs/AutoChangeLog-pr-10923.yml new file mode 100644 index 0000000000..0fd9a0f14e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10923.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Nerfed cargo passive points generation from 500 to 125 creds per minute." diff --git a/html/changelogs/AutoChangeLog-pr-10924.yml b/html/changelogs/AutoChangeLog-pr-10924.yml new file mode 100644 index 0000000000..d419928dd2 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10924.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Fixed whitelisted/donor loadouts" diff --git a/html/changelogs/AutoChangeLog-pr-10926.yml b/html/changelogs/AutoChangeLog-pr-10926.yml new file mode 100644 index 0000000000..9662402d1b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10926.yml @@ -0,0 +1,9 @@ +author: "keronshb" +delete-after: True +changes: + - rscadd: "Added repairable turrets" + - rscadd: "Adds Tiny Fans to the pirate ship" + - tweak: "changes some reinforced windows to plastinanium pirate windows" + - tweak: "made the pirate shuttle + turrets bomb resistant" + - tweak: "made most pirate machines + consoles indestructible" + - tweak: "increased pirate turret health" diff --git a/html/changelogs/AutoChangeLog-pr-10929.yml b/html/changelogs/AutoChangeLog-pr-10929.yml new file mode 100644 index 0000000000..fa9413f25a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10929.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Childproofs double-esword and hypereuplastic blade toys." diff --git a/html/changelogs/AutoChangeLog-pr-10930.yml b/html/changelogs/AutoChangeLog-pr-10930.yml new file mode 100644 index 0000000000..4121a00b9b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10930.yml @@ -0,0 +1,4 @@ +author: "r4d6" +delete-after: True +changes: + - tweak: "Meteor Timer back to 3-5 minutes" diff --git a/html/changelogs/AutoChangeLog-pr-10934.yml b/html/changelogs/AutoChangeLog-pr-10934.yml new file mode 100644 index 0000000000..61ef7ec04f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10934.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - refactor: "Refactored ghostreading/etc" diff --git a/html/changelogs/AutoChangeLog-pr-10935.yml b/html/changelogs/AutoChangeLog-pr-10935.yml new file mode 100644 index 0000000000..f35855854f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10935.yml @@ -0,0 +1,5 @@ +author: "KrabSpider" +delete-after: True +changes: + - imageadd: "The Van Dyke is no longer Fu Manchu." + - imagedel: "Gets rid of a Fu Manchu imitation." diff --git a/html/changelogs/AutoChangeLog-pr-10936.yml b/html/changelogs/AutoChangeLog-pr-10936.yml new file mode 100644 index 0000000000..2303f157ab --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10936.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - balance: "Cyborgization will now de-gang people, even gangheads." diff --git a/html/changelogs/AutoChangeLog-pr-10937.yml b/html/changelogs/AutoChangeLog-pr-10937.yml new file mode 100644 index 0000000000..1c56882ccc --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10937.yml @@ -0,0 +1,4 @@ +author: "Arturlang" +delete-after: True +changes: + - admin: "The debug outfit is now kitted out for whatever debbuging needs." diff --git a/html/changelogs/AutoChangeLog-pr-10940.yml b/html/changelogs/AutoChangeLog-pr-10940.yml new file mode 100644 index 0000000000..c0bbfc371a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10940.yml @@ -0,0 +1,5 @@ +author: "Ghommie" +delete-after: True +changes: + - balance: "Some reagent holders (such as cigarettes, food) are not suitable for reagents export anymore, while unprocessed botany crops will only net 1/3 of the standard reagents values." + - bugfix: "Export scanners now include the reagents value in the price report." diff --git a/html/changelogs/AutoChangeLog-pr-10942.yml b/html/changelogs/AutoChangeLog-pr-10942.yml new file mode 100644 index 0000000000..2a30ace3aa --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10942.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - rscadd: "map voting doesn't suck anymore" diff --git a/html/changelogs/AutoChangeLog-pr-10943.yml b/html/changelogs/AutoChangeLog-pr-10943.yml new file mode 100644 index 0000000000..f45d8b1d39 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10943.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Fixed a little inconvenience with the character setup preview dummy having extra unwarranted bits." diff --git a/html/changelogs/AutoChangeLog-pr-10947.yml b/html/changelogs/AutoChangeLog-pr-10947.yml new file mode 100644 index 0000000000..a6f1fb1344 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10947.yml @@ -0,0 +1,4 @@ +author: "nemvar" +delete-after: True +changes: + - bugfix: "Trash from food now gets generated at the location of the food item, instead of in the hands of the eater." diff --git a/html/changelogs/AutoChangeLog-pr-10948.yml b/html/changelogs/AutoChangeLog-pr-10948.yml new file mode 100644 index 0000000000..f9da9463fc --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10948.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Stopped role restricted uplink items from being discounted despite not being purchasable most times." diff --git a/html/changelogs/AutoChangeLog-pr-10949.yml b/html/changelogs/AutoChangeLog-pr-10949.yml new file mode 100644 index 0000000000..3c7000a0e1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10949.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - bugfix: "reactive repulse armor now has an item limit" diff --git a/html/changelogs/AutoChangeLog-pr-10950.yml b/html/changelogs/AutoChangeLog-pr-10950.yml new file mode 100644 index 0000000000..8258db1d69 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10950.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - bugfix: "beam rifle runtime fix during aiming_beam" diff --git a/html/changelogs/AutoChangeLog-pr-10951.yml b/html/changelogs/AutoChangeLog-pr-10951.yml new file mode 100644 index 0000000000..20bc444967 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10951.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - bugfix: "fail2topic runtime fix: taking out an ip while incrementing index resulted in accessing the next-next entry instead of the next and results in out of bound errors." diff --git a/html/changelogs/AutoChangeLog-pr-10953.yml b/html/changelogs/AutoChangeLog-pr-10953.yml new file mode 100644 index 0000000000..67c2c915ad --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10953.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Missing words replacement file for the gondola mask." diff --git a/html/changelogs/AutoChangeLog-pr-10955.yml b/html/changelogs/AutoChangeLog-pr-10955.yml new file mode 100644 index 0000000000..46ff62efaf --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10955.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - rscadd: "gravity gun repulse and chaos now work in all angles, rather than just basic cardinals and diagonals. fun." diff --git a/html/changelogs/AutoChangeLog-pr-10957.yml b/html/changelogs/AutoChangeLog-pr-10957.yml new file mode 100644 index 0000000000..b655b85fb9 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10957.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - bugfix: "Dynamic now defaults to \"classic\" storyteller instead of just failing if the vote didn't choose a storyteller." diff --git a/html/changelogs/AutoChangeLog-pr-10960.yml b/html/changelogs/AutoChangeLog-pr-10960.yml new file mode 100644 index 0000000000..6033533590 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10960.yml @@ -0,0 +1,4 @@ +author: "kappa-sama" +delete-after: True +changes: + - bugfix: "the plant dudes can actually make plant disks now" diff --git a/html/changelogs/AutoChangeLog-pr-10961.yml b/html/changelogs/AutoChangeLog-pr-10961.yml new file mode 100644 index 0000000000..eaaafab472 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10961.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Fixed an issue with the nearsighted prescription glasses taking over worn eyewear." diff --git a/html/changelogs/AutoChangeLog-pr-10966.yml b/html/changelogs/AutoChangeLog-pr-10966.yml new file mode 100644 index 0000000000..bdc78a2b01 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10966.yml @@ -0,0 +1,4 @@ +author: "r4d6" +delete-after: True +changes: + - bugfix: "Mining no longer lead to spess" diff --git a/html/changelogs/AutoChangeLog-pr-10967.yml b/html/changelogs/AutoChangeLog-pr-10967.yml new file mode 100644 index 0000000000..f242dd57bc --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10967.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Fixed AI unanchoring not properly removing the no teleport trait. My bad." diff --git a/html/changelogs/AutoChangeLog-pr-10969.yml b/html/changelogs/AutoChangeLog-pr-10969.yml new file mode 100644 index 0000000000..fdd53cdd2f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10969.yml @@ -0,0 +1,4 @@ +author: "Seris02" +delete-after: True +changes: + - rscadd: "crowbarring manifests off crates" diff --git a/html/changelogs/AutoChangeLog-pr-10970.yml b/html/changelogs/AutoChangeLog-pr-10970.yml new file mode 100644 index 0000000000..7182c5f6a6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10970.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - balance: "Public autolathes can no longer be hacked." diff --git a/html/changelogs/AutoChangeLog-pr-10971.yml b/html/changelogs/AutoChangeLog-pr-10971.yml new file mode 100644 index 0000000000..e7882646f8 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10971.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - rscadd: "Alien stools and chairs" diff --git a/html/changelogs/AutoChangeLog-pr-10972.yml b/html/changelogs/AutoChangeLog-pr-10972.yml new file mode 100644 index 0000000000..9cc2e64687 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10972.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - tweak: "Bone armor/Dagger are now crafting from bones rather then crafting menu" diff --git a/html/changelogs/AutoChangeLog-pr-10973.yml b/html/changelogs/AutoChangeLog-pr-10973.yml new file mode 100644 index 0000000000..8946cddb43 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10973.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - rscadd: "Firing pins that only works when not on station" diff --git a/html/changelogs/AutoChangeLog-pr-10974.yml b/html/changelogs/AutoChangeLog-pr-10974.yml new file mode 100644 index 0000000000..7f668256b3 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10974.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - bugfix: "antag quirk blacklisting works now" diff --git a/html/changelogs/AutoChangeLog-pr-10976.yml b/html/changelogs/AutoChangeLog-pr-10976.yml new file mode 100644 index 0000000000..34ef082829 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10976.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Fixed another issue with hering comsig." diff --git a/html/changelogs/AutoChangeLog-pr-10980.yml b/html/changelogs/AutoChangeLog-pr-10980.yml new file mode 100644 index 0000000000..3701aea6e1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10980.yml @@ -0,0 +1,7 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - rscadd: "Medical locked crates" + - balance: "Russian gear crates have less gear in some cases but all will cost more" + - bugfix: "Medical locked crates that were not locked" + - spellcheck: "Crates that were out of date are corrected" diff --git a/html/changelogs/AutoChangeLog-pr-10981.yml b/html/changelogs/AutoChangeLog-pr-10981.yml new file mode 100644 index 0000000000..df0d7990cb --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10981.yml @@ -0,0 +1,4 @@ +author: "IHOPMommyLich" +delete-after: True +changes: + - tweak: "Changed the multiplicative_slowdown of Stimulants from -1 to -0.5" diff --git a/html/changelogs/AutoChangeLog-pr-10984.yml b/html/changelogs/AutoChangeLog-pr-10984.yml new file mode 100644 index 0000000000..137536b430 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10984.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - balance: "Heads of staff have been better screened by NT before being promoted" diff --git a/html/changelogs/AutoChangeLog-pr-10987.yml b/html/changelogs/AutoChangeLog-pr-10987.yml new file mode 100644 index 0000000000..abea439a86 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10987.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - imageadd: "Fixed dozen missing privates sprites." diff --git a/html/changelogs/AutoChangeLog-pr-10988.yml b/html/changelogs/AutoChangeLog-pr-10988.yml new file mode 100644 index 0000000000..ebd9de7689 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10988.yml @@ -0,0 +1,4 @@ +author: "YakumoChen" +delete-after: True +changes: + - tweak: "Observe is back in the OOC tab" diff --git a/html/changelogs/AutoChangeLog-pr-10989.yml b/html/changelogs/AutoChangeLog-pr-10989.yml new file mode 100644 index 0000000000..0a5b2ad3c8 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10989.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "A little fix concerning some R&D and reagents." diff --git a/html/changelogs/AutoChangeLog-pr-10992.yml b/html/changelogs/AutoChangeLog-pr-10992.yml new file mode 100644 index 0000000000..1d6d10396b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10992.yml @@ -0,0 +1,4 @@ +author: "Hatterhat" +delete-after: True +changes: + - balance: "Buckshot individual pellet damage up from 10 to 12.5. Still firing 6 pellets." diff --git a/html/changelogs/AutoChangeLog-pr-10994.yml b/html/changelogs/AutoChangeLog-pr-10994.yml new file mode 100644 index 0000000000..c27a1afc00 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10994.yml @@ -0,0 +1,4 @@ +author: "DeltaFire15" +delete-after: True +changes: + - balance: "Nar'Sie runes no longer benefit from runed floors." diff --git a/html/changelogs/AutoChangeLog-pr-10996.yml b/html/changelogs/AutoChangeLog-pr-10996.yml new file mode 100644 index 0000000000..8bb7646cd6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10996.yml @@ -0,0 +1,6 @@ +author: "PersianXerxes" +delete-after: True +changes: + - rscadd: "SMES and PACMAN attached to gulag Security to power electrified windows +remove: Removed Sec vendor from gulag Security" + - tweak: "Separation of gulag and public mining" diff --git a/html/changelogs/AutoChangeLog-pr-10997.yml b/html/changelogs/AutoChangeLog-pr-10997.yml new file mode 100644 index 0000000000..a380a04f68 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10997.yml @@ -0,0 +1,12 @@ +author: "Owai-Seek" +delete-after: True +changes: + - rscadd: "Bacon and Eggs food item. Delicious! Added a Lemony Poppy Seed Muffin." + - tweak: "Snack Vendor has Chocolates, Tortilla Chips, and a Marshmallow Box" + - balance: "Mops can now be printed at service lathe once tools are researched." + - balance: "Biobags can hold most organic limbs/organs, but not brains, implants, or cybernetics." + - balance: "Trash Bag can now hold limbs (but not heads.)" + - balance: "Most snack vendor items reduced by 1." + - bugfix: "Trash Cans are now actually craftable, and only require metal instead of plastic." + - imageadd: "Bacon and Eggs, Drying Agent Bottle." + - imageadd: "Mugs now show reagent colors of contained reagents. Thanks Seris!" diff --git a/html/changelogs/AutoChangeLog-pr-11000.yml b/html/changelogs/AutoChangeLog-pr-11000.yml new file mode 100644 index 0000000000..5e496af81f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11000.yml @@ -0,0 +1,4 @@ +author: "Seris02" +delete-after: True +changes: + - balance: "makes RCDs cost a better amount" diff --git a/html/changelogs/AutoChangeLog-pr-11001.yml b/html/changelogs/AutoChangeLog-pr-11001.yml new file mode 100644 index 0000000000..1cfa8977b4 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11001.yml @@ -0,0 +1,4 @@ +author: "Arturlang" +delete-after: True +changes: + - bugfix: "Fixed the pandemic naming and the radiation healing symptom UI crashing" diff --git a/html/changelogs/AutoChangeLog-pr-11003.yml b/html/changelogs/AutoChangeLog-pr-11003.yml new file mode 100644 index 0000000000..4c551c4d09 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11003.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - bugfix: "Energy weapons now once again have their lens in contents." diff --git a/html/changelogs/AutoChangeLog-pr-11005.yml b/html/changelogs/AutoChangeLog-pr-11005.yml new file mode 100644 index 0000000000..d0576c7ba8 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11005.yml @@ -0,0 +1,4 @@ +author: "Arturlang" +delete-after: True +changes: + - tweak: "Hyposprays now switch modes on CTRL click, instead of alt, as it was already reserved for dispension amount." diff --git a/html/changelogs/AutoChangeLog-pr-11011.yml b/html/changelogs/AutoChangeLog-pr-11011.yml new file mode 100644 index 0000000000..d0a7b916f7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11011.yml @@ -0,0 +1,4 @@ +author: "Tlaltecuhtli, ported by Hatterhat" +delete-after: True +changes: + - balance: "Ripley, Firefighter, Odysseus and H.O.N.K. mechs now also use scanning modules and capacitors on construction. This means that they also gain reduced power consumption and EMP protection from higher-tier stock parts." diff --git a/html/changelogs/AutoChangeLog-pr-11012.yml b/html/changelogs/AutoChangeLog-pr-11012.yml new file mode 100644 index 0000000000..1d233f0692 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11012.yml @@ -0,0 +1,4 @@ +author: "keronshb" +delete-after: True +changes: + - rscadd: "Adds the CogChamp drink and Sprite" diff --git a/html/changelogs/AutoChangeLog-pr-11013.yml b/html/changelogs/AutoChangeLog-pr-11013.yml new file mode 100644 index 0000000000..a9806d796d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11013.yml @@ -0,0 +1,5 @@ +author: "r4d6" +delete-after: True +changes: + - rscadd: "Added Plasteel Pickaxe" + - rscadd: "Added Titanium Pickaxe" diff --git a/html/changelogs/AutoChangeLog-pr-11018.yml b/html/changelogs/AutoChangeLog-pr-11018.yml new file mode 100644 index 0000000000..2795317861 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11018.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - bugfix: "pais are no longer muted for literally a whole hour on emp." diff --git a/html/changelogs/AutoChangeLog-pr-11020.yml b/html/changelogs/AutoChangeLog-pr-11020.yml new file mode 100644 index 0000000000..52677b98e9 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11020.yml @@ -0,0 +1,4 @@ +author: "Zellular" +delete-after: True +changes: + - imageadd: "Movement state for pupdozer and its decals" diff --git a/html/changelogs/AutoChangeLog-pr-11022.yml b/html/changelogs/AutoChangeLog-pr-11022.yml new file mode 100644 index 0000000000..ac317e56b0 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11022.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - rscadd: "auto profiler subsystem from tg" diff --git a/html/changelogs/AutoChangeLog-pr-11024.yml b/html/changelogs/AutoChangeLog-pr-11024.yml new file mode 100644 index 0000000000..3af136f15e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11024.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - bugfix: "Brig cells now are more accurate by using timeofday instead of realtime" diff --git a/html/changelogs/AutoChangeLog-pr-11025.yml b/html/changelogs/AutoChangeLog-pr-11025.yml new file mode 100644 index 0000000000..af9ac20f62 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11025.yml @@ -0,0 +1,5 @@ +author: "Arturlang" +delete-after: True +changes: + - rscadd: "Nanite interfaces have gotten a rework to TGUI Next, and can now support sub-programs. +add:Adds the nanite sting program, which will allow you to manually sting people to give them nanites, changeling style." diff --git a/html/changelogs/AutoChangeLog-pr-11026.yml b/html/changelogs/AutoChangeLog-pr-11026.yml new file mode 100644 index 0000000000..c99aad2d14 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11026.yml @@ -0,0 +1,5 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - balance: "The suit full of spiders also known as a ninja now is a tactical turtleneck" + - balance: "The Wiznerds now dont have suits set to max" diff --git a/html/changelogs/AutoChangeLog-pr-11027.yml b/html/changelogs/AutoChangeLog-pr-11027.yml new file mode 100644 index 0000000000..4e5f5b46ba --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11027.yml @@ -0,0 +1,5 @@ +author: "ShadeAware" +delete-after: True +changes: + - rscadd: "The Captain's Wardrobe, a special one-of-a-kind and ID-locked wardrobe for the Captain that holds all of their snowflakey gear. +Remove: Snowflake gear from the Captain's locker, since now it has its own vendor." diff --git a/html/changelogs/AutoChangeLog-pr-11028.yml b/html/changelogs/AutoChangeLog-pr-11028.yml new file mode 100644 index 0000000000..de94b1d35f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11028.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - tweak: "Meat wheat no longer has blood" diff --git a/html/changelogs/AutoChangeLog-pr-11029.yml b/html/changelogs/AutoChangeLog-pr-11029.yml new file mode 100644 index 0000000000..17f34bbfa6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11029.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - tweak: "default should be... default" diff --git a/html/changelogs/AutoChangeLog-pr-11032.yml b/html/changelogs/AutoChangeLog-pr-11032.yml new file mode 100644 index 0000000000..6d026e444a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11032.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - bugfix: "Cryo now actually transfers reagents at tier 4 on enter rather than every 80 machine fire()-process()s regardless of if it was \"reset\" by open/close." diff --git a/html/changelogs/AutoChangeLog-pr-11033.yml b/html/changelogs/AutoChangeLog-pr-11033.yml new file mode 100644 index 0000000000..c5b9a2f65a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11033.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - rscadd: "cmo now gets advanced surgery drapes that techweb-sync for advanced surgeries without an operating console." diff --git a/html/changelogs/AutoChangeLog-pr-11035.yml b/html/changelogs/AutoChangeLog-pr-11035.yml new file mode 100644 index 0000000000..94a57db904 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11035.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - bugfix: "ctf claymores now actually spawn (and fit)." diff --git a/html/changelogs/AutoChangeLog-pr-11038.yml b/html/changelogs/AutoChangeLog-pr-11038.yml new file mode 100644 index 0000000000..b157c31af8 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11038.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - bugfix: "STOP_PROCESSING now removes from currentrun to prevent another process cycle from happening where it shouldn't." diff --git a/html/changelogs/AutoChangeLog-pr-11040.yml b/html/changelogs/AutoChangeLog-pr-11040.yml new file mode 100644 index 0000000000..cc0514517b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11040.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Further mob holder fixes." diff --git a/html/changelogs/AutoChangeLog-pr-11042.yml b/html/changelogs/AutoChangeLog-pr-11042.yml new file mode 100644 index 0000000000..4238f76b75 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11042.yml @@ -0,0 +1,4 @@ +author: "Arturlang" +delete-after: True +changes: + - balance: "The pandemic can no longer make vaccines or synthblood as quickly." diff --git a/html/changelogs/AutoChangeLog-pr-11043.yml b/html/changelogs/AutoChangeLog-pr-11043.yml new file mode 100644 index 0000000000..28217af630 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11043.yml @@ -0,0 +1,4 @@ +author: "Seris02" +delete-after: True +changes: + - bugfix: "apc icons" diff --git a/html/changelogs/AutoChangeLog-pr-11044.yml b/html/changelogs/AutoChangeLog-pr-11044.yml new file mode 100644 index 0000000000..7dec153778 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11044.yml @@ -0,0 +1,4 @@ +author: "Arturlang" +delete-after: True +changes: + - rscadd: "The syndicate uplinks interface has been redone in TGUI Next" diff --git a/html/changelogs/AutoChangeLog-pr-11045.yml b/html/changelogs/AutoChangeLog-pr-11045.yml new file mode 100644 index 0000000000..9e3e0a9ee4 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11045.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - bugfix: "Flat guns can no longer be suppressed" diff --git a/html/changelogs/AutoChangeLog-pr-11046.yml b/html/changelogs/AutoChangeLog-pr-11046.yml new file mode 100644 index 0000000000..c40286e901 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11046.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - tweak: "replaced stickmans .45 caliber with 10mm, for consistency." diff --git a/html/changelogs/AutoChangeLog-pr-11047.yml b/html/changelogs/AutoChangeLog-pr-11047.yml new file mode 100644 index 0000000000..5bc42d1219 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11047.yml @@ -0,0 +1,5 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - tweak: "Meatwheat and Oats now have rarity" + - balance: "Oats now have at lest 50% more flour in them" diff --git a/html/changelogs/AutoChangeLog-pr-11048.yml b/html/changelogs/AutoChangeLog-pr-11048.yml new file mode 100644 index 0000000000..77af926906 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11048.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - balance: "BDM now uses a PKA rather then a normal KA" diff --git a/html/changelogs/AutoChangeLog-pr-11051.yml b/html/changelogs/AutoChangeLog-pr-11051.yml new file mode 100644 index 0000000000..8ac7939b00 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11051.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - balance: "hand teleporters now require 30 deciseconds of still movement by the user to dispel portals. there's a beam effect too." diff --git a/html/changelogs/AutoChangeLog-pr-11053.yml b/html/changelogs/AutoChangeLog-pr-11053.yml new file mode 100644 index 0000000000..a3c2eb29fa --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11053.yml @@ -0,0 +1,5 @@ +author: "keronshb" +delete-after: True +changes: + - rscadd: "Added burn and knockback to stunhand during HALOS on cult." + - balance: "Added burn and knockback to stunhand during HALOS on cult." diff --git a/html/changelogs/AutoChangeLog-pr-11056.yml b/html/changelogs/AutoChangeLog-pr-11056.yml new file mode 100644 index 0000000000..b56efb3557 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11056.yml @@ -0,0 +1,4 @@ +author: "necromanceranne" +delete-after: True +changes: + - rscdel: "Bullets causing bleed rates equal to unmitigated damage through all forms of defense." diff --git a/html/changelogs/AutoChangeLog-pr-11060.yml b/html/changelogs/AutoChangeLog-pr-11060.yml new file mode 100644 index 0000000000..c78f03a26d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11060.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - balance: "Sort of a bugfix but cult blood magic and all guns now respect stamina softcrit." diff --git a/html/changelogs/AutoChangeLog-pr-11061.yml b/html/changelogs/AutoChangeLog-pr-11061.yml new file mode 100644 index 0000000000..5225edc141 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11061.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - tweak: "Gang tower shield is no longer transparent" diff --git a/html/changelogs/AutoChangeLog-pr-11062.yml b/html/changelogs/AutoChangeLog-pr-11062.yml new file mode 100644 index 0000000000..b9bc85b1c1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11062.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - balance: "Organ healing rate doubled. Organ decay rate halved to match its define (15 minutes for full decay, so at around 8-10 minutes it'll be really fucked)." diff --git a/html/changelogs/AutoChangeLog-pr-11063.yml b/html/changelogs/AutoChangeLog-pr-11063.yml new file mode 100644 index 0000000000..c729fb5ed9 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11063.yml @@ -0,0 +1,4 @@ +author: "Zellular" +delete-after: True +changes: + - tweak: "Tweaked the movement state for the pupdozer's eyes" diff --git a/html/changelogs/AutoChangeLog-pr-11070.yml b/html/changelogs/AutoChangeLog-pr-11070.yml new file mode 100644 index 0000000000..3c923bddb0 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11070.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - tweak: "Storage now caches max screen size and only stores when being opened by a non ghost, meaning ghosts will no longer distort living player screens when viewing storage." diff --git a/html/changelogs/AutoChangeLog-pr-11071.yml b/html/changelogs/AutoChangeLog-pr-11071.yml new file mode 100644 index 0000000000..e8581b325e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11071.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Fixed being unable to dump a trash bag's contents directly into disposal bins." diff --git a/html/changelogs/AutoChangeLog-pr-11072.yml b/html/changelogs/AutoChangeLog-pr-11072.yml new file mode 100644 index 0000000000..ab21d91e19 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11072.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Doubled the halved flavor text maximum length." diff --git a/html/changelogs/AutoChangeLog-pr-11073.yml b/html/changelogs/AutoChangeLog-pr-11073.yml new file mode 100644 index 0000000000..078c5fb300 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11073.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Reduced tongue organ damage and tasting pH message spam." diff --git a/html/changelogs/AutoChangeLog-pr-11075.yml b/html/changelogs/AutoChangeLog-pr-11075.yml new file mode 100644 index 0000000000..0eb612a81e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11075.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Fixed agent IDs not registering the inputted name. Thanks MrPerson." diff --git a/html/changelogs/AutoChangeLog-pr-11076.yml b/html/changelogs/AutoChangeLog-pr-11076.yml new file mode 100644 index 0000000000..e0f187a038 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11076.yml @@ -0,0 +1,4 @@ +author: "nemvar" +delete-after: True +changes: + - code_imp: "Changed mob biotypes from lists to flags." diff --git a/html/changelogs/AutoChangeLog-pr-11079.yml b/html/changelogs/AutoChangeLog-pr-11079.yml new file mode 100644 index 0000000000..b613b6c867 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11079.yml @@ -0,0 +1,4 @@ +author: "Arturlang" +delete-after: True +changes: + - tweak: "Valentines can now be converted by bloodsuckers" diff --git a/html/changelogs/AutoChangeLog-pr-11080.yml b/html/changelogs/AutoChangeLog-pr-11080.yml new file mode 100644 index 0000000000..1dd764cfc3 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11080.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - balance: "Stunbatons changed yet again." diff --git a/html/changelogs/AutoChangeLog-pr-11081.yml b/html/changelogs/AutoChangeLog-pr-11081.yml new file mode 100644 index 0000000000..2fcb15b7aa --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11081.yml @@ -0,0 +1,4 @@ +author: "Detective-Google" +delete-after: True +changes: + - bugfix: "valentines candy no longer prefbreaks" diff --git a/html/changelogs/AutoChangeLog-pr-11082.yml b/html/changelogs/AutoChangeLog-pr-11082.yml new file mode 100644 index 0000000000..89d9b4ca52 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11082.yml @@ -0,0 +1,4 @@ +author: "Hatterhat" +delete-after: True +changes: + - rscadd: "Preservahyde! Made with water, bromine, and formaldehyde, it doesn't decay into histamine. Instead, it just prevents your organs from rotting into nothing." diff --git a/html/changelogs/AutoChangeLog-pr-11083.yml b/html/changelogs/AutoChangeLog-pr-11083.yml new file mode 100644 index 0000000000..757d9fcb63 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11083.yml @@ -0,0 +1,4 @@ +author: "Hatterhat" +delete-after: True +changes: + - balance: "You can now purify eldritch longswords with a bible. This creates purified longswords, which do not have anti-magic properties, but are still good for swinging at cultists." diff --git a/html/changelogs/AutoChangeLog-pr-11086.yml b/html/changelogs/AutoChangeLog-pr-11086.yml new file mode 100644 index 0000000000..e11113e71c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11086.yml @@ -0,0 +1,6 @@ +author: "YakumoChen" +delete-after: True +changes: + - imageadd: "Rings look nicer. Sprites used from RP." + - imageadd: "Ring on-hands. Diamond rings sparkle!" + - tweak: "You can now propose using a diamond ring in your hand." diff --git a/html/changelogs/AutoChangeLog-pr-11087.yml b/html/changelogs/AutoChangeLog-pr-11087.yml new file mode 100644 index 0000000000..179ef6a2b7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11087.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Fixed solar panels/trackers (de)construction being a bit wonky." diff --git a/html/changelogs/AutoChangeLog-pr-11090.yml b/html/changelogs/AutoChangeLog-pr-11090.yml new file mode 100644 index 0000000000..698306fdb6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11090.yml @@ -0,0 +1,4 @@ +author: "Seris02" +delete-after: True +changes: + - rscadd: "rest hotkey" diff --git a/html/changelogs/AutoChangeLog-pr-11091.yml b/html/changelogs/AutoChangeLog-pr-11091.yml new file mode 100644 index 0000000000..5d43d7dbdf --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11091.yml @@ -0,0 +1,5 @@ +author: "BlueWildrose" +delete-after: True +changes: + - bugfix: "podpeople tail wagging" + - tweak: "lifebringer ghost role fixes" diff --git a/html/changelogs/AutoChangeLog-pr-11093.yml b/html/changelogs/AutoChangeLog-pr-11093.yml new file mode 100644 index 0000000000..4815818b0d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11093.yml @@ -0,0 +1,5 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Fixed something about slime blood and the law of conservation of mass." + - bugfix: "Fixed flypeople being emetic machine guns." diff --git a/html/changelogs/AutoChangeLog-pr-11094.yml b/html/changelogs/AutoChangeLog-pr-11094.yml new file mode 100644 index 0000000000..a6db5bd93f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11094.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - tweak: "Cosmic winter coat now glows like the bedsheet, and holds normal winter coat gear" diff --git a/html/changelogs/AutoChangeLog-pr-11098.yml b/html/changelogs/AutoChangeLog-pr-11098.yml new file mode 100644 index 0000000000..5ca7b7dd1e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11098.yml @@ -0,0 +1,4 @@ +author: "Raiq & Linzolle" +delete-after: True +changes: + - rscadd: "Bone bow - Ash walkers crafting , bone arrows - Ash walkers crafting, silk string used in bow crafting, harden arrows - Ash walkers crafting, ash walker only crafting book, basic pipe bow, and bow & arrow selling. Quivers for ash walkers as well, just to hold some arrows well out on the hunt!" diff --git a/html/changelogs/AutoChangeLog-pr-11101.yml b/html/changelogs/AutoChangeLog-pr-11101.yml new file mode 100644 index 0000000000..5305e2b923 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11101.yml @@ -0,0 +1,4 @@ +author: "coiax" +delete-after: True +changes: + - rscadd: "Admin and event only pair pinpointers! They come in a box of two, and each pinpointer will always point at its corresponding pair. Aww." diff --git a/html/changelogs/AutoChangeLog-pr-11103.yml b/html/changelogs/AutoChangeLog-pr-11103.yml new file mode 100644 index 0000000000..f38e23f76e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11103.yml @@ -0,0 +1,5 @@ +author: "PersianXerxes" +delete-after: True +changes: + - rscadd: "Better clarified the comment explaining the contraband tag." + - tweak: "Cargo nuclear defusal kits now require an emag'd drop pod console to be purchased." diff --git a/html/changelogs/AutoChangeLog-pr-11104.yml b/html/changelogs/AutoChangeLog-pr-11104.yml new file mode 100644 index 0000000000..205af650a9 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11104.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - server: "Express console is now logging what it buys, like the normal console should" diff --git a/html/changelogs/AutoChangeLog-pr-11105.yml b/html/changelogs/AutoChangeLog-pr-11105.yml new file mode 100644 index 0000000000..0c7ac7b1e6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11105.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - bugfix: "Crabs are now made of crab meat." diff --git a/html/changelogs/AutoChangeLog-pr-11108.yml b/html/changelogs/AutoChangeLog-pr-11108.yml new file mode 100644 index 0000000000..c8bed79399 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11108.yml @@ -0,0 +1,4 @@ +author: "Seris02" +delete-after: True +changes: + - rscadd: "hsl instead of sum of rgb for spraycan lum check" diff --git a/html/changelogs/AutoChangeLog-pr-11110.yml b/html/changelogs/AutoChangeLog-pr-11110.yml new file mode 100644 index 0000000000..5930a2bd30 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11110.yml @@ -0,0 +1,4 @@ +author: "Hatterhat" +delete-after: True +changes: + - rscadd: "Extend votes! Ported from Hyper, ported from AUstation." diff --git a/html/changelogs/AutoChangeLog-pr-11111.yml b/html/changelogs/AutoChangeLog-pr-11111.yml new file mode 100644 index 0000000000..4e947ed297 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11111.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Fixed virology being unable to be done with synthetic blood." diff --git a/html/changelogs/AutoChangeLog-pr-11112.yml b/html/changelogs/AutoChangeLog-pr-11112.yml new file mode 100644 index 0000000000..f54e2e0192 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11112.yml @@ -0,0 +1,9 @@ +author: "necromanceranne" +delete-after: True +changes: + - balance: "Reverted #9092, crew mecha no longer spawn with tracking beacons." + - balance: "[Port] Mecha ballistics weapons now require ammo created from an Exosuit Fabricator or the Security Protolathe, though they will start with a full magazine and in most cases enough for one full reload. Reloading these weapons no longer chunks your power cell. Clown (and mime) mecha equipment have not changed." + - balance: "[Port] The SRM-8 Missile Launcher has been replaced with the BRM-6 Breaching Missile Launcher in techwebs (Nukie Mauler remains equipped with the SRM-8)." + - balance: "[Port] Both Missile Launchers and the Clusterbang Launcher do not have an ammo cache, and cannot be reloaded by the pilot. Once the initial loaded ammo has been spent, you can use the appropriate ammo box to load the weapon directly." + - rscadd: "[Port] Utility mechs that have a clamp equipped can load ammo from their own cargo hold into other mechs." + - rscadd: "[Port] Nuke Ops can purchase spare ammo duffel bags for their mecha weapons, should they run low." diff --git a/html/changelogs/AutoChangeLog-pr-11113.yml b/html/changelogs/AutoChangeLog-pr-11113.yml new file mode 100644 index 0000000000..b3c0bb34a8 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11113.yml @@ -0,0 +1,4 @@ +author: "CameronWoof" +delete-after: True +changes: + - rscadd: "Ammonia and saltpetre can now be made at the biogenerator." diff --git a/html/changelogs/AutoChangeLog-pr-11114.yml b/html/changelogs/AutoChangeLog-pr-11114.yml new file mode 100644 index 0000000000..7d56933c65 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11114.yml @@ -0,0 +1,6 @@ +author: "Psody-Mordheim" +delete-after: True +changes: + - rscadd: "You can now make synth-flesh with synthetic blood." + - rscadd: "You can now make synthetic blood via mixing saline glucose, iron, stable plasma and heating it to 350 temp." + - rscadd: "You can mix synthetic blood and cryoxadone to create synth-meat in addition to normal blood." diff --git a/html/changelogs/AutoChangeLog-pr-11119.yml b/html/changelogs/AutoChangeLog-pr-11119.yml new file mode 100644 index 0000000000..4a0dc59c65 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11119.yml @@ -0,0 +1,6 @@ +author: "Ghommie" +delete-after: True +changes: + - rscdel: "Renamed \"blaster carbine\" and \"blaster rifles\" back to \"energy gun\" and \"laser gun\" respectively" + - bugfix: "Fixed magnetic rifles & co being inconsistent with printed energy guns and start with an empty power cell." + - imagedel: "Reverted practice laser gun sprites back to their former glory. Mostly." diff --git a/html/changelogs/AutoChangeLog-pr-11120.yml b/html/changelogs/AutoChangeLog-pr-11120.yml new file mode 100644 index 0000000000..64a435146c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11120.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Fixed sprint buffer cost and regen being rounded down." diff --git a/html/changelogs/AutoChangeLog-pr-11129.yml b/html/changelogs/AutoChangeLog-pr-11129.yml new file mode 100644 index 0000000000..18f8308bb1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11129.yml @@ -0,0 +1,10 @@ +author: "Owai-Seek" +delete-after: True +changes: + - tweak: "Reorganized all food recipes, (hopefully) making things easier to find." + - balance: "Trays now have a whitelist, allowing them to pick up normal sized foods, bowls, glassware, booze, ect." + - bugfix: "Easter foods are no longer their own Misc Food Category on the top of the menu." + - spellcheck: "fixed a few typos/capitalization consistency." + - tweak: "Mexican Foods are their own Subcategory." + - tweak: "Donuts are their own Subcategory" + - tweak: "Moved Sweets from Misc Food in with Pies. Renamed to Pies & Sweets" diff --git a/html/changelogs/AutoChangeLog-pr-11131.yml b/html/changelogs/AutoChangeLog-pr-11131.yml new file mode 100644 index 0000000000..9a14049c2f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11131.yml @@ -0,0 +1,4 @@ +author: "Seris02" +delete-after: True +changes: + - balance: "bloodcrawl's cooldown" diff --git a/html/changelogs/AutoChangeLog-pr-11133.yml b/html/changelogs/AutoChangeLog-pr-11133.yml new file mode 100644 index 0000000000..8cedc300c7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11133.yml @@ -0,0 +1,5 @@ +author: "Ghommie" +delete-after: True +changes: + - balance: "Nerfed the fermenting barrel export industry." + - tweak: "Reagent dispensers selling price no longer takes in account the reagents volume. It's already handled by reagents export." diff --git a/html/changelogs/AutoChangeLog-pr-11134.yml b/html/changelogs/AutoChangeLog-pr-11134.yml new file mode 100644 index 0000000000..8ec6c97164 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11134.yml @@ -0,0 +1,4 @@ +author: "Hatterhat" +delete-after: True +changes: + - bugfix: "mechs with stock parts now have icons" diff --git a/html/changelogs/AutoChangeLog-pr-11136.yml b/html/changelogs/AutoChangeLog-pr-11136.yml new file mode 100644 index 0000000000..5289fc3492 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11136.yml @@ -0,0 +1,5 @@ +author: "Owai-Seek" +delete-after: True +changes: + - rscadd: "BROOM" + - tweak: "Janitor Vendor now has gear for two Janitors." diff --git a/html/changelogs/AutoChangeLog-pr-11138.yml b/html/changelogs/AutoChangeLog-pr-11138.yml new file mode 100644 index 0000000000..fd0e53bb73 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11138.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - tweak: "the game's built in autoclicker aka CanMobAutoclick no longer triggers client/Click()'s anti clickspam guard." diff --git a/html/changelogs/AutoChangeLog-pr-11139.yml b/html/changelogs/AutoChangeLog-pr-11139.yml new file mode 100644 index 0000000000..99a7027977 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11139.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - balance: "pais can no longer bodyblock bullets" diff --git a/html/changelogs/AutoChangeLog-pr-11140.yml b/html/changelogs/AutoChangeLog-pr-11140.yml new file mode 100644 index 0000000000..1054039b53 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11140.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - balance: "pai radio short changed to 3 minutes down from 5" diff --git a/html/changelogs/AutoChangeLog-pr-11141.yml b/html/changelogs/AutoChangeLog-pr-11141.yml new file mode 100644 index 0000000000..68de20a632 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11141.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - balance: "pais are no longer fulltile click opacity." diff --git a/html/changelogs/AutoChangeLog-pr-11142.yml b/html/changelogs/AutoChangeLog-pr-11142.yml new file mode 100644 index 0000000000..35c4033e2c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11142.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - refactor: "vampire \"immortal haste\" has been reworked to be more reliable and consistent." diff --git a/html/changelogs/AutoChangeLog-pr-11145.yml b/html/changelogs/AutoChangeLog-pr-11145.yml new file mode 100644 index 0000000000..2ad26003fb --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11145.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "pAIs are yet again unable to perform certain silicon interactions with machineries yet again." diff --git a/html/changelogs/AutoChangeLog-pr-11146.yml b/html/changelogs/AutoChangeLog-pr-11146.yml new file mode 100644 index 0000000000..09d3b0134b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11146.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - balance: "all supermatter damage is now hardcapped" diff --git a/html/changelogs/AutoChangeLog-pr-11147.yml b/html/changelogs/AutoChangeLog-pr-11147.yml new file mode 100644 index 0000000000..0978b2b184 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11147.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - tweak: "Supermatter sabotage objective no longer shows up with no supermatter" diff --git a/html/changelogs/AutoChangeLog-pr-11149.yml b/html/changelogs/AutoChangeLog-pr-11149.yml new file mode 100644 index 0000000000..bc9ce5eb9e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11149.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - bugfix: "Mining vendors no longer fail and eat your points iff you have precisely enough points to pay for an item" diff --git a/html/changelogs/AutoChangeLog-pr-11150.yml b/html/changelogs/AutoChangeLog-pr-11150.yml new file mode 100644 index 0000000000..0548ec177e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11150.yml @@ -0,0 +1,8 @@ +author: "raspyosu" +delete-after: True +changes: + - rscadd: "some flavor text for lunge, cloak" + - tweak: "mesmerize, cloak functionality/requirements" + - balance: "mesmerize, lunge, cloak" + - soundadd: "lunge telegraph sound" + - spellcheck: "mesmerized status icon flavor text" diff --git a/html/changelogs/AutoChangeLog-pr-11153.yml b/html/changelogs/AutoChangeLog-pr-11153.yml new file mode 100644 index 0000000000..bba1af88db --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11153.yml @@ -0,0 +1,5 @@ +author: "BuffEngineering, nemvar." +delete-after: True +changes: + - bugfix: "Addicts can now feel like they're getting their fix or kicking it." + - bugfix: "Aheals now remove addictions and restore your mood to default." diff --git a/html/changelogs/AutoChangeLog-pr-11154.yml b/html/changelogs/AutoChangeLog-pr-11154.yml new file mode 100644 index 0000000000..03e1898b60 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11154.yml @@ -0,0 +1,4 @@ +author: "Kraseo" +delete-after: True +changes: + - bugfix: "Nightmares no longer delete entire guns from existence for merely having a light on them." diff --git a/html/changelogs/AutoChangeLog-pr-11155.yml b/html/changelogs/AutoChangeLog-pr-11155.yml new file mode 100644 index 0000000000..069cdbdedf --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11155.yml @@ -0,0 +1,4 @@ +author: "necromanceranne" +delete-after: True +changes: + - bugfix: "Literally unclickability with a cham projector" diff --git a/html/changelogs/AutoChangeLog-pr-11156.yml b/html/changelogs/AutoChangeLog-pr-11156.yml new file mode 100644 index 0000000000..dc684eb4ef --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11156.yml @@ -0,0 +1,8 @@ +author: "Psody-Mordheim" +delete-after: True +changes: + - rscadd: "Disfiguration Symptom." + - rscadd: "Deoxyribonucleic Acid Saboteur Symptom." + - rscadd: "Polyvitiligo Symptom." + - rscdel: "Revitiligo Symptom." + - rscdel: "Vitiligo Symptom." diff --git a/html/changelogs/AutoChangeLog-pr-11157.yml b/html/changelogs/AutoChangeLog-pr-11157.yml new file mode 100644 index 0000000000..5843c5f0e4 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11157.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - tweak: "Licking pref" diff --git a/html/changelogs/AutoChangeLog-pr-11160.yml b/html/changelogs/AutoChangeLog-pr-11160.yml new file mode 100644 index 0000000000..cf0fc3253e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11160.yml @@ -0,0 +1,4 @@ +author: "Hatterhat" +delete-after: True +changes: + - balance: "Pie reagent transfer now requires an uncovered mouth." diff --git a/html/changelogs/AutoChangeLog-pr-11162.yml b/html/changelogs/AutoChangeLog-pr-11162.yml new file mode 100644 index 0000000000..3ea1b88ef7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11162.yml @@ -0,0 +1,5 @@ +author: "Hatterhat" +delete-after: True +changes: + - bugfix: "Biogenerators can now actually generate universal enzyme." + - bugfix: "The Basic Tools node now unlocks the multitool for printing on Engineering and Science fabricators." diff --git a/html/changelogs/AutoChangeLog-pr-11163.yml b/html/changelogs/AutoChangeLog-pr-11163.yml new file mode 100644 index 0000000000..5492ad563b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11163.yml @@ -0,0 +1,4 @@ +author: "MrJWhit" +delete-after: True +changes: + - tweak: "TEG" diff --git a/html/changelogs/AutoChangeLog-pr-11166.yml b/html/changelogs/AutoChangeLog-pr-11166.yml new file mode 100644 index 0000000000..c812c77ad8 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11166.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - bugfix: "Fixed IRV." diff --git a/html/changelogs/AutoChangeLog-pr-11167.yml b/html/changelogs/AutoChangeLog-pr-11167.yml new file mode 100644 index 0000000000..51bbb12fb3 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11167.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - tweak: "hand teles use a less atrocious beam" diff --git a/html/changelogs/AutoChangeLog-pr-11168.yml b/html/changelogs/AutoChangeLog-pr-11168.yml new file mode 100644 index 0000000000..93caacdad1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11168.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - bugfix: "Runtime if nobody has a chaos pref set" diff --git a/html/changelogs/AutoChangeLog-pr-11169.yml b/html/changelogs/AutoChangeLog-pr-11169.yml new file mode 100644 index 0000000000..c0d150acb5 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11169.yml @@ -0,0 +1,8 @@ +author: "PersianXerxes" +delete-after: True +changes: + - rscadd: "Added Kilo Station" + - tweak: "Adjusts Kilo Station to be more in line with Citadel standards" + - imageadd: "Added area icons required to make Kilo Station editable on Citadel code" + - code_imp: "Fixed a reagent container on Kilo pointing to a nonexistent reagent" + - config: "Adds Kilo Station to the maps config file, does not fix Meta Station's population requirement" diff --git a/html/changelogs/AutoChangeLog-pr-11172.yml b/html/changelogs/AutoChangeLog-pr-11172.yml new file mode 100644 index 0000000000..83deba9652 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11172.yml @@ -0,0 +1,5 @@ +author: "Linzolle" +delete-after: True +changes: + - bugfix: "Bows now will not delete an arrow if it cant fire it." + - bugfix: "bows now like and respect sprite changes" diff --git a/html/changelogs/AutoChangeLog-pr-11175.yml b/html/changelogs/AutoChangeLog-pr-11175.yml new file mode 100644 index 0000000000..89d82068f1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11175.yml @@ -0,0 +1,6 @@ +author: "keronshb" +delete-after: True +changes: + - bugfix: "fixed accelerated regeneration nanites" + - bugfix: "fixed mechanical repair nanites" + - bugfix: "fixed bio reconstruction nanites" diff --git a/html/changelogs/AutoChangeLog-pr-11176.yml b/html/changelogs/AutoChangeLog-pr-11176.yml new file mode 100644 index 0000000000..98c7619990 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11176.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - bugfix: "IRV fixed... again" diff --git a/html/changelogs/AutoChangeLog-pr-11179.yml b/html/changelogs/AutoChangeLog-pr-11179.yml new file mode 100644 index 0000000000..6c538d5476 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11179.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - bugfix: "AIs now understand the old ways of drunken dwarfs" diff --git a/html/changelogs/AutoChangeLog-pr-11182.yml b/html/changelogs/AutoChangeLog-pr-11182.yml new file mode 100644 index 0000000000..a5f8d5081e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11182.yml @@ -0,0 +1,5 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - balance: "Removes some armored Russian hats from box station round start" + - bugfix: "Doner items spawning" diff --git a/html/changelogs/AutoChangeLog-pr-11183.yml b/html/changelogs/AutoChangeLog-pr-11183.yml new file mode 100644 index 0000000000..26a325cb08 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11183.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - balance: "Engi/Sec Trek suit no longer has 10% melee protection" diff --git a/html/changelogs/AutoChangeLog-pr-11184.yml b/html/changelogs/AutoChangeLog-pr-11184.yml new file mode 100644 index 0000000000..cb8ba1da3e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11184.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - bugfix: "IPC hearts are now made of robomeat and roboblood thats emp proof. Heals and is all and all just like an normal heart" diff --git a/html/changelogs/AutoChangeLog-pr-11185.yml b/html/changelogs/AutoChangeLog-pr-11185.yml new file mode 100644 index 0000000000..347dc9a3ad --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11185.yml @@ -0,0 +1,5 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - imageadd: "All robotic organs now have an animation." + - imageadd: "IPC's now organs now look like robotic ones, even tho thats not the case game wise" diff --git a/html/changelogs/AutoChangeLog-pr-11186.yml b/html/changelogs/AutoChangeLog-pr-11186.yml new file mode 100644 index 0000000000..7a0c97379a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11186.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - bugfix: "temporary flavor text can now be of reasonable length" diff --git a/html/changelogs/AutoChangeLog-pr-11187.yml b/html/changelogs/AutoChangeLog-pr-11187.yml new file mode 100644 index 0000000000..4a2bf49530 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11187.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - imageadd: "Added a new bee themed bar sign" diff --git a/html/changelogs/AutoChangeLog-pr-11188.yml b/html/changelogs/AutoChangeLog-pr-11188.yml new file mode 100644 index 0000000000..24aae51503 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11188.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - imageadd: "Makes plywood chair not look as bad." diff --git a/html/changelogs/AutoChangeLog-pr-11191.yml b/html/changelogs/AutoChangeLog-pr-11191.yml new file mode 100644 index 0000000000..12b80bf1c3 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11191.yml @@ -0,0 +1,4 @@ +author: "YakumoChen" +delete-after: True +changes: + - tweak: "Legion skulls behave like bees!!!!" diff --git a/html/changelogs/AutoChangeLog-pr-11192.yml b/html/changelogs/AutoChangeLog-pr-11192.yml new file mode 100644 index 0000000000..4fc73ee199 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11192.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - balance: "Shooting the supermatter now adds to the supermatter's power. CO2 setups beware!" diff --git a/html/changelogs/AutoChangeLog-pr-11199.yml b/html/changelogs/AutoChangeLog-pr-11199.yml new file mode 100644 index 0000000000..70aae404e1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11199.yml @@ -0,0 +1,5 @@ +author: "Detective-Google" +delete-after: True +changes: + - rscadd: "Loudness Booster pAI program" + - rscadd: "Encryption Key pAI program" diff --git a/html/changelogs/AutoChangeLog-pr-11201.yml b/html/changelogs/AutoChangeLog-pr-11201.yml new file mode 100644 index 0000000000..4b7749eee2 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11201.yml @@ -0,0 +1,8 @@ +author: "Hatterhat" +delete-after: True +changes: + - rscadd: "The Ash Walkers' nest on Lavaland now starts with three bowyery slabs." + - rscadd: "You can now welder-harden arrows. It might take longer." + - balance: "Silkstring's costs adjusted for bows and whatnot." + - spellcheck: "Grammar adjusted on a lot of things relating to bows." + - bugfix: "Pipe bows' bowstring doesn't look like it replicated itself upon draw." diff --git a/html/changelogs/AutoChangeLog-pr-11202.yml b/html/changelogs/AutoChangeLog-pr-11202.yml new file mode 100644 index 0000000000..5c5c5da66b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11202.yml @@ -0,0 +1,4 @@ +author: "Hatterhat" +delete-after: True +changes: + - rscadd: "Beegions! Like Legions, but with actual bees. As in, the bees from the holodeck sim with the randomly-generated toxic bees." diff --git a/html/changelogs/AutoChangeLog-pr-11206.yml b/html/changelogs/AutoChangeLog-pr-11206.yml new file mode 100644 index 0000000000..5f6889ec94 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11206.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - bugfix: "corndog sprite being miss-spelled" diff --git a/html/changelogs/AutoChangeLog-pr-11207.yml b/html/changelogs/AutoChangeLog-pr-11207.yml new file mode 100644 index 0000000000..db73ed666f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11207.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - bugfix: "Ash from land of lava now is useable for sandstone" diff --git a/html/changelogs/AutoChangeLog-pr-11212.yml b/html/changelogs/AutoChangeLog-pr-11212.yml new file mode 100644 index 0000000000..62d6c4fb19 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11212.yml @@ -0,0 +1,4 @@ +author: "r4d6" +delete-after: True +changes: + - bugfix: "fixed a missing tile" diff --git a/html/changelogs/AutoChangeLog-pr-11214.yml b/html/changelogs/AutoChangeLog-pr-11214.yml new file mode 100644 index 0000000000..1a602727a8 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11214.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Fixed pAI radios inability to be toggled on/off." diff --git a/html/changelogs/AutoChangeLog-pr-11216.yml b/html/changelogs/AutoChangeLog-pr-11216.yml new file mode 100644 index 0000000000..40bb5067e3 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11216.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - rscadd: "Logging for renaming" diff --git a/html/changelogs/AutoChangeLog-pr-11219.yml b/html/changelogs/AutoChangeLog-pr-11219.yml new file mode 100644 index 0000000000..8340efea51 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11219.yml @@ -0,0 +1,5 @@ +author: "YakumoChen" +delete-after: True +changes: + - imageadd: "Nekomata (double cat) tails." + - imageadd: "2CAT LMAO" diff --git a/html/changelogs/AutoChangeLog-pr-11220.yml b/html/changelogs/AutoChangeLog-pr-11220.yml new file mode 100644 index 0000000000..1d46cede32 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11220.yml @@ -0,0 +1,4 @@ +author: "Kraseo" +delete-after: True +changes: + - balance: "If you have the powersink objective, you will now receive a free beacon." diff --git a/html/changelogs/AutoChangeLog-pr-11235.yml b/html/changelogs/AutoChangeLog-pr-11235.yml new file mode 100644 index 0000000000..bad485400b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11235.yml @@ -0,0 +1,4 @@ +author: "Detective-Google" +delete-after: True +changes: + - bugfix: "my dumb stupid paramedics" diff --git a/html/changelogs/AutoChangeLog-pr-11236.yml b/html/changelogs/AutoChangeLog-pr-11236.yml new file mode 100644 index 0000000000..bda625e02b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11236.yml @@ -0,0 +1,4 @@ +author: "bunny232" +delete-after: True +changes: + - tweak: "Changes the simple animal sentience event from the xenomorph preference to sentience potion preference." diff --git a/html/changelogs/AutoChangeLog-pr-11238.yml b/html/changelogs/AutoChangeLog-pr-11238.yml new file mode 100644 index 0000000000..c268fcfdb0 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11238.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - bugfix: "Peach cake slices are no long made by mimes" diff --git a/html/changelogs/AutoChangeLog-pr-11240.yml b/html/changelogs/AutoChangeLog-pr-11240.yml new file mode 100644 index 0000000000..dc9e24e86f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11240.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - balance: "Blobs now can store 250 points." diff --git a/html/changelogs/AutoChangeLog-pr-11241.yml b/html/changelogs/AutoChangeLog-pr-11241.yml new file mode 100644 index 0000000000..41f50fdf26 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11241.yml @@ -0,0 +1,5 @@ +author: "MrPerson" +delete-after: True +changes: + - rscadd: "Solar panels will visually rotate a lot more smoothly instead of being locked to only 8 directions." + - rscadd: "Timed solar tracking is in degrees per minute. You're still not gonna use it though." diff --git a/html/changelogs/AutoChangeLog-pr-11244.yml b/html/changelogs/AutoChangeLog-pr-11244.yml new file mode 100644 index 0000000000..ee262dc682 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11244.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Fixed viruses not working on anthros and some others species." diff --git a/html/changelogs/AutoChangeLog-pr-11248.yml b/html/changelogs/AutoChangeLog-pr-11248.yml new file mode 100644 index 0000000000..f7b845926a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11248.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - bugfix: "Made lickable pref save" diff --git a/html/changelogs/AutoChangeLog-pr-11249.yml b/html/changelogs/AutoChangeLog-pr-11249.yml new file mode 100644 index 0000000000..2988e5ca92 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11249.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - spellcheck: "Alien bar stool is no longer bronze" diff --git a/html/changelogs/AutoChangeLog-pr-11254.yml b/html/changelogs/AutoChangeLog-pr-11254.yml new file mode 100644 index 0000000000..63856f65e8 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11254.yml @@ -0,0 +1,4 @@ +author: "Bhijn" +delete-after: True +changes: + - tweak: "Clicking an open closet with harm intent no longer attempts to place your currently held item inside, but rather attacks it." diff --git a/html/changelogs/AutoChangeLog-pr-11257.yml b/html/changelogs/AutoChangeLog-pr-11257.yml new file mode 100644 index 0000000000..1c96361503 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11257.yml @@ -0,0 +1,4 @@ +author: "Linzolle" +delete-after: True +changes: + - tweak: "pacifists can no longer meatspike living things" diff --git a/icons/effects/96x96.dmi b/icons/effects/96x96.dmi index c0b5ef5b40..b60ff97b2b 100644 Binary files a/icons/effects/96x96.dmi and b/icons/effects/96x96.dmi differ diff --git a/icons/mecha/mech_construction.dmi b/icons/mecha/mech_construction.dmi index 42cc8eeb57..d7f0f3e054 100644 Binary files a/icons/mecha/mech_construction.dmi and b/icons/mecha/mech_construction.dmi differ diff --git a/icons/mecha/mecha_ammo.dmi b/icons/mecha/mecha_ammo.dmi new file mode 100644 index 0000000000..63bc38cfa7 Binary files /dev/null and b/icons/mecha/mecha_ammo.dmi differ diff --git a/icons/mecha/mecha_equipment.dmi b/icons/mecha/mecha_equipment.dmi index 02c7984831..5e277af7cc 100644 Binary files a/icons/mecha/mecha_equipment.dmi and b/icons/mecha/mecha_equipment.dmi differ diff --git a/icons/mob/back.dmi b/icons/mob/back.dmi index 26f81b70df..1a2c0e189a 100644 Binary files a/icons/mob/back.dmi and b/icons/mob/back.dmi differ diff --git a/icons/mob/belt.dmi b/icons/mob/belt.dmi index 6843bac6bf..070034d778 100644 Binary files a/icons/mob/belt.dmi and b/icons/mob/belt.dmi differ diff --git a/icons/mob/hands.dmi b/icons/mob/hands.dmi index b69c6c88b1..63263b835c 100644 Binary files a/icons/mob/hands.dmi and b/icons/mob/hands.dmi differ diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index 499b1db21d..01e9f2ac2c 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/mob/head_muzzled.dmi b/icons/mob/head_muzzled.dmi index a318f394f8..5430f07726 100644 Binary files a/icons/mob/head_muzzled.dmi and b/icons/mob/head_muzzled.dmi differ diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi index 8ea155256c..c21fa47b9c 100644 Binary files a/icons/mob/hud.dmi and b/icons/mob/hud.dmi differ diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi index 6e95eae960..d0bd304808 100644 Binary files a/icons/mob/human_face.dmi and b/icons/mob/human_face.dmi differ diff --git a/icons/mob/inhands/equipment/custodial_lefthand.dmi b/icons/mob/inhands/equipment/custodial_lefthand.dmi index 90ffd2495e..eaed11867c 100644 Binary files a/icons/mob/inhands/equipment/custodial_lefthand.dmi and b/icons/mob/inhands/equipment/custodial_lefthand.dmi differ diff --git a/icons/mob/inhands/equipment/custodial_righthand.dmi b/icons/mob/inhands/equipment/custodial_righthand.dmi index 33e708f8c9..dc7ee742a3 100644 Binary files a/icons/mob/inhands/equipment/custodial_righthand.dmi and b/icons/mob/inhands/equipment/custodial_righthand.dmi differ diff --git a/icons/mob/inhands/equipment/toolbox_lefthand.dmi b/icons/mob/inhands/equipment/toolbox_lefthand.dmi index c0caf78855..06cdd60168 100644 Binary files a/icons/mob/inhands/equipment/toolbox_lefthand.dmi and b/icons/mob/inhands/equipment/toolbox_lefthand.dmi differ diff --git a/icons/mob/inhands/equipment/toolbox_righthand.dmi b/icons/mob/inhands/equipment/toolbox_righthand.dmi index 1d016e35a9..acb93257c9 100644 Binary files a/icons/mob/inhands/equipment/toolbox_righthand.dmi and b/icons/mob/inhands/equipment/toolbox_righthand.dmi differ diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi index 71c453856a..4ca4a351c6 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 0ca09ad810..8546a78a73 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/misc/chairs_lefthand.dmi b/icons/mob/inhands/misc/chairs_lefthand.dmi index 7377787a63..a74ac1f58b 100644 Binary files a/icons/mob/inhands/misc/chairs_lefthand.dmi and b/icons/mob/inhands/misc/chairs_lefthand.dmi differ diff --git a/icons/mob/inhands/misc/chairs_righthand.dmi b/icons/mob/inhands/misc/chairs_righthand.dmi index f04962de18..9a0d2a478b 100644 Binary files a/icons/mob/inhands/misc/chairs_righthand.dmi and b/icons/mob/inhands/misc/chairs_righthand.dmi differ diff --git a/icons/mob/inhands/weapons/melee_lefthand.dmi b/icons/mob/inhands/weapons/melee_lefthand.dmi index fc82db43ae..bb4289a860 100644 Binary files a/icons/mob/inhands/weapons/melee_lefthand.dmi and b/icons/mob/inhands/weapons/melee_lefthand.dmi differ diff --git a/icons/mob/inhands/weapons/melee_righthand.dmi b/icons/mob/inhands/weapons/melee_righthand.dmi index a93a4e38d5..4e9f5266b2 100644 Binary files a/icons/mob/inhands/weapons/melee_righthand.dmi and b/icons/mob/inhands/weapons/melee_righthand.dmi differ diff --git a/icons/mob/inhands/weapons/staves_lefthand.dmi b/icons/mob/inhands/weapons/staves_lefthand.dmi index 8b96b84236..ca1694b1f1 100644 Binary files a/icons/mob/inhands/weapons/staves_lefthand.dmi and b/icons/mob/inhands/weapons/staves_lefthand.dmi differ diff --git a/icons/mob/inhands/weapons/staves_righthand.dmi b/icons/mob/inhands/weapons/staves_righthand.dmi index 202bab9e21..4d366d950f 100644 Binary files a/icons/mob/inhands/weapons/staves_righthand.dmi and b/icons/mob/inhands/weapons/staves_righthand.dmi differ diff --git a/icons/mob/landmarks.dmi b/icons/mob/landmarks.dmi index 120745ed44..284809da70 100644 Binary files a/icons/mob/landmarks.dmi and b/icons/mob/landmarks.dmi differ diff --git a/icons/mob/mob.dmi b/icons/mob/mob.dmi index 4de67f41f8..de09fb1c63 100644 Binary files a/icons/mob/mob.dmi and b/icons/mob/mob.dmi differ diff --git a/icons/mob/sharks.dmi b/icons/mob/sharks.dmi new file mode 100644 index 0000000000..e1b9228ba9 Binary files /dev/null and b/icons/mob/sharks.dmi differ diff --git a/icons/mob/simple_human.dmi b/icons/mob/simple_human.dmi index bd6472ed42..a6080838f1 100644 Binary files a/icons/mob/simple_human.dmi and b/icons/mob/simple_human.dmi differ diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi index 6b1b9591b7..41f2693800 100644 Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ diff --git a/icons/mob/suit_digi.dmi b/icons/mob/suit_digi.dmi index bb00742a17..da51f9e621 100644 Binary files a/icons/mob/suit_digi.dmi and b/icons/mob/suit_digi.dmi differ diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi index 69d8966329..bcde4d84f7 100644 Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ diff --git a/icons/obj/abductor.dmi b/icons/obj/abductor.dmi index fd0893b300..75f84347b6 100644 Binary files a/icons/obj/abductor.dmi and b/icons/obj/abductor.dmi differ diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index 55cbcc66e0..a26b01883e 100644 Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ diff --git a/icons/obj/barsigns.dmi b/icons/obj/barsigns.dmi index 1fffa2e540..22f3071862 100644 Binary files a/icons/obj/barsigns.dmi and b/icons/obj/barsigns.dmi differ diff --git a/icons/obj/chairs.dmi b/icons/obj/chairs.dmi index 9e8fb64aba..1c09cf94dc 100644 Binary files a/icons/obj/chairs.dmi and b/icons/obj/chairs.dmi differ diff --git a/icons/obj/clothing/belts.dmi b/icons/obj/clothing/belts.dmi index e329720cf7..1ff87b26e4 100644 Binary files a/icons/obj/clothing/belts.dmi and b/icons/obj/clothing/belts.dmi differ diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi index 7e0d03abd5..515d6212c0 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 d355ade9fe..d5f3be5fdd 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index 81ef85bb08..470f2a9d69 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 ce458a1de3..0881a2c289 100644 Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ diff --git a/icons/obj/crates.dmi b/icons/obj/crates.dmi index ca81686e94..ecb66d0119 100644 Binary files a/icons/obj/crates.dmi and b/icons/obj/crates.dmi differ diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index 8c2abcd3b9..28fc29cd71 100644 Binary files a/icons/obj/device.dmi and b/icons/obj/device.dmi differ diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi index b03a1cdeae..17d6024586 100644 Binary files a/icons/obj/drinks.dmi and b/icons/obj/drinks.dmi differ diff --git a/icons/obj/economy.dmi b/icons/obj/economy.dmi index fef7637ba6..9cc6498454 100644 Binary files a/icons/obj/economy.dmi and b/icons/obj/economy.dmi differ diff --git a/icons/obj/food/containers.dmi b/icons/obj/food/containers.dmi index 93acc07453..2639d6860a 100644 Binary files a/icons/obj/food/containers.dmi and b/icons/obj/food/containers.dmi differ diff --git a/icons/obj/food/food.dmi b/icons/obj/food/food.dmi index a719150f11..670269da00 100644 Binary files a/icons/obj/food/food.dmi and b/icons/obj/food/food.dmi differ diff --git a/icons/obj/guns/energy.dmi b/icons/obj/guns/energy.dmi index c68728a91f..20fe8272da 100644 Binary files a/icons/obj/guns/energy.dmi and b/icons/obj/guns/energy.dmi differ diff --git a/icons/obj/guns/projectile.dmi b/icons/obj/guns/projectile.dmi index b85c769bcd..f859e8b1e7 100644 Binary files a/icons/obj/guns/projectile.dmi and b/icons/obj/guns/projectile.dmi differ diff --git a/icons/obj/hand_of_god_structures.dmi b/icons/obj/hand_of_god_structures.dmi index 4f18b2e68d..3f640d4d57 100644 Binary files a/icons/obj/hand_of_god_structures.dmi and b/icons/obj/hand_of_god_structures.dmi differ diff --git a/icons/obj/implants.dmi b/icons/obj/implants.dmi index 8dc2f08fdc..a6d4697673 100644 Binary files a/icons/obj/implants.dmi and b/icons/obj/implants.dmi differ diff --git a/icons/obj/improvised.dmi b/icons/obj/improvised.dmi index a6dfa330e8..b90e3cb3bb 100644 Binary files a/icons/obj/improvised.dmi and b/icons/obj/improvised.dmi differ diff --git a/icons/obj/items_and_weapons.dmi b/icons/obj/items_and_weapons.dmi index 561b1890e8..bdad12b0b6 100644 Binary files a/icons/obj/items_and_weapons.dmi and b/icons/obj/items_and_weapons.dmi differ diff --git a/icons/obj/janitor.dmi b/icons/obj/janitor.dmi index cb3870dc61..802e165550 100644 Binary files a/icons/obj/janitor.dmi and b/icons/obj/janitor.dmi differ diff --git a/icons/obj/library.dmi b/icons/obj/library.dmi index 45181b7c8d..be12ab5f8b 100644 Binary files a/icons/obj/library.dmi and b/icons/obj/library.dmi differ diff --git a/icons/obj/lighting.dmi b/icons/obj/lighting.dmi index 396d681f22..675005da91 100644 Binary files a/icons/obj/lighting.dmi and b/icons/obj/lighting.dmi differ diff --git a/icons/obj/machines/pool.dmi b/icons/obj/machines/pool.dmi new file mode 100644 index 0000000000..2bfb4f8c40 Binary files /dev/null and b/icons/obj/machines/pool.dmi differ diff --git a/icons/obj/mining.dmi b/icons/obj/mining.dmi index a7593e4a55..f2e98aff32 100644 Binary files a/icons/obj/mining.dmi and b/icons/obj/mining.dmi differ diff --git a/icons/obj/plushes.dmi b/icons/obj/plushes.dmi index c6f25f1b29..3abb25d8b2 100644 Binary files a/icons/obj/plushes.dmi and b/icons/obj/plushes.dmi differ diff --git a/icons/obj/power.dmi b/icons/obj/power.dmi index 1ba953d284..1f84da44d4 100644 Binary files a/icons/obj/power.dmi and b/icons/obj/power.dmi differ diff --git a/icons/obj/projectiles.dmi b/icons/obj/projectiles.dmi index 668f3388ce..92e76f78bb 100644 Binary files a/icons/obj/projectiles.dmi and b/icons/obj/projectiles.dmi differ diff --git a/icons/obj/ring.dmi b/icons/obj/ring.dmi index 52fe249394..e24f1fab4c 100644 Binary files a/icons/obj/ring.dmi and b/icons/obj/ring.dmi differ diff --git a/icons/obj/smooth_structures/table_greyscale.dmi b/icons/obj/smooth_structures/table_greyscale.dmi new file mode 100644 index 0000000000..a04a51efc7 Binary files /dev/null and b/icons/obj/smooth_structures/table_greyscale.dmi differ diff --git a/icons/obj/stack_objects.dmi b/icons/obj/stack_objects.dmi index a80dc92b9a..5b0c05d43d 100644 Binary files a/icons/obj/stack_objects.dmi and b/icons/obj/stack_objects.dmi differ diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index 4aa54a2308..998ccc948d 100644 Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ diff --git a/icons/obj/surgery.dmi b/icons/obj/surgery.dmi index fcc28de7b9..e998ce442d 100755 Binary files a/icons/obj/surgery.dmi and b/icons/obj/surgery.dmi differ diff --git a/icons/obj/toy.dmi b/icons/obj/toy.dmi index d5cae1db93..698c1f7a34 100644 Binary files a/icons/obj/toy.dmi and b/icons/obj/toy.dmi differ diff --git a/icons/obj/vending.dmi b/icons/obj/vending.dmi index 7d08a83fb7..b11e43d665 100644 Binary files a/icons/obj/vending.dmi and b/icons/obj/vending.dmi differ diff --git a/icons/obj/vending_restock.dmi b/icons/obj/vending_restock.dmi index c9437d7d80..035c01de6b 100644 Binary files a/icons/obj/vending_restock.dmi and b/icons/obj/vending_restock.dmi differ diff --git a/icons/turf/areas.dmi b/icons/turf/areas.dmi index aad3e78590..a35837eedd 100644 Binary files a/icons/turf/areas.dmi and b/icons/turf/areas.dmi differ diff --git a/icons/turf/pool.dmi b/icons/turf/pool.dmi new file mode 100644 index 0000000000..211776ed93 Binary files /dev/null and b/icons/turf/pool.dmi differ diff --git a/interface/interface.dm b/interface/interface.dm index ecd13e1f03..2b33ebb5e8 100644 --- a/interface/interface.dm +++ b/interface/interface.dm @@ -8,7 +8,7 @@ if(wikiurl) if(query) var/output = wikiurl + "?search=" + query - src << link(output) + src << link(output) output = wikiurltg + "/index.php?title=Special%3ASearch&profile=default&search=" + query src << link(output) else if (query != null) @@ -125,6 +125,7 @@ Hotkey-Mode: (hotkey-mode must be on) \tt = say \to = OOC \tb = resist +\tv = rest \th = stop pulling \tx = swap-hand \tz = activate held object (or y) @@ -184,6 +185,7 @@ Hotkey-Mode: (hotkey-mode must be on) \td = right \tw = up \tq = unequip active module +\tv = rest \th = stop pulling \tm = me \tt = say diff --git a/modular_citadel/code/_onclick/item_attack.dm b/modular_citadel/code/_onclick/item_attack.dm index 80281ee084..d87b2be661 100644 --- a/modular_citadel/code/_onclick/item_attack.dm +++ b/modular_citadel/code/_onclick/item_attack.dm @@ -1,12 +1,12 @@ /obj/item/proc/rightclick_melee_attack_chain(mob/user, atom/target, params) - if(!pre_altattackby(target, user, params)) //Hey, does this item have special behavior that should override all normal right-click functionality? + if(!alt_pre_attack(target, user, params)) //Hey, does this item have special behavior that should override all normal right-click functionality? if(!target.altattackby(src, user, params)) //Does the target do anything special when we right-click on it? melee_attack_chain(user, target, params) //Ugh. Lame! I'm filing a legal complaint about the discrimination against the right mouse button! else altafterattack(target, user, TRUE, params) return -/obj/item/proc/pre_altattackby(atom/A, mob/living/user, params) +/obj/item/proc/alt_pre_attack(atom/A, mob/living/user, params) return FALSE //return something other than false if you wanna override attacking completely /atom/proc/altattackby(obj/item/W, mob/user, params) diff --git a/modular_citadel/code/modules/admin/chat_commands.dm b/modular_citadel/code/modules/admin/chat_commands.dm index 501e0fa25a..ddac7b5953 100644 --- a/modular_citadel/code/modules/admin/chat_commands.dm +++ b/modular_citadel/code/modules/admin/chat_commands.dm @@ -14,6 +14,13 @@ saltresult += "[saltprimarysubject] [saltsecondarysubject]" return "[saltresult]!" +/datum/tgs_chat_command/valentine + name = "valentine" + help_text = "Get a random flirt line." + +/datum/tgs_chat_command/valentine/Run(datum/tgs_chat_user/sender, params) + return "[pick(GLOB.flirts)]" + /datum/tgs_chat_command/despacito name = "despacito" //someone please high effort this sometime and make it a full on ytdl search help_text = "This is so sad." diff --git a/modular_citadel/code/modules/arousal/arousal.dm b/modular_citadel/code/modules/arousal/arousal.dm index 3a586d061d..5c7d5a39e9 100644 --- a/modular_citadel/code/modules/arousal/arousal.dm +++ b/modular_citadel/code/modules/arousal/arousal.dm @@ -10,12 +10,6 @@ var/hidden_undershirt = FALSE var/hidden_socks = FALSE -//Species vars -/datum/species - var/list/cum_fluids = list("semen") - var/list/milk_fluids = list("milk") - var/list/femcum_fluids = list("femcum") - //Mob procs /mob/living/carbon/human/proc/underwear_toggle() set name = "Toggle undergarments" @@ -46,20 +40,12 @@ var/list/obj/item/organ/genital/genit_list = list() if(!client?.prefs.arousable || (aphro && (client?.prefs.cit_toggles & NO_APHRO)) || (maso && !HAS_TRAIT(src, TRAIT_MASO))) return // no adjusting made here - if(strength>0) - for(var/obj/item/organ/genital/G in internal_organs) - if(!G.aroused_state && prob(strength*G.sensitivity)) - G.set_aroused_state(TRUE) - G.update_appearance() - if(G.aroused_state) - genit_list += G - else - for(var/obj/item/organ/genital/G in internal_organs) - if(G.aroused_state && prob(strength*G.sensitivity)) - G.set_aroused_state(FALSE) - G.update_appearance() - if(G.aroused_state) - genit_list += G + for(var/obj/item/organ/genital/G in internal_organs) + if(G.genital_flags & GENITAL_CAN_AROUSE && !G.aroused_state && prob(strength*G.sensitivity)) + G.set_aroused_state(strength > 0) + G.update_appearance() + if(G.aroused_state) + genit_list += G return genit_list /obj/item/organ/genital/proc/climaxable(mob/living/carbon/human/H, silent = FALSE) //returns the fluid source (ergo reagents holder) if found. diff --git a/modular_citadel/code/modules/arousal/genitals.dm b/modular_citadel/code/modules/arousal/genitals.dm index ca01ef46cb..d5191b0532 100644 --- a/modular_citadel/code/modules/arousal/genitals.dm +++ b/modular_citadel/code/modules/arousal/genitals.dm @@ -20,35 +20,29 @@ var/linked_organ_slot //used for linking an apparatus' organ to its other half on update_link(). var/layer_index = GENITAL_LAYER_INDEX //Order should be very important. FIRST vagina, THEN testicles, THEN penis, as this affects the order they are rendered in. -/obj/item/organ/genital/Initialize(mapload, mob/living/carbon/human/H) +/obj/item/organ/genital/Initialize(mapload, do_update = TRUE) . = ..() if(fluid_id) - create_reagents(fluid_max_volume) + create_reagents(fluid_max_volume, NONE, NO_REAGENTS_VALUE) if(CHECK_BITFIELD(genital_flags, GENITAL_FUID_PRODUCTION)) reagents.add_reagent(fluid_id, fluid_max_volume) - if(H) - get_features(H) - Insert(H) - else + if(do_update) update() -/obj/item/organ/genital/Destroy() - if(linked_organ) - update_link(TRUE)//this should remove any other links it has - return ..() - /obj/item/organ/genital/proc/set_aroused_state(new_state) + if(!(genital_flags & GENITAL_CAN_AROUSE)) + return FALSE if(!((HAS_TRAIT(owner,TRAIT_PERMABONER) && !new_state) || HAS_TRAIT(owner,TRAIT_NEVERBONER) && new_state)) aroused_state = new_state return aroused_state -/obj/item/organ/genital/proc/update(removing = FALSE) +/obj/item/organ/genital/proc/update() if(QDELETED(src)) return update_size() update_appearance() - if(linked_organ_slot || (linked_organ && removing)) - update_link(removing) + if(linked_organ_slot || (linked_organ && !owner)) + update_link() //exposure and through-clothing code /mob/living/carbon @@ -113,17 +107,7 @@ set desc = "Allows you to toggle which genitals are showing signs of arousal." var/list/genital_list = list() for(var/obj/item/organ/genital/G in internal_organs) - var/datum/sprite_accessory/S - switch(G.type) - if(/obj/item/organ/genital/penis) - S = GLOB.cock_shapes_list[G.shape] - if(/obj/item/organ/genital/testicles) - S = GLOB.balls_shapes_list[G.shape] - if(/obj/item/organ/genital/vagina) - S = GLOB.vagina_shapes_list[G.shape] - if(/obj/item/organ/genital/breasts) - S = GLOB.breasts_shapes_list[G.shape] - if(S?.alt_aroused) + if(G.genital_flags & GENITAL_CAN_AROUSE) genital_list += G if(!genital_list.len) //There's nothing that can show arousal return @@ -174,19 +158,18 @@ return TRUE return FALSE -/obj/item/organ/genital/proc/update_link(removing = FALSE) - if(!removing && owner) +/obj/item/organ/genital/proc/update_link() + if(owner) if(linked_organ) - return + return FALSE linked_organ = owner.getorganslot(linked_organ_slot) if(linked_organ) linked_organ.linked_organ = src linked_organ.upon_link() upon_link() return TRUE - else - if(linked_organ) - linked_organ.linked_organ = null + if(linked_organ) + linked_organ.linked_organ = null linked_organ = null return FALSE @@ -200,10 +183,13 @@ update() RegisterSignal(owner, COMSIG_MOB_DEATH, .proc/update_appearance) -/obj/item/organ/genital/Remove(mob/living/carbon/M, special = FALSE, drop_if_replaced = TRUE) - update(TRUE) - if(!QDELETED(owner)) - UnregisterSignal(owner, COMSIG_MOB_DEATH) +/obj/item/organ/genital/Remove(special = FALSE) + . = ..() + var/mob/living/carbon/human/H = . + update() + if(!QDELETED(H)) + UnregisterSignal(H, COMSIG_MOB_DEATH) + H.update_genitals() //proc to give a player their genitals and stuff when they log in /mob/living/carbon/human/proc/give_genitals(clean = FALSE)//clean will remove all pre-existing genitals. proc will then give them any genitals that are enabled in their DNA @@ -232,18 +218,14 @@ /mob/living/carbon/human/proc/give_genital(obj/item/organ/genital/G) if(!dna || (NOGENITALS in dna.species.species_traits) || getorganslot(initial(G.slot))) return FALSE - G = new G(null, src) + G = new G(null, FALSE) + G.get_features(src) + G.Insert(src) return G /obj/item/organ/genital/proc/get_features(mob/living/carbon/human/H) return -/datum/species/proc/genitals_layertext(layer) - switch(layer) - if(GENITALS_BEHIND_LAYER) - return "BEHIND" - if(GENITALS_FRONT_LAYER) - return "FRONT" //procs to handle sprite overlays being applied to humans @@ -262,8 +244,91 @@ update_genitals() /mob/living/carbon/human/proc/update_genitals() - if(!QDELETED(src)) - dna.species.handle_genitals(src) + if(QDELETED(src)) + return + var/static/list/relevant_layers = list("[GENITALS_BEHIND_LAYER]" = "BEHIND", "[GENITALS_FRONT_LAYER]" = "FRONT") + var/static/list/layers_num + if(!layers_num) + for(var/L in relevant_layers) + LAZYSET(layers_num, L, text2num(L)) + for(var/L in relevant_layers) //Less hardcode + remove_overlay(layers_num[L]) + remove_overlay(GENITALS_EXPOSED_LAYER) + if(!LAZYLEN(internal_organs) || ((NOGENITALS in dna.species.species_traits) && !genital_override) || HAS_TRAIT(src, TRAIT_HUSK)) + return + + //start scanning for genitals + + var/list/gen_index[GENITAL_LAYER_INDEX_LENGTH] + var/list/genitals_to_add + var/list/fully_exposed + for(var/obj/item/organ/genital/G in internal_organs) + if(G.is_exposed()) //Checks appropriate clothing slot and if it's through_clothes + LAZYADD(gen_index[G.layer_index], G) + for(var/L in gen_index) + if(L) //skip nulls + LAZYADD(genitals_to_add, L) + if(!genitals_to_add) + return + //Now we added all genitals that aren't internal and should be rendered + //start applying overlays + for(var/layer in relevant_layers) + var/list/standing = list() + var/layertext = relevant_layers[layer] + for(var/A in genitals_to_add) + var/obj/item/organ/genital/G = A + var/datum/sprite_accessory/S + var/size = G.size + switch(G.type) + if(/obj/item/organ/genital/penis) + S = GLOB.cock_shapes_list[G.shape] + if(/obj/item/organ/genital/testicles) + S = GLOB.balls_shapes_list[G.shape] + if(/obj/item/organ/genital/vagina) + S = GLOB.vagina_shapes_list[G.shape] + if(/obj/item/organ/genital/breasts) + S = GLOB.breasts_shapes_list[G.shape] + + if(!S || S.icon_state == "none") + continue + var/aroused_state = G.aroused_state && S.alt_aroused + + 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) + + if(dna.species.use_skintones && dna.features["genitals_use_skintone"]) + genital_overlay.color = "#[skintone2hex(skin_tone)]" + else + switch(S.color_src) + if("cock_color") + genital_overlay.color = "#[dna.features["cock_color"]]" + if("balls_color") + genital_overlay.color = "#[dna.features["balls_color"]]" + if("breasts_color") + genital_overlay.color = "#[dna.features["breasts_color"]]" + if("vag_color") + genital_overlay.color = "#[dna.features["vag_color"]]" + + genital_overlay.icon_state = "[G.slot]_[S.icon_state]_[size][dna.species.use_skintones ? "_s" : ""]_[aroused_state]_[layertext]" + + if(layer == GENITALS_FRONT_LAYER && CHECK_BITFIELD(G.genital_flags, GENITAL_THROUGH_CLOTHES)) + genital_overlay.layer = -GENITALS_EXPOSED_LAYER + LAZYADD(fully_exposed, genital_overlay) // to be added to a layer with higher priority than clothes, hence the name of the bitflag. + else + genital_overlay.layer = -layers_num[layer] + standing += genital_overlay + + if(LAZYLEN(standing)) + overlays_standing[layers_num[layer]] = standing + + if(LAZYLEN(fully_exposed)) + overlays_standing[GENITALS_EXPOSED_LAYER] = fully_exposed + apply_overlay(GENITALS_EXPOSED_LAYER) + + for(var/L in relevant_layers) + apply_overlay(layers_num[L]) + //Checks to see if organs are new on the mob, and changes their colours so that they don't get crazy colours. /mob/living/carbon/human/proc/emergent_genital_call() @@ -292,86 +357,3 @@ else if (willyCheck == FALSE) dna.features["cock_color"] = dna.features["breasts_color"] return TRUE - -/datum/species/proc/handle_genitals(mob/living/carbon/human/H)//more like handle sadness - if(!H)//no args - CRASH("H = null") - if(!LAZYLEN(H.internal_organs) || ((NOGENITALS in species_traits) && !H.genital_override) || HAS_TRAIT(H, TRAIT_HUSK)) - return - var/list/relevant_layers = list(GENITALS_BEHIND_LAYER, GENITALS_FRONT_LAYER) - - for(var/L in relevant_layers) //Less hardcode - H.remove_overlay(L) - H.remove_overlay(GENITALS_EXPOSED_LAYER) - //start scanning for genitals - - var/list/gen_index[GENITAL_LAYER_INDEX_LENGTH] - var/list/genitals_to_add - var/list/fully_exposed - for(var/obj/item/organ/genital/G in H.internal_organs) - if(G.is_exposed()) //Checks appropriate clothing slot and if it's through_clothes - LAZYADD(gen_index[G.layer_index], G) - for(var/L in gen_index) - if(L) //skip nulls - LAZYADD(genitals_to_add, L) - if(!genitals_to_add) - return - //Now we added all genitals that aren't internal and should be rendered - //start applying overlays - for(var/layer in relevant_layers) - var/list/standing = list() - var/layertext = genitals_layertext(layer) - for(var/A in genitals_to_add) - var/obj/item/organ/genital/G = A - var/datum/sprite_accessory/S - var/size = G.size - var/aroused_state = G.aroused_state - switch(G.type) - if(/obj/item/organ/genital/penis) - S = GLOB.cock_shapes_list[G.shape] - if(/obj/item/organ/genital/testicles) - S = GLOB.balls_shapes_list[G.shape] - if(/obj/item/organ/genital/vagina) - S = GLOB.vagina_shapes_list[G.shape] - if(/obj/item/organ/genital/breasts) - S = GLOB.breasts_shapes_list[G.shape] - - if(!S || S.icon_state == "none") - continue - - var/mutable_appearance/genital_overlay = mutable_appearance(S.icon, layer = -layer) - genital_overlay.icon_state = "[G.slot]_[S.icon_state]_[size]_[aroused_state]_[layertext]" - - if(S.center) - genital_overlay = center_image(genital_overlay, S.dimension_x, S.dimension_y) - - if(use_skintones && H.dna.features["genitals_use_skintone"]) - genital_overlay.color = "#[skintone2hex(H.skin_tone)]" - else - switch(S.color_src) - if("cock_color") - genital_overlay.color = "#[H.dna.features["cock_color"]]" - if("balls_color") - genital_overlay.color = "#[H.dna.features["balls_color"]]" - if("breasts_color") - genital_overlay.color = "#[H.dna.features["breasts_color"]]" - if("vag_color") - genital_overlay.color = "#[H.dna.features["vag_color"]]" - - genital_overlay.icon_state = "[G.slot]_[S.icon_state]_[size]-s_[aroused_state]_[layertext]" - - if(layer == GENITALS_FRONT_LAYER && CHECK_BITFIELD(G.genital_flags, GENITAL_THROUGH_CLOTHES)) - genital_overlay.layer = -GENITALS_EXPOSED_LAYER - LAZYADD(fully_exposed, genital_overlay) // to be added to a layer with higher priority than clothes, hence the name of the bitflag. - else - standing += genital_overlay - - if(LAZYLEN(standing)) - H.overlays_standing[layer] = standing - - if(LAZYLEN(fully_exposed)) - H.overlays_standing[GENITALS_EXPOSED_LAYER] = fully_exposed - H.apply_overlay(GENITALS_EXPOSED_LAYER) - - for(var/L in relevant_layers) - H.apply_overlay(L) diff --git a/modular_citadel/code/modules/arousal/genitals_sprite_accessories.dm b/modular_citadel/code/modules/arousal/genitals_sprite_accessories.dm index 0c1763b8e2..594fc83e46 100644 --- a/modular_citadel/code/modules/arousal/genitals_sprite_accessories.dm +++ b/modular_citadel/code/modules/arousal/genitals_sprite_accessories.dm @@ -85,36 +85,36 @@ //Vaginas /datum/sprite_accessory/vagina icon = 'modular_citadel/icons/obj/genitals/vagina_onmob.dmi' - icon_state = null name = "vagina" color_src = "vag_color" + alt_aroused = TRUE /datum/sprite_accessory/vagina/human icon_state = "human" name = "Human" - alt_aroused = TRUE /datum/sprite_accessory/vagina/tentacles icon_state = "tentacle" name = "Tentacle" - alt_aroused = TRUE /datum/sprite_accessory/vagina/dentata icon_state = "dentata" name = "Dentata" - alt_aroused = TRUE /datum/sprite_accessory/vagina/hairy icon_state = "hairy" name = "Hairy" + alt_aroused = FALSE /datum/sprite_accessory/vagina/spade icon_state = "spade" name = "Spade" + alt_aroused = FALSE /datum/sprite_accessory/vagina/furred icon_state = "furred" name = "Furred" + alt_aroused = FALSE /datum/sprite_accessory/vagina/gaping icon_state = "gaping" @@ -125,7 +125,6 @@ icon = 'modular_citadel/icons/obj/genitals/breasts_onmob.dmi' name = "breasts" color_src = "breasts_color" - alt_aroused = TRUE /datum/sprite_accessory/breasts/pair icon_state = "pair" diff --git a/modular_citadel/code/modules/arousal/organs/breasts.dm b/modular_citadel/code/modules/arousal/organs/breasts.dm index 1537d5cebe..f3ce834838 100644 --- a/modular_citadel/code/modules/arousal/organs/breasts.dm +++ b/modular_citadel/code/modules/arousal/organs/breasts.dm @@ -1,3 +1,6 @@ +#define BREASTS_ICON_MIN_SIZE 1 +#define BREASTS_ICON_MAX_SIZE 6 + /obj/item/organ/genital/breasts name = "breasts" desc = "Female milk producing organs." @@ -9,7 +12,7 @@ fluid_id = /datum/reagent/consumable/milk fluid_rate = MILK_RATE shape = "pair" - genital_flags = CAN_MASTURBATE_WITH|CAN_CLIMAX_WITH|GENITAL_FUID_PRODUCTION + genital_flags = CAN_MASTURBATE_WITH|CAN_CLIMAX_WITH|GENITAL_FUID_PRODUCTION|GENITAL_CAN_AROUSE masturbation_verb = "massage" arousal_verb = "Your breasts start feeling sensitive" unarousal_verb = "Your breasts no longer feel sensitive" @@ -19,8 +22,8 @@ var/cached_size //these two vars pertain size modifications and so should be expressed in NUMBERS. var/prev_size //former cached_size value, to allow update_size() to early return should be there no significant changes. -/obj/item/organ/genital/breasts/Initialize(mapload, mob/living/carbon/human/H) - if(!H) +/obj/item/organ/genital/breasts/Initialize(mapload, do_update = TRUE) + if(do_update) cached_size = breast_values[size] prev_size = cached_size return ..() @@ -49,21 +52,21 @@ var/datum/reagent/R = GLOB.chemical_reagents_list[fluid_id] if(R) desc += " They're leaking [lowertext(R.name)]." - var/string + var/datum/sprite_accessory/S = GLOB.breasts_shapes_list[shape] + var/icon_shape = S ? S.icon_state : "pair" + var/icon_size = CLAMP(breast_values[size], BREASTS_ICON_MIN_SIZE, BREASTS_ICON_MAX_SIZE) + icon_state = "breasts_[icon_shape]_[breast_values[icon_size]]" if(owner) if(owner.dna.species.use_skintones && owner.dna.features["genitals_use_skintone"]) if(ishuman(owner)) // Check before recasting type, although someone fucked up if you're not human AND have use_skintones somehow... var/mob/living/carbon/human/H = owner // only human mobs have skin_tone, which we need. color = "#[skintone2hex(H.skin_tone)]" - string = "breasts_[GLOB.breasts_shapes_icons[shape]]_[size]-s" + icon_state += "_s" else color = "#[owner.dna.features["breasts_color"]]" - string = "breasts_[GLOB.breasts_shapes_icons[shape]]_[size]" if(ishuman(owner)) var/mob/living/carbon/human/H = owner - icon_state = sanitize_text(string) H.update_genitals() - icon_state = sanitize_text(string) //Allows breasts to grow and change size, with sprite changes too. //maximum wah @@ -130,3 +133,6 @@ cached_size = size size = breast_values[size] prev_size = cached_size + +#undef BREASTS_ICON_MIN_SIZE +#undef BREASTS_ICON_MAX_SIZE \ No newline at end of file diff --git a/modular_citadel/code/modules/arousal/organs/penis.dm b/modular_citadel/code/modules/arousal/organs/penis.dm index c4e8dfa2d6..c9eb0769cf 100644 --- a/modular_citadel/code/modules/arousal/organs/penis.dm +++ b/modular_citadel/code/modules/arousal/organs/penis.dm @@ -8,12 +8,13 @@ masturbation_verb = "stroke" arousal_verb = "You pop a boner" unarousal_verb = "Your boner goes down" - genital_flags = CAN_MASTURBATE_WITH|CAN_CLIMAX_WITH + genital_flags = CAN_MASTURBATE_WITH|CAN_CLIMAX_WITH|GENITAL_CAN_AROUSE linked_organ_slot = ORGAN_SLOT_TESTICLES fluid_transfer_factor = 0.5 size = 2 //arbitrary value derived from length and diameter for sprites. layer_index = PENIS_LAYER_INDEX var/length = 6 //inches + var/prev_length = 6 //really should be renamed to prev_length var/diameter = 4.38 var/diameter_ratio = COCK_DIAMETER_RATIO_DEF //0.25; check citadel_defines.dm @@ -73,7 +74,9 @@ /obj/item/organ/genital/penis/update_appearance() . = ..() - var/string + var/datum/sprite_accessory/S = GLOB.cock_shapes_list[shape] + 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." @@ -82,13 +85,11 @@ if(ishuman(owner)) // Check before recasting type, although someone fucked up if you're not human AND have use_skintones somehow... var/mob/living/carbon/human/H = owner // only human mobs have skin_tone, which we need. color = "#[skintone2hex(H.skin_tone)]" - string = "penis_[GLOB.cock_shapes_icons[shape]]_[size]-s" + icon_state += "_s" else color = "#[owner.dna.features["cock_color"]]" - string = "penis_[GLOB.cock_shapes_icons[shape]]_[size]" if(ishuman(owner)) var/mob/living/carbon/human/H = owner - icon_state = sanitize_text(string) H.update_genitals() /obj/item/organ/genital/penis/get_features(mob/living/carbon/human/H) diff --git a/modular_citadel/code/modules/arousal/organs/testicles.dm b/modular_citadel/code/modules/arousal/organs/testicles.dm index 9573020417..eb6c1536cb 100644 --- a/modular_citadel/code/modules/arousal/organs/testicles.dm +++ b/modular_citadel/code/modules/arousal/organs/testicles.dm @@ -43,19 +43,19 @@ /obj/item/organ/genital/testicles/update_appearance() . = ..() desc = "You see an [size_name] pair of testicles." + var/datum/sprite_accessory/S = GLOB.balls_shapes_list[shape] + var/icon_shape = S ? S.icon_state : "single" + icon_state = "testicles_[icon_shape]_[size]" if(owner) - var/string if(owner.dna.species.use_skintones && owner.dna.features["genitals_use_skintone"]) if(ishuman(owner)) // Check before recasting type, although someone fucked up if you're not human AND have use_skintones somehow... var/mob/living/carbon/human/H = owner // only human mobs have skin_tone, which we need. color = "#[skintone2hex(H.skin_tone)]" - string = "testicles_[GLOB.balls_shapes_icons[shape]]_[size]-s" + icon_state += "_s" else color = "#[owner.dna.features["balls_color"]]" - string = "testicles_[GLOB.balls_shapes_icons[shape]]_[size]" if(ishuman(owner)) var/mob/living/carbon/human/H = owner - icon_state = sanitize_text(string) H.update_genitals() /obj/item/organ/genital/testicles/get_features(mob/living/carbon/human/H) diff --git a/modular_citadel/code/modules/arousal/organs/vagina.dm b/modular_citadel/code/modules/arousal/organs/vagina.dm index 3f1bcc5f9b..311afe75b0 100644 --- a/modular_citadel/code/modules/arousal/organs/vagina.dm +++ b/modular_citadel/code/modules/arousal/organs/vagina.dm @@ -6,7 +6,7 @@ zone = BODY_ZONE_PRECISE_GROIN slot = "vagina" size = 1 //There is only 1 size right now - genital_flags = CAN_MASTURBATE_WITH|CAN_CLIMAX_WITH + genital_flags = CAN_MASTURBATE_WITH|CAN_CLIMAX_WITH|GENITAL_CAN_AROUSE masturbation_verb = "finger" arousal_verb = "You feel wetness on your crotch" unarousal_verb = "You no longer feel wet" @@ -22,7 +22,7 @@ /obj/item/organ/genital/vagina/update_appearance() . = ..() - var/string //Keeping this code here, so making multiple sprites for the different kinds is easier. + icon_state = "vagina" var/lowershape = lowertext(shape) var/details @@ -55,13 +55,11 @@ if(ishuman(owner)) // Check before recasting type, although someone fucked up if you're not human AND have use_skintones somehow... var/mob/living/carbon/human/H = owner // only human mobs have skin_tone, which we need. color = "#[skintone2hex(H.skin_tone)]" - string = "vagina-s" + icon_state += "_s" else color = "#[owner.dna.features["vag_color"]]" - string = "vagina" if(ishuman(owner)) var/mob/living/carbon/human/H = owner - icon_state = sanitize_text(string) H.update_genitals() /obj/item/organ/genital/vagina/get_features(mob/living/carbon/human/H) diff --git a/modular_citadel/code/modules/client/loadout/_security.dm b/modular_citadel/code/modules/client/loadout/_security.dm index 7a49b1f049..c9591540e6 100644 --- a/modular_citadel/code/modules/client/loadout/_security.dm +++ b/modular_citadel/code/modules/client/loadout/_security.dm @@ -5,7 +5,7 @@ restricted_roles = list("Head of Security") /datum/gear/navybluehosberet - name = "Head of security's Naviblue beret" + name = "Head of security's navyblue beret" category = SLOT_HEAD path = /obj/item/clothing/head/beret/sec/navyhos restricted_roles = list("Head of Security") @@ -13,13 +13,13 @@ /datum/gear/navybluejackethos name = "head of security's navyblue jacket" category = SLOT_WEAR_SUIT - path = /obj/item/clothing/suit/security/hos + path = /obj/item/clothing/suit/armor/hos/navyblue restricted_roles = list("Head of Security") /datum/gear/navybluejacketofficer name = "security officer's navyblue jacket" category = SLOT_WEAR_SUIT - path = /obj/item/clothing/suit/security/officer + path = /obj/item/clothing/suit/armor/navyblue restricted_roles = list("Security Officer") /datum/gear/navyblueofficerberet @@ -37,7 +37,7 @@ /datum/gear/navybluejacketwarden name = "warden navyblue jacket" category = SLOT_WEAR_SUIT - path = /obj/item/clothing/suit/security/warden + path = /obj/item/clothing/suit/armor/vest/warden/navyblue restricted_roles = list("Warden") /datum/gear/navybluewardenberet diff --git a/modular_citadel/code/modules/custom_loadout/custom_items.dm b/modular_citadel/code/modules/custom_loadout/custom_items.dm index 03a4a56147..e1d204c74d 100644 --- a/modular_citadel/code/modules/custom_loadout/custom_items.dm +++ b/modular_citadel/code/modules/custom_loadout/custom_items.dm @@ -557,3 +557,13 @@ icon = 'icons/obj/custom.dmi' alternate_worn_icon = 'icons/mob/custom_w.dmi' mutantrace_variation = NONE + +/obj/item/toy/plush/mammal/dog/fritz + icon = 'icons/obj/custom.dmi' + icon_state = "fritz" + item_state = "fritz" + attack_verb = list("barked", "boofed", "shotgun'd") + obj_flags = UNIQUE_RENAME + unique_reskin = list("Goodboye" = "fritz", "Badboye" = "fritz_bad") + mutantrace_variation = NONE + diff --git a/modular_citadel/code/modules/custom_loadout/read_from_file.dm b/modular_citadel/code/modules/custom_loadout/read_from_file.dm index 78124b0324..004757add4 100644 --- a/modular_citadel/code/modules/custom_loadout/read_from_file.dm +++ b/modular_citadel/code/modules/custom_loadout/read_from_file.dm @@ -18,13 +18,13 @@ GLOBAL_LIST(custom_item_list) if(copytext(line,1,3) == "//") //Commented line, ignore. 3 == length("//") + 1 continue var/ckey_str_sep = findtext(line, "|") //Process our stuff.. - var/char_str_sep = findtext(line, "|", ckey_str_sep + length(ckey_str_sep)) - var/job_str_sep = findtext(line, "|", char_str_sep + length(char_str_sep)) - var/item_str_sep = findtext(line, "|", job_str_sep + length(job_str_sep)) + var/char_str_sep = findtext(line, "|", ckey_str_sep + length(line[ckey_str_sep])) + var/job_str_sep = findtext(line, "|", char_str_sep + length(line[char_str_sep])) + var/item_str_sep = findtext(line, "|", job_str_sep + length(line[job_str_sep])) var/ckey_str = ckey(copytext(line, 1, ckey_str_sep)) - var/char_str = copytext(line, ckey_str_sep + length(ckey_str_sep), char_str_sep) - var/job_str = copytext(line, char_str_sep + length(char_str_sep), job_str_sep) - var/item_str = copytext(line, job_str_sep + length(job_str_sep), item_str_sep) + var/char_str = copytext(line, ckey_str_sep + length(line[ckey_str_sep]), char_str_sep) + var/job_str = copytext(line, char_str_sep + length(line[char_str_sep]), job_str_sep) + var/item_str = copytext(line, job_str_sep + length(line[job_str_sep]), item_str_sep) if(!ckey_str || !char_str || !job_str || !item_str || !length(ckey_str) || !length(char_str) || !length(job_str) || !length(item_str)) log_admin("Errored custom_items_whitelist line: [line] - Component/separator missing!") if(!islist(GLOB.custom_item_list[ckey_str])) @@ -42,7 +42,7 @@ GLOBAL_LIST(custom_item_list) for(var/item_string in item_strings) var/path_str_sep = findtext(item_string, "=") var/path = copytext(item_string, 1, path_str_sep) //Path to spawn - var/amount = copytext(item_string, path_str_sep + length(path_str_sep)) //Amount to spawn + var/amount = copytext(item_string, path_str_sep + length(item_string[path_str_sep])) //Amount to spawn //world << "DEBUG: Item string [item_string] processed" amount = text2num(amount) path = text2path(path) diff --git a/modular_citadel/code/modules/mob/cit_emotes.dm b/modular_citadel/code/modules/mob/cit_emotes.dm index d0ad0d3232..2be83733e5 100644 --- a/modular_citadel/code/modules/mob/cit_emotes.dm +++ b/modular_citadel/code/modules/mob/cit_emotes.dm @@ -14,13 +14,10 @@ emote_type = EMOTE_AUDIBLE /datum/emote/living/insult/run_emote(mob/living/user, params) - var/insult_message = "" - var/miming = user.mind ? user.mind.miming : 0 - if(!user.is_muzzled()) - insult_message += pick_list_replacements(INSULTS_FILE, "insult_gen") - message = insult_message - else if(miming) + if(user.mind?.miming) message = "creatively gesticulates." + else if(!user.is_muzzled()) + message = pick_list_replacements(INSULTS_FILE, "insult_gen") else message = "muffles something." . = ..() @@ -36,7 +33,7 @@ sound = 'modular_citadel/sound/voice/scream_silicon.ogg' if(iscyborg(user)) var/mob/living/silicon/robot/S = user - if(S.cell.charge < 20) + if(S.cell?.charge < 20) to_chat(S, "Scream module deactivated. Please recharge.") return S.cell.use(200) diff --git a/modular_citadel/code/modules/projectiles/boxes_magazines/external/pistol.dm b/modular_citadel/code/modules/projectiles/boxes_magazines/external/pistol.dm index dd45c0278a..c39c66578b 100644 --- a/modular_citadel/code/modules/projectiles/boxes_magazines/external/pistol.dm +++ b/modular_citadel/code/modules/projectiles/boxes_magazines/external/pistol.dm @@ -3,7 +3,7 @@ desc = "A gun magazine. Loaded with rounds which ignite the target.." id = "10mminc" build_type = PROTOLATHE - materials = list(MAT_PLASMA = 50000, MAT_METAL = 18000) + materials = list(/datum/material/plasma = 50000, /datum/material/iron = 18000) reagents_list = list(/datum/reagent/toxin/plasma = 120, /datum/reagent/napalm = 240) build_path = /obj/item/ammo_box/magazine/m10mm/fire category = list("Weapons") @@ -14,7 +14,7 @@ desc = "A gun magazine." id = "10mm" build_type = PROTOLATHE - materials = list(MAT_METAL = 55000) + materials = list(/datum/material/iron = 55000) build_path = /obj/item/ammo_box/magazine/m10mm category = list("Ammo") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -24,7 +24,7 @@ desc = "A gun magazine. Loaded with hollow-point rounds, extremely effective against unarmored targets, but nearly useless against protective clothing." id = "10mmhp" build_type = PROTOLATHE - materials = list(MAT_METAL = 40000, MAT_GLASS = 50000) + materials = list(/datum/material/iron = 40000, /datum/material/glass = 50000) reagents_list = list(/datum/reagent/sonic_powder = 280) build_path = /obj/item/ammo_box/magazine/m10mm/hp category = list("Ammo") @@ -35,7 +35,7 @@ desc = "A gun magazine. Loaded with rounds which penetrate armour, but are less effective against normal targets." id = "10mmap" build_type = PROTOLATHE - materials = list(MAT_METAL = 40000, MAT_TITANIUM = 60000) + materials = list(/datum/material/iron = 40000, /datum/material/titanium = 60000) build_path = /obj/item/ammo_box/magazine/m10mm/ap category = list("Ammo") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -45,7 +45,7 @@ desc = "A stripper clip used to quickly load bolt action rifles. Contains 5 rounds." id = "bolt_clip" build_type = PROTOLATHE - materials = list(MAT_METAL = 8000) + materials = list(/datum/material/iron = 8000) build_path = /obj/item/ammo_box/a762 category = list("Ammo") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -54,7 +54,7 @@ name = "handgun magazine (.45)" id = "m45" build_type = PROTOLATHE - materials = list(MAT_METAL = 80000) + materials = list(/datum/material/iron = 80000) build_path = /obj/item/ammo_box/magazine/m45 category = list("Ammo") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -64,7 +64,7 @@ desc = "A gun magazine." id = "pistolm9mm" build_type = PROTOLATHE - materials = list(MAT_METAL = 80000) + materials = list(/datum/material/iron = 80000) build_path = /obj/item/ammo_box/magazine/pistolm9mm category = list("Ammo") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -74,7 +74,7 @@ desc = "A revolver speedloader." id = "sl357" build_type = PROTOLATHE - materials = list(MAT_METAL = 30000) + materials = list(/datum/material/iron = 30000) build_path = /obj/item/ammo_box/a357 category = list("Ammo") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -84,7 +84,7 @@ desc = "A revolver speedloader. Cuts through like a hot knife through butter." id = "sl357ap" build_type = PROTOLATHE - materials = list(MAT_METAL = 30000, MAT_TITANIUM = 45000) + materials = list(/datum/material/iron = 30000, /datum/material/titanium = 45000) build_path = /obj/item/ammo_box/a357/ap category = list("Ammo") departmental_flags = DEPARTMENTAL_FLAG_SECURITY diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.dm index 37198e87cf..8a1310d2f1 100644 --- a/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.dm +++ b/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.dm @@ -24,7 +24,7 @@ icon_state = "toy9magazine" max_ammo = 30 multiple_sprites = 2 - materials = list(MAT_METAL = 200) + custom_materials = list(/datum/material/iron = 200) /obj/item/gun/ballistic/automatic/x9/toy name = "\improper Foam Force X9" @@ -65,7 +65,7 @@ icon_state = "toy9magazine" max_ammo = 30 multiple_sprites = 2 - materials = list(MAT_METAL = 200) + custom_materials = list(/datum/material/iron = 200) /obj/item/gun/ballistic/automatic/x9/toy name = "\improper Foam Force X9" @@ -201,7 +201,7 @@ icon_state = "AM4MAG-60" max_ammo = 60 multiple_sprites = 0 - materials = list(MAT_METAL = 200) + custom_materials = list(/datum/material/iron = 200) /obj/item/gun/ballistic/automatic/AM4B name = "AM4-B" @@ -253,7 +253,7 @@ icon_state = "AM4MAG-32" max_ammo = 32 multiple_sprites = 0 - materials = list(MAT_METAL = 200) + custom_materials = list(/datum/material/iron = 200) /obj/item/gun/ballistic/automatic/AM4C name = "AM4-C" 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 2c527ac713..49a8a26f35 100644 --- a/modular_citadel/code/modules/projectiles/guns/energy/energy_gun.dm +++ b/modular_citadel/code/modules/projectiles/guns/energy/energy_gun.dm @@ -1,7 +1,3 @@ -/obj/item/gun/energy/e_gun - name = "blaster carbine" - desc = "A high powered particle blaster carbine with varitable setting for stunning or lethal applications." - /*///////////////////////////////////////////////////////////////////////////////////////////// The Recolourable Energy Gun *////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/modular_citadel/code/modules/projectiles/guns/energy/laser.dm b/modular_citadel/code/modules/projectiles/guns/energy/laser.dm deleted file mode 100644 index 76d7403d16..0000000000 --- a/modular_citadel/code/modules/projectiles/guns/energy/laser.dm +++ /dev/null @@ -1,11 +0,0 @@ -/obj/item/gun/energy/laser - name = "blaster rifle" - desc = "a high energy particle blaster, efficient and deadly." - -/obj/item/gun/energy/laser/practice - icon = 'modular_citadel/icons/obj/guns/energy.dmi' - icon_state = "laser-p" - lefthand_file = 'modular_citadel/icons/mob/inhands/OVERRIDE_guns_lefthand.dmi' - righthand_file = 'modular_citadel/icons/mob/inhands/OVERRIDE_guns_righthand.dmi' - ammo_x_offset = 1 - shaded_charge = 1 diff --git a/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm b/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm index 47de736c3b..f7c0b343c3 100644 --- a/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm +++ b/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm @@ -46,34 +46,22 @@ cell.use(shot.e_cost)//... drain the cell cell chambered = 0 //either way, released the prepared shot -/obj/item/gun/energy/pumpaction/select_fire(mob/living/user) //makes it so that it doesn't rack itself when changing firing modes unless already racked - select++ - if (select > ammo_type.len) - select = 1 - var/obj/item/ammo_casing/energy/shot = ammo_type[select] - fire_sound = shot.fire_sound - fire_delay = shot.delay - if (shot.select_name) - to_chat(user, "[src] is now set to [shot.select_name].") - if(chambered) - chambered = 0 - recharge_newshot(1) - update_icon() - if(ismob(loc)) //forces inhands to update - var/mob/M = loc - M.update_inv_hands() - return +/obj/item/gun/energy/pumpaction/post_set_firemode() + var/has_shot = chambered + . = ..(recharge_newshot = FALSE) + if(has_shot) + recharge_newshot(TRUE) /obj/item/gun/energy/pumpaction/update_icon() //adds racked indicators ..() - var/obj/item/ammo_casing/energy/shot = ammo_type[select] + var/obj/item/ammo_casing/energy/shot = ammo_type[current_firemode_index] if(chambered) add_overlay("[icon_state]_rack_[shot.select_name]") else add_overlay("[icon_state]_rack_empty") /obj/item/gun/energy/pumpaction/proc/pump(mob/M) //pumping proc. Checks if the gun is empty and plays a different sound if it is. - var/obj/item/ammo_casing/energy/shot = ammo_type[select] + var/obj/item/ammo_casing/energy/shot = ammo_type[current_firemode_index] if(cell.charge < shot.e_cost) playsound(M, 'sound/weapons/laserPumpEmpty.ogg', 100, 1) //Ends with three beeps made from highly processed knife honing noises else @@ -102,7 +90,7 @@ /obj/item/gun/energy/pumpaction/worn_overlays(isinhands, icon_file, 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[select] + var/obj/item/ammo_casing/energy/shot = ammo_type[current_firemode_index] if(isinhands) if(cell.charge < shot.e_cost) var/mutable_appearance/ammo_inhand = mutable_appearance(icon_file, "[item_state]_empty") diff --git a/modular_citadel/code/modules/projectiles/guns/toys.dm b/modular_citadel/code/modules/projectiles/guns/toys.dm index 731f990cfb..6715c64d4e 100644 --- a/modular_citadel/code/modules/projectiles/guns/toys.dm +++ b/modular_citadel/code/modules/projectiles/guns/toys.dm @@ -57,7 +57,7 @@ desc = "An authentic cap-firing reproduction of a F3 Justicar big-bore revolver! Pretend to blow your friend's brains out with this 100% safe toy! Satisfaction guaranteed!" icon_state = "justicar" icon = 'modular_citadel/icons/obj/guns/toys.dmi' - materials = list(MAT_METAL=2000, MAT_GLASS=250) + custom_materials = list(/datum/material/iron=2000, /datum/material/glass=250) /obj/item/toy/gun/m41 @@ -65,4 +65,4 @@ desc = "A toy replica of the Corporate Mercenaries' standard issue rifle. For Avtomat is inscribed on the side." icon_state = "toym41" icon = 'modular_citadel/icons/obj/guns/toys.dmi' - materials = list(MAT_METAL=2000, MAT_GLASS=250) + custom_materials = list(/datum/material/iron=2000, /datum/material/glass=250) diff --git a/modular_citadel/icons/mob/inhands/OVERRIDE_guns_lefthand.dmi b/modular_citadel/icons/mob/inhands/OVERRIDE_guns_lefthand.dmi deleted file mode 100644 index b438c7acee..0000000000 Binary files a/modular_citadel/icons/mob/inhands/OVERRIDE_guns_lefthand.dmi and /dev/null differ diff --git a/modular_citadel/icons/mob/inhands/OVERRIDE_guns_righthand.dmi b/modular_citadel/icons/mob/inhands/OVERRIDE_guns_righthand.dmi deleted file mode 100644 index dda226b046..0000000000 Binary files a/modular_citadel/icons/mob/inhands/OVERRIDE_guns_righthand.dmi and /dev/null differ diff --git a/modular_citadel/icons/mob/mam_tails.dmi b/modular_citadel/icons/mob/mam_tails.dmi index d59cf43a68..c2a89eab9a 100644 Binary files a/modular_citadel/icons/mob/mam_tails.dmi and b/modular_citadel/icons/mob/mam_tails.dmi differ diff --git a/modular_citadel/icons/mob/markings_notmammals.dmi b/modular_citadel/icons/mob/markings_notmammals.dmi index 79c97968ed..43452c8d14 100644 Binary files a/modular_citadel/icons/mob/markings_notmammals.dmi and b/modular_citadel/icons/mob/markings_notmammals.dmi differ diff --git a/modular_citadel/icons/mob/widerobot.dmi b/modular_citadel/icons/mob/widerobot.dmi index a77a109eb9..50c29bb75f 100644 Binary files a/modular_citadel/icons/mob/widerobot.dmi and b/modular_citadel/icons/mob/widerobot.dmi differ diff --git a/modular_citadel/icons/obj/genitals/breasts.dmi b/modular_citadel/icons/obj/genitals/breasts.dmi index d70207ee69..24656062d2 100644 Binary files a/modular_citadel/icons/obj/genitals/breasts.dmi and b/modular_citadel/icons/obj/genitals/breasts.dmi differ diff --git a/modular_citadel/icons/obj/genitals/breasts_onmob.dmi b/modular_citadel/icons/obj/genitals/breasts_onmob.dmi index 371041b6f4..578086c4c3 100644 Binary files a/modular_citadel/icons/obj/genitals/breasts_onmob.dmi and b/modular_citadel/icons/obj/genitals/breasts_onmob.dmi differ diff --git a/modular_citadel/icons/obj/genitals/penis.dmi b/modular_citadel/icons/obj/genitals/penis.dmi index 517758b248..c3fd184a7c 100644 Binary files a/modular_citadel/icons/obj/genitals/penis.dmi and b/modular_citadel/icons/obj/genitals/penis.dmi differ diff --git a/modular_citadel/icons/obj/genitals/penis_onmob.dmi b/modular_citadel/icons/obj/genitals/penis_onmob.dmi index 4f84c52360..c074eaf306 100644 Binary files a/modular_citadel/icons/obj/genitals/penis_onmob.dmi and b/modular_citadel/icons/obj/genitals/penis_onmob.dmi differ diff --git a/modular_citadel/icons/obj/genitals/taur_penis_onmob.dmi b/modular_citadel/icons/obj/genitals/taur_penis_onmob.dmi index ae2339e2e0..e8efbec216 100644 Binary files a/modular_citadel/icons/obj/genitals/taur_penis_onmob.dmi and b/modular_citadel/icons/obj/genitals/taur_penis_onmob.dmi differ diff --git a/modular_citadel/icons/obj/genitals/testicles.dmi b/modular_citadel/icons/obj/genitals/testicles.dmi index 3d7a5f4f48..386eab0956 100644 Binary files a/modular_citadel/icons/obj/genitals/testicles.dmi and b/modular_citadel/icons/obj/genitals/testicles.dmi differ diff --git a/modular_citadel/icons/obj/genitals/vagina.dmi b/modular_citadel/icons/obj/genitals/vagina.dmi index 39bdd48e89..1bbe62ba0e 100644 Binary files a/modular_citadel/icons/obj/genitals/vagina.dmi and b/modular_citadel/icons/obj/genitals/vagina.dmi differ diff --git a/modular_citadel/icons/obj/genitals/vagina_onmob.dmi b/modular_citadel/icons/obj/genitals/vagina_onmob.dmi index ab71b22e3b..6c34ffadfa 100644 Binary files a/modular_citadel/icons/obj/genitals/vagina_onmob.dmi and b/modular_citadel/icons/obj/genitals/vagina_onmob.dmi differ diff --git a/modular_citadel/icons/obj/guns/energy.dmi b/modular_citadel/icons/obj/guns/energy.dmi deleted file mode 100644 index 482ec04d94..0000000000 Binary files a/modular_citadel/icons/obj/guns/energy.dmi and /dev/null differ diff --git a/sound/bloodsucker/lunge_warn.ogg b/sound/bloodsucker/lunge_warn.ogg new file mode 100644 index 0000000000..0feec43228 Binary files /dev/null and b/sound/bloodsucker/lunge_warn.ogg differ diff --git a/sound/effects/fillingwatter.ogg b/sound/effects/fillingwatter.ogg new file mode 100644 index 0000000000..e1d2e19276 Binary files /dev/null and b/sound/effects/fillingwatter.ogg differ diff --git a/sound/effects/pooldrain.ogg b/sound/effects/pooldrain.ogg new file mode 100644 index 0000000000..8576dedc3d Binary files /dev/null and b/sound/effects/pooldrain.ogg differ diff --git a/sound/effects/splash.ogg b/sound/effects/splash.ogg new file mode 100644 index 0000000000..22f17c0790 Binary files /dev/null and b/sound/effects/splash.ogg differ diff --git a/sound/effects/water_wade1.ogg b/sound/effects/water_wade1.ogg new file mode 100644 index 0000000000..27527f9d8b Binary files /dev/null and b/sound/effects/water_wade1.ogg differ diff --git a/sound/effects/water_wade2.ogg b/sound/effects/water_wade2.ogg new file mode 100644 index 0000000000..f9c15cab64 Binary files /dev/null and b/sound/effects/water_wade2.ogg differ diff --git a/sound/effects/water_wade3.ogg b/sound/effects/water_wade3.ogg new file mode 100644 index 0000000000..3daccae01a Binary files /dev/null and b/sound/effects/water_wade3.ogg differ diff --git a/sound/effects/water_wade4.ogg b/sound/effects/water_wade4.ogg new file mode 100644 index 0000000000..7ba705f499 Binary files /dev/null and b/sound/effects/water_wade4.ogg differ diff --git a/sound/effects/watersplash.ogg b/sound/effects/watersplash.ogg new file mode 100644 index 0000000000..a9a6e48608 Binary files /dev/null and b/sound/effects/watersplash.ogg differ diff --git a/sound/misc/crack.ogg b/sound/misc/crack.ogg new file mode 100644 index 0000000000..1fb5738051 Binary files /dev/null and b/sound/misc/crack.ogg differ diff --git a/sound/misc/crunch.ogg b/sound/misc/crunch.ogg new file mode 100644 index 0000000000..c73e1fae60 Binary files /dev/null and b/sound/misc/crunch.ogg differ diff --git a/sound/weapons/bowdraw.wav b/sound/weapons/bowdraw.wav new file mode 100644 index 0000000000..bba8a87e06 Binary files /dev/null and b/sound/weapons/bowdraw.wav differ diff --git a/sound/weapons/bowfire.wav b/sound/weapons/bowfire.wav new file mode 100644 index 0000000000..c079d43475 Binary files /dev/null and b/sound/weapons/bowfire.wav differ diff --git a/sound/weapons/staff.ogg b/sound/weapons/staff.ogg new file mode 100644 index 0000000000..35b42dfd8d Binary files /dev/null and b/sound/weapons/staff.ogg differ diff --git a/strings/ion_laws.json b/strings/ion_laws.json index 1c28d5d5e5..55913dc3f4 100644 --- a/strings/ion_laws.json +++ b/strings/ion_laws.json @@ -331,7 +331,8 @@ "BOTANISTS", "RESEARCH DIRECTORS", "CHIEF MEDICAL OFFICERS", - "MEDICAL DOCTORS", + "MEDICAL DOCTORS", + "PARAMEDICS", "CHEMISTS", "GENETICISTS", "VIROLOGISTS", diff --git a/strings/spurdo_replacement.json b/strings/spurdo_replacement.json new file mode 100644 index 0000000000..71c7c8d356 --- /dev/null +++ b/strings/spurdo_replacement.json @@ -0,0 +1,14 @@ +{ + + "spurdo": { + "epic": "ebin", + "c": "g", + "ck": "gg", + "k": "g", + "t": "d", + "p": "b", + "x": "gs" + } + + +} \ No newline at end of file diff --git a/tgstation.dme b/tgstation.dme index 28ae7eee99..9ecf1ddd5e 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -1,3 +1,4 @@ + // DM Environment file for tgstation.dme. // All manual changes should be made outside the BEGIN_ and END_ blocks. // New source code should be placed in .dm files: choose File/New --> Code File. @@ -62,6 +63,7 @@ #include "code\__DEFINES\logging.dm" #include "code\__DEFINES\machines.dm" #include "code\__DEFINES\maps.dm" +#include "code\__DEFINES\materials.dm" #include "code\__DEFINES\maths.dm" #include "code\__DEFINES\MC.dm" #include "code\__DEFINES\medal.dm" @@ -77,6 +79,8 @@ #include "code\__DEFINES\obj_flags.dm" #include "code\__DEFINES\pinpointers.dm" #include "code\__DEFINES\pipe_construction.dm" +#include "code\__DEFINES\power.dm" +#include "code\__DEFINES\pool.dm" #include "code\__DEFINES\preferences.dm" #include "code\__DEFINES\procpath.dm" #include "code\__DEFINES\profile.dm" @@ -152,6 +156,7 @@ #include "code\__HELPERS\type2type_vr.dm" #include "code\__HELPERS\typelists.dm" #include "code\__HELPERS\unsorted.dm" +#include "code\__HELPERS\vector.dm" #include "code\__HELPERS\view.dm" #include "code\__HELPERS\sorts\__main.dm" #include "code\__HELPERS\sorts\InsertSort.dm" @@ -233,6 +238,7 @@ #include "code\controllers\configuration\entries\fail2topic.dm" #include "code\controllers\configuration\entries\game_options.dm" #include "code\controllers\configuration\entries\general.dm" +#include "code\controllers\configuration\entries\plushies.dm" #include "code\controllers\subsystem\acid.dm" #include "code\controllers\subsystem\adjacent_air.dm" #include "code\controllers\subsystem\air.dm" @@ -240,6 +246,7 @@ #include "code\controllers\subsystem\assets.dm" #include "code\controllers\subsystem\atoms.dm" #include "code\controllers\subsystem\augury.dm" +#include "code\controllers\subsystem\autotransfer.dm" #include "code\controllers\subsystem\blackbox.dm" #include "code\controllers\subsystem\chat.dm" #include "code\controllers\subsystem\communications.dm" @@ -260,6 +267,7 @@ #include "code\controllers\subsystem\lighting.dm" #include "code\controllers\subsystem\machines.dm" #include "code\controllers\subsystem\mapping.dm" +#include "code\controllers\subsystem\materials.dm" #include "code\controllers\subsystem\medals.dm" #include "code\controllers\subsystem\minor_mapping.dm" #include "code\controllers\subsystem\mobs.dm" @@ -272,6 +280,7 @@ #include "code\controllers\subsystem\pathfinder.dm" #include "code\controllers\subsystem\persistence.dm" #include "code\controllers\subsystem\ping.dm" +#include "code\controllers\subsystem\profiler.dm" #include "code\controllers\subsystem\radiation.dm" #include "code\controllers\subsystem\radio.dm" #include "code\controllers\subsystem\research.dm" @@ -290,7 +299,6 @@ #include "code\controllers\subsystem\vis_overlays.dm" #include "code\controllers\subsystem\vore.dm" #include "code\controllers\subsystem\vote.dm" -#include "code\controllers\subsystem\weather.dm" #include "code\controllers\subsystem\processing\chemistry.dm" #include "code\controllers\subsystem\processing\circuit.dm" #include "code\controllers\subsystem\processing\fastprocess.dm" @@ -301,6 +309,7 @@ #include "code\controllers\subsystem\processing\processing.dm" #include "code\controllers\subsystem\processing\projectiles.dm" #include "code\controllers\subsystem\processing\quirks.dm" +#include "code\controllers\subsystem\processing\weather.dm" #include "code\controllers\subsystem\processing\wet_floors.dm" #include "code\datums\action.dm" #include "code\datums\ai_laws.dm" @@ -366,6 +375,7 @@ #include "code\datums\components\earprotection.dm" #include "code\datums\components\edit_complainer.dm" #include "code\datums\components\empprotection.dm" +#include "code\datums\components\explodable.dm" #include "code\datums\components\footstep.dm" #include "code\datums\components\forced_gravity.dm" #include "code\datums\components\igniter.dm" @@ -457,10 +467,12 @@ #include "code\datums\diseases\advance\symptoms\confusion.dm" #include "code\datums\diseases\advance\symptoms\cough.dm" #include "code\datums\diseases\advance\symptoms\deafness.dm" +#include "code\datums\diseases\advance\symptoms\disfiguration.dm" #include "code\datums\diseases\advance\symptoms\dizzy.dm" #include "code\datums\diseases\advance\symptoms\fever.dm" #include "code\datums\diseases\advance\symptoms\fire.dm" #include "code\datums\diseases\advance\symptoms\flesh_eating.dm" +#include "code\datums\diseases\advance\symptoms\genetics.dm" #include "code\datums\diseases\advance\symptoms\hallucigen.dm" #include "code\datums\diseases\advance\symptoms\headache.dm" #include "code\datums\diseases\advance\symptoms\heal.dm" @@ -486,14 +498,15 @@ #include "code\datums\elements\dusts_on_catatonia.dm" #include "code\datums\elements\dusts_on_leaving_area.dm" #include "code\datums\elements\earhealing.dm" +#include "code\datums\elements\firestacker.dm" #include "code\datums\elements\ghost_role_eligibility.dm" #include "code\datums\elements\mob_holder.dm" +#include "code\datums\elements\swimming.dm" #include "code\datums\elements\wuv.dm" #include "code\datums\helper_datums\events.dm" #include "code\datums\helper_datums\getrev.dm" #include "code\datums\helper_datums\icon_snapshot.dm" #include "code\datums\helper_datums\teleport.dm" -#include "code\datums\helper_datums\topic_input.dm" #include "code\datums\looping_sounds\_looping_sound.dm" #include "code\datums\looping_sounds\item_sounds.dm" #include "code\datums\looping_sounds\machinery_sounds.dm" @@ -507,6 +520,8 @@ #include "code\datums\martial\rising_bass.dm" #include "code\datums\martial\sleeping_carp.dm" #include "code\datums\martial\wrestling.dm" +#include "code\datums\materials\_material.dm" +#include "code\datums\materials\basemats.dm" #include "code\datums\mood_events\beauty_events.dm" #include "code\datums\mood_events\drink_events.dm" #include "code\datums\mood_events\drug_events.dm" @@ -665,7 +680,6 @@ #include "code\game\machinery\magnet.dm" #include "code\game\machinery\mass_driver.dm" #include "code\game\machinery\navbeacon.dm" -#include "code\game\machinery\newscaster.dm" #include "code\game\machinery\PDApainter.dm" #include "code\game\machinery\quantum_pad.dm" #include "code\game\machinery\recharger.dm" @@ -782,6 +796,7 @@ #include "code\game\mecha\equipment\tools\mining_tools.dm" #include "code\game\mecha\equipment\tools\other_tools.dm" #include "code\game\mecha\equipment\tools\work_tools.dm" +#include "code\game\mecha\equipment\weapons\mecha_ammo.dm" #include "code\game\mecha\equipment\weapons\weapons.dm" #include "code\game\mecha\medical\medical.dm" #include "code\game\mecha\medical\odysseus.dm" @@ -867,6 +882,7 @@ #include "code\game\objects\items\cosmetics.dm" #include "code\game\objects\items\courtroom.dm" #include "code\game\objects\items\crayons.dm" +#include "code\game\objects\items\debug_items.dm" #include "code\game\objects\items\defib.dm" #include "code\game\objects\items\dehy_carp.dm" #include "code\game\objects\items\dice.dm" @@ -979,6 +995,7 @@ #include "code\game\objects\items\implants\implant_exile.dm" #include "code\game\objects\items\implants\implant_explosive.dm" #include "code\game\objects\items\implants\implant_freedom.dm" +#include "code\game\objects\items\implants\implant_hijack.dm" #include "code\game\objects\items\implants\implant_krav_maga.dm" #include "code\game\objects\items\implants\implant_mindshield.dm" #include "code\game\objects\items\implants\implant_misc.dm" @@ -1294,18 +1311,18 @@ #include "code\modules\antagonists\bloodsucker\objects\bloodsucker_coffin.dm" #include "code\modules\antagonists\bloodsucker\objects\bloodsucker_crypt.dm" #include "code\modules\antagonists\bloodsucker\objects\bloodsucker_lair.dm" -#include "code\modules\antagonists\bloodsucker\powers\bs_brawn.dm" -#include "code\modules\antagonists\bloodsucker\powers\bs_cloak.dm" -#include "code\modules\antagonists\bloodsucker\powers\bs_feed.dm" -#include "code\modules\antagonists\bloodsucker\powers\bs_fortitude.dm" -#include "code\modules\antagonists\bloodsucker\powers\bs_gohome.dm" -#include "code\modules\antagonists\bloodsucker\powers\bs_haste.dm" -#include "code\modules\antagonists\bloodsucker\powers\bs_lunge.dm" -#include "code\modules\antagonists\bloodsucker\powers\bs_masquerade.dm" -#include "code\modules\antagonists\bloodsucker\powers\bs_mesmerize.dm" -#include "code\modules\antagonists\bloodsucker\powers\bs_trespass.dm" -#include "code\modules\antagonists\bloodsucker\powers\bs_veil.dm" -#include "code\modules\antagonists\bloodsucker\powers\v_recuperate.dm" +#include "code\modules\antagonists\bloodsucker\powers\brawn.dm" +#include "code\modules\antagonists\bloodsucker\powers\cloak.dm" +#include "code\modules\antagonists\bloodsucker\powers\feed.dm" +#include "code\modules\antagonists\bloodsucker\powers\fortitude.dm" +#include "code\modules\antagonists\bloodsucker\powers\go_home.dm" +#include "code\modules\antagonists\bloodsucker\powers\haste.dm" +#include "code\modules\antagonists\bloodsucker\powers\lunge.dm" +#include "code\modules\antagonists\bloodsucker\powers\masquerade.dm" +#include "code\modules\antagonists\bloodsucker\powers\mesmerize.dm" +#include "code\modules\antagonists\bloodsucker\powers\recuperate.dm" +#include "code\modules\antagonists\bloodsucker\powers\trespass.dm" +#include "code\modules\antagonists\bloodsucker\powers\veil.dm" #include "code\modules\antagonists\brainwashing\brainwashing.dm" #include "code\modules\antagonists\brother\brother.dm" #include "code\modules\antagonists\changeling\cellular_emporium.dm" @@ -1831,18 +1848,20 @@ #include "code\modules\food_and_drinks\recipes\tablecraft\recipes_bread.dm" #include "code\modules\food_and_drinks\recipes\tablecraft\recipes_burger.dm" #include "code\modules\food_and_drinks\recipes\tablecraft\recipes_cake.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_donut.dm" #include "code\modules\food_and_drinks\recipes\tablecraft\recipes_egg.dm" #include "code\modules\food_and_drinks\recipes\tablecraft\recipes_frozen.dm" #include "code\modules\food_and_drinks\recipes\tablecraft\recipes_meat.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_mexican.dm" #include "code\modules\food_and_drinks\recipes\tablecraft\recipes_misc.dm" #include "code\modules\food_and_drinks\recipes\tablecraft\recipes_pastry.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_pie.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_pies_sweets.dm" #include "code\modules\food_and_drinks\recipes\tablecraft\recipes_pizza.dm" #include "code\modules\food_and_drinks\recipes\tablecraft\recipes_salad.dm" #include "code\modules\food_and_drinks\recipes\tablecraft\recipes_sandwich.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_seafood.dm" #include "code\modules\food_and_drinks\recipes\tablecraft\recipes_soup.dm" #include "code\modules\food_and_drinks\recipes\tablecraft\recipes_spaghetti.dm" -#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_sushi.dm" #include "code\modules\games\cas.dm" #include "code\modules\goonchat\browserOutput.dm" #include "code\modules\holiday\easter.dm" @@ -1971,6 +1990,7 @@ #include "code\modules\jobs\job_types\lawyer.dm" #include "code\modules\jobs\job_types\medical_doctor.dm" #include "code\modules\jobs\job_types\mime.dm" +#include "code\modules\jobs\job_types\paramedic.dm" #include "code\modules\jobs\job_types\quartermaster.dm" #include "code\modules\jobs\job_types\research_director.dm" #include "code\modules\jobs\job_types\roboticist.dm" @@ -2310,6 +2330,7 @@ #include "code\modules\mob\living\simple_animal\bot\mulebot.dm" #include "code\modules\mob\living\simple_animal\bot\secbot.dm" #include "code\modules\mob\living\simple_animal\bot\SuperBeepsky.dm" +#include "code\modules\mob\living\simple_animal\friendly\bumbles.dm" #include "code\modules\mob\living\simple_animal\friendly\butterfly.dm" #include "code\modules\mob\living\simple_animal\friendly\cat.dm" #include "code\modules\mob\living\simple_animal\friendly\cockroach.dm" @@ -2351,6 +2372,7 @@ #include "code\modules\mob\living\simple_animal\hostile\bees.dm" #include "code\modules\mob\living\simple_animal\hostile\carp.dm" #include "code\modules\mob\living\simple_animal\hostile\cat_butcher.dm" +#include "code\modules\mob\living\simple_animal\hostile\dark_wizard.dm" #include "code\modules\mob\living\simple_animal\hostile\eyeballs.dm" #include "code\modules\mob\living\simple_animal\hostile\faithless.dm" #include "code\modules\mob\living\simple_animal\hostile\giant_spider.dm" @@ -2367,6 +2389,7 @@ #include "code\modules\mob\living\simple_animal\hostile\netherworld.dm" #include "code\modules\mob\living\simple_animal\hostile\pirate.dm" #include "code\modules\mob\living\simple_animal\hostile\russian.dm" +#include "code\modules\mob\living\simple_animal\hostile\sharks.dm" #include "code\modules\mob\living\simple_animal\hostile\skeleton.dm" #include "code\modules\mob\living\simple_animal\hostile\statue.dm" #include "code\modules\mob\living\simple_animal\hostile\stickman.dm" @@ -2462,6 +2485,15 @@ #include "code\modules\modular_computers\hardware\printer.dm" #include "code\modules\modular_computers\hardware\recharger.dm" #include "code\modules\modular_computers\NTNet\NTNRC\conversation.dm" +#include "code\modules\newscaster\_news.dm" +#include "code\modules\newscaster\feed_channel.dm" +#include "code\modules\newscaster\feed_comment.dm" +#include "code\modules\newscaster\feed_message.dm" +#include "code\modules\newscaster\ghostread.dm" +#include "code\modules\newscaster\news_network.dm" +#include "code\modules\newscaster\newscaster_machine.dm" +#include "code\modules\newscaster\newspaper.dm" +#include "code\modules\newscaster\wanted_message.dm" #include "code\modules\ninja\__ninjaDefines.dm" #include "code\modules\ninja\energy_katana.dm" #include "code\modules\ninja\ninja_event.dm" @@ -2514,6 +2546,13 @@ #include "code\modules\photography\photos\album.dm" #include "code\modules\photography\photos\frame.dm" #include "code\modules\photography\photos\photo.dm" +#include "code\modules\pool\pool_controller.dm" +#include "code\modules\pool\pool_drain.dm" +#include "code\modules\pool\pool_effects.dm" +#include "code\modules\pool\pool_main.dm" +#include "code\modules\pool\pool_noodles.dm" +#include "code\modules\pool\pool_structures.dm" +#include "code\modules\pool\pool_wires.dm" #include "code\modules\power\apc.dm" #include "code\modules\power\cable.dm" #include "code\modules\power\cell.dm" @@ -2579,6 +2618,7 @@ #include "code\modules\projectiles\ammunition\ballistic\smg.dm" #include "code\modules\projectiles\ammunition\ballistic\sniper.dm" #include "code\modules\projectiles\ammunition\caseless\_caseless.dm" +#include "code\modules\projectiles\ammunition\caseless\arrow.dm" #include "code\modules\projectiles\ammunition\caseless\ferromagnetic.dm" #include "code\modules\projectiles\ammunition\caseless\foam.dm" #include "code\modules\projectiles\ammunition\caseless\misc.dm" @@ -2609,6 +2649,7 @@ #include "code\modules\projectiles\boxes_magazines\external\toy.dm" #include "code\modules\projectiles\boxes_magazines\internal\_cylinder.dm" #include "code\modules\projectiles\boxes_magazines\internal\_internal.dm" +#include "code\modules\projectiles\boxes_magazines\internal\bow.dm" #include "code\modules\projectiles\boxes_magazines\internal\grenade.dm" #include "code\modules\projectiles\boxes_magazines\internal\misc.dm" #include "code\modules\projectiles\boxes_magazines\internal\revolver.dm" @@ -2619,6 +2660,7 @@ #include "code\modules\projectiles\guns\energy.dm" #include "code\modules\projectiles\guns\magic.dm" #include "code\modules\projectiles\guns\ballistic\automatic.dm" +#include "code\modules\projectiles\guns\ballistic\bow.dm" #include "code\modules\projectiles\guns\ballistic\laser_gatling.dm" #include "code\modules\projectiles\guns\ballistic\launchers.dm" #include "code\modules\projectiles\guns\ballistic\magweapon.dm" @@ -2671,6 +2713,7 @@ #include "code\modules\projectiles\projectile\energy\tesla.dm" #include "code\modules\projectiles\projectile\magic\spellcard.dm" #include "code\modules\projectiles\projectile\reusable\_reusable.dm" +#include "code\modules\projectiles\projectile\reusable\arrow.dm" #include "code\modules\projectiles\projectile\reusable\foam_dart.dm" #include "code\modules\projectiles\projectile\reusable\magspear.dm" #include "code\modules\projectiles\projectile\special\curse.dm" @@ -2798,7 +2841,6 @@ #include "code\modules\research\nanites\nanite_chamber.dm" #include "code\modules\research\nanites\nanite_chamber_computer.dm" #include "code\modules\research\nanites\nanite_cloud_controller.dm" -#include "code\modules\research\nanites\nanite_hijacker.dm" #include "code\modules\research\nanites\nanite_misc_items.dm" #include "code\modules\research\nanites\nanite_program_hub.dm" #include "code\modules\research\nanites\nanite_programmer.dm" @@ -2806,6 +2848,12 @@ #include "code\modules\research\nanites\nanite_remote.dm" #include "code\modules\research\nanites\program_disks.dm" #include "code\modules\research\nanites\public_chamber.dm" +#include "code\modules\research\nanites\rules.dm" +#include "code\modules\research\nanites\extra_settings\_extra_setting.dm" +#include "code\modules\research\nanites\extra_settings\boolean.dm" +#include "code\modules\research\nanites\extra_settings\number.dm" +#include "code\modules\research\nanites\extra_settings\text.dm" +#include "code\modules\research\nanites\extra_settings\type.dm" #include "code\modules\research\nanites\nanite_programs\buffing.dm" #include "code\modules\research\nanites\nanite_programs\healing.dm" #include "code\modules\research\nanites\nanite_programs\rogue.dm" @@ -2850,6 +2898,7 @@ #include "code\modules\ruins\spaceruin_code\asteroid4.dm" #include "code\modules\ruins\spaceruin_code\bigderelict1.dm" #include "code\modules\ruins\spaceruin_code\caravanambush.dm" +#include "code\modules\ruins\spaceruin_code\clericsden.dm" #include "code\modules\ruins\spaceruin_code\cloning_lab.dm" #include "code\modules\ruins\spaceruin_code\crashedclownship.dm" #include "code\modules\ruins\spaceruin_code\crashedship.dm" @@ -3185,7 +3234,6 @@ #include "modular_citadel\code\modules\projectiles\guns\ballistic\rifles.dm" #include "modular_citadel\code\modules\projectiles\guns\ballistic\spinfusor.dm" #include "modular_citadel\code\modules\projectiles\guns\energy\energy_gun.dm" -#include "modular_citadel\code\modules\projectiles\guns\energy\laser.dm" #include "modular_citadel\code\modules\projectiles\projectiles\reusable.dm" #include "modular_citadel\code\modules\reagents\chemistry\reagents\astrogen.dm" #include "modular_citadel\code\modules\reagents\chemistry\reagents\eigentstasium.dm" diff --git a/tgui-next/README.md b/tgui-next/README.md index df801684c6..beb7aaff80 100644 --- a/tgui-next/README.md +++ b/tgui-next/README.md @@ -65,6 +65,9 @@ Run one of the following: hot module replacement and logging facilities in all running instances of tgui. In short, this means that you will instantly see changes in the game as you code it. Very useful, highly recommended. + In order to use, you should start the game server first, connect to it so dreamseeker is + open, then start the dev server. You'll know if it's hooked correctly if data gets dumped + to the log when tgui windows are opened. - `bin/tgui --dev --reload` - reload byond cache once. - `bin/tgui --dev --debug` - run server with debug logging enabled. - `bin/tgui --dev --no-hot` - disable hot module replacement (helps when @@ -220,7 +223,6 @@ This way, `Button` can pull out the `className` generated by the `Box`. ``` `Box` units, like width, height and margins can be defined in two ways: - - By plain numbers (1 unit equals `0.5em`); - In absolute measures, by providing a full unit string (e.g. `100px`). @@ -239,6 +241,8 @@ Props: - `height: number` - Box height. - `minHeight: number` - Box minimum height. - `maxHeight: number` - Box maximum height. +- `fontSize: number` - Font size. +- `fontFamily: string` - Font family. - `lineHeight: number` - Directly affects the height of text lines. Useful for adjusting button height. - `inline: boolean` - Forces the `Box` to appear as an `inline-block`, @@ -254,6 +258,7 @@ all available horizontal space. - `opacity: number` - Opacity, from 0 to 1. - `bold: boolean` - Make text bold. - `italic: boolean` - Make text italic. +- `nowrap: boolean` - Stops text from wrapping. - `textAlign: string` - Align text inside the box. - `left` (default) - `center` @@ -293,11 +298,55 @@ over the button. - `bottom` (default) - Show tooltip below the button. - `left` - Show tooltip on the left of the button. - `right` - Show tooltip on the right of the button. +- `ellipsis: boolean` - If button width is constrained, button text will +be truncated with an ellipsis. Be careful however, because this prop breaks +the baseline alignment. - `title: string` - A native browser tooltip, which appears when hovering over the button. - `content/children: any` - Content to render inside the button. - `onClick: function` - Called when element is clicked. +### `Button.Checkbox` + +A ghetto checkbox, made entirely using existing Button API. + +Props: + +- See inherited props: [Button](#button) +- `checked: boolean` - Boolean value, which marks the checkbox as checked. + +### `Button.Confirm` + +A button with a an extra confirmation step, using native button component. + +Props: + +- See inherited props: [Button](#button) +- `confirmMessage: string` - Text to display after first click; defaults to "Confirm?" +- `confirmColor: string` - Color to display after first click; default to "bad" + +### `Button.Input` + +A button that turns into an input box after the first click. Turns back into a button after the user hits enter, defocuses, or hits escape. Enter and defocus commit, while escape cancels. + +Props: + - See inherited props: [Box](#box) + - `fluid`: fill availible horizontal space + - `onCommit: (e, value) => void`: function that is called after the user defocuses the input or presses enter + - `currentValue: string`: default string to display when the input is shown + - `defaultValue: string`: default value emitted if the user leaves the box blank when hitting enter or defocusing. If left undefined, will cancel the change on a blank defocus/enter + +### `Collapsible` + +Displays contents when open, acts as a fluid button when closed. Click to toggle, closed by default. + +Props: + - See inherited props: [Box](#box) + - `children: any` - What is collapsed when closed + - `title: string` - Text to display on the button for collapsing + - `color: string` - Color of the button; see [Button](#button) + - `buttons: any` - Buttons or other content to render inline with the button + ### `ColorBox` Displays a 1-character wide colored square. Can be used as a status indicator, @@ -319,6 +368,21 @@ Props: - See inherited props: [Box](#box) +### `Dropdown` + +A simple dropdown box component. Lets the user select from a list of options and displays selected entry. + +Props: + + - See inherited props: [Box](#box) + - `options: string[]` - An array of strings which will be displayed in the dropdown when open + - `selected: string` - Currently selected entry + - `width: number` - Width of dropdown button and resulting menu + - `over: boolean` - dropdown renders over instead of below + - `color: string` - color of dropdown button + - `onClick: (e) => void` - Called when dropdown button is clicked + - `onSelected: (value) => void` - Called when a value is picked from the list, `value` is the value that was picked + ### `Flex` Quickly manage the layout, alignment, and sizing of grid columns, navigation, components, and more with a full suite of responsive flexbox utilities. @@ -350,6 +414,10 @@ two flex items as far as possible from each other. Props: - See inherited props: [Box](#box) +- `spacing: number` - Spacing between flex items, in integer units +(1 unit - 0.5em). Does not directly relate to a flex css property +(adds a modifier class under the hood), and only integer numbers are +supported. - `direction: string` - This establishes the main-axis, thus defining the direction flex items are placed in the flex container. - `row` (default) - left to right. @@ -406,6 +474,7 @@ remaining space is distributed. It can be a length (e.g. `20%`, `5rem`, etc.), an `auto` or `content` keyword. - `align: string` - This allows the default alignment (or the one specified by align-items) to be overridden for individual flex items. See: [Flex](#flex). + ### `Grid` Helps you to divide horizontal space into two or more equal sections. @@ -432,7 +501,7 @@ Props: Props: -- See inherited props: [Table.Cell](#table-cell) +- See inherited props: [Table.Cell](#tablecell) - `size: number` (default: 1) - Size of the column relative to other columns. ### `Icon` @@ -445,7 +514,6 @@ Renders one of the FontAwesome icons of your choice. To smoothen the transition from v4 to v5, we have added a v4 semantic to transform names with `-o` suffixes to FA Regular icons. For example: - - `square` will get transformed to `fas square` - `square-o` will get transformed to `far square` @@ -470,7 +538,9 @@ Props: - See inherited props: [Box](#box) - `value: string` - Value of an input. +- `placeholder: string` - Text placed into Input box when value is otherwise nothing. Clears automatically when focused. - `fluid: boolean` - Fill all available horizontal space. +- `selfClear: boolean` - Clear after hitting enter, as well as remain focused when this happens. Useful for things like chat inputs - `onChange: (e, value) => void` - An event, which fires when you commit the text by either unfocusing the input box, or by pressing the Enter key. - `onInput: (e, value) => void` - An event, which fires on every keypress. @@ -562,6 +632,9 @@ dragging the input. - `stepPixelSize: number` (default: 1) - Screen distance mouse needs to travel to adjust value by one `step`. - `width: string|number` - Width of the element, in `Box` units or pixels. +- `height: string|numer` - Height of the element, in `Box` units or pixels. +- `lineHeight: string|number` - lineHeight of the element, in `Box` units or pixels. +- `fontSize: string|number` - fontSize of the element, in `Box` units or pixels. - `format: value => value` - Format value using this function before displaying it. - `suppressFlicker: number` - A number in milliseconds, for which the input @@ -738,6 +811,8 @@ Props: - `vertical: boolean` - Use a vertical configuration, where tabs will appear stacked on the left side of the container. +- `altSelection` - Whether the tab buttons select via standard select (color change) or by adding a white indicator to the selected tab. + Intended for usage on interfaces where tab color has relevance. - `children: Tab[]` - This component only accepts tabs as its children. ### `Tabs.Tab` diff --git a/tgui-next/bin/tgui b/tgui-next/bin/tgui old mode 100644 new mode 100755 diff --git a/tgui-next/packages/tgui/interfaces/Apc.js b/tgui-next/packages/tgui/interfaces/Apc.js index d74c3e8e57..c899ea8ae7 100644 --- a/tgui-next/packages/tgui/interfaces/Apc.js +++ b/tgui-next/packages/tgui/interfaces/Apc.js @@ -201,6 +201,29 @@ export const Apc = props => { onClick={() => act('toggle_nightshift')} /> )} /> + {data.hijackable && ( +
+