diff --git a/.github/TICK_ORDER.md b/.github/TICK_ORDER.md new file mode 100644 index 000000000000..5c27617db4ce --- /dev/null +++ b/.github/TICK_ORDER.md @@ -0,0 +1,21 @@ +The byond tick proceeds as follows: +1. procs sleeping via walk() are resumed (i dont know why these are first) + +2. normal sleeping procs are resumed, in the order they went to sleep in the first place, this is where the MC wakes up and processes subsystems. a consequence of this is that the MC almost never resumes before other sleeping procs, because it only goes to sleep for 1 tick 99% of the time, and 99% of procs either go to sleep for less time than the MC (which guarantees that they entered the sleep queue earlier when its time to wake up) and/or were called synchronously from the MC's execution, almost all of the time the MC is the last sleeping proc to resume in any given tick. This is good because it means the MC can account for the cost of previous resuming procs in the tick, and minimizes overtime. + +3. control is passed to byond after all of our code's procs stop execution for this tick + +4. a few small things happen in byond internals + +5. SendMaps is called for this tick, which processes the game state for all clients connected to the game and handles sending them changes +in appearances within their view range. This is expensive and takes up a significant portion of our tick, about 0.45% per connected player +as of 3/20/2022. meaning that with 50 players, 22.5% of our tick is being used up by just SendMaps, after all of our code has stopped executing. Thats only the average across all rounds, for most highpop rounds it can look like 0.6% of the tick per player, which is 30% for 50 players. + +6. After SendMaps ends, client verbs sent to the server are executed, and its the last major step before the next tick begins. +During the course of the tick, a client can send a command to the server saying that they have executed any verb. The actual code defined +for that /verb/name() proc isnt executed until this point, and the way the MC is designed makes this especially likely to make verbs +"overrun" the bounds of the tick they executed in, stopping the other tick from starting and thus delaying the MC firing in that tick. + +The master controller can derive how much of the tick was used in: procs executing before it woke up (because of world.tick_usage), and SendMaps (because of world.map_cpu, since this is a running average you cant derive the tick spent on maptick on any particular tick). It cannot derive how much of the tick was used for sleeping procs resuming after the MC ran, or for verbs executing after SendMaps. + +It is for these reasons why you should heavily limit processing done in verbs, while procs resuming after the MC are rare, verbs are not, and are much more likely to cause overtime since theyre literally at the end of the tick. If you make a verb, try to offload any expensive work to the beginning of the next tick via a verb management subsystem. diff --git a/.github/workflows/autowiki.yml b/.github/workflows/autowiki.yml index 72c5b8816ce0..b36db1444bbe 100644 --- a/.github/workflows/autowiki.yml +++ b/.github/workflows/autowiki.yml @@ -9,7 +9,7 @@ permissions: jobs: autowiki: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - name: "Check for AUTOWIKI_USERNAME" id: secrets_set diff --git a/.github/workflows/ci_suite.yml b/.github/workflows/ci_suite.yml index f844f8da5747..54384fb14e95 100644 --- a/.github/workflows/ci_suite.yml +++ b/.github/workflows/ci_suite.yml @@ -11,8 +11,9 @@ on: - master jobs: run_linters: + if: "!contains(github.event.head_commit.message, '[ci skip]')" name: Run Linters - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: @@ -66,8 +67,9 @@ jobs: cat check_regex_output.txt compile_all_maps: + if: "!contains(github.event.head_commit.message, '[ci skip]')" name: Compile Maps - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Python setup @@ -90,54 +92,22 @@ jobs: tools/build/build --ci dm -DCIBUILDING -DCITESTING -DALL_MAPS -DFULL_INIT run_all_tests: + if: "!contains(github.event.head_commit.message, '[ci skip]')" name: Integration Tests - runs-on: ubuntu-20.04 - strategy: - fail-fast: false - services: - mysql: - image: mysql:latest - env: - MYSQL_ROOT_PASSWORD: root - ports: - - 3306 - options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 - steps: - - uses: actions/checkout@v3 - - name: Setup cache - id: cache-byond - uses: actions/cache@v3 - with: - path: ~/BYOND - key: ${{ runner.os }}-byond-cache-${{ hashFiles('Dockerfile') }} - - name: Install BYOND - if: steps.cache-byond.outputs.cache-hit != 'true' - run: bash tools/ci/install_byond.sh - - name: Setup database - run: | - sudo systemctl start mysql - mysql -u root -proot -e 'CREATE DATABASE tg_ci;' - mysql -u root -proot tg_ci < SQL/tgstation_schema.sql - mysql -u root -proot -e 'CREATE DATABASE tg_ci_prefixed;' - mysql -u root -proot tg_ci_prefixed < SQL/tgstation_schema_prefixed.sql - - name: Install rust-g - run: | - sudo dpkg --add-architecture i386 - sudo apt update || true - sudo apt install -o APT::Immediate-Configure=false libssl1.1:i386 - bash tools/ci/install_rust_g.sh - - name: Install auxmos - run: | - bash tools/ci/install_auxmos.sh - - name: Compile Tests - run: | - bash tools/ci/install_byond.sh - source $HOME/BYOND/byond/bin/byondsetup - tools/build/build --ci dm -DCIBUILDING -DANSICOLORS - - name: Run Tests - run: | - source $HOME/BYOND/byond/bin/byondsetup - bash tools/ci/run_server.sh + uses: ./.github/workflows/run_integration_tests.yml + +# run_alternate_tests: +# if: "!contains(github.event.head_commit.message, '[ci skip]')" +# name: Alternate Tests +# strategy: +# fail-fast: false +# matrix: +# major: [515] +# minor: [1614] +# uses: ./.github/workflows/run_integration_tests.yml +# with: +# major: ${{ matrix.major }} +# minor: ${{ matrix.minor }} test_windows: if: "!contains(github.event.head_commit.message, '[ci skip]')" diff --git a/.github/workflows/compile_changelogs.yml b/.github/workflows/compile_changelogs.yml index 70b4ac9a9331..48071cb3adde 100644 --- a/.github/workflows/compile_changelogs.yml +++ b/.github/workflows/compile_changelogs.yml @@ -8,7 +8,7 @@ on: jobs: compile: name: "Compile changelogs" - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - name: "Check for ACTION_ENABLER secret and pass it to output if it exists to be checked by later steps" id: value_holder diff --git a/.github/workflows/docker_publish.yml b/.github/workflows/docker_publish.yml index 6c14be7547b6..1d7c299831a2 100644 --- a/.github/workflows/docker_publish.yml +++ b/.github/workflows/docker_publish.yml @@ -9,7 +9,7 @@ on: jobs: publish: if: "!contains(github.event.head_commit.message, '[ci skip]')" - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/generate_documentation.yml b/.github/workflows/generate_documentation.yml index 8011516d27a2..e987d05ad2a9 100644 --- a/.github/workflows/generate_documentation.yml +++ b/.github/workflows/generate_documentation.yml @@ -21,7 +21,7 @@ jobs: environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Restore SpacemanDMM cache diff --git a/.github/workflows/make_changelogs.yml b/.github/workflows/make_changelogs.yml index aceb4aee3130..1a30c8183e35 100644 --- a/.github/workflows/make_changelogs.yml +++ b/.github/workflows/make_changelogs.yml @@ -7,7 +7,7 @@ on: jobs: MakeCL: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest if: "!contains(github.event.head_commit.message, '[ci skip]')" steps: - name: Checkout diff --git a/.github/workflows/round_id_linker.yml b/.github/workflows/round_id_linker.yml index bd4d02c17983..3885068be756 100644 --- a/.github/workflows/round_id_linker.yml +++ b/.github/workflows/round_id_linker.yml @@ -5,7 +5,7 @@ on: jobs: link_rounds: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - uses: shiptest-ss13/round_linker@v2.0.0 with: diff --git a/.github/workflows/run_integration_tests.yml b/.github/workflows/run_integration_tests.yml new file mode 100644 index 000000000000..53f5df377591 --- /dev/null +++ b/.github/workflows/run_integration_tests.yml @@ -0,0 +1,61 @@ +# This is a reusable workflow to run integration tests. +# This is run for every single map in ci_suite.yml. You might want to edit that instead. +name: Run Integration Tests +on: + workflow_call: + inputs: + major: + required: false + type: string + minor: + required: false + type: string +jobs: + run_integration_tests: + runs-on: ubuntu-latest + services: + mysql: + image: mysql:latest + env: + MYSQL_ROOT_PASSWORD: root + ports: + - 3306 + options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 + steps: + - uses: actions/checkout@v3 + - name: Setup cache + id: cache-byond + uses: actions/cache@v3 + with: + path: ~/BYOND + key: ${{ runner.os }}-byond-cache-${{ hashFiles('Dockerfile') }} + - name: Setup database + run: | + sudo systemctl start mysql + mysql -u root -proot -e 'CREATE DATABASE tg_ci;' + mysql -u root -proot tg_ci < SQL/tgstation_schema.sql + mysql -u root -proot -e 'CREATE DATABASE tg_ci_prefixed;' + mysql -u root -proot tg_ci_prefixed < SQL/tgstation_schema_prefixed.sql + - name: Install rust-g + run: | + sudo dpkg --add-architecture i386 + sudo apt update || true + sudo apt install -o APT::Immediate-Configure=false libssl-dev:i386 + bash tools/ci/install_rust_g.sh + - name: Install auxmos + run: | + bash tools/ci/install_auxmos.sh + - name: Configure version + if: ${{ inputs.major }} + run: | + echo "BYOND_MAJOR=${{ inputs.major }}" >> $GITHUB_ENV + echo "BYOND_MINOR=${{ inputs.minor }}" >> $GITHUB_ENV + - name: Compile Tests + run: | + bash tools/ci/install_byond.sh + source $HOME/BYOND/byond/bin/byondsetup + tools/build/build --ci dm -DCIBUILDING -DANSICOLORS + - name: Run Tests + run: | + source $HOME/BYOND/byond/bin/byondsetup + bash tools/ci/run_server.sh diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 01209a2828e3..a19c1911c18e 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -10,7 +10,7 @@ permissions: jobs: stale: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - uses: actions/stale@v4 diff --git a/.github/workflows/update_tgs_dmapi.yml b/.github/workflows/update_tgs_dmapi.yml index 9f863ce8c123..8aa77d0d6310 100644 --- a/.github/workflows/update_tgs_dmapi.yml +++ b/.github/workflows/update_tgs_dmapi.yml @@ -7,7 +7,7 @@ on: jobs: update-dmapi: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest name: Update the TGS DMAPI steps: - name: Clone diff --git a/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm b/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm new file mode 100644 index 000000000000..d393dadb3b64 --- /dev/null +++ b/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm @@ -0,0 +1,4064 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"am" = ( +/obj/structure/fluff/beach_umbrella{ + pixel_x = -18; + pixel_y = -6 + }, +/turf/open/floor/plating/asteroid/sand/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"ar" = ( +/obj/structure/table/wood, +/obj/structure/curtain/cloth, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort/villa) +"bm" = ( +/obj/structure/chair/plastic, +/turf/open/floor/plating/asteroid/sand/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"br" = ( +/obj/structure/table/wood, +/obj/structure/curtain/cloth, +/obj/item/reagent_containers/food/drinks/coffee{ + pixel_x = 4; + pixel_y = 10 + }, +/obj/item/reagent_containers/food/snacks/pizzaslice/custom{ + pixel_x = -2; + pixel_y = 2 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort/villa) +"bs" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/machinery/light/small/directional/east, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"bA" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/destructible/tribal_torch/lit, +/turf/open/floor/plating/asteroid/sand/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"bO" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 5 + }, +/obj/effect/turf_decal/weather/sand, +/obj/effect/decal/cleanable/dirt/dust{ + layer = 2.01 + }, +/turf/open/floor/carpet/cyan{ + baseturfs = /turf/open/floor/plating/beach/sand + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"ca" = ( +/obj/structure/chair/plastic{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/sand/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"cg" = ( +/obj/effect/turf_decal/weather/sand/corner{ + dir = 4 + }, +/obj/structure/flora/ausbushes/ywflowers, +/turf/open/floor/plating/grass/beach/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"cs" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"ct" = ( +/obj/structure/chair/plastic{ + dir = 8 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort/villa) +"cu" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort/villa) +"cA" = ( +/obj/structure/table/wood, +/obj/item/circuitboard/machine/ore_redemption, +/obj/item/paper/pamphlet{ + pixel_x = 10; + pixel_y = 3 + }, +/obj/item/paper/pamphlet{ + pixel_x = 7; + pixel_y = -1 + }, +/obj/item/flashlight/lamp{ + pixel_x = -5; + pixel_y = 2 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"cF" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/obj/structure/destructible/tribal_torch/lit, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"cL" = ( +/obj/structure/chair/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"dl" = ( +/obj/structure/railing/wood{ + dir = 10 + }, +/turf/open/water/beach, +/area/overmap_encounter/planetoid/beachplanet/explored) +"dx" = ( +/obj/machinery/light/small/directional/west, +/obj/structure/bed/double{ + dir = 1 + }, +/obj/item/bedsheet/double/green{ + dir = 4 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort/villa) +"dJ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/structure/chair/wood{ + dir = 4 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"dZ" = ( +/obj/structure/chair/comfy/black{ + dir = 1 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort/villa) +"ed" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 8 + }, +/turf/closed/wall/concrete, +/area/overmap_encounter/planetoid/beachplanet/explored) +"ef" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/chair/wood{ + dir = 4 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"eD" = ( +/obj/structure/railing/wood{ + dir = 4 + }, +/obj/effect/turf_decal/weather/sand, +/turf/open/water/beach, +/area/overmap_encounter/planetoid/beachplanet/explored) +"eZ" = ( +/obj/item/melee/roastingstick, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"fq" = ( +/obj/structure/bonfire/prelit, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"ft" = ( +/obj/machinery/door/airlock/wood{ + name = "Villa 4" + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort/villa) +"fz" = ( +/obj/effect/turf_decal/weather/sand/corner{ + dir = 1 + }, +/obj/structure/bonfire/prelit, +/turf/open/floor/plating/dirt{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"gi" = ( +/obj/structure/curtain/cloth, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"gm" = ( +/obj/structure/table/wood, +/obj/structure/curtain/cloth, +/obj/item/flashlight/lamp/bananalamp{ + pixel_y = 5 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort/villa) +"gr" = ( +/obj/structure/table/wood, +/obj/structure/curtain/cloth, +/obj/item/nullrod/tribal_knife, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort/villa) +"gQ" = ( +/obj/structure/flora/ausbushes/genericbush, +/turf/open/floor/plating/grass/beach, +/area/overmap_encounter/planetoid/beachplanet/explored) +"hi" = ( +/obj/effect/turf_decal/weather/sand/corner, +/obj/structure/fence/cut, +/turf/open/floor/concrete{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"hm" = ( +/obj/structure/flora/tree/palm{ + icon_state = "palm2" + }, +/turf/open/floor/plating/asteroid/sand/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"hF" = ( +/obj/structure/flora/tree/palm{ + icon_state = "palm2"; + pixel_x = 18 + }, +/obj/structure/destructible/tribal_torch/lit, +/turf/open/floor/plating/asteroid/sand/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"hJ" = ( +/obj/structure/chair/plastic{ + dir = 4 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort/villa) +"il" = ( +/obj/effect/turf_decal/weather/sand, +/turf/open/floor/concrete{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"ix" = ( +/obj/effect/turf_decal/weather/sand/corner{ + dir = 8 + }, +/turf/open/floor/concrete{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"iS" = ( +/obj/structure/flora/ausbushes/grassybush, +/turf/open/floor/plating/dirt/dark{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"iW" = ( +/obj/structure/railing/wood{ + dir = 1 + }, +/obj/structure/closet/crate/freezer{ + name = "BBQ Supplies" + }, +/obj/item/reagent_containers/food/snacks/meat/rawbacon, +/obj/item/reagent_containers/food/snacks/meat/rawbacon, +/obj/item/reagent_containers/food/snacks/meat/rawbacon, +/obj/item/reagent_containers/food/snacks/meat/rawbacon, +/obj/item/reagent_containers/food/snacks/meat/slab/killertomato, +/obj/item/reagent_containers/food/snacks/meat/slab/killertomato, +/obj/item/reagent_containers/food/snacks/meat/slab/killertomato, +/obj/item/reagent_containers/food/snacks/meat/slab/killertomato, +/obj/item/reagent_containers/food/snacks/meat/slab/human, +/obj/item/reagent_containers/food/snacks/meat/slab/human, +/obj/item/reagent_containers/food/snacks/meat/slab/human, +/obj/item/reagent_containers/food/snacks/meat/slab/human, +/obj/item/reagent_containers/food/snacks/sausage, +/obj/item/reagent_containers/food/snacks/sausage, +/obj/item/reagent_containers/food/snacks/sausage, +/obj/item/reagent_containers/food/snacks/sausage, +/obj/item/reagent_containers/food/snacks/bun, +/obj/item/reagent_containers/food/snacks/bun, +/obj/item/reagent_containers/food/snacks/bun, +/obj/item/reagent_containers/food/snacks/bun, +/turf/open/floor/plating/asteroid/sand/lit, +/area/ruin/beach/float_resort) +"iX" = ( +/obj/structure/flora/ausbushes/fullgrass, +/obj/item/circuitboard/machine/autolathe, +/turf/open/floor/plating/grass/beach/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"iZ" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"jh" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 6 + }, +/obj/effect/turf_decal/weather/sand{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust{ + layer = 2.01 + }, +/turf/open/floor/carpet/orange{ + baseturfs = /turf/open/floor/plating/beach/sand + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"jQ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"kh" = ( +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"ki" = ( +/obj/structure/railing/corner/wood{ + dir = 4 + }, +/turf/open/water/beach, +/area/overmap_encounter/planetoid/beachplanet/explored) +"kp" = ( +/turf/open/water/beach, +/area/overmap_encounter/planetoid/beachplanet/explored) +"kw" = ( +/obj/item/stack/sheet/mineral/sandstone, +/turf/open/floor/plating/asteroid/sand/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"kG" = ( +/obj/effect/turf_decal/sand/plating, +/obj/effect/turf_decal/weather/sand, +/obj/effect/turf_decal/weather/sand{ + dir = 8 + }, +/turf/open/floor/plating, +/area/overmap_encounter/planetoid/beachplanet/explored) +"kW" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/item/reagent_containers/food/drinks/bottle/sake, +/obj/item/clothing/under/costume/mech_suit/white, +/obj/item/clothing/glasses/sunglasses{ + name = "blastglasses" + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort/villa) +"lb" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/chair/wood{ + dir = 1 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"ln" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"ls" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"lP" = ( +/obj/structure/railing/wood{ + dir = 5 + }, +/turf/open/water/beach, +/area/overmap_encounter/planetoid/beachplanet/explored) +"mj" = ( +/obj/structure/railing/corner/wood{ + dir = 1 + }, +/turf/open/water/beach, +/area/overmap_encounter/planetoid/beachplanet/explored) +"mo" = ( +/obj/structure/railing/wood{ + dir = 1 + }, +/obj/structure/railing/wood{ + dir = 4 + }, +/obj/structure/railing/wood{ + dir = 8 + }, +/turf/open/water/beach, +/area/overmap_encounter/planetoid/beachplanet/explored) +"mH" = ( +/obj/structure/railing/corner/wood, +/turf/open/water/beach, +/area/overmap_encounter/planetoid/beachplanet/explored) +"nf" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"ng" = ( +/obj/effect/turf_decal/sand/plating, +/obj/effect/turf_decal/weather/sand{ + dir = 4 + }, +/obj/structure/fence{ + dir = 4 + }, +/turf/open/floor/plating, +/area/overmap_encounter/planetoid/beachplanet/explored) +"nw" = ( +/obj/structure/railing/wood{ + dir = 4 + }, +/obj/structure/railing/wood{ + dir = 8 + }, +/turf/open/water/beach, +/area/overmap_encounter/planetoid/beachplanet/explored) +"nD" = ( +/obj/structure/flora/ausbushes/genericbush, +/turf/open/floor/plating/grass/beach/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"nT" = ( +/obj/effect/turf_decal/sand/plating, +/obj/effect/turf_decal/weather/sand{ + dir = 4 + }, +/obj/effect/turf_decal/weather/sand, +/turf/open/floor/plating, +/area/overmap_encounter/planetoid/beachplanet/explored) +"og" = ( +/obj/structure/flora/tree/palm{ + icon_state = "palm2" + }, +/obj/structure/destructible/tribal_torch/lit, +/turf/open/floor/plating/asteroid/sand/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"op" = ( +/obj/structure/flora/junglebush/large, +/turf/open/floor/plating/asteroid/sand/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"oJ" = ( +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 1 + }, +/turf/open/floor/concrete{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"oM" = ( +/obj/structure/fence/door/opened, +/turf/open/floor/concrete{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"pm" = ( +/obj/structure/chair/stool/bar{ + dir = 8 + }, +/obj/effect/turf_decal/weather/sand{ + dir = 5 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"pq" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 6 + }, +/obj/effect/turf_decal/weather/sand{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust{ + layer = 2.01 + }, +/obj/structure/fluff/beach_umbrella{ + pixel_x = -18; + pixel_y = 13 + }, +/turf/open/floor/carpet/blue{ + baseturfs = /turf/open/floor/plating/beach/sand + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"pr" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"pA" = ( +/obj/effect/turf_decal/weather/sand, +/turf/open/water/beach, +/area/overmap_encounter/planetoid/beachplanet/explored) +"pH" = ( +/obj/effect/turf_decal/weather/sand/corner{ + dir = 8 + }, +/turf/open/water/beach, +/area/overmap_encounter/planetoid/beachplanet/explored) +"pI" = ( +/obj/effect/turf_decal/weather/sand, +/obj/structure/railing/wood{ + dir = 8 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"pM" = ( +/obj/structure/flora/tree/jungle, +/turf/open/floor/plating/grass/beach, +/area/overmap_encounter/planetoid/beachplanet/explored) +"pY" = ( +/obj/item/tank/internals/plasma{ + pixel_x = -6; + pixel_y = 25 + }, +/turf/open/floor/plating/grass/beach/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"qe" = ( +/obj/effect/turf_decal/sand/plating, +/obj/structure/fence{ + dir = 4 + }, +/turf/open/floor/plating, +/area/overmap_encounter/planetoid/beachplanet/explored) +"qi" = ( +/obj/effect/turf_decal/sand/plating, +/obj/effect/turf_decal/weather/sand{ + dir = 1 + }, +/turf/open/floor/plating, +/area/overmap_encounter/planetoid/beachplanet/explored) +"ql" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"qp" = ( +/obj/machinery/door/airlock/wood{ + name = "Villa 2" + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort/villa) +"qS" = ( +/obj/structure/table, +/obj/item/newspaper, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"qY" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/obj/structure/chair/plastic{ + dir = 1 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"rg" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/sand/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"rj" = ( +/obj/structure/railing/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"rk" = ( +/obj/structure/destructible/tribal_torch/lit, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"rM" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"rS" = ( +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 4 + }, +/turf/open/floor/concrete{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"rV" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 5 + }, +/turf/open/water/beach, +/area/overmap_encounter/planetoid/beachplanet/explored) +"rZ" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 5 + }, +/turf/open/floor/concrete{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"sz" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"sI" = ( +/obj/structure/toilet{ + pixel_y = 13 + }, +/obj/structure/curtain/cloth, +/turf/open/floor/plasteel, +/area/ruin/beach/float_resort/villa) +"sW" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/sand/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"tj" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"tA" = ( +/obj/structure/railing/corner/wood{ + dir = 8 + }, +/turf/open/water/beach, +/area/overmap_encounter/planetoid/beachplanet/explored) +"tD" = ( +/obj/machinery/door/airlock/wood{ + name = "Villa 3" + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort/villa) +"uc" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/item/organ/heart/cybernetic/ipc, +/obj/item/instrument/piano_synth, +/obj/item/reagent_containers/syringe/contraband/space_drugs, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort/villa) +"uk" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 6 + }, +/turf/open/floor/plating/dirt{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"uV" = ( +/obj/structure/chair/plastic, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"va" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"vs" = ( +/obj/effect/turf_decal/weather/sand/corner{ + dir = 1 + }, +/obj/effect/turf_decal/weather/dirt/corner, +/turf/open/floor/concrete{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"vN" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/destructible/tribal_torch/lit, +/turf/open/floor/plating/asteroid/sand/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"wa" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = -13 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort/villa) +"we" = ( +/obj/structure/flora/ausbushes/fullgrass, +/obj/structure/flora/ausbushes/genericbush, +/turf/open/floor/plating/grass/beach/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"wf" = ( +/obj/effect/turf_decal/sand/plating, +/obj/effect/turf_decal/weather/sand, +/turf/open/floor/plating, +/area/overmap_encounter/planetoid/beachplanet/explored) +"wn" = ( +/obj/structure/chair/comfy/black, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort/villa) +"wp" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/weather/sand{ + dir = 1 + }, +/obj/item/candle, +/obj/effect/spawner/lootdrop/donut, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"wx" = ( +/obj/structure/flora/ausbushes/grassybush, +/turf/open/floor/plating/grass/beach/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"wE" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/item/storage/bag/money/vault, +/obj/item/reagent_containers/glass/mortar, +/obj/item/pestle, +/obj/item/clothing/suit/cardborg, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort/villa) +"xr" = ( +/obj/structure/chair/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"xO" = ( +/obj/structure/fence/cut, +/turf/open/floor/concrete{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"xT" = ( +/obj/structure/railing/wood{ + dir = 9 + }, +/turf/open/water/beach, +/area/overmap_encounter/planetoid/beachplanet/explored) +"xZ" = ( +/obj/structure/chair/stool/bar{ + dir = 4 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"yt" = ( +/obj/machinery/light/small/directional/west, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort/villa) +"yw" = ( +/obj/machinery/light/small/directional/east, +/obj/structure/bed/double, +/obj/item/bedsheet/double/green, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort/villa) +"yW" = ( +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating, +/area/overmap_encounter/planetoid/beachplanet/explored) +"zf" = ( +/obj/item/reagent_containers/glass/bucket/wooden{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/plating/asteroid/sand/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"zj" = ( +/obj/structure/railing/wood{ + dir = 8 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"zO" = ( +/obj/structure/chair/stool/bar{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood, +/obj/structure/railing/wood{ + dir = 4 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Aa" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = 13; + pixel_y = 6 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort/villa) +"Ac" = ( +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 8 + }, +/turf/open/floor/concrete{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Al" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/structure/destructible/tribal_torch/lit, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"As" = ( +/obj/item/fishing_rod, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort/villa) +"Ax" = ( +/obj/structure/table/wood, +/obj/structure/curtain/cloth, +/obj/item/reagent_containers/food/snacks/hotcrossbun, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort/villa) +"Ay" = ( +/obj/structure/fence/cut, +/obj/effect/turf_decal/weather/sand/corner{ + dir = 1 + }, +/turf/open/floor/concrete{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"AF" = ( +/obj/structure/railing/wood{ + dir = 4 + }, +/turf/open/water/beach, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Ba" = ( +/obj/effect/turf_decal/sand/plating, +/obj/effect/turf_decal/weather/sand{ + dir = 4 + }, +/turf/open/floor/plating, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Bb" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 10 + }, +/turf/open/floor/plating/dirt{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Bw" = ( +/obj/structure/table/wood, +/obj/structure/curtain/cloth, +/obj/machinery/microwave{ + pixel_x = 3; + pixel_y = 6 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort/villa) +"BG" = ( +/obj/machinery/door/airlock/wood{ + name = "Villa 1" + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort/villa) +"BH" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = -13 + }, +/obj/item/stock_parts/matter_bin{ + pixel_x = 9; + pixel_y = 6 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort/villa) +"BV" = ( +/obj/structure/railing/wood{ + dir = 5 + }, +/obj/structure/flora/ausbushes/sparsegrass, +/turf/open/floor/plating/asteroid/sand/lit, +/area/ruin/beach/float_resort) +"Ch" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 4 + }, +/turf/open/water/beach, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Cn" = ( +/obj/structure/chair/plastic{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/sand/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Cq" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood, +/obj/item/candle, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Cs" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 4 + }, +/turf/open/floor/plating/dirt{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"CB" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/item/clothing/head/bearpelt, +/obj/item/stock_parts/scanning_module/adv, +/obj/item/reagent_containers/food/drinks/bottle/rum{ + pixel_x = 4; + pixel_y = 7 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort/villa) +"CV" = ( +/obj/structure/curtain/cloth, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort/villa) +"Dc" = ( +/obj/structure/fence{ + dir = 4 + }, +/turf/open/floor/concrete{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Df" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 9 + }, +/turf/open/floor/concrete{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Dg" = ( +/obj/structure/railing/wood{ + dir = 6 + }, +/turf/open/water/beach, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Di" = ( +/obj/structure/railing/wood, +/obj/structure/railing/wood{ + dir = 4 + }, +/turf/open/water/beach, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Dr" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 6 + }, +/turf/open/water/beach, +/area/overmap_encounter/planetoid/beachplanet/explored) +"DI" = ( +/obj/effect/turf_decal/weather/dirt, +/turf/open/floor/concrete{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"DQ" = ( +/obj/effect/turf_decal/weather/sand/corner, +/turf/open/floor/concrete{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"DW" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/railing/wood{ + dir = 1 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"Ee" = ( +/obj/structure/flora/ausbushes/fullgrass, +/turf/open/floor/plating/grass/beach, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Ey" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks/beer/fullupgrade{ + dir = 4 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"ED" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 9 + }, +/obj/structure/railing/wood{ + dir = 4 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Fb" = ( +/obj/docking_port/stationary{ + dir = 2; + dwidth = 4; + height = 4; + width = 9 + }, +/turf/open/floor/concrete{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Fk" = ( +/obj/structure/chair/sofa/right{ + dir = 4 + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"Fs" = ( +/obj/effect/spawner/structure/window, +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating, +/area/ruin/beach/float_resort) +"Fu" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/turf/open/floor/plating/asteroid/sand/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"FB" = ( +/obj/effect/turf_decal/sand/plating, +/obj/effect/turf_decal/weather/sand{ + dir = 8 + }, +/obj/effect/turf_decal/weather/sand{ + dir = 1 + }, +/turf/open/floor/plating, +/area/overmap_encounter/planetoid/beachplanet/explored) +"FH" = ( +/obj/structure/flora/junglebush/large, +/turf/open/floor/plating/grass/beach/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Ga" = ( +/obj/effect/turf_decal/weather/sand/corner{ + dir = 1 + }, +/obj/structure/railing/wood{ + dir = 4 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Gb" = ( +/obj/item/tank/internals/plasma, +/turf/open/floor/plating/grass/beach/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Gv" = ( +/obj/effect/turf_decal/sand/plating, +/obj/item/toy/beach_ball, +/turf/open/floor/plating, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Gy" = ( +/obj/structure/sink/kitchen{ + pixel_y = 16 + }, +/obj/item/reagent_containers/food/drinks/bottle/wine{ + pixel_x = -14; + pixel_y = 14 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"GF" = ( +/obj/structure/curtain/cloth, +/obj/structure/table/wood, +/obj/item/binoculars, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort/villa) +"GG" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 1 + }, +/turf/open/floor/concrete{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"GS" = ( +/obj/structure/curtain/cloth, +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/mug/tea, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort/villa) +"Ho" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"HO" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/turf/open/floor/concrete{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"HQ" = ( +/obj/structure/flora/ausbushes/genericbush, +/turf/open/floor/plating/dirt/dark{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"HS" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/turf/open/floor/concrete{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Ij" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/shaker{ + pixel_x = -6; + pixel_y = 11 + }, +/obj/item/reagent_containers/glass/rag{ + pixel_x = 9; + pixel_y = 22 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"Io" = ( +/obj/structure/chair/sofa/left{ + dir = 4 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"Iz" = ( +/obj/structure/table/wood, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"Ja" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/condiment/ketchup{ + pixel_y = 18 + }, +/obj/item/reagent_containers/food/condiment/mayonnaise{ + pixel_x = -8; + pixel_y = 16 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"Je" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 4 + }, +/turf/closed/wall/concrete, +/area/overmap_encounter/planetoid/beachplanet/explored) +"JB" = ( +/obj/machinery/door/airlock/wood{ + name = "Reception" + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"JC" = ( +/obj/structure/railing/wood{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/drinkingglass/filled/cola{ + name = "Ocean Cola"; + pixel_y = 16 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass/filled/cola{ + name = "Ocean Cola"; + pixel_x = 8; + pixel_y = 16 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass/filled/cola{ + name = "Ocean Cola"; + pixel_x = 4; + pixel_y = 13 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass/filled/cola{ + name = "Ocean Cola"; + pixel_x = -4; + pixel_y = 13 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"JQ" = ( +/obj/structure/flora/ausbushes/grassybush, +/turf/open/floor/plating/asteroid/sand/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"JX" = ( +/obj/structure/chair/stool/bar{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/railing/wood{ + dir = 8 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Ka" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 9 + }, +/obj/effect/turf_decal/weather/sand{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust{ + layer = 2.01 + }, +/turf/open/floor/carpet/blue{ + baseturfs = /turf/open/floor/plating/beach/sand + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Kv" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 9 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/concrete{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"KE" = ( +/obj/structure/railing/wood{ + dir = 8 + }, +/obj/effect/turf_decal/weather/sand, +/turf/open/water/beach, +/area/overmap_encounter/planetoid/beachplanet/explored) +"KO" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 6 + }, +/obj/structure/destructible/tribal_torch/lit, +/turf/open/floor/plating/dirt{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"KQ" = ( +/obj/item/reagent_containers/food/drinks/bottle/whiskey{ + pixel_x = 10; + pixel_y = -4 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort/villa) +"Ld" = ( +/obj/effect/turf_decal/weather/sand/corner{ + dir = 4 + }, +/obj/effect/turf_decal/weather/sand/corner{ + dir = 8 + }, +/turf/open/floor/concrete{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"LC" = ( +/obj/effect/turf_decal/sand/plating, +/obj/effect/turf_decal/weather/sand{ + dir = 4 + }, +/obj/effect/turf_decal/weather/sand{ + dir = 1 + }, +/turf/open/floor/plating, +/area/overmap_encounter/planetoid/beachplanet/explored) +"LJ" = ( +/obj/structure/railing/wood{ + dir = 1 + }, +/obj/structure/railing/wood{ + dir = 8 + }, +/obj/structure/railing/wood{ + dir = 4 + }, +/turf/open/water/beach, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Md" = ( +/obj/structure/toilet{ + dir = 1 + }, +/obj/structure/curtain/cloth, +/turf/open/floor/plasteel, +/area/ruin/beach/float_resort/villa) +"Mn" = ( +/obj/structure/railing/wood{ + dir = 1 + }, +/turf/open/water/beach, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Mw" = ( +/obj/structure/railing/wood{ + dir = 8 + }, +/obj/structure/destructible/tribal_torch/lit, +/turf/open/floor/plating/asteroid/sand/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"My" = ( +/obj/structure/chair/stool/bar{ + dir = 1 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"Mz" = ( +/obj/structure/railing/wood{ + dir = 4 + }, +/obj/structure/chair/stool/bar{ + dir = 1 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"ML" = ( +/obj/effect/turf_decal/weather/sand/corner{ + dir = 4 + }, +/turf/open/floor/concrete{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"MV" = ( +/obj/effect/turf_decal/weather/sand/corner{ + dir = 8 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"NC" = ( +/turf/open/floor/wood{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"ND" = ( +/obj/effect/turf_decal/weather/sand/corner, +/turf/open/water/beach, +/area/overmap_encounter/planetoid/beachplanet/explored) +"NN" = ( +/obj/structure/railing/wood{ + dir = 8 + }, +/obj/structure/flora/ausbushes/grassybush, +/turf/open/floor/plating/asteroid/sand/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"NS" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 10 + }, +/obj/effect/turf_decal/weather/sand{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust{ + layer = 2.01 + }, +/turf/open/floor/carpet/cyan{ + baseturfs = /turf/open/floor/plating/beach/sand + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"NU" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 9 + }, +/obj/effect/turf_decal/weather/sand, +/obj/effect/decal/cleanable/dirt/dust{ + layer = 2.01 + }, +/turf/open/floor/carpet/orange{ + baseturfs = /turf/open/floor/plating/beach/sand + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"NV" = ( +/turf/closed/wall/mineral/wood/nonmetal, +/area/ruin/beach/float_resort/villa) +"Op" = ( +/obj/structure/table/wood, +/obj/item/candle, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"OE" = ( +/turf/open/floor/plating/grass/beach, +/area/overmap_encounter/planetoid/beachplanet/explored) +"OH" = ( +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort/villa) +"OL" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/structure/destructible/tribal_torch/lit, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"OT" = ( +/obj/structure/flora/ausbushes/ywflowers, +/turf/open/floor/plating/grass/beach/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Pc" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 9 + }, +/obj/effect/turf_decal/weather/sand{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust{ + layer = 2.01 + }, +/turf/open/floor/carpet/red, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Pe" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 6 + }, +/turf/open/floor/concrete{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Ph" = ( +/obj/structure/fence/cut, +/obj/effect/turf_decal/weather/sand/corner{ + dir = 4 + }, +/turf/open/floor/concrete{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Ps" = ( +/obj/structure/railing/wood{ + layer = 2.08 + }, +/turf/open/water/beach, +/area/overmap_encounter/planetoid/beachplanet/explored) +"PB" = ( +/obj/effect/turf_decal/weather/sand/corner{ + dir = 1 + }, +/turf/open/floor/concrete{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"PE" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/structure/chair/wood{ + dir = 8 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"PU" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 1 + }, +/turf/open/floor/concrete{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"PV" = ( +/obj/effect/turf_decal/weather/sand, +/turf/open/floor/plating/dirt{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Qj" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 9 + }, +/turf/open/floor/plating/dirt{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Qs" = ( +/obj/structure/flora/tree/jungle, +/turf/open/floor/plating/grass/beach/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Qx" = ( +/obj/structure/railing/wood{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/sand/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"QF" = ( +/obj/structure/railing/wood{ + dir = 9 + }, +/obj/structure/flora/ausbushes/sparsegrass, +/turf/open/floor/plating/asteroid/sand/lit, +/area/ruin/beach/float_resort) +"QH" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 8 + }, +/obj/structure/fence/cut, +/turf/open/floor/concrete{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"QS" = ( +/obj/structure/flora/tree/palm{ + icon_state = "palm2"; + pixel_x = -1 + }, +/obj/effect/overlay/coconut, +/turf/open/floor/plating/asteroid/sand/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"QV" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 10 + }, +/obj/structure/destructible/tribal_torch/lit, +/turf/open/floor/plating/dirt{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Rs" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 6 + }, +/obj/effect/turf_decal/weather/sand{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust{ + layer = 2.01 + }, +/obj/structure/fluff/beach_umbrella{ + pixel_x = -18; + pixel_y = 13 + }, +/turf/open/floor/carpet/red, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Rt" = ( +/turf/open/floor/plating/asteroid/sand/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"RF" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 8 + }, +/obj/effect/turf_decal/weather/sand{ + dir = 1 + }, +/turf/open/floor/plating/dirt{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"RR" = ( +/turf/closed/wall/mineral/wood/nonmetal, +/area/ruin/beach/float_resort) +"Sf" = ( +/obj/structure/railing/wood, +/turf/open/water/beach, +/area/overmap_encounter/planetoid/beachplanet/explored) +"SD" = ( +/obj/effect/turf_decal/sand/plating, +/obj/effect/turf_decal/weather/sand{ + dir = 8 + }, +/obj/structure/fence{ + dir = 4 + }, +/turf/open/floor/plating, +/area/overmap_encounter/planetoid/beachplanet/explored) +"SF" = ( +/obj/machinery/light/small/directional/east, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort/villa) +"SH" = ( +/obj/item/fishing_rod, +/turf/open/floor/plating/asteroid/sand/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Tc" = ( +/obj/structure/chair/stool/bar{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Td" = ( +/obj/structure/railing/wood{ + dir = 4 + }, +/obj/structure/chair/stool/bar{ + dir = 8 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"Tr" = ( +/turf/open/floor/concrete{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"TF" = ( +/obj/machinery/grill, +/turf/open/floor/plating/asteroid/sand/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"TQ" = ( +/obj/structure/railing/wood{ + dir = 8 + }, +/turf/open/water/beach, +/area/overmap_encounter/planetoid/beachplanet/explored) +"TU" = ( +/obj/structure/destructible/tribal_torch/lit, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"TZ" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 5 + }, +/turf/open/floor/plating/dirt{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"UA" = ( +/obj/effect/turf_decal/sand/plating, +/obj/effect/turf_decal/weather/sand{ + dir = 8 + }, +/turf/open/floor/plating, +/area/overmap_encounter/planetoid/beachplanet/explored) +"UV" = ( +/obj/structure/railing/wood{ + dir = 8 + }, +/obj/effect/turf_decal/weather/sand/corner, +/turf/open/water/beach, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Va" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/chair/wood{ + dir = 8 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"Vb" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"Vl" = ( +/turf/open/floor/plating/grass/beach/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Vr" = ( +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"Vz" = ( +/turf/open/floor/plating/dirt/dark{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"VD" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 4 + }, +/turf/open/floor/concrete{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"VM" = ( +/obj/item/shovel/spade, +/turf/open/floor/plating/asteroid/sand/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"VY" = ( +/obj/item/reagent_containers/glass/bucket/wooden{ + pixel_y = 8 + }, +/turf/open/floor/plating/asteroid/sand/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Wj" = ( +/obj/structure/table/wood, +/obj/item/paper/pamphlet, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"Wt" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/weather/sand, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"Wv" = ( +/obj/structure/railing/corner/wood{ + dir = 1 + }, +/obj/effect/turf_decal/weather/sand{ + dir = 6 + }, +/turf/open/water/beach, +/area/overmap_encounter/planetoid/beachplanet/explored) +"WV" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/turf/open/floor/plating/grass/beach/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Xf" = ( +/obj/structure/table/wood, +/obj/item/stock_parts/manipulator, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"Xm" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 8 + }, +/obj/structure/destructible/tribal_torch/lit, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"Xo" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"Yr" = ( +/obj/structure/destructible/tribal_torch/lit, +/turf/open/floor/plating/asteroid/sand/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"YM" = ( +/obj/structure/fluff/beach_umbrella{ + pixel_x = 13 + }, +/turf/open/floor/plating/asteroid/sand/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"YP" = ( +/turf/template_noop, +/area/template_noop) +"YQ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/obj/structure/railing/wood{ + dir = 1 + }, +/turf/open/floor/wood{ + light_range = 2 + }, +/area/ruin/beach/float_resort) +"Zj" = ( +/obj/structure/fence/cut, +/obj/effect/turf_decal/weather/sand{ + dir = 8 + }, +/turf/open/floor/concrete{ + light_range = 2 + }, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Zp" = ( +/obj/structure/chair/plastic{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/sand/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"Zw" = ( +/obj/structure/flora/tree/palm{ + icon_state = "palm2" + }, +/obj/effect/overlay/coconut, +/turf/open/floor/plating/asteroid/sand/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) +"ZW" = ( +/obj/structure/railing/wood{ + dir = 4 + }, +/obj/structure/destructible/tribal_torch/lit, +/turf/open/floor/plating/asteroid/sand/lit, +/area/overmap_encounter/planetoid/beachplanet/explored) + +(1,1,1) = {" +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +"} +(2,1,1) = {" +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +"} +(3,1,1) = {" +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +"} +(4,1,1) = {" +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +kp +kp +kp +kp +kp +kp +kp +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +"} +(5,1,1) = {" +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +kp +kp +YP +YP +YP +YP +YP +YP +"} +(6,1,1) = {" +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +kp +kp +kp +kp +kp +kp +kp +kp +mH +AF +ki +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +kp +kp +kp +kp +kp +kp +kp +YP +YP +YP +YP +"} +(7,1,1) = {" +YP +YP +YP +YP +YP +YP +YP +YP +YP +kp +kp +kp +kp +kp +kp +kp +kp +kp +Sf +TU +Mn +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +YP +YP +YP +YP +YP +YP +YP +YP +kp +kp +kp +kp +kp +kp +kp +kp +kp +YP +YP +YP +"} +(8,1,1) = {" +YP +YP +YP +YP +YP +YP +YP +YP +kp +kp +kp +NV +NV +NV +NV +NV +NV +ki +Sf +Vr +Mn +kp +NV +NV +NV +NV +NV +NV +ki +kp +kp +kp +kp +YP +YP +YP +YP +YP +YP +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +YP +YP +YP +"} +(9,1,1) = {" +YP +YP +YP +YP +YP +YP +YP +kp +kp +kp +kp +gm +cu +dx +kW +NV +TU +lP +Dg +Vr +Mn +kp +NV +sI +BH +yt +CV +OH +Mn +kp +kp +kp +kp +kp +kp +YP +YP +YP +kp +kp +kp +kp +kp +kp +kp +kp +ND +Ch +Ch +pH +YP +YP +"} +(10,1,1) = {" +YP +YP +YP +YP +YP +YP +kp +kp +kp +kp +kp +gr +OH +OH +OH +qp +Vr +Vr +Vr +Vr +Mn +mH +NV +NV +NV +OH +CV +ct +Mn +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +ND +Ch +Ch +Ch +Dr +Rt +Rt +rV +YP +YP +"} +(11,1,1) = {" +YP +YP +YP +YP +YP +kp +kp +kp +kp +kp +mH +NV +NV +OH +dZ +NV +Vr +xT +dl +Vr +lP +Dg +Vr +NV +wn +OH +NV +NV +mj +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +ND +Dr +Rt +Rt +Rt +Rt +Rt +NS +Rt +YP +YP +"} +(12,1,1) = {" +YP +YP +YP +YP +YP +kp +kp +kp +kp +kp +Sf +hJ +CV +OH +NV +NV +NV +mj +Sf +Vr +Vr +Vr +Vr +BG +OH +OH +OH +GF +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +ND +Ch +Ch +Dr +Rt +Rt +Cn +Rt +Cn +am +bO +Rt +YP +YP +"} +(13,1,1) = {" +YP +YP +YP +YP +YP +kp +kp +kp +kp +kp +Sf +KQ +CV +SF +Aa +Md +NV +kp +Sf +Vr +xT +dl +TU +NV +CB +yw +cu +GS +kp +kp +kp +kp +kp +kp +kp +kp +ND +Ch +Dr +Rt +Rt +Rt +Rt +Rt +Rt +hF +Rt +Fu +Rt +Rt +YP +YP +"} +(14,1,1) = {" +YP +YP +YP +YP +kp +kp +kp +kp +kp +kp +tA +NV +NV +NV +NV +NV +NV +kp +Sf +Vr +Mn +tA +NV +NV +NV +NV +NV +NV +kp +kp +kp +kp +kp +kp +kp +kp +pA +Rt +Rt +Rt +Zp +NU +JQ +FB +UA +SD +UA +kG +Rt +Rt +Rt +YP +"} +(15,1,1) = {" +YP +YP +YP +YP +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +Sf +Vr +Mn +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +ND +Dr +Rt +Zp +VY +QS +jh +Rt +qi +Gv +qe +yW +wf +Rt +Rt +Rt +YP +"} +(16,1,1) = {" +YP +YP +YP +YP +kp +kp +kp +kp +mH +AF +AF +AF +ki +kp +kp +kp +kp +kp +Sf +Vr +Mn +kp +kp +kp +kp +kp +kp +kp +kp +kp +mH +AF +ki +kp +kp +pA +SH +Rt +Rt +vN +rg +vN +Rt +LC +Ba +ng +Ba +nT +Rt +Rt +Rt +YP +"} +(17,1,1) = {" +YP +YP +YP +kp +kp +kp +kp +mH +Dg +dJ +ef +Al +lP +AF +AF +AF +AF +AF +Dg +Vr +lP +AF +AF +AF +AF +AF +AF +AF +AF +AF +Dg +Xm +RR +RR +RR +RR +RR +JQ +Rt +JX +zj +pI +Fu +Rt +YM +og +Rt +Rt +Fu +Rt +Rt +YP +"} +(18,1,1) = {" +YP +YP +YP +kp +kp +kp +kp +Sf +cL +tj +eZ +iZ +Vb +jQ +jQ +jQ +ql +Vb +jQ +va +jQ +ql +Vb +jQ +jQ +nf +ql +Vb +jQ +nf +nf +Xo +RR +Io +Fk +qS +Fs +QV +Rt +wp +NC +Tc +Rt +Rt +Zp +Zp +VM +Rt +Rt +Rt +YP +YP +"} +(19,1,1) = {" +YP +YP +YP +kp +kp +kp +kp +Sf +rk +Vr +fq +Vr +lb +mo +nw +nw +rj +sz +mo +nw +nw +rj +sz +mo +nw +nw +DW +sz +LJ +nw +nw +YQ +gi +Vr +Vr +Ho +RR +PV +Rt +pm +MV +Cq +Rt +Rt +Rt +Rt +Rt +Zp +Vl +Rt +YP +YP +"} +(20,1,1) = {" +YP +YP +kp +kp +kp +kp +kp +Sf +xr +pr +Vr +kh +ln +nf +ls +nf +rM +ln +nf +nf +nf +rM +ln +nf +nf +nf +rM +ln +nf +nf +nf +Xo +RR +uV +Vr +Vr +JB +PV +Rt +ED +Ga +zO +Rt +Vl +Rt +Rt +nD +kw +Rt +Rt +YP +YP +"} +(21,1,1) = {" +YP +YP +kp +kp +kp +kp +kp +tA +dl +PE +Va +OL +xT +dl +Vr +xT +TQ +TQ +TQ +TQ +TQ +TQ +TQ +TQ +TQ +TQ +TQ +TQ +TQ +TQ +dl +cs +Fs +uV +Vr +Vr +RR +PV +Rt +bA +sW +bA +Rt +Rt +op +Vl +JQ +Fu +Rt +YP +YP +YP +"} +(22,1,1) = {" +YP +kp +kp +kp +kp +kp +kp +kp +tA +TQ +TQ +TQ +mj +Sf +Vr +Mn +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +Sf +qY +Fs +cA +Wj +Vr +Fs +PV +Rt +Rt +hm +nD +Rt +Rt +wx +Vl +Yr +Vl +Vl +YP +YP +YP +"} +(23,1,1) = {" +YP +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +Sf +Vr +Mn +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +Sf +qY +Fs +Xf +bs +Vr +Fs +KO +Rt +Fu +kw +Rt +Rt +OT +Vl +nD +Vl +Vl +OT +YP +YP +YP +"} +(24,1,1) = {" +YP +kp +kp +kp +kp +kp +NV +NV +NV +NV +NV +NV +ki +Sf +Vr +Mn +kp +NV +NV +NV +NV +NV +NV +ki +kp +kp +kp +kp +kp +kp +Sf +cF +RR +RR +RR +RR +RR +op +Rt +Kv +ed +QH +QH +xO +xO +Tr +Vl +gQ +pM +YP +YP +YP +"} +(25,1,1) = {" +YP +kp +kp +kp +kp +kp +ar +cu +dx +uc +NV +TU +lP +Dg +Vr +Mn +kp +NV +sI +wa +yt +CV +As +Mn +kp +kp +kp +kp +kp +kp +tA +UV +Wv +Rt +Rt +Fu +Rt +Rt +Rt +PU +Dc +Tr +Tr +DQ +ix +Tr +Vl +OE +Ee +YP +YP +YP +"} +(26,1,1) = {" +YP +kp +kp +kp +kp +kp +br +OH +OH +OH +ft +Vr +Vr +Vr +Vr +Mn +mH +NV +NV +NV +OH +CV +ct +Mn +kp +kp +kp +kp +kp +kp +kp +Dr +Rt +Ka +pq +Rt +Rt +Rt +Yr +GG +Dc +Tr +Tr +il +PU +Tr +OT +OE +Vz +Vl +YP +YP +"} +(27,1,1) = {" +YP +kp +kp +kp +kp +mH +NV +NV +OH +dZ +NV +Vr +xT +dl +Vr +lP +Dg +Vr +NV +wn +OH +NV +NV +mj +kp +mH +AF +AF +AF +AF +eD +ZW +Rt +VM +Zw +Cn +Rt +Fu +Rt +PU +Dc +Tr +Tr +il +PU +Tr +wx +Vz +Vz +Vl +YP +YP +"} +(28,1,1) = {" +YP +kp +kp +kp +kp +Sf +OH +CV +OH +NV +NV +NV +mj +Sf +Vr +Vr +Vr +Vr +tD +OH +OH +OH +Ax +kp +kp +Sf +Ey +Ij +My +Vr +Vr +Wt +Rt +bm +Rt +RF +Bb +Rt +Rt +PU +oM +Fb +DQ +Ld +vs +Ac +Vl +OE +Vz +Vz +YP +YP +"} +(29,1,1) = {" +YP +kp +kp +kp +kp +Sf +ct +CV +SF +Aa +Md +NV +kp +Sf +Vr +xT +dl +TU +NV +wE +yw +cu +Bw +kp +kp +Ps +Gy +Iz +My +Vr +xZ +QF +Rt +JQ +Qj +fz +PV +ca +Yr +PU +Dc +Tr +ML +PB +DI +HO +Vl +OE +Vz +Vz +Vl +YP +"} +(30,1,1) = {" +YP +kp +kp +kp +kp +tA +NV +NV +NV +NV +NV +NV +kp +Sf +Vr +Mn +tA +NV +NV +NV +NV +NV +NV +kp +kp +Sf +Vr +Ja +My +Vr +Op +iW +Rt +bm +TZ +Cs +uk +Rt +Vl +Tr +Dc +Tr +Tr +Tr +rS +HS +Vz +OE +OE +Vz +Vl +YP +"} +(31,1,1) = {" +YP +YP +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +Sf +Vr +lP +AF +AF +AF +AF +AF +AF +AF +AF +AF +Di +Vr +JC +Mz +Vr +Td +BV +Rt +Rt +Fu +Zp +Zp +Rt +OT +oJ +Dc +DQ +VD +VD +ix +DI +HQ +Vl +wx +Vz +OT +YP +"} +(32,1,1) = {" +YP +YP +YP +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +Sf +Vr +Vr +Vr +Vr +Vr +Vr +Vr +Vr +Vr +Vr +Vr +Vr +Vr +Vr +Vr +Vr +Vr +Wt +Rt +zf +Rt +kw +Vl +Vl +Fu +rZ +Dc +il +Rt +Df +PB +il +Qs +Vl +Vl +Vl +Vl +YP +"} +(33,1,1) = {" +YP +YP +YP +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +Sf +Vr +xT +TQ +TQ +TQ +TQ +TQ +TQ +TQ +TQ +TQ +TQ +TQ +KE +NN +Qx +Qx +Mw +Rt +Rt +Vl +Qs +OT +Vl +Vl +op +Je +Ph +Zj +Ay +hi +Pe +Fu +iX +Vl +Qs +Vl +YP +"} +(34,1,1) = {" +YP +YP +YP +YP +kp +kp +kp +kp +kp +kp +kp +kp +kp +Sf +TU +Mn +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +ND +Dr +Rt +QS +TF +Rt +Rt +op +Vl +wx +Vl +JQ +Vl +Vl +Gb +pY +Vl +nD +Vl +Rt +Rt +OT +Vl +WV +Vl +YP +"} +(35,1,1) = {" +YP +YP +YP +YP +YP +kp +kp +kp +kp +kp +kp +kp +kp +tA +TQ +mj +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +pA +Rt +Pc +Rs +Rt +Fu +Rt +Vl +OT +Vl +Vl +Vl +we +Vl +Vl +Qs +iS +Vl +cg +nD +Vl +OT +nD +Vl +FH +YP +"} +(36,1,1) = {" +YP +YP +YP +YP +YP +YP +YP +YP +YP +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +kp +YP +YP +YP +YP +YP +Rt +Rt +Rt +Rt +YP +YP +YP +YP +YP +YP +YP +Vl +Vl +Vl +Vl +Vl +Vl +Qs +Vl +Vl +Vz +Vz +Vl +YP +"} +(37,1,1) = {" +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +kp +kp +kp +kp +kp +kp +kp +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +Vl +Vl +Vl +nD +Vl +Vz +YP +YP +"} +(38,1,1) = {" +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +YP +"} diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm index 5b85b39404d3..6442425441ef 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm @@ -83,9 +83,6 @@ /area/ruin/unpowered/corprejectengineering) "cN" = ( /obj/structure/safe/floor, -/obj/item/stack/sheet/capitalisium{ - amount = 10 - }, /obj/item/hand_tele, /obj/item/stack/sheet/mineral/adamantine, /obj/item/stack/sheet/mineral/adamantine, diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm index 2dd6c4cbea84..661098d293d2 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm @@ -1456,32 +1456,34 @@ /area/ruin) "dA" = ( /obj/effect/turf_decal/trimline/transparent/neutral/filled/line, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 10 - }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 1 }, +/obj/effect/turf_decal/weather/snow{ + dir = 10 + }, /turf/open/floor/plasteel/dark{ initial_gas_mix = "ICEMOON_ATMOS" }, /area/ruin) "dB" = ( /obj/effect/turf_decal/trimline/transparent/neutral/filled/line, -/obj/effect/turf_decal/weather/snow/corner, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 5 }, +/obj/effect/turf_decal/weather/snow, /turf/open/floor/plasteel/dark{ initial_gas_mix = "ICEMOON_ATMOS" }, /area/ruin) "dC" = ( /obj/effect/turf_decal/trimline/transparent/neutral/filled/line, -/obj/effect/turf_decal/weather/snow/corner, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 8 }, +/obj/effect/turf_decal/weather/snow{ + dir = 6 + }, /turf/open/floor/plasteel/dark{ initial_gas_mix = "ICEMOON_ATMOS" }, diff --git a/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm b/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm new file mode 100644 index 000000000000..cca97a317ce2 --- /dev/null +++ b/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm @@ -0,0 +1,7124 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/obj/effect/turf_decal/industrial/traffic, +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/rust, +/area/ruin/jungle/cavecrew/cargo) +"ad" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "5-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/ruin/jungle/cavecrew/hallway) +"ae" = ( +/obj/structure/table/reinforced, +/obj/item/storage/backpack/duffelbag/syndie/c4{ + pixel_y = 5; + pixel_x = 2 + }, +/obj/item/crowbar/power{ + pixel_y = -4 + }, +/obj/effect/turf_decal/industrial/fire{ + dir = 5 + }, +/obj/item/ammo_casing/caseless/rocket{ + pixel_x = -6 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/jungle/cavecrew/security) +"af" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 2; + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium, +/area/ruin/jungle/cavecrew/security) +"ag" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/structure/closet/secure_closet/engineering_welding{ + req_access = null; + anchored = 1 + }, +/obj/structure/railing{ + dir = 4; + layer = 4.1 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/jungle/cavecrew/engineering) +"ah" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/ruin/jungle/cavecrew/hallway) +"am" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 5; + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium, +/area/ruin/jungle/cavecrew/security) +"aw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-9" + }, +/turf/open/floor/plasteel, +/area/ruin/jungle/cavecrew/hallway) +"aI" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "6-8" + }, +/turf/open/floor/plating/dirt/old, +/area/ruin/jungle/cavecrew/cargo) +"aK" = ( +/obj/structure/table/wood, +/obj/item/trash/syndi_cakes{ + pixel_x = -4; + pixel_y = 9 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/ruin/jungle/cavecrew/hallway) +"aL" = ( +/obj/machinery/door/airlock/grunge{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ruin/jungle/cavecrew/hallway) +"aM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-6" + }, +/turf/open/floor/plasteel, +/area/ruin/jungle/cavecrew/hallway) +"aO" = ( +/obj/structure/destructible/tribal_torch/lit{ + pixel_x = -11; + pixel_y = 19 + }, +/turf/open/floor/plating/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"aQ" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"aY" = ( +/obj/structure/falsewall/plastitanium, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ruin/jungle/cavecrew/dormitories) +"aZ" = ( +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ruin/jungle/cavecrew/cargo) +"bb" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/ruin/powered) +"bh" = ( +/obj/machinery/computer/camera_advanced{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/jungle/cavecrew/bridge) +"bp" = ( +/turf/closed/wall/r_wall/yesdiag, +/area/ruin/powered) +"bG" = ( +/obj/structure/spacevine, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/cave/explored) +"bH" = ( +/obj/structure/bed, +/obj/item/bedsheet/dorms, +/obj/structure/curtain/cloth/grey, +/obj/effect/decal/cleanable/shreds, +/turf/open/floor/carpet/nanoweave/beige, +/area/ruin/jungle/cavecrew/dormitories) +"bJ" = ( +/obj/structure/flora/grass/jungle{ + pixel_x = -13; + pixel_y = -14 + }, +/turf/open/floor/plating/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"bK" = ( +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = 6; + pixel_y = 9 + }, +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = -4; + pixel_y = -6 + }, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"bU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/statue/sandstone/assistant, +/obj/machinery/light_switch{ + pixel_y = 21; + pixel_x = -10 + }, +/turf/open/floor/pod/light, +/area/ruin/jungle/cavecrew/hallway) +"ck" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/ruin/jungle/cavecrew/hallway) +"cx" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/machinery/door/airlock/hatch{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/jungle/cavecrew/dormitories) +"cK" = ( +/obj/item/stack/rods/ten{ + pixel_x = -3 + }, +/obj/item/stack/ore/salvage/scraptitanium/five{ + pixel_x = 11; + pixel_y = -10 + }, +/obj/item/stack/ore/salvage/scrapsilver/five{ + pixel_y = 8; + pixel_x = 8 + }, +/turf/open/floor/plating/dirt/jungle, +/area/ruin/powered) +"cU" = ( +/obj/machinery/power/port_gen/pacman/super, +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/button/door{ + id = "gut_engines"; + name = "Engine Shutters"; + pixel_y = -22; + dir = 1 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/storage) +"cV" = ( +/obj/structure/flora/ausbushes/reedbush{ + pixel_x = -11; + pixel_y = 13 + }, +/obj/structure/flora/ausbushes/reedbush{ + pixel_y = 5; + pixel_x = 10 + }, +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 4 + }, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"cX" = ( +/obj/structure/flora/junglebush/large{ + pixel_x = -7; + pixel_y = 8 + }, +/obj/structure/flora/grass/jungle/b{ + pixel_x = 10; + pixel_y = 9 + }, +/turf/open/floor/plating/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"cZ" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/ruin/jungle/cavecrew/security) +"dd" = ( +/obj/structure/flora/ausbushes/ppflowers, +/turf/open/floor/plating/dirt/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"dm" = ( +/obj/machinery/power/smes/engineering, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/industrial/radiation{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/jungle/cavecrew/engineering) +"ds" = ( +/obj/effect/turf_decal/techfloor/corner{ + dir = 1 + }, +/obj/structure/chair/plastic{ + dir = 4; + pixel_y = 9; + pixel_x = -7 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/jungle/cavecrew/security) +"dA" = ( +/turf/open/floor/plating/dirt/old, +/area/ruin/powered) +"dH" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 8; + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium, +/area/ruin/jungle/cavecrew/security) +"dI" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"dJ" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"dO" = ( +/obj/structure/table/wood, +/obj/item/storage/pill_bottle/dice{ + pixel_x = 5; + pixel_y = 3 + }, +/obj/item/reagent_containers/food/drinks/bottle/moonshine{ + pixel_x = -2; + pixel_y = 3 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/ruin/jungle/cavecrew/hallway) +"dQ" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/ruin/jungle/cavecrew/hallway) +"dT" = ( +/turf/open/floor/plating/rust, +/area/ruin/jungle/cavecrew/cargo) +"ed" = ( +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plating/rust, +/area/ruin/jungle/cavecrew/cargo) +"ef" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-10" + }, +/turf/open/floor/plasteel, +/area/ruin/jungle/cavecrew/hallway) +"ei" = ( +/obj/machinery/computer/communications{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/jungle/cavecrew/bridge) +"es" = ( +/turf/template_noop, +/area/template_noop) +"eu" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 4; + layer = 3.1 + }, +/turf/open/water/jungle, +/area/ruin/jungle/cavecrew/cargo) +"eD" = ( +/obj/machinery/mass_driver{ + dir = 1; + id = "gut_launchdoor" + }, +/turf/open/floor/engine/hull/reinforced/interior, +/area/ship/storage) +"eG" = ( +/obj/structure/flora/rock/pile/largejungle{ + pixel_y = -8; + pixel_x = -31 + }, +/turf/open/floor/plating/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"eO" = ( +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 4 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"eQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/plasma, +/obj/effect/decal/cleanable/glass{ + pixel_x = 11; + pixel_y = -11 + }, +/turf/open/floor/plating, +/area/ruin/jungle/cavecrew/dormitories) +"eS" = ( +/obj/machinery/porta_turret/syndicate/pod{ + dir = 9; + faction = list("frontiersman") + }, +/turf/closed/wall/mineral/plastitanium, +/area/ship/storage) +"eW" = ( +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/structure/closet/crate, +/obj/item/chair/plastic{ + pixel_y = 6 + }, +/obj/item/storage/pill_bottle/dice{ + pixel_x = 7 + }, +/obj/item/storage/wallet/random{ + pixel_y = -6 + }, +/obj/item/stack/telecrystal/five, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ruin/jungle/cavecrew/cargo) +"fg" = ( +/obj/structure/flora/rock/jungle{ + pixel_x = 3; + pixel_y = 7 + }, +/turf/open/floor/plating/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"fo" = ( +/obj/machinery/porta_turret/syndicate/pod{ + dir = 5; + faction = list("frontiersman") + }, +/turf/closed/wall/mineral/plastitanium, +/area/ship/storage) +"fs" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/storage) +"fv" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/closet/wall/red{ + dir = 1; + name = "Bartender's locker"; + pixel_y = -28 + }, +/obj/item/clothing/under/suit/waiter/syndicate, +/obj/item/clothing/suit/apron/purple_bartender, +/obj/item/reagent_containers/food/drinks/shaker{ + pixel_x = -9; + pixel_y = 2 + }, +/obj/item/storage/pill_bottle/happy{ + pixel_y = -9; + pixel_x = -8 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/ruin/jungle/cavecrew/hallway) +"fy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/thinplating/dark/corner, +/turf/open/floor/plasteel, +/area/ruin/jungle/cavecrew/hallway) +"fA" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/powered) +"fG" = ( +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = 6; + pixel_y = 11 + }, +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 8 + }, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"fI" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/drip{ + pixel_x = 19; + pixel_y = 9 + }, +/obj/machinery/light/small/broken/directional/south, +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/ruin/jungle/cavecrew/dormitories) +"fN" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/directional/west, +/turf/open/floor/plating, +/area/ruin/powered) +"fO" = ( +/turf/closed/wall/r_wall/syndicate/nodiagonal, +/area/ship/storage) +"fS" = ( +/turf/closed/mineral/random/jungle, +/area/ruin/powered) +"gd" = ( +/obj/effect/turf_decal/techfloor{ + dir = 6 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/bridge) +"gk" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 10; + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/directional/south, +/turf/open/floor/mineral/plastitanium, +/area/ruin/jungle/cavecrew/security) +"gm" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks/beer/fullupgrade{ + dir = 1 + }, +/turf/open/floor/plating/rust, +/area/ruin/jungle/cavecrew/hallway) +"gv" = ( +/obj/structure/flora/rock/pile/largejungle{ + pixel_y = -31; + pixel_x = -1 + }, +/turf/open/floor/plating/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"gF" = ( +/obj/structure/closet/cabinet, +/obj/item/clothing/under/rank/security/officer/frontier/officer, +/obj/item/clothing/suit/armor/frontier, +/obj/item/clothing/head/beret/sec/frontier/officer, +/turf/open/floor/carpet/red_gold, +/area/ruin/jungle/cavecrew/dormitories) +"gM" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/stairs{ + icon = 'icons/obj/stairs.dmi'; + dir = 8 + }, +/area/ruin/jungle/cavecrew/engineering) +"gQ" = ( +/obj/machinery/porta_turret/syndicate/pod{ + dir = 6; + faction = list("frontiersman") + }, +/turf/closed/wall/r_wall/syndicate/nodiagonal, +/area/ruin/jungle/cavecrew/bridge) +"gU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/thinplating/dark/corner, +/obj/structure/cable{ + icon_state = "4-10" + }, +/turf/open/floor/plasteel, +/area/ruin/jungle/cavecrew/hallway) +"hf" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/railing{ + dir = 2; + layer = 4.1 + }, +/turf/open/floor/plasteel/stairs{ + icon = 'icons/obj/stairs.dmi'; + dir = 8 + }, +/area/ruin/powered) +"hh" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/wood, +/area/ruin/jungle/cavecrew/dormitories) +"hn" = ( +/turf/open/floor/engine/hull/reinforced/interior, +/area/ship/storage) +"ho" = ( +/obj/machinery/door/poddoor{ + id = "gut_launchdoor" + }, +/turf/open/floor/engine/hull/reinforced/interior, +/area/ship/storage) +"ht" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/tree/jungle/small, +/turf/open/floor/plating/dirt/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"hz" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/structure/chair/plastic{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/jungle/cavecrew/security) +"ig" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/machinery/light/directional/east, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"ih" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"ij" = ( +/mob/living/simple_animal/hostile/venus_human_trap, +/turf/open/floor/plating/dirt/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"iq" = ( +/obj/effect/turf_decal/techfloor{ + dir = 5 + }, +/obj/structure/chair/office{ + dir = 4; + name = "tactical swivel chair" + }, +/mob/living/simple_animal/hostile/frontier/ranged/officer/neutured, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/bridge) +"iE" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/tech, +/area/ruin/jungle/cavecrew/bridge) +"iN" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"iT" = ( +/obj/structure/flora/rock{ + pixel_x = 9 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"iV" = ( +/turf/closed/wall/rust, +/area/ruin/powered) +"iW" = ( +/turf/open/floor/plating/dirt, +/area/overmap_encounter/planetoid/jungle/explored) +"iZ" = ( +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/industrial/loading{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"ja" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/tech, +/area/ruin/jungle/cavecrew/engineering) +"jd" = ( +/obj/structure/spacevine/dense, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"jg" = ( +/obj/structure/spacevine/dense, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"jh" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/bed/dogbed/cayenne, +/mob/living/simple_animal/pet/dog/corgi/puppy{ + name = "Kiwi"; + faction = list("neutral","frontiersman") + }, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/ruin/jungle/cavecrew/dormitories) +"jj" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "5-8" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/ruin/powered) +"jm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/closed/wall/r_wall/syndicate/nodiagonal, +/area/ruin/jungle/cavecrew/engineering) +"jr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/bookcase/random/nonfiction, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/ruin/jungle/cavecrew/hallway) +"ju" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8; + name = "tactical chair" + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8; + color = "#808080" + }, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"jy" = ( +/obj/effect/turf_decal/techfloor{ + dir = 5 + }, +/obj/machinery/computer/crew, +/obj/machinery/light_switch{ + pixel_y = 21; + pixel_x = -10 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/storage) +"jA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "5-10" + }, +/turf/open/floor/plasteel, +/area/ruin/jungle/cavecrew/hallway) +"jC" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/jungle/cavecrew/dormitories) +"jF" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating/rust, +/area/ruin/jungle/cavecrew/security) +"jO" = ( +/obj/structure/flora/junglebush/large{ + pixel_y = -4 + }, +/obj/item/flashlight/lantern{ + pixel_x = 14; + pixel_y = -3 + }, +/turf/open/floor/plating/dirt/jungle/dark/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"jZ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/jungle/cavecrew/dormitories) +"kb" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/ruin/powered) +"ke" = ( +/obj/structure/flora/rock/pile/largejungle, +/obj/structure/fluff/drake_statue{ + pixel_x = -25 + }, +/turf/open/floor/plating/dirt/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"kj" = ( +/obj/structure/flora/rock/jungle{ + pixel_x = 5; + pixel_y = 10 + }, +/obj/structure/flora/rock/pile/largejungle{ + pixel_y = -31; + pixel_x = 6 + }, +/turf/open/floor/plating/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"ks" = ( +/obj/effect/turf_decal/industrial/traffic, +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ruin/jungle/cavecrew/cargo) +"ku" = ( +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = -5; + pixel_y = 18 + }, +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = 14; + pixel_y = 1 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"kA" = ( +/obj/structure/flora/grass/jungle{ + pixel_x = -13; + pixel_y = -14 + }, +/obj/structure/flora/grass/jungle{ + pixel_x = -11; + pixel_y = 10 + }, +/turf/open/floor/plating/dirt/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"kB" = ( +/obj/structure/cable{ + icon_state = "1-9" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/ruin/powered) +"kH" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/tech, +/area/ruin/jungle/cavecrew/engineering) +"kL" = ( +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = -5; + pixel_y = 18 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"kO" = ( +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor/hole{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/jungle/cavecrew/security) +"kQ" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"kR" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/jungle/cavecrew/engineering) +"kV" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/obj/structure/bookcase/random/fiction, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/toy/figure/curator{ + pixel_y = 19; + pixel_x = -11 + }, +/turf/open/floor/wood, +/area/ruin/jungle/cavecrew/dormitories) +"la" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/button/massdriver{ + id = "gut_launchdoor"; + name = "Cannon Button"; + pixel_x = 21; + pixel_y = 8; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/storage) +"lg" = ( +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 1 + }, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"lm" = ( +/turf/closed/wall/r_wall/syndicate/nodiagonal, +/area/ruin/jungle/cavecrew/bridge) +"lo" = ( +/obj/structure/flora/ausbushes/sparsegrass{ + pixel_x = 7; + pixel_y = 6 + }, +/turf/open/floor/plating/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"lt" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/obj/structure/spacevine, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"lu" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/ruin/jungle/cavecrew/engineering) +"lz" = ( +/turf/open/floor/plating/dirt/jungle/dark, +/area/ruin/jungle/cavecrew/cargo) +"lD" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/railing{ + layer = 3.1 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"lG" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light/directional/east{ + pixel_x = 24 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/ruin/powered) +"lI" = ( +/obj/structure/flora/tree/jungle/small{ + icon_state = "tree2" + }, +/turf/open/floor/plating/dirt/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"lR" = ( +/obj/structure/flora/rock/jungle{ + pixel_x = 10; + pixel_y = 5 + }, +/turf/open/floor/plating/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"lS" = ( +/obj/structure/railing/corner, +/obj/effect/turf_decal/weather/dirt/corner, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"lT" = ( +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/garbage{ + pixel_y = 5; + pixel_x = -4 + }, +/turf/open/floor/plating, +/area/ruin/powered) +"lV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/garbage{ + pixel_x = -5 + }, +/obj/structure/sign/poster/contraband/lusty_xenomorph{ + pixel_y = 32 + }, +/obj/structure/closet/secure_closet/freezer/wall{ + dir = 4; + pixel_x = -28 + }, +/obj/item/reagent_containers/food/snacks/rationpack, +/obj/item/reagent_containers/food/snacks/rationpack, +/obj/item/reagent_containers/food/snacks/rationpack, +/obj/item/reagent_containers/food/snacks/rationpack, +/obj/item/reagent_containers/food/snacks/rationpack, +/obj/item/reagent_containers/food/snacks/rationpack, +/obj/item/reagent_containers/food/snacks/rationpack, +/obj/item/reagent_containers/food/snacks/rationpack, +/obj/item/reagent_containers/food/condiment/enzyme{ + pixel_x = -8; + pixel_y = 5 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/ruin/jungle/cavecrew/hallway) +"lY" = ( +/obj/structure/flora/ausbushes/palebush, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"mb" = ( +/obj/structure/railing{ + dir = 8; + layer = 4.1 + }, +/obj/machinery/power/port_gen/pacman, +/obj/effect/turf_decal/industrial/warning, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/jungle/cavecrew/engineering) +"mj" = ( +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/secure/loot, +/obj/item/storage/pill_bottle/iron{ + pixel_x = -6 + }, +/obj/item/storage/pill_bottle/lsd{ + pixel_y = -3; + pixel_x = -2 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ruin/jungle/cavecrew/cargo) +"mt" = ( +/obj/machinery/suit_storage_unit/inherit/industrial, +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/jungle/cavecrew/security) +"mu" = ( +/turf/open/floor/plating, +/area/ruin/powered) +"mw" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/effect/decal/cleanable/wrapping{ + pixel_x = -13; + pixel_y = 7 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/jungle/cavecrew/dormitories) +"mz" = ( +/obj/structure/chair/stool/bar{ + pixel_x = -6 + }, +/obj/effect/decal/cleanable/vomit/old{ + pixel_x = -14; + pixel_y = 18 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/ruin/jungle/cavecrew/hallway) +"mC" = ( +/obj/structure/cable{ + icon_state = "2-6" + }, +/turf/open/floor/plating, +/area/ruin/powered) +"mD" = ( +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + id = "gut_holo" + }, +/obj/machinery/door/poddoor/shutters{ + id = "gut_cargo"; + name = "Blast Shutters"; + dir = 4 + }, +/turf/open/floor/engine/hull/interior, +/area/ship/storage) +"mI" = ( +/obj/structure/dresser, +/obj/machinery/light/directional/south, +/turf/open/floor/carpet/red_gold, +/area/ruin/jungle/cavecrew/dormitories) +"mK" = ( +/obj/structure/railing{ + layer = 3.1 + }, +/turf/open/floor/plating/dirt/jungle, +/area/ruin/powered) +"na" = ( +/obj/structure/flora/grass/jungle/b{ + pixel_x = 10; + pixel_y = -19 + }, +/turf/open/floor/plating/dirt/jungle, +/area/ruin/powered) +"ng" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "1-10" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/ruin/powered) +"nh" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/directional/east, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/storage) +"np" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 9; + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium, +/area/ruin/jungle/cavecrew/security) +"nq" = ( +/obj/structure/flora/ausbushes/reedbush{ + pixel_y = 17; + pixel_x = 3 + }, +/obj/structure/flora/ausbushes/reedbush{ + pixel_y = 5; + pixel_x = -9 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"nt" = ( +/obj/effect/turf_decal/industrial/loading{ + dir = 4 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ruin/jungle/cavecrew/cargo) +"nu" = ( +/obj/machinery/computer/card/minor/cmo, +/obj/machinery/light_switch{ + pixel_y = 21; + pixel_x = -10 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/jungle/cavecrew/bridge) +"nv" = ( +/obj/effect/turf_decal/techfloor{ + dir = 10 + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/jungle/cavecrew/security) +"nR" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"nV" = ( +/obj/structure/railing{ + dir = 9; + layer = 4.1 + }, +/obj/structure/reagent_dispensers/beerkeg{ + pixel_x = 8 + }, +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 9 + }, +/turf/open/floor/plating/dirt/jungle, +/area/ruin/jungle/cavecrew/cargo) +"og" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/yellow{ + icon_state = "4-9" + }, +/obj/structure/cable{ + icon_state = "5-10" + }, +/obj/machinery/power/terminal, +/obj/machinery/door/firedoor/border_only, +/obj/effect/turf_decal/industrial/warning, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/item/stack/cable_coil/red{ + pixel_x = 8; + pixel_y = 5 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/storage) +"oq" = ( +/turf/closed/mineral/random/jungle, +/area/ruin/jungle/cavecrew/cargo) +"ov" = ( +/obj/structure/flora/grass/jungle/b{ + pixel_y = -4 + }, +/turf/open/floor/plating/dirt/old/dark/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"ow" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning, +/obj/machinery/power/smes/shuttle/precharged{ + dir = 1 + }, +/obj/structure/window/plasma/reinforced/spawner, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/storage) +"oD" = ( +/obj/structure/spacevine/dense, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"oH" = ( +/obj/effect/turf_decal/industrial/loading{ + dir = 4 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-9" + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ruin/jungle/cavecrew/cargo) +"oQ" = ( +/obj/structure/flora/grass/jungle{ + pixel_x = -13; + pixel_y = -14 + }, +/obj/structure/flora/grass/jungle/b, +/turf/open/floor/plating/dirt/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"oR" = ( +/obj/structure/fermenting_barrel{ + pixel_x = -7; + pixel_y = 5 + }, +/obj/structure/fermenting_barrel{ + pixel_x = 5; + pixel_y = -5 + }, +/turf/open/floor/plating/dirt/jungle/dark, +/area/ruin/powered) +"oU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/frame/computer, +/turf/open/floor/plasteel/patterned, +/area/ruin/jungle/cavecrew/cargo) +"oW" = ( +/turf/open/floor/plasteel/stairs{ + dir = 2 + }, +/area/ruin/jungle/cavecrew/cargo) +"pb" = ( +/obj/effect/turf_decal/weather/dirt, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"pn" = ( +/obj/effect/turf_decal/industrial/radiation{ + dir = 4 + }, +/obj/machinery/power/smes/engineering, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/jungle/cavecrew/engineering) +"pt" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/ruin/jungle/cavecrew/cargo) +"px" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "1-8" + }, +/mob/living/simple_animal/hostile/frontier/ranged/trooper/heavy/neutered, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/jungle/cavecrew/security) +"pB" = ( +/obj/effect/turf_decal/industrial/traffic, +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ruin/jungle/cavecrew/cargo) +"pL" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned, +/area/ruin/jungle/cavecrew/cargo) +"qx" = ( +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ruin/jungle/cavecrew/cargo) +"qz" = ( +/obj/structure/guncase, +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/effect/turf_decal/industrial/warning{ + dir = 10 + }, +/obj/item/gun/ballistic/shotgun/automatic/combat{ + pixel_y = 5 + }, +/obj/item/gun/ballistic/revolver/nagant{ + pixel_y = -1 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/jungle/cavecrew/security) +"qO" = ( +/turf/closed/wall/rust, +/area/ruin/jungle/cavecrew/cargo) +"qU" = ( +/obj/structure/spacevine, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"rn" = ( +/obj/structure/flora/grass/jungle/b{ + pixel_x = 13; + pixel_y = -12 + }, +/obj/structure/flora/grass/jungle/b{ + pixel_x = 10; + pixel_y = 9 + }, +/obj/structure/destructible/tribal_torch/lit{ + pixel_x = -11 + }, +/turf/open/floor/plating/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"rr" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "4-9" + }, +/turf/open/floor/plating/dirt/old, +/area/ruin/jungle/cavecrew/cargo) +"rt" = ( +/turf/open/floor/plasteel/patterned, +/area/ruin/jungle/cavecrew/cargo) +"rx" = ( +/obj/structure/flora/rock/jungle{ + pixel_y = 12 + }, +/turf/open/floor/plating/dirt/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"rA" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 4 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"rK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-6" + }, +/turf/open/floor/plasteel, +/area/ruin/jungle/cavecrew/hallway) +"rN" = ( +/obj/effect/decal/cleanable/dirt/dust, +/mob/living/simple_animal/hostile/frontier/ranged/trooper/neutered, +/turf/open/floor/plating/dirt/old, +/area/ruin/powered) +"rQ" = ( +/obj/structure/railing{ + dir = 2; + layer = 4.1 + }, +/turf/open/floor/plating, +/area/ruin/powered) +"rT" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ruin/powered) +"sj" = ( +/obj/effect/turf_decal/techfloor{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-6" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/bridge) +"sm" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/wrapping, +/obj/structure/cable{ + icon_state = "6-8" + }, +/obj/machinery/power/terminal, +/obj/machinery/door/firedoor/border_only, +/obj/effect/turf_decal/industrial/warning, +/obj/item/storage/toolbox/syndicate{ + pixel_y = 5; + pixel_x = 11 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/storage) +"sH" = ( +/obj/structure/table/wood/reinforced, +/obj/item/reagent_containers/glass/bottle/cyanide{ + pixel_x = 7; + pixel_y = 9 + }, +/obj/item/reagent_containers/glass/bottle/histamine{ + pixel_x = -9; + pixel_y = 6 + }, +/obj/item/reagent_containers/glass/bottle/chlorine{ + pixel_x = -6 + }, +/obj/item/reagent_containers/glass/mortar{ + pixel_x = 5 + }, +/obj/item/pestle{ + pixel_x = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/sign/poster/official/moth/meth{ + pixel_y = 32 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/ruin/jungle/cavecrew/dormitories) +"sJ" = ( +/obj/item/clothing/head/crown/fancy{ + pixel_y = 9; + pixel_x = 6 + }, +/obj/structure/table/reinforced{ + color = "#c1b6a5" + }, +/turf/open/floor/plating, +/area/ruin/jungle/cavecrew/dormitories) +"sM" = ( +/obj/structure/spacevine, +/obj/structure/spacevine/dense, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"ta" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/jungle/cavecrew/dormitories) +"tj" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/directional/west, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"to" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"tu" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/reagent_dispensers/water_cooler{ + pixel_x = 8; + pixel_y = 15; + density = 0 + }, +/obj/structure/sign/poster/contraband/punch_shit{ + pixel_x = 32 + }, +/obj/item/kirbyplants{ + icon_state = "plant-25"; + pixel_x = -3; + pixel_y = 6 + }, +/obj/effect/decal/cleanable/greenglow{ + color = "#808080"; + pixel_x = -11; + pixel_y = 3 + }, +/obj/machinery/light_switch{ + pixel_y = 21; + pixel_x = -10 + }, +/turf/open/floor/wood, +/area/ruin/jungle/cavecrew/hallway) +"tE" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"tL" = ( +/obj/structure/cable{ + icon_state = "1-9" + }, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"tO" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "2-6" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/ruin/powered) +"tQ" = ( +/obj/structure/flora/grass/jungle{ + pixel_x = -13; + pixel_y = -14 + }, +/obj/structure/flora/grass/jungle, +/turf/open/floor/plating/dirt/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"tW" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/cave/explored) +"tY" = ( +/obj/structure/spacevine, +/obj/structure/spacevine, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"ua" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/chair{ + pixel_x = -9; + pixel_y = 12; + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/jungle/cavecrew/dormitories) +"ue" = ( +/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, +/turf/open/floor/plating, +/area/ship/storage) +"uf" = ( +/obj/effect/turf_decal/techfloor/hole{ + dir = 4; + pixel_x = 4 + }, +/obj/effect/turf_decal/techfloor/hole/right{ + dir = 4; + pixel_x = 4 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/machinery/door/airlock/highsecurity, +/turf/open/floor/plasteel, +/area/ruin/jungle/cavecrew/security) +"un" = ( +/obj/structure/falsewall/plastitanium, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/ruin/jungle/cavecrew/dormitories) +"uo" = ( +/obj/structure/chair/stool/bar{ + pixel_x = -5; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/ruin/jungle/cavecrew/hallway) +"uq" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = 7; + pixel_y = 27 + }, +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = -5; + pixel_y = 15 + }, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"uu" = ( +/obj/structure/closet/cabinet, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/item/clothing/under/rank/security/officer/frontier, +/obj/item/clothing/head/beret/sec/frontier, +/obj/machinery/light_switch{ + pixel_y = 21; + pixel_x = -10 + }, +/turf/open/floor/wood, +/area/ruin/jungle/cavecrew/dormitories) +"uC" = ( +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"uK" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned, +/area/ruin/jungle/cavecrew/cargo) +"uX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing/corner{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ruin/jungle/cavecrew/hallway) +"va" = ( +/obj/structure/railing{ + layer = 3.1 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/ruin/powered) +"vk" = ( +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + id = "gut_holo"; + dir = 1 + }, +/obj/machinery/button/shieldwallgen{ + dir = 1; + id = "gut_holo"; + pixel_x = 8; + pixel_y = -21 + }, +/obj/machinery/button/door{ + id = "gut_cargo"; + name = "Cargo Door Control"; + pixel_y = -22; + dir = 1 + }, +/obj/machinery/door/poddoor/shutters{ + id = "gut_cargo"; + name = "Blast Shutters"; + dir = 4 + }, +/turf/open/floor/engine/hull/interior, +/area/ship/storage) +"vl" = ( +/obj/structure/railing{ + dir = 8; + layer = 4.1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-5" + }, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"vo" = ( +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/structure/closet/secure_closet{ + icon_state = "sec"; + name = "Ammo Locker"; + req_access_txt = "1" + }, +/obj/item/storage/box/lethalshot{ + pixel_x = -3; + pixel_y = -5 + }, +/obj/item/storage/box/lethalshot{ + pixel_x = -3; + pixel_y = -5 + }, +/obj/item/ammo_box/n762_clip, +/obj/item/ammo_box/n762, +/obj/item/ammo_box/magazine/aks74u, +/obj/item/ammo_box/magazine/aks74u, +/obj/item/ammo_box/magazine/aks74u, +/obj/item/ammo_box/n762, +/obj/item/ammo_box/n762_clip, +/turf/open/floor/plasteel/tech, +/area/ruin/jungle/cavecrew/security) +"vr" = ( +/obj/machinery/computer/cargo/express, +/turf/open/floor/plasteel/patterned, +/area/ruin/jungle/cavecrew/cargo) +"vH" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/cave/explored) +"vM" = ( +/obj/structure/table/wood/reinforced, +/obj/item/flashlight/lamp/green{ + pixel_y = 13; + pixel_x = 8 + }, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/pen{ + pixel_y = 4; + pixel_x = -4 + }, +/obj/item/clipboard{ + pixel_x = -2; + pixel_y = 8 + }, +/obj/item/phone{ + pixel_x = 8; + pixel_y = -4 + }, +/obj/item/storage/fancy/cigarettes/cigars/havana{ + pixel_y = -8; + pixel_x = 4 + }, +/obj/item/lighter{ + pixel_y = -16; + pixel_x = 13 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/jungle/cavecrew/bridge) +"we" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ruin/jungle/cavecrew/dormitories) +"wg" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/structure/bed{ + icon_state = "dirty_mattress" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/security) +"wr" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/tech, +/area/ruin/jungle/cavecrew/engineering) +"wt" = ( +/turf/closed/mineral/random/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"wu" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/mob/living/simple_animal/hostile/frontier/ranged/trooper/ak47/neutured, +/turf/open/floor/plasteel/stairs{ + dir = 1 + }, +/area/ship/storage) +"wG" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/turf_decal/techfloor{ + dir = 5 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/jungle/cavecrew/security) +"wH" = ( +/obj/structure/flora/tree/jungle, +/turf/open/floor/plating/dirt/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"wN" = ( +/turf/closed/wall/r_wall/syndicate/nodiagonal, +/area/ruin/jungle/cavecrew/security) +"wZ" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/bridge) +"xi" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 9 + }, +/obj/structure/table/reinforced{ + color = "#c1b6a5" + }, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high{ + pixel_y = -5; + pixel_x = -3 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/jungle/cavecrew/engineering) +"xj" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8; + name = "tactical chair" + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8; + color = "#808080" + }, +/obj/effect/decal/cleanable/vomit/old{ + pixel_y = 6 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/light/directional/east, +/obj/machinery/power/apc/auto_name/directional/north, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"xn" = ( +/obj/structure/table/wood, +/obj/item/trash/tray, +/obj/item/trash/waffles, +/obj/item/trash/energybar, +/turf/open/floor/plating, +/area/ruin/jungle/cavecrew/hallway) +"xr" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/traffic, +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/internals, +/obj/item/tank/internals/oxygen, +/obj/item/tank/internals/oxygen, +/obj/item/tank/internals/oxygen, +/obj/item/tank/jetpack/oxygen, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ruin/jungle/cavecrew/cargo) +"xu" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"xv" = ( +/obj/effect/turf_decal/techfloor, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/jungle/cavecrew/security) +"xx" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 6 + }, +/turf/open/floor/plasteel/patterned, +/area/ruin/jungle/cavecrew/cargo) +"xG" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/table/wood/reinforced, +/obj/item/flashlight/lamp{ + pixel_x = -6; + pixel_y = 8 + }, +/obj/item/trash/can/food{ + pixel_x = -9; + pixel_y = 4 + }, +/obj/item/trash/candy{ + pixel_y = 3 + }, +/turf/open/floor/wood, +/area/ruin/jungle/cavecrew/dormitories) +"xI" = ( +/obj/machinery/door/window/brigdoor/southright{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/security) +"xR" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 5 + }, +/obj/effect/decal/cleanable/plastic, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/power/terminal, +/obj/machinery/door/firedoor/border_only, +/obj/effect/turf_decal/industrial/warning, +/obj/structure/cable{ + icon_state = "0-1" + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/storage) +"xT" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/smes/shuttle/precharged{ + dir = 1 + }, +/obj/structure/window/plasma/reinforced/spawner, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/storage) +"ye" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"yj" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/structure/bed{ + icon_state = "dirty_mattress" + }, +/obj/effect/decal/cleanable/vomit/old, +/obj/structure/grille/broken, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/ruin/jungle/cavecrew/dormitories) +"yk" = ( +/obj/effect/turf_decal/borderfloor, +/obj/machinery/door/airlock/hatch, +/turf/open/floor/plating, +/area/ruin/jungle/cavecrew/dormitories) +"yv" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/effect/decal/cleanable/oil{ + pixel_x = 8; + pixel_y = 12 + }, +/obj/machinery/power/smes/shuttle/precharged{ + dir = 1 + }, +/obj/structure/window/plasma/reinforced/spawner, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/storage) +"yx" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating/dirt/old, +/area/overmap_encounter/planetoid/jungle/explored) +"yA" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/turf/open/floor/plating/dirt/jungle/dark, +/area/ruin/jungle/cavecrew/cargo) +"yC" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/fluff/hedge, +/obj/structure/curtain/bounty, +/turf/open/floor/wood, +/area/ruin/jungle/cavecrew/dormitories) +"yD" = ( +/obj/structure/cable{ + icon_state = "6-8" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/ruin/jungle/cavecrew/cargo) +"yJ" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating/dirt/jungle/dark, +/area/ruin/jungle/cavecrew/cargo) +"yV" = ( +/turf/open/floor/plating/dirt/jungle, +/area/ruin/jungle/cavecrew/cargo) +"yW" = ( +/obj/structure/closet/crate/goldcrate, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/directional/south, +/turf/open/floor/plating, +/area/ruin/jungle/cavecrew/dormitories) +"yX" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"yZ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/ruin/powered) +"zj" = ( +/obj/structure/cable{ + icon_state = "0-6" + }, +/obj/machinery/power/apc/auto_name/directional/west, +/turf/open/floor/plating/dirt/jungle, +/area/ruin/powered) +"zz" = ( +/turf/closed/wall/mineral/plastitanium, +/area/ship/storage) +"zG" = ( +/obj/structure/flora/grass/jungle{ + pixel_x = -13; + pixel_y = -14 + }, +/turf/open/floor/plating/dirt/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"zJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/secure_closet/freezer/kitchen/wall{ + dir = 4; + pixel_x = -28 + }, +/obj/item/circuitboard/machine/microwave{ + pixel_y = -5; + pixel_x = -5 + }, +/obj/item/circuitboard/machine/reagentgrinder, +/obj/item/circuitboard/machine/processor{ + pixel_y = -4; + pixel_x = 1 + }, +/turf/open/floor/plating/rust, +/area/ruin/jungle/cavecrew/hallway) +"zN" = ( +/obj/machinery/shower{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating/catwalk_floor, +/area/ruin/jungle/cavecrew/hallway) +"zV" = ( +/obj/structure/table/wood/reinforced, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/item/toy/figure/vanguard{ + pixel_y = 2; + pixel_x = -8 + }, +/obj/item/toy/figure/warden{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/reagent_containers/food/snacks/candyheart{ + pixel_x = 1; + pixel_y = -1 + }, +/turf/open/floor/wood, +/area/ruin/jungle/cavecrew/dormitories) +"zX" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/structure/railing{ + dir = 8; + layer = 3.1 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Af" = ( +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/steeldecal/steel_decals4{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor/hole/right, +/obj/structure/cable{ + icon_state = "2-9" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/bridge) +"Ag" = ( +/obj/structure/table/reinforced{ + color = "#c1b6a5" + }, +/obj/item/desk_flag{ + pixel_x = -6; + pixel_y = 17 + }, +/obj/item/megaphone/sec{ + name = "syndicate megaphone"; + pixel_x = 1; + pixel_y = 4 + }, +/obj/item/camera_bug{ + pixel_x = -5; + pixel_y = -3 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/jungle/cavecrew/bridge) +"Al" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"Ap" = ( +/obj/structure/flora/rock/pile/largejungle{ + pixel_y = -17; + pixel_x = -11 + }, +/obj/structure/flora/tree/jungle/small, +/turf/open/floor/plating/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"At" = ( +/obj/structure/flora/rock/pile/largejungle{ + pixel_y = -17; + pixel_x = -11 + }, +/turf/open/floor/plating/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"AK" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/jungle/cavecrew/hallway) +"AR" = ( +/obj/structure/railing{ + dir = 8; + layer = 3.1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 8 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"AV" = ( +/obj/structure/cable{ + icon_state = "1-6" + }, +/turf/open/floor/plasteel/stairs/left, +/area/ruin/jungle/cavecrew/bridge) +"Be" = ( +/obj/structure/bed, +/obj/item/bedsheet/dorms, +/obj/structure/curtain/cloth/grey, +/turf/open/floor/carpet/red_gold, +/area/ruin/jungle/cavecrew/dormitories) +"Bp" = ( +/obj/structure/cable/yellow{ + icon_state = "4-10" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/turf_decal/techfloor, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/jungle/cavecrew/engineering) +"Bt" = ( +/obj/effect/turf_decal/industrial/warning/corner{ + color = "#808080"; + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium, +/area/ruin/jungle/cavecrew/security) +"Bv" = ( +/turf/open/floor/plasteel/stairs/right, +/area/ruin/jungle/cavecrew/bridge) +"Bz" = ( +/obj/machinery/vending/donksofttoyvendor, +/obj/structure/sign/barsign{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/ruin/jungle/cavecrew/hallway) +"BI" = ( +/obj/machinery/porta_turret/syndicate/pod{ + dir = 9; + faction = list("frontiersman") + }, +/turf/closed/wall/r_wall/syndicate/nodiagonal, +/area/ship/storage) +"BO" = ( +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/secure/gear, +/obj/item/gun/ballistic/automatic/smg/aks74u{ + pixel_y = -6 + }, +/obj/item/gun/ballistic/automatic/zip_pistol, +/obj/item/gun/ballistic/automatic/zip_pistol, +/obj/item/gun/ballistic/automatic/zip_pistol, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/storage) +"BR" = ( +/obj/structure/flora/ausbushes/reedbush{ + pixel_x = -1; + pixel_y = 17 + }, +/obj/structure/flora/ausbushes/reedbush{ + pixel_x = 11; + pixel_y = 8 + }, +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 8 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"BT" = ( +/obj/structure/flora/ausbushes/reedbush{ + pixel_y = -2; + pixel_x = -4 + }, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"BU" = ( +/obj/structure/closet/crate/silvercrate, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ruin/jungle/cavecrew/dormitories) +"Cc" = ( +/obj/item/stack/ore/salvage/scrapmetal/ten{ + pixel_x = 2; + pixel_y = -4 + }, +/turf/open/floor/plating/dirt/old, +/area/ruin/jungle/cavecrew/cargo) +"Cq" = ( +/turf/open/floor/plating/dirt/jungle/dark, +/area/ruin/powered) +"Cr" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood/corner, +/obj/item/book/manual/wiki/engineering_guide{ + pixel_x = 5; + pixel_y = -7 + }, +/obj/item/book/manual/wiki/grenades{ + pixel_x = -3; + pixel_y = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/wrapping, +/turf/open/floor/wood, +/area/ruin/jungle/cavecrew/dormitories) +"CC" = ( +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/dirt/jungle, +/area/ruin/powered) +"CF" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating/dirt/old, +/area/ruin/powered) +"CJ" = ( +/obj/structure/railing{ + dir = 8; + layer = 3.1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 + }, +/mob/living/simple_animal/hostile/frontier/ranged/neutered, +/turf/open/floor/plasteel, +/area/ruin/jungle/cavecrew/hallway) +"CN" = ( +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 10 + }, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/mob/living/simple_animal/hostile/frontier, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/tech, +/area/ruin/jungle/cavecrew/engineering) +"CT" = ( +/obj/structure/window/reinforced/spawner/east, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"CU" = ( +/obj/effect/turf_decal/industrial/warning/corner, +/turf/open/floor/plasteel/patterned, +/area/ruin/jungle/cavecrew/cargo) +"CZ" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/jungle/cavecrew/engineering) +"Dd" = ( +/obj/effect/turf_decal/weather/dirt, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"Df" = ( +/obj/structure/flora/grass/jungle/b, +/obj/structure/flora/rock/pile/largejungle, +/obj/structure/flora/tree/jungle, +/turf/open/floor/plating/dirt/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"Dg" = ( +/obj/structure/table/wood/reinforced, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/item/modular_computer/laptop/preset/civilian{ + pixel_x = -7; + pixel_y = 8 + }, +/obj/item/trash/can/food{ + pixel_x = -9; + pixel_y = 4 + }, +/obj/item/storage/crayons{ + pixel_y = -8; + pixel_x = 5 + }, +/obj/item/melee/transforming/energy/sword/saber/pirate/red, +/turf/open/floor/wood, +/area/ruin/jungle/cavecrew/dormitories) +"Dh" = ( +/obj/structure/flora/ausbushes/stalkybush, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Dl" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"Dq" = ( +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc/auto_name/directional/north, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ruin/jungle/cavecrew/cargo) +"Dt" = ( +/obj/machinery/power/terminal, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"Dv" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/obj/structure/railing{ + layer = 3.1 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Dz" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/structure/spacevine, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"DJ" = ( +/obj/structure/flora/ausbushes/reedbush{ + pixel_y = 5; + pixel_x = 10 + }, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"DP" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 6; + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium, +/area/ruin/jungle/cavecrew/security) +"DV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ruin/jungle/cavecrew/hallway) +"Eb" = ( +/obj/structure/bed{ + icon_state = "dirty_mattress" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood, +/obj/item/reagent_containers/food/snacks/grown/berries/poison{ + pixel_x = -9; + pixel_y = -1 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/security) +"Ec" = ( +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/effect/decal/cleanable/dirt, +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack, +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/carbine, +/obj/structure/closet/crate/secure/weapon, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/storage) +"Ej" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/structure/railing{ + dir = 10; + layer = 3.1 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Em" = ( +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/techfloor/hole, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/bridge) +"Ep" = ( +/turf/open/floor/plating/rust, +/area/ruin/powered) +"Es" = ( +/obj/structure/flora/grass/jungle/b, +/turf/open/floor/plating/dirt/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"EG" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/ruin/powered) +"EI" = ( +/obj/structure/flora/rock/pile/largejungle{ + pixel_x = -1; + pixel_y = -37 + }, +/turf/open/floor/plating/dirt/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"EO" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/ruin/powered) +"EP" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/closed/mineral/random/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"EZ" = ( +/obj/effect/decal/cleanable/glass, +/turf/open/floor/engine/hull/reinforced/interior, +/area/ship/storage) +"Fr" = ( +/obj/effect/turf_decal/weather/dirt/corner, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Fs" = ( +/turf/open/floor/plating/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Fw" = ( +/mob/living/simple_animal/hostile/frontier/ranged/mosin/neutered, +/turf/open/floor/plating/dirt/jungle, +/area/ruin/powered) +"Fy" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood/corner, +/obj/structure/chair/comfy/brown{ + buildstackamount = 0; + color = "#c45c57"; + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/ruin/jungle/cavecrew/dormitories) +"FB" = ( +/obj/structure/cable{ + icon_state = "2-9" + }, +/obj/item/stack/rods/ten{ + pixel_x = 7 + }, +/obj/machinery/light/directional/east{ + pixel_x = 24 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/ruin/jungle/cavecrew/cargo) +"FY" = ( +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = 13; + pixel_y = 7 + }, +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = 5; + pixel_y = 11 + }, +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = -2; + pixel_y = 1 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Ge" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks/fullupgrade{ + dir = 1 + }, +/turf/open/floor/plating/rust, +/area/ruin/jungle/cavecrew/hallway) +"Gh" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"Gk" = ( +/obj/machinery/door/window/southleft{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/jungle/cavecrew/hallway) +"Gm" = ( +/obj/structure/railing{ + dir = 9; + layer = 4.1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 9 + }, +/turf/open/floor/plating/dirt/jungle, +/area/ruin/jungle/cavecrew/cargo) +"Go" = ( +/obj/structure/flora/ausbushes/stalkybush, +/obj/machinery/light/directional/west, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Gy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-10" + }, +/obj/structure/cable{ + icon_state = "2-10" + }, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"GL" = ( +/obj/structure/cable/yellow{ + icon_state = "6-8" + }, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"GN" = ( +/obj/machinery/porta_turret/syndicate/pod{ + dir = 9; + faction = list("frontiersman") + }, +/turf/closed/wall/r_wall/syndicate/nodiagonal, +/area/ruin/jungle/cavecrew/dormitories) +"GR" = ( +/obj/structure/flora/rock/jungle{ + pixel_x = 3; + pixel_y = 9 + }, +/obj/structure/flora/ausbushes/sparsegrass, +/obj/machinery/light/directional/east, +/turf/open/floor/plating/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Hk" = ( +/obj/structure/flora/tree/jungle/small{ + icon_state = "tree2" + }, +/obj/structure/flora/rock/pile/largejungle, +/turf/open/floor/plating/dirt/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"Hx" = ( +/obj/structure/railing{ + dir = 8; + layer = 4.1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"HD" = ( +/obj/item/chair/greyscale{ + dir = 8; + pixel_y = -7; + pixel_x = -3 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/robot_debris, +/obj/effect/decal/cleanable/oil, +/obj/item/stack/cable_coil/cut/yellow, +/turf/open/floor/plating/rust, +/area/ruin/jungle/cavecrew/dormitories) +"HI" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating/dirt/old, +/area/ruin/jungle/cavecrew/cargo) +"HL" = ( +/obj/structure/barricade/wooden, +/obj/structure/barricade/wooden/crude, +/turf/open/floor/plating/dirt/old, +/area/ruin/powered) +"HQ" = ( +/obj/structure/flora/grass/jungle, +/turf/open/floor/plating/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"HW" = ( +/obj/structure/destructible/tribal_torch/lit{ + pixel_x = -11; + pixel_y = 19 + }, +/turf/open/floor/plating/dirt/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"Ie" = ( +/obj/effect/turf_decal/techfloor{ + dir = 10 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/bridge) +"Ir" = ( +/obj/structure/spacevine, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Is" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/structure/table/wood/reinforced, +/obj/item/paicard{ + pixel_x = 4; + pixel_y = 2 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/flashlight/lamp{ + pixel_x = -6; + pixel_y = 2 + }, +/obj/item/storage/fancy/cigarettes/cigpack_carp{ + pixel_y = 1; + pixel_x = -5 + }, +/obj/item/lighter/greyscale{ + pixel_x = -1; + pixel_y = -6 + }, +/turf/open/floor/wood, +/area/ruin/jungle/cavecrew/dormitories) +"Iu" = ( +/obj/structure/flora/rock/jungle{ + pixel_x = 9 + }, +/turf/open/floor/plating/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Iv" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech, +/area/ruin/jungle/cavecrew/engineering) +"Ix" = ( +/obj/structure/barricade/sandbags, +/turf/open/floor/plating/dirt/jungle/dark, +/area/ruin/powered) +"Iz" = ( +/obj/structure/girder, +/obj/structure/flora/grass/jungle/b, +/turf/open/floor/plating/dirt/jungle, +/area/ruin/powered) +"IA" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 4; + layer = 3.1 + }, +/mob/living/simple_animal/hostile/frontier/ranged/neutered, +/turf/open/water/jungle, +/area/ruin/jungle/cavecrew/cargo) +"II" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/obj/item/book/manual/wiki/engineering_hacking{ + pixel_x = -8; + pixel_y = 6 + }, +/obj/item/book/manual/wiki/cooking_to_serve_man{ + pixel_x = 5; + pixel_y = -6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/garbage{ + pixel_x = 10; + pixel_y = 4 + }, +/turf/open/floor/wood, +/area/ruin/jungle/cavecrew/dormitories) +"IJ" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/ruin/powered) +"IM" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"IN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "2-10" + }, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"IZ" = ( +/obj/item/reagent_containers/syringe/contraband/fentanyl{ + pixel_x = -3; + pixel_y = 4 + }, +/obj/item/reagent_containers/syringe/contraband/methamphetamine, +/obj/item/reagent_containers/food/drinks/beer{ + pixel_x = -4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/closet/wall{ + dir = 4; + pixel_x = -28 + }, +/obj/item/reagent_containers/syringe/contraband/bath_salts{ + pixel_y = 6; + pixel_x = -4 + }, +/obj/item/restraints/handcuffs/cable/white, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/chem_pile, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/plastic, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/wood{ + icon_state = "wood-broken2" + }, +/area/ruin/jungle/cavecrew/dormitories) +"Jg" = ( +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/cave/explored) +"Jh" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/blood/gibs/old{ + pixel_y = -5; + pixel_x = 3 + }, +/obj/effect/mob_spawn/human/corpse/damaged, +/turf/open/floor/plating/dirt/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"Jm" = ( +/obj/structure/flora/rock{ + icon_state = "basalt2"; + pixel_x = -5; + pixel_y = 11 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Jt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/kirbyplants{ + icon_state = "plant-10" + }, +/turf/open/floor/pod/light, +/area/ruin/jungle/cavecrew/hallway) +"Jz" = ( +/turf/closed/wall/rust, +/area/overmap_encounter/planetoid/cave/explored) +"JA" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 4; + layer = 3.1 + }, +/turf/open/water/jungle, +/area/ruin/jungle/cavecrew/cargo) +"JB" = ( +/turf/open/floor/plating/dirt/old, +/area/ruin/jungle/cavecrew/cargo) +"JJ" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/drip{ + pixel_x = -21; + pixel_y = 11 + }, +/turf/open/floor/plating/rust, +/area/ruin/jungle/cavecrew/dormitories) +"JK" = ( +/obj/item/soap{ + pixel_x = 13; + pixel_y = 10 + }, +/obj/item/reagent_containers/glass/bucket/wooden{ + pixel_x = -9 + }, +/obj/effect/decal/cleanable/vomit, +/obj/effect/decal/cleanable/wrapping, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/security) +"JO" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "6-8" + }, +/obj/structure/closet/crate/science, +/obj/item/storage/box/stockparts/t2{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/storage/fancy/cigarettes/cigpack_xeno, +/obj/item/storage/backpack/duffelbag{ + pixel_y = -5 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ruin/jungle/cavecrew/cargo) +"JQ" = ( +/obj/structure/barricade/sandbags, +/turf/open/floor/plating/dirt/jungle, +/area/ruin/powered) +"JY" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"Ka" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/storage) +"Kb" = ( +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/structure/chair/comfy/shuttle{ + dir = 1; + name = "tactical chair" + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/storage) +"Kh" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/door/airlock/hatch{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/jungle/cavecrew/hallway) +"Kw" = ( +/obj/structure/flora/rock/pile/largejungle, +/turf/closed/mineral/random/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Kx" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/storage) +"Kz" = ( +/obj/structure/cable{ + icon_state = "1-9" + }, +/turf/open/floor/plating/dirt/old, +/area/ruin/powered) +"KA" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/plating/dirt/jungle/dark, +/area/ruin/powered) +"KF" = ( +/obj/machinery/power/shuttle/engine/electric{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/door/poddoor{ + id = "gut_engines"; + name = "Thruster Blast Door" + }, +/turf/open/floor/plating, +/area/ship/storage) +"KH" = ( +/obj/structure/window/reinforced/spawner/east, +/obj/effect/turf_decal/techfloor{ + dir = 5 + }, +/obj/structure/closet/crate/secure/weapon, +/obj/item/grenade/chem_grenade/metalfoam{ + pixel_x = 2 + }, +/obj/item/grenade/chem_grenade/metalfoam{ + pixel_x = 6 + }, +/obj/item/grenade/empgrenade{ + pixel_x = -4 + }, +/obj/item/grenade/frag, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"KK" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "2-9" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/ruin/powered) +"KM" = ( +/obj/structure/cable{ + icon_state = "2-6" + }, +/obj/structure/cable{ + icon_state = "0-6" + }, +/obj/machinery/power/apc/auto_name/directional/north, +/turf/open/floor/plasteel, +/area/ruin/jungle/cavecrew/hallway) +"KW" = ( +/obj/structure/table/wood/reinforced, +/obj/item/table_bell{ + pixel_x = 9; + pixel_y = -1 + }, +/obj/item/cigbutt/cigarbutt{ + pixel_x = -5; + pixel_y = 10 + }, +/obj/item/dice/d2, +/obj/item/spacecash/bundle/c1000{ + pixel_x = 3; + pixel_y = 8 + }, +/obj/item/spacecash/bundle/c1000{ + pixel_x = 6; + pixel_y = 11 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/jungle/cavecrew/bridge) +"Lb" = ( +/obj/structure/bed, +/obj/structure/curtain/cloth/grey, +/obj/item/bedsheet/hos, +/obj/machinery/light/directional/south, +/turf/open/floor/carpet/red_gold, +/area/ruin/jungle/cavecrew/dormitories) +"Ll" = ( +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = 14; + pixel_y = 1 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Lm" = ( +/obj/structure/girder/displaced, +/turf/open/floor/plating/dirt/jungle/dark/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"Ln" = ( +/turf/open/floor/plating/dirt/old/dark/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"Lo" = ( +/obj/structure/table/reinforced{ + color = "#c1b6a5" + }, +/obj/machinery/fax/frontiersmen, +/turf/open/floor/plasteel/tech, +/area/ruin/jungle/cavecrew/bridge) +"Ls" = ( +/obj/structure/railing{ + dir = 8; + layer = 4.1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"Lv" = ( +/obj/structure/flora/ausbushes/leafybush, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Lw" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating/dirt/jungle, +/area/ruin/powered) +"Ly" = ( +/obj/structure/flora/tree/jungle/small, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/rock/pile/largejungle, +/turf/open/floor/plating/dirt/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"LB" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light/directional/east, +/turf/open/floor/plating, +/area/ruin/powered) +"LD" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 5; + color = "#808080" + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/jungle/cavecrew/security) +"LV" = ( +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ruin/jungle/cavecrew/cargo) +"Ma" = ( +/turf/open/floor/plating/dirt/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"Mg" = ( +/obj/effect/turf_decal/industrial/warning/dust/corner, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/ruin/powered) +"Mm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-10" + }, +/obj/machinery/light/directional/east, +/turf/open/floor/plasteel, +/area/ruin/jungle/cavecrew/hallway) +"Mn" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/ruin/jungle/cavecrew/cargo) +"Ms" = ( +/obj/structure/railing{ + dir = 2; + layer = 4.1 + }, +/turf/open/floor/plasteel/stairs{ + icon = 'icons/obj/stairs.dmi'; + dir = 8 + }, +/area/ruin/powered) +"Mv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned, +/area/ruin/jungle/cavecrew/cargo) +"MC" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/jungle/cavecrew/cargo) +"MR" = ( +/mob/living/simple_animal/hostile/carp, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"MT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "2-5" + }, +/mob/living/simple_animal/hostile/frontier/ranged/trooper/rifle/neutered, +/turf/open/floor/plasteel, +/area/ruin/jungle/cavecrew/hallway) +"MW" = ( +/mob/living/simple_animal/crab/evil, +/turf/open/floor/plating/dirt, +/area/overmap_encounter/planetoid/jungle/explored) +"MY" = ( +/obj/machinery/suit_storage_unit/inherit/industrial, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/item/clothing/suit/space/hardsuit/security/independent/frontier, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/jungle/cavecrew/security) +"Nc" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/secure/loot, +/obj/item/wallframe/bounty_board, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ruin/jungle/cavecrew/cargo) +"Nf" = ( +/obj/structure/spacevine, +/turf/closed/mineral/random/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Nj" = ( +/obj/structure/flora/ausbushes/sunnybush{ + pixel_x = 12; + pixel_y = 2 + }, +/obj/structure/flora/ausbushes/sparsegrass, +/turf/open/floor/plating/dirt/jungle, +/area/ruin/jungle/cavecrew/cargo) +"Nl" = ( +/obj/structure/closet/cabinet, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/item/clothing/under/rank/security/officer/frontier, +/obj/item/clothing/head/beret/sec/frontier, +/obj/item/clothing/under/misc/pj/blue, +/obj/machinery/light/small/broken/directional/north, +/obj/machinery/light_switch{ + pixel_y = 21; + pixel_x = -10 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/ruin/jungle/cavecrew/dormitories) +"Nn" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/jungle/cavecrew/hallway) +"No" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"Np" = ( +/obj/effect/turf_decal/techfloor{ + dir = 6 + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/jungle/cavecrew/security) +"Nr" = ( +/turf/closed/wall/r_wall/syndicate/nodiagonal, +/area/ruin/jungle/cavecrew/hallway) +"Ns" = ( +/obj/structure/flora/rock/jungle{ + pixel_x = 3; + pixel_y = 9 + }, +/turf/open/floor/plating/dirt/jungle/dark/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"Nu" = ( +/obj/structure/railing{ + dir = 1; + pixel_y = 8 + }, +/turf/open/floor/plating, +/area/ruin/jungle/cavecrew/cargo) +"NH" = ( +/obj/machinery/door/window/brigdoor/southright{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor{ + dir = 6 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"NK" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ruin/jungle/cavecrew/hallway) +"NL" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/structure/spacevine, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"NN" = ( +/obj/machinery/power/shuttle/engine/electric{ + dir = 1 + }, +/obj/machinery/door/poddoor{ + id = "gut_engines"; + name = "Thruster Blast Door" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/ship/storage) +"NR" = ( +/turf/open/floor/plating/dirt/jungle/dark, +/area/overmap_encounter/planetoid/jungle/explored) +"NW" = ( +/obj/structure/destructible/tribal_torch/lit{ + pixel_x = 16; + pixel_y = 15 + }, +/turf/open/floor/plating/dirt/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"Oa" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ruin/jungle/cavecrew/cargo) +"Oe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel, +/area/ruin/jungle/cavecrew/hallway) +"Oi" = ( +/obj/machinery/door/airlock/highsecurity, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/ruin/jungle/cavecrew/security) +"OJ" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/obj/machinery/door/airlock/hatch{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/jungle/cavecrew/dormitories) +"OK" = ( +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 1 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"OU" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/head/beret/sec/frontier{ + pixel_y = 10; + pixel_x = -4 + }, +/obj/item/storage/toolbox/ammo{ + pixel_y = 2 + }, +/obj/item/storage/toolbox/ammo{ + pixel_y = -6; + pixel_x = -5 + }, +/obj/item/grenade/frag{ + pixel_x = 8; + pixel_y = -6 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/jungle/cavecrew/security) +"OZ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/mob/living/simple_animal/hostile/frontier/ranged/neutered, +/turf/open/floor/plating, +/area/ruin/powered) +"Pg" = ( +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/structure/cable{ + icon_state = "5-8" + }, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel, +/area/ruin/jungle/cavecrew/hallway) +"Pj" = ( +/obj/effect/turf_decal/techfloor, +/obj/structure/closet/crate, +/obj/item/clothing/suit/space/nasavoid/old, +/obj/item/clothing/head/helmet/space/nasavoid/old, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/clothing/mask/gas, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"Pv" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/ruin/powered) +"Pz" = ( +/turf/closed/wall/r_wall/syndicate/nodiagonal, +/area/ruin/jungle/cavecrew/engineering) +"PB" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/wood, +/area/ruin/jungle/cavecrew/dormitories) +"PG" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/storage) +"PR" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/storage) +"PS" = ( +/obj/machinery/light/directional/west, +/turf/open/floor/plating/dirt/jungle, +/area/ruin/powered) +"PU" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"Qh" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8; + name = "tactical chair" + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8; + color = "#808080" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"Qi" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Ql" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/structure/flora/ausbushes/reedbush{ + pixel_y = 14; + pixel_x = 2 + }, +/obj/structure/flora/ausbushes/reedbush{ + pixel_y = 2; + pixel_x = 12 + }, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"Qr" = ( +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/powered) +"Qx" = ( +/obj/structure/flora/rock/pile/largejungle, +/turf/open/floor/plating/dirt/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"Qy" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/ruin/jungle/cavecrew/hallway) +"Qz" = ( +/obj/structure/flora/tree/jungle/small, +/turf/open/floor/plating/dirt/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"QE" = ( +/obj/structure/spacevine, +/obj/structure/spacevine, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/jungle/explored) +"QG" = ( +/obj/effect/turf_decal/industrial/warning, +/turf/open/floor/plasteel/patterned, +/area/ruin/jungle/cavecrew/cargo) +"QH" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "0-5" + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/jungle/cavecrew/engineering) +"QI" = ( +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/spline/fancy/opaque/black, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"QN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-10" + }, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"QX" = ( +/obj/structure/table/wood/reinforced, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/item/flashlight/lamp/green{ + pixel_y = 13; + pixel_x = -7 + }, +/obj/item/paper_bin{ + pixel_x = 5; + pixel_y = 4 + }, +/obj/item/pen{ + pixel_y = 8; + pixel_x = 5 + }, +/obj/item/pen/charcoal{ + pixel_y = 1; + pixel_x = 5 + }, +/turf/open/floor/wood, +/area/ruin/jungle/cavecrew/dormitories) +"Rd" = ( +/obj/structure/railing{ + dir = 4; + layer = 4.1 + }, +/obj/machinery/power/port_gen/pacman, +/obj/effect/turf_decal/industrial/warning, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/light_switch{ + pixel_y = 21; + pixel_x = -10 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/jungle/cavecrew/engineering) +"Rh" = ( +/obj/structure/spacevine, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"Ri" = ( +/turf/closed/wall/r_wall/syndicate/nodiagonal, +/area/ruin/jungle/cavecrew/dormitories) +"RE" = ( +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 4 + }, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"RL" = ( +/obj/structure/flora/grass/jungle, +/turf/open/floor/plating/dirt/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"RM" = ( +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"RP" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"RT" = ( +/obj/machinery/computer/crew/syndie{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/jungle/cavecrew/bridge) +"Sc" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/directional/west, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/ruin/powered) +"Sj" = ( +/obj/structure/grille, +/obj/structure/window/plasma/reinforced/plastitanium, +/turf/open/floor/plating, +/area/ruin/jungle/cavecrew/bridge) +"So" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"SH" = ( +/obj/machinery/porta_turret/syndicate/pod{ + dir = 5; + faction = list("frontiersman") + }, +/turf/closed/wall/r_wall/syndicate/nodiagonal, +/area/ship/storage) +"SI" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/obj/machinery/autolathe/hacked, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/jungle/cavecrew/engineering) +"SN" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/ruin/powered) +"ST" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ruin/jungle/cavecrew/hallway) +"SY" = ( +/obj/structure/railing{ + dir = 4; + layer = 3.1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-9" + }, +/turf/open/floor/plasteel, +/area/ruin/jungle/cavecrew/hallway) +"Tc" = ( +/obj/item/stack/ore/salvage/scrapmetal/five{ + pixel_x = -5; + pixel_y = -12 + }, +/turf/open/floor/plating/dirt/old, +/area/ruin/jungle/cavecrew/cargo) +"Th" = ( +/obj/effect/turf_decal/techfloor{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc/auto_name/directional/north, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/jungle/cavecrew/security) +"Ti" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/thinplating/dark, +/turf/open/floor/plasteel, +/area/ruin/jungle/cavecrew/hallway) +"Tt" = ( +/obj/effect/turf_decal/industrial/loading{ + dir = 4 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ruin/jungle/cavecrew/cargo) +"Ty" = ( +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"TD" = ( +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = 1; + pixel_y = 16 + }, +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = -15; + pixel_y = -5 + }, +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = 7; + pixel_y = 1 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"TJ" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating, +/area/ruin/jungle/cavecrew/dormitories) +"TY" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 1 + }, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/bridge) +"Ua" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/structure/chair/comfy/brown{ + color = "#66b266"; + dir = 4 + }, +/obj/item/book/manual/wiki/experimentor{ + pixel_x = 10; + pixel_y = -5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/glass, +/obj/machinery/light_switch{ + pixel_y = 21; + pixel_x = -10 + }, +/turf/open/floor/wood, +/area/ruin/jungle/cavecrew/dormitories) +"Ud" = ( +/obj/machinery/light/directional/west, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Ul" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/rust, +/area/ruin/jungle/cavecrew/cargo) +"Ur" = ( +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 8; + pixel_x = 8 + }, +/turf/open/floor/plating/rust, +/area/ruin/powered) +"Us" = ( +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 10 + }, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/item/stack/sheet/mineral/plasma/twenty{ + pixel_y = 7 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/jungle/cavecrew/engineering) +"Uy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light_switch{ + pixel_y = 21; + pixel_x = -10 + }, +/turf/open/floor/plasteel, +/area/ruin/jungle/cavecrew/hallway) +"UA" = ( +/obj/structure/spacevine, +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/cave/explored) +"UC" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 6 + }, +/obj/machinery/vending/tool, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/directional/east, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/jungle/cavecrew/engineering) +"UI" = ( +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/techfloor/hole, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/jungle/cavecrew/security) +"UJ" = ( +/obj/structure/table/wood/reinforced, +/obj/item/modular_computer/laptop/preset/civilian{ + pixel_x = -1; + pixel_y = 3 + }, +/obj/item/newspaper{ + pixel_x = 6; + pixel_y = 10 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc/auto_name/directional/north, +/turf/open/floor/plasteel/tech, +/area/ruin/jungle/cavecrew/bridge) +"UM" = ( +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 8 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"UP" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/plating/dirt/old, +/area/ruin/powered) +"UV" = ( +/obj/structure/flora/rock/pile/largejungle, +/turf/open/floor/plating/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"UY" = ( +/obj/structure/flora/rock/pile/largejungle{ + pixel_x = -1; + pixel_y = -37 + }, +/obj/structure/flora/rock/pile/largejungle{ + pixel_y = -11; + pixel_x = -1 + }, +/turf/open/floor/plating/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Vd" = ( +/obj/structure/flora/tree/jungle, +/obj/structure/flora/grass/jungle{ + pixel_x = -11; + pixel_y = 10 + }, +/obj/structure/flora/grass/jungle/b, +/obj/structure/flora/rock/pile/largejungle, +/turf/open/floor/plating/dirt/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"Vs" = ( +/obj/effect/turf_decal/weather/dirt/corner, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"Vu" = ( +/obj/effect/turf_decal/techfloor/hole{ + dir = 4; + pixel_x = 4 + }, +/obj/effect/turf_decal/techfloor/hole/right{ + dir = 4; + pixel_x = 4 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/grunge{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ruin/jungle/cavecrew/hallway) +"Vy" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/jungle/cavecrew/engineering) +"VO" = ( +/obj/structure/closet/secure_closet{ + icon_state = "armory"; + name = "armor locker"; + req_access_txt = "1" + }, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/effect/decal/cleanable/cobweb, +/obj/item/clothing/under/rank/security/officer/frontier, +/obj/item/clothing/under/rank/security/officer/frontier, +/obj/item/clothing/under/rank/security/officer/frontier, +/obj/item/clothing/suit/armor/vest/bulletproof/frontier, +/obj/item/clothing/suit/armor/vest/bulletproof/frontier, +/obj/item/clothing/suit/armor/vest/bulletproof/frontier, +/obj/item/clothing/head/helmet/bulletproof/x11/frontier, +/obj/item/clothing/head/helmet/bulletproof/x11/frontier, +/obj/item/clothing/head/helmet/bulletproof/x11/frontier, +/obj/machinery/light_switch{ + pixel_y = 21; + pixel_x = -10 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/jungle/cavecrew/security) +"VU" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/techfloor{ + dir = 9 + }, +/obj/effect/turf_decal/techfloor/corner, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/jungle/cavecrew/engineering) +"VV" = ( +/obj/machinery/light/directional/east, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"VW" = ( +/obj/structure/spacevine, +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 1 + }, +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 4 + }, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"VX" = ( +/obj/machinery/door/poddoor/shutters{ + id = "gut_cargo"; + name = "Blast Shutters"; + dir = 4 + }, +/turf/open/floor/engine/hull/interior, +/area/ship/storage) +"VY" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/effect/turf_decal/industrial/radiation{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/storage) +"VZ" = ( +/turf/closed/wall/r_wall/yesdiag, +/area/ruin/jungle/cavecrew/cargo) +"Wh" = ( +/obj/structure/flora/ausbushes/reedbush{ + pixel_y = 20 + }, +/obj/structure/flora/ausbushes/reedbush{ + pixel_x = -13; + pixel_y = 10 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/obj/structure/railing{ + dir = 6; + layer = 3.1 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"Wk" = ( +/obj/effect/turf_decal/siding/thinplating/dark, +/turf/open/floor/plasteel, +/area/ruin/jungle/cavecrew/hallway) +"Wq" = ( +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/storage) +"Wu" = ( +/obj/structure/table/reinforced, +/obj/item/storage/box/zipties{ + pixel_y = 7; + pixel_x = 4 + }, +/obj/item/storage/box/syndie_kit/emp{ + pixel_x = -3 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/jungle/cavecrew/security) +"Wy" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/ruin/powered) +"WD" = ( +/obj/structure/toilet{ + dir = 4; + pixel_x = -1; + pixel_y = 5 + }, +/obj/structure/sink{ + pixel_y = 22; + pixel_x = 6 + }, +/obj/structure/mirror{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/jungle/cavecrew/hallway) +"WE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/jungle/cavecrew/hallway) +"WN" = ( +/obj/structure/flora/rock/jungle{ + pixel_y = 13 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/turf/open/water/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"WQ" = ( +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/structure/closet/crate/secure/loot, +/obj/item/storage/box/inteqmaid{ + pixel_x = -5; + pixel_y = 3 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ruin/jungle/cavecrew/cargo) +"Xb" = ( +/turf/open/floor/plating/dirt/jungle, +/area/ruin/powered) +"Xx" = ( +/mob/living/simple_animal/hostile/frontier/ranged/mosin/neutered, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"XM" = ( +/obj/structure/flora/grass/jungle{ + pixel_x = 6; + pixel_y = -22 + }, +/obj/structure/flora/junglebush/b, +/turf/open/floor/plating/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"XU" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/ruin/powered) +"XV" = ( +/turf/open/floor/plasteel/stairs{ + dir = 1 + }, +/area/ship/storage) +"Ya" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/rock/pile/largejungle, +/turf/open/floor/plating/dirt/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"Yf" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/jukebox, +/turf/open/floor/wood{ + icon_state = "wood-broken3" + }, +/area/ruin/jungle/cavecrew/hallway) +"Yq" = ( +/obj/structure/table/wood, +/obj/item/toy/cards/deck/syndicate{ + pixel_x = -4; + pixel_y = 1 + }, +/obj/item/toy/figure{ + pixel_x = -3; + pixel_y = 8 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/ruin/jungle/cavecrew/hallway) +"Yw" = ( +/turf/open/floor/plasteel/stairs{ + icon = 'icons/obj/stairs.dmi'; + dir = 1 + }, +/area/ship/storage) +"YE" = ( +/obj/effect/turf_decal/techfloor{ + dir = 9 + }, +/obj/structure/table/wood, +/obj/item/storage/fancy/nugget_box, +/obj/machinery/light_switch{ + pixel_y = 21; + pixel_x = -10 + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/jungle/cavecrew/security) +"YF" = ( +/turf/open/floor/plating/dirt/jungle/dark/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"YL" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/dirt/old, +/area/ruin/powered) +"YN" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/turf_decal/steeldecal/steel_decals1, +/turf/open/floor/plasteel/dark, +/area/ruin/jungle/cavecrew/bridge) +"YR" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/structure/fluff/fokoff_sign, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"YS" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/ruin/jungle/cavecrew/hallway) +"Za" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-5" + }, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"Zd" = ( +/obj/structure/flora/grass/jungle{ + pixel_x = -13; + pixel_y = -14 + }, +/obj/structure/flora/rock/pile/largejungle, +/turf/open/floor/plating/dirt/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"Zi" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/structure/filingcabinet{ + pixel_x = -9 + }, +/obj/item/kirbyplants{ + icon_state = "plant-03"; + pixel_x = 6 + }, +/obj/machinery/light_switch{ + pixel_y = 21; + pixel_x = -10 + }, +/turf/open/floor/wood, +/area/ruin/jungle/cavecrew/dormitories) +"Zr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/patterned, +/area/ruin/jungle/cavecrew/cargo) +"Zx" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 10 + }, +/obj/structure/rack, +/obj/item/storage/toolbox/electrical, +/obj/item/storage/belt/utility/full/engi, +/obj/item/clothing/glasses/welding{ + pixel_y = 5 + }, +/obj/item/multitool{ + pixel_x = 9 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc/auto_name/directional/north, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/jungle/cavecrew/engineering) +"Zy" = ( +/obj/effect/mob_spawn/human/corpse/pirate, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"Zz" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8; + name = "tactical chair" + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8; + color = "#808080" + }, +/obj/machinery/light/directional/east, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"ZC" = ( +/obj/effect/turf_decal/techfloor{ + dir = 9 + }, +/obj/machinery/computer/helm, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/storage) +"ZG" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/structure/flora/ausbushes/stalkybush{ + pixel_x = -8; + pixel_y = 3 + }, +/turf/open/water/jungle/lit, +/area/overmap_encounter/planetoid/jungle/explored) +"ZQ" = ( +/obj/structure/flora/rock/pile/largejungle{ + pixel_x = -20; + pixel_y = -31 + }, +/turf/open/floor/plating/dirt/jungle, +/area/overmap_encounter/planetoid/cave/explored) +"ZT" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/structure/dresser, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/newspaper{ + pixel_x = -4; + pixel_y = 8 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/wood, +/area/ruin/jungle/cavecrew/dormitories) + +(1,1,1) = {" +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +wt +wt +wt +wt +wt +wt +wt +wt +wt +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +"} +(2,1,1) = {" +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +es +Ma +Ma +YF +Ma +Ma +Ma +es +es +es +es +es +es +es +es +"} +(3,1,1) = {" +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +wt +wt +wt +wt +wt +wt +wt +Pz +Pz +Pz +Pz +wt +wt +wt +wt +wt +wt +wt +wt +Ma +EI +Ma +Qz +Ma +Ma +es +es +es +es +es +es +"} +(4,1,1) = {" +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +wt +wt +wt +wt +wt +wt +wt +wt +wt +Pz +dm +pn +Pz +wt +wt +wt +wt +wt +wt +wt +wt +wt +Ma +Ma +YF +Ma +Ns +Ma +es +es +es +es +es +"} +(5,1,1) = {" +es +es +es +es +es +es +es +es +es +es +es +es +es +es +RM +RM +RM +RM +RM +RM +RM +es +es +es +es +es +es +es +es +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +Pz +VU +QH +Pz +Pz +Pz +wt +wt +wt +wt +wt +wt +wt +wt +jO +Qx +YF +lI +Ma +es +es +es +es +es +"} +(6,1,1) = {" +es +es +es +wt +wt +wt +wt +wt +wt +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +es +es +es +es +es +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +Pz +Bp +gM +xi +SI +Pz +wN +wN +wN +wN +wN +wt +wt +wt +rx +Ma +ij +wt +Ma +es +es +es +es +es +"} +(7,1,1) = {" +es +es +wt +wt +wt +wt +wt +wt +wt +wt +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +es +wt +wt +wt +wt +wt +wt +wt +wt +Nr +Nr +Nr +Nr +Nr +Pz +mb +CN +CZ +Vy +Pz +wN +VO +OU +Wu +wN +wt +wt +Kw +ov +Jh +Lm +wt +wt +es +es +es +es +es +"} +(8,1,1) = {" +es +es +wt +wt +wt +iW +iW +wt +wt +wt +wt +RM +MR +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +wt +wt +wt +wt +wt +wt +wt +wt +wt +Nr +Nr +lV +zJ +gm +Pz +Rd +Us +kR +ag +Pz +mt +np +dH +gk +wN +wN +wt +Kw +Ln +Kw +wt +wt +wt +wt +es +es +es +es +"} +(9,1,1) = {" +es +es +wt +wt +MW +RP +NR +NR +wt +wt +wt +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +Nr +Nr +Yq +dQ +Qy +Ge +Pz +Zx +wr +ja +kH +Pz +MY +am +Bt +af +ae +wN +wt +wt +yx +Jz +wt +wt +wt +wt +wt +es +es +es +"} +(10,1,1) = {" +es +es +wt +wt +Dz +VW +yX +yX +Rh +wt +wt +wt +RM +RM +RM +RM +RM +RM +RM +MR +RM +RM +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +Nr +Bz +aK +dO +Gk +xn +Pz +UC +Iv +Pz +lu +jm +wN +qz +LD +DP +vo +wN +Ri +Ri +aY +Ri +wt +wt +wt +wt +wt +wt +es +es +"} +(11,1,1) = {" +es +es +wt +wt +wt +NL +lt +wt +jg +wt +wt +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +Nr +jr +uo +mz +fv +Nr +Nr +Nr +Nr +Nr +ah +Ti +wN +wN +Th +nv +wN +wN +Ri +BU +we +Ri +Ri +wt +wt +wt +wt +wt +es +es +"} +(12,1,1) = {" +es +es +wt +wt +wt +wt +wt +wt +bK +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +lm +lm +lm +lm +lm +tu +AK +Yf +Nr +WD +zN +Nr +Nr +Uy +Oe +wN +YE +ds +UI +jF +JK +Ri +sJ +TJ +yW +Ri +wt +wt +wt +wt +wt +es +es +"} +(13,1,1) = {" +es +es +es +wt +wt +wt +RM +RM +RM +RM +RM +Vs +uq +Al +fG +RM +RM +RM +RM +wt +wt +wt +wt +wt +mj +pB +wt +wt +wt +lm +lm +RT +Ag +TY +lm +Nr +aL +Nr +Nr +Kh +Nr +Nr +KM +ad +ck +Oi +hz +px +xv +xI +cZ +Ri +Ri +un +Ri +Ri +wt +wt +wt +wt +wt +wt +es +"} +(14,1,1) = {" +es +es +es +es +RM +RM +RM +RM +RM +Vs +Al +xu +Ma +Ma +ZG +Al +wt +wt +wt +wt +wt +wt +wt +WQ +aZ +aa +ed +eW +wt +lm +UJ +iE +sj +Ie +lm +Jt +ST +Nn +MT +rK +Nn +WE +jA +fy +YS +wN +wG +kO +Np +wg +Eb +Ri +xG +mw +Ri +Ri +wt +wt +wt +wt +wt +wt +es +"} +(15,1,1) = {" +es +es +es +RM +RM +RM +RM +RM +Vs +xu +Ma +Ma +ht +Es +Qx +wt +wt +wt +wt +wt +wt +wt +qO +Dq +qx +pB +qx +LV +wt +lm +vM +KW +wZ +Af +AV +CJ +uX +gU +DV +DV +aw +Mm +NK +YS +Nr +wN +wN +uf +wN +wN +wN +Ri +ua +jC +mI +Ri +wt +wt +wt +wt +wt +wt +wt +"} +(16,1,1) = {" +es +es +RM +RM +RM +RM +RM +RM +Dd +Ma +Df +Ma +Qx +Ya +wt +wt +wt +wt +wt +wt +rt +QG +oq +JO +Ul +ks +Nc +Oa +Jz +lm +lm +nu +YN +Em +Bv +SY +aM +Pg +Nr +Nr +Nr +Nr +Nr +Nr +Nr +fS +va +Ms +IJ +fS +fS +Ri +uu +hh +Be +Ri +wt +wt +wt +wt +wt +wt +wt +"} +(17,1,1) = {" +es +RM +RM +RM +RM +RM +RM +RM +Dd +RL +RL +RL +Qz +wt +wt +wt +wt +wt +wt +vr +uK +pL +oq +nt +oH +xr +nt +Tt +wt +lm +Sj +Lo +iq +gd +lm +bU +ef +Wk +Nr +fS +fS +fS +iV +fS +fS +fS +ih +rT +dI +Ep +fS +Ri +Ri +cx +Ri +Ri +Ri +Ri +Ri +Ri +Ri +wt +wt +"} +(18,1,1) = {" +es +RM +RM +RM +RM +RM +RM +RM +Dd +Ma +Ma +ke +Es +wt +wt +wt +wt +wt +qO +Zr +Mv +pL +oW +JB +aI +JB +JB +Cc +cK +oR +Sj +Sj +ei +bh +lm +Nr +Vu +Nr +Nr +fS +fS +lT +Sc +Qr +mu +mu +mu +kb +kb +Ep +mu +PS +dA +dA +zj +Iz +Ri +sH +IZ +fI +Ri +wt +wt +"} +(19,1,1) = {" +RM +RM +RM +RM +RM +RM +RM +RM +RE +dJ +Ma +Ya +wH +wt +wt +wt +wt +wt +wt +oU +CU +xx +Gm +yJ +HI +rr +HI +Tc +dA +Ix +JQ +Sj +Sj +Sj +gQ +mK +hf +Fw +Nr +fS +mC +EG +PU +to +PU +PU +XU +Mg +LB +CC +YL +YL +YL +YL +YL +Kz +yk +eQ +JJ +yj +Ri +wt +wt +"} +(20,1,1) = {" +RM +RM +RM +RM +RM +RM +RM +RM +RM +Dd +Ma +Ma +Es +Kw +wt +wt +wt +wt +wt +wt +xx +nV +yA +yJ +yV +yD +MC +Mn +bb +dI +No +kb +bb +Pv +tj +Wy +jj +bb +fN +fA +tO +kB +Ep +wt +wt +wt +wt +wt +Jz +wt +EP +zX +Ej +na +CF +KA +Ri +Nl +HD +Ri +Ri +wt +wt +"} +(21,1,1) = {" +RM +RM +RM +RM +RM +RM +RM +RM +RM +RE +yX +YR +NW +Qx +wt +Nf +wt +wt +wt +wt +wt +wt +Nj +yV +dT +lz +FB +pt +aQ +aQ +lG +SN +yZ +to +EG +ng +KK +EG +OZ +EO +yZ +tL +wt +Jz +wt +fg +cX +wt +wt +wt +wt +OK +rA +Ej +CF +rN +Ri +Ri +Ri +Ri +wt +wt +wt +"} +(22,1,1) = {" +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +cV +yX +yX +RM +qU +qU +Nf +wt +Jz +wt +wt +JA +eu +IA +eu +VZ +Nu +Ur +rQ +bp +AR +AR +AR +AR +AR +AR +AR +AR +AR +AR +AR +Ty +Ud +eO +ye +lR +wt +Jz +wt +WN +Ty +Ty +lD +Cq +CF +Ri +Ua +Is +Ri +wt +wt +wt +"} +(23,1,1) = {" +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +uC +qU +tY +jd +Go +Ll +Ty +nq +Ty +Ty +Ty +BI +mD +VX +vk +fO +Ty +Ty +eS +ue +ue +ue +fO +fO +zz +Ty +Ty +Ty +Ty +Ty +eO +tE +UA +Ud +FY +Ty +lY +Ty +lD +Lw +CF +yk +Cr +ZT +Ri +wt +wt +wt +"} +(24,1,1) = {" +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +uC +QE +tY +jd +Ty +Ty +Ty +Ty +Ty +Ty +Ty +fO +Gh +nR +Pj +fO +fO +fO +fO +ZC +Kb +Yw +Dt +VY +fO +fO +Ty +Ty +Ty +Jg +Ty +Ty +Ir +Ir +TD +Ty +Ty +Ty +lD +Lw +UP +Ri +II +bH +Ri +wt +wt +wt +"} +(25,1,1) = {" +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +Zy +uC +qU +Ir +Ty +Ll +Dh +Lv +Ty +Jg +Ty +Ty +fO +JY +nR +iZ +Kx +BO +Ec +fO +jy +Wq +Yw +GL +sm +xT +NN +Ty +Ty +Ty +Ty +Ty +Ty +Ir +bG +wt +Qi +Ty +lS +Wh +CF +HL +Ri +kV +Ri +Ri +wt +wt +wt +"} +(26,1,1) = {" +es +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +uC +qU +Ir +jd +Ty +Ll +kL +Ty +Ty +Ty +Ty +fO +iN +Xx +QI +Ka +fs +PR +wu +Hx +Ls +vl +Za +og +yv +KF +Ty +Ty +Ty +Ty +Ty +Jg +Ir +wt +wt +wt +ig +Dv +Xb +dA +GN +Ri +Ri +Ri +wt +wt +wt +wt +"} +(27,1,1) = {" +es +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +uC +qU +jd +Ir +Dh +Jg +Ty +Ty +Ty +Ty +Ty +fO +KH +CT +NH +la +nh +PG +XV +nR +QN +IN +Gy +xR +ow +KF +Ty +Ty +Ty +Ty +Ty +Ty +Ty +wt +wt +Ri +Ri +Ri +Ri +OJ +Ri +wt +wt +wt +wt +wt +wt +wt +"} +(28,1,1) = {" +es +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +uC +qU +Ir +Ir +Ty +Lv +Ty +Ty +Ty +Ty +Ty +ho +EZ +hn +eD +fO +fO +fO +fO +xj +Qh +ju +Zz +cU +fO +fO +Ty +Ty +Ty +Ty +VV +iT +wt +wt +Ri +Ri +Zi +jh +yC +PB +Ri +wt +wt +wt +wt +wt +wt +wt +"} +(29,1,1) = {" +es +es +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +qU +oD +Ir +Ir +Dh +ku +Ty +Ty +Ty +Ty +Ty +SH +fO +fO +fO +fO +Ty +Ty +fo +fO +fO +fO +fO +fO +zz +Ty +Ty +Ty +kQ +wt +Jz +wt +wt +wt +Ri +QX +Fy +jZ +ta +hh +Ri +wt +wt +wt +wt +wt +wt +wt +"} +(30,1,1) = {" +es +es +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +qU +jd +Ir +sM +VV +Ty +Dh +Ty +Ty +Ty +Ty +Ty +Ty +Ty +Ty +Ty +Ty +Ty +Ty +Ty +Ty +Ty +Fr +So +So +Ty +Ty +Ty +wt +wt +wt +wt +wt +wt +Ri +Dg +zV +gF +Lb +Ri +Ri +wt +wt +wt +wt +wt +wt +es +"} +(31,1,1) = {" +es +es +RM +RM +RM +RM +RM +RM +RM +RM +DJ +RM +RM +RM +RM +wt +Ir +Nf +wt +Jz +wt +vH +vH +So +So +UM +Ty +Ty +Ty +Jm +Ty +Ty +Ty +Ty +Ty +Fr +So +kQ +aO +UV +Qi +Ty +wt +wt +wt +wt +wt +wt +wt +Ri +Ri +Ri +Ri +Ri +Ri +wt +wt +wt +wt +wt +wt +wt +es +"} +(32,1,1) = {" +es +es +RM +RM +RM +RM +RM +RM +RM +RM +BT +Vs +Al +xu +wt +wt +wt +wt +wt +wt +wt +wt +wt +GR +rn +tW +So +BR +Jg +Ty +Ty +Ty +Ty +Ty +Ty +pb +UY +Fs +ZQ +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +es +"} +(33,1,1) = {" +es +es +es +RM +RM +RM +RM +RM +RM +RM +Vs +xu +HW +Ma +wt +wt +wt +wt +wt +wt +wt +wt +wt +Jz +kj +XM +HQ +tW +vH +So +vH +So +So +Ty +VV +pb +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +es +"} +(34,1,1) = {" +es +es +es +es +RM +RM +RM +RM +RM +RM +Dd +Ma +kA +Ma +Kw +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +bJ +lo +Fs +Ap +Fs +gv +Iu +UV +wt +Jz +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +es +"} +(35,1,1) = {" +es +es +es +es +RM +RM +RM +RM +RM +RM +Dd +Ma +Vd +Ma +Qx +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +Kw +At +UV +HQ +eG +Kw +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +es +"} +(36,1,1) = {" +es +es +es +es +es +RM +RM +RM +RM +RM +Dd +zG +Ma +Es +Zd +Ma +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +es +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +es +es +"} +(37,1,1) = {" +es +es +es +es +es +RM +RM +RM +RM +RM +Dd +dd +Qx +zG +Ma +RL +Hk +Ma +Dl +RM +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +es +es +es +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +es +es +"} +(38,1,1) = {" +es +es +es +es +es +es +RM +RM +RM +RM +RE +dJ +Es +tQ +Ly +oQ +Ma +Ma +IM +RM +RM +RM +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +es +es +es +es +es +es +wt +wt +wt +wt +wt +wt +wt +wt +wt +es +es +es +"} +(39,1,1) = {" +es +es +es +es +es +es +RM +RM +RM +RM +RM +RE +Ql +dJ +Es +RL +Dl +yX +lg +RM +RM +RM +RM +RM +RM +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +es +es +es +es +es +es +es +es +wt +wt +wt +wt +wt +es +es +es +es +es +"} +(40,1,1) = {" +es +es +es +es +es +es +es +RM +RM +RM +RM +RM +RM +RE +yX +yX +lg +RM +RM +RM +RM +RM +RM +RM +RM +es +es +es +es +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +"} +(41,1,1) = {" +es +es +es +es +es +es +es +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +MR +RM +RM +RM +RM +RM +es +es +es +es +es +es +es +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +wt +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +"} +(42,1,1) = {" +es +es +es +es +es +es +es +es +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +es +es +es +es +es +es +es +es +es +es +es +wt +wt +wt +wt +wt +wt +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +"} +(43,1,1) = {" +es +es +es +es +es +es +es +es +es +es +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +RM +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +es +"} diff --git a/_maps/RandomRuins/JungleRuins/jungle_demon.dmm b/_maps/RandomRuins/JungleRuins/jungle_demon.dmm index 950fe8863dc4..3e1476a84861 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_demon.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_demon.dmm @@ -157,7 +157,7 @@ /area/ruin/powered) "pm" = ( /obj/structure/table/reinforced, -/obj/item/upgradescroll, +/obj/item/paper, /turf/open/floor/plasteel/dark, /area/ruin/powered) "pE" = ( @@ -220,9 +220,27 @@ /turf/open/floor/plasteel/dark, /area/ruin/powered) "tR" = ( -/obj/structure/closet/gimmick/russian, +/obj/structure/railing{ + dir = 8 + }, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/mask/gas/syndicate, +/obj/item/clothing/under/syndicate, +/obj/structure/closet/syndicate{ + desc = "It's a basic storage unit."; + name = "uniform closet" + }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/old, +/obj/item/clothing/under/syndicate, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/mask/gas/syndicate, +/obj/item/clothing/head/helmet/operator, +/obj/item/clothing/head/helmet/operator, +/obj/item/clothing/suit/armor/vest/syndie, +/obj/item/clothing/suit/armor/vest/syndie, +/obj/item/clothing/gloves/combat, +/obj/item/clothing/gloves/combat, /turf/open/floor/plasteel/dark, /area/ruin/powered) "uj" = ( @@ -494,8 +512,11 @@ /turf/open/floor/plasteel/dark, /area/ruin/powered) "PA" = ( -/obj/machinery/suit_storage_unit/syndicate, /obj/effect/decal/cleanable/dirt, +/obj/machinery/suit_storage_unit/inherit, +/obj/item/clothing/suit/space/hardsuit/syndi/scarlet, +/obj/item/clothing/mask/breath, +/obj/item/tank/internals/oxygen/red, /turf/open/floor/plasteel/dark, /area/ruin/powered) "QI" = ( diff --git a/_maps/RandomRuins/JungleRuins/jungle_spider.dmm b/_maps/RandomRuins/JungleRuins/jungle_spider.dmm deleted file mode 100644 index 14c11868d3af..000000000000 --- a/_maps/RandomRuins/JungleRuins/jungle_spider.dmm +++ /dev/null @@ -1,266 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( -/turf/template_noop, -/area/template_noop) -"c" = ( -/obj/structure/flora/tree/jungle, -/turf/open/floor/plating/dirt/jungle/lit, -/area/overmap_encounter/planetoid/jungle/explored) -"e" = ( -/obj/structure/spider/stickyweb, -/obj/item/reagent_containers/food/snacks/spidereggs, -/turf/open/floor/plating/dirt/jungle/lit, -/area/overmap_encounter/planetoid/jungle/explored) -"f" = ( -/obj/structure/spider/stickyweb, -/turf/open/floor/plating/dirt/jungle/lit, -/area/overmap_encounter/planetoid/jungle/explored) -"g" = ( -/obj/structure/spider/stickyweb, -/obj/machinery/door/airlock/research, -/turf/open/floor/plating/dirt/jungle/dark/lit, -/area/overmap_encounter/planetoid/jungle/explored) -"i" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/dirt/jungle/lit, -/area/overmap_encounter/planetoid/jungle/explored) -"j" = ( -/obj/effect/decal/cleanable/glass, -/obj/structure/barricade/wooden, -/obj/structure/grille/broken, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/overmap_encounter/planetoid/jungle/explored) -"k" = ( -/obj/effect/decal/remains/human, -/obj/item/clothing/head/helmet/swat/nanotrasen, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plating, -/area/overmap_encounter/planetoid/jungle/explored) -"l" = ( -/obj/structure/spider/spiderling, -/turf/open/floor/plating/dirt/jungle/dark/lit, -/area/overmap_encounter/planetoid/jungle/explored) -"m" = ( -/mob/living/simple_animal/hostile/poison/giant_spider/nurse, -/turf/open/floor/plating/dirt/jungle/lit, -/area/overmap_encounter/planetoid/jungle/explored) -"o" = ( -/obj/structure/spider/stickyweb, -/turf/open/floor/plating/dirt/jungle/dark/lit, -/area/overmap_encounter/planetoid/jungle/explored) -"q" = ( -/obj/effect/decal/cleanable/glass, -/obj/structure/barricade/wooden, -/obj/structure/grille/broken, -/turf/open/floor/plating/dirt/jungle/lit, -/area/overmap_encounter/planetoid/jungle/explored) -"r" = ( -/turf/open/floor/plating/dirt/jungle/lit, -/area/overmap_encounter/planetoid/jungle/explored) -"s" = ( -/obj/item/paper/guides/jobs/medical/cloning, -/turf/open/floor/plating, -/area/overmap_encounter/planetoid/jungle/explored) -"t" = ( -/obj/structure/spider/spiderling, -/turf/open/floor/plating/dirt/jungle/lit, -/area/overmap_encounter/planetoid/jungle/explored) -"u" = ( -/obj/structure/spider/stickyweb, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/dirt/jungle/lit, -/area/overmap_encounter/planetoid/jungle/explored) -"v" = ( -/obj/structure/spider/spiderling, -/obj/structure/spider/cocoon, -/obj/item/pda/geneticist, -/obj/effect/decal/cleanable/blood, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/circuitboard/machine/dnascanner, -/obj/item/circuitboard/computer/cloning, -/turf/open/floor/plating/dirt/jungle/lit, -/area/overmap_encounter/planetoid/jungle/explored) -"w" = ( -/obj/machinery/clonepod, -/turf/open/floor/plating, -/area/overmap_encounter/planetoid/jungle/explored) -"x" = ( -/obj/effect/decal/cleanable/insectguts, -/obj/machinery/door/airlock/research, -/turf/open/floor/plating, -/area/overmap_encounter/planetoid/jungle/explored) -"y" = ( -/turf/open/floor/plating/dirt/jungle/dark/lit, -/area/overmap_encounter/planetoid/jungle/explored) -"A" = ( -/obj/structure/closet/wardrobe/genetics_white, -/obj/item/storage/firstaid/toxin, -/turf/open/floor/plating, -/area/overmap_encounter/planetoid/jungle/explored) -"C" = ( -/obj/item/storage/belt/security/webbing, -/turf/open/floor/plating/dirt/jungle/dark/lit, -/area/overmap_encounter/planetoid/jungle/explored) -"D" = ( -/obj/effect/decal/cleanable/ash/large, -/turf/open/floor/plating, -/area/overmap_encounter/planetoid/jungle/explored) -"G" = ( -/obj/structure/spider/spiderling, -/obj/structure/spider/cocoon, -/obj/item/research_notes/loot/medium, -/turf/open/floor/plating, -/area/overmap_encounter/planetoid/jungle/explored) -"I" = ( -/obj/structure/spider/stickyweb, -/obj/item/organ/heart/gland/spiderman, -/obj/structure/closet/crate/freezer, -/obj/item/reagent_containers/food/snacks/spiderlollipop, -/obj/item/reagent_containers/food/snacks/spiderlollipop, -/obj/item/reagent_containers/food/snacks/spiderlollipop, -/turf/open/floor/plating, -/area/overmap_encounter/planetoid/jungle/explored) -"K" = ( -/turf/closed/wall/rust, -/area/overmap_encounter/planetoid/jungle/explored) -"L" = ( -/obj/effect/decal/cleanable/glass, -/obj/structure/barricade/wooden, -/obj/structure/grille/broken, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/dirt/jungle/lit, -/area/overmap_encounter/planetoid/jungle/explored) -"M" = ( -/obj/structure/spider/spiderling, -/obj/effect/decal/cleanable/insectguts, -/turf/open/floor/plating/dirt/jungle/lit, -/area/overmap_encounter/planetoid/jungle/explored) -"N" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/mob/living/simple_animal/hostile/poison/giant_spider/nurse, -/turf/open/floor/plating/dirt/jungle/dark/lit, -/area/overmap_encounter/planetoid/jungle/explored) -"O" = ( -/obj/item/melee/flyswatter, -/obj/item/reagent_containers/spray/pestspray, -/turf/open/floor/plating/dirt/jungle/lit, -/area/overmap_encounter/planetoid/jungle/explored) -"P" = ( -/obj/effect/decal/cleanable/glass, -/obj/structure/barricade/wooden, -/obj/structure/grille/broken, -/obj/structure/spider/stickyweb, -/turf/open/floor/plating, -/area/overmap_encounter/planetoid/jungle/explored) -"Q" = ( -/obj/effect/decal/cleanable/glass, -/obj/structure/barricade/wooden, -/obj/structure/grille/broken, -/turf/open/floor/plating, -/area/overmap_encounter/planetoid/jungle/explored) -"T" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/overmap_encounter/planetoid/jungle/explored) -"U" = ( -/obj/structure/spider/stickyweb, -/obj/effect/decal/cleanable/insectguts, -/turf/open/floor/plating/dirt/jungle/dark/lit, -/area/overmap_encounter/planetoid/jungle/explored) -"V" = ( -/obj/effect/decal/cleanable/insectguts, -/turf/open/floor/plating/dirt/jungle/lit, -/area/overmap_encounter/planetoid/jungle/explored) -"W" = ( -/obj/item/flamethrower, -/obj/item/tank/internals/plasma/full, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/dirt/jungle/dark/lit, -/area/overmap_encounter/planetoid/jungle/explored) -"X" = ( -/obj/effect/decal/cleanable/cobweb, -/obj/structure/spider/stickyweb, -/mob/living/simple_animal/hostile/poison/giant_spider, -/obj/item/reagent_containers/food/snacks/spidereggs, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/overmap_encounter/planetoid/jungle/explored) - -(1,1,1) = {" -K -K -K -P -K -K -M -r -a -"} -(2,1,1) = {" -K -X -e -f -v -L -o -i -c -"} -(3,1,1) = {" -K -I -u -m -A -K -f -o -f -"} -(4,1,1) = {" -K -U -l -W -w -g -o -f -t -"} -(5,1,1) = {" -P -f -C -k -s -x -O -y -V -"} -(6,1,1) = {" -q -N -T -D -G -j -i -r -a -"} -(7,1,1) = {" -K -K -Q -K -K -K -f -a -a -"} diff --git a/_maps/RandomRuins/RockRuins/rockplanet_clock.dmm b/_maps/RandomRuins/RockRuins/rockplanet_clock.dmm deleted file mode 100644 index 3a8da9995006..000000000000 --- a/_maps/RandomRuins/RockRuins/rockplanet_clock.dmm +++ /dev/null @@ -1,628 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"br" = ( -/obj/structure/table/bronze, -/obj/item/toy/clockwork_watch, -/turf/open/floor/bronze, -/area/ruin/powered) -"bw" = ( -/obj/structure/girder/bronze, -/turf/open/floor/bronze, -/area/ruin/powered) -"by" = ( -/obj/structure/fluff/clockwork/clockgolem_remains, -/turf/open/floor/bronze, -/area/ruin/powered) -"cn" = ( -/obj/item/clothing/shoes/sandal/magic, -/obj/structure/table/bronze, -/turf/open/floor/bronze, -/area/ruin/powered) -"ct" = ( -/obj/structure/fluff/clockwork/alloy_shards/medium_gearbit, -/turf/open/floor/bronze, -/area/ruin/powered) -"fy" = ( -/obj/item/golem_shell/servant, -/turf/open/floor/bronze, -/area/ruin/powered) -"fK" = ( -/obj/machinery/computer/monitor{ - dir = 4 - }, -/turf/open/floor/bronze, -/area/ruin/powered) -"gA" = ( -/obj/machinery/computer/message_monitor{ - dir = 8 - }, -/turf/open/floor/bronze, -/area/ruin/powered) -"hb" = ( -/mob/living/simple_animal/hostile/jungle/mook, -/turf/open/floor/bronze, -/area/ruin/powered) -"hm" = ( -/obj/effect/decal/cleanable/blood/old, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/bronze, -/area/ruin/powered) -"hn" = ( -/obj/effect/decal/cleanable/garbage, -/turf/open/floor/bronze, -/area/ruin/powered) -"hU" = ( -/obj/machinery/computer/teleporter, -/turf/open/floor/bronze, -/area/ruin/powered) -"iX" = ( -/obj/structure/girder/bronze, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/bronze, -/area/ruin/powered) -"iY" = ( -/obj/machinery/door/airlock/bronze/seethru, -/obj/structure/trap/chill, -/turf/open/floor/bronze, -/area/ruin/powered) -"jG" = ( -/obj/effect/decal/cleanable/dirt/dust, -/mob/living/simple_animal/hostile/jungle/mook, -/turf/open/floor/bronze, -/area/ruin/powered) -"jK" = ( -/obj/effect/decal/cleanable/robot_debris/limb, -/turf/open/floor/bronze, -/area/ruin/powered) -"kd" = ( -/obj/structure/fluff/clockwork/alloy_shards/medium_gearbit, -/obj/structure/chair/comfy/shuttle/bronze{ - dir = 4 - }, -/turf/open/floor/bronze, -/area/ruin/powered) -"ks" = ( -/obj/structure/girder/bronze, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/bronze, -/area/ruin/powered) -"lm" = ( -/obj/structure/fluff/clockwork/alloy_shards, -/turf/open/floor/bronze, -/area/ruin/powered) -"mG" = ( -/obj/structure/chair/comfy/shuttle/bronze, -/turf/open/floor/bronze, -/area/ruin/powered) -"nM" = ( -/obj/machinery/door/airlock/bronze, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/bronze, -/area/ruin/powered) -"oj" = ( -/obj/structure/fluff/clockwork/alloy_shards, -/turf/open/floor/plating/asteroid/rockplanet/lit, -/area/overmap_encounter/planetoid/rockplanet/explored) -"oW" = ( -/mob/living/simple_animal/hostile/jungle/mook, -/turf/open/floor/plating/asteroid/rockplanet/lit, -/area/overmap_encounter/planetoid/rockplanet/explored) -"pi" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/trap/fire, -/turf/open/floor/bronze, -/area/ruin/powered) -"pt" = ( -/obj/item/gun/magic/wand/nothing, -/obj/structure/table/bronze, -/turf/open/floor/bronze, -/area/ruin/powered) -"pV" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/bronze, -/area/ruin/powered) -"rM" = ( -/obj/structure/table/bronze, -/obj/item/stack/tile/bronze/thirty, -/turf/open/floor/bronze, -/area/ruin/powered) -"sS" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/trap/stun, -/turf/open/floor/bronze, -/area/ruin/powered) -"tg" = ( -/obj/structure/fluff/clockwork/alloy_shards, -/obj/machinery/quantumpad, -/turf/open/floor/bronze, -/area/ruin/powered) -"tI" = ( -/obj/effect/decal/cleanable/greenglow, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/bronze, -/area/ruin/powered) -"uk" = ( -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/bronze, -/area/ruin/powered) -"ur" = ( -/obj/machinery/quantumpad, -/obj/structure/trap/damage, -/turf/open/floor/bronze, -/area/ruin/powered) -"uM" = ( -/obj/item/clothing/under/color/black, -/obj/structure/table/bronze, -/turf/open/floor/bronze, -/area/ruin/powered) -"uS" = ( -/obj/structure/fluff/clockwork/clockgolem_remains, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/bronze, -/area/ruin/powered) -"wq" = ( -/obj/machinery/power/smes, -/turf/open/floor/bronze, -/area/ruin/powered) -"wv" = ( -/obj/effect/decal/cleanable/robot_debris, -/turf/open/floor/bronze, -/area/ruin/powered) -"xb" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/closed/wall/mineral/bronze, -/area/ruin/powered) -"xt" = ( -/obj/structure/fluff/clockwork/alloy_shards/medium_gearbit, -/obj/structure/closet/crate/grave/loot, -/turf/open/floor/plating/asteroid/rockplanet/lit, -/area/overmap_encounter/planetoid/rockplanet/explored) -"xV" = ( -/obj/structure/chair/comfy/shuttle/bronze{ - dir = 4 - }, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/bronze, -/area/ruin/powered) -"zj" = ( -/obj/effect/decal/cleanable/robot_debris/old, -/turf/open/floor/bronze, -/area/ruin/powered) -"zz" = ( -/obj/structure/chair/comfy/shuttle/bronze, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/bronze, -/area/ruin/powered) -"Bh" = ( -/obj/machinery/door/airlock/bronze/seethru, -/turf/open/floor/bronze, -/area/ruin/powered) -"BX" = ( -/obj/structure/lattice, -/turf/open/floor/plating/asteroid/rockplanet/lit, -/area/overmap_encounter/planetoid/rockplanet/explored) -"Ci" = ( -/obj/structure/table/bronze, -/obj/item/clothing/suit/bronze, -/turf/open/floor/bronze, -/area/ruin/powered) -"DL" = ( -/obj/structure/table/bronze, -/obj/item/stack/sheet/glass/fifty, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/bronze, -/area/ruin/powered) -"EB" = ( -/obj/structure/closet/crate/grave/loot, -/turf/open/floor/plating/asteroid/rockplanet/lit, -/area/overmap_encounter/planetoid/rockplanet/explored) -"FE" = ( -/obj/structure/table/bronze, -/turf/open/floor/bronze, -/area/ruin/powered) -"Gk" = ( -/obj/structure/fluff/clockwork/alloy_shards/medium_gearbit, -/turf/open/floor/plating/asteroid/rockplanet/lit, -/area/overmap_encounter/planetoid/rockplanet/explored) -"GD" = ( -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating/asteroid/rockplanet/lit, -/area/overmap_encounter/planetoid/rockplanet/explored) -"GT" = ( -/obj/item/toy/plush/plushvar, -/turf/open/floor/plating/asteroid/rockplanet/lit, -/area/overmap_encounter/planetoid/rockplanet/explored) -"HK" = ( -/obj/effect/mine/stun, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/bronze, -/area/ruin/powered) -"Id" = ( -/obj/effect/decal/cleanable/blood/old, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/remains/human, -/turf/open/floor/bronze, -/area/ruin/powered) -"Iu" = ( -/obj/structure/fluff/clockwork/clockgolem_remains, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/trap/stun, -/turf/open/floor/bronze, -/area/ruin/powered) -"Ji" = ( -/obj/item/flashlight/lantern, -/turf/open/floor/bronze, -/area/ruin/powered) -"Jl" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/remains/human, -/turf/open/floor/bronze, -/area/ruin/powered) -"Ju" = ( -/obj/effect/decal/cleanable/robot_debris/old, -/mob/living/simple_animal/hostile/jungle/mook, -/turf/open/floor/bronze, -/area/ruin/powered) -"Nr" = ( -/turf/open/floor/plating/asteroid/rockplanet/lit, -/area/overmap_encounter/planetoid/rockplanet/explored) -"NP" = ( -/turf/open/floor/bronze, -/area/ruin/powered) -"Oa" = ( -/obj/structure/fluff/clockwork/alloy_shards/medium_gearbit, -/obj/effect/mine/stun, -/turf/open/floor/bronze, -/area/ruin/powered) -"Os" = ( -/obj/effect/decal/cleanable/blood/old, -/obj/structure/trap/chill, -/turf/open/floor/bronze, -/area/ruin/powered) -"OB" = ( -/turf/template_noop, -/area/template_noop) -"OC" = ( -/obj/structure/table/bronze, -/obj/item/clothing/head/bronze, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/bronze, -/area/ruin/powered) -"PA" = ( -/obj/structure/fluff/clockwork/blind_eye, -/obj/structure/table/bronze, -/turf/open/floor/bronze, -/area/ruin/powered) -"Qs" = ( -/turf/closed/wall/mineral/bronze, -/area/ruin/powered) -"Rt" = ( -/obj/structure/chair/comfy/shuttle/bronze{ - dir = 4 - }, -/turf/open/floor/bronze, -/area/ruin/powered) -"TL" = ( -/obj/structure/statue/bronze/marx, -/turf/open/floor/plating/asteroid/rockplanet/lit, -/area/overmap_encounter/planetoid/rockplanet/explored) -"TV" = ( -/obj/item/reagent_containers/food/drinks/trophy/bronze_cup, -/obj/structure/table/bronze, -/turf/open/floor/bronze, -/area/ruin/powered) -"VV" = ( -/obj/structure/girder/bronze, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/bronze, -/area/ruin/powered) -"Wm" = ( -/obj/effect/mine/stun, -/turf/open/floor/plating/asteroid/rockplanet/lit, -/area/overmap_encounter/planetoid/rockplanet/explored) -"Wx" = ( -/obj/effect/decal/cleanable/greenglow, -/obj/effect/decal/cleanable/robot_debris/limb, -/turf/open/floor/bronze, -/area/ruin/powered) -"WK" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/bronze, -/area/ruin/powered) -"WT" = ( -/obj/structure/table/bronze, -/obj/item/clothing/shoes/bronze, -/turf/open/floor/bronze, -/area/ruin/powered) -"Xi" = ( -/obj/structure/table/bronze, -/obj/item/nullrod/spear, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/bronze, -/area/ruin/powered) -"XY" = ( -/obj/structure/window/bronze/fulltile, -/obj/structure/grille, -/turf/open/floor/bronze, -/area/ruin/powered) -"Ye" = ( -/obj/structure/fluff/clockwork/alloy_shards, -/obj/structure/lattice, -/turf/open/floor/plating/asteroid/rockplanet/lit, -/area/overmap_encounter/planetoid/rockplanet/explored) -"Ys" = ( -/obj/machinery/door/airlock/bronze, -/turf/open/floor/bronze, -/area/ruin/powered) -"YQ" = ( -/obj/item/book/granter/spell/smoke, -/obj/structure/table/bronze, -/turf/open/floor/bronze, -/area/ruin/powered) -"Zs" = ( -/obj/structure/lattice, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating/asteroid/rockplanet/lit, -/area/overmap_encounter/planetoid/rockplanet/explored) -"ZY" = ( -/obj/structure/chair/comfy/shuttle/bronze{ - dir = 8 - }, -/turf/open/floor/bronze, -/area/ruin/powered) - -(1,1,1) = {" -Qs -Ys -Ys -Qs -Qs -Qs -Qs -Qs -Qs -Qs -Qs -Qs -OB -OB -OB -"} -(2,1,1) = {" -Qs -hm -NP -hn -bw -Qs -VV -pV -NP -NP -cn -XY -OB -OB -OB -"} -(3,1,1) = {" -Qs -kd -Iu -wv -NP -Bh -HK -WK -hm -NP -uM -XY -xt -Wm -OB -"} -(4,1,1) = {" -XY -gA -Ji -lm -hb -Bh -WK -tI -lm -by -NP -Qs -oW -GD -OB -"} -(5,1,1) = {" -Qs -fK -uk -NP -TV -Qs -DL -Jl -Ji -sS -NP -Ys -BX -oj -OB -"} -(6,1,1) = {" -Qs -ZY -NP -NP -PA -Qs -rM -NP -NP -zj -NP -Ys -BX -Gk -Nr -"} -(7,1,1) = {" -Qs -ks -WK -WK -bw -Qs -ks -br -Xi -FE -bw -Qs -EB -Nr -Nr -"} -(8,1,1) = {" -Qs -Qs -Bh -iY -xb -Qs -Qs -xb -Qs -Qs -Qs -Qs -Nr -GT -TL -"} -(9,1,1) = {" -Qs -VV -NP -NP -iX -Qs -VV -xV -Rt -NP -bw -Qs -Zs -oW -Nr -"} -(10,1,1) = {" -Qs -hU -NP -Oa -wq -Qs -mG -Ci -WT -NP -pi -nM -BX -Nr -Nr -"} -(11,1,1) = {" -Qs -tg -Id -Ji -NP -Qs -zz -OC -fy -uk -WK -nM -Wm -Nr -Nr -"} -(12,1,1) = {" -XY -ur -uS -NP -NP -Bh -WK -NP -Wx -ct -WK -xb -oW -GD -OB -"} -(13,1,1) = {" -Qs -NP -NP -jK -jG -Bh -WK -Os -NP -Ju -YQ -XY -EB -OB -OB -"} -(14,1,1) = {" -Qs -NP -NP -NP -bw -Qs -ks -Ji -by -by -pt -XY -Ye -BX -OB -"} -(15,1,1) = {" -Qs -Ys -Ys -Qs -Qs -Qs -Qs -Qs -Qs -Qs -Qs -Qs -OB -OB -OB -"} diff --git a/_maps/RandomRuins/RockRuins/rockplanet_harmfactory.dmm b/_maps/RandomRuins/RockRuins/rockplanet_harmfactory.dmm index 5ba299eb454c..9b5adb277fa8 100644 --- a/_maps/RandomRuins/RockRuins/rockplanet_harmfactory.dmm +++ b/_maps/RandomRuins/RockRuins/rockplanet_harmfactory.dmm @@ -61,8 +61,9 @@ "bU" = ( /obj/structure/rack, /obj/effect/decal/cleanable/dirt/dust, -/obj/item/stack/sheet/mineral/gold/fifty, /obj/machinery/light/dim/directional/north, +/obj/item/spacecash/bundle/c1000, +/obj/item/spacecash/bundle/loadsamoney, /turf/open/floor/plasteel/patterned/brushed, /area/ruin/powered) "cb" = ( @@ -86,10 +87,6 @@ "cg" = ( /obj/structure/rack, /obj/item/stack/sheet/mineral/gold/twenty, -/obj/item/circuitboard/machine/protolathe{ - pixel_x = -7; - pixel_y = 4 - }, /obj/item/circuitboard/computer/rdconsole, /turf/open/floor/plasteel/patterned, /area/ruin/powered) @@ -141,7 +138,8 @@ /area/ruin/powered) "dJ" = ( /obj/structure/rack, -/obj/item/storage/firstaid/tactical, +/obj/item/circuitboard/machine/techfab/department/cargo, +/obj/item/stack/sheet/mineral/diamond/five, /turf/open/floor/plating/rust, /area/ruin/powered) "dN" = ( @@ -432,14 +430,18 @@ /turf/open/floor/plating/rust, /area/ruin/powered) "kC" = ( -/obj/machinery/door/keycard, +/obj/machinery/door/keycard{ + puzzle_id = "factory4" + }, /turf/open/floor/plasteel/patterned/brushed, /area/ruin/powered) "kI" = ( -/obj/machinery/door/keycard, /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/door/keycard{ + puzzle_id = "factory4" + }, /turf/open/floor/plating/rust, /area/ruin/powered) "kM" = ( @@ -449,11 +451,11 @@ /area/ruin/powered) "kN" = ( /obj/structure/rack, -/obj/item/melee/greykingsword, /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable{ icon_state = "0-8" }, +/obj/item/gun/energy/plasmacutter/adv, /turf/open/floor/plating/rust, /area/ruin/powered) "kU" = ( @@ -599,10 +601,8 @@ /turf/open/floor/plasteel/patterned, /area/ruin/powered) "of" = ( -/obj/machinery/conveyor/auto{ - dir = 8 - }, -/obj/machinery/light/dim/directional/north, +/obj/structure/disposalpipe/segment, +/obj/machinery/conveyor/auto, /turf/open/floor/engine, /area/ruin/powered) "oh" = ( @@ -681,8 +681,8 @@ /area/ruin/powered) "pi" = ( /obj/structure/rack, -/obj/item/construction/rcd/loaded, /obj/machinery/light/dim/directional/north, +/obj/item/stack/sheet/mineral/diamond/five, /turf/open/floor/plating/rust, /area/ruin/powered) "pk" = ( @@ -734,29 +734,29 @@ /turf/open/floor/engine, /area/ruin/powered) "pP" = ( -/obj/effect/turf_decal/industrial/warning/dust{ - dir = 1 - }, -/obj/structure/railing/corner, +/obj/item/toy/plush/moth, +/obj/structure/table/greyscale, /turf/open/floor/engine, /area/ruin/powered) "pU" = ( /obj/effect/turf_decal/industrial/warning/dust{ dir = 1 }, -/obj/structure/railing, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/engine, /area/ruin/powered) "qb" = ( -/obj/structure/railing{ - dir = 10 - }, /obj/structure/table/greyscale, /obj/item/laser_pointer/blue{ pixel_x = 10; pixel_y = 9 }, /obj/item/megaphone, +/obj/structure/railing{ + dir = 10 + }, /turf/open/floor/plasteel/patterned/brushed, /area/ruin/powered) "qd" = ( @@ -767,19 +767,10 @@ /turf/open/floor/engine, /area/ruin/powered) "qm" = ( -/obj/structure/railing, /obj/structure/chair/plastic, +/obj/structure/railing, /turf/open/floor/plasteel/patterned, /area/ruin/powered) -"qt" = ( -/obj/effect/turf_decal/industrial/warning/dust{ - dir = 1 - }, -/obj/structure/railing/corner{ - dir = 8 - }, -/turf/open/floor/engine, -/area/ruin/powered) "qv" = ( /obj/structure/railing{ dir = 10 @@ -837,6 +828,9 @@ /area/ruin/powered) "rv" = ( /obj/machinery/recycler/deathtrap, +/obj/machinery/conveyor/auto{ + dir = 4 + }, /turf/open/floor/engine, /area/ruin/powered) "rO" = ( @@ -880,11 +874,6 @@ }, /turf/open/floor/engine, /area/ruin/powered) -"sH" = ( -/obj/structure/railing/corner, -/mob/living/simple_animal/hostile/jungle/mook, -/turf/open/floor/engine, -/area/ruin/powered) "sK" = ( /obj/structure/closet/secure/loot, /obj/machinery/light/dim/directional/east, @@ -893,25 +882,37 @@ /turf/open/floor/plasteel/patterned, /area/ruin/powered) "sN" = ( -/obj/machinery/conveyor/inverted, -/obj/structure/grille, /obj/structure/cable, /obj/machinery/light/dim/directional/north, -/turf/open/floor/engine, +/obj/structure/grille, +/turf/open/floor/plating, /area/ruin/powered) "sV" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/structure/railing{ - dir = 6 +/obj/machinery/disposal/deliveryChute{ + dir = 4 }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/conveyor/auto, /turf/open/floor/engine, /area/ruin/powered) "td" = ( -/obj/machinery/disposal/deliveryChute{ - dir = 4 +/obj/machinery/power/emitter/welded{ + active = 1 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable, +/obj/machinery/light/dim/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 6 }, +/obj/machinery/conveyor/auto, /turf/open/floor/engine, /area/ruin/powered) "te" = ( @@ -920,29 +921,21 @@ }, /turf/open/floor/engine, /area/ruin/powered) -"tu" = ( -/obj/machinery/conveyor/auto{ - dir = 4 - }, -/obj/item/shard, -/obj/item/shard, -/obj/item/shard, -/obj/item/shard, -/obj/item/shard, -/turf/open/floor/engine, -/area/ruin/powered) "tw" = ( -/obj/machinery/disposal/deliveryChute{ +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/conveyor/auto{ dir = 8 }, /turf/open/floor/engine, /area/ruin/powered) "tC" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/structure/railing{ - dir = 10 +/obj/machinery/conveyor/auto{ + dir = 8 }, /turf/open/floor/engine, /area/ruin/powered) @@ -1018,19 +1011,19 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/engine, /area/ruin/powered) -"vz" = ( -/obj/machinery/disposal/deliveryChute, -/turf/open/floor/engine, -/area/ruin/powered) "vJ" = ( -/obj/structure/disposalpipe/segment{ +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/railing{ dir = 6 }, -/turf/open/floor/engine, +/turf/open/floor/plating, /area/ruin/powered) "vK" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/conveyor/auto{ + dir = 1 }, /turf/open/floor/engine, /area/ruin/powered) @@ -1110,26 +1103,23 @@ /turf/open/floor/engine, /area/ruin/powered) "yw" = ( -/obj/machinery/power/emitter/ctf{ - dir = 4 +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/engine, +/turf/closed/wall/r_wall, /area/ruin/powered) "za" = ( -/obj/machinery/power/emitter/ctf{ - dir = 8 +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/engine, -/area/ruin/powered) -"zg" = ( +/obj/structure/disposalpipe/segment, /obj/machinery/conveyor/auto{ dir = 1 }, -/obj/item/shard, -/obj/item/shard, -/obj/item/shard, -/obj/item/shard, -/obj/item/shard, +/turf/open/floor/engine, +/area/ruin/powered) +"zg" = ( +/obj/effect/turf_decal/industrial/warning/dust/corner, /turf/open/floor/engine, /area/ruin/powered) "zh" = ( @@ -1205,10 +1195,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/engine, /area/ruin/powered) -"Br" = ( -/obj/machinery/conveyor/inverted, -/turf/open/floor/engine, -/area/ruin/powered) "Bz" = ( /obj/effect/turf_decal/industrial/warning/dust{ dir = 4 @@ -1223,27 +1209,16 @@ /turf/open/floor/engine, /area/ruin/powered) "BE" = ( -/obj/machinery/conveyor/auto{ - dir = 1 +/obj/machinery/power/terminal{ + dir = 4 }, -/obj/item/shard/plasma, -/obj/item/shard/plasma, -/obj/item/shard/plasma, -/obj/item/shard/plasma, -/obj/item/shard/plasma, -/turf/open/floor/engine, +/turf/closed/indestructible/reinforced, /area/ruin/powered) "BQ" = ( /obj/structure/table/greyscale, -/obj/item/keycard, -/turf/open/floor/engine, -/area/ruin/powered) -"BR" = ( -/obj/effect/turf_decal/industrial/warning/dust{ - dir = 8 +/obj/item/keycard{ + puzzle_id = "factory4" }, -/obj/effect/turf_decal/number/zero, -/obj/effect/decal/cleanable/dirt, /turf/open/floor/engine, /area/ruin/powered) "BW" = ( @@ -1343,30 +1318,18 @@ /obj/effect/turf_decal/industrial/warning/dust, /turf/open/floor/engine, /area/ruin/powered) -"EB" = ( -/obj/machinery/conveyor/inverted, -/mob/living/simple_animal/hostile/jungle/mook, -/turf/open/floor/engine, -/area/ruin/powered) "EE" = ( /obj/effect/turf_decal/industrial/warning/dust{ dir = 4 }, /obj/structure/sign/number/four, -/obj/effect/decal/cleanable/dirt, /turf/open/floor/engine, /area/ruin/powered) "EG" = ( /obj/structure/table/greyscale, -/turf/open/floor/engine, -/area/ruin/powered) -"Fa" = ( -/obj/machinery/conveyor/auto, -/obj/item/shard/plasma, -/obj/item/shard/plasma, -/obj/item/shard/plasma, -/obj/item/shard/plasma, -/obj/item/shard/plasma, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/engine, /area/ruin/powered) "Fb" = ( @@ -1458,6 +1421,7 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, +/mob/living/simple_animal/hostile/jungle/mook, /turf/open/floor/engine, /area/ruin/powered) "Gu" = ( @@ -1467,18 +1431,13 @@ /turf/open/floor/engine, /area/ruin/powered) "Gv" = ( -/obj/machinery/disposal/deliveryChute{ - dir = 1 - }, +/obj/effect/spawner/structure/window/reinforced, /turf/open/floor/engine, /area/ruin/powered) "Gz" = ( -/obj/machinery/conveyor/auto, -/obj/item/shard, -/obj/item/shard, -/obj/item/shard, -/obj/item/shard, -/obj/item/shard, +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 1 + }, /turf/open/floor/engine, /area/ruin/powered) "GE" = ( @@ -1492,10 +1451,6 @@ /obj/machinery/conveyor/auto, /turf/open/floor/engine, /area/ruin/powered) -"GN" = ( -/obj/structure/plasticflaps, -/turf/open/floor/engine, -/area/ruin/powered) "GO" = ( /obj/structure/table/greyscale, /obj/item/keycard/stockroom, @@ -1540,16 +1495,19 @@ /obj/machinery/light/broken/directional/east, /turf/open/floor/plating/asteroid/rockplanet, /area/overmap_encounter/planetoid/rockplanet/explored) -"HL" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/engine, -/area/ruin/powered) "HT" = ( +/obj/machinery/power/emitter/welded{ + dir = 1; + active = 1 + }, +/obj/structure/cable, +/obj/machinery/light/dim/directional/south, /obj/structure/disposalpipe/segment{ dir = 9 }, +/obj/machinery/conveyor/auto{ + dir = 1 + }, /turf/open/floor/engine, /area/ruin/powered) "HU" = ( @@ -1574,32 +1532,29 @@ /turf/open/floor/engine, /area/ruin/powered) "It" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 +/obj/machinery/disposal/deliveryChute{ + dir = 8 }, -/obj/structure/railing{ - dir = 5 +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/conveyor/auto{ + dir = 1 }, /turf/open/floor/engine, /area/ruin/powered) "IA" = ( -/obj/machinery/conveyor/auto{ - dir = 8 +/obj/structure/disposalpipe/segment{ + dir = 5 }, -/obj/item/shard, -/obj/item/shard, -/obj/item/shard, -/obj/item/shard, -/obj/item/shard, +/obj/machinery/conveyor/auto, /turf/open/floor/engine, /area/ruin/powered) "IF" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/structure/railing{ - dir = 9 +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 }, +/obj/effect/turf_decal/number/zero, /turf/open/floor/engine, /area/ruin/powered) "IM" = ( @@ -1701,37 +1656,22 @@ }, /turf/open/floor/engine, /area/ruin/powered) -"KC" = ( -/obj/effect/turf_decal/industrial/warning/dust, -/obj/structure/railing/corner{ +"KL" = ( +/obj/structure/chair/plastic{ dir = 4 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/engine, -/area/ruin/powered) -"KJ" = ( -/obj/effect/turf_decal/industrial/warning/dust, -/obj/structure/railing{ - dir = 1 - }, -/turf/open/floor/engine, -/area/ruin/powered) -"KL" = ( /obj/structure/railing{ dir = 9 }, -/obj/structure/chair/plastic{ - dir = 4 - }, -/turf/open/floor/plasteel/patterned/brushed, +/turf/open/floor/plasteel/patterned, /area/ruin/powered) "Lb" = ( -/obj/structure/railing{ - dir = 5 - }, /obj/structure/chair/plastic{ dir = 8 }, +/obj/structure/railing{ + dir = 5 + }, /turf/open/floor/plasteel/patterned, /area/ruin/powered) "Lp" = ( @@ -1793,6 +1733,9 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/structure/cable{ + icon_state = "2-8" + }, /turf/open/floor/plating/rust, /area/ruin/powered) "Mr" = ( @@ -1923,12 +1866,11 @@ /turf/open/floor/plasteel/patterned, /area/ruin/powered) "QK" = ( -/obj/machinery/conveyor/inverted, -/obj/structure/grille, /obj/structure/cable, /obj/item/keycard/entry, /obj/machinery/light/dim/directional/north, -/turf/open/floor/engine, +/obj/structure/grille, +/turf/open/floor/plating, /area/ruin/powered) "Rd" = ( /obj/effect/decal/cleanable/dirt/dust, @@ -2040,9 +1982,6 @@ /turf/open/floor/plasteel/patterned, /area/ruin/powered) "TE" = ( -/obj/structure/railing{ - dir = 1 - }, /obj/structure/table/greyscale, /obj/item/spacecash/bundle/c1000{ pixel_y = 10 @@ -2052,6 +1991,9 @@ pixel_y = 2 }, /obj/item/toy/cards/deck/kotahi, +/obj/structure/railing{ + dir = 1 + }, /turf/open/floor/plating, /area/ruin/powered) "TM" = ( @@ -2154,10 +2096,15 @@ /turf/open/floor/plating, /area/ruin/powered) "XU" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, /obj/machinery/conveyor/auto{ - dir = 4 + dir = 1 }, -/obj/machinery/light/dim/directional/south, /turf/open/floor/engine, /area/ruin/powered) "XX" = ( @@ -2774,7 +2721,7 @@ GV aB aB bf -bf +BE bf hj jL @@ -2824,12 +2771,12 @@ jO ln oG ro -uQ +hJ Op tR DI uW -GN +hJ ro JC Mp @@ -2867,7 +2814,7 @@ jR pk ol rv -uQ +pP hJ AY DO @@ -2910,12 +2857,12 @@ jR lC ol ro -uQ +hJ aQ xg Ep qd -uQ +hJ ro Jt LQ @@ -3083,8 +3030,8 @@ lQ oo sd uQ -yw -yw +uQ +uQ uQ Ga GS @@ -3127,9 +3074,9 @@ px st vi QK -Br -EB -Br +te +te +te GU tR Kj @@ -3170,9 +3117,9 @@ pC sx vi sN -Br -Br -Br +te +te +te Hs Ai Kn @@ -3212,8 +3159,8 @@ mu pE sd uQ -za -za +uQ +uQ uQ Go HG @@ -3296,14 +3243,14 @@ iS hJ mE pG -sH -vs -rh -Bz -EE -rh -rh -xg +tR +Ai +tR +tR +Ai +tR +tR +tR Ew LQ gv @@ -3338,16 +3285,16 @@ aB aB hJ my -pP -sV -vz +pG +tR +tR zg -BC -BC -te -Gv -It -KC +Bz +EE +GS +tR +tR +Lp Nn zC Pa @@ -3381,16 +3328,16 @@ aB bf hi mR -pU -td -vJ -vz -BE -BC +pG +tR +hJ Gv -HL -td -KJ +ro +ro +Gv +hJ +tR +Ew NK hi hi @@ -3425,15 +3372,15 @@ bf hj Mq pU -ro +yw td -hJ of -BC -hJ -td +of IA -KJ +ro +ro +hJ +Ew LT hi aB @@ -3468,14 +3415,14 @@ bf hj no qb -te -tR -te +Gv +sV +BC BQ EG -rO -rO -rO +ro +It +Gv KL NP hi @@ -3511,14 +3458,14 @@ je kC nq qm -tu -tw hJ -ro +tw +tC +vK XU +za +HT hJ -tw -BC TE GR hi @@ -3553,15 +3500,15 @@ hf jq kI nt -pE -tw -vK -vz -ro -Fa +vJ +tR +hJ Gv -HT -tw +BC +BC +Gv +hJ +tR Lb IO hi @@ -3596,16 +3543,16 @@ bf bf hi lC -qt -tC -vz -rO -ro -ro -Gz -Gv +pG +tR +tR +Ip IF -JV +Fb +Gz +tR +tR +Ew NK Ph hj @@ -3640,14 +3587,14 @@ bf hi ob pG -sC -rS -uT -BR -Fb -uT -uT -Gu +tR +Ai +tR +Ai +tR +tR +tR +tR Lp Mr Pt diff --git a/_maps/RandomRuins/RockRuins/rockplanet_nomadcrash.dmm b/_maps/RandomRuins/RockRuins/rockplanet_nomadcrash.dmm new file mode 100644 index 000000000000..7ca31921e401 --- /dev/null +++ b/_maps/RandomRuins/RockRuins/rockplanet_nomadcrash.dmm @@ -0,0 +1,4760 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aw" = ( +/obj/structure/bonfire/prelit, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"aL" = ( +/obj/structure/door_assembly/door_assembly_centcom{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/rockplanet/nanotrasen) +"aN" = ( +/obj/machinery/space_heater, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/turf/open/floor/plasteel/rockvault, +/area/ruin/rockplanet/nanotrasen) +"aX" = ( +/obj/effect/turf_decal/weather/dirt, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ba" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock{ + dir = 4; + name = "Crew Berth" + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ruin/rockplanet/nanotrasen) +"bv" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/rockplanet/hull_plating, +/area/overmap_encounter/planetoid/rockplanet/explored) +"cd" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "9-10" + }, +/turf/open/floor/plasteel/rockvault, +/area/ruin/rockplanet/nanotrasen) +"cl" = ( +/obj/machinery/power/shuttle/engine/electric{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/engine/hull/interior, +/area/ruin/rockplanet/nanotrasen) +"cr" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"cO" = ( +/obj/structure/chair/plastic{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/rockplanet/hull_plating, +/area/overmap_encounter/planetoid/rockplanet/explored) +"cP" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/rock{ + icon_state = "redrocks2" + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"cU" = ( +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 8 + }, +/obj/structure/barricade/sandbags, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"df" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible/layer2{ + dir = 4 + }, +/turf/open/floor/plasteel/rockvault, +/area/ruin/rockplanet/nanotrasen) +"dB" = ( +/turf/open/floor/plasteel/tech/grid, +/area/ruin/rockplanet/nanotrasen) +"dJ" = ( +/obj/structure/flora/rock{ + icon_state = "redrock2" + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"dM" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/railing, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ei" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/door_assembly/door_assembly_hatch{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ruin/rockplanet/nanotrasen) +"eo" = ( +/turf/open/floor/plating/asteroid/rockplanet/plating/scorched, +/area/overmap_encounter/planetoid/rockplanet/explored) +"fc" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/frame/machine, +/turf/open/floor/plating{ + icon_state = "wet_cracked2" + }, +/area/ruin/rockplanet/nanotrasen) +"fd" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/barricade/sandbags, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"fe" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/sink{ + pixel_y = 30 + }, +/turf/open/floor/plating, +/area/ruin/rockplanet/nanotrasen) +"fw" = ( +/obj/machinery/power/port_gen/pacman, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/ruin/rockplanet/nanotrasen) +"fF" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4; + name = "Helm" + }, +/turf/open/floor/plasteel/tech, +/area/ruin/rockplanet/nanotrasen) +"fK" = ( +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ruin/rockplanet/nanotrasen) +"fM" = ( +/obj/machinery/door/airlock/external{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/rockplanet/nanotrasen) +"ga" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/layer2{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plasteel/rockvault, +/area/ruin/rockplanet/nanotrasen) +"gn" = ( +/obj/structure/flora/rock/asteroid, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"gs" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit{ + icon_state = "plastic" + }, +/area/ruin/rockplanet/nanotrasen) +"gO" = ( +/obj/structure/table/reinforced, +/obj/item/radio/intercom/wideband/table{ + dir = 4; + pixel_x = 3 + }, +/obj/effect/decal/cleanable/glass/plasma, +/turf/open/floor/plating, +/area/ruin/rockplanet/nanotrasen) +"gY" = ( +/turf/open/floor/plating/asteroid/rockplanet/mud, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ha" = ( +/obj/structure/cable{ + icon_state = "2-5" + }, +/turf/open/floor/plating/asteroid/rockplanet/plating/scorched, +/area/overmap_encounter/planetoid/rockplanet/explored) +"hc" = ( +/obj/effect/gibspawner, +/turf/open/floor/plasteel/tech, +/area/ruin/rockplanet/nanotrasen) +"hm" = ( +/obj/structure/bed/pod, +/obj/effect/mob_spawn/human/corpse/damaged, +/obj/structure/curtain/cloth, +/turf/open/floor/plasteel/rockvault, +/area/ruin/rockplanet/nanotrasen) +"hy" = ( +/obj/effect/turf_decal/spline/fancy/opaque/yellow{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/item/stack/sheet/metal/five, +/turf/open/floor/plating, +/area/ruin/rockplanet/nanotrasen) +"hV" = ( +/obj/structure/flora/rock{ + icon_state = "basalt" + }, +/turf/open/floor/plating/asteroid/rockplanet/mud, +/area/overmap_encounter/planetoid/rockplanet/explored) +"il" = ( +/obj/effect/turf_decal/spline/fancy/opaque/yellow{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ruin/rockplanet/nanotrasen) +"ip" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ruin/rockplanet/nanotrasen) +"is" = ( +/obj/item/chair/greyscale, +/turf/open/floor/plating, +/area/ruin/rockplanet/nanotrasen) +"iN" = ( +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"iZ" = ( +/obj/effect/turf_decal/spline/fancy/opaque/yellow{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/rockplanet/nanotrasen) +"jl" = ( +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/structure/girder/displaced, +/obj/effect/decal/cleanable/glass/plasma, +/turf/open/floor/plasteel/tech, +/area/ruin/rockplanet/nanotrasen) +"jm" = ( +/turf/closed/mineral/random/rockplanet, +/area/overmap_encounter/planetoid/rockplanet/explored) +"jw" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/structure/barricade/sandbags, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"jC" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/mob/living/simple_animal/hostile/asteroid/basilisk/watcher/magmawing, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"jD" = ( +/obj/effect/turf_decal/weather/dirt/corner, +/obj/structure/flora/rock{ + icon_state = "redrock2" + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"jI" = ( +/obj/structure/fence/door{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/rockplanet/plating/scorched, +/area/overmap_encounter/planetoid/rockplanet/explored) +"kf" = ( +/obj/structure/table_frame, +/turf/open/floor/plating/ashplanet/rocky, +/area/ruin/rockplanet/nanotrasen) +"kN" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/ruin/rockplanet/nanotrasen) +"kS" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible/layer2{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "2-9" + }, +/turf/open/floor/plasteel/rockvault, +/area/ruin/rockplanet/nanotrasen) +"kV" = ( +/obj/structure/flora/rock{ + icon_state = "redrocks2" + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"lg" = ( +/turf/closed/wall, +/area/ruin/rockplanet/nanotrasen) +"lw" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"lz" = ( +/obj/machinery/power/smes/shuttle/precharged, +/turf/open/floor/plating/asteroid/rockplanet/plating/scorched, +/area/overmap_encounter/planetoid/rockplanet/explored) +"mu" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"mz" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit{ + icon_state = "panelscorched" + }, +/area/ruin/rockplanet/nanotrasen) +"mW" = ( +/obj/structure/barricade/sandbags, +/turf/open/floor/plating/asteroid/rockplanet/mud, +/area/overmap_encounter/planetoid/rockplanet/explored) +"nf" = ( +/turf/open/floor/plating/asteroid/rockplanet/plasteel, +/area/overmap_encounter/planetoid/rockplanet/explored) +"nB" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"on" = ( +/turf/closed/mineral/random/rockplanet, +/area/ruin/rockplanet/nanotrasen) +"oq" = ( +/obj/machinery/atmospherics/components/binary/pump/on/layer2{ + dir = 8; + name = "Air to Distro" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/asteroid/rockplanet/plasteel, +/area/overmap_encounter/planetoid/rockplanet/explored) +"or" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/frame/machine, +/obj/effect/spawner/lootdrop/salvage_matter_bin, +/turf/open/floor/plating/asteroid/rockplanet/plasteel, +/area/overmap_encounter/planetoid/rockplanet/explored) +"oz" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/ruin/rockplanet/nanotrasen) +"oI" = ( +/obj/effect/turf_decal/spline/fancy/opaque/yellow{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/effect/turf_decal/arrowaxe_small/center{ + dir = 8 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/rockplanet/nanotrasen) +"oW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/rockvault, +/area/ruin/rockplanet/nanotrasen) +"oZ" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/effect/turf_decal/weather/dirt, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"pb" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/ruin/rockplanet/nanotrasen) +"po" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"pH" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"pJ" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"pV" = ( +/obj/machinery/atmospherics/components/binary/pump/on/layer2{ + dir = 8; + name = "Air to Distro" + }, +/turf/open/floor/plating/asteroid/rockplanet/wet/atmos, +/area/ruin/rockplanet/nanotrasen) +"qp" = ( +/obj/effect/turf_decal/spline/fancy/opaque/yellow{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/rockplanet/nanotrasen) +"qL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/ruin/rockplanet/nanotrasen) +"qM" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"qU" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/metal/ten, +/obj/item/stack/cable_coil/random/five, +/obj/item/stack/cable_coil/random/five, +/obj/structure/cable/yellow{ + icon_state = "4-5" + }, +/turf/open/floor/plasteel/rockvault, +/area/ruin/rockplanet/nanotrasen) +"rc" = ( +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"rD" = ( +/obj/structure/frame/machine, +/turf/open/floor/plating/dirt/jungle/lit, +/area/ruin/rockplanet/nanotrasen) +"rH" = ( +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 1 + }, +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 8 + }, +/obj/structure/flora/driftlog, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"rW" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"rY" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/frame/machine, +/obj/machinery/light/small/directional/north, +/obj/effect/spawner/lootdrop/salvage_matter_bin, +/turf/open/floor/plating, +/area/ruin/rockplanet/nanotrasen) +"sn" = ( +/obj/structure/frame/machine, +/obj/item/stock_parts/manipulator/femto, +/turf/open/floor/plating/asteroid/rockplanet/plasteel, +/area/overmap_encounter/planetoid/rockplanet/explored) +"sy" = ( +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 1 + }, +/obj/structure/railing, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"sK" = ( +/obj/effect/turf_decal/weather/dirt/corner, +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 1 + }, +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"sR" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/closed/wall/mineral/sandstone, +/area/ruin/rockplanet/nanotrasen) +"sX" = ( +/obj/structure/cable/yellow{ + icon_state = "5-8" + }, +/turf/open/floor/plating/asteroid/rockplanet/wet/atmos, +/area/ruin/rockplanet/nanotrasen) +"sZ" = ( +/turf/closed/wall/rust, +/area/overmap_encounter/planetoid/rockplanet/explored) +"tA" = ( +/obj/structure/flora/tree/dead/tall/grey, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"tI" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/structure/flora/rock{ + icon_state = "redrocks1" + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"tN" = ( +/turf/closed/wall, +/area/overmap_encounter/planetoid/rockplanet/explored) +"tX" = ( +/obj/machinery/holopad/emergency/command, +/turf/open/floor/plasteel/tech, +/area/ruin/rockplanet/nanotrasen) +"uh" = ( +/turf/open/floor/plating, +/area/ruin/rockplanet/nanotrasen) +"uo" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/item/stack/cable_coil/random/five, +/obj/item/wirecutters, +/turf/open/floor/plating, +/area/ruin/rockplanet/nanotrasen) +"uu" = ( +/obj/machinery/door/airlock/engineering{ + dir = 1; + name = "Engineering" + }, +/turf/closed/wall, +/area/overmap_encounter/planetoid/rockplanet/explored) +"uB" = ( +/turf/open/floor/plasteel/tech, +/area/ruin/rockplanet/nanotrasen) +"uD" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"uK" = ( +/obj/effect/turf_decal/corner_techfloor_grid{ + dir = 6 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/rockplanet/nanotrasen) +"uL" = ( +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 1 + }, +/obj/structure/barricade/sandbags, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"uN" = ( +/obj/structure/table, +/obj/item/crowbar/large, +/obj/item/clothing/mask/breath{ + pixel_x = 14; + pixel_y = 7 + }, +/obj/item/clothing/mask/breath{ + pixel_x = 14; + pixel_y = 4 + }, +/obj/item/clothing/mask/breath{ + pixel_x = 14; + pixel_y = 1 + }, +/obj/item/stock_parts/capacitor/adv{ + pixel_x = -5; + pixel_y = 11 + }, +/turf/open/floor/plasteel/rockvault, +/area/ruin/rockplanet/nanotrasen) +"uT" = ( +/obj/structure/flora/tree/cactus, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"vi" = ( +/obj/structure/flora/rock{ + icon_state = "redrocks3" + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"vl" = ( +/mob/living/simple_animal/hostile/asteroid/goliath/beast/rockplanet, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"vw" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "0-10" + }, +/turf/open/floor/plasteel/rockvault, +/area/ruin/rockplanet/nanotrasen) +"vF" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"vL" = ( +/obj/structure/flora/rock{ + icon_state = "redrocks1" + }, +/turf/open/floor/plating/asteroid/rockplanet/wet/atmos, +/area/overmap_encounter/planetoid/rockplanet/explored) +"vM" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/floor/plating/asteroid/rockplanet/grass, +/area/overmap_encounter/planetoid/rockplanet/explored) +"vN" = ( +/obj/effect/turf_decal/spline/fancy/opaque/yellow{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2, +/turf/open/floor/plating, +/area/ruin/rockplanet/nanotrasen) +"vS" = ( +/turf/open/floor/plating/asteroid/rockplanet/hull_plating, +/area/overmap_encounter/planetoid/rockplanet/explored) +"vW" = ( +/obj/effect/turf_decal/weather/dirt/corner, +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"wf" = ( +/turf/open/floor/plasteel/rockvault, +/area/ruin/rockplanet/nanotrasen) +"wq" = ( +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 8 + }, +/obj/structure/railing, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"wW" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"xk" = ( +/obj/effect/turf_decal/techfloor, +/obj/structure/cable{ + icon_state = "0-1" + }, +/obj/machinery/computer/monitor{ + dir = 1; + icon_state = "computer_broken" + }, +/obj/machinery/light/small/broken/directional/south, +/turf/open/floor/plasteel/tech, +/area/ruin/rockplanet/nanotrasen) +"xG" = ( +/obj/structure/cable{ + icon_state = "0-1" + }, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/rack, +/turf/open/floor/plasteel/rockvault, +/area/ruin/rockplanet/nanotrasen) +"yb" = ( +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"yn" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/rockplanet/grass, +/area/overmap_encounter/planetoid/rockplanet/explored) +"yw" = ( +/obj/structure/flora/rock/asteroid{ + icon_state = "asteroid2" + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"zg" = ( +/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{ + dir = 1 + }, +/obj/effect/decal/cleanable/glass/plasma, +/turf/open/floor/plating/asteroid/rockplanet/lit{ + icon_state = "plastic" + }, +/area/ruin/rockplanet/nanotrasen) +"zh" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen, +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit{ + icon_state = "plastic" + }, +/area/ruin/rockplanet/nanotrasen) +"zp" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/obj/machinery/telecomms/receiver, +/turf/open/floor/plating{ + icon_state = "wet_cracked0" + }, +/area/ruin/rockplanet/nanotrasen) +"zw" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/asteroid/rockplanet/plasteel, +/area/overmap_encounter/planetoid/rockplanet/explored) +"zx" = ( +/obj/machinery/power/smes/shuttle/precharged{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/rockplanet/nanotrasen) +"zz" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 4; + piping_layer = 2 + }, +/turf/open/floor/plating/asteroid/rockplanet/wet/atmos, +/area/ruin/rockplanet/nanotrasen) +"zF" = ( +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/turf/closed/mineral/random/rockplanet, +/area/overmap_encounter/planetoid/rockplanet/explored) +"zH" = ( +/obj/structure/fence/door{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/structure/curtain/cloth/grey, +/turf/open/floor/plating/asteroid/rockplanet/wet/atmos, +/area/ruin/rockplanet/nanotrasen) +"zU" = ( +/obj/item/banner/medical/mundane, +/turf/open/floor/plasteel/rockvault, +/area/ruin/rockplanet/nanotrasen) +"Ab" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/rockplanet/wet/atmos, +/area/ruin/rockplanet/nanotrasen) +"AS" = ( +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 4 + }, +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"AX" = ( +/obj/effect/turf_decal/spline/fancy/opaque/yellow{ + dir = 4 + }, +/obj/machinery/light/small/broken/directional/east, +/obj/effect/turf_decal/arrowaxe_small/left{ + dir = 8 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/rockplanet/nanotrasen) +"Ba" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/turf/open/floor/plating/asteroid/rockplanet/plasteel, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Bc" = ( +/obj/machinery/power/smes/shuttle/precharged{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ruin/rockplanet/nanotrasen) +"Bt" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"BA" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/barricade/sandbags, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"BX" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 4 + }, +/obj/structure/barricade/sandbags, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Cm" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/closed/wall/mineral/sandstone, +/area/ruin/rockplanet/nanotrasen) +"CC" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating/dirt/jungle/lit, +/area/ruin/rockplanet/nanotrasen) +"CN" = ( +/turf/open/floor/plating/asteroid/rockplanet/stairs, +/area/overmap_encounter/planetoid/rockplanet/explored) +"CT" = ( +/obj/effect/turf_decal/weather/dirt/corner, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"DJ" = ( +/obj/structure/flora/rock/asteroid{ + icon_state = "asteroid2" + }, +/obj/structure/flora/driftlog, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"DP" = ( +/obj/effect/turf_decal/weather/dirt/corner, +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"DR" = ( +/obj/structure/closet/crate, +/obj/item/weldingtool/mini, +/obj/item/clothing/mask/gas/welding, +/obj/item/reagent_containers/glass/bottle/welding_fuel, +/obj/item/reagent_containers/glass/bottle/welding_fuel, +/obj/item/reagent_containers/glass/bottle/welding_fuel, +/turf/open/floor/plating, +/area/ruin/rockplanet/nanotrasen) +"Ec" = ( +/turf/open/floor/plating/dirt/jungle/lit, +/area/ruin/rockplanet/nanotrasen) +"Em" = ( +/obj/structure/rack, +/obj/item/storage/firstaid{ + pixel_x = 3; + pixel_y = 8 + }, +/obj/item/reagent_containers/glass/rag{ + pixel_x = -3 + }, +/turf/open/floor/plating/asteroid/rockplanet/wet/atmos, +/area/ruin/rockplanet/nanotrasen) +"En" = ( +/obj/effect/decal/cleanable/robot_debris/gib, +/turf/open/floor/plating/asteroid/rockplanet/wet/atmos, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Er" = ( +/obj/structure/flora/rock{ + icon_state = "basalt2" + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Ew" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/rockplanet/nanotrasen) +"EF" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/ruin/rockplanet/nanotrasen) +"EI" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/gibspawner, +/obj/effect/decal/remains/human, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/rockplanet/nanotrasen) +"EK" = ( +/obj/effect/turf_decal/weather/dirt/corner, +/obj/structure/barricade/sandbags, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"EL" = ( +/obj/structure/table_frame, +/turf/open/floor/plasteel/rockvault, +/area/ruin/rockplanet/nanotrasen) +"EM" = ( +/obj/structure/frame, +/obj/item/stock_parts/micro_laser/high, +/turf/open/floor/engine/hull/interior, +/area/ruin/rockplanet/nanotrasen) +"Fk" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/rockplanet/wet/atmos, +/area/ruin/rockplanet/nanotrasen) +"FI" = ( +/obj/effect/turf_decal/spline/fancy/opaque/yellow{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/rockplanet/nanotrasen) +"FJ" = ( +/turf/open/floor/plating/asteroid/rockplanet/wet/atmos, +/area/ruin/rockplanet/nanotrasen) +"FP" = ( +/obj/structure/frame/machine, +/turf/open/floor/plating/asteroid/rockplanet/plating/scorched, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Gu" = ( +/obj/structure/closet/crate, +/obj/item/gun/energy/laser, +/turf/open/floor/plating, +/area/ruin/rockplanet/nanotrasen) +"GA" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plating, +/area/ruin/rockplanet/nanotrasen) +"GB" = ( +/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{ + dir = 5 + }, +/obj/item/chair/stool/bar, +/turf/open/floor/plating/asteroid/rockplanet/lit{ + icon_state = "plastic" + }, +/area/ruin/rockplanet/nanotrasen) +"GK" = ( +/turf/open/floor/plating/asteroid/rockplanet/wet/atmos, +/area/overmap_encounter/planetoid/rockplanet/explored) +"He" = ( +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/rockplanet/pond, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Hi" = ( +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Hr" = ( +/obj/structure/rack, +/obj/item/ammo_box/magazine/m45, +/obj/item/ammo_box/magazine/m45{ + pixel_x = -5 + }, +/obj/item/ammo_box/magazine/m45{ + pixel_x = 7 + }, +/obj/item/gun/ballistic/automatic/pistol/m1911/no_mag, +/turf/open/floor/plating/ashplanet/rocky, +/area/ruin/rockplanet/nanotrasen) +"HG" = ( +/obj/structure/flora/driftlog, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"HL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/freezer{ + dir = 8; + name = "Head" + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ruin/rockplanet/nanotrasen) +"Io" = ( +/obj/structure/railing{ + dir = 10 + }, +/turf/open/floor/plating/asteroid/rockplanet/hull_plating, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Ir" = ( +/obj/structure/railing, +/obj/structure/closet/crate, +/obj/item/gun/energy/laser, +/obj/item/stock_parts/cell/high, +/turf/open/floor/plating/asteroid/rockplanet/hull_plating, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Iw" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"IG" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/rockvault, +/area/ruin/rockplanet/nanotrasen) +"IH" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/effect/turf_decal/weather/dirt, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"IX" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/effect/turf_decal/weather/dirt/corner, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"IY" = ( +/obj/effect/decal/cleanable/glass/plasma, +/turf/open/floor/plating, +/area/ruin/rockplanet/nanotrasen) +"Jf" = ( +/obj/structure/window/plasma/reinforced/plastitanium, +/turf/open/floor/plating, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Jy" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "1-6" + }, +/turf/open/floor/plating, +/area/ruin/rockplanet/nanotrasen) +"JA" = ( +/obj/effect/turf_decal/weather/dirt/corner, +/obj/structure/flora/rock{ + icon_state = "redrocks3" + }, +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"JL" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/rockplanet/grass, +/area/overmap_encounter/planetoid/rockplanet/explored) +"JN" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ruin/rockplanet/nanotrasen) +"Kl" = ( +/obj/effect/turf_decal/weather/dirt/corner, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Kn" = ( +/obj/structure/window/plasma/reinforced/plastitanium, +/turf/open/floor/plating, +/area/ruin/rockplanet/nanotrasen) +"KA" = ( +/obj/structure/railing{ + dir = 6 + }, +/obj/structure/chair/plastic{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/rockplanet/hull_plating, +/area/overmap_encounter/planetoid/rockplanet/explored) +"KL" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/rockvault, +/area/ruin/rockplanet/nanotrasen) +"KN" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"KW" = ( +/obj/effect/decal/cleanable/robot_debris/gib, +/obj/item/stack/sheet/metal/five{ + pixel_x = 3; + pixel_y = 9 + }, +/turf/open/floor/plating/asteroid/rockplanet/wet/atmos, +/area/overmap_encounter/planetoid/rockplanet/explored) +"KX" = ( +/obj/structure/barricade/sandbags, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Le" = ( +/obj/effect/turf_decal/spline/plain/transparent/green{ + dir = 4; + icon_state = "spline_plain_cee" + }, +/obj/structure/frame/machine, +/obj/effect/spawner/lootdrop/salvage_matter_bin, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/rockplanet/nanotrasen) +"Lk" = ( +/turf/open/floor/plasteel/grimy, +/area/ruin/rockplanet/nanotrasen) +"Ly" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"LA" = ( +/obj/structure/cable{ + icon_state = "4-10" + }, +/turf/open/floor/plating/asteroid/rockplanet/plating/scorched, +/area/overmap_encounter/planetoid/rockplanet/explored) +"LN" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/ruin/rockplanet/nanotrasen) +"LW" = ( +/obj/structure/rack, +/obj/machinery/recharger{ + pixel_x = 5; + pixel_y = 7 + }, +/obj/item/stock_parts/cell{ + pixel_x = -7; + pixel_y = 8 + }, +/obj/item/stock_parts/cell{ + pixel_x = -7; + pixel_y = 2 + }, +/turf/open/floor/plasteel/rockvault, +/area/ruin/rockplanet/nanotrasen) +"LX" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/structure/cursed_money{ + pixel_x = 3; + pixel_y = 10 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/rockplanet/nanotrasen) +"Md" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Me" = ( +/obj/structure/table, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 10; + pixel_y = 10 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 1; + pixel_y = 7 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 10; + pixel_y = 3 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 1; + pixel_y = 3 + }, +/turf/open/floor/plasteel/rockvault, +/area/ruin/rockplanet/nanotrasen) +"Mi" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/rockplanet/pond, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Ms" = ( +/obj/structure/flora/rock{ + icon_state = "basalt" + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"MV" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/ruin/rockplanet/nanotrasen) +"MW" = ( +/obj/structure/salvageable/autolathe, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plasteel/rockvault, +/area/ruin/rockplanet/nanotrasen) +"NV" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Oc" = ( +/obj/structure/cable/yellow{ + icon_state = "4-5" + }, +/turf/open/floor/plasteel/rockvault, +/area/ruin/rockplanet/nanotrasen) +"Op" = ( +/turf/closed/wall/yesdiag, +/area/ruin/rockplanet/nanotrasen) +"Or" = ( +/mob/living/simple_animal/hostile/asteroid/basilisk/whitesands, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Ot" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible/layer2{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ruin/rockplanet/nanotrasen) +"Ox" = ( +/obj/effect/turf_decal/spline/fancy/opaque/yellow{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/turf_decal/techfloor/hole, +/turf/open/floor/plasteel/tech/techmaint, +/area/ruin/rockplanet/nanotrasen) +"OM" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/turf/open/floor/plating/asteroid/rockplanet/pond, +/area/overmap_encounter/planetoid/rockplanet/explored) +"OP" = ( +/obj/structure/rack, +/obj/item/storage/fancy/cigarettes/cigars, +/obj/item/lighter/greyscale, +/turf/open/floor/plating/asteroid/rockplanet/plasteel, +/area/overmap_encounter/planetoid/rockplanet/explored) +"OS" = ( +/obj/structure/rack, +/obj/item/reagent_containers/glass/bottle/morphine{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/item/reagent_containers/hypospray/medipen/morphine{ + pixel_y = -3 + }, +/turf/open/floor/plasteel/rockvault, +/area/ruin/rockplanet/nanotrasen) +"OY" = ( +/obj/item/reagent_containers/glass/bucket/wooden{ + pixel_x = 5; + pixel_y = 4 + }, +/obj/item/stack/sheet/cotton/cloth/ten{ + pixel_x = -15; + pixel_y = 8 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/turf/open/floor/plating/asteroid/rockplanet/grass, +/area/overmap_encounter/planetoid/rockplanet/explored) +"OZ" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Pn" = ( +/obj/machinery/power/smes/engineering{ + charge = 1000 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating/ashplanet/rocky, +/area/ruin/rockplanet/nanotrasen) +"PD" = ( +/obj/structure/bed{ + icon_state = "dirty_mattress"; + name = "dirty mattress" + }, +/turf/open/floor/plating, +/area/ruin/rockplanet/nanotrasen) +"PH" = ( +/obj/structure/frame/machine, +/turf/open/floor/plating/asteroid/rockplanet/hull_plating, +/area/overmap_encounter/planetoid/rockplanet/explored) +"PI" = ( +/obj/effect/turf_decal/weather/dirt, +/turf/open/floor/plating/asteroid/rockplanet/pond, +/area/overmap_encounter/planetoid/rockplanet/explored) +"PX" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/table, +/obj/machinery/computer/secure_data/laptop{ + dir = 8; + pixel_x = 2; + pixel_y = 6 + }, +/turf/open/floor/plating/asteroid/rockplanet/hull_plating, +/area/ruin/rockplanet/nanotrasen) +"Qc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/command{ + dir = 8; + name = "Bridge"; + req_access_txt = "19" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ruin/rockplanet/nanotrasen) +"Qv" = ( +/turf/template_noop, +/area/template_noop) +"Rj" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/techfloor{ + dir = 6 + }, +/obj/effect/decal/cleanable/glass/plasma, +/turf/open/floor/plasteel/tech, +/area/ruin/rockplanet/nanotrasen) +"Rk" = ( +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/ruin/rockplanet/nanotrasen) +"Rn" = ( +/obj/machinery/power/shuttle/engine/electric, +/turf/open/floor/plating/asteroid/rockplanet/hull_plating, +/area/overmap_encounter/planetoid/rockplanet/explored) +"RB" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"RM" = ( +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 1 + }, +/obj/structure/flora/rock{ + icon_state = "redrocks3" + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"RN" = ( +/obj/structure/fence/door{ + dir = 4 + }, +/obj/structure/curtain/cloth/grey, +/turf/open/floor/plating/asteroid/rockplanet/wet/atmos, +/area/ruin/rockplanet/nanotrasen) +"Sh" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Si" = ( +/obj/machinery/power/shieldwallgen/atmos{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/rockplanet/hull_plating, +/area/overmap_encounter/planetoid/rockplanet/explored) +"So" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/item/stack/sheet/metal/five, +/turf/open/floor/plating, +/area/ruin/rockplanet/nanotrasen) +"SH" = ( +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 8 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"SN" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Tb" = ( +/obj/structure/mecha_wreckage/ripley/firefighter, +/turf/open/floor/plating/asteroid/rockplanet/plating/scorched, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Tn" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plasteel, +/area/ruin/rockplanet/nanotrasen) +"TJ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/engineering{ + dir = 1; + name = "Engineering" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plasteel/patterned/grid, +/area/ruin/rockplanet/nanotrasen) +"TL" = ( +/obj/effect/turf_decal/spline/fancy/opaque/yellow{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ruin/rockplanet/nanotrasen) +"TT" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Ui" = ( +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/techfloor, +/obj/structure/frame/computer{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, +/area/ruin/rockplanet/nanotrasen) +"UX" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/rockplanet/nanotrasen) +"Vy" = ( +/obj/effect/decal/cleanable/xenoblood/xgibs, +/turf/open/floor/plating/asteroid/rockplanet/wet/atmos, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Wl" = ( +/obj/structure/barricade/sandbags, +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Wm" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/driftlog, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Xb" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Xj" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/rockplanet/plasteel, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Xk" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light/small/broken/directional/south, +/turf/open/floor/plating, +/area/ruin/rockplanet/nanotrasen) +"Xq" = ( +/obj/structure/flora/rock{ + icon_state = "redrocks1" + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Xy" = ( +/obj/machinery/door/airlock/external{ + dir = 4 + }, +/turf/open/floor/engine/hull/interior, +/area/ruin/rockplanet/nanotrasen) +"XH" = ( +/turf/open/floor/plating/asteroid/rockplanet/pond, +/area/overmap_encounter/planetoid/rockplanet/explored) +"XK" = ( +/turf/closed/wall/rust, +/area/ruin/rockplanet/nanotrasen) +"XX" = ( +/obj/structure/mineral_door/sandstone, +/turf/open/floor/plating/dirt/jungle/lit, +/area/ruin/rockplanet/nanotrasen) +"Yl" = ( +/obj/structure/table, +/obj/item/modular_computer/laptop{ + pixel_x = 3; + pixel_y = 8 + }, +/turf/open/floor/plasteel/rockvault, +/area/ruin/rockplanet/nanotrasen) +"Ym" = ( +/turf/closed/wall/yesdiag, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Yq" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/door_assembly/door_assembly_com{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ruin/rockplanet/nanotrasen) +"Yy" = ( +/mob/living/simple_animal/hostile/asteroid/gutlunch, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"YC" = ( +/obj/structure/toilet{ + dir = 8 + }, +/obj/structure/curtain, +/turf/open/floor/plating, +/area/ruin/rockplanet/nanotrasen) +"YQ" = ( +/turf/closed/wall/mineral/sandstone, +/area/ruin/rockplanet/nanotrasen) +"YT" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/light/small/broken/directional/south, +/turf/open/floor/plasteel/telecomms_floor, +/area/ruin/rockplanet/nanotrasen) +"YW" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible/layer2, +/obj/structure/cable/yellow{ + icon_state = "1-10" + }, +/turf/open/floor/plating/asteroid/rockplanet/wet/atmos, +/area/ruin/rockplanet/nanotrasen) +"Zc" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/obj/structure/cable/yellow{ + icon_state = "6-8" + }, +/turf/open/floor/plasteel/rockvault, +/area/ruin/rockplanet/nanotrasen) +"Ze" = ( +/obj/structure/closet/crate, +/obj/item/storage/toolbox/emergency, +/obj/item/storage/toolbox/emergency, +/obj/item/stack/sheet/metal/ten, +/turf/open/floor/plating/asteroid/rockplanet/plasteel, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Zf" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/obj/machinery/light/small/broken/directional/south, +/obj/structure/rack, +/obj/item/stock_parts/subspace/crystal{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/stock_parts/subspace/filter, +/obj/item/circuitboard/machine/telecomms/relay, +/turf/open/floor/plating{ + icon_state = "wet_cracked2" + }, +/area/ruin/rockplanet/nanotrasen) +"Zy" = ( +/turf/closed/wall/mineral/iron, +/area/ruin/rockplanet/nanotrasen) +"ZE" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ZO" = ( +/obj/structure/rack, +/turf/open/floor/plasteel/rockvault, +/area/ruin/rockplanet/nanotrasen) +"ZS" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/obj/effect/turf_decal/weather/dirt/corner{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ZZ" = ( +/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{ + dir = 1 + }, +/obj/machinery/light/small/broken/directional/north, +/obj/structure/table_frame, +/turf/open/floor/plating/asteroid/rockplanet/lit{ + icon_state = "plastic" + }, +/area/ruin/rockplanet/nanotrasen) + +(1,1,1) = {" +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +iN +iN +iN +iN +iN +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +"} +(2,1,1) = {" +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +iN +iN +iN +Kl +Hi +iN +vi +iN +iN +iN +iN +Kl +Hi +iN +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +"} +(3,1,1) = {" +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +iN +iN +iN +iN +Kl +pJ +Md +TT +iN +iN +iN +iN +iN +iN +aX +Ly +Hi +iN +iN +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +"} +(4,1,1) = {" +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +iN +kV +iN +vi +iN +aX +gY +gY +TT +iN +iN +iN +iN +iN +iN +aX +gY +Ly +Hi +iN +iN +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +"} +(5,1,1) = {" +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +iN +iN +iN +iN +iN +aX +gY +gY +TT +iN +HG +iN +iN +iN +iN +rc +RB +gY +TT +iN +iN +iN +Qv +Qv +Qv +Qv +Qv +Qv +Qv +"} +(6,1,1) = {" +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +iN +iN +uT +iN +Er +aX +gY +pH +yb +iN +iN +iN +Kl +Hi +iN +iN +aX +gY +TT +iN +iN +iN +Qv +Qv +Qv +Qv +Qv +Qv +Qv +"} +(7,1,1) = {" +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +iN +iN +iN +iN +iN +iN +aX +gY +TT +iN +iN +iN +iN +rc +yb +iN +iN +aX +gY +TT +iN +iN +iN +Qv +Qv +Qv +Qv +Qv +Qv +Qv +"} +(8,1,1) = {" +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +iN +iN +tA +dJ +iN +iN +DP +KN +sK +Hi +iN +iN +iN +iN +iN +vl +Kl +Md +gY +TT +iN +iN +kV +iN +Qv +Qv +Qv +Qv +Qv +Qv +"} +(9,1,1) = {" +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +iN +iN +iN +iN +iN +iN +aX +gY +wW +TT +iN +iN +Yy +iN +iN +iN +aX +gY +gY +TT +iN +iN +iN +iN +Qv +Qv +Qv +Qv +Qv +Qv +"} +(10,1,1) = {" +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +iN +iN +iN +iN +iN +iN +aX +gY +gY +TT +iN +iN +iN +iN +iN +vi +DP +SN +gY +TT +vi +iN +iN +iN +Qv +Qv +Qv +Qv +Qv +Qv +"} +(11,1,1) = {" +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +jm +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +iN +Ms +iN +iN +iN +Kl +Md +gY +gY +TT +iN +iN +iN +iN +iN +iN +aX +gY +gY +TT +iN +iN +iN +iN +Qv +Qv +Qv +Qv +Qv +Qv +"} +(12,1,1) = {" +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +jm +jm +jm +jm +jm +Qv +Qv +Qv +Qv +iN +iN +iN +iN +iN +kV +aX +gY +gY +gY +TT +iN +KX +KX +KX +KX +iN +aX +gY +gY +TT +iN +iN +Ms +iN +Qv +Qv +Qv +Qv +Qv +Qv +"} +(13,1,1) = {" +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +jm +jm +jm +jm +jm +jm +jm +Qv +Qv +iN +iN +iN +iN +iN +iN +aX +gY +gY +gY +TT +KX +iN +iN +iN +iN +EK +Md +gY +pH +yb +iN +iN +iN +iN +iN +Qv +Qv +Qv +Qv +Qv +"} +(14,1,1) = {" +Qv +Qv +Qv +Qv +Qv +Qv +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +Qv +Xq +iN +iN +KX +KX +KX +BA +gY +gY +pH +yb +iN +iN +iN +gn +DJ +aX +gY +gY +TT +iN +iN +iN +iN +iN +vi +Qv +Qv +Qv +Qv +Qv +"} +(15,1,1) = {" +Qv +Qv +Qv +Qv +Qv +Qv +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +iN +KX +iN +iN +iN +rc +RB +gY +TT +iN +iN +iN +yw +aw +iN +aX +gY +mW +fd +iN +iN +Yy +iN +iN +iN +Qv +Qv +Qv +Qv +Qv +"} +(16,1,1) = {" +Qv +Qv +Qv +Qv +Qv +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +iN +iN +iN +iN +iN +iN +aX +gY +TT +iN +iN +iN +HG +yw +vi +DP +qM +nB +uL +iN +Xq +iN +iN +iN +iN +iN +Qv +Qv +Qv +Qv +"} +(17,1,1) = {" +Qv +Qv +Qv +Qv +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +iN +Er +iN +iN +iN +vi +aX +gY +TT +iN +iN +iN +iN +Kl +Hi +aX +gY +Ly +cU +iN +iN +iN +iN +Er +iN +iN +Qv +Qv +Qv +Qv +"} +(18,1,1) = {" +Qv +Qv +Qv +Qv +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +iN +iN +iN +iN +iN +iN +aX +pH +sy +bv +bv +Io +TT +aX +TT +aX +gY +gY +TT +KX +iN +iN +iN +iN +tA +iN +Qv +Qv +Qv +Qv +"} +(19,1,1) = {" +Qv +Qv +Qv +Qv +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +iN +iN +Yy +iN +iN +Or +rc +vW +wq +vS +cO +Ir +TT +aX +Ly +Iw +gY +gY +Ly +Wl +pJ +Hi +vi +iN +iN +dJ +jm +jm +jm +Qv +"} +(20,1,1) = {" +Qv +Qv +Qv +Qv +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +iN +iN +iN +iN +gn +iN +Kl +Md +dM +vS +PX +KA +TT +aX +gY +rW +RB +gY +Ym +sZ +jI +Ym +tN +iN +jm +jm +jm +jm +jm +Qv +"} +(21,1,1) = {" +Qv +Qv +Qv +Qv +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +iN +iN +iN +iN +Kl +Md +gY +dM +vS +CN +CN +TT +rc +OZ +vW +Md +Ym +sZ +Ba +nf +tN +jm +jm +jm +jm +jm +jm +jm +Qv +"} +(22,1,1) = {" +Qv +Qv +Qv +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +iN +iN +Xq +iN +aX +gY +gY +NV +vF +CT +SH +iN +iN +iN +aX +gY +gY +vS +nf +Tb +Ym +jm +jm +jm +jm +jm +jm +Qv +Qv +"} +(23,1,1) = {" +Qv +Qv +Qv +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +iN +iN +iN +iN +iN +iN +iN +aX +gY +gY +TT +Kl +Md +TT +iN +iN +iN +aX +gY +gY +mu +Si +sZ +jm +jm +jm +jm +jm +jm +jm +Qv +Qv +"} +(24,1,1) = {" +Qv +Qv +Qv +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +iN +iN +iN +iN +kV +iN +iN +iN +aX +gY +gY +TT +aX +gY +jC +iN +iN +iN +DP +lw +gY +rW +tI +jm +jm +jm +jm +jm +jm +jm +jm +Qv +Qv +"} +(25,1,1) = {" +Qv +Qv +Qv +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +iN +iN +vi +iN +iN +iN +iN +iN +vi +aX +IH +gY +TT +Wm +gY +TT +Kl +Hi +iN +aX +gY +Xb +rH +jm +jm +jm +jm +jm +jm +jm +jm +jm +Qv +Qv +"} +(26,1,1) = {" +Qv +Qv +Qv +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +iN +iN +iN +iN +Er +iN +iN +iN +iN +rc +ZE +gY +TT +aX +gY +TT +aX +TT +Kl +Md +gY +gY +Ly +jm +jm +jm +jm +jm +jm +jm +jm +jm +Qv +Qv +"} +(27,1,1) = {" +Qv +Qv +Qv +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +iN +uT +iN +iN +iN +iN +iN +iN +vl +iN +iN +aX +gY +TT +rc +OZ +yb +aX +Ly +Md +gY +gY +EM +XK +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +Qv +"} +(28,1,1) = {" +Qv +Qv +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +iN +iN +iN +iN +iN +iN +iN +iN +iN +iN +jD +Md +gY +Ly +JA +pJ +pJ +Md +gY +gY +lg +cl +Bc +XK +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +Qv +"} +(29,1,1) = {" +Qv +Qv +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +pJ +iN +iN +iN +iN +iN +Xq +iN +iN +iN +iN +aX +gY +gY +gY +oZ +gY +gY +gY +gY +Bt +lg +zx +Xk +XK +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +Qv +"} +(30,1,1) = {" +Qv +Qv +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +vM +Sh +Hi +iN +iN +tA +iN +iN +iN +Er +Kl +Md +gY +gY +YQ +Xy +XK +YQ +XX +XK +XK +XK +kN +pb +XK +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +Qv +"} +(31,1,1) = {" +Qv +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +PI +gY +gY +Ly +Hi +iN +iN +iN +iN +iN +iN +aX +gY +gY +mu +YQ +uh +XK +zg +zh +lg +Le +XK +XK +UX +XK +on +Zy +Zy +jm +jm +jm +jm +jm +jm +Qv +Qv +"} +(32,1,1) = {" +Qv +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +He +OM +gY +yn +Ly +Hi +iN +iN +vi +iN +iN +aX +gY +cr +ZS +YQ +dB +lg +ZZ +mz +lg +YT +lg +fw +oz +Kn +ga +LW +Zy +on +jm +jm +jm +jm +jm +Qv +Qv +"} +(33,1,1) = {" +Qv +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +XH +He +OM +JL +hV +TT +iN +iN +iN +iN +iN +cP +gY +YQ +YQ +YQ +fM +lg +GB +gs +lg +ei +XK +Rk +Jy +wf +df +Oc +Hr +Zy +on +jm +jm +jm +jm +Qv +Qv +"} +(34,1,1) = {" +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +XH +PI +OY +vM +TT +uT +kV +iN +Kl +pJ +Iw +gY +Cm +Zf +lg +uK +XK +XK +ip +lg +qL +XK +rY +Ot +kS +YW +Zc +wf +qU +on +jm +jm +jm +jm +Qv +Qv +"} +(35,1,1) = {" +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +XH +He +Mi +jm +yb +iN +iN +iN +aX +gY +uD +YQ +sR +Ec +CC +GA +Ox +hy +vN +FI +qp +TJ +Tn +EF +Zy +IG +Ab +cd +sX +on +jm +jm +jm +jm +Qv +Qv +"} +(36,1,1) = {" +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +XH +jm +jm +iN +Or +iN +Kl +AS +OZ +ZE +YQ +zp +Ec +fc +rD +TL +AX +oI +il +iZ +XK +lg +aL +Zy +pV +Fk +vw +wf +on +jm +jm +jm +jm +Qv +Qv +"} +(37,1,1) = {" +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +iN +iN +iN +iN +aX +Ly +Hi +aX +YQ +rD +uo +lg +lg +ba +XK +Qc +lg +HL +XK +uh +uh +on +zz +KL +Pn +xG +on +jm +jm +jm +jm +Qv +Qv +"} +(38,1,1) = {" +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +iN +iN +iN +iN +KX +aX +gY +IX +Md +YQ +So +fK +XK +uh +MV +lg +Ew +lg +fe +lg +Gu +on +Zy +Zy +zH +Zy +Zy +on +on +jm +jm +jm +Qv +Qv +"} +(39,1,1) = {" +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +iN +iN +iN +Er +iN +BA +mW +uD +gY +XK +DR +lg +lg +Lk +PD +lg +Ew +lg +YC +lg +lg +Zy +Yl +FJ +KL +MW +Em +ZO +Zy +jm +jm +Qv +Qv +Qv +"} +(40,1,1) = {" +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +Xq +iN +iN +Kl +pJ +Md +gY +BX +jw +Op +XK +Op +XK +XK +lg +lg +Yq +XK +XK +XK +jm +Zy +kf +wf +Fk +wf +FJ +wf +Zy +jm +jm +Qv +Qv +Qv +"} +(41,1,1) = {" +Qv +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +iN +iN +iN +vi +aX +gY +gY +gY +Ly +AS +OZ +RB +gY +XK +LN +is +uB +EI +JN +xk +lg +jm +on +uN +FJ +aN +oW +wf +zU +on +jm +jm +Qv +Qv +Qv +"} +(42,1,1) = {" +Qv +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +iN +iN +iN +iN +Kl +Md +gY +po +gY +gY +TT +iN +kV +jm +jm +LX +hc +uh +tX +fF +Ui +lg +jm +on +Me +wf +FJ +wf +wf +FJ +Zy +jm +Qv +Qv +Qv +Qv +"} +(43,1,1) = {" +Qv +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +iN +iN +Yy +Kl +Md +Ym +sZ +gY +gY +pH +RM +iN +iN +jm +jm +jm +zF +IY +jl +gO +Rj +lg +jm +on +EL +FJ +wf +hm +OS +hm +Zy +jm +Qv +Qv +Qv +Qv +"} +(44,1,1) = {" +Qv +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +iN +vi +iN +iN +aX +Ym +tN +Bt +gY +gY +TT +iN +iN +iN +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +on +on +RN +Zy +Zy +on +on +jm +Qv +Qv +Qv +Qv +"} +(45,1,1) = {" +Qv +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +iN +iN +tA +iN +aX +uu +eo +eo +tN +Ym +TT +iN +Ms +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +vL +GK +GK +GK +GK +GK +jm +jm +Qv +Qv +Qv +Qv +Qv +"} +(46,1,1) = {" +Qv +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +iN +iN +iN +Ym +sZ +nf +nf +nf +Ze +sZ +TT +iN +iN +jm +jm +jm +jm +jm +jm +jm +jm +jm +GK +GK +Vy +GK +GK +jm +jm +jm +jm +jm +Qv +Qv +Qv +Qv +Qv +"} +(47,1,1) = {" +Qv +Qv +Qv +jm +jm +jm +jm +jm +jm +jm +iN +iN +iN +sZ +sZ +sZ +nf +Xj +OP +tN +Ym +TT +kV +iN +jm +jm +jm +jm +jm +jm +jm +jm +GK +GK +GK +GK +GK +jm +jm +jm +jm +jm +jm +Qv +Qv +Qv +Qv +Qv +"} +(48,1,1) = {" +Qv +Qv +Qv +jm +jm +jm +jm +jm +jm +jm +iN +iN +iN +tN +ha +zw +oq +or +Jf +Ym +OZ +yb +iN +jm +jm +jm +jm +jm +jm +jm +GK +GK +GK +KW +GK +GK +GK +jm +jm +jm +jm +jm +jm +Qv +Qv +Qv +Qv +Qv +"} +(49,1,1) = {" +Qv +Qv +Qv +jm +jm +jm +iN +iN +iN +iN +Ms +iN +sZ +LA +eo +sZ +sn +Jf +Ym +iN +iN +iN +dJ +jm +jm +jm +jm +jm +En +GK +GK +GK +GK +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +Qv +Qv +Qv +Qv +Qv +"} +(50,1,1) = {" +Qv +Qv +Qv +jm +jm +jm +dJ +iN +iN +iN +iN +iN +PH +lz +eo +sZ +Jf +Ym +iN +iN +iN +Qv +jm +jm +jm +jm +jm +Vy +GK +GK +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +Qv +Qv +Qv +Qv +Qv +Qv +"} +(51,1,1) = {" +Qv +Qv +Qv +Qv +jm +Qv +iN +iN +iN +vi +iN +iN +Rn +FP +sZ +Ym +iN +iN +vi +iN +Qv +Qv +jm +jm +jm +GK +GK +GK +GK +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +Qv +Qv +Qv +Qv +Qv +Qv +Qv +"} +(52,1,1) = {" +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +iN +iN +iN +iN +vS +tN +Ym +iN +kV +Yy +iN +iN +Qv +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +"} +(53,1,1) = {" +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +iN +iN +uT +iN +sZ +Ym +iN +iN +tA +iN +iN +Qv +Qv +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +"} +(54,1,1) = {" +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +iN +iN +iN +iN +vi +iN +iN +Qv +Qv +Qv +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +"} +(55,1,1) = {" +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +iN +iN +Er +iN +iN +Qv +Qv +Qv +Qv +Qv +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +"} +(56,1,1) = {" +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +iN +iN +iN +iN +Qv +Qv +Qv +Qv +Qv +Qv +Qv +jm +jm +jm +jm +jm +jm +jm +jm +jm +jm +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +"} +(57,1,1) = {" +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +jm +jm +jm +jm +jm +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +"} +(58,1,1) = {" +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +"} diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_golemhijack.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_golemhijack.dmm deleted file mode 100644 index 8953d652b99a..000000000000 --- a/_maps/RandomRuins/SandRuins/whitesands_surface_golemhijack.dmm +++ /dev/null @@ -1,1390 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"at" = ( -/obj/item/mining_scanner, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/overmap_encounter/planetoid/sand/explored) -"aZ" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ruin/unpowered) -"bb" = ( -/obj/item/shard{ - icon_state = "small" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/ruin/unpowered) -"bW" = ( -/obj/structure/shuttle/engine/heater{ - dir = 1 - }, -/obj/structure/window/reinforced, -/turf/open/floor/plating, -/area/ruin/unpowered) -"cj" = ( -/obj/effect/mob_spawn/human/corpse{ - mob_species = /datum/species/golem - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/mineral/titanium/white, -/area/ruin/unpowered) -"cs" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/opaque/white/line{ - dir = 5 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/ruin/unpowered) -"cB" = ( -/obj/effect/turf_decal/trimline/opaque/white/corner{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/machinery/mecha_part_fabricator/maint, -/turf/open/floor/plasteel/dark, -/area/ruin/unpowered) -"cW" = ( -/obj/structure/door_assembly/door_assembly_min{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ruin/unpowered) -"dz" = ( -/obj/structure/rack, -/obj/item/pickaxe, -/turf/open/floor/mineral/plastitanium, -/area/overmap_encounter/planetoid/sand/explored) -"eM" = ( -/obj/item/pickaxe{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/card/id/mining, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/mineral/titanium/yellow, -/area/overmap_encounter/planetoid/sand/explored) -"fb" = ( -/obj/item/crowbar, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/overmap_encounter/planetoid/sand/explored) -"fo" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/mineral/titanium/purple, -/area/ruin/unpowered) -"fz" = ( -/turf/open/floor/plating/asteroid/whitesands, -/area/ruin/unpowered) -"ha" = ( -/obj/item/rack_parts, -/turf/open/floor/mineral/plastitanium, -/area/overmap_encounter/planetoid/sand/explored) -"hh" = ( -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/overmap_encounter/planetoid/sand/explored) -"hi" = ( -/obj/item/resonator, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/ruin/unpowered) -"ht" = ( -/obj/structure/girder/displaced, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/overmap_encounter/planetoid/sand/explored) -"hJ" = ( -/obj/item/shard{ - icon_state = "medium" - }, -/turf/open/floor/plating/asteroid/whitesands, -/area/overmap_encounter/planetoid/sand/explored) -"hM" = ( -/obj/item/storage/box, -/obj/item/light/bulb/broken, -/obj/item/light/tube/broken, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/ruin/unpowered) -"iE" = ( -/obj/structure/AIcore/deactivated, -/turf/open/floor/mineral/titanium/white, -/area/ruin/unpowered) -"jp" = ( -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/white/line{ - dir = 8 - }, -/obj/structure/table, -/obj/item/storage/firstaid/brute, -/turf/open/floor/plasteel/dark, -/area/ruin/unpowered) -"jw" = ( -/obj/item/bedsheet/rd/royal_cape, -/obj/item/toy/figure/rd{ - name = "the Liberator action figure"; - pixel_x = 7; - pixel_y = -5; - toysay = "Yeah, go do whatever." - }, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating, -/area/ruin/unpowered) -"jy" = ( -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/trimline/opaque/purple/line{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/ruin/unpowered) -"jO" = ( -/obj/item/storage/part_replacer/bluespace/tier2, -/turf/open/floor/mineral/titanium/white, -/area/ruin/unpowered) -"kJ" = ( -/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/mining_scanner{ - pixel_x = -7; - pixel_y = 5 - }, -/turf/open/floor/mineral/plastitanium, -/area/overmap_encounter/planetoid/sand/explored) -"kT" = ( -/obj/structure/girder/displaced, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/ruin/unpowered) -"lJ" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/ruin/unpowered) -"mO" = ( -/obj/structure/window/reinforced, -/obj/structure/shuttle/engine/heater{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ruin/unpowered) -"mS" = ( -/obj/item/shard{ - icon_state = "tiny" - }, -/turf/open/floor/plating, -/area/ruin/unpowered) -"nL" = ( -/obj/item/light/bulb/broken{ - pixel_x = 8; - pixel_y = 8 - }, -/obj/item/light/tube/broken{ - pixel_x = -10; - pixel_y = 6 - }, -/obj/effect/decal/cleanable/oil, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plasteel, -/area/ruin/unpowered) -"nX" = ( -/obj/machinery/door/airlock/titanium, -/turf/open/floor/plating, -/area/ruin/unpowered) -"nZ" = ( -/obj/item/storage/bag/ore, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/turf_decal/trimline/opaque/yellow/line{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/item/rack_parts, -/obj/item/resonator{ - pixel_x = -6; - pixel_y = -6 - }, -/turf/open/floor/mineral/plastitanium, -/area/overmap_encounter/planetoid/sand/explored) -"od" = ( -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ruin/unpowered) -"oP" = ( -/obj/item/toy/plush/lizardplushie{ - desc = "Awww! It looks like it will snuggle all of your internal organs!"; - name = "ashwalker plushie" - }, -/obj/effect/mob_spawn/human/corpse{ - mob_species = /datum/species/lizard/ashwalker - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/mineral/titanium/white, -/area/ruin/unpowered) -"pb" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/overmap_encounter/planetoid/sand/explored) -"pC" = ( -/turf/open/floor/plasteel/dark, -/area/ruin/unpowered) -"pQ" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/ruin/unpowered) -"qU" = ( -/obj/structure/table, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ruin/unpowered) -"qY" = ( -/obj/structure/door_assembly/door_assembly_com, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/ruin/unpowered) -"rm" = ( -/obj/structure/girder, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/ruin/unpowered) -"rC" = ( -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/opaque/white/corner{ - dir = 1 - }, -/obj/structure/table, -/obj/item/areaeditor/blueprints{ - desc = "Use to build new structures in the wastes."; - name = "land claim" - }, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plasteel/dark, -/area/ruin/unpowered) -"sb" = ( -/obj/structure/frame/machine, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/ruin/unpowered) -"sh" = ( -/obj/machinery/door/airlock/titanium, -/turf/open/floor/plating/asteroid/whitesands, -/area/ruin/unpowered) -"sm" = ( -/obj/structure/frame/machine, -/turf/open/floor/plating, -/area/ruin/unpowered) -"sF" = ( -/obj/item/rack_parts, -/obj/item/storage/bag/ore, -/turf/open/floor/plating, -/area/overmap_encounter/planetoid/sand/explored) -"sO" = ( -/obj/item/storage/box, -/obj/structure/table, -/obj/item/light/bulb/broken, -/obj/item/light/tube/broken{ - pixel_x = -1; - pixel_y = 5 - }, -/obj/item/shard, -/obj/effect/mob_spawn/human/corpse{ - mob_species = /datum/species/lizard/ashwalker - }, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plasteel/dark, -/area/ruin/unpowered) -"tg" = ( -/obj/item/light/bulb/broken{ - pixel_x = -3; - pixel_y = -9 - }, -/obj/item/shard{ - icon_state = "medium" - }, -/obj/effect/decal/cleanable/oil, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/ruin/unpowered) -"tv" = ( -/obj/item/light/bulb/broken{ - pixel_x = -4; - pixel_y = -4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/ruin/unpowered) -"tw" = ( -/obj/item/mining_scanner{ - pixel_y = 7 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/mineral/titanium/yellow, -/area/overmap_encounter/planetoid/sand/explored) -"tH" = ( -/obj/item/pickaxe{ - pixel_x = -6; - pixel_y = 17 - }, -/obj/item/mining_scanner, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/overmap_encounter/planetoid/sand/explored) -"uA" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/overmap_encounter/planetoid/sand/explored) -"uY" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/ruin/unpowered) -"vc" = ( -/obj/item/pickaxe, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/mineral/titanium/white, -/area/ruin/unpowered) -"vd" = ( -/obj/item/rack_parts, -/turf/open/floor/plating/asteroid/whitesands, -/area/overmap_encounter/planetoid/sand/explored) -"vD" = ( -/obj/item/shard{ - icon_state = "tiny" - }, -/obj/item/shard{ - icon_state = "medium" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/ruin/unpowered) -"vI" = ( -/obj/structure/rack, -/obj/effect/turf_decal/trimline/opaque/yellow/line{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/item/clothing/head/hardhat/mining{ - pixel_x = -6; - pixel_y = -6 - }, -/obj/item/clothing/head/hardhat/mining{ - pixel_x = -2; - pixel_y = -2 - }, -/obj/item/clothing/head/hardhat/mining{ - pixel_x = 6; - pixel_y = 6 - }, -/turf/open/floor/mineral/plastitanium, -/area/overmap_encounter/planetoid/sand/explored) -"wd" = ( -/obj/effect/turf_decal/trimline/opaque/purple/line{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/opaque/purple/corner{ - dir = 8 - }, -/obj/item/shard{ - icon_state = "tiny" - }, -/obj/item/shard{ - icon_state = "small" - }, -/obj/effect/mob_spawn/human/corpse{ - mob_species = /datum/species/golem - }, -/turf/open/floor/plasteel/dark, -/area/ruin/unpowered) -"wl" = ( -/obj/machinery/washing_machine, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/ruin/unpowered) -"ww" = ( -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/ruin/unpowered) -"wH" = ( -/obj/structure/girder, -/turf/open/floor/plating, -/area/ruin/unpowered) -"xA" = ( -/obj/item/storage/box/rndboards, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/mineral/titanium/white, -/area/ruin/unpowered) -"xJ" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ruin/unpowered) -"xX" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/trimline/opaque/yellow/line{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/overmap_encounter/planetoid/sand/explored) -"yc" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg2" - }, -/area/overmap_encounter/planetoid/sand/explored) -"yI" = ( -/obj/structure/girder, -/turf/open/floor/plating, -/area/overmap_encounter/planetoid/sand/explored) -"yX" = ( -/obj/item/light/bulb/broken{ - pixel_x = 3; - pixel_y = -1 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/ruin/unpowered) -"zF" = ( -/turf/template_noop, -/area/template_noop) -"zP" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/ruin/unpowered) -"Al" = ( -/obj/item/shard{ - icon_state = "tiny" - }, -/obj/item/shard, -/obj/item/shard{ - icon_state = "small" - }, -/turf/open/floor/plating, -/area/ruin/unpowered) -"AG" = ( -/obj/machinery/mineral/ore_redemption{ - input_dir = 4; - output_dir = 8 - }, -/turf/open/floor/plating, -/area/ruin/unpowered) -"AW" = ( -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/trimline/opaque/white/line{ - dir = 9 - }, -/obj/structure/table, -/obj/structure/frame/machine, -/obj/item/stack/cable_coil/cut/green, -/obj/item/circuitboard/machine/reagentgrinder, -/turf/open/floor/plasteel/dark, -/area/ruin/unpowered) -"CL" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/opaque/white/line{ - dir = 4 - }, -/obj/structure/frame/machine, -/obj/item/stack/cable_coil/cut/random, -/obj/item/surgicaldrill/advanced, -/turf/open/floor/plasteel/dark, -/area/ruin/unpowered) -"EO" = ( -/obj/effect/turf_decal/trimline/opaque/purple/line{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/ruin/unpowered) -"EZ" = ( -/obj/machinery/door/airlock/titanium, -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/unpowered) -"FK" = ( -/obj/item/resonator, -/obj/effect/mob_spawn/human/corpse{ - mob_species = /datum/species/golem - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/mineral/titanium/purple, -/area/ruin/unpowered) -"Gf" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/purple/line{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/ruin/unpowered) -"Gm" = ( -/turf/open/floor/plating, -/area/ruin/unpowered) -"Gn" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/mineral/titanium/purple, -/area/ruin/unpowered) -"Gs" = ( -/obj/machinery/light/small/directional/west, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/freezer, -/area/overmap_encounter/planetoid/sand/explored) -"GZ" = ( -/obj/item/shard{ - icon_state = "tiny" - }, -/obj/item/shard{ - icon_state = "small" - }, -/turf/open/floor/plating, -/area/ruin/unpowered) -"Hm" = ( -/obj/item/card/id/mining, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/overmap_encounter/planetoid/sand/explored) -"HB" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/ruin/unpowered) -"HE" = ( -/obj/machinery/cell_charger, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/mineral/titanium/purple, -/area/ruin/unpowered) -"HK" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plasteel/dark, -/area/ruin/unpowered) -"Ie" = ( -/obj/structure/girder/displaced, -/turf/open/floor/plating, -/area/ruin/unpowered) -"Il" = ( -/obj/machinery/shower, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/freezer, -/area/overmap_encounter/planetoid/sand/explored) -"IC" = ( -/turf/open/floor/mineral/titanium/purple, -/area/ruin/unpowered) -"JF" = ( -/obj/machinery/door/airlock/external, -/turf/open/floor/plasteel/dark, -/area/ruin/unpowered) -"Ks" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/freezer, -/area/overmap_encounter/planetoid/sand/explored) -"Kt" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/effect/decal/cleanable/oil/slippery, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/ruin/unpowered) -"KT" = ( -/obj/structure/rack, -/obj/item/card/id/mining, -/obj/item/clothing/head/hardhat/mining, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/overmap_encounter/planetoid/sand/explored) -"Lz" = ( -/obj/structure/frame/machine, -/obj/effect/decal/cleanable/oil, -/obj/item/stack/cable_coil/cut/random, -/obj/item/clothing/suit/space/hardsuit/mining, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/ruin/unpowered) -"Mx" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/turf/open/floor/plating/asteroid/whitesands, -/area/ruin/unpowered) -"MT" = ( -/obj/structure/frame/machine, -/obj/item/shard, -/obj/item/book/manual/wiki/research_and_development{ - name = "Sacred Text of the Liberator"; - pixel_y = -5 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/ruin/unpowered) -"Nm" = ( -/obj/machinery/door/airlock/titanium, -/turf/open/floor/plasteel/dark, -/area/ruin/unpowered) -"Nz" = ( -/turf/open/floor/plating/asteroid/whitesands, -/area/overmap_encounter/planetoid/sand/explored) -"Pe" = ( -/obj/structure/ore_box, -/turf/open/floor/mineral/plastitanium, -/area/overmap_encounter/planetoid/sand/explored) -"PD" = ( -/obj/item/pickaxe, -/turf/open/floor/plating, -/area/ruin/unpowered) -"PN" = ( -/obj/structure/rack, -/obj/item/spear, -/obj/item/shard{ - icon_state = "medium" - }, -/obj/item/shard{ - icon_state = "tiny" - }, -/obj/item/shard{ - icon_state = "small" - }, -/turf/open/floor/plasteel/dark, -/area/ruin/unpowered) -"Qi" = ( -/obj/item/light/bulb/broken{ - pixel_x = -13; - pixel_y = -12 - }, -/obj/item/light/tube/broken{ - pixel_x = -10; - pixel_y = -6 - }, -/obj/item/shard{ - icon_state = "small" - }, -/obj/effect/decal/cleanable/oil, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plasteel, -/area/ruin/unpowered) -"Qq" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg2" - }, -/area/ruin/unpowered) -"Qr" = ( -/obj/item/shard, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/trimline/opaque/purple/line{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/ruin/unpowered) -"QX" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/opaque/purple/line{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/unpowered) -"Rb" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/opaque/white/corner{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/white/corner, -/turf/open/floor/plasteel/dark, -/area/ruin/unpowered) -"RJ" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/mineral/titanium/white, -/area/ruin/unpowered) -"RX" = ( -/obj/structure/rack, -/obj/item/storage/toolbox/electrical{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/storage/toolbox/mechanical, -/obj/item/storage/toolbox/emergency{ - pixel_x = 3; - pixel_y = -3 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/ruin/unpowered) -"SN" = ( -/obj/item/shard{ - icon_state = "tiny" - }, -/obj/item/shard{ - icon_state = "small" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/ruin/unpowered) -"Tc" = ( -/obj/item/spear, -/obj/effect/mob_spawn/human/corpse{ - mob_species = /datum/species/lizard/ashwalker - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/ruin/unpowered) -"Um" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/trimline/opaque/purple/line{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/ruin/unpowered) -"Uz" = ( -/turf/closed/wall/mineral/plastitanium, -/area/ruin/unpowered) -"Wm" = ( -/obj/structure/frame/machine, -/turf/open/floor/plasteel/dark, -/area/ruin/unpowered) -"Wt" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/trimline/opaque/white/line{ - dir = 8 - }, -/obj/machinery/autolathe, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/ruin/unpowered) -"WO" = ( -/obj/structure/door_assembly/door_assembly_com, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ruin/unpowered) -"Xx" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating, -/area/ruin/unpowered) -"XQ" = ( -/obj/item/shard, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/ruin/unpowered) -"YG" = ( -/obj/item/resonator/upgraded, -/obj/effect/mob_spawn/human/corpse{ - mob_species = /datum/species/golem - }, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ruin/unpowered) -"YN" = ( -/obj/item/light/tube/broken{ - pixel_x = -10; - pixel_y = -7 - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ruin/unpowered) -"YZ" = ( -/obj/effect/decal/cleanable/oil/streak, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/ruin/unpowered) -"ZD" = ( -/obj/structure/rack, -/obj/item/mop, -/obj/item/reagent_containers/glass/bucket, -/obj/item/storage/bag/trash{ - pixel_x = 6 - }, -/turf/open/floor/plating, -/area/ruin/unpowered) -"ZM" = ( -/obj/item/spear/bonespear, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/ruin/unpowered) -"ZP" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/ruin/unpowered) -"ZT" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/decal/cleanable/oil/slippery, -/turf/open/floor/plasteel/dark, -/area/ruin/unpowered) -"ZY" = ( -/obj/item/light/bulb/broken{ - pixel_x = 7; - pixel_y = 7 - }, -/obj/item/light/tube/broken{ - pixel_x = 12; - pixel_y = -7 - }, -/obj/effect/decal/cleanable/oil/streak, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/ruin/unpowered) - -(1,1,1) = {" -zF -zF -zF -zP -zP -aZ -aZ -rm -aZ -wH -Nz -zF -zF -zF -zF -zF -zF -zF -zF -zF -zF -zF -zF -"} -(2,1,1) = {" -Uz -Uz -aZ -zP -uY -ZD -RX -wH -Gs -pb -Nz -Nz -zF -zF -zF -zF -zF -zF -zF -zF -zF -zF -zF -"} -(3,1,1) = {" -xJ -mO -aZ -wl -ZP -ZP -fz -aZ -Il -hh -pb -yI -Nz -zF -zF -zF -zF -zF -zF -zF -zF -zF -zF -"} -(4,1,1) = {" -xJ -mO -aZ -Xx -Tc -fz -fz -nX -Ks -Nz -hh -Nz -Nz -Nz -zF -zF -zF -zF -zF -zF -zF -zF -zF -"} -(5,1,1) = {" -Uz -Uz -kT -rm -Nm -kT -PD -rm -pb -hh -uA -ht -hJ -Nz -zF -zF -zF -zF -zF -zF -zF -zF -zF -"} -(6,1,1) = {" -xJ -mO -lJ -Gm -fz -aZ -aZ -aZ -aZ -aZ -aZ -aZ -aZ -mS -mS -aZ -nX -nX -aZ -aZ -Nz -zF -zF -"} -(7,1,1) = {" -xJ -mO -rm -fz -yX -od -kT -AW -jp -qU -Wt -lJ -Qr -jy -EO -lJ -ZP -Um -pQ -Ie -Nz -Nz -zF -"} -(8,1,1) = {" -aZ -aZ -aZ -sm -YG -HK -aZ -rC -hi -RJ -RJ -lJ -lJ -Gn -Gn -jw -pQ -XQ -pQ -WO -fb -hh -Nz -"} -(9,1,1) = {" -JF -pC -JF -HB -ZY -YN -EZ -ww -cj -lJ -iE -vc -IC -HE -sb -Gn -bb -SN -SN -Ie -yc -Nz -yc -"} -(10,1,1) = {" -JF -pC -JF -tv -hM -nL -EZ -RJ -RJ -oP -Gm -xA -lJ -Gn -Wm -fo -MT -wd -vD -wH -Nz -pb -pb -"} -(11,1,1) = {" -aZ -aZ -aZ -Lz -Qi -sO -aZ -cB -RJ -ZM -RJ -jO -Qq -FK -lJ -pQ -pQ -pQ -pQ -qY -pb -hh -Nz -"} -(12,1,1) = {" -xJ -bW -aZ -Kt -tg -PN -aZ -cs -lJ -Rb -CL -lJ -QX -Gf -Mx -pQ -Gf -pQ -lJ -pb -Nz -Nz -Nz -"} -(13,1,1) = {" -xJ -bW -aZ -ZT -YZ -aZ -aZ -aZ -aZ -cW -aZ -AG -Al -aZ -aZ -aZ -cW -GZ -Ie -Nz -zF -zF -zF -"} -(14,1,1) = {" -Uz -Uz -aZ -aZ -sh -aZ -vI -nZ -Hm -xX -Nz -Nz -Nz -zF -zF -zF -zF -zF -zF -zF -zF -zF -zF -"} -(15,1,1) = {" -xJ -mO -aZ -Pe -tw -pb -at -Nz -Nz -Nz -zF -zF -zF -zF -zF -zF -zF -zF -zF -zF -zF -zF -zF -"} -(16,1,1) = {" -xJ -mO -aZ -kJ -eM -tH -pb -Hm -Nz -zF -zF -zF -zF -zF -zF -zF -zF -zF -zF -zF -zF -zF -zF -"} -(17,1,1) = {" -Uz -Uz -aZ -aZ -dz -sF -ha -KT -vd -zF -zF -zF -zF -zF -zF -zF -zF -zF -zF -zF -zF -zF -zF -"} -(18,1,1) = {" -zF -zF -zF -aZ -aZ -Nz -Nz -zF -zF -zF -zF -zF -zF -zF -zF -zF -zF -zF -zF -zF -zF -zF -zF -"} diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_youreinsane.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_youreinsane.dmm deleted file mode 100644 index e8932e8b51ed..000000000000 --- a/_maps/RandomRuins/SandRuins/whitesands_surface_youreinsane.dmm +++ /dev/null @@ -1,320 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( -/turf/template_noop, -/area/template_noop) -"b" = ( -/turf/open/floor/plating{ - icon_state = "panelscorched"; - initial_gas_mix = "ws_atmos" - }, -/area/ruin/unpowered) -"c" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating{ - initial_gas_mix = "ws_atmos" - }, -/area/ruin/unpowered) -"f" = ( -/turf/open/floor/plating/asteroid/whitesands, -/area/ruin/unpowered) -"g" = ( -/obj/effect/turf_decal/industrial/outline/yellow{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/unpowered) -"i" = ( -/obj/effect/decal/cleanable/greenglow, -/obj/item/disk/plantgene, -/turf/open/floor/plating{ - icon_state = "platingdmg2"; - initial_gas_mix = "ws_atmos" - }, -/area/ruin/unpowered) -"j" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/ruin/unpowered) -"k" = ( -/obj/structure/window/plasma/reinforced, -/obj/machinery/power/rad_collector/anchored, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, -/turf/open/floor/plating/asteroid/whitesands, -/area/ruin/unpowered) -"n" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - icon_state = "panelscorched"; - initial_gas_mix = "ws_atmos" - }, -/area/ruin/unpowered) -"r" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/engine, -/area/ruin/unpowered) -"s" = ( -/obj/effect/turf_decal/industrial/outline/yellow{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister/nitrogen, -/turf/open/floor/plasteel/dark, -/area/ruin/unpowered) -"t" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/engine, -/area/ruin/unpowered) -"u" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, -/turf/closed/wall/r_wall, -/area/ruin/unpowered) -"w" = ( -/turf/closed/wall/r_wall, -/area/ruin/unpowered) -"x" = ( -/obj/effect/mob_spawn/human/engineer{ - gender = "female" - }, -/obj/item/clothing/suit/radiation, -/obj/item/clothing/head/radiation{ - pixel_x = -1; - pixel_y = 9 - }, -/obj/item/geiger_counter, -/turf/open/floor/engine, -/area/ruin/unpowered) -"y" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/turf/closed/wall/r_wall, -/area/ruin/unpowered) -"z" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - initial_gas_mix = "ws_atmos" - }, -/area/ruin/unpowered) -"B" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/ruin/unpowered) -"C" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/engine, -/area/ruin/unpowered) -"E" = ( -/obj/effect/decal/cleanable/greenglow, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - initial_gas_mix = "ws_atmos" - }, -/area/ruin/unpowered) -"G" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg2"; - initial_gas_mix = "ws_atmos" - }, -/area/ruin/unpowered) -"H" = ( -/obj/structure/girder/displaced, -/turf/open/floor/plating{ - initial_gas_mix = "ws_atmos" - }, -/area/ruin/unpowered) -"I" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/engine, -/area/ruin/unpowered) -"J" = ( -/obj/structure/window/plasma/reinforced{ - dir = 1 - }, -/obj/structure/frame/machine, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg2"; - initial_gas_mix = "ws_atmos" - }, -/area/ruin/unpowered) -"L" = ( -/obj/structure/window/plasma/reinforced{ - dir = 1 - }, -/obj/machinery/power/rad_collector/anchored, -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/turf/open/floor/plating{ - icon_state = "platingdmg1"; - initial_gas_mix = "ws_atmos" - }, -/area/ruin/unpowered) -"Q" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 6 - }, -/obj/structure/girder, -/turf/open/floor/plating{ - initial_gas_mix = "ws_atmos" - }, -/area/ruin/unpowered) -"R" = ( -/obj/structure/window/plasma/reinforced, -/obj/machinery/power/rad_collector/anchored, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg2"; - initial_gas_mix = "ws_atmos" - }, -/area/ruin/unpowered) -"S" = ( -/turf/open/floor/plating{ - initial_gas_mix = "ws_atmos" - }, -/area/ruin/unpowered) -"T" = ( -/obj/structure/window/plasma/reinforced{ - dir = 1 - }, -/obj/structure/frame/machine, -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/turf/open/floor/engine, -/area/ruin/unpowered) -"V" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg1"; - initial_gas_mix = "ws_atmos" - }, -/area/ruin/unpowered) -"W" = ( -/obj/machinery/door/airlock/engineering/glass/critical{ - heat_proof = 1; - name = "Supermatter Chamber"; - req_access_txt = "10"; - dir = 4 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg2"; - initial_gas_mix = "ws_atmos" - }, -/area/ruin/unpowered) -"X" = ( -/obj/structure/girder, -/turf/open/floor/plating{ - initial_gas_mix = "ws_atmos" - }, -/area/ruin/unpowered) -"Y" = ( -/obj/machinery/door/airlock/engineering/glass/critical{ - heat_proof = 1; - name = "Supermatter Chamber"; - req_access_txt = "10"; - dir = 4 - }, -/turf/open/floor/engine, -/area/ruin/unpowered) -"Z" = ( -/obj/structure/window/plasma/reinforced, -/obj/structure/frame/machine, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg1"; - initial_gas_mix = "ws_atmos" - }, -/area/ruin/unpowered) - -(1,1,1) = {" -a -z -X -w -W -w -H -B -a -"} -(2,1,1) = {" -s -z -w -z -x -G -w -g -a -"} -(3,1,1) = {" -w -X -Q -u -Y -j -y -w -w -"} -(4,1,1) = {" -a -V -R -I -i -r -L -f -a -"} -(5,1,1) = {" -a -z -Z -I -E -r -T -n -b -"} -(6,1,1) = {" -S -S -k -I -C -t -J -C -a -"} -(7,1,1) = {" -X -w -w -w -c -w -w -X -w -"} diff --git a/_maps/RandomRuins/SpaceRuins/DJstation.dmm b/_maps/RandomRuins/SpaceRuins/DJstation.dmm index 0015c9509123..63659db94417 100644 --- a/_maps/RandomRuins/SpaceRuins/DJstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/DJstation.dmm @@ -351,8 +351,8 @@ dir = 1 }, /obj/structure/rack, -/obj/item/clothing/under/costume/soviet, -/obj/item/clothing/head/trapper, +/obj/item/clothing/under/costume/pirate, +/obj/item/clothing/head/bandana, /obj/effect/turf_decal/corner/opaque/white{ dir = 1 }, diff --git a/_maps/RandomRuins/SpaceRuins/dangerous_research.dmm b/_maps/RandomRuins/SpaceRuins/dangerous_research.dmm index 73c7dd734c00..f477717d9b81 100644 --- a/_maps/RandomRuins/SpaceRuins/dangerous_research.dmm +++ b/_maps/RandomRuins/SpaceRuins/dangerous_research.dmm @@ -82,7 +82,7 @@ dir = 1 }, /obj/effect/turf_decal/corner/opaque/grey, -/obj/machinery/rnd/production/protolathe, +/obj/machinery/rnd/production/techfab/department/medical, /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav) "cW" = ( @@ -1924,7 +1924,7 @@ /obj/effect/turf_decal/trimline/opaque/purple/line{ dir = 4 }, -/turf/open/space, +/turf/open/floor/plating, /area/ruin/space/has_grav) "XX" = ( /obj/structure/window/reinforced{ diff --git a/_maps/RandomRuins/SpaceRuins/lab4071.dmm b/_maps/RandomRuins/SpaceRuins/lab4071.dmm index 2f4c94d3c939..0e35f81af2f8 100644 --- a/_maps/RandomRuins/SpaceRuins/lab4071.dmm +++ b/_maps/RandomRuins/SpaceRuins/lab4071.dmm @@ -231,17 +231,6 @@ /turf/open/floor/plasteel/mono/white, /area/ruin/space/has_grav/crazylab/crew) "dO" = ( -/obj/effect/mob_spawn/human/syndicate/battlecruiser/assault{ - assignedrole = "Unlicensed Chemist"; - dir = 4; - flavour_text = "Despite all the setbacks, you have finally found a place to practice your craft in relative peace, thanks to a shady deal with a criminal organization. You now work for them as a contract chemist, but your goal of profit leaves you plenty of options."; - id_job = "Unlicensed Chemist"; - important_info = "Work together, use chemistry to turn a profit and help out the population of the Outer Rim."; - mob_name = "unlicensed chemist"; - name = "Unlicensed Chemist"; - outfit = /datum/outfit/job/chemist/juniorchemist; - short_desc = "You are a chemist in an illegal laboratory." - }, /obj/machinery/button/door{ id = 64; name = "Dorm Shutters"; @@ -254,34 +243,6 @@ /obj/structure/bookcase/random/reference, /turf/open/floor/plasteel/grimy, /area/ruin/space/has_grav/crazylab/crew) -"eh" = ( -/obj/effect/mob_spawn/human/syndicate/battlecruiser/assault{ - assignedrole = "Unlicensed Chemist"; - dir = 4; - flavour_text = "Despite all the setbacks, you have finally found a place to practice your craft in relative peace, thanks to a shady deal with a criminal organization. You now work for them as a contract chemist, but your goal of profit leaves you plenty of options."; - id_job = "Unlicensed Chemist"; - important_info = "Work together, use chemistry to turn a profit and help out the population of the Outer Rim."; - mob_name = "unlicensed chemist"; - name = "Unlicensed Chemist"; - outfit = /datum/outfit/job/chemist/juniorchemist; - short_desc = "You are a chemist in an illegal laboratory." - }, -/turf/open/floor/plasteel/grimy, -/area/ruin/space/has_grav/crazylab/crew) -"et" = ( -/obj/effect/mob_spawn/human/syndicate/battlecruiser/assault{ - assignedrole = "Unlicensed Chemist"; - dir = 8; - flavour_text = "Despite all the setbacks, you have finally found a place to practice your craft in relative peace, thanks to a shady deal with a criminal organization. You now work for them as a contract chemist, but your goal of profit leaves you plenty of options."; - id_job = "Unlicensed Chemist"; - important_info = "Work together, use chemistry to turn a profit and help out the population of the Outer Rim."; - mob_name = "unlicensed chemist"; - name = "Unlicensed Chemist"; - outfit = /datum/outfit/job/chemist/juniorchemist; - short_desc = "You are a chemist in an illegal laboratory." - }, -/turf/open/floor/plasteel/grimy, -/area/ruin/space/has_grav/crazylab/crew) "eA" = ( /obj/structure/bookcase/random/nonfiction, /turf/open/floor/plasteel/grimy, @@ -570,17 +531,6 @@ /area/ruin/space/has_grav/crazylab/crew) "jL" = ( /obj/machinery/light/directional/south, -/obj/effect/mob_spawn/human/syndicate/battlecruiser/assault{ - assignedrole = "Unlicensed Chemist"; - dir = 4; - flavour_text = "Despite all the setbacks, you have finally found a place to practice your craft in relative peace, thanks to a shady deal with a criminal organization. You now work for them as a contract chemist, but your goal of profit leaves you plenty of options."; - id_job = "Unlicensed Chemist"; - important_info = "Work together, use chemistry to turn a profit and help out the population of the Outer Rim."; - mob_name = "unlicensed chemist"; - name = "Unlicensed Chemist"; - outfit = /datum/outfit/job/chemist/juniorchemist; - short_desc = "You are a chemist in an illegal laboratory." - }, /turf/open/floor/plasteel/grimy, /area/ruin/space/has_grav/crazylab/crew) "jO" = ( @@ -4957,7 +4907,7 @@ GV GV ao cq -eh +gP gV jG lN @@ -4995,7 +4945,7 @@ GV GV ao cq -et +gP hf jO lS diff --git a/_maps/RandomRuins/SpaceRuins/mechtransport.dmm b/_maps/RandomRuins/SpaceRuins/mechtransport.dmm deleted file mode 100644 index 43ec10644a73..000000000000 --- a/_maps/RandomRuins/SpaceRuins/mechtransport.dmm +++ /dev/null @@ -1,377 +0,0 @@ -//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/titanium/overspace, -/area/ruin/space/has_grav/powered/mechtransport) -"c" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/ruin/space/has_grav/powered/mechtransport) -"d" = ( -/turf/closed/wall/mineral/titanium, -/area/ruin/space/has_grav/powered/mechtransport) -"e" = ( -/obj/machinery/power/terminal, -/turf/closed/wall/mineral/titanium/overspace, -/area/ruin/space/has_grav/powered/mechtransport) -"f" = ( -/obj/structure/closet/crate/secure/loot, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/mineral/titanium/blue, -/area/ruin/space/has_grav/powered/mechtransport) -"g" = ( -/obj/structure/closet/crate/secure/loot, -/turf/open/floor/mineral/titanium/blue, -/area/ruin/space/has_grav/powered/mechtransport) -"h" = ( -/obj/structure/table, -/obj/machinery/button/door{ - id = "mechaship1"; - name = "Mecha Cargo Ship Doors" - }, -/turf/open/floor/mineral/titanium/blue, -/area/ruin/space/has_grav/powered/mechtransport) -"i" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/mineral/titanium/blue, -/area/ruin/space/has_grav/powered/mechtransport) -"j" = ( -/obj/machinery/computer/helm{ - dir = 8 - }, -/turf/open/floor/mineral/titanium/blue, -/area/ruin/space/has_grav/powered/mechtransport) -"k" = ( -/obj/effect/decal/cleanable/vomit/old, -/turf/open/floor/mineral/titanium/blue, -/area/ruin/space/has_grav/powered/mechtransport) -"l" = ( -/obj/effect/decal/remains/human, -/turf/open/floor/mineral/titanium/blue, -/area/ruin/space/has_grav/powered/mechtransport) -"m" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/mineral/titanium/blue, -/area/ruin/space/has_grav/powered/mechtransport) -"n" = ( -/obj/structure/chair/office{ - dir = 1 - }, -/turf/open/floor/mineral/titanium/blue, -/area/ruin/space/has_grav/powered/mechtransport) -"o" = ( -/obj/machinery/power/smes/shuttle/micro/precharged, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/closed/wall/mineral/titanium/overspace, -/area/ruin/space/has_grav/powered/mechtransport) -"p" = ( -/obj/machinery/door/airlock/hatch{ - name = "Cockpit"; - req_access_txt = "101" - }, -/turf/open/floor/mineral/titanium, -/area/ruin/space/has_grav/powered/mechtransport) -"r" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/mineral/titanium/airless, -/area/ruin/space/has_grav/powered/mechtransport) -"s" = ( -/turf/open/floor/mineral/titanium/airless, -/area/ruin/space/has_grav/powered/mechtransport) -"t" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/mineral/titanium/airless, -/area/ruin/space/has_grav/powered/mechtransport) -"u" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/mineral/titanium/airless, -/area/ruin/space/has_grav/powered/mechtransport) -"v" = ( -/obj/structure/mecha_wreckage/phazon, -/turf/open/floor/mineral/titanium/yellow/airless, -/area/ruin/space/has_grav/powered/mechtransport) -"w" = ( -/turf/open/floor/mineral/titanium/yellow/airless, -/area/ruin/space/has_grav/powered/mechtransport) -"x" = ( -/obj/structure/mecha_wreckage/ripley/firefighter, -/turf/open/floor/mineral/titanium/yellow/airless, -/area/ruin/space/has_grav/powered/mechtransport) -"y" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/mineral/titanium/yellow/airless, -/area/ruin/space/has_grav/powered/mechtransport) -"z" = ( -/obj/structure/mecha_wreckage/ripley, -/turf/open/floor/mineral/titanium/yellow/airless, -/area/ruin/space/has_grav/powered/mechtransport) -"A" = ( -/obj/mecha/working/ripley{ - ruin_mecha = 1 - }, -/turf/open/floor/mineral/titanium/yellow/airless, -/area/ruin/space/has_grav/powered/mechtransport) -"B" = ( -/obj/effect/decal/cleanable/oil, -/turf/open/floor/mineral/titanium/yellow/airless, -/area/ruin/space/has_grav/powered/mechtransport) -"C" = ( -/obj/effect/decal/cleanable/robot_debris/up, -/turf/open/floor/mineral/titanium/yellow/airless, -/area/ruin/space/has_grav/powered/mechtransport) -"D" = ( -/obj/machinery/door/poddoor{ - id = "mechaship1"; - name = "Cargo Bay Door"; - dir = 4 - }, -/turf/open/floor/mineral/titanium/yellow/airless, -/area/ruin/space/has_grav/powered/mechtransport) -"E" = ( -/obj/effect/decal/cleanable/robot_debris, -/turf/open/floor/mineral/titanium/yellow/airless, -/area/ruin/space/has_grav/powered/mechtransport) -"F" = ( -/obj/structure/mecha_wreckage/durand, -/turf/open/floor/mineral/titanium/yellow/airless, -/area/ruin/space/has_grav/powered/mechtransport) -"G" = ( -/obj/item/stack/tile/plasteel, -/turf/open/floor/plating/airless, -/area/ruin/space/has_grav/powered/mechtransport) -"H" = ( -/turf/open/floor/plating/airless, -/area/ruin/space/has_grav/powered/mechtransport) -"I" = ( -/obj/structure/lattice, -/turf/open/space, -/area/ruin/space/has_grav/powered/mechtransport) -"J" = ( -/obj/machinery/computer/mecha{ - dir = 8 - }, -/turf/open/floor/mineral/titanium/blue, -/area/ruin/space/has_grav/powered/mechtransport) -"K" = ( -/obj/effect/decal/cleanable/robot_debris/gib, -/turf/open/floor/plating/airless, -/area/ruin/space/has_grav/powered/mechtransport) -"L" = ( -/obj/effect/decal/cleanable/robot_debris, -/obj/item/stack/tile/plasteel, -/turf/open/floor/mineral/titanium/yellow/airless, -/area/ruin/space/has_grav/powered/mechtransport) -"M" = ( -/turf/open/floor/plating/airless{ - icon_state = "platingdmg1" - }, -/area/ruin/space/has_grav/powered/mechtransport) -"N" = ( -/turf/open/floor/plating/airless{ - icon_state = "platingdmg2" - }, -/area/ruin/space/has_grav/powered/mechtransport) -"O" = ( -/obj/structure/mecha_wreckage/odysseus, -/turf/open/floor/mineral/titanium/yellow/airless, -/area/ruin/space/has_grav/powered/mechtransport) -"P" = ( -/obj/item/stack/sheet/metal, -/turf/open/space, -/area/ruin/space/has_grav/powered/mechtransport) -"Q" = ( -/obj/structure/mecha_wreckage/gygax, -/turf/open/floor/mineral/titanium/airless, -/area/ruin/space/has_grav/powered/mechtransport) -"R" = ( -/turf/open/floor/plating/airless{ - icon_state = "platingdmg3" - }, -/area/ruin/space/has_grav/powered/mechtransport) -"S" = ( -/obj/item/stack/rods, -/turf/open/floor/plating/airless, -/area/ruin/space/has_grav/powered/mechtransport) -"T" = ( -/turf/open/space, -/area/ruin/space/has_grav/powered/mechtransport) -"V" = ( -/obj/item/stack/rods, -/turf/open/space, -/area/ruin/space/has_grav/powered/mechtransport) -"W" = ( -/obj/machinery/power/smes/shuttle/micro/precharged, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/closed/wall/mineral/titanium, -/area/ruin/space/has_grav/powered/mechtransport) -"X" = ( -/obj/machinery/power/shuttle/engine/electric, -/obj/structure/cable, -/turf/open/floor/plating/airless, -/area/ruin/space/has_grav/powered/mechtransport) -"Y" = ( -/obj/machinery/power/terminal, -/turf/closed/wall/mineral/titanium, -/area/ruin/space/has_grav/powered/mechtransport) - -(1,1,1) = {" -a -a -a -b -d -d -d -d -G -I -M -P -T -T -T -"} -(2,1,1) = {" -b -d -d -d -r -v -B -E -H -S -H -I -R -V -T -"} -(3,1,1) = {" -c -f -k -p -s -w -w -F -w -H -N -I -I -T -T -"} -(4,1,1) = {" -c -g -l -d -t -w -C -G -F -w -G -H -P -T -T -"} -(5,1,1) = {" -c -h -m -d -s -x -w -w -y -K -O -s -S -I -T -"} -(6,1,1) = {" -c -i -n -d -t -y -z -w -H -L -O -H -H -T -T -"} -(7,1,1) = {" -c -j -J -d -t -z -w -w -y -w -w -Q -Y -o -X -"} -(8,1,1) = {" -b -d -d -d -u -A -y -w -w -B -y -s -Y -W -X -"} -(9,1,1) = {" -a -a -a -b -d -d -D -D -D -D -D -d -e -o -X -"} diff --git a/_maps/RandomRuins/SpaceRuins/nuclear_dump.dmm b/_maps/RandomRuins/SpaceRuins/nuclear_dump.dmm deleted file mode 100644 index a953fc3f543c..000000000000 --- a/_maps/RandomRuins/SpaceRuins/nuclear_dump.dmm +++ /dev/null @@ -1,1719 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"ac" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, -/turf/open/floor/plasteel/dark/airless, -/area/space/nearstation) -"ce" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/obj/effect/decal/cleanable/greenglow, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/nucleardump) -"cw" = ( -/obj/effect/turf_decal/syndicateemblem/top/right, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/nucleardump) -"cU" = ( -/obj/structure/radioactive/waste, -/turf/open/floor/plating/asteroid/airless, -/area/ruin/unpowered) -"dl" = ( -/obj/machinery/power/emitter{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/vault, -/area/ruin/space/has_grav/nucleardump/supermatter) -"eo" = ( -/obj/structure/radioactive, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/nucleardump) -"fi" = ( -/turf/closed/wall, -/area/ruin/space/has_grav/nucleardump) -"fu" = ( -/obj/structure/radioactive, -/turf/open/floor/plating/asteroid/airless, -/area/ruin/unpowered) -"gs" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/nucleardump) -"gw" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/plasteel/dark, -/area/ruin/space/has_grav/nucleardump) -"gO" = ( -/mob/living/simple_animal/hostile/hivebot/mechanic, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/nucleardump) -"he" = ( -/obj/effect/mob_spawn/human/corpse/charredskeleton, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plasteel/dark, -/area/ruin/space/has_grav/nucleardump/supermatter) -"ht" = ( -/turf/open/floor/plating/airless, -/area/ruin/space/has_grav/nucleardump) -"hH" = ( -/obj/item/paper/crumpled, -/turf/open/floor/plasteel/dark, -/area/ruin/space/has_grav/nucleardump) -"im" = ( -/obj/effect/decal/cleanable/blood/gibs/body, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/nucleardump) -"iN" = ( -/obj/structure/lattice, -/turf/template_noop, -/area/space/nearstation) -"iZ" = ( -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/nucleardump) -"jm" = ( -/turf/closed/wall/r_wall/rust, -/area/ruin/space/has_grav/nucleardump) -"jD" = ( -/turf/closed/wall/r_wall, -/area/ruin/space/has_grav/nucleardump) -"jN" = ( -/turf/closed/wall/r_wall, -/area/ruin/space/has_grav/nucleardump/supermatter) -"kB" = ( -/obj/machinery/light/directional/west, -/turf/open/floor/plasteel/dark, -/area/ruin/space/has_grav/nucleardump) -"kN" = ( -/obj/machinery/light/directional/east, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/nucleardump) -"kP" = ( -/obj/effect/turf_decal/radiation{ - pixel_y = 32 - }, -/turf/template_noop, -/area/space/nearstation) -"la" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/syndicateemblem/middle/right, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/nucleardump) -"ld" = ( -/obj/effect/decal/cleanable/blood/drip, -/obj/structure/radioactive, -/turf/open/floor/plasteel/dark, -/area/ruin/space/has_grav/nucleardump) -"ls" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/nucleardump) -"lF" = ( -/obj/item/stack/sheet/plasmaglass, -/turf/open/floor/vault, -/area/ruin/space/has_grav/nucleardump/supermatter) -"lU" = ( -/obj/effect/decal/cleanable/blood/old, -/obj/effect/turf_decal/industrial/fire{ - dir = 4 - }, -/obj/structure/sign/warning/radiation{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/space/has_grav/nucleardump) -"ma" = ( -/turf/open/floor/plating/asteroid/airless, -/area/ruin/unpowered) -"mj" = ( -/obj/effect/decal/cleanable/cobweb, -/obj/structure/radioactive/stack, -/turf/open/floor/plasteel/dark, -/area/ruin/space/has_grav/nucleardump) -"mX" = ( -/obj/structure/radioactive, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/nucleardump) -"nM" = ( -/obj/item/flashlight/flare, -/turf/open/floor/plasteel/dark/airless, -/area/ruin/space/has_grav/nucleardump) -"ov" = ( -/obj/machinery/atmospherics/components/unary/tank/air, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/nucleardump) -"oC" = ( -/turf/closed/wall/r_wall/rust, -/area/ruin/space/has_grav/nucleardump/supermatter) -"oP" = ( -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel/dark, -/area/ruin/space/has_grav/nucleardump) -"oT" = ( -/turf/closed/mineral/random, -/area/ruin/unpowered) -"oU" = ( -/obj/effect/turf_decal/industrial/fire{ - dir = 4 - }, -/turf/open/floor/plasteel/dark/airless, -/area/space/nearstation) -"oV" = ( -/obj/effect/turf_decal/radiation{ - dir = 4; - pixel_x = -32 - }, -/turf/template_noop, -/area/space/nearstation) -"pe" = ( -/obj/effect/turf_decal/industrial/fire, -/turf/open/floor/plasteel/dark/airless, -/area/space/nearstation) -"pf" = ( -/obj/machinery/door/airlock/grunge{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/space/has_grav/nucleardump) -"pJ" = ( -/obj/effect/spawner/lootdrop/maintenance/two, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/nucleardump) -"qy" = ( -/obj/effect/decal/cleanable/blood/footprints, -/turf/open/floor/plasteel/dark, -/area/ruin/space/has_grav/nucleardump) -"qA" = ( -/obj/item/geiger_counter, -/turf/open/floor/plasteel/dark/airless, -/area/space/nearstation) -"qF" = ( -/obj/item/pipe, -/turf/open/floor/engine/air, -/area/ruin/space/has_grav/nucleardump/supermatter) -"qH" = ( -/obj/machinery/door/airlock/grunge, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/nucleardump) -"qK" = ( -/obj/structure/rack, -/obj/item/storage/box/lethalshot, -/obj/item/gun/ballistic/shotgun/automatic/combat, -/turf/open/floor/plating/airless, -/area/ruin/space/has_grav/nucleardump) -"rg" = ( -/obj/item/stack/ore/uranium, -/turf/open/floor/plating/asteroid/airless, -/area/ruin/unpowered) -"rp" = ( -/obj/structure/radioactive/stack, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/nucleardump) -"rM" = ( -/obj/item/pipe, -/turf/open/floor/vault, -/area/ruin/space/has_grav/nucleardump/supermatter) -"rS" = ( -/turf/open/floor/engine/air, -/area/ruin/space/has_grav/nucleardump/supermatter) -"sN" = ( -/obj/structure/grille, -/turf/open/floor/engine/air, -/area/ruin/space/has_grav/nucleardump/supermatter) -"ua" = ( -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/nucleardump) -"un" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance/eight, -/turf/open/floor/plating/airless, -/area/ruin/space/has_grav/nucleardump) -"uo" = ( -/obj/machinery/door/airlock/hatch{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/airless, -/area/ruin/space/has_grav/nucleardump) -"ur" = ( -/obj/effect/turf_decal/syndicateemblem/top/left, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/nucleardump) -"uF" = ( -/obj/machinery/power/port_gen/pacman/super, -/turf/open/floor/plating/airless, -/area/ruin/space/has_grav/nucleardump) -"vh" = ( -/obj/structure/sign/warning/radiation/rad_area{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/dark/airless, -/area/space/nearstation) -"vr" = ( -/obj/item/slimecross/chilling/green, -/turf/open/floor/vault, -/area/ruin/space/has_grav/nucleardump/supermatter) -"wc" = ( -/obj/structure/radioactive/supermatter, -/turf/open/floor/engine/air, -/area/ruin/space/has_grav/nucleardump/supermatter) -"wr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon{ - dir = 4 - }, -/obj/machinery/light/small/broken/directional/south, -/turf/open/floor/plasteel/dark/airless, -/area/ruin/space/has_grav/nucleardump) -"xR" = ( -/turf/closed/wall, -/area/space/nearstation) -"yn" = ( -/obj/machinery/light/broken/directional/north, -/turf/open/floor/plating/airless, -/area/ruin/space/has_grav/nucleardump) -"yw" = ( -/obj/structure/grille/broken, -/obj/item/stack/sheet/plasmarglass, -/turf/open/floor/engine/air, -/area/ruin/space/has_grav/nucleardump/supermatter) -"zp" = ( -/obj/structure/cable{ - icon_state = "4-9" - }, -/turf/open/floor/vault, -/area/ruin/space/has_grav/nucleardump/supermatter) -"zx" = ( -/obj/effect/decal/cleanable/blood/tracks{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/fire{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/space/has_grav/nucleardump) -"zC" = ( -/obj/structure/catwalk, -/turf/template_noop, -/area/space/nearstation) -"zE" = ( -/obj/effect/decal/cleanable/vomit/old, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/nucleardump) -"AO" = ( -/obj/structure/closet/crate/secure/loot, -/turf/open/floor/plating/airless, -/area/ruin/space/has_grav/nucleardump) -"Bl" = ( -/mob/living/simple_animal/hostile/hivebot/range, -/obj/machinery/light/broken/directional/north, -/turf/open/floor/plasteel/dark, -/area/ruin/space/has_grav/nucleardump) -"BW" = ( -/obj/machinery/light/directional/west, -/turf/open/floor/vault, -/area/ruin/space/has_grav/nucleardump/supermatter) -"BX" = ( -/obj/structure/cable{ - icon_state = "4-6" - }, -/obj/machinery/atmospherics/pipe/manifold, -/turf/open/floor/vault, -/area/ruin/space/has_grav/nucleardump/supermatter) -"Dq" = ( -/obj/item/stack/sheet/mineral/plasma/five, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/engine/air, -/area/ruin/space/has_grav/nucleardump/supermatter) -"DD" = ( -/obj/effect/decal/cleanable/blood/gibs/old, -/turf/open/floor/plasteel/dark, -/area/ruin/space/has_grav/nucleardump) -"Ed" = ( -/mob/living/simple_animal/hostile/hivebot, -/turf/open/floor/plasteel/dark, -/area/ruin/space/has_grav/nucleardump) -"EJ" = ( -/obj/structure/closet/secure/loot, -/turf/open/floor/plating/airless, -/area/ruin/space/has_grav/nucleardump) -"EL" = ( -/obj/structure/barricade/wooden, -/obj/effect/decal/cleanable/blood/tracks{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/fire/fulltile, -/turf/open/floor/plasteel/dark, -/area/ruin/space/has_grav/nucleardump) -"Fj" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plasteel/dark, -/area/ruin/space/has_grav/nucleardump) -"GN" = ( -/obj/effect/spawner/lootdrop/snowdin/dungeonmid, -/turf/open/floor/plating/airless, -/area/ruin/space/has_grav/nucleardump) -"Hg" = ( -/obj/structure/closet/radiation, -/turf/open/floor/plasteel/dark, -/area/ruin/space/has_grav/nucleardump) -"HH" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/engine/air, -/area/ruin/space/has_grav/nucleardump/supermatter) -"Io" = ( -/obj/machinery/power/rad_collector, -/turf/open/floor/engine/air, -/area/ruin/space/has_grav/nucleardump/supermatter) -"IJ" = ( -/obj/effect/spawner/structure/window/hollow/plasma/directional{ - dir = 4 - }, -/turf/open/floor/engine/air, -/area/ruin/space/has_grav/nucleardump/supermatter) -"IM" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/engine/air, -/area/ruin/space/has_grav/nucleardump/supermatter) -"Jb" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/syndicateemblem/top/middle, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/nucleardump) -"Km" = ( -/obj/structure/window/plasma/reinforced/fulltile/unanchored, -/turf/open/floor/vault, -/area/ruin/space/has_grav/nucleardump/supermatter) -"KB" = ( -/turf/closed/wall, -/area/ruin/unpowered) -"KF" = ( -/turf/open/floor/plasteel/dark/airless, -/area/space/nearstation) -"KS" = ( -/mob/living/simple_animal/hostile/carp, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/syndicateemblem/bottom/middle, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/nucleardump) -"Ln" = ( -/obj/structure/radioactive/waste, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/nucleardump) -"LH" = ( -/obj/item/stack/ore/uranium, -/obj/item/stack/ore/uranium, -/obj/item/stack/ore/uranium, -/turf/open/floor/plating/asteroid/airless, -/area/ruin/unpowered) -"Mo" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/nucleardump) -"MP" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 6 - }, -/obj/effect/decal/cleanable/blood/footprints{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/space/has_grav/nucleardump) -"MX" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/nucleardump) -"Nk" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/airless, -/area/ruin/space/has_grav/nucleardump) -"NV" = ( -/obj/structure/grille/broken, -/turf/open/floor/engine/air, -/area/ruin/space/has_grav/nucleardump/supermatter) -"Oq" = ( -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/nucleardump) -"OB" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/syndicateemblem/bottom/right, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/nucleardump) -"OF" = ( -/obj/structure/radioactive/waste, -/turf/open/floor/plating/airless, -/area/ruin/space/has_grav/nucleardump) -"OL" = ( -/obj/machinery/atmospherics/components/binary/valve/on, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/nucleardump) -"OP" = ( -/obj/item/stack/sheet/plasmarglass, -/turf/open/floor/vault, -/area/ruin/space/has_grav/nucleardump/supermatter) -"Py" = ( -/obj/structure/sign/warning/longtermwaste{ - pixel_y = 32 - }, -/obj/effect/mob_spawn/human/skeleton, -/turf/open/floor/plasteel/dark/airless, -/area/space/nearstation) -"Qa" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/vault, -/area/ruin/space/has_grav/nucleardump/supermatter) -"Qd" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"QE" = ( -/obj/structure/radioactive/stack, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/nucleardump) -"Ra" = ( -/obj/machinery/light/directional/east, -/turf/open/floor/engine/air, -/area/ruin/space/has_grav/nucleardump/supermatter) -"Ry" = ( -/obj/machinery/light/built/directional/south, -/turf/open/floor/plasteel/dark, -/area/ruin/space/has_grav/nucleardump) -"RC" = ( -/mob/living/simple_animal/chicken, -/obj/item/melee/greykingsword, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/syndicateemblem/middle/middle, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/nucleardump) -"RD" = ( -/obj/effect/turf_decal/industrial/hatch/red, -/obj/effect/decal/cleanable/greenglow, -/obj/structure/closet/crate/radiation, -/obj/item/stack/sheet/mineral/uranium/twenty, -/obj/item/coin/uranium, -/obj/effect/spawner/lootdrop/maintenance/four, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/nucleardump) -"RZ" = ( -/obj/machinery/door/airlock/vault/derelict, -/turf/open/floor/plasteel/dark, -/area/ruin/space/has_grav/nucleardump/supermatter) -"SS" = ( -/obj/effect/decal/cleanable/blood/tracks{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/space/has_grav/nucleardump) -"Tm" = ( -/turf/open/floor/plasteel/dark, -/area/ruin/space/has_grav/nucleardump) -"Tw" = ( -/obj/machinery/light/directional/east, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/nucleardump) -"Ud" = ( -/obj/effect/decal/cleanable/greenglow, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/nucleardump) -"UW" = ( -/turf/open/floor/plating/airless, -/area/space/nearstation) -"UY" = ( -/obj/structure/radioactive/waste, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/nucleardump) -"Vb" = ( -/obj/effect/radiation, -/turf/closed/wall, -/area/ruin/space/has_grav/nucleardump) -"VD" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/light/directional/east, -/turf/open/floor/engine/air, -/area/ruin/space/has_grav/nucleardump/supermatter) -"VE" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/nucleardump) -"VK" = ( -/obj/machinery/door/airlock/hatch{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/turf/open/floor/plasteel/dark/airless, -/area/ruin/space/has_grav/nucleardump) -"VL" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/syndicateemblem/middle/left, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/nucleardump) -"VU" = ( -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/nucleardump) -"WH" = ( -/obj/effect/spawner/lootdrop/snowdin/dungeonlite, -/turf/open/floor/plasteel, -/area/ruin/space/has_grav/nucleardump) -"Yg" = ( -/obj/machinery/advanced_airlock_controller{ - pixel_y = -25 - }, -/obj/effect/mob_spawn/human/corpse/frontier, -/obj/item/tank/internals/emergency_oxygen/empty, -/turf/open/floor/plasteel/dark/airless, -/area/ruin/space/has_grav/nucleardump) -"Yj" = ( -/mob/living/simple_animal/hostile/hivebot/strong, -/turf/open/floor/plating/airless, -/area/ruin/space/has_grav/nucleardump) -"Yx" = ( -/turf/open/floor/vault, -/area/ruin/space/has_grav/nucleardump/supermatter) -"YZ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/syndicateemblem/bottom/left, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/nucleardump) -"Zh" = ( -/obj/machinery/door/airlock/grunge, -/turf/open/floor/plasteel/dark, -/area/ruin/space/has_grav/nucleardump) -"Zi" = ( -/obj/effect/turf_decal/industrial/fire{ - dir = 4 - }, -/obj/structure/radioactive/waste, -/obj/structure/sign/warning/radiation{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/dark, -/area/ruin/space/has_grav/nucleardump) -"Zn" = ( -/turf/template_noop, -/area/template_noop) -"ZO" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/nucleardump) - -(1,1,1) = {" -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -"} -(2,1,1) = {" -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -"} -(3,1,1) = {" -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -oT -oT -oT -oT -oT -oT -oT -oT -Zn -Zn -Zn -Zn -Zn -Zn -"} -(4,1,1) = {" -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -oT -oT -oT -oT -oT -oT -oT -oT -oT -oT -oT -oT -oT -Zn -Zn -Zn -Zn -Zn -Zn -"} -(5,1,1) = {" -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -oT -oT -oT -oT -oT -oT -oT -oT -oT -oT -oT -oT -oT -oT -oT -oT -oT -oT -oT -Zn -Zn -Zn -"} -(6,1,1) = {" -Zn -Zn -Zn -Zn -Zn -Zn -oT -oT -oT -oT -oT -oT -oT -oT -fi -fi -fi -fi -fi -fi -fi -oT -oT -oT -oT -oT -oT -oT -oT -Zn -Zn -Zn -"} -(7,1,1) = {" -Zn -Zn -Zn -Zn -Zn -Zn -oT -oT -oT -oT -oT -oT -oT -fi -fi -VU -iZ -iZ -ZO -mX -fi -fi -oT -oT -oT -oT -oT -oT -oT -Zn -Zn -Zn -"} -(8,1,1) = {" -Zn -Zn -Zn -Zn -Zn -Zn -oT -oT -oT -oT -oT -oT -oT -fi -Ln -pJ -ur -VL -YZ -iZ -VU -fi -oT -oT -oT -oT -oT -oT -oT -Zn -Zn -Zn -"} -(9,1,1) = {" -Zn -Zn -Zn -oT -oT -oT -oT -oT -oT -oT -oT -oT -fu -fi -VU -iZ -Jb -RC -KS -gs -VU -fi -fi -fi -fi -fi -oT -oT -oT -Zn -Zn -Zn -"} -(10,1,1) = {" -Zn -Zn -Zn -oT -oT -oT -oT -oT -oT -oT -ma -rg -LH -fi -QE -iZ -cw -la -OB -gs -MX -fi -rp -RD -eo -fi -oT -oT -oT -Zn -Zn -Zn -"} -(11,1,1) = {" -Zn -Zn -oT -oT -oT -oT -oT -oT -ma -rg -fu -ma -cU -fi -ls -VU -kN -gs -Tw -VU -mX -fi -Ud -eo -UY -fi -oT -oT -oT -Zn -Zn -Zn -"} -(12,1,1) = {" -Zn -Zn -oT -oT -fi -fi -fi -fi -fi -fi -fi -fi -fi -fi -Vb -fi -fi -pf -fi -fi -fi -fi -ua -ua -Ud -fi -oT -oT -oT -Zn -Zn -Zn -"} -(13,1,1) = {" -Zn -Zn -oT -oT -fi -AO -AO -qK -fi -mj -Tm -kB -Tm -ld -Tm -kB -Tm -Ed -Tm -Fj -Hg -fi -Oq -ua -im -fi -oT -oT -oT -Zn -Zn -Zn -"} -(14,1,1) = {" -Zn -Zn -oT -oT -fi -EJ -GN -ht -fi -Bl -DD -Tm -hH -Tm -Tm -ld -oP -qy -qy -qy -Ry -fi -zE -gO -WH -fi -oT -oT -oT -Zn -Zn -Zn -"} -(15,1,1) = {" -Zn -Zn -Zn -oT -fi -yn -Yj -ht -Zh -Tm -SS -Fj -fi -fi -fi -fi -fi -fi -fi -MP -gw -qH -VE -VE -ce -fi -oT -oT -oT -Zn -Zn -Zn -"} -(16,1,1) = {" -Zn -Zn -Zn -oT -fi -uF -OF -un -fi -lU -zx -Zi -fi -oT -oT -oT -oT -oT -jD -VK -jD -jD -ov -OL -Mo -fi -oT -oT -oT -Zn -Zn -Zn -"} -(17,1,1) = {" -Zn -Zn -oT -oT -fi -fi -fi -fi -fi -fi -EL -fi -fi -oT -oT -oT -oT -oT -jD -Nk -Yg -jD -fi -fi -fi -fi -oT -oT -Zn -Zn -Zn -Zn -"} -(18,1,1) = {" -Zn -Zn -oT -oT -oT -jN -jN -jN -jN -jN -RZ -oC -oC -jN -jN -oC -oT -oT -jm -nM -wr -jm -oT -oT -oT -oT -oT -Zn -Zn -Zn -Zn -Zn -"} -(19,1,1) = {" -Zn -oT -oT -oT -oT -oC -jN -oC -jN -jN -he -jN -jN -jN -oC -oC -oT -oT -jD -jD -uo -jm -oT -oT -Zn -iN -Zn -Zn -Zn -Zn -Zn -Zn -"} -(20,1,1) = {" -Zn -oT -oT -oT -oT -oC -jN -Yx -rM -Yx -Qa -Yx -BX -Yx -oC -jN -oT -oT -oT -vh -ac -Qd -zC -Zn -Zn -iN -Zn -Zn -Zn -Zn -Zn -Zn -"} -(21,1,1) = {" -Zn -oT -oT -oT -oT -oC -jN -Yx -Ra -Io -IM -Dq -VD -zp -oC -jN -oT -oT -oT -qA -UW -pe -zC -Zn -Zn -iN -Zn -Zn -Zn -Zn -Zn -Zn -"} -(22,1,1) = {" -Zn -Zn -oT -oT -oT -jN -jN -Yx -oC -HH -IJ -rS -oC -Qa -jN -jN -oT -oT -KB -Py -UW -UW -iN -iN -iN -xR -Zn -Zn -Zn -Zn -Zn -Zn -"} -(23,1,1) = {" -Zn -Zn -Zn -oT -oT -jN -oC -Yx -sN -rS -wc -qF -yw -dl -jN -jN -oT -oT -KB -KF -UW -pe -iN -Zn -Zn -xR -kP -Zn -Zn -Zn -Zn -Zn -"} -(24,1,1) = {" -Zn -Zn -Zn -oT -oT -jN -jN -lF -rS -rS -rS -rS -sN -OP -jN -jN -oT -oT -oT -KF -KF -UW -iN -Zn -Zn -iN -Zn -Zn -Zn -Zn -Zn -Zn -"} -(25,1,1) = {" -Zn -Zn -Zn -oT -oT -jN -jN -Yx -oC -NV -HH -rS -jN -Yx -oC -oC -oT -oT -oT -UW -oU -UW -zC -Zn -Zn -iN -Zn -Zn -Zn -Zn -Zn -Zn -"} -(26,1,1) = {" -Zn -Zn -Zn -oT -oT -oC -jN -Yx -Km -Yx -Yx -vr -BW -Yx -oC -oC -oT -oT -oT -iN -iN -zC -zC -Zn -Zn -xR -Zn -Zn -Zn -Zn -Zn -Zn -"} -(27,1,1) = {" -Zn -Zn -oT -oT -oT -oC -oC -oC -jN -oC -oC -oC -jN -oC -oC -oC -oT -oT -Zn -Zn -iN -Zn -Zn -Zn -Zn -xR -Zn -Zn -Zn -Zn -Zn -Zn -"} -(28,1,1) = {" -Zn -Zn -oT -oT -oT -jN -oC -oC -oC -jN -jN -jN -jN -jN -oC -oC -oT -oT -iN -xR -xR -xR -iN -iN -xR -xR -kP -Zn -Zn -Zn -Zn -Zn -"} -(29,1,1) = {" -Zn -Zn -oT -oT -oT -oT -oT -oT -oT -oT -oT -oT -oT -oT -oT -oT -oT -oT -Zn -Zn -oV -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -"} -(30,1,1) = {" -Zn -Zn -oT -oT -oT -oT -oT -oT -oT -oT -oT -oT -oT -oT -oT -oT -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -"} -(31,1,1) = {" -Zn -Zn -oT -oT -oT -Zn -oT -oT -oT -oT -oT -oT -oT -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -"} -(32,1,1) = {" -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -Zn -"} diff --git a/_maps/RandomRuins/SpaceRuins/provinggrounds.dmm b/_maps/RandomRuins/SpaceRuins/provinggrounds.dmm index 521b2beac456..7b1e496384f5 100644 --- a/_maps/RandomRuins/SpaceRuins/provinggrounds.dmm +++ b/_maps/RandomRuins/SpaceRuins/provinggrounds.dmm @@ -324,7 +324,6 @@ /area/ruin/space/has_grav/syndicircle/winter) "iR" = ( /obj/effect/mine/shrapnel, -/obj/effect/turf_decal/weather/snow/corner, /obj/item/stack/tile/mineral/snow, /obj/machinery/light/dim/directional/west, /obj/effect/decal/cleanable/dirt/dust, @@ -796,6 +795,12 @@ /obj/machinery/light/directional/north, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/syndicircle/halls) +"vT" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/syndicircle/halls) "wa" = ( /obj/machinery/modular_computer/console/preset{ dir = 1 @@ -3365,7 +3370,7 @@ AV Dm Bj IY -ap +vT ap OE am diff --git a/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm b/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm index 67fb3c35f127..12875d01ff1a 100644 --- a/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm +++ b/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm @@ -1660,8 +1660,8 @@ /area/ruin/space/has_grav/singularitylab/civvie) "gP" = ( /obj/structure/table/reinforced, -/obj/structure/extinguisher_cabinet/directional/north, /obj/machinery/light/small/directional/west, +/obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/carpet/nanoweave/beige, /area/ruin/space/has_grav/singularitylab/cargo) "gR" = ( @@ -2017,7 +2017,9 @@ /obj/structure/cable{ icon_state = "0-2" }, -/obj/structure/poddoor_assembly, +/obj/structure/poddoor_assembly{ + dir = 8 + }, /obj/structure/spacevine, /obj/machinery/power/shieldwallgen/atmos, /turf/open/floor/plating, @@ -2208,7 +2210,6 @@ /area/ruin/space/has_grav/singularitylab/civvie) "iZ" = ( /obj/structure/cable, -/obj/structure/poddoor_assembly, /obj/structure/spacevine, /obj/structure/spacevine/dense{ pixel_y = -32 @@ -2216,6 +2217,9 @@ /obj/machinery/power/shieldwallgen/atmos{ dir = 1 }, +/obj/structure/poddoor_assembly{ + dir = 8 + }, /turf/open/floor/plating, /area/ruin/space/has_grav/singularitylab) "ja" = ( @@ -2660,8 +2664,8 @@ /area/ruin/space/has_grav/singularitylab/cargo) "kS" = ( /obj/effect/turf_decal/box, -/obj/structure/extinguisher_cabinet/directional/north, /obj/structure/ore_box, +/obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/plasteel/patterned/cargo_one, /area/ruin/space/has_grav/singularitylab/cargo) "kT" = ( @@ -4396,7 +4400,7 @@ pixel_x = -32; pixel_y = -4 }, -/obj/structure/extinguisher_cabinet/directional/north, +/obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/singularitylab/cargo) "rp" = ( @@ -4788,7 +4792,7 @@ /area/ruin/space/has_grav/singularitylab/lab) "th" = ( /obj/structure/spacevine, -/obj/structure/extinguisher_cabinet/directional/north, +/obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/plasteel, /area/ruin/space/has_grav/singularitylab) "tk" = ( @@ -8771,9 +8775,11 @@ /obj/structure/cable{ icon_state = "0-8" }, -/obj/structure/poddoor_assembly, /obj/structure/spacevine, /obj/machinery/power/shieldwallgen/atmos, +/obj/structure/poddoor_assembly{ + dir = 8 + }, /turf/open/floor/plating, /area/ruin/space/has_grav/singularitylab) "Iq" = ( @@ -8822,8 +8828,10 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/poddoor_assembly, /obj/structure/spacevine, +/obj/structure/poddoor_assembly{ + dir = 8 + }, /turf/open/floor/plating, /area/ruin/space/has_grav/singularitylab) "IA" = ( @@ -8934,8 +8942,10 @@ /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/singularitylab/engineering) "Jb" = ( -/obj/structure/poddoor_assembly, /obj/structure/spacevine, +/obj/structure/poddoor_assembly{ + dir = 8 + }, /turf/open/floor/plating, /area/ruin/space/has_grav/singularitylab) "Jc" = ( @@ -12169,7 +12179,7 @@ "Uo" = ( /obj/structure/table, /obj/structure/spacevine, -/obj/structure/extinguisher_cabinet/directional/north, +/obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/singularitylab/engineering) "Up" = ( @@ -12932,11 +12942,13 @@ /obj/structure/cable{ icon_state = "0-8" }, -/obj/structure/poddoor_assembly, /obj/structure/spacevine, /obj/machinery/power/shieldwallgen/atmos{ dir = 1 }, +/obj/structure/poddoor_assembly{ + dir = 8 + }, /turf/open/floor/plating, /area/ruin/space/has_grav/singularitylab) "WJ" = ( diff --git a/_maps/RandomRuins/SpaceRuins/spacemall.dmm b/_maps/RandomRuins/SpaceRuins/spacemall.dmm index a8413ce407c3..548003149338 100644 --- a/_maps/RandomRuins/SpaceRuins/spacemall.dmm +++ b/_maps/RandomRuins/SpaceRuins/spacemall.dmm @@ -4990,15 +4990,6 @@ /turf/open/floor/plasteel, /area/ruin/space/has_grav/spacemall) "sH" = ( -/obj/item/clothing/under/pants/classicjeans{ - pixel_y = -5 - }, -/obj/item/clothing/under/pants/classicjeans{ - pixel_y = -5 - }, -/obj/item/clothing/under/pants/classicjeans{ - pixel_y = -5 - }, /obj/item/clothing/suit/ianshirt, /obj/item/clothing/suit/ianshirt, /obj/item/clothing/suit/ianshirt, diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_unhonorable.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_unhonorable.dmm index e7e459f7f670..194e34a6a838 100644 --- a/_maps/RandomRuins/WasteRuins/wasteplanet_unhonorable.dmm +++ b/_maps/RandomRuins/WasteRuins/wasteplanet_unhonorable.dmm @@ -379,7 +379,7 @@ pixel_x = 1; pixel_y = 7 }, -/obj/item/clothing/under/syndicate/soviet, +/obj/item/clothing/under/syndicate, /obj/structure/closet/radiation/empty{ anchored = 1 }, diff --git a/_maps/configs/independent_beluga.json b/_maps/configs/independent_beluga.json index 8c4a50db50d6..520b70dddc6b 100644 --- a/_maps/configs/independent_beluga.json +++ b/_maps/configs/independent_beluga.json @@ -4,7 +4,7 @@ "prefix": "ISV", "namelists": ["CRUISE", "NATURAL"], "map_short_name": "Beluga-class", - "map_path": "_maps/shuttles/shiptest/independent_beluga.dmm", + "map_path": "_maps/shuttles/independent/independent_beluga.dmm", "description": "The Beluga-Class is a transport vessel for those with especially rich blood. Featuring a modest kitchen, hired Inteq security, and luxurious decoration, the Beluga is a first choice pick for many wealthy spacers trying to get from point A to B. The independent ship features several rooms for its guests and a well furnished meeting room for any corporate occassion.", "tags": [ "RP Focus", diff --git a/_maps/configs/independent_box.json b/_maps/configs/independent_box.json index f4a836900702..32bb02219819 100644 --- a/_maps/configs/independent_box.json +++ b/_maps/configs/independent_box.json @@ -6,7 +6,7 @@ "tags": [ "Medical" ], - "map_path": "_maps/shuttles/shiptest/independent_box.dmm", + "map_path": "_maps/shuttles/independent/independent_box.dmm", "namelists": [ "GENERAL", "SPACE", diff --git a/_maps/configs/independent_boyardee.json b/_maps/configs/independent_boyardee.json index f5f14556d842..eacf31372fdd 100644 --- a/_maps/configs/independent_boyardee.json +++ b/_maps/configs/independent_boyardee.json @@ -15,7 +15,7 @@ ], "starting_funds": 5000, "map_short_name": "Boyardee-class", - "map_path": "_maps/shuttles/shiptest/independent_boyardee.dmm", + "map_path": "_maps/shuttles/independent/independent_boyardee.dmm", "job_slots": { "Bartender": { "outfit": "/datum/outfit/job/bartender", diff --git a/_maps/configs/independent_bubble.json b/_maps/configs/independent_bubble.json index 6c94b80564ee..5284f758d47e 100644 --- a/_maps/configs/independent_bubble.json +++ b/_maps/configs/independent_bubble.json @@ -2,7 +2,7 @@ "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "Bubble-class Colonial Ship", "map_short_name": "Bubble-class", - "map_path": "_maps/shuttles/shiptest/independent_bubble.dmm", + "map_path": "_maps/shuttles/independent/independent_bubble.dmm", "description": "While the most famous colony ships were hulking, highly-advanced affairs designed to ferry hundreds-if-not-thousands of settlers to far-off worlds and create cities in a matter of months – the Kalixcian Moonlight, the Candor, the First Train to Fort Sol – the Bubble-class is designed to cater to homesteaders aiming to establish a small ranch or village out in the great vastness of space. The Bubble-class is highly compact but complete with all the necessities for colony creation – extensive R&D equipment, robust mining gear, and a small selection of personal arms for fending off hostile fauna. While the Bubble-class has been historically utilized by the Solarian Federation for colony efforts, their proprietary version has recently been phased out of operation.", "tags": [ "Generalist", diff --git a/_maps/configs/independent_byo.json b/_maps/configs/independent_byo.json index 36fc8718678a..35598191c6b5 100644 --- a/_maps/configs/independent_byo.json +++ b/_maps/configs/independent_byo.json @@ -2,7 +2,7 @@ "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "BYO-class Do-It-Yourself Enthusiast Special", "map_short_name": "BYO-class", - "map_path": "_maps/shuttles/shiptest/independent_byo.dmm", + "map_path": "_maps/shuttles/independent/independent_byo.dmm", "description": "The BYO can barely be considered a “ship” when initially deployed; more of a construction platform launched hazardously into space. The only thing that separates crews on a BYO from breathable safety and the cold vacuum of space are typically little airtight flaps of plastic. Equipped with a plethora of building material and tools fit for construction, BYO vessels are seen in a variety of shapes and sizes, and almost never with any consistency of form.", "tags": [ "Engineering", diff --git a/_maps/configs/independent_caravan.json b/_maps/configs/independent_caravan.json index 3e244cbf49b5..55398ad6fc94 100644 --- a/_maps/configs/independent_caravan.json +++ b/_maps/configs/independent_caravan.json @@ -2,7 +2,7 @@ "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "Caravan-class Modular ship", "map_short_name": "Caravan-class", - "map_path": "_maps/shuttles/shiptest/independent_caravan.dmm", + "map_path": "_maps/shuttles/independent/independent_caravan.dmm", "prefix": "ISV", "description": "The Caravan is a relatively new freighter pattern, designed around a modular pod system that enables the ship to serve in a variety of roles beyond simple transportation. These pods are designed around a quick-release mechanism that allows the main hull to bluespace jump in, detach the pods, and load a new set of empty Caravan-type pods in a matter of minutes. While impressive in theory, the lack of empty compatible cargo pods in Frontier space renders the quick-detach system useless. Additionally, the modular attachment system is prone to wear and tear, necessitating more frequent and costly maintenance than other freighters. Despite these shortcomings, the Caravan has still earned a reputation as a versatile platform for a variety of missions. The main hull features a robust power pack and respectable crew accommodations, and most examples on the Frontier carry pods loaded for mining and survey duties.", "tags": [ diff --git a/_maps/configs/independent_dwayne.json b/_maps/configs/independent_dwayne.json index 2d312fabc045..34a353fe332e 100644 --- a/_maps/configs/independent_dwayne.json +++ b/_maps/configs/independent_dwayne.json @@ -9,7 +9,7 @@ "MERCANTILE" ], "map_short_name": "Mk.II Dwayne-class ", - "map_path": "_maps/shuttles/shiptest/independent_dwayne.dmm", + "map_path": "_maps/shuttles/independent/independent_dwayne.dmm", "description": "The Dwayne is one of the older classes of ships commonly seen on the Frontier, and one of the few such classes that doesn’t also carry a reputation for nightmarish conditions or high accident rates. Originally conceived of as a “mothership” for Nanotrasen mining shuttles that could enable long-duration mining missions at minimal cost, severe budget overruns and issues with the mining shuttle docking system left Nanotrasen with a massive number of mostly-completed hulls upon the project’s cancellation. These hulls were then quickly refurbished and sold on the civilian market, where they proved an immediate success on the Frontier. Contemporary Dwaynes can typically be found carrying a variety of mining equipment and extensive modifications unique to their captains. Recently-available aftermarket modifications have solved the Dwayne’s longstanding shuttle dock issues, allowing modern Dwaynes to finally serve their original design purpose, provided the captain is able to source a shuttle.", "tags": [ "Mining", diff --git a/_maps/configs/independent_halftrack.json b/_maps/configs/independent_halftrack.json index 8dcb1f4cba25..0569a4c395a2 100644 --- a/_maps/configs/independent_halftrack.json +++ b/_maps/configs/independent_halftrack.json @@ -12,7 +12,7 @@ "Combat", "Cargo" ], - "map_path": "_maps/shuttles/shiptest/independent_halftrack.dmm", + "map_path": "_maps/shuttles/independent/independent_halftrack.dmm", "job_slots": { "Captain": { "outfit": "/datum/outfit/job/captain", diff --git a/_maps/configs/independent_junker.json b/_maps/configs/independent_junker.json index 26d3ab445766..e32c13b36210 100644 --- a/_maps/configs/independent_junker.json +++ b/_maps/configs/independent_junker.json @@ -12,7 +12,7 @@ "Survival Challenge" ], "starting_funds": 0, - "map_path": "_maps/shuttles/shiptest/independent_junker.dmm", + "map_path": "_maps/shuttles/independent/independent_junker.dmm", "limit": 1, "job_slots": { "Assistant": { diff --git a/_maps/configs/independent_kilo.json b/_maps/configs/independent_kilo.json index 7877bbfcd08e..43e2d0d62d41 100644 --- a/_maps/configs/independent_kilo.json +++ b/_maps/configs/independent_kilo.json @@ -13,7 +13,7 @@ ], "map_short_name": "Kilo-class", "starting_funds": 1500, - "map_path": "_maps/shuttles/shiptest/independent_kilo.dmm", + "map_path": "_maps/shuttles/independent/independent_kilo.dmm", "job_slots": { "Captain": { "outfit": "/datum/outfit/job/captain/western", diff --git a/_maps/configs/independent_lagoon.json b/_maps/configs/independent_lagoon.json index 3be6a5d95b74..9d5535ca6232 100644 --- a/_maps/configs/independent_lagoon.json +++ b/_maps/configs/independent_lagoon.json @@ -12,7 +12,7 @@ "CRUISE" ], "map_short_name": "Lagoon-class", - "map_path": "_maps/shuttles/shiptest/independent_lagoon.dmm", + "map_path": "_maps/shuttles/independent/independent_lagoon.dmm", "starting_funds": 3000, "job_slots": { "Captain": { diff --git a/_maps/configs/independent_litieguai.json b/_maps/configs/independent_litieguai.json index 8128d3f6c980..d189af20b550 100644 --- a/_maps/configs/independent_litieguai.json +++ b/_maps/configs/independent_litieguai.json @@ -6,7 +6,7 @@ "tags": [ "Medical" ], - "map_path": "_maps/shuttles/shiptest/independent_litieguai.dmm", + "map_path": "_maps/shuttles/independent/independent_litieguai.dmm", "namelists": [ "SPACE", "BEASTS", diff --git a/_maps/configs/independent_masinyane.json b/_maps/configs/independent_masinyane.json index 0d5a6a26e984..4407f412bc92 100644 --- a/_maps/configs/independent_masinyane.json +++ b/_maps/configs/independent_masinyane.json @@ -11,7 +11,7 @@ "MYTHOLOGICAL", "NATURAL" ], - "map_path": "_maps/shuttles/shiptest/independent_masinyane.dmm", + "map_path": "_maps/shuttles/independent/independent_masinyane.dmm", "job_slots": { "Private Ship Owner": { "outfit": "/datum/outfit/job/captain/independent/owner", diff --git a/_maps/configs/independent_meta.json b/_maps/configs/independent_meta.json index 26bd1504b3a9..457c116c24ef 100644 --- a/_maps/configs/independent_meta.json +++ b/_maps/configs/independent_meta.json @@ -13,7 +13,7 @@ "SPACE", "HISTORICAL" ], - "map_path": "_maps/shuttles/shiptest/independent_meta.dmm", + "map_path": "_maps/shuttles/independent/independent_meta.dmm", "job_slots": { "Captain": { "outfit": "/datum/outfit/job/captain", diff --git a/_maps/configs/independent_mudskipper.json b/_maps/configs/independent_mudskipper.json index b7aff1138267..22de128d2667 100644 --- a/_maps/configs/independent_mudskipper.json +++ b/_maps/configs/independent_mudskipper.json @@ -13,7 +13,7 @@ "GENERAL", "SPACE" ], - "map_path": "_maps/shuttles/shiptest/independent_mudskipper.dmm", + "map_path": "_maps/shuttles/independent/independent_mudskipper.dmm", "roundstart": true, "limit": 2, "starting_funds": 1500, diff --git a/_maps/configs/independent_nemo.json b/_maps/configs/independent_nemo.json index 5296c2d663c6..8733d8aa0d1e 100644 --- a/_maps/configs/independent_nemo.json +++ b/_maps/configs/independent_nemo.json @@ -15,7 +15,7 @@ "Robotics" ], "starting_funds": 500, - "map_path": "_maps/shuttles/shiptest/independent_nemo.dmm", + "map_path": "_maps/shuttles/independent/independent_nemo.dmm", "job_slots": { "Research Director": { "outfit": "/datum/outfit/job/rd", diff --git a/_maps/configs/independent_pill.json b/_maps/configs/independent_pill.json index 18b1a3968033..42c2a4943f3c 100644 --- a/_maps/configs/independent_pill.json +++ b/_maps/configs/independent_pill.json @@ -11,7 +11,7 @@ "tags": [ "Specialist" ], - "map_path": "_maps/shuttles/shiptest/independent_pillbottle.dmm", + "map_path": "_maps/shuttles/independent/independent_pillbottle.dmm", "limit":1, "starting_funds": 0, "job_slots": { diff --git a/_maps/configs/independent_rigger.json b/_maps/configs/independent_rigger.json index ed778696bd74..8229cee469de 100644 --- a/_maps/configs/independent_rigger.json +++ b/_maps/configs/independent_rigger.json @@ -16,7 +16,7 @@ "Robotics", "Generalist" ], - "map_path": "_maps/shuttles/shiptest/independent_rigger.dmm", + "map_path": "_maps/shuttles/independent/independent_rigger.dmm", "roundstart": true, "limit": 2, "job_slots": { diff --git a/_maps/configs/independent_rube_goldberg.json b/_maps/configs/independent_rube_goldberg.json index 8f538bed67a5..055dbc86ee68 100644 --- a/_maps/configs/independent_rube_goldberg.json +++ b/_maps/configs/independent_rube_goldberg.json @@ -9,7 +9,7 @@ "map_short_name": "Rube Goldberg-class", "description": "The Rube Goldberg-class Engineering Project is an experience, and a monument to insanity. Featuring a powerful supermatter engine in combination with an Escher-esque structural layout, complicated pipe and wire network, and utter disregard for basic safety procedures and common sense, this ship is a disaster waiting to happen.", "tags": ["Engineering", "Construction"], - "map_path": "_maps/shuttles/shiptest/independent_rube_goldberg.dmm", + "map_path": "_maps/shuttles/independent/independent_rube_goldberg.dmm", "limit": 1, "job_slots": { "Chief at Engineering": { diff --git a/_maps/configs/independent_schmiedeberg.json b/_maps/configs/independent_schmiedeberg.json index 457b8d602f4f..a21435659743 100644 --- a/_maps/configs/independent_schmiedeberg.json +++ b/_maps/configs/independent_schmiedeberg.json @@ -9,7 +9,7 @@ "Medical", "Chemistry" ], - "map_path": "_maps/shuttles/shiptest/independent_schmiedeberg.dmm", + "map_path": "_maps/shuttles/independent/independent_schmiedeberg.dmm", "namelists": [ "SUNS", "GENERAL" diff --git a/_maps/configs/independent_shepherd.json b/_maps/configs/independent_shepherd.json index 39249ac48314..ce677e1d3d11 100644 --- a/_maps/configs/independent_shepherd.json +++ b/_maps/configs/independent_shepherd.json @@ -8,7 +8,7 @@ "Botany", "Service" ], - "map_path": "_maps/shuttles/shiptest/independent_shepherd.dmm", + "map_path": "_maps/shuttles/independent/independent_shepherd.dmm", "prefix": "ISV", "namelists": [ "MYTHOLOGICAL" diff --git a/_maps/configs/independent_shetland.json b/_maps/configs/independent_shetland.json index fc2741514879..a1d88413bc18 100644 --- a/_maps/configs/independent_shetland.json +++ b/_maps/configs/independent_shetland.json @@ -13,7 +13,7 @@ "Service", "Medical" ], - "map_path": "_maps/shuttles/shiptest/independent_shetland.dmm", + "map_path": "_maps/shuttles/independent/independent_shetland.dmm", "map_id": "independent_shetland", "roundstart": true, "job_slots": { diff --git a/_maps/configs/independent_tranquility.json b/_maps/configs/independent_tranquility.json index f56ad1bbd1f3..a7ddabe6e4de 100644 --- a/_maps/configs/independent_tranquility.json +++ b/_maps/configs/independent_tranquility.json @@ -14,7 +14,7 @@ "Service", "Generalist" ], - "map_path": "_maps/shuttles/shiptest/independent_tranquility.dmm", + "map_path": "_maps/shuttles/independent/independent_tranquility.dmm", "job_slots": { "Captain": { "outfit": "/datum/outfit/job/captain/western", diff --git a/_maps/configs/inteq_colossus.json b/_maps/configs/inteq_colossus.json index b88ae1b0a76b..06a1358c3e95 100644 --- a/_maps/configs/inteq_colossus.json +++ b/_maps/configs/inteq_colossus.json @@ -14,7 +14,7 @@ "INTEQ" ], "map_short_name": "Colossus-class", - "map_path": "_maps/shuttles/shiptest/inteq_colossus.dmm", + "map_path": "_maps/shuttles/inteq/inteq_colossus.dmm", "limit": 1, "job_slots": { "Vanguard": { diff --git a/_maps/configs/inteq_hound.json b/_maps/configs/inteq_hound.json index d31c8b3f2588..80e8349de9ec 100644 --- a/_maps/configs/inteq_hound.json +++ b/_maps/configs/inteq_hound.json @@ -12,7 +12,7 @@ "tags": [ "Combat" ], - "map_path": "_maps/shuttles/shiptest/inteq_hound.dmm", + "map_path": "_maps/shuttles/inteq/inteq_hound.dmm", "map_id": "inteq_hound", "limit": 2, "job_slots": { diff --git a/_maps/configs/inteq_talos.json b/_maps/configs/inteq_talos.json index 42b254885685..c298846d55b0 100644 --- a/_maps/configs/inteq_talos.json +++ b/_maps/configs/inteq_talos.json @@ -14,7 +14,7 @@ "INTEQ" ], "map_short_name": "Talos-class", - "map_path": "_maps/shuttles/shiptest/inteq_talos.dmm", + "map_path": "_maps/shuttles/inteq/inteq_talos.dmm", "limit": 1, "job_slots": { "Vanguard": { diff --git a/_maps/configs/inteq_vaquero.json b/_maps/configs/inteq_vaquero.json index 8cd4224faa16..72b2ae65d257 100644 --- a/_maps/configs/inteq_vaquero.json +++ b/_maps/configs/inteq_vaquero.json @@ -11,7 +11,7 @@ "INTEQ" ], "map_short_name": "Vaquero-class", - "map_path": "_maps/shuttles/shiptest/inteq_vaquero.dmm", + "map_path": "_maps/shuttles/inteq/inteq_vaquero.dmm", "limit": 1, "job_slots": { "Vanguard": { diff --git a/_maps/configs/minutemen_asclepius.json b/_maps/configs/minutemen_asclepius.json index e2f80e40dc11..6923097d0447 100644 --- a/_maps/configs/minutemen_asclepius.json +++ b/_maps/configs/minutemen_asclepius.json @@ -13,7 +13,7 @@ "MYTHOLOGICAL" ], "map_short_name": "Asclepius-class", - "map_path": "_maps/shuttles/shiptest/minutemen_asclepius.dmm", + "map_path": "_maps/shuttles/minutemen/minutemen_asclepius.dmm", "limit": 1, "job_slots": { "Captain": { diff --git a/_maps/configs/minutemen_cepheus.json b/_maps/configs/minutemen_cepheus.json index ee275e7e5d10..c82468a59349 100644 --- a/_maps/configs/minutemen_cepheus.json +++ b/_maps/configs/minutemen_cepheus.json @@ -11,7 +11,7 @@ "MYTHOLOGICAL" ], "map_short_name": "Cepheus-class", - "map_path": "_maps/shuttles/shiptest/minutemen_cepheus.dmm", + "map_path": "_maps/shuttles/minutemen/minutemen_cepheus.dmm", "limit": 1, "job_slots": { "Captain": { diff --git a/_maps/configs/minutemen_corvus.json b/_maps/configs/minutemen_corvus.json index 355669e158fd..1080c81f59a4 100644 --- a/_maps/configs/minutemen_corvus.json +++ b/_maps/configs/minutemen_corvus.json @@ -12,7 +12,7 @@ "MYTHOLOGICAL" ], "map_short_name": "Corvus-class", - "map_path": "_maps/shuttles/shiptest/minutemen_corvus.dmm", + "map_path": "_maps/shuttles/minutemen/minutemen_corvus.dmm", "limit": 2, "job_slots": { "Captain": { diff --git a/_maps/configs/minutemen_vela.json b/_maps/configs/minutemen_vela.json index 86b7818ba1f8..eed473a983ff 100644 --- a/_maps/configs/minutemen_vela.json +++ b/_maps/configs/minutemen_vela.json @@ -11,7 +11,7 @@ ], "map_short_name": "Vela-class", "starting_funds": 1000, - "map_path": "_maps/shuttles/shiptest/minutemen_vela.dmm", + "map_path": "_maps/shuttles/minutemen/minutemen_vela.dmm", "limit": 1, "job_slots": { "Captain": { diff --git a/_maps/configs/nanotrasen_delta.json b/_maps/configs/nanotrasen_delta.json index 6f81f5972a22..749e0240a6ba 100644 --- a/_maps/configs/nanotrasen_delta.json +++ b/_maps/configs/nanotrasen_delta.json @@ -15,7 +15,7 @@ "Science", "Robotics" ], - "map_path": "_maps/shuttles/shiptest/nanotrasen_delta.dmm", + "map_path": "_maps/shuttles/nanotrasen/nanotrasen_delta.dmm", "starting_funds": 4000, "job_slots": { "Captain": { diff --git a/_maps/configs/nanotrasen_gecko.json b/_maps/configs/nanotrasen_gecko.json index f7f0791f7cb1..1a8e59f73ece 100644 --- a/_maps/configs/nanotrasen_gecko.json +++ b/_maps/configs/nanotrasen_gecko.json @@ -8,7 +8,7 @@ "SPACE" ], "map_short_name": "Gecko-class", - "map_path": "_maps/shuttles/shiptest/nanotrasen_gecko.dmm", + "map_path": "_maps/shuttles/nanotrasen/nanotrasen_gecko.dmm", "description": "A bulky, robust, and exceedingly ugly salvage ship. The Gecko is nothing less than a flying brick full of redundant maintenance spaces and open-to-space salvage bays, powered by a temperamental TEG system, with a cramped crew space sandwiched in between. Due to its deeply obsolete design and the dangerous nature of salvage work, Geckos are often the final resting point for the careers of officers that have stepped on too many toes in the corporate world without doing anything outright criminal. Despite these shortcomings, Geckos offer a large amount of open space and a good supply of engineering equipment, which is all an enterprising engineer truly needs.", "tags": [ "Mining", diff --git a/_maps/configs/nanotrasen_mimir.json b/_maps/configs/nanotrasen_mimir.json index a0ba21e4df19..273d17ad5705 100644 --- a/_maps/configs/nanotrasen_mimir.json +++ b/_maps/configs/nanotrasen_mimir.json @@ -15,7 +15,7 @@ "Generalist", "Specialist" ], - "map_path": "_maps/shuttles/shiptest/nanotrasen_mimir.dmm", + "map_path": "_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm", "limit": 1, "job_slots": { "Warden": { diff --git a/_maps/configs/nanotrasen_osprey.json b/_maps/configs/nanotrasen_osprey.json index feea5e777c69..d88127f1a177 100644 --- a/_maps/configs/nanotrasen_osprey.json +++ b/_maps/configs/nanotrasen_osprey.json @@ -9,7 +9,7 @@ "WEAPONS" ], "map_short_name": "Osprey-class", - "map_path": "_maps/shuttles/shiptest/nanotrasen_osprey.dmm", + "map_path": "_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm", "description": "Some of the most modern ships in Nanotrasen’s fleet and a prestigious assignment for their captains, the famed Osprey of the ICW’s most dramatic astronautical engagements lives on as a very well-appointed exploration ship. Extensively refurbished from their origins as Bluespace Artillery platforms, the contemporary Osprey repurposes military-grade sensor equipment and AI systems for exploration and scientific work. Features include respectably-equipped medical, culinary, and scientific facilities and an AI core, as well as a ship-wide disposals and delivery system and a very spacious cargo bay. However, the powerful (if temperamental) supermatter engines that powered the initial batch of Ospreys were stripped out during their rebuilds, and the replacement generator banks have left contemporary Ospreys somewhat power-starved.", "tags": ["Cargo", "Robotics", "Generalist"], "limit": 1, diff --git a/_maps/configs/nanotrasen_ranger.json b/_maps/configs/nanotrasen_ranger.json index e71839db2893..6c2d24f439f9 100644 --- a/_maps/configs/nanotrasen_ranger.json +++ b/_maps/configs/nanotrasen_ranger.json @@ -18,7 +18,7 @@ "Generalist" ], "starting_funds": 4000, - "map_path": "_maps/shuttles/shiptest/nanotrasen_ranger.dmm", + "map_path": "_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm", "limit": 1, "job_slots": { "LP Lieutenant": { diff --git a/_maps/configs/nanotrasen_skipper.json b/_maps/configs/nanotrasen_skipper.json index 86e8ec7c8f49..0b3d24ec9918 100644 --- a/_maps/configs/nanotrasen_skipper.json +++ b/_maps/configs/nanotrasen_skipper.json @@ -10,7 +10,7 @@ "WEAPONS", "MERCANTILE" ], - "map_path": "_maps/shuttles/shiptest/nanotrasen_skipper.dmm", + "map_path": "_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm", "description": "An example of one of Nanotrasen’s “standard-pattern” cruisers. The Skipper-class is well-equipped by Frontier standards, with ample room for engineering equipment, well-appointed crew accommodations, and a decent supply of defensive weaponry. Notably, the Skipper comes with a larger command section than average, and the officers on Skippers tend to be better-equipped than their peers. Though not as prestigious as a position aboard an Osprey, few Nanotrasen captains would turn down a position commanding a Skipper.", "tags": [ "Engineering", diff --git a/_maps/configs/pirate_ember.json b/_maps/configs/pirate_ember.json index 78c60f95e28b..52b511afefe1 100644 --- a/_maps/configs/pirate_ember.json +++ b/_maps/configs/pirate_ember.json @@ -7,7 +7,7 @@ "BRITISH_NAVY" ], "map_short_name": "Ember-class", - "map_path": "_maps/shuttles/shiptest/pirate_ember.dmm", + "map_path": "_maps/shuttles/pirate/pirate_ember.dmm", "description": "The Ember class is a red flag in any sector. A giant, slow moving, safety hazard of a ship, makeshift in almost every regard, finds itself favored amongst the most ruthless and cutthroat of pirates and scoundrels galaxy-wide. Simply to be willing to exist on one of these ships shows a hardiness not typically found in most spacers. The best way to deal with Ember vessels is to simply give them a wide berth.", "tags": [ "Combat", diff --git a/_maps/configs/pirate_libertatia.json b/_maps/configs/pirate_libertatia.json index 196f8652753f..1dd3654a93f7 100644 --- a/_maps/configs/pirate_libertatia.json +++ b/_maps/configs/pirate_libertatia.json @@ -2,7 +2,7 @@ "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "Libertatia-class Hauler", "map_short_name": "Libertatia-class", - "map_path": "_maps/shuttles/shiptest/pirate_libertatia.dmm", + "map_path": "_maps/shuttles/pirate/pirate_libertatia.dmm", "description": "A widely-available and dirt-cheap courier ship by Miskilamo Spacefaring, Libertatias are shoddy overhauls of old civilian atmospheric ships or the burned-out wrecks of other Libertatias, made nominally space worthy and capable of carrying a modest cargo at blistering speeds. While marketed as courier ships and short-range cargo shuttles, the Libertatia found its true target market in the hands of smugglers, blockade runners, and pirates, who find its speed, low sensor signature, and rock-bottom price point extremely attractive. In recent years, it’s become far more common to see Libertatias captained by pirates than anyone else, especially in the loosely-patrolled Frontier sectors. Surprisingly enough, the more organized Frontiersmen pirate group shows little love for the humble Libertatia, instead preferring larger and more threatening ships.", "tags": [ "Combat" diff --git a/_maps/configs/pirate_noderider.json b/_maps/configs/pirate_noderider.json index aa005f85b7cf..c46b88bee91b 100644 --- a/_maps/configs/pirate_noderider.json +++ b/_maps/configs/pirate_noderider.json @@ -7,7 +7,7 @@ "INSTALLATION", "PIRATES" ], - "map_path": "_maps/shuttles/shiptest/pirate_noderider.dmm", + "map_path": "_maps/shuttles/pirate/pirate_noderider.dmm", "description": "The Jupiter-class Stormrider is a specialist design originating from the Silicon Elevation Council, typically used for sustained missions in the Frontier. While habitable to organic life (typically as a matter of convenience), the ship is designed with silicons in mind, and features an AI core built into its hull. Many captains have been quoted as being “frightened” (although “piss-pants scared” was the exact statement) by one suddenly appearing out of a storm, IFF loudly declaring who they were, or in worse conditions, not functioning at all. Some examples have been known to find their way into pirate hands, who leverage the ship to spring ambushes on unsuspecting traders.", "tags": [ "Robotics", diff --git a/_maps/configs/radio.json b/_maps/configs/radio.json index e1ae13e64abf..55bc4549dc5b 100644 --- a/_maps/configs/radio.json +++ b/_maps/configs/radio.json @@ -2,7 +2,7 @@ "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "Radio Broadcasting Ship", "map_short_name": "Radio-class", - "map_path": "_maps/shuttles/shiptest/radio_funny.dmm", + "map_path": "_maps/shuttles/independent/radio_funny.dmm", "description": "Whether through divine intervention or hellish creation by the hands of sapient-kind, reports of this “ship” plague some sectors more than others. The Radio Broadcasting Ship is an anomalous thing in its own right. It is a “ship” equipped with nothing but radios and reality warping engines. There exist many reports of this vessel being totally destroyed and showing back up in a sector just hours later. The only thing you can do about these vessels is pray the pilot doesn’t have bad taste.", "tags": ["Specialist"], "job_slots": { diff --git a/_maps/configs/solgov_chronicle.json b/_maps/configs/solgov_chronicle.json index 2f2043eaec73..0ef5e8005756 100644 --- a/_maps/configs/solgov_chronicle.json +++ b/_maps/configs/solgov_chronicle.json @@ -9,7 +9,7 @@ "NATURAL" ], "map_short_name": "Chronicle-class", - "map_path": "_maps/shuttles/shiptest/solgov_chronicle.dmm", + "map_path": "_maps/shuttles/solgov/solgov_chronicle.dmm", "description": "Equipped with a sophisticated sensors suite and powerful data utilities, the Chronicle is a clerical workhorse, able to collect and process vast amounts of information. Often employed for census duties and interstellar exploration, the Chronicle is also a favorite of Evidenzkompanien, employed often for intelligence operations. With this fact in mind, Chronicle-class vessels are often placed under increased scrutiny by patrols, somewhat mitigating their effectiveness as a spymaster's tool.", "tags": [ "Specialist" diff --git a/_maps/configs/solgov_inkwell.json b/_maps/configs/solgov_inkwell.json new file mode 100644 index 000000000000..d34cb392f65e --- /dev/null +++ b/_maps/configs/solgov_inkwell.json @@ -0,0 +1,49 @@ +{ + "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", + "map_name": "Inkwell-class Supply Freighter", + "prefix": "SGSV", + "namelists": [ + "SOLGOV", + "SPACE", + "BRITISH_NAVY", + "NATURAL" + ], + "map_short_name": "Inkwell-class", + "map_path": "_maps/shuttles/solgov/solgov_inkwell.dmm", + "description": "One of the few Sol-designed hulls used outside of official contexts by non-Confederation parties, the Inkwell is a freighter respected for its engineering and loved for its lavish crew accommodations. \n The Inkwell-class seen in numerous contexts, perhaps most notably among the Verwaltungskompanien, where they are essential in solving the logistic concerns of any proper military-administration-for-hire. Additionally, they are often commissioned and sold to non-Solarian parties for use in interstellar shipping. \n The usage of the Inkwell-class to move illicit or untracked cargo is known by any seasoned (or even half-cooked) port authority; \"...such regrettable actions by an outlier minority are mere part-and-parcel of the realities of interstellar shipping,\" goes the official reply.", + "tags": ["RP Focus", "Combat", "Cargo", "Mining"], + "limit": 1, + "job_slots": { + "Captain": { + "outfit": "/datum/outfit/job/solgov/captain", + "officer": true, + "slots": 1 + }, + "Logistics Deck Officer": { + "outfit": "/datum/outfit/job/solgov/quartermaster", + "officer": true, + "slots": 1 + }, + "Sonnensöldner": { + "outfit": "/datum/outfit/job/solgov/sonnensoldner", + "slots": 3 + }, + "Ship Engineer": { + "outfit": "/datum/outfit/job/solgov/engineer", + "slots": 2 + }, + "Field Engineer": { + "outfit": "/datum/outfit/job/solgov/miner", + "slots": 3 + }, + "Bureaucrat": { + "outfit": "/datum/outfit/job/solgov/bureaucrat", + "slots": 2 + }, + "Scribe": { + "outfit": "/datum/outfit/job/solgov/assistant", + "slots" : 6 + } + }, + "enabled": true +} diff --git a/_maps/configs/solgov_paracelsus.json b/_maps/configs/solgov_paracelsus.json index b10439c6db02..cd3b056e282e 100644 --- a/_maps/configs/solgov_paracelsus.json +++ b/_maps/configs/solgov_paracelsus.json @@ -11,7 +11,7 @@ "map_short_name": "Paracelsus-class", "description": "Fulfilling its role as a medicinal powerhouse of the Solarian Navy, the Paracelsus-class is a specially designed corvette to assist solarian fleets in medical troubles, as well as supplying such vessels with medication. Scribes pursuing a medical degree often work in these ships to shadow trained medical doctors to complete their residency.", "tags": ["RP Focus", "Medical", "Chemistry"], - "map_path": "_maps/shuttles/shiptest/solgov_paracelsus.dmm", + "map_path": "_maps/shuttles/solgov/solgov_paracelsus.dmm", "limit": 1, "job_slots": { "Captain": { diff --git a/_maps/configs/srm_glaive.json b/_maps/configs/srm_glaive.json index 093e28107e2c..f71c8b2398fc 100644 --- a/_maps/configs/srm_glaive.json +++ b/_maps/configs/srm_glaive.json @@ -7,7 +7,7 @@ "BEASTS" ], "map_short_name": "Glaive-class", - "map_path": "_maps/shuttles/shiptest/srm_glaive.dmm", + "map_path": "_maps/shuttles/roumain/srm_glaive.dmm", "description": "A standard issue vessel to the highest ranks of the Saint-Roumain Militia. While “standard”, this class of vessel is unique to the Montagne that owns it. Each ship is designed around a central garden consisting of plants, soil, and a tree from the owning Montagnes’ home planet. As a highly religious ascetic order, the SRM supplies each Glaive with supplies to farm, raise animals, and perform medicine in more “natural” ways, using herbs and plants grown in house. Alongside this, the ship has a decent amount of mining equipment, and supplies required to begin the manufacturing of SRM-pattern firearms as is standard for Hunter’s Pride. The ship is captained by a Montagne, who oversees a team of Hunters, and Shadows apprenticing them.", "tags": [ "Mining", diff --git a/_maps/configs/syndicate_aegis.json b/_maps/configs/syndicate_aegis.json index 73b4e1d817ad..9dc307f7f091 100644 --- a/_maps/configs/syndicate_aegis.json +++ b/_maps/configs/syndicate_aegis.json @@ -2,7 +2,7 @@ "prefix": "SSV", "map_name": "Aegis-class Long Term Care Ship", "map_short_name": "Aegis-class", - "map_path": "_maps/shuttles/shiptest/syndicate_aegis.dmm", + "map_path": "_maps/shuttles/syndicate/syndicate_aegis.dmm", "description": "Approximately a third of the way through the ICW, it became apparent that the Syndicate could not muster the sheer throwaway manpower that Nanotrasen could with its swaths of mercenaries and disposable personnel. Instead, the Syndicate began to adopt a much more conservative approach to maintaining personnel, by establishing an initiative to create a host of medical vessels designed to rescue and rehabilitate the fallen. While the Li Tieguai filled the rescue role, the Aegis-Class was to fill the rehabilitation role. Featuring a host of ‘quality of life’ features for long-term patients (a full bar, a hydroponics setup, and so on), an expansive medical bay and an array of comfort fixtures like couches and gardens, the Aegis is perfect for aspiring doctors or wounded patients.", "tags": [ "Botany", @@ -18,38 +18,38 @@ ], "job_slots": { "Captain": { - "outfit": "/datum/outfit/job/captain/syndicate", + "outfit": "/datum/outfit/job/syndicate/captain", "officer": true, "slots": 1 }, "Lead Doctor": { - "outfit": "/datum/outfit/job/cmo/syndicate/nsv", + "outfit": "/datum/outfit/job/syndicate/cmo/suns", "slots": 1 }, "Ship Doctor":{ - "outfit": "/datum/outfit/job/doctor/syndicate/nsv", + "outfit": "/datum/outfit/job/syndicate/doctor/suns", "slots": 2 }, "Mechanic": { - "outfit": "/datum/outfit/job/engineer/syndicate", + "outfit": "/datum/outfit/job/syndicate/engineer", "slots": 1 }, "Deck Service Assistant": { - "outfit": "/datum/outfit/job/botanist/syndicate/nsv", + "outfit": "/datum/outfit/job/syndicate/botanist/suns", "slots": 2 }, "Ship Psychologist": { - "outfit": "/datum/outfit/job/psychologist/syndicate/nsv", + "outfit": "/datum/outfit/job/syndicate/psychologist/suns", "slots": 1 }, "Long Term Patient": { - "outfit": "/datum/outfit/job/prisoner/syndicatepatient", + "outfit": "/datum/outfit/job/syndicate/patient", "slots": 2 } }, diff --git a/_maps/configs/syndicate_cybersun_kansatsu.json b/_maps/configs/syndicate_cybersun_kansatsu.json index d032f8c8d30f..fbde6dc608d6 100644 --- a/_maps/configs/syndicate_cybersun_kansatsu.json +++ b/_maps/configs/syndicate_cybersun_kansatsu.json @@ -12,29 +12,29 @@ "Specialist" ], "map_short_name": "Kansatsu-class", - "map_path": "_maps/shuttles/shiptest/syndicate_cybersun_kansatsu.dmm", + "map_path": "_maps/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm", "map_id": "cybersun_kansatsu", "job_slots": { - "Captain": { - "outfit": "/datum/outfit/job/captain/syndicate/cybersun", + "Commander": { + "outfit": "/datum/outfit/job/syndicate/captain/cybersun", "officer": true, "slots": 1 }, "Intelligence Officer": { - "outfit": "/datum/outfit/job/head_of_personnel/syndicate/intel", + "outfit": "/datum/outfit/job/syndicate/head_of_personnel/cybersun", "officer": true, "slots": 1 }, "Engineer": { - "outfit": "/datum/outfit/job/engineer/syndicate/cybersun", + "outfit": "/datum/outfit/job/syndicate/engineer/cybersun", "slots": 1 }, "Field Agent": { - "outfit": "/datum/outfit/job/miner/syndicate/cybersun", + "outfit": "/datum/outfit/job/syndicate/miner/cybersun", "slots": 2 }, "Junior Agent": { - "outfit": "/datum/outfit/job/assistant/syndicate/cyberagent", + "outfit": "/datum/outfit/job/syndicate/assistant/cybersun", "slots": 2 } }, diff --git a/_maps/configs/syndicate_gorlex_hyena.json b/_maps/configs/syndicate_gorlex_hyena.json index 2c0d12a29a45..4e9086139275 100644 --- a/_maps/configs/syndicate_gorlex_hyena.json +++ b/_maps/configs/syndicate_gorlex_hyena.json @@ -15,28 +15,28 @@ "Combat" ], "map_short_name": "Hyena-class", - "map_path": "_maps/shuttles/shiptest/syndicate_gorlex_hyena.dmm", + "map_path": "_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm", "job_slots": { "Captain": { - "outfit": "/datum/outfit/job/captain/syndicate/gorlex", + "outfit": "/datum/outfit/job/syndicate/captain/gorlex", "officer": true, "slots": 1 }, "Foreman": { - "outfit": "/datum/outfit/job/ce/syndicate/gorlex", + "outfit": "/datum/outfit/job/syndicate/ce/gorlex", "officer": true, "slots": 1 }, "Mechanic": { - "outfit": "/datum/outfit/job/engineer/syndicate/gorlex", + "outfit": "/datum/outfit/job/syndicate/engineer/gorlex", "slots": 1 }, "Wrecker": { - "outfit": "/datum/outfit/job/miner/syndicate/gorlex", + "outfit": "/datum/outfit/job/syndicate/miner/gorlex", "slots": 2 }, "Junior Agent": { - "outfit": "/datum/outfit/job/assistant/syndicate/gorlex", + "outfit": "/datum/outfit/job/syndicate/assistant/gorlex", "slots": 2 } }, diff --git a/_maps/configs/syndicate_gorlex_komodo.json b/_maps/configs/syndicate_gorlex_komodo.json index f65d05a44e60..5692eaf44a14 100644 --- a/_maps/configs/syndicate_gorlex_komodo.json +++ b/_maps/configs/syndicate_gorlex_komodo.json @@ -14,38 +14,38 @@ "Combat", "Engineering" ], - "map_path": "_maps/shuttles/shiptest/syndicate_gorlex_komodo.dmm", + "map_path": "_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm", "map_id": "syndicate_gorlex_komodo", "limit": 1, "job_slots": { "Captain": { - "outfit": "/datum/outfit/job/captain/syndicate/gorlex", + "outfit": "/datum/outfit/job/syndicate/captain/gorlex", "officer": true, "slots": 1 }, "Sergeant": { - "outfit": "/datum/outfit/job/hos/syndicate", + "outfit": "/datum/outfit/job/syndicate/hos/gorlex", "officer": true, "slots": 1 }, "Medic": { - "outfit": "/datum/outfit/job/doctor/syndicate_komodo", + "outfit": "/datum/outfit/job/syndicate/doctor/gorlex", "slots": 1 }, "Mechanic": { - "outfit": "/datum/outfit/job/engineer/syndicate/gorlex", + "outfit": "/datum/outfit/job/syndicate/miner/gorlex", "slots": 1 }, "Trooper": { - "outfit": "/datum/outfit/job/security/syndicate/gorlex", + "outfit": "/datum/outfit/job/syndicate/security/gorlex", "slots": 3 }, "Deck assistant": { - "outfit": "/datum/outfit/job/assistant/syndicate/gorlex", + "outfit": "/datum/outfit/job/syndicate/assistant/gorlex", "slots": 2 }, "Bridge officer": { - "outfit": "/datum/outfit/job/head_of_personnel/syndicate", + "outfit": "/datum/outfit/job/syndicate/head_of_personnel", "slots": 1 } }, diff --git a/_maps/configs/syndicate_lugol.json b/_maps/configs/syndicate_lugol.json index e8436c7d128d..26599d93a8ee 100644 --- a/_maps/configs/syndicate_lugol.json +++ b/_maps/configs/syndicate_lugol.json @@ -12,33 +12,33 @@ "GEC", "SPACE" ], - "map_path": "_maps/shuttles/shiptest/syndicate_gec_lugol.dmm", + "map_path": "_maps/shuttles/syndicate/syndicate_gec_lugol.dmm", "map_id": "gec_lugol", "limit": 2, "job_slots": { "Project Overseer": { - "outfit": "/datum/outfit/job/ce/gec", + "outfit": "/datum/outfit/job/syndicate/ce/gec", "slots": 1, "officer": true }, - "GEC Engineer": { - "outfit": "/datum/outfit/job/engineer/gec", + "GEC Engineering": { + "outfit": "/datum/outfit/job/syndicate/engineer/gec", "slots": 3 }, - "Atmospheric Technician": { - "outfit": "/datum/outfit/job/atmos/gec", + "GEC Atmospherics": { + "outfit": "/datum/outfit/job/syndicate/atmos/gec", "slots": 3 }, "Beverage Specialist": { - "outfit": "/datum/outfit/job/bartender/syndicate", + "outfit": "/datum/outfit/job/syndicate/bartender", "slots": 1 }, - "Shaft Miner": { - "outfit": "/datum/outfit/job/miner/syndicate/gec", + "GEC Miner": { + "outfit": "/datum/outfit/job/syndicate/miner/gec", "slots": 1 }, "GEC Apprentice": { - "outfit": "/datum/outfit/job/assistant/syndicate/gec", + "outfit": "/datum/outfit/job/syndicate/assistant/gec", "slots": 2 } }, diff --git a/_maps/configs/syndicate_luxembourg.json b/_maps/configs/syndicate_luxembourg.json index 40fe900ae3d6..1433f2da547a 100644 --- a/_maps/configs/syndicate_luxembourg.json +++ b/_maps/configs/syndicate_luxembourg.json @@ -13,24 +13,24 @@ "Cargo" ], "map_short_name": "Luxembourg-class", - "map_path": "_maps/shuttles/shiptest/syndicate_luxembourg.dmm", + "map_path": "_maps/shuttles/syndicate/syndicate_luxembourg.dmm", "limit": 1, "starting_funds": 6000, "job_slots": { "Manager": { - "outfit": "/datum/outfit/job/quartermaster/donk", + "outfit": "/datum/outfit/job/syndicate/quartermaster/donk", "slots": 1 }, "Customer Service Representative": { - "outfit": "/datum/outfit/job/cargo_tech/donk", + "outfit": "/datum/outfit/job/syndicate/cargo_tech/donk", "slots": 5 }, "Food and Beverage Specialist": { - "outfit": "/datum/outfit/job/bartender/syndicate", + "outfit": "/datum/outfit/job/syndicate/bartender", "slots": 1 }, "GEC Contracted Engineer": { - "outfit": "/datum/outfit/job/engineer/gec", + "outfit": "/datum/outfit/job/syndicate/engineer/gec", "slots": 1 } }, diff --git a/_maps/configs/syndicate_twinkleshine.json b/_maps/configs/syndicate_twinkleshine.json index 24b55c7bd35c..e5765b1691dd 100644 --- a/_maps/configs/syndicate_twinkleshine.json +++ b/_maps/configs/syndicate_twinkleshine.json @@ -15,40 +15,40 @@ "Medical" ], "map_short_name": "Twinkleshine-class", - "map_path": "_maps/shuttles/shiptest/syndicate_twinkleshine.dmm", + "map_path": "_maps/shuttles/syndicate/syndicate_twinkleshine.dmm", "job_slots": { "Captain": { - "outfit": "/datum/outfit/job/captain/syndicate/sbc", + "outfit": "/datum/outfit/job/syndicate/captain/twink", "officer": true, "slots": 1 }, "Lieutenant": { - "outfit": "/datum/outfit/job/warden/syndicate/sbc", + "outfit": "/datum/outfit/job/syndicate/hos/twink", "officer": true, "slots": 1 }, "Medic": { - "outfit": "/datum/outfit/job/brig_phys/syndicate/sbc", + "outfit": "/datum/outfit/job/syndicate/paramedic/twink", "slots": 2 }, "Engineer": { - "outfit": "/datum/outfit/job/engineer/syndicate/sbc", + "outfit": "/datum/outfit/job/syndicate/engineer/twink", "slots": 2 }, "Operative": { - "outfit": "/datum/outfit/job/security/syndicate/sbc", + "outfit": "/datum/outfit/job/syndicate/security/twink", "slots": 5 }, "Bartender": { - "outfit": "/datum/outfit/job/bartender/syndicate/sbc", + "outfit": "/datum/outfit/job/syndicate/bartender/twink", "slots": 1 }, "Miner": { - "outfit": "/datum/outfit/job/miner/syndicate/sbc", + "outfit": "/datum/outfit/job/syndicate/miner/twink", "slots": 1 }, "Deck Assistant": { - "outfit": "/datum/outfit/job/assistant/syndicate/sbc", + "outfit": "/datum/outfit/job/syndicate/assistant/twink", "slots": 2 } }, diff --git a/_maps/deprecated/Ruins/TheDerelict.dmm b/_maps/deprecated/Ruins/TheDerelict.dmm index aa545a1d7d9e..0a6b86996b66 100644 --- a/_maps/deprecated/Ruins/TheDerelict.dmm +++ b/_maps/deprecated/Ruins/TheDerelict.dmm @@ -1146,7 +1146,6 @@ /turf/open/floor/plasteel/airless, /area/ruin/space/derelict/bridge/access) "fw" = ( -/obj/effect/mob_spawn/drone/derelict, /turf/open/floor/plasteel/airless, /area/ruin/space/derelict/bridge/access) "fx" = ( @@ -1839,7 +1838,6 @@ /turf/open/floor/plating/airless, /area/ruin/space/derelict/singularity_engine) "in" = ( -/obj/effect/mob_spawn/drone/derelict, /turf/open/floor/plating/airless, /area/ruin/space/derelict/singularity_engine) "io" = ( @@ -4396,7 +4394,6 @@ /obj/machinery/power/terminal{ dir = 1 }, -/obj/effect/mob_spawn/drone/derelict, /obj/structure/cable{ icon_state = "0-2" }, diff --git a/_maps/deprecated/Ships/independent_high.dmm b/_maps/deprecated/Ships/independent_high.dmm index f0970571986c..6e0bde796115 100644 --- a/_maps/deprecated/Ships/independent_high.dmm +++ b/_maps/deprecated/Ships/independent_high.dmm @@ -1036,7 +1036,7 @@ /obj/effect/turf_decal/corner/opaque/red/diagonal, /obj/structure/toilet/secret{ dir = 4; - secret_type = /obj/item/stack/sheet/capitalisium + secret_type = /obj/item/spacecash/bundle/c10000 }, /turf/open/floor/plasteel/white, /area/ship/crew/dorm) diff --git a/_maps/map_catalogue.txt b/_maps/map_catalogue.txt index faf5bf515168..006f7f6328fd 100644 --- a/_maps/map_catalogue.txt +++ b/_maps/map_catalogue.txt @@ -69,10 +69,6 @@ Find the key for using this catalogue in "map_catalogue_key.txt" Size = (x = 15)(y = 15)(z = 1) Tags = "Medium Combat Challenge", "Medium Loot", "Liveable" - File Name = "_maps\RandomRuins\JungleRuins\jungle_spider.dmm" - Size = (x = 7)(y = 9)(z = 1) - Tags = "Medium Combat Challenge", "Major Loot", "Liveable" - File Name = "_maps\RandomRuins\JungleRuins\jungle_surface_coffinepirate.dmm" Size = (x = 14)(y = 15)(z = 1) Tags = "No Combat", "Minor Loot", "Liveable" @@ -129,6 +125,10 @@ Find the key for using this catalogue in "map_catalogue_key.txt" Size = (x = 100)(y = 75)(z = 1) Tags = "Medium Combat Challenge", "Major Loot", "Hazardous", "Liveable" + File Name "_maps\RandomRuins\JungleRuins\jungle_cavecrew + Size = (x = 43)(y = 63)(z = 1) + Tags = "Medium Combat Challenge", "Hazardous", "Liveable", "Major Loot" + File Name "_maps\RandomRuins\JungleRuins\jungle_abandoned_library Size = (x = 36)(y = 35)(z = 1) Tags = "Medium Combat Challenge", "Medium Loot", "Antag Gear", "Necropolis Loot", "Liveable" @@ -242,10 +242,6 @@ Find the key for using this catalogue in "map_catalogue_key.txt" Size = (x = 15)(y = 23)(z = 1) Tags = "No Combat", "Medium Loot", "Shelter" - File Name = "_maps\RandomRuins\RockRuins\rockplanet_clock.dmm" - Size = (x = 15)(y = 15)(z = 1) - Tags = "Medium Combat Challenge", "Medium Loot", "Necropolis Loot", "Shelter" - File Name = "_maps\RandomRuins\RockRuins\rockplanet_crash_cult.dmm" Size = (x = 26)(y = 18)(z = 1) Tags = "Medium Combat Challenge", "Medium Loot", "Inhospitable" @@ -286,6 +282,10 @@ Find the key for using this catalogue in "map_catalogue_key.txt" Size = (x = 9)(y = 9)(z = 1) Tags = "Boss Combat Challenge", "Major Loot", "Hazardous", "Inhospitable" + File Name = "_maps\RandomRuins\RockRuins\rockplanet_nomadcrash.dmm" + Size = (x = 58)(y = 48)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Hazardous", "Hospitable" + SandRuins: File Name = "_maps\RandomRuins\Ruins\whitesands_surface_assaultpodcrash.dmm" @@ -312,10 +312,6 @@ Find the key for using this catalogue in "map_catalogue_key.txt" Size = (x = 13)(y = 13)(z = 1) Tags = "No Combat", "Minor Loot", "Shelter" - File Name = "_maps\RandomRuins\Ruins\whitesands_surface_golem_hijack.dmm" - Size = (x = 18)(y = 23)(z = 1) - Tags = "No Combat", "Medium Loot", "Inhospitable" - File Name = "_maps\RandomRuins\Ruins\whitesands_surface_medipen_plant.dmm" Size = (x = 23)(y = 29)(z = 1) Tags = "No Combat", "Major Loot", "Shelter" @@ -390,10 +386,6 @@ Find the key for using this catalogue in "map_catalogue_key.txt" Size = (x = 50)(y = 50)(z = 1) Tags = "No Combat", "Minor Loot", "Inhospitable" - File Name = "_maps\RandomRuins\SpaceRuins\gondolaasteroid.dmm" - Size = (x = 35)(y = 35)(z = 1) - Tags = "No Combat", "Minor Loot", "Shelter" - File Name = "_maps\RandomRuins\SpaceRuins\hellfactory.dmm" Size = (x = 25)(y = 25)(z = 1) Tags = "No Combat", "Medium Loot", "Shelter" @@ -402,18 +394,10 @@ Find the key for using this catalogue in "map_catalogue_key.txt" Size = (x = 73)(y = 36)(z = 1) Tags = "Medium Combat Challenge", "Major Loot", "Ghost Role", "Shelter", "Antag Gear" - File Name = "_maps\RandomRuins\SpaceRuins\mechtransport.dmm" - Size = (x = 9)(y = 15)(z = 1) - Tags = "No Combat", "Medium Loot", "Inhospitable" - File Name = "_maps\RandomRuins\SpaceRuins\ntfacility.dmm" Size = (x = 39)(y = 39)(z = 1) Tags = "Medium Combat Challenge", "Major Loot", "Shelter" - File Name = "_maps\RandomRuins\SpaceRuins\nuclear_dump.dmm" - Size = (x = 32)(y = 32)(z = 1) - Tags = "Minor Combat Challenge", "Medium Loot", "Shelter", "Hazardous" - File Name = "_maps\RandomRuins\SpaceRuins\oldcodeops.dmm" Size = (x = 17)(y = 22)(z = 1) Tags = "Boss Combat Challenge", "Major Loot", "Shelter", "Antag Gear" @@ -503,6 +487,10 @@ Find the key for using this catalogue in "map_catalogue_key.txt" Size = (x = 37)(y = 43)(z = 1) Tags = "Medium Combat Challenge", "Medium Loot", "Liveable" + File Name = "_maps\RandomRuins\BeachRuins\beach_float_resort.dmm" + Size = (x = 38)(y = 52)(z = 1) + Tags = "No Combat", "Minor Loot", "Liveable" + Deprecated: File Name = "_maps\RandomRuins\deprecated\jungle_surface_tumblr_sexyman.dmm" Size = (x = 30)(y = 20)(z = 1) @@ -561,7 +549,7 @@ Find the key for using this catalogue in "map_catalogue_key.txt" Tags = "No Combat", "Medium Loot", "Shelter" - Waste Ruins: + Waste Ruins: File name ="_maps\RandomRuins\wasteruins\wasteplanet_clowncrash.dmm" Size = (x = 11)(y = 12)(z = 1) Tags = "No Combat", "Minor Loot", "Shelter" "hospitable" diff --git a/_maps/outpost/elevator_indie.dmm b/_maps/outpost/elevator_indie.dmm new file mode 100644 index 000000000000..f692a2918a5b --- /dev/null +++ b/_maps/outpost/elevator_indie.dmm @@ -0,0 +1,47 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/structure/elevator_platform, +/obj/machinery/status_display/elevator{ + pixel_x = -32 + }, +/turf/template_noop, +/area/template_noop) +"e" = ( +/obj/structure/elevator_platform, +/obj/machinery/light/small/directional/east, +/turf/template_noop, +/area/template_noop) +"k" = ( +/obj/structure/elevator_platform, +/obj/machinery/light/small/directional/west, +/turf/template_noop, +/area/template_noop) +"A" = ( +/obj/structure/elevator_platform, +/turf/template_noop, +/area/template_noop) +"S" = ( +/obj/structure/elevator_platform, +/obj/machinery/elevator_floor_button{ + pixel_y = 0; + dir = 8; + pixel_x = 24 + }, +/turf/template_noop, +/area/template_noop) + +(1,1,1) = {" +k +a +k +"} +(2,1,1) = {" +A +A +A +"} +(3,1,1) = {" +e +S +e +"} diff --git a/_maps/outpost/hangar/indie_space_20x20.dmm b/_maps/outpost/hangar/indie_space_20x20.dmm new file mode 100644 index 000000000000..24c00395b2f6 --- /dev/null +++ b/_maps/outpost/hangar/indie_space_20x20.dmm @@ -0,0 +1,1109 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ac" = ( +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"ad" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"al" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ + dir = 8 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"am" = ( +/turf/closed/indestructible/reinforced, +/area/hangar) +"ao" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 1 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"ap" = ( +/obj/structure/marker_beacon{ + picked_color = "Teal" + }, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"aq" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 1 + }, +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"av" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"ax" = ( +/obj/machinery/door/airlock, +/obj/effect/landmark/outpost/elevator_machine, +/obj/structure/lattice/catwalk, +/turf/open/floor/engine, +/area/hangar) +"ay" = ( +/obj/machinery/door/poddoor/multi_tile/four_tile_ver, +/turf/closed/indestructible/reinforced, +/area/hangar) +"az" = ( +/obj/effect/turf_decal/arrows{ + dir = 4 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aA" = ( +/obj/machinery/elevator_call_button{ + pixel_y = 25 + }, +/obj/effect/landmark/outpost/elevator_machine, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aB" = ( +/obj/effect/landmark/outpost/hangar_dock, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"aC" = ( +/obj/effect/turf_decal/arrows{ + dir = 1 + }, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"aE" = ( +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aH" = ( +/turf/template_noop, +/area/template_noop) +"aJ" = ( +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"aL" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"aM" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aN" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 8 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aO" = ( +/obj/machinery/atmospherics/components/unary/passive_vent{ + dir = 1 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aP" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ + dir = 1 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aT" = ( +/obj/effect/turf_decal/arrows{ + dir = 1 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aY" = ( +/obj/effect/landmark/outpost/hangar_numbers, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aZ" = ( +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"jk" = ( +/obj/effect/landmark/outpost/elevator, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"qz" = ( +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"rQ" = ( +/obj/machinery/atmospherics/pipe/simple/general, +/turf/closed/indestructible/reinforced, +/area/hangar) + +(1,1,1) = {" +aH +aH +aH +am +am +am +am +am +am +am +ay +am +am +am +ay +am +am +am +ay +am +am +am +ay +am +am +am +ay +am +am +am +am +"} +(2,1,1) = {" +aH +aH +aH +am +aZ +aZ +aM +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +ao +aZ +aZ +am +"} +(3,1,1) = {" +aH +aH +aH +am +aZ +aZ +aM +ac +ac +aC +ac +ac +ac +ac +aC +ac +ac +ac +ac +aC +ac +ac +ac +ac +aC +ac +ac +ao +aZ +aZ +am +"} +(4,1,1) = {" +aH +aH +aH +am +aZ +aZ +aM +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ao +aZ +aZ +am +"} +(5,1,1) = {" +aH +aH +aH +am +aZ +aZ +aM +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aB +ao +aZ +aZ +am +"} +(6,1,1) = {" +aH +aH +aH +am +aZ +aZ +aM +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +ao +aZ +aZ +am +"} +(7,1,1) = {" +aH +aH +aH +am +aZ +az +aM +ap +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +ap +ao +az +aZ +am +"} +(8,1,1) = {" +aH +aH +aH +am +aZ +aZ +aM +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +ao +aZ +aZ +am +"} +(9,1,1) = {" +aH +aH +aH +am +aZ +aZ +av +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aq +aZ +aZ +am +"} +(10,1,1) = {" +aH +aH +aH +am +aZ +aZ +aM +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +ao +aZ +aZ +am +"} +(11,1,1) = {" +aH +aH +aH +am +aZ +aZ +aM +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +ao +aZ +aZ +am +"} +(12,1,1) = {" +aH +aH +aH +am +aZ +az +aM +ap +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +ap +ao +az +aZ +am +"} +(13,1,1) = {" +aH +aH +aH +am +aZ +aZ +aM +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +ao +aZ +aZ +am +"} +(14,1,1) = {" +aH +aH +aH +am +aZ +aZ +aM +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +ao +aZ +aZ +am +"} +(15,1,1) = {" +aH +aH +aH +am +aZ +aZ +aM +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +ao +aZ +aZ +am +"} +(16,1,1) = {" +aH +aH +aH +am +aZ +aZ +aM +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +ao +aZ +aZ +am +"} +(17,1,1) = {" +aH +aH +aH +am +aZ +az +aM +ap +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +ap +ao +az +aZ +am +"} +(18,1,1) = {" +aH +aH +aH +am +aZ +aZ +aM +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +ao +aZ +aZ +am +"} +(19,1,1) = {" +aH +aH +aH +am +aZ +aZ +av +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aq +aZ +aZ +am +"} +(20,1,1) = {" +aH +aH +aH +am +aZ +aZ +aM +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +ao +aZ +aZ +am +"} +(21,1,1) = {" +aH +aH +aH +am +aZ +aZ +aM +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +ao +aZ +aZ +am +"} +(22,1,1) = {" +aH +aH +aH +am +aZ +az +aM +ap +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +ap +ao +az +aZ +am +"} +(23,1,1) = {" +aH +aH +aH +rQ +aO +aZ +aM +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +ao +aZ +aZ +am +"} +(24,1,1) = {" +am +am +am +am +am +aA +aM +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +ao +aZ +aZ +am +"} +(25,1,1) = {" +am +qz +qz +jk +ax +aZ +al +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aP +aZ +aZ +am +"} +(26,1,1) = {" +am +qz +qz +qz +ax +aY +aZ +aZ +aZ +aT +aZ +aZ +aZ +aZ +aT +aZ +aZ +aZ +aZ +aT +aZ +aZ +aZ +aZ +aT +aZ +aZ +aZ +aZ +aZ +am +"} +(27,1,1) = {" +am +qz +qz +qz +ax +aZ +aZ +aZ +aE +aZ +aZ +aZ +aZ +aZ +aZ +aZ +aZ +aZ +aZ +aZ +aZ +aZ +aZ +aZ +aZ +aE +aZ +aZ +aZ +aZ +am +"} +(28,1,1) = {" +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +"} diff --git a/_maps/outpost/hangar/indie_space_40x20.dmm b/_maps/outpost/hangar/indie_space_40x20.dmm new file mode 100644 index 000000000000..b3d80e6103bc --- /dev/null +++ b/_maps/outpost/hangar/indie_space_40x20.dmm @@ -0,0 +1,1769 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ab" = ( +/turf/closed/indestructible/reinforced, +/area/hangar) +"ae" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ + dir = 1 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"af" = ( +/obj/effect/landmark/outpost/hangar_numbers, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"ai" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aj" = ( +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"al" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 1 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"am" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"ap" = ( +/obj/effect/landmark/outpost/hangar_dock, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"as" = ( +/obj/effect/turf_decal/arrows{ + dir = 1 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"av" = ( +/obj/machinery/atmospherics/components/unary/passive_vent{ + dir = 1 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aw" = ( +/obj/effect/turf_decal/arrows{ + dir = 1 + }, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"aA" = ( +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aD" = ( +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"aF" = ( +/obj/machinery/door/airlock, +/obj/effect/landmark/outpost/elevator_machine, +/obj/structure/lattice/catwalk, +/turf/open/floor/engine, +/area/hangar) +"aG" = ( +/obj/structure/marker_beacon{ + picked_color = "Teal" + }, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"aH" = ( +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"aL" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aM" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ + dir = 8 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aO" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"aP" = ( +/turf/template_noop, +/area/template_noop) +"aR" = ( +/obj/machinery/elevator_call_button{ + pixel_y = 25 + }, +/obj/effect/landmark/outpost/elevator_machine, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aT" = ( +/obj/machinery/door/poddoor/multi_tile/four_tile_ver, +/turf/closed/indestructible/reinforced, +/area/hangar) +"aU" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 8 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aX" = ( +/obj/effect/turf_decal/arrows{ + dir = 4 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aY" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 1 + }, +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"JT" = ( +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"OP" = ( +/obj/effect/landmark/outpost/elevator, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"TX" = ( +/obj/machinery/atmospherics/pipe/simple/general, +/turf/closed/indestructible/reinforced, +/area/hangar) + +(1,1,1) = {" +aP +aP +aP +ab +ab +ab +ab +ab +ab +ab +aT +ab +ab +ab +aT +ab +ab +ab +aT +ab +ab +ab +aT +ab +ab +ab +aT +ab +ab +ab +ab +"} +(2,1,1) = {" +aP +aP +aP +ab +aj +aj +aL +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +al +aj +aj +ab +"} +(3,1,1) = {" +aP +aP +aP +ab +aj +aj +aL +aH +aH +aw +aH +aH +aH +aH +aw +aH +aH +aH +aH +aw +aH +aH +aH +aH +aw +aH +aH +al +aj +aj +ab +"} +(4,1,1) = {" +aP +aP +aP +ab +aj +aj +aL +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +al +aj +aj +ab +"} +(5,1,1) = {" +aP +aP +aP +ab +aj +aj +aL +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +ap +al +aj +aj +ab +"} +(6,1,1) = {" +aP +aP +aP +ab +aj +aj +aL +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +al +aj +aj +ab +"} +(7,1,1) = {" +aP +aP +aP +ab +aj +aX +aL +aG +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aG +al +aX +aj +ab +"} +(8,1,1) = {" +aP +aP +aP +ab +aj +aj +aL +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +al +aj +aj +ab +"} +(9,1,1) = {" +aP +aP +aP +ab +aj +aj +ai +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aY +aj +aj +ab +"} +(10,1,1) = {" +aP +aP +aP +ab +aj +aj +aL +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +al +aj +aj +ab +"} +(11,1,1) = {" +aP +aP +aP +ab +aj +aj +aL +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +al +aj +aj +ab +"} +(12,1,1) = {" +aP +aP +aP +ab +aj +aX +aL +aG +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aG +al +aX +aj +ab +"} +(13,1,1) = {" +aP +aP +aP +ab +aj +aj +aL +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +al +aj +aj +ab +"} +(14,1,1) = {" +aP +aP +aP +ab +aj +aj +aL +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +al +aj +aj +ab +"} +(15,1,1) = {" +aP +aP +aP +ab +aj +aj +aL +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +al +aj +aj +ab +"} +(16,1,1) = {" +aP +aP +aP +ab +aj +aj +aL +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +al +aj +aj +ab +"} +(17,1,1) = {" +aP +aP +aP +ab +aj +aX +aL +aG +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aG +al +aX +aj +ab +"} +(18,1,1) = {" +aP +aP +aP +ab +aj +aj +aL +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +al +aj +aj +ab +"} +(19,1,1) = {" +aP +aP +aP +ab +aj +aj +ai +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aY +aj +aj +ab +"} +(20,1,1) = {" +aP +aP +aP +ab +aj +aj +aL +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +al +aj +aj +ab +"} +(21,1,1) = {" +aP +aP +aP +ab +aj +aj +aL +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +al +aj +aj +ab +"} +(22,1,1) = {" +aP +aP +aP +ab +aj +aX +aL +aG +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aG +al +aX +aj +ab +"} +(23,1,1) = {" +aP +aP +aP +ab +aj +aj +aL +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +al +aj +aj +ab +"} +(24,1,1) = {" +aP +aP +aP +ab +aj +aj +aL +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +al +aj +aj +ab +"} +(25,1,1) = {" +aP +aP +aP +ab +aj +aj +aL +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +al +aj +aj +ab +"} +(26,1,1) = {" +aP +aP +aP +ab +aj +aj +aL +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +al +aj +aj +ab +"} +(27,1,1) = {" +aP +aP +aP +ab +aj +aX +aL +aG +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aG +al +aX +aj +ab +"} +(28,1,1) = {" +aP +aP +aP +ab +aj +aj +aL +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +al +aj +aj +ab +"} +(29,1,1) = {" +aP +aP +aP +ab +aj +aj +ai +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aY +aj +aj +ab +"} +(30,1,1) = {" +aP +aP +aP +ab +aj +aj +aL +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +al +aj +aj +ab +"} +(31,1,1) = {" +aP +aP +aP +ab +aj +aj +aL +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +al +aj +aj +ab +"} +(32,1,1) = {" +aP +aP +aP +ab +aj +aX +aL +aG +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aG +al +aX +aj +ab +"} +(33,1,1) = {" +aP +aP +aP +ab +aj +aj +aL +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +al +aj +aj +ab +"} +(34,1,1) = {" +aP +aP +aP +ab +aj +aj +aL +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +al +aj +aj +ab +"} +(35,1,1) = {" +aP +aP +aP +ab +aj +aj +aL +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +al +aj +aj +ab +"} +(36,1,1) = {" +aP +aP +aP +ab +aj +aj +aL +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +al +aj +aj +ab +"} +(37,1,1) = {" +aP +aP +aP +ab +aj +aX +aL +aG +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aG +al +aX +aj +ab +"} +(38,1,1) = {" +aP +aP +aP +ab +aj +aj +aL +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +al +aj +aj +ab +"} +(39,1,1) = {" +aP +aP +aP +ab +aj +aj +ai +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aY +aj +aj +ab +"} +(40,1,1) = {" +aP +aP +aP +ab +aj +aj +aL +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +al +aj +aj +ab +"} +(41,1,1) = {" +aP +aP +aP +ab +aj +aj +aL +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +al +aj +aj +ab +"} +(42,1,1) = {" +aP +aP +aP +ab +aj +aX +aL +aG +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aG +al +aX +aj +ab +"} +(43,1,1) = {" +aP +aP +aP +TX +av +aj +aL +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +al +aj +aj +ab +"} +(44,1,1) = {" +ab +ab +ab +ab +ab +aR +aL +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +al +aj +aj +ab +"} +(45,1,1) = {" +ab +JT +JT +OP +aF +aj +aM +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +ae +aj +aj +ab +"} +(46,1,1) = {" +ab +JT +JT +JT +aF +af +aj +aj +aj +as +aj +aj +aj +aj +as +aj +aj +aj +aj +as +aj +aj +aj +aj +as +aj +aj +aj +aj +aj +ab +"} +(47,1,1) = {" +ab +JT +JT +JT +aF +aj +aj +aj +aA +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aA +aj +aj +aj +aj +ab +"} +(48,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} diff --git a/_maps/outpost/hangar/indie_space_40x40.dmm b/_maps/outpost/hangar/indie_space_40x40.dmm new file mode 100644 index 000000000000..9818aa943330 --- /dev/null +++ b/_maps/outpost/hangar/indie_space_40x40.dmm @@ -0,0 +1,2729 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/closed/indestructible/reinforced, +/area/hangar) +"ab" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 1 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"ac" = ( +/obj/structure/marker_beacon{ + picked_color = "Teal" + }, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"ag" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 8 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"ah" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"ak" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 1 + }, +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"am" = ( +/obj/machinery/elevator_call_button{ + pixel_y = 25 + }, +/obj/effect/landmark/outpost/elevator_machine, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"an" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"ap" = ( +/obj/machinery/door/poddoor/multi_tile/four_tile_ver, +/turf/closed/indestructible/reinforced, +/area/hangar) +"as" = ( +/obj/effect/turf_decal/arrows{ + dir = 1 + }, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"at" = ( +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"au" = ( +/turf/template_noop, +/area/template_noop) +"aw" = ( +/obj/effect/turf_decal/arrows{ + dir = 1 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"ax" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"ay" = ( +/obj/effect/turf_decal/arrows{ + dir = 4 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aC" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ + dir = 8 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aF" = ( +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"aH" = ( +/obj/effect/landmark/outpost/hangar_dock, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"aP" = ( +/obj/effect/landmark/outpost/hangar_numbers, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aQ" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"aS" = ( +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aT" = ( +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aX" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ + dir = 1 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aY" = ( +/obj/machinery/atmospherics/components/unary/passive_vent{ + dir = 1 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aZ" = ( +/obj/machinery/door/airlock, +/obj/effect/landmark/outpost/elevator_machine, +/obj/structure/lattice/catwalk, +/turf/open/floor/engine, +/area/hangar) +"jY" = ( +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"BE" = ( +/obj/machinery/atmospherics/pipe/simple/general, +/turf/closed/indestructible/reinforced, +/area/hangar) +"JI" = ( +/obj/effect/landmark/outpost/elevator, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) + +(1,1,1) = {" +au +au +au +aa +aa +aa +aa +aa +aa +aa +ap +aa +aa +aa +ap +aa +aa +aa +ap +aa +aa +aa +ap +aa +aa +aa +ap +aa +aa +aa +ap +aa +aa +aa +ap +aa +aa +aa +ap +aa +aa +aa +ap +aa +aa +aa +ap +aa +aa +aa +aa +"} +(2,1,1) = {" +au +au +au +aa +aT +aT +ah +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +ab +aT +aT +aa +"} +(3,1,1) = {" +au +au +au +aa +aT +aT +ah +at +at +as +at +at +at +at +as +at +at +at +at +as +at +at +at +at +as +at +at +at +at +as +at +at +at +at +as +at +at +at +at +as +at +at +at +at +as +at +at +ab +aT +aT +aa +"} +(4,1,1) = {" +au +au +au +aa +aT +aT +ah +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +ab +aT +aT +aa +"} +(5,1,1) = {" +au +au +au +aa +aT +aT +ah +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aH +ab +aT +aT +aa +"} +(6,1,1) = {" +au +au +au +aa +aT +aT +ah +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ab +aT +aT +aa +"} +(7,1,1) = {" +au +au +au +aa +aT +ay +ah +ac +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ac +ab +ay +aT +aa +"} +(8,1,1) = {" +au +au +au +aa +aT +aT +ah +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ab +aT +aT +aa +"} +(9,1,1) = {" +au +au +au +aa +aT +aT +ax +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ak +aT +aT +aa +"} +(10,1,1) = {" +au +au +au +aa +aT +aT +ah +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ab +aT +aT +aa +"} +(11,1,1) = {" +au +au +au +aa +aT +aT +ah +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ab +aT +aT +aa +"} +(12,1,1) = {" +au +au +au +aa +aT +ay +ah +ac +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ac +ab +ay +aT +aa +"} +(13,1,1) = {" +au +au +au +aa +aT +aT +ah +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ab +aT +aT +aa +"} +(14,1,1) = {" +au +au +au +aa +aT +aT +ah +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ab +aT +aT +aa +"} +(15,1,1) = {" +au +au +au +aa +aT +aT +ah +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ab +aT +aT +aa +"} +(16,1,1) = {" +au +au +au +aa +aT +aT +ah +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ab +aT +aT +aa +"} +(17,1,1) = {" +au +au +au +aa +aT +ay +ah +ac +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ac +ab +ay +aT +aa +"} +(18,1,1) = {" +au +au +au +aa +aT +aT +ah +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ab +aT +aT +aa +"} +(19,1,1) = {" +au +au +au +aa +aT +aT +ax +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ak +aT +aT +aa +"} +(20,1,1) = {" +au +au +au +aa +aT +aT +ah +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ab +aT +aT +aa +"} +(21,1,1) = {" +au +au +au +aa +aT +aT +ah +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ab +aT +aT +aa +"} +(22,1,1) = {" +au +au +au +aa +aT +ay +ah +ac +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ac +ab +ay +aT +aa +"} +(23,1,1) = {" +au +au +au +aa +aT +aT +ah +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ab +aT +aT +aa +"} +(24,1,1) = {" +au +au +au +aa +aT +aT +ah +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ab +aT +aT +aa +"} +(25,1,1) = {" +au +au +au +aa +aT +aT +ah +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ab +aT +aT +aa +"} +(26,1,1) = {" +au +au +au +aa +aT +aT +ah +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ab +aT +aT +aa +"} +(27,1,1) = {" +au +au +au +aa +aT +ay +ah +ac +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ac +ab +ay +aT +aa +"} +(28,1,1) = {" +au +au +au +aa +aT +aT +ah +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ab +aT +aT +aa +"} +(29,1,1) = {" +au +au +au +aa +aT +aT +ax +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ak +aT +aT +aa +"} +(30,1,1) = {" +au +au +au +aa +aT +aT +ah +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ab +aT +aT +aa +"} +(31,1,1) = {" +au +au +au +aa +aT +aT +ah +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ab +aT +aT +aa +"} +(32,1,1) = {" +au +au +au +aa +aT +ay +ah +ac +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ac +ab +ay +aT +aa +"} +(33,1,1) = {" +au +au +au +aa +aT +aT +ah +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ab +aT +aT +aa +"} +(34,1,1) = {" +au +au +au +aa +aT +aT +ah +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ab +aT +aT +aa +"} +(35,1,1) = {" +au +au +au +aa +aT +aT +ah +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ab +aT +aT +aa +"} +(36,1,1) = {" +au +au +au +aa +aT +aT +ah +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ab +aT +aT +aa +"} +(37,1,1) = {" +au +au +au +aa +aT +ay +ah +ac +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ac +ab +ay +aT +aa +"} +(38,1,1) = {" +au +au +au +aa +aT +aT +ah +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ab +aT +aT +aa +"} +(39,1,1) = {" +au +au +au +aa +aT +aT +ax +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ak +aT +aT +aa +"} +(40,1,1) = {" +au +au +au +aa +aT +aT +ah +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ab +aT +aT +aa +"} +(41,1,1) = {" +au +au +au +aa +aT +aT +ah +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ab +aT +aT +aa +"} +(42,1,1) = {" +au +au +au +aa +aT +ay +ah +ac +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ac +ab +ay +aT +aa +"} +(43,1,1) = {" +au +au +au +BE +aY +aT +ah +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ab +aT +aT +aa +"} +(44,1,1) = {" +aa +aa +aa +aa +aa +am +ah +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +ab +aT +aT +aa +"} +(45,1,1) = {" +aa +jY +jY +JI +aZ +aT +aC +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +aX +aT +aT +aa +"} +(46,1,1) = {" +aa +jY +jY +jY +aZ +aP +aT +aT +aT +aw +aT +aT +aT +aT +aw +aT +aT +aT +aT +aw +aT +aT +aT +aT +aw +aT +aT +aT +aT +aw +aT +aT +aT +aT +aw +aT +aT +aT +aT +aw +aT +aT +aT +aT +aw +aT +aT +aT +aT +aT +aa +"} +(47,1,1) = {" +aa +jY +jY +jY +aZ +aT +aT +aS +aT +aT +aT +aT +aT +aT +aT +aT +aT +aS +aT +aT +aT +aT +aT +aT +aT +aT +aS +aS +aT +aT +aT +aT +aT +aT +aT +aT +aS +aT +aT +aT +aT +aT +aT +aT +aT +aT +aS +aT +aT +aT +aa +"} +(48,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} diff --git a/_maps/outpost/hangar/indie_space_56x20.dmm b/_maps/outpost/hangar/indie_space_56x20.dmm new file mode 100644 index 000000000000..93842d2587a5 --- /dev/null +++ b/_maps/outpost/hangar/indie_space_56x20.dmm @@ -0,0 +1,2297 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ad" = ( +/obj/machinery/door/poddoor/multi_tile/four_tile_ver, +/turf/closed/indestructible/reinforced, +/area/hangar) +"ae" = ( +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"af" = ( +/obj/effect/landmark/outpost/hangar_dock, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"ag" = ( +/turf/closed/indestructible/reinforced, +/area/hangar) +"ai" = ( +/obj/effect/turf_decal/arrows{ + dir = 1 + }, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"aj" = ( +/obj/machinery/door/airlock, +/obj/effect/landmark/outpost/elevator_machine, +/obj/structure/lattice/catwalk, +/turf/open/floor/engine, +/area/hangar) +"al" = ( +/obj/structure/marker_beacon{ + picked_color = "Teal" + }, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"am" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ + dir = 1 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"an" = ( +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"ap" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ + dir = 8 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"as" = ( +/obj/machinery/elevator_call_button{ + pixel_y = 25 + }, +/obj/effect/landmark/outpost/elevator_machine, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"ax" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"ay" = ( +/obj/machinery/atmospherics/components/unary/passive_vent{ + dir = 1 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aB" = ( +/obj/effect/landmark/outpost/hangar_numbers, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aC" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 1 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aD" = ( +/obj/effect/turf_decal/arrows{ + dir = 1 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aE" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 8 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aG" = ( +/obj/effect/turf_decal/arrows{ + dir = 4 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aI" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aJ" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aK" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 1 + }, +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aN" = ( +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"aP" = ( +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aX" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"aZ" = ( +/turf/template_noop, +/area/template_noop) +"jJ" = ( +/obj/effect/landmark/outpost/elevator, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"mX" = ( +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"vM" = ( +/obj/machinery/atmospherics/pipe/simple/general, +/turf/closed/indestructible/reinforced, +/area/hangar) + +(1,1,1) = {" +aZ +aZ +aZ +ag +ag +ag +ag +ag +ag +ag +ad +ag +ag +ag +ad +ag +ag +ag +ad +ag +ag +ag +ad +ag +ag +ag +ad +ag +ag +ag +ag +"} +(2,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aX +aX +aX +aX +aX +aX +aX +aX +aX +aX +aX +aX +aX +aX +aX +aX +aX +aX +aX +aX +aC +an +an +ag +"} +(3,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +ae +ae +ai +ae +ae +ae +ae +ai +ae +ae +ae +ae +ai +ae +ae +ae +ae +ai +ae +ae +aC +an +an +ag +"} +(4,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +aC +an +an +ag +"} +(5,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +af +aC +an +an +ag +"} +(6,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(7,1,1) = {" +aZ +aZ +aZ +ag +an +aG +aJ +al +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +al +aC +aG +an +ag +"} +(8,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(9,1,1) = {" +aZ +aZ +aZ +ag +an +an +aI +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aK +an +an +ag +"} +(10,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(11,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(12,1,1) = {" +aZ +aZ +aZ +ag +an +aG +aJ +al +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +al +aC +aG +an +ag +"} +(13,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(14,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(15,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(16,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(17,1,1) = {" +aZ +aZ +aZ +ag +an +aG +aJ +al +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +al +aC +aG +an +ag +"} +(18,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(19,1,1) = {" +aZ +aZ +aZ +ag +an +an +aI +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aK +an +an +ag +"} +(20,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(21,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(22,1,1) = {" +aZ +aZ +aZ +ag +an +aG +aJ +al +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +al +aC +aG +an +ag +"} +(23,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(24,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(25,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(26,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(27,1,1) = {" +aZ +aZ +aZ +ag +an +aG +aJ +al +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +al +aC +aG +an +ag +"} +(28,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(29,1,1) = {" +aZ +aZ +aZ +ag +an +an +aI +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aK +an +an +ag +"} +(30,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(31,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(32,1,1) = {" +aZ +aZ +aZ +ag +an +aG +aJ +al +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +al +aC +aG +an +ag +"} +(33,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(34,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(35,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(36,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(37,1,1) = {" +aZ +aZ +aZ +ag +an +aG +aJ +al +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +al +aC +aG +an +ag +"} +(38,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(39,1,1) = {" +aZ +aZ +aZ +ag +an +an +aI +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aK +an +an +ag +"} +(40,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(41,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(42,1,1) = {" +aZ +aZ +aZ +ag +an +aG +aJ +al +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +al +aC +aG +an +ag +"} +(43,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(44,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(45,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(46,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(47,1,1) = {" +aZ +aZ +aZ +ag +an +aG +aJ +al +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +al +aC +aG +an +ag +"} +(48,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(49,1,1) = {" +aZ +aZ +aZ +ag +an +an +aI +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aK +an +an +ag +"} +(50,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(51,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(52,1,1) = {" +aZ +aZ +aZ +ag +an +aG +aJ +al +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +al +aC +aG +an +ag +"} +(53,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(54,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(55,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(56,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(57,1,1) = {" +aZ +aZ +aZ +ag +an +aG +aJ +al +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +al +aC +aG +an +ag +"} +(58,1,1) = {" +aZ +aZ +aZ +ag +an +an +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(59,1,1) = {" +aZ +aZ +aZ +vM +ay +an +aI +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aK +an +an +ag +"} +(60,1,1) = {" +ag +ag +ag +ag +ag +as +aJ +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aC +an +an +ag +"} +(61,1,1) = {" +ag +mX +mX +jJ +aj +an +ap +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +am +an +an +ag +"} +(62,1,1) = {" +ag +mX +mX +mX +aj +aB +an +an +an +aD +an +an +an +an +aD +an +an +an +an +aD +an +an +an +an +aD +an +an +an +an +an +ag +"} +(63,1,1) = {" +ag +mX +mX +mX +aj +an +an +an +aP +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +an +aP +an +an +an +an +ag +"} +(64,1,1) = {" +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +"} diff --git a/_maps/outpost/hangar/indie_space_56x40.dmm b/_maps/outpost/hangar/indie_space_56x40.dmm new file mode 100644 index 000000000000..4adf317b8435 --- /dev/null +++ b/_maps/outpost/hangar/indie_space_56x40.dmm @@ -0,0 +1,3578 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ab" = ( +/obj/machinery/elevator_call_button{ + pixel_y = 25 + }, +/obj/effect/landmark/outpost/elevator_machine, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"ad" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"ai" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"aj" = ( +/obj/effect/landmark/outpost/hangar_dock, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"am" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"ao" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 1 + }, +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"ar" = ( +/obj/effect/landmark/outpost/hangar_numbers, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"at" = ( +/obj/machinery/atmospherics/components/unary/passive_vent{ + dir = 1 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"au" = ( +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aw" = ( +/obj/effect/turf_decal/arrows{ + dir = 1 + }, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"aA" = ( +/obj/machinery/door/airlock, +/obj/effect/landmark/outpost/elevator_machine, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aD" = ( +/obj/effect/turf_decal/arrows{ + dir = 4 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aE" = ( +/obj/structure/marker_beacon{ + picked_color = "Teal" + }, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"aG" = ( +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"aH" = ( +/turf/closed/indestructible/reinforced, +/area/hangar) +"aI" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ + dir = 1 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aK" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ + dir = 8 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aM" = ( +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"aN" = ( +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aO" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 8 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aP" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aT" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 1 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"aU" = ( +/obj/machinery/door/poddoor/multi_tile/four_tile_ver, +/turf/closed/indestructible/reinforced, +/area/hangar) +"aV" = ( +/turf/template_noop, +/area/template_noop) +"aZ" = ( +/obj/effect/turf_decal/arrows{ + dir = 1 + }, +/turf/open/floor/plasteel{ + planetary_atmos = 1 + }, +/area/hangar) +"ck" = ( +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"MN" = ( +/obj/machinery/atmospherics/pipe/simple/general, +/turf/closed/indestructible/reinforced, +/area/hangar) +"Qi" = ( +/obj/effect/landmark/outpost/elevator, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) + +(1,1,1) = {" +aV +aV +aV +aH +aH +aH +aH +aH +aH +aH +aU +aH +aH +aH +aU +aH +aH +aH +aU +aH +aH +aH +aU +aH +aH +aH +aU +aH +aH +aH +aU +aH +aH +aH +aU +aH +aH +aH +aU +aH +aH +aH +aU +aH +aH +aH +aU +aH +aH +aH +aH +"} +(2,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aT +aN +aN +aH +"} +(3,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aG +aG +aw +aG +aG +aG +aG +aw +aG +aG +aG +aG +aw +aG +aG +aG +aG +aw +aG +aG +aG +aG +aw +aG +aG +aG +aG +aw +aG +aG +aG +aG +aw +aG +aG +aG +aG +aw +aG +aG +aT +aN +aN +aH +"} +(4,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +aT +aN +aN +aH +"} +(5,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aj +aT +aN +aN +aH +"} +(6,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(7,1,1) = {" +aV +aV +aV +aH +aN +aD +aP +aE +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aE +aT +aD +aN +aH +"} +(8,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(9,1,1) = {" +aV +aV +aV +aH +aN +aN +am +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +ao +aN +aN +aH +"} +(10,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(11,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(12,1,1) = {" +aV +aV +aV +aH +aN +aD +aP +aE +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aE +aT +aD +aN +aH +"} +(13,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(14,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(15,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(16,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(17,1,1) = {" +aV +aV +aV +aH +aN +aD +aP +aE +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aE +aT +aD +aN +aH +"} +(18,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(19,1,1) = {" +aV +aV +aV +aH +aN +aN +am +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +ao +aN +aN +aH +"} +(20,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(21,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(22,1,1) = {" +aV +aV +aV +aH +aN +aD +aP +aE +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aE +aT +aD +aN +aH +"} +(23,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(24,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(25,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(26,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(27,1,1) = {" +aV +aV +aV +aH +aN +aD +aP +aE +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aE +aT +aD +aN +aH +"} +(28,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(29,1,1) = {" +aV +aV +aV +aH +aN +aN +am +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +ao +aN +aN +aH +"} +(30,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(31,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(32,1,1) = {" +aV +aV +aV +aH +aN +aD +aP +aE +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aE +aT +aD +aN +aH +"} +(33,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(34,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(35,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(36,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(37,1,1) = {" +aV +aV +aV +aH +aN +aD +aP +aE +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aE +aT +aD +aN +aH +"} +(38,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(39,1,1) = {" +aV +aV +aV +aH +aN +aN +am +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +ao +aN +aN +aH +"} +(40,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(41,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(42,1,1) = {" +aV +aV +aV +aH +aN +aD +aP +aE +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aE +aT +aD +aN +aH +"} +(43,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(44,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(45,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(46,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(47,1,1) = {" +aV +aV +aV +aH +aN +aD +aP +aE +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aE +aT +aD +aN +aH +"} +(48,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(49,1,1) = {" +aV +aV +aV +aH +aN +aN +am +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +ao +aN +aN +aH +"} +(50,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(51,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(52,1,1) = {" +aV +aV +aV +aH +aN +aD +aP +aE +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aE +aT +aD +aN +aH +"} +(53,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(54,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(55,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(56,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(57,1,1) = {" +aV +aV +aV +aH +aN +aD +aP +aE +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aE +aT +aD +aN +aH +"} +(58,1,1) = {" +aV +aV +aV +aH +aN +aN +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(59,1,1) = {" +aV +aV +aV +MN +at +aN +am +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +ao +aN +aN +aH +"} +(60,1,1) = {" +aH +aH +aH +aH +aH +ab +aP +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aM +aT +aN +aN +aH +"} +(61,1,1) = {" +aH +ck +ck +Qi +aA +aN +aK +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aI +aN +aN +aH +"} +(62,1,1) = {" +aH +ck +ck +ck +aA +ar +aN +aN +aN +aZ +aN +aN +aN +aN +aZ +aN +aN +aN +aN +aZ +aN +aN +aN +aN +aZ +aN +aN +aN +aN +aZ +aN +aN +aN +aN +aZ +aN +aN +aN +aN +aZ +aN +aN +aN +aN +aZ +aN +aN +aN +aN +aN +aH +"} +(63,1,1) = {" +aH +ck +ck +ck +aA +aN +aN +au +aN +aN +aN +aN +aN +aN +aN +aN +aN +au +aN +aN +aN +aN +aN +aN +aN +aN +au +au +aN +aN +aN +aN +aN +aN +aN +aN +au +aN +aN +aN +aN +aN +aN +aN +aN +aN +au +aN +aN +aN +aH +"} +(64,1,1) = {" +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +"} diff --git a/_maps/outpost/hangar/test_2_20x20.dmm b/_maps/outpost/hangar/nt_asteroid_20x20.dmm similarity index 65% rename from _maps/outpost/hangar/test_2_20x20.dmm rename to _maps/outpost/hangar/nt_asteroid_20x20.dmm index 544771691347..bbeb98d817ad 100644 --- a/_maps/outpost/hangar/test_2_20x20.dmm +++ b/_maps/outpost/hangar/nt_asteroid_20x20.dmm @@ -1,101 +1,186 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"af" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/general{ - dir = 4 +"ah" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + req_access_txt = "109" }, +/obj/structure/catwalk/over/plated_catwalk, /turf/open/floor/plating{ - icon_state = "panelscorched" + planetary_atmos = 1 }, /area/hangar) -"ar" = ( -/obj/machinery/door/airlock/highsecurity, -/turf/open/floor/plasteel/dark, +"an" = ( +/obj/structure/chair/comfy/black{ + dir = 1 + }, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"aD" = ( +/obj/effect/decal/fakelattice{ + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/machinery/light/directional/east, +/turf/open/floor/plasteel/elevatorshaft{ + color = "#808080"; + planetary_atmos = 1 + }, +/area/hangar) +"aN" = ( +/obj/effect/turf_decal/steeldecal/steel_decals_central2{ + pixel_y = 2 + }, +/obj/effect/turf_decal/steeldecal/steel_decals6, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) -"bg" = ( +"bi" = ( +/obj/effect/turf_decal/box/corners, +/turf/open/floor/plasteel/patterned/cargo_one{ + planetary_atmos = 1 + }, +/area/hangar) +"bv" = ( +/obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/garbage{ - pixel_x = -12; - pixel_y = -6 + pixel_y = -5; + pixel_x = -7 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/patterned/cargo_one, /area/hangar) -"bF" = ( +"cn" = ( +/obj/structure/catwalk/over/plated_catwalk, /obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/catwalk/over/plated_catwalk, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/hangar) -"bK" = ( -/obj/structure/frame/machine, -/obj/machinery/light/directional/south, -/turf/open/floor/plating, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/general, +/turf/open/floor/plating{ + icon_state = "panelscorched"; + planetary_atmos = 1 + }, /area/hangar) -"cx" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/rust, +"cB" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/table, +/obj/item/paper/pamphlet/gateway{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/item/paper/pamphlet/centcom{ + pixel_x = 8; + pixel_y = 1 + }, +/obj/item/reagent_containers/food/drinks/coffee{ + pixel_x = -9; + pixel_y = 3 + }, +/obj/structure/sign/poster/official/do_not_question{ + pixel_x = 32 + }, +/turf/open/floor/concrete/tiles{ + planetary_atmos = 1 + }, /area/hangar) -"cF" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw, -/turf/open/floor/plasteel/dark, +"cE" = ( +/obj/effect/landmark/outpost/hangar_dock, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, /area/hangar) -"cQ" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ - dir = 1 +"cY" = ( +/obj/structure/floodlight_frame{ + pixel_x = -9; + pixel_y = -1 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel/dark, /area/hangar) -"cS" = ( +"dg" = ( /obj/effect/turf_decal/arrows{ dir = 1 }, -/turf/open/floor/plasteel/tech, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, /area/hangar) -"dU" = ( -/obj/structure/catwalk/over/plated_catwalk, -/turf/open/floor/plating, +"dz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil/streak, +/obj/machinery/light/directional/west, +/turf/open/floor/plating{ + icon_state = "foam_plating"; + planetary_atmos = 1 + }, /area/hangar) -"ej" = ( +"dC" = ( /obj/effect/decal/fakelattice{ color = "#808080" }, /obj/effect/decal/cleanable/dirt{ color = "#808080" }, -/obj/effect/decal/cleanable/dirt{ - color = "#808080" - }, -/obj/effect/decal/cleanable/confetti{ - color = "#808080" - }, /turf/open/floor/plasteel/elevatorshaft{ - color = "#808080" + color = "#808080"; + planetary_atmos = 1 }, /area/hangar) -"ep" = ( -/obj/structure/chair/comfy/black{ - dir = 1 +"dQ" = ( +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/patterned/cargo_one{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/tech, /area/hangar) -"ew" = ( +"ea" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) -"eE" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/effect/turf_decal/industrial/traffic{ - dir = 8 +"ei" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/general{ + dir = 4 + }, +/turf/open/floor/plating{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/patterned/cargo_one, /area/hangar) -"eN" = ( -/obj/effect/turf_decal/siding/wood, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/concrete/tiles, +"ek" = ( +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating{ + icon_state = "panelscorched"; + planetary_atmos = 1 + }, /area/hangar) "eQ" = ( /obj/item/organ/tail/lizard{ @@ -109,62 +194,114 @@ }, /turf/open/floor/plating/asteroid/icerock/cracked, /area/hangar) -"eZ" = ( -/obj/effect/turf_decal/techfloor/corner{ - dir = 1 +"eV" = ( +/obj/effect/turf_decal/steeldecal/steel_decals9, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/obj/effect/turf_decal/steeldecal/steel_decals1, -/turf/open/floor/plasteel/dark, /area/hangar) -"fi" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ - dir = 1 +"fm" = ( +/obj/effect/decal/fakelattice{ + color = "#808080" + }, +/obj/item/trash/cheesie{ + color = "#808080"; + pixel_x = 21; + pixel_y = 1; + layer = 2.9 + }, +/obj/effect/decal/cleanable/glass{ + dir = 8; + pixel_y = 1; + color = "#808080" + }, +/obj/effect/decal/cleanable/oil{ + icon_state = "streak4"; + pixel_x = -13; + pixel_y = -11 + }, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/structure/railing{ + dir = 8; + layer = 4.1 + }, +/turf/open/floor/plasteel/elevatorshaft{ + color = "#808080"; + planetary_atmos = 1 }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel/dark, /area/hangar) "fp" = ( /obj/machinery/light/directional/south, /turf/open/floor/plating/asteroid/icerock/smooth, /area/hangar) -"ft" = ( -/obj/structure/railing{ - dir = 4; - layer = 4.1 +"fO" = ( +/obj/effect/turf_decal/techfloor{ + dir = 9 }, -/turf/open/floor/plasteel/stairs/right, -/area/hangar) -"fu" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/oil/streak, -/obj/machinery/light/directional/west, -/turf/open/floor/plating{ - icon_state = "foam_plating" +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, /area/hangar) -"fF" = ( -/obj/effect/turf_decal/industrial/traffic{ +"gQ" = ( +/obj/structure/railing/wood{ + layer = 3.1; dir = 4 }, -/obj/structure/frame/computer{ - dir = 8 +/obj/structure/flora/ausbushes/sparsegrass{ + pixel_y = -1; + pixel_x = -1 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/hangar) -"fQ" = ( -/obj/effect/turf_decal/siding/wood, /obj/effect/turf_decal/siding/wood{ - dir = 1 + dir = 4 + }, +/turf/open/floor/grass{ + planetary_atmos = 1 + }, +/area/hangar) +"hb" = ( +/obj/structure/fans/tiny/invisible, +/turf/open/floor/plating/asteroid/icerock, +/area/hangar) +"hf" = ( +/obj/structure/marker_beacon{ + picked_color = "Teal" + }, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"hq" = ( +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"hz" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/concrete/slab_1, +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) -"gf" = ( -/turf/open/floor/plasteel/patterned/cargo_one, +"hE" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/industrial/warning{ + dir = 6 + }, +/obj/effect/decal/cleanable/glass, +/obj/machinery/light/directional/east, +/turf/open/floor/plating{ + icon_state = "panelscorched"; + planetary_atmos = 1 + }, /area/hangar) -"gh" = ( +"hJ" = ( /obj/effect/decal/fakelattice{ color = "#808080" }, @@ -187,30 +324,34 @@ layer = 4.1 }, /turf/open/floor/plasteel/elevatorshaft{ - color = "#808080" + color = "#808080"; + planetary_atmos = 1 }, /area/hangar) -"gV" = ( -/obj/effect/turf_decal/techfloor{ - dir = 10 +"hL" = ( +/obj/machinery/door/airlock/highsecurity, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/dark, /area/hangar) -"ha" = ( -/obj/effect/turf_decal/industrial/loading, -/turf/open/floor/plasteel/dark, +"hP" = ( +/obj/structure/flora/rock{ + pixel_x = 9 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) -"hT" = ( -/obj/structure/railing/wood{ - layer = 3.1; - dir = 4 +"ia" = ( +/obj/structure/chair/greyscale{ + dir = 8 }, -/obj/structure/flora/ausbushes/fullgrass, -/obj/structure/flora/ausbushes/fernybush, -/obj/effect/turf_decal/siding/wood{ - dir = 4 +/obj/effect/decal/cleanable/dirt, +/obj/structure/fans/tiny/invisible, +/turf/open/floor/plating{ + icon_state = "panelscorched"; + planetary_atmos = 1 }, -/turf/open/floor/grass, /area/hangar) "iK" = ( /obj/structure/fence{ @@ -222,32 +363,76 @@ "iZ" = ( /turf/closed/indestructible/reinforced, /area/hangar) -"jc" = ( -/obj/structure/flora/ausbushes/ywflowers, -/turf/open/floor/grass, -/area/hangar) -"ji" = ( -/obj/effect/decal/fakelattice{ - color = "#808080" - }, -/obj/effect/decal/cleanable/dirt{ - color = "#808080" - }, -/obj/effect/decal/cleanable/dirt{ - color = "#808080" +"js" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ + dir = 1 }, -/obj/effect/decal/cleanable/dirt{ - color = "#808080" +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, +/area/hangar) +"jw" = ( +/obj/machinery/computer/cargo/express, /obj/structure/railing{ dir = 8; layer = 4.1 }, -/turf/open/floor/plasteel/elevatorshaft{ - color = "#808080" - }, +/obj/structure/sign/poster/official/moth/smokey{ + pixel_y = 32 + }, +/turf/open/floor/plating/catwalk_floor{ + planetary_atmos = 1 + }, +/area/hangar) +"jQ" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"ka" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"kX" = ( +/obj/machinery/computer/crew/syndie{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"lt" = ( +/obj/effect/turf_decal/industrial/loading, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"lZ" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/landmark/outpost/hangar_numbers, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, /area/hangar) -"jq" = ( +"mn" = ( /obj/effect/decal/fakelattice{ color = "#808080" }, @@ -262,113 +447,163 @@ color = "#808080" }, /turf/open/floor/plasteel/elevatorshaft{ - color = "#808080" + color = "#808080"; + planetary_atmos = 1 }, /area/hangar) -"jF" = ( -/obj/effect/turf_decal/industrial/traffic{ - dir = 4 - }, -/obj/structure/frame/machine, -/obj/structure/grille/broken, +"mw" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/rust, -/area/hangar) -"jP" = ( -/obj/effect/landmark/outpost/hangar_dock, -/turf/open/floor/plating, -/area/hangar) -"kA" = ( -/obj/effect/turf_decal/box/corners{ - dir = 4 +/turf/open/floor/plasteel/patterned/cargo_one{ + planetary_atmos = 1 }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plasteel/patterned/cargo_one, /area/hangar) -"kG" = ( -/obj/effect/turf_decal/techfloor{ - dir = 8 +"mz" = ( +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/obj/machinery/computer/card/minor/cmo{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, /area/hangar) -"lg" = ( -/obj/effect/landmark/outpost/elevator, -/turf/open/floor/plasteel/elevatorshaft, -/area/hangar) -"ln" = ( +"mV" = ( +/obj/structure/catwalk/over/plated_catwalk, /obj/structure/catwalk/over/plated_catwalk, /obj/machinery/atmospherics/pipe/simple/general{ - dir = 4 + dir = 5 }, /turf/open/floor/plating{ - icon_state = "platingdmg2" + icon_state = "panelscorched"; + planetary_atmos = 1 }, /area/hangar) -"lF" = ( -/obj/effect/turf_decal/techfloor{ - dir = 8 +"mW" = ( +/obj/effect/decal/fakelattice{ + color = "#808080" }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/hangar) -"md" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, -/obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel/dark, -/area/hangar) -"mu" = ( -/obj/structure/flora/ausbushes/sparsegrass{ - pixel_y = -12; - pixel_x = 9 +/obj/effect/decal/cleanable/sprayweb{ + color = "#808080" }, -/turf/open/floor/grass, -/area/hangar) -"mP" = ( -/obj/effect/turf_decal/steeldecal/steel_decals10, -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 4 +/obj/effect/decal/cleanable/sprayweb{ + color = "#808080" }, -/turf/open/floor/plasteel/tech, -/area/hangar) -"mR" = ( -/turf/open/floor/plating{ - icon_state = "panelscorched" +/turf/open/floor/plasteel/elevatorshaft{ + color = "#808080"; + planetary_atmos = 1 }, /area/hangar) "mY" = ( /turf/template_noop, /area/template_noop) -"nQ" = ( -/obj/structure/frame/machine, -/obj/effect/turf_decal/techfloor/corner{ - dir = 4 +"nt" = ( +/obj/effect/decal/fakelattice{ + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/confetti{ + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + color = "#808080"; + planetary_atmos = 1 + }, +/area/hangar) +"nw" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "asclepius_reception_lockdown"; + name = "Lockdown Shutters" + }, +/obj/item/kirbyplants{ + icon_state = "plant-03" + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"nP" = ( +/obj/structure/girder/displaced, +/obj/structure/grille/broken, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/dark, /area/hangar) "nY" = ( /obj/structure/fence/door, /obj/structure/fans/tiny/invisible, /turf/open/floor/plating/asteroid/icerock, /area/hangar) -"oe" = ( -/obj/structure/catwalk/over/plated_catwalk, +"oj" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/concrete/reinforced{ + planetary_atmos = 1 + }, +/area/hangar) +"ok" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 4 + }, +/obj/structure/frame/machine, +/obj/structure/grille/broken, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/industrial/warning{ - dir = 6 +/turf/open/floor/plating/rust{ + planetary_atmos = 1 }, -/obj/effect/decal/cleanable/glass, -/obj/machinery/light/directional/east, -/turf/open/floor/plating{ - icon_state = "panelscorched" +/area/hangar) +"oq" = ( +/obj/structure/flora/ausbushes/ywflowers, +/turf/open/floor/grass{ + planetary_atmos = 1 + }, +/area/hangar) +"oC" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ + dir = 8 + }, +/obj/effect/turf_decal/steeldecal/steel_decals6, +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"oL" = ( +/obj/structure/table/wood/reinforced, +/obj/item/table_bell{ + pixel_x = 9; + pixel_y = -1 + }, +/obj/item/cigbutt/cigarbutt{ + pixel_x = -5; + pixel_y = 10 + }, +/obj/item/dice/d2, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"oP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/wrapping{ + color = "#808080" + }, +/obj/structure/closet/crate, +/turf/open/floor/plasteel/patterned/cargo_one{ + planetary_atmos = 1 + }, +/area/hangar) +"pg" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/effect/turf_decal/industrial/traffic{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/cargo_one{ + planetary_atmos = 1 }, /area/hangar) -"os" = ( +"pV" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 }, @@ -382,224 +617,275 @@ pixel_y = 18 }, /obj/effect/landmark/outpost/elevator_machine, -/turf/open/floor/concrete/tiles, -/area/hangar) -"oV" = ( -/obj/structure/table/reinforced, -/obj/item/stack/packageWrap{ - pixel_y = 7 - }, -/obj/item/clipboard{ - pixel_x = -5; - pixel_y = 1 - }, -/obj/item/export_scanner{ - pixel_x = 4 - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" +/turf/open/floor/concrete/tiles{ + planetary_atmos = 1 }, /area/hangar) -"pX" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 4 - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" +"pW" = ( +/turf/open/floor/plasteel/stairs/medium{ + planetary_atmos = 1 }, /area/hangar) -"qe" = ( -/obj/effect/turf_decal/steeldecal/steel_decals_central2{ - pixel_y = 2 +"qa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/cargo_one{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/dark, /area/hangar) "qk" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/industrial/warning/corner, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 8 +/obj/structure/table/wood/reinforced, +/obj/item/modular_computer/laptop/preset/civilian{ + pixel_x = -1; + pixel_y = 3 }, -/obj/machinery/atmospherics/pipe/simple/general{ - dir = 10 +/obj/item/newspaper{ + pixel_x = 6; + pixel_y = 10 }, -/turf/open/floor/plating{ - icon_state = "panelscorched" +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 }, /area/hangar) -"qq" = ( +"ql" = ( +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"qt" = ( +/obj/machinery/door/airlock, +/obj/effect/landmark/outpost/elevator_machine, +/obj/structure/lattice/catwalk, +/turf/open/floor/engine, +/area/hangar) +"qJ" = ( /obj/effect/decal/fakelattice{ color = "#808080" }, -/obj/effect/decal/cleanable/greenglow{ +/obj/structure/railing{ + dir = 8; + layer = 4.1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 + }, +/obj/effect/decal/cleanable/glass{ + dir = 8; + pixel_y = -4; color = "#808080"; - pixel_x = -11; - pixel_y = 3 + pixel_x = 8 }, /obj/effect/decal/cleanable/dirt{ color = "#808080" }, -/turf/open/floor/plasteel/elevatorshaft{ +/obj/effect/decal/cleanable/dirt{ color = "#808080" }, +/turf/open/floor/plasteel/elevatorshaft{ + color = "#808080"; + planetary_atmos = 1 + }, /area/hangar) -"qR" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ - dir = 8 +"qM" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/general{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched"; + planetary_atmos = 1 }, +/area/hangar) +"qY" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel/dark, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) -"ri" = ( -/obj/structure/table/wood/reinforced, -/obj/item/flashlight/lamp/green{ - pixel_y = 13; - pixel_x = 8 +"re" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/industrial/warning{ + dir = 10 }, -/obj/item/paper_bin{ - pixel_x = -4; - pixel_y = 4 +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/industrial/warning{ + dir = 10 }, -/obj/item/pen{ - pixel_y = 4; - pixel_x = -4 +/obj/machinery/atmospherics/pipe/simple/general{ + dir = 4 }, -/obj/item/clipboard{ - pixel_x = -2; - pixel_y = 8 +/turf/open/floor/plating{ + icon_state = "panelscorched"; + planetary_atmos = 1 }, -/obj/item/phone{ - pixel_x = 8; - pixel_y = -4 +/area/hangar) +"rg" = ( +/obj/item/binoculars{ + pixel_y = 6; + pixel_x = -3 }, -/obj/item/storage/fancy/cigarettes/cigars/havana{ - pixel_y = -8; - pixel_x = 4 +/obj/structure/rack, +/obj/item/radio{ + pixel_y = 6; + pixel_x = 9 }, -/obj/item/lighter{ - pixel_y = -16; - pixel_x = 13 +/obj/effect/turf_decal/techfloor/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"rw" = ( +/obj/structure/frame/machine, +/obj/machinery/light/directional/south, +/turf/open/floor/plating{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/tech, /area/hangar) -"rM" = ( -/turf/open/floor/plasteel/dark, +"rP" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/general{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg2"; + planetary_atmos = 1 + }, /area/hangar) -"rN" = ( -/obj/structure/chair/greyscale{ - dir = 8 +"ss" = ( +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating{ + planetary_atmos = 1 }, +/area/hangar) +"tk" = ( /obj/effect/decal/cleanable/dirt, +/obj/structure/fans/tiny/invisible, /turf/open/floor/plating{ - icon_state = "panelscorched" + planetary_atmos = 1 }, /area/hangar) -"sc" = ( +"tm" = ( /obj/effect/decal/fakelattice{ color = "#808080" }, +/obj/structure/railing{ + dir = 8; + layer = 4.1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 + }, /obj/effect/decal/cleanable/dirt{ color = "#808080" }, -/obj/effect/decal/cleanable/dirt{ +/obj/effect/decal/cleanable/leaper_sludge{ color = "#808080" }, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/elevatorshaft{ +/obj/effect/decal/cleanable/sprayweb{ color = "#808080" }, -/area/hangar) -"sr" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - req_access_txt = "109" +/turf/open/floor/plasteel/elevatorshaft{ + color = "#808080"; + planetary_atmos = 1 }, -/obj/machinery/atmospherics/pipe/simple/general, -/turf/open/floor/plating, /area/hangar) -"sv" = ( -/obj/effect/decal/fakelattice{ - color = "#808080" +"ty" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "asclepius_reception_lockdown"; + name = "Lockdown Shutters" }, -/obj/effect/decal/cleanable/dirt{ - color = "#808080" +/obj/effect/turf_decal/industrial/warning{ + dir = 1 }, -/turf/open/floor/plasteel/elevatorshaft{ - color = "#808080" +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 }, /area/hangar) -"sI" = ( -/obj/structure/railing{ - dir = 4; - layer = 4.1 +"tz" = ( +/obj/effect/turf_decal/techfloor/corner{ + dir = 1 }, -/obj/structure/sign/warning/securearea{ - pixel_y = 32 +/obj/effect/turf_decal/steeldecal/steel_decals1, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/turf/open/floor/plating/catwalk_floor, /area/hangar) -"sN" = ( -/obj/structure/table, -/obj/item/toy/cards/deck{ - pixel_x = 3; - pixel_y = 3 +"tF" = ( +/obj/effect/turf_decal/arrows, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/asteroid/icerock, /area/hangar) -"sO" = ( +"tT" = ( /obj/effect/decal/fakelattice{ color = "#808080" }, -/obj/effect/decal/cleanable/sprayweb{ +/obj/effect/decal/cleanable/dirt{ color = "#808080" }, -/obj/effect/decal/cleanable/sprayweb{ +/obj/effect/decal/cleanable/dirt{ color = "#808080" }, -/turf/open/floor/plasteel/elevatorshaft{ +/obj/effect/decal/cleanable/dirt{ color = "#808080" }, +/obj/effect/decal/cleanable/wrapping{ + color = "#808080"; + pixel_y = 8 + }, +/turf/open/floor/plasteel/elevatorshaft{ + color = "#808080"; + planetary_atmos = 1 + }, /area/hangar) -"te" = ( -/obj/effect/turf_decal/box/corners{ - dir = 1 +"uL" = ( +/obj/structure/railing{ + dir = 4; + layer = 4.1 + }, +/turf/open/floor/plasteel/stairs/right{ + planetary_atmos = 1 }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/girder/displaced, -/turf/open/floor/plasteel/patterned/cargo_one, /area/hangar) -"ti" = ( -/obj/machinery/computer/crew/syndie{ +"uY" = ( +/obj/machinery/computer/communications{ dir = 4 }, /obj/effect/turf_decal/techfloor{ dir = 8 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/hangar) -"tN" = ( -/turf/open/floor/plasteel/stairs/medium, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) -"tR" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 +"vs" = ( +/obj/effect/turf_decal/steeldecal/steel_decals6, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/concrete/tiles, /area/hangar) -"up" = ( +"vE" = ( +/obj/machinery/door/poddoor/multi_tile/four_tile_ver, +/turf/closed/indestructible/reinforced, +/area/hangar) +"vW" = ( /obj/effect/decal/fakelattice{ color = "#808080" }, -/obj/item/trash/sosjerky{ - anchored = 1; - color = "#808080"; - pixel_x = 8; - pixel_y = 8 +/obj/structure/railing{ + dir = 8; + layer = 4.1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 }, /obj/effect/decal/cleanable/dirt{ color = "#808080" @@ -607,105 +893,159 @@ /obj/effect/decal/cleanable/vomit/old{ color = "#808080" }, -/obj/structure/railing{ - dir = 8; - layer = 4.1 +/obj/effect/decal/cleanable/sprayweb{ + color = "#808080" }, /turf/open/floor/plasteel/elevatorshaft{ - color = "#808080" + color = "#808080"; + planetary_atmos = 1 + }, +/area/hangar) +"wd" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, /area/hangar) -"uq" = ( -/turf/open/floor/plating, +"wu" = ( +/obj/structure/flora/ausbushes/sparsegrass{ + pixel_y = -12; + pixel_x = 9 + }, +/turf/open/floor/grass{ + planetary_atmos = 1 + }, /area/hangar) -"uM" = ( +"wI" = ( /obj/structure/catwalk/over/plated_catwalk, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/general{ + dir = 6 }, -/obj/effect/turf_decal/industrial/warning{ +/turf/open/floor/plating{ + icon_state = "platingdmg3"; + planetary_atmos = 1 + }, +/area/hangar) +"wN" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/concrete/tiles{ + planetary_atmos = 1 + }, +/area/hangar) +"yM" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/general, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"Al" = ( +/obj/structure/rack, +/obj/item/poster/random_official{ + pixel_x = 2; + pixel_y = 9 + }, +/obj/item/poster/random_official{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/item/poster/random_contraband{ + pixel_y = 8; + pixel_x = -1 + }, +/obj/item/destTagger{ + pixel_x = -5 + }, +/obj/effect/decal/cleanable/cobweb, /turf/open/floor/plating{ - icon_state = "panelscorched" + icon_state = "panelscorched"; + planetary_atmos = 1 }, /area/hangar) -"uU" = ( -/obj/structure/marker_beacon{ - picked_color = "Teal" +"Av" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw, +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/turf/open/floor/plating, /area/hangar) -"vl" = ( +"AK" = ( +/turf/open/floor/plating/asteroid/icerock/smooth, +/area/hangar) +"Bh" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) -"vo" = ( -/obj/effect/turf_decal/steeldecal/steel_decals_central2{ - pixel_y = 2 +"BM" = ( +/obj/effect/turf_decal/techfloor{ + dir = 5 }, -/obj/machinery/atmospherics/components/unary/passive_vent{ - dir = 1 +/obj/machinery/computer/camera_advanced{ + dir = 8 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/dark, -/area/hangar) -"vE" = ( -/obj/machinery/door/poddoor/multi_tile/four_tile_ver, -/turf/closed/indestructible/reinforced, /area/hangar) -"vR" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ +"Cb" = ( +/obj/effect/turf_decal/siding/wood{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/obj/structure/sign/warning/docking{ - pixel_x = -32 +/turf/open/floor/concrete/tiles{ + planetary_atmos = 1 }, -/obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel/dark, /area/hangar) -"vT" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/machinery/atmospherics/pipe/simple/general{ - dir = 4 +"Ci" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/structure/fermenting_barrel{ + pixel_y = 9 + }, +/obj/structure/fermenting_barrel{ + pixel_y = 1; + pixel_x = 8 + }, +/turf/open/floor/plasteel/patterned/cargo_one{ + planetary_atmos = 1 }, -/turf/open/floor/plating, /area/hangar) -"we" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ - dir = 1 +"Cw" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/patterned/cargo_one{ + planetary_atmos = 1 }, -/obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel/dark, /area/hangar) -"wY" = ( -/obj/effect/turf_decal/siding/wood, -/obj/structure/chair{ - dir = 1 +"Cx" = ( +/obj/effect/turf_decal/industrial/caution{ + pixel_y = 4 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/turf/open/floor/concrete/tiles, /area/hangar) -"xj" = ( -/obj/item/binoculars{ - pixel_y = 6; - pixel_x = -3 +"CA" = ( +/obj/effect/turf_decal/techfloor{ + dir = 6 }, -/obj/structure/rack, -/obj/item/radio{ - pixel_y = 6; - pixel_x = 9 +/obj/structure/table/reinforced{ + color = "#c1b6a5" }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 8 +/obj/machinery/fax, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/tech, /area/hangar) -"xk" = ( +"CR" = ( /obj/effect/decal/fakelattice{ color = "#808080" }, @@ -723,183 +1063,151 @@ layer = 4.1 }, /turf/open/floor/plasteel/elevatorshaft{ - color = "#808080" + color = "#808080"; + planetary_atmos = 1 }, /area/hangar) -"xu" = ( -/obj/effect/turf_decal/siding/wood, -/obj/structure/table, -/obj/item/paper/pamphlet/gateway{ - pixel_x = 3; - pixel_y = 4 - }, -/obj/item/paper/pamphlet/centcom{ - pixel_x = 8; - pixel_y = 1 - }, -/obj/item/reagent_containers/food/drinks/coffee{ - pixel_x = -9; - pixel_y = 3 +"CU" = ( +/obj/effect/turf_decal/steeldecal/steel_decals10, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 4 }, -/obj/structure/sign/poster/official/do_not_question{ - pixel_x = 32 +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 }, -/turf/open/floor/concrete/tiles, /area/hangar) -"xA" = ( -/obj/machinery/door/airlock, -/obj/effect/landmark/outpost/elevator_machine, -/turf/open/floor/plasteel, -/area/hangar) -"xN" = ( -/obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/siding/wood{ - dir = 1 +"Dj" = ( +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 }, -/turf/open/floor/concrete/slab_1, -/area/hangar) -"xP" = ( -/obj/effect/decal/cleanable/cobweb, -/obj/structure/filingcabinet/chestdrawer, -/turf/open/floor/plasteel/tech, -/area/hangar) -"yb" = ( -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/concrete/tiles, /area/hangar) -"zf" = ( +"Do" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/sign/poster/official/ian{ - pixel_y = -32 +/turf/open/floor/plating{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/dark, /area/hangar) -"zu" = ( -/obj/effect/turf_decal/steeldecal/steel_decals6, -/turf/open/floor/plasteel/dark, +"DD" = ( +/turf/closed/mineral/random/snow, /area/hangar) -"zO" = ( -/obj/structure/railing/wood{ - layer = 3.1; - dir = 4 +"DG" = ( +/obj/structure/railing{ + dir = 8; + layer = 4.1 }, -/obj/structure/flora/ausbushes/sparsegrass{ - pixel_y = -1; - pixel_x = -1 +/turf/open/floor/plasteel/stairs/left{ + planetary_atmos = 1 }, -/obj/structure/flora/ausbushes/stalkybush, -/obj/effect/turf_decal/siding/wood{ - dir = 4 +/area/hangar) +"DK" = ( +/obj/effect/turf_decal/techfloor{ + dir = 10 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/turf/open/floor/grass, /area/hangar) -"Ap" = ( -/obj/effect/turf_decal/steeldecal/steel_decals_central2{ - pixel_y = 2 +"Es" = ( +/obj/structure/grille, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"Ew" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/concrete/tiles{ + planetary_atmos = 1 }, -/obj/effect/turf_decal/steeldecal/steel_decals6, -/turf/open/floor/plasteel/dark, /area/hangar) -"Az" = ( +"ER" = ( +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 1 + }, /obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/glass, +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 1 + }, +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/glass, /obj/machinery/atmospherics/pipe/simple/general{ - dir = 6 + dir = 9 }, /turf/open/floor/plating{ - icon_state = "platingdmg3" + icon_state = "panelscorched"; + planetary_atmos = 1 }, /area/hangar) -"AK" = ( -/turf/open/floor/plating/asteroid/icerock/smooth, -/area/hangar) -"Bg" = ( -/obj/effect/turf_decal/techfloor{ - dir = 6 +"Fd" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ + dir = 1 }, -/obj/structure/table/reinforced{ - color = "#c1b6a5" +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/obj/machinery/fax, -/turf/open/floor/plasteel/dark, /area/hangar) -"Bo" = ( +"Fg" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/newscaster/directional/south, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/steeldecal/steel_decals_central2{ - pixel_y = 2 - }, -/turf/open/floor/plasteel/dark, -/area/hangar) -"BQ" = ( -/obj/effect/decal/fakelattice{ - color = "#808080" - }, -/obj/item/trash/energybar{ - color = "#808080"; - layer = 2; - pixel_x = -4; - pixel_y = 4 - }, -/obj/effect/decal/cleanable/xenoblood{ - color = "#808080" +/obj/effect/decal/cleanable/glass, +/obj/structure/chair{ + dir = 1 }, -/turf/open/floor/plasteel/elevatorshaft{ - color = "#808080" +/turf/open/floor/concrete/tiles{ + planetary_atmos = 1 }, /area/hangar) -"BZ" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/concrete/reinforced, -/area/hangar) -"Ce" = ( -/obj/structure/grille, -/turf/open/floor/plasteel/dark, -/area/hangar) -"CD" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +"Fy" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) -"CS" = ( +"GE" = ( /obj/effect/turf_decal/siding/wood, /obj/effect/turf_decal/siding/wood{ dir = 1 }, -/obj/effect/landmark/outpost/hangar_numbers, -/turf/open/floor/concrete/slab_1, -/area/hangar) -"CT" = ( -/obj/effect/decal/fakelattice{ - color = "#808080" +/obj/machinery/light/directional/east, +/obj/structure/chair{ + dir = 8 }, -/obj/structure/railing{ - dir = 8; - layer = 4.1 +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 +/area/hangar) +"Hi" = ( +/obj/effect/turf_decal/steeldecal/steel_decals3, +/obj/effect/turf_decal/steeldecal/steel_decals3{ + dir = 6 }, -/obj/effect/decal/cleanable/dirt{ - color = "#808080" +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/obj/effect/decal/cleanable/vomit/old{ - color = "#808080" +/area/hangar) +"Hv" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 8 }, -/obj/effect/decal/cleanable/sprayweb{ - color = "#808080" +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 }, -/turf/open/floor/plasteel/elevatorshaft{ - color = "#808080" +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/general, +/turf/open/floor/plating{ + icon_state = "panelscorched"; + planetary_atmos = 1 }, /area/hangar) -"DD" = ( -/turf/closed/mineral/random/snow, -/area/hangar) -"DT" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw, -/obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel/dark, -/area/hangar) -"Eg" = ( +"Hw" = ( /obj/structure/railing/wood{ layer = 3.1; dir = 4 @@ -908,194 +1216,123 @@ pixel_y = -1; pixel_x = -1 }, +/obj/structure/flora/ausbushes/stalkybush, /obj/effect/turf_decal/siding/wood{ dir = 4 }, -/turf/open/floor/grass, +/turf/open/floor/grass{ + planetary_atmos = 1 + }, +/area/hangar) +"Ij" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) -"Ej" = ( +"It" = ( /obj/effect/decal/fakelattice{ color = "#808080" }, -/obj/item/trash/cheesie{ +/obj/effect/decal/cleanable/greenglow{ color = "#808080"; - pixel_x = 21; - pixel_y = 1; - layer = 2.9 - }, -/obj/effect/decal/cleanable/glass{ - dir = 8; - pixel_y = 1; - color = "#808080" - }, -/obj/effect/decal/cleanable/oil{ - icon_state = "streak4"; - pixel_x = -13; - pixel_y = -11 + pixel_x = -11; + pixel_y = 3 }, /obj/effect/decal/cleanable/dirt{ color = "#808080" }, -/obj/structure/railing{ - dir = 8; - layer = 4.1 - }, /turf/open/floor/plasteel/elevatorshaft{ - color = "#808080" + color = "#808080"; + planetary_atmos = 1 }, /area/hangar) -"En" = ( +"IR" = ( +/obj/structure/railing/wood{ + layer = 3.1; + dir = 4 + }, +/obj/structure/flora/ausbushes/fullgrass, +/obj/structure/flora/ausbushes/fernybush, /obj/effect/turf_decal/siding/wood{ - dir = 1 + dir = 4 + }, +/turf/open/floor/grass{ + planetary_atmos = 1 }, -/turf/open/floor/concrete/tiles, -/area/hangar) -"Ev" = ( -/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, -/turf/open/floor/plating, /area/hangar) -"Fa" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ - dir = 1 +"Je" = ( +/turf/open/floor/plasteel/patterned/cargo_one{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/dark, /area/hangar) -"Gk" = ( -/turf/open/floor/plasteel/elevatorshaft, +"Jf" = ( +/turf/open/floor/plating/catwalk_floor{ + planetary_atmos = 1 + }, /area/hangar) -"Gq" = ( -/obj/effect/turf_decal/box/corners{ - dir = 8 +"Jt" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/tiles{ + planetary_atmos = 1 }, -/obj/structure/closet/crate/trashcart, -/turf/open/floor/plasteel/patterned/cargo_one, /area/hangar) -"GC" = ( -/obj/structure/table/wood/reinforced, -/obj/item/table_bell{ - pixel_x = 9; - pixel_y = -1 +"Ju" = ( +/obj/effect/decal/cleanable/garbage{ + pixel_x = -12; + pixel_y = -6 }, -/obj/item/cigbutt/cigarbutt{ - pixel_x = -5; - pixel_y = 10 +/turf/open/floor/plasteel/patterned/cargo_one{ + planetary_atmos = 1 }, -/obj/item/dice/d2, -/turf/open/floor/plasteel/tech, /area/hangar) -"GD" = ( -/obj/structure/table/reinforced{ - color = "#c1b6a5" - }, -/obj/item/desk_flag{ - pixel_x = -6; - pixel_y = 17 +"Jz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/fans/tiny/invisible, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/obj/item/megaphone/sec{ - name = "syndicate megaphone"; - pixel_x = 1; - pixel_y = 4 +/area/hangar) +"JN" = ( +/obj/effect/turf_decal/techfloor{ + dir = 8 }, -/obj/item/camera_bug{ - pixel_x = -5; - pixel_y = -3 +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, +/area/hangar) +"Kd" = ( /obj/effect/turf_decal/techfloor{ dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/hangar) -"GK" = ( -/obj/structure/rack, -/obj/item/poster/random_official{ - pixel_x = 2; - pixel_y = 9 +/turf/open/floor/plasteel/tech/grid{ + planetary_atmos = 1 }, -/obj/item/poster/random_official{ - pixel_x = -2; +/area/hangar) +"Kf" = ( +/obj/effect/turf_decal/industrial/caution{ pixel_y = 4 }, -/obj/item/poster/random_contraband{ - pixel_y = 8; - pixel_x = -1 - }, -/obj/item/destTagger{ - pixel_x = -5 - }, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plating{ - icon_state = "panelscorched" +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, /area/hangar) -"GL" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/warning{ +"Ki" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/effect/turf_decal/industrial/traffic{ dir = 8 }, -/turf/open/floor/plasteel/tech, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/patterned/cargo_one{ + planetary_atmos = 1 + }, /area/hangar) -"GX" = ( -/obj/machinery/computer/cargo/express, -/obj/structure/railing{ - dir = 8; - layer = 4.1 - }, -/obj/structure/sign/poster/official/moth/smokey{ - pixel_y = 32 - }, -/turf/open/floor/plating/catwalk_floor, -/area/hangar) -"Hp" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/hangar) -"Hy" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/general, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/hangar) -"HT" = ( -/turf/open/floor/plating/catwalk_floor, -/area/hangar) -"HV" = ( -/obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel/tech, -/area/hangar) -"Iz" = ( -/obj/structure/table/wood/reinforced, -/obj/item/modular_computer/laptop/preset/civilian{ - pixel_x = -1; - pixel_y = 3 - }, -/obj/item/newspaper{ - pixel_x = 6; - pixel_y = 10 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech, -/area/hangar) -"IZ" = ( -/obj/structure/chair/sofa/right, -/obj/item/reagent_containers/food/drinks/mug{ - pixel_x = -5; - pixel_y = -3 - }, -/obj/item/toy/plush/hornet{ - pixel_x = 6; - pixel_y = 3 - }, -/obj/structure/sign/poster/official/nanotrasen_logo{ - pixel_y = 32 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/concrete/reinforced, -/area/hangar) -"Jp" = ( +"Kl" = ( /obj/effect/decal/fakelattice{ color = "#808080" }, @@ -1108,85 +1345,55 @@ /obj/effect/decal/cleanable/dirt{ color = "#808080" }, -/obj/effect/decal/cleanable/wrapping{ - color = "#808080"; - pixel_y = 8 +/obj/structure/railing{ + dir = 8; + layer = 4.1 }, /turf/open/floor/plasteel/elevatorshaft{ - color = "#808080" - }, -/area/hangar) -"JW" = ( -/obj/effect/turf_decal/steeldecal/steel_decals3, -/obj/effect/turf_decal/steeldecal/steel_decals3{ - dir = 6 - }, -/turf/open/floor/plasteel/dark, -/area/hangar) -"Kv" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ - dir = 8 + color = "#808080"; + planetary_atmos = 1 }, -/obj/effect/turf_decal/steeldecal/steel_decals6, -/obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel/dark, /area/hangar) "KA" = ( /obj/structure/flora/rock/pile/icy, /turf/open/floor/plating/asteroid/icerock/cracked, /area/hangar) -"KO" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ - dir = 8 +"KU" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + req_access_txt = "109" }, -/turf/open/floor/plasteel/dark, -/area/hangar) -"Lb" = ( -/obj/structure/railing{ - dir = 8; - layer = 4.1 +/obj/machinery/door/airlock/maintenance_hatch{ + req_access_txt = "109" }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/catwalk_floor, -/area/hangar) -"LF" = ( -/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/general, /turf/open/floor/plating{ - icon_state = "foam_plating" + planetary_atmos = 1 }, /area/hangar) -"LI" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/industrial/warning{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/general{ - dir = 4 +"LB" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + volume = 10000000 }, +/obj/structure/catwalk/over/plated_catwalk, /turf/open/floor/plating{ - icon_state = "panelscorched" + icon_state = "panelscorched"; + planetary_atmos = 1 }, /area/hangar) -"LM" = ( -/obj/effect/turf_decal/techfloor{ - dir = 9 +"LN" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/hangar) -"LO" = ( -/obj/effect/turf_decal/industrial/caution{ - pixel_y = 4 +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, /area/hangar) -"Mf" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/warning{ - dir = 8 +"Mb" = ( +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/tech/grid, /area/hangar) "Mm" = ( /obj/item/flashlight/lantern{ @@ -1195,157 +1402,298 @@ /obj/machinery/light/directional/east, /turf/open/floor/plating/asteroid/icerock, /area/hangar) -"MJ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/garbage{ - pixel_y = -5; - pixel_x = -7 +"Mv" = ( +/obj/effect/turf_decal/steeldecal/steel_decals2, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/dark, /area/hangar) -"MR" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ - dir = 8 +"MZ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, +/area/hangar) +"Nc" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plating/rust{ + planetary_atmos = 1 + }, /area/hangar) -"Np" = ( +"Nd" = ( +/obj/effect/turf_decal/steeldecal/steel_decals_central2{ + pixel_y = 2 + }, +/obj/effect/turf_decal/steeldecal/steel_decals_central2{ + pixel_y = 2 + }, +/obj/machinery/atmospherics/components/unary/passive_vent{ + dir = 1 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"Ni" = ( +/obj/structure/closet/crate/bin, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/patterned/cargo_one, +/obj/machinery/light/directional/north, +/turf/open/floor/concrete/reinforced{ + planetary_atmos = 1 + }, +/area/hangar) +"Nv" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ + dir = 1 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "NB" = ( /turf/open/floor/plating/asteroid/icerock, /area/hangar) -"NN" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - req_access_txt = "109" +"OH" = ( +/obj/structure/frame/machine, +/obj/effect/turf_decal/techfloor/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/obj/structure/catwalk/over/plated_catwalk, -/turf/open/floor/plating, /area/hangar) -"NR" = ( +"OW" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 4 + }, +/obj/structure/frame/computer{ + dir = 8 + }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, /area/hangar) -"Od" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw, +"Ph" = ( +/obj/effect/landmark/outpost/elevator, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"Pn" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/steeldecal/steel_decals_central2{ + pixel_y = 2 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) -"OF" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, -/turf/open/floor/plasteel/dark, +"Py" = ( +/obj/structure/table/wood/reinforced, +/obj/item/flashlight/lamp/green{ + pixel_y = 13; + pixel_x = 8 + }, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/pen{ + pixel_y = 4; + pixel_x = -4 + }, +/obj/item/clipboard{ + pixel_x = -2; + pixel_y = 8 + }, +/obj/item/phone{ + pixel_x = 8; + pixel_y = -4 + }, +/obj/item/storage/fancy/cigarettes/cigars/havana{ + pixel_y = -8; + pixel_x = 4 + }, +/obj/item/lighter{ + pixel_y = -16; + pixel_x = 13 + }, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, /area/hangar) -"OV" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/machinery/atmospherics/pipe/simple/general{ - dir = 5 +"PG" = ( +/obj/effect/turf_decal/box/corners{ + dir = 1 }, -/turf/open/floor/plating{ - icon_state = "panelscorched" +/obj/effect/decal/cleanable/dirt, +/obj/structure/girder/displaced, +/turf/open/floor/plasteel/patterned/cargo_one{ + planetary_atmos = 1 }, /area/hangar) -"Pc" = ( -/obj/effect/turf_decal/steeldecal/steel_decals2, -/turf/open/floor/plasteel/dark, +"PN" = ( +/obj/structure/chair/sofa/left, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/reinforced{ + planetary_atmos = 1 + }, /area/hangar) -"Pt" = ( -/obj/machinery/atmospherics/components/unary/tank/air{ - volume = 10000000 +"QM" = ( +/obj/structure/flora/rock/icy{ + pixel_x = 5; + pixel_y = 5 }, -/obj/structure/catwalk/over/plated_catwalk, -/turf/open/floor/plating{ - icon_state = "panelscorched" +/turf/open/floor/plating/asteroid/icerock, +/area/hangar) +"Ra" = ( +/obj/structure/railing{ + dir = 4; + layer = 4.1 + }, +/obj/structure/sign/warning/securearea{ + pixel_y = 32 + }, +/turf/open/floor/plating/catwalk_floor{ + planetary_atmos = 1 }, /area/hangar) -"Pz" = ( -/obj/effect/turf_decal/industrial/warning/corner{ +"RX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/freezer, +/obj/machinery/light/directional/north, +/turf/open/floor/plating/rust{ + planetary_atmos = 1 + }, +/area/hangar) +"SH" = ( +/obj/effect/turf_decal/siding/wood{ dir = 1 }, -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/glass, -/obj/machinery/atmospherics/pipe/simple/general{ - dir = 9 +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/concrete/tiles{ + planetary_atmos = 1 + }, +/area/hangar) +"Tj" = ( +/obj/effect/decal/fakelattice{ + color = "#808080" + }, +/obj/item/trash/energybar{ + color = "#808080"; + layer = 2; + pixel_x = -4; + pixel_y = 4 + }, +/obj/effect/decal/cleanable/xenoblood{ + color = "#808080" + }, +/turf/open/floor/plasteel/elevatorshaft{ + color = "#808080"; + planetary_atmos = 1 + }, +/area/hangar) +"To" = ( +/obj/structure/table/reinforced, +/obj/item/stack/packageWrap{ + pixel_y = 7 + }, +/obj/item/clipboard{ + pixel_x = -5; + pixel_y = 1 + }, +/obj/item/export_scanner{ + pixel_x = 4 }, /turf/open/floor/plating{ - icon_state = "panelscorched" + icon_state = "panelscorched"; + planetary_atmos = 1 }, /area/hangar) -"PE" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/structure/fermenting_barrel{ - pixel_y = 9 +"Tp" = ( +/obj/structure/mopbucket, +/obj/item/mop{ + pixel_y = 4; + pixel_x = -9 }, -/obj/structure/fermenting_barrel{ - pixel_y = 1; - pixel_x = 8 +/obj/item/toy/plush/knight{ + pixel_y = 17; + pixel_x = 4 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/patterned/cargo_one, /area/hangar) -"PF" = ( -/obj/effect/turf_decal/industrial/caution{ +"Tr" = ( +/obj/effect/decal/fakelattice{ + color = "#808080" + }, +/obj/item/trash/sosjerky{ + anchored = 1; + color = "#808080"; + pixel_x = 8; + pixel_y = 8 + }, +/obj/effect/decal/cleanable/dirt{ + color = "#808080" + }, +/obj/effect/decal/cleanable/vomit/old{ + color = "#808080" + }, +/obj/structure/railing{ + dir = 8; + layer = 4.1 + }, +/turf/open/floor/plasteel/elevatorshaft{ + color = "#808080"; + planetary_atmos = 1 + }, +/area/hangar) +"Tw" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"TV" = ( +/obj/structure/table/reinforced{ + color = "#c1b6a5" + }, +/obj/item/desk_flag{ + pixel_x = -6; + pixel_y = 17 + }, +/obj/item/megaphone/sec{ + name = "syndicate megaphone"; + pixel_x = 1; pixel_y = 4 }, -/turf/open/floor/plasteel/dark, -/area/hangar) -"Qn" = ( -/obj/structure/mopbucket, -/obj/item/mop{ - pixel_y = 4; - pixel_x = -9 +/obj/item/camera_bug{ + pixel_x = -5; + pixel_y = -3 }, -/obj/item/toy/plush/knight{ - pixel_y = 17; - pixel_x = 4 +/obj/effect/turf_decal/techfloor{ + dir = 4 }, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/dark, -/area/hangar) -"QM" = ( -/obj/structure/flora/rock/icy{ - pixel_x = 5; - pixel_y = 5 +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/turf/open/floor/plating/asteroid/icerock, /area/hangar) -"QS" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/wrapping{ - color = "#808080" +"UG" = ( +/obj/effect/turf_decal/steeldecal/steel_decals_central2{ + pixel_y = 2 }, -/obj/structure/closet/crate, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/hangar) -"QX" = ( -/obj/item/chair{ - pixel_x = 6; - pixel_y = -4 +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/turf/open/floor/plating/asteroid/icerock, /area/hangar) -"Rm" = ( -/obj/effect/decal/cleanable/oil, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/hangar) -"RY" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate/freezer, -/obj/machinery/light/directional/north, -/turf/open/floor/plating/rust, -/area/hangar) -"ST" = ( -/obj/effect/turf_decal/arrows, -/turf/open/floor/plasteel/tech, -/area/hangar) -"SW" = ( -/obj/structure/girder/displaced, -/obj/structure/grille/broken, -/turf/open/floor/plasteel/dark, -/area/hangar) -"Tb" = ( +"UH" = ( /obj/structure/table/reinforced, /obj/item/stamp{ pixel_x = -8; @@ -1365,156 +1713,124 @@ }, /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/machinery/light/directional/north, -/turf/open/floor/plating/catwalk_floor, -/area/hangar) -"TK" = ( -/obj/structure/flora/rock{ - pixel_x = 9 +/turf/open/floor/plating/catwalk_floor{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/dark, /area/hangar) -"TP" = ( -/obj/effect/turf_decal/siding/wood, -/obj/machinery/newscaster/directional/south, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/glass, -/obj/structure/chair{ - dir = 1 +"UJ" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/turf/open/floor/concrete/tiles, /area/hangar) -"Ug" = ( -/obj/structure/railing{ - dir = 8; - layer = 4.1 +"UO" = ( +/turf/open/floor/plating{ + icon_state = "panelscorched"; + planetary_atmos = 1 }, -/turf/open/floor/plasteel/stairs/left, /area/hangar) -"Uh" = ( -/obj/effect/decal/fakelattice{ - color = "#808080" - }, -/obj/structure/railing{ - dir = 8; - layer = 4.1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ +"UX" = ( +/obj/effect/turf_decal/industrial/warning{ dir = 8 }, -/obj/effect/decal/cleanable/dirt{ - color = "#808080" +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 }, -/obj/effect/decal/cleanable/leaper_sludge{ - color = "#808080" +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/pipe/simple/general, +/turf/open/floor/plating{ + planetary_atmos = 1 }, -/obj/effect/decal/cleanable/sprayweb{ - color = "#808080" +/area/hangar) +"VA" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ + dir = 8 }, -/turf/open/floor/plasteel/elevatorshaft{ - color = "#808080" +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, /area/hangar) -"UC" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "asclepius_reception_lockdown"; - name = "Lockdown Shutters" - }, -/obj/item/kirbyplants{ - icon_state = "plant-03" +"VO" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 4 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/obj/structure/grille, +/turf/open/floor/plating{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/tech, /area/hangar) -"UM" = ( -/obj/structure/closet/crate/bin, +"VS" = ( +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/machinery/computer/card/minor/cmo{ + dir = 4 + }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/north, -/turf/open/floor/concrete/reinforced, -/area/hangar) -"Vk" = ( -/obj/effect/turf_decal/box/corners, -/turf/open/floor/plasteel/patterned/cargo_one, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) -"VD" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "asclepius_reception_lockdown"; - name = "Lockdown Shutters" +"WE" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ + dir = 8 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/tech, /area/hangar) -"Wz" = ( -/obj/machinery/computer/communications{ - dir = 4 +"WJ" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ + dir = 1 }, -/obj/effect/turf_decal/techfloor{ - dir = 8 +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/docking{ + pixel_x = -32 + }, +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/dark, -/area/hangar) -"WI" = ( -/obj/effect/turf_decal/steeldecal/steel_decals9, -/turf/open/floor/plasteel/dark, /area/hangar) -"WN" = ( -/obj/structure/floodlight_frame{ - pixel_x = -9; - pixel_y = -1 +"WL" = ( +/obj/structure/table, +/obj/item/toy/cards/deck{ + pixel_x = 3; + pixel_y = 3 }, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/dark, +/obj/effect/decal/cleanable/dirt, +/obj/structure/fans/tiny/invisible, +/turf/open/floor/plating/asteroid/icerock, /area/hangar) -"WX" = ( +"Xs" = ( +/obj/effect/turf_decal/siding/wood, /obj/effect/turf_decal/siding/wood{ dir = 1 }, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/structure/chair{ - dir = 8 +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 }, -/turf/open/floor/concrete/tiles, -/area/hangar) -"Xg" = ( -/turf/open/floor/plasteel/tech, /area/hangar) -"Xx" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, +"Xv" = ( /obj/structure/catwalk/over/plated_catwalk, -/obj/effect/decal/cleanable/blood/old, -/obj/machinery/atmospherics/pipe/simple/general, -/turf/open/floor/plating, -/area/hangar) -"XA" = ( -/obj/effect/decal/fakelattice{ - color = "#808080" +/turf/open/floor/plating{ + icon_state = "foam_plating"; + planetary_atmos = 1 }, +/area/hangar) +"XB" = ( /obj/structure/railing{ dir = 8; layer = 4.1 }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 - }, -/obj/effect/decal/cleanable/glass{ - dir = 8; - pixel_y = -4; - color = "#808080"; - pixel_x = 8 - }, -/obj/effect/decal/cleanable/dirt{ - color = "#808080" - }, -/obj/effect/decal/cleanable/dirt{ - color = "#808080" - }, -/turf/open/floor/plasteel/elevatorshaft{ - color = "#808080" +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/catwalk_floor{ + planetary_atmos = 1 }, /area/hangar) "XL" = ( @@ -1536,66 +1852,101 @@ }, /turf/open/floor/plating/asteroid/icerock, /area/hangar) -"XX" = ( -/obj/effect/turf_decal/industrial/traffic{ - dir = 4 +"XN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/official/ian{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/obj/structure/grille, -/turf/open/floor/plating, /area/hangar) -"Yr" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ +"XQ" = ( +/obj/effect/turf_decal/box/corners{ dir = 8 }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel/dark, +/obj/structure/closet/crate/trashcart, +/turf/open/floor/plasteel/patterned/cargo_one{ + planetary_atmos = 1 + }, /area/hangar) -"Yv" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ - dir = 8 +"XT" = ( +/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, +/turf/open/floor/plating{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/dark, /area/hangar) -"YU" = ( -/obj/structure/chair/sofa/left, +"XW" = ( +/obj/structure/catwalk/over/plated_catwalk, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/concrete/reinforced, -/area/hangar) -"Za" = ( -/obj/effect/turf_decal/techfloor{ - dir = 4 +/obj/effect/turf_decal/industrial/warning/corner, +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 8 + }, +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/industrial/warning/corner, +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/general{ + dir = 10 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched"; + planetary_atmos = 1 }, -/turf/open/floor/plasteel/tech/grid, /area/hangar) -"Zp" = ( -/obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/siding/wood{ - dir = 1 +"YH" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/warning{ + dir = 8 }, -/obj/machinery/light/directional/east, -/obj/structure/chair{ +/turf/open/floor/plasteel/tech/grid{ + planetary_atmos = 1 + }, +/area/hangar) +"Zb" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/warning{ dir = 8 }, -/turf/open/floor/concrete/slab_1, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, /area/hangar) -"Zy" = ( -/obj/effect/turf_decal/techfloor{ - dir = 5 +"Zq" = ( +/obj/structure/chair/sofa/right, +/obj/item/reagent_containers/food/drinks/mug{ + pixel_x = -5; + pixel_y = -3 }, -/obj/machinery/computer/camera_advanced{ - dir = 8 +/obj/item/toy/plush/hornet{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/structure/sign/poster/official/nanotrasen_logo{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/reinforced{ + planetary_atmos = 1 }, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/dark, /area/hangar) -"ZV" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/effect/turf_decal/industrial/traffic{ - dir = 8 +"Zu" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/chair{ + dir = 1 }, -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel/patterned/cargo_one, +/turf/open/floor/concrete/tiles{ + planetary_atmos = 1 + }, +/area/hangar) +"ZL" = ( +/obj/item/chair{ + pixel_x = 6; + pixel_y = -4 + }, +/obj/structure/fans/tiny/invisible, +/turf/open/floor/plating/asteroid/icerock, /area/hangar) (1,1,1) = {" @@ -1651,26 +2002,26 @@ iZ DD DD DD -Mf -GL -GL -GL -GL -GL -GL -GL -GL -GL -GL -GL -GL -GL -GL -GL -GL -GL -GL -Mf +YH +Zb +Zb +Zb +Zb +Zb +Zb +Zb +Zb +Zb +Zb +Zb +Zb +Zb +Zb +Zb +Zb +Zb +Zb +YH iZ iZ iZ @@ -1691,29 +2042,29 @@ iZ iZ DD DD -DT -Za -Xg -cS -HV -Xg -Xg -Xg -cS -HV -Xg -Xg -HV -ST -Xg -Xg -Xg -HV -ST -Xg -Za -vR -MJ +Av +Kd +Mb +dg +ql +Mb +Mb +Mb +dg +ql +Mb +Mb +ql +tF +Mb +Mb +Mb +ql +tF +Mb +Kd +WJ +bv DD iZ iZ @@ -1732,29 +2083,29 @@ iZ DD DD DD -cF -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -jP -Fa -NR +wd +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +cE +Nv +MZ DD DD DD @@ -1772,30 +2123,30 @@ iZ iZ iZ DD -nQ -cF -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -Fa -Qn +OH +wd +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +Nv +Tp iZ DD DD @@ -1810,33 +2161,33 @@ mY mY mY iZ -GK -fu -LF -Ap -Od -uU -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uU -Fa -zf +Al +dz +Xv +aN +Ij +hf +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hf +Nv +XN iZ iZ DD @@ -1851,33 +2202,33 @@ iZ iZ iZ iZ -oV -mR -Az -vo -Od -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -vl -NR +To +UO +wI +Nd +Ij +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +ka +MZ iK KA AK @@ -1888,37 +2239,37 @@ iZ (8,1,1) = {" mY iZ -Pt -OV -iZ -GX -Lb -Ug -vT -Bo -cF -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -vl -zu +LB +mV +iZ +jw +XB +DG +ei +Pn +wd +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +ka +vs iK AK AK @@ -1930,36 +2281,36 @@ iZ iZ iZ iZ -pX -iZ -Tb -HT -tN -ln -Bo -DT -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -we -rM +ek +iZ +UH +Jf +pW +rP +Pn +Av +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +js +mz iK NB fp @@ -1969,38 +2320,38 @@ iZ "} (10,1,1) = {" iZ -Gk -Gk -LI -iZ -iZ -sI -ft -af -Bo -Od -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -vl -rM +Dj +Dj +re +iZ +iZ +Ra +uL +qM +Pn +Ij +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +ka +mz nY NB NB @@ -2010,38 +2361,38 @@ iZ "} (11,1,1) = {" iZ -Gk -Gk -qk -uM -sr -Xx -Hy -Pz -qe -Od -uU -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uU -Fa -NR +Dj +Dj +XW +cn +KU +UX +Hv +ER +UG +Ij +hf +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hf +Nv +MZ iK NB NB @@ -2051,38 +2402,38 @@ iZ "} (12,1,1) = {" iZ -Gk -Gk -oe -DD -DD -XX -fF -jF -eZ -Od -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -vl -NR +Dj +Dj +hE +DD +DD +VO +OW +ok +tz +Ij +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +ka +MZ iK NB NB @@ -2097,33 +2448,33 @@ iZ iZ DD DD -te -gf -Gq -PF -Od -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -vl -rM +PG +Je +XQ +Cx +Ij +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +ka +mz iK NB NB @@ -2138,33 +2489,33 @@ mY iZ DD iZ -RY -Np -bg -ha -DT -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -Fa -rM +RX +mw +Ju +lt +Av +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +Nv +mz DD QM Mm @@ -2179,33 +2530,33 @@ mY iZ DD DD -gf -Np -Np -ha -cF -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -we -Ce +Je +mw +mw +lt +wd +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +js +Es DD DD iZ @@ -2220,33 +2571,33 @@ mY iZ DD DD -Rm -bF -cx -ha -cF -uU -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uU -Fa -Ce +Cw +qa +Nc +lt +wd +hf +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hf +Nv +Es DD DD DD @@ -2261,35 +2612,35 @@ mY iZ DD DD -kA -QS -Vk -LO -Od -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -Fa -NR -NB -QX +dQ +oP +bi +Kf +Ij +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +Nv +Jz +hb +ZL DD DD DD @@ -2303,34 +2654,34 @@ iZ DD DD DD -ZV -eE -NR -cF -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -vl -CD -Hp -sN +Ki +pg +MZ +wd +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +ka +qY +tk +WL DD DD DD @@ -2345,33 +2696,33 @@ DD DD DD DD -PE -NR -cF -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -Fa -SW -Hp -rN +Ci +MZ +wd +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +Nv +nP +Do +ia DD DD DD @@ -2387,31 +2738,31 @@ DD DD DD DD -NR -OF -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -vl -Ce -bK +MZ +UJ +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +ka +Es +rw iZ DD DD @@ -2425,33 +2776,33 @@ iZ DD DD DD -mu -jc +wu +oq DD -rM -md -uU -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uU -fi -Ce +mz +Fy +hf +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hf +Bh +Es DD DD DD @@ -2465,34 +2816,34 @@ iZ iZ DD DD -hT -zO -Eg +IR +Hw +gQ DD -Pc -OF -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -vl -WN +Mv +UJ +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +ka +cY iZ DD DD @@ -2505,35 +2856,35 @@ mY iZ DD DD -BZ -tR -xN -yb -VD -rM -OF -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -uq -vl -TK +oj +Cb +Xs +Ew +ty +mz +UJ +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +hq +ka +hP DD DD DD @@ -2546,34 +2897,34 @@ mY iZ DD iZ -UM -En -xN -eN -VD -Xg -MR -Yv -Yv -Yv -Yr -ew -ew -ew -qR -ew -KO -KO -ew -qR -KO -KO -KO -Kv -KO -KO -ew -cQ +Ni +wN +Xs +Jt +ty +Mb +VA +yM +yM +yM +hz +ea +ea +ea +jQ +ea +WE +WE +ea +jQ +WE +WE +WE +oC +WE +WE +ea +Fd DD DD DD @@ -2587,33 +2938,33 @@ mY iZ DD iZ -IZ -En -fQ -eN -VD -Xg -Xg -rM -WI -rM -rM -rM -rM -rM -rM -rM -CD -NR -JW -rM -zu -rM -NR -rM -NR -NR -rM +Zq +wN +LN +Jt +ty +Mb +Mb +mz +eV +mz +mz +mz +mz +mz +mz +mz +qY +MZ +Hi +mz +vs +mz +MZ +mz +MZ +MZ +mz iZ DD DD @@ -2628,33 +2979,33 @@ mY iZ DD iZ -YU -En -xN -yb -VD -mP +PN +wN +Xs +Ew +ty +CU DD iZ DD DD iZ -CT -Uh -XA -jq -ji -Ej -gh -up -xk +vW +tm +qJ +mn +Kl +fm +hJ +Tr +CR DD DD DD DD DD DD -NN +ah DD DD DD @@ -2670,10 +3021,10 @@ iZ iZ iZ iZ -os -xN -yb -UC +pV +Xs +Ew +nw DD DD DD @@ -2681,13 +3032,13 @@ DD DD iZ iZ -sO -BQ -Jp -sv -ej -sc -qq +mW +Tj +tT +dC +nt +aD +It DD DD DD @@ -2695,7 +3046,7 @@ DD DD DD DD -dU +ss DD DD DD @@ -2707,13 +3058,13 @@ mY "} (28,1,1) = {" iZ -Gk -Gk -lg -xA -tR -fQ -yb +Dj +Dj +Ph +qt +Cb +LN +Ew DD DD DD @@ -2723,10 +3074,10 @@ DD DD iZ iZ -Ev -Ev -Ev -Ev +XT +XT +XT +XT iZ iZ DD @@ -2735,9 +3086,9 @@ NB eQ DD DD -Gk -Gk -Gk +Dj +Dj +Dj DD DD iZ @@ -2748,13 +3099,13 @@ mY "} (29,1,1) = {" iZ -Gk -Gk -Gk -xA -tR -CS -wY +Dj +Dj +Dj +qt +Cb +lZ +Zu iZ DD DD @@ -2763,22 +3114,22 @@ DD DD DD iZ -xP -xj -kG -ti -Wz +Tw +rg +VS +kX +uY iZ -Gk -Gk +Dj +Dj DD NB XL DD iZ -Gk -Gk -Gk +Dj +Dj +Dj iZ DD iZ @@ -2789,13 +3140,13 @@ mY "} (30,1,1) = {" iZ -Gk -Gk -Gk -xA -En -fQ -TP +Dj +Dj +Dj +qt +wN +LN +Fg iZ DD DD @@ -2804,14 +3155,14 @@ DD DD DD iZ -Iz -ep -LM -lF -gV -ar -Gk -Gk +qk +an +fO +JN +DK +hL +Dj +Dj DD NB NB @@ -2834,9 +3185,9 @@ iZ iZ iZ iZ -WX -Zp -xu +SH +GE +cB iZ DD DD @@ -2845,14 +3196,14 @@ DD DD DD iZ -ri -GC -Zy -GD -Bg +Py +oL +BM +TV +CA iZ -Gk -Gk +Dj +Dj iZ iZ iZ diff --git a/_maps/outpost/hangar/test_2_40x20.dmm b/_maps/outpost/hangar/nt_asteroid_40x20.dmm similarity index 61% rename from _maps/outpost/hangar/test_2_40x20.dmm rename to _maps/outpost/hangar/nt_asteroid_40x20.dmm index 7520321a6d23..21867371f279 100644 --- a/_maps/outpost/hangar/test_2_40x20.dmm +++ b/_maps/outpost/hangar/nt_asteroid_40x20.dmm @@ -1,290 +1,240 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ai" = ( +/obj/item/wallframe/airalarm{ + pixel_y = -7 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched"; + planetary_atmos = 1 + }, +/area/hangar) "au" = ( /turf/closed/mineral/random/snow, /area/hangar) -"aB" = ( -/obj/effect/turf_decal/industrial/warning, +"ba" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw, +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"bX" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, +/area/hangar) +"ck" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw, +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"cn" = ( +/obj/machinery/light/directional/north, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/turf/open/floor/concrete/reinforced{ + planetary_atmos = 1 + }, /area/hangar) -"aO" = ( +"cq" = ( /obj/structure/closet/crate, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/glass, /obj/effect/decal/cleanable/wrapping, /turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/hangar) -"bb" = ( -/turf/open/floor/plasteel/elevatorshaft, -/area/hangar) -"bA" = ( -/obj/effect/turf_decal/arrows{ - dir = 1 + icon_state = "platingdmg1"; + planetary_atmos = 1 }, -/turf/open/floor/plasteel/tech, /area/hangar) -"bL" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +"cO" = ( +/obj/effect/turf_decal/techfloor{ + dir = 9 }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/general{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hangar) -"bQ" = ( -/obj/item/banner, -/turf/open/floor/plasteel/dark, -/area/hangar) -"bZ" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/structure/fluff/hedge{ - icon_state = "hedge-8" +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/tech/grid, /area/hangar) -"cb" = ( -/obj/effect/turf_decal/industrial/traffic{ +"cY" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ dir = 8 }, -/obj/effect/turf_decal/box/corners{ - dir = 8 +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/patterned/cargo_one, /area/hangar) -"cR" = ( -/obj/structure/table/reinforced{ - color = "#c1b6a5" - }, -/obj/effect/turf_decal/techfloor{ +"dn" = ( +/obj/effect/turf_decal/industrial/traffic{ dir = 4 }, -/obj/item/storage/fancy/donut_box{ - pixel_y = 6 - }, -/obj/item/storage/fancy/cigarettes{ - pixel_x = 10 +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/dark, /area/hangar) -"cX" = ( -/obj/effect/spawner/lootdrop/maintenance, -/obj/item/stack/sheet/mineral/wood{ - pixel_x = -6 +"dw" = ( +/obj/machinery/atmospherics/pipe/simple/general{ + dir = 4 }, -/obj/item/stack/sheet/mineral/wood{ - pixel_x = 10; - pixel_y = 7 +/turf/open/floor/plasteel/stairs{ + dir = 4 }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/general, -/turf/open/floor/plasteel/tech/techmaint, /area/hangar) -"dk" = ( -/obj/machinery/computer/communications{ +"dK" = ( +/obj/machinery/door/poddoor/shutters/indestructible/preopen, +/obj/effect/turf_decal/techfloor/corner{ dir = 4 }, /obj/effect/turf_decal/techfloor{ - dir = 8 + dir = 1 + }, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/dark, /area/hangar) -"dr" = ( -/obj/structure/table/wood/reinforced, -/obj/item/flashlight/lamp/green{ - pixel_y = 13; - pixel_x = 8 +"dN" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/general, +/turf/open/floor/plating{ + planetary_atmos = 1 }, -/obj/item/paper_bin{ - pixel_x = -4; - pixel_y = 4 +/area/hangar) +"ed" = ( +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 4 }, -/obj/item/pen{ - pixel_y = 4; - pixel_x = -4 +/obj/structure/girder/reinforced, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/obj/item/clipboard{ - pixel_x = -2; - pixel_y = 8 +/area/hangar) +"eg" = ( +/obj/structure/chair, +/obj/structure/sign/poster/official/enlist{ + pixel_x = 32 }, -/obj/item/phone{ - pixel_x = 8; - pixel_y = -4 +/turf/open/floor/wood/walnut{ + icon_state = "wood-broken4"; + planetary_atmos = 1 }, -/obj/item/storage/fancy/cigarettes/cigars/havana{ - pixel_y = -8; - pixel_x = 4 +/area/hangar) +"ep" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 9 }, -/obj/item/lighter{ - pixel_y = -16; - pixel_x = 13 +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/tech, /area/hangar) -"dv" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +"eH" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/sign/poster/contraband/energy_swords{ + pixel_y = -32 }, -/obj/machinery/atmospherics/pipe/simple/general{ - dir = 5 +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/sign/poster/contraband/energy_swords{ + pixel_y = -32 }, -/turf/open/floor/plasteel/dark, -/area/hangar) -"dD" = ( -/obj/structure/barricade/wooden, -/turf/open/floor/plating/catwalk_floor, -/area/hangar) -"dM" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ +/obj/machinery/atmospherics/pipe/simple/general{ dir = 4 }, -/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner, -/turf/open/floor/plasteel/tech, -/area/hangar) -"dQ" = ( -/obj/effect/decal/cleanable/oil, -/turf/open/floor/plasteel/tech, -/area/hangar) -"dY" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 +/turf/open/floor/plating/rust{ + planetary_atmos = 1 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/concrete/slab_1, -/area/hangar) -"dZ" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, -/turf/open/floor/plasteel/dark, /area/hangar) -"es" = ( -/obj/machinery/computer/camera_advanced{ +"eP" = ( +/obj/effect/turf_decal/siding/wood{ dir = 4 }, -/obj/effect/turf_decal/techfloor{ - dir = 8 +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/dark, /area/hangar) -"ex" = ( -/obj/structure/flora/grass/both{ - pixel_x = 23; - pixel_y = 6 +"fy" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 1 }, -/turf/open/floor/grass/snow/safe, -/area/hangar) -"eA" = ( -/obj/structure/railing/corner, -/obj/effect/turf_decal/techfloor/corner, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/hangar) -"eJ" = ( -/obj/effect/turf_decal/techfloor{ +/obj/effect/turf_decal/industrial/warning{ dir = 1 }, -/turf/open/floor/plasteel/dark, -/area/hangar) -"eX" = ( -/obj/effect/landmark/outpost/hangar_dock, -/turf/open/floor/plating, -/area/hangar) -"eZ" = ( -/obj/structure/railing{ - layer = 3.1 +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/general{ + dir = 4 }, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/obj/machinery/power/floodlight, -/turf/open/floor/plasteel/tech, -/area/hangar) -"fj" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ - dir = 1 +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel/dark, -/area/hangar) -"fs" = ( -/obj/effect/turf_decal/techfloor, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, /area/hangar) -"fv" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ - dir = 8 +"fB" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 1 }, -/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ - dir = 8 +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/tech, /area/hangar) -"fM" = ( -/obj/effect/turf_decal/industrial/traffic{ - dir = 4 +"fI" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/dark, /area/hangar) -"fW" = ( -/obj/structure/chair, -/obj/structure/sign/poster/official/enlist{ - pixel_x = 32 +"gr" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ + dir = 1 }, -/turf/open/floor/wood/walnut{ - icon_state = "wood-broken4" +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, /area/hangar) -"ga" = ( -/obj/structure/railing/corner/wood, +"gu" = ( +/turf/template_noop, +/area/template_noop) +"gE" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/concrete/slab_1, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, /area/hangar) -"gg" = ( +"gL" = ( +/obj/machinery/door/airlock/highsecurity, /obj/effect/turf_decal/techfloor{ - dir = 1 + dir = 4 }, -/obj/structure/railing{ - dir = 1 +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/tech, /area/hangar) -"gu" = ( -/turf/template_noop, -/area/template_noop) -"gv" = ( +"gO" = ( +/obj/structure/railing{ + dir = 8; + layer = 4.1 + }, /obj/effect/turf_decal/techfloor{ dir = 8 }, -/obj/effect/turf_decal/techfloor{ - dir = 4 +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/dark, -/area/hangar) -"gx" = ( -/turf/open/floor/plasteel/tech, -/area/hangar) -"gD" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/structure/mopbucket, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, /area/hangar) -"gY" = ( -/obj/effect/turf_decal/techfloor{ - dir = 6 +"gV" = ( +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/dark, /area/hangar) "he" = ( /obj/structure/railing{ @@ -298,12 +248,33 @@ /obj/structure/grille/indestructable, /turf/open/floor/plasteel/tech/techmaint, /area/hangar) -"hr" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ - dir = 1 +"hh" = ( +/obj/effect/landmark/outpost/elevator, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 }, +/area/hangar) +"hp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"hs" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/structure/catwalk/over/plated_catwalk, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/obj/machinery/atmospherics/pipe/simple/general{ + dir = 6 + }, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, /area/hangar) "hJ" = ( /obj/structure/railing/wood{ @@ -314,173 +285,137 @@ "ie" = ( /turf/closed/indestructible/reinforced, /area/hangar) -"iK" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 +"iw" = ( +/obj/item/banner, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/concrete/slab_1, /area/hangar) -"iO" = ( -/obj/structure/chair/comfy/black{ - dir = 1 +"iM" = ( +/obj/structure/railing{ + layer = 3.1 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech, -/area/hangar) -"iW" = ( -/obj/structure/table/reinforced{ - color = "#c1b6a5" +/obj/effect/turf_decal/spline/fancy/opaque/black, +/turf/open/floor/plasteel/stairs{ + dir = 8; + planetary_atmos = 1 }, -/obj/item/desk_flag{ - pixel_x = -6; - pixel_y = 17 - }, -/obj/item/megaphone/sec{ - name = "syndicate megaphone"; - pixel_x = 1; - pixel_y = 4 - }, -/obj/item/camera_bug{ - pixel_x = -5; - pixel_y = -3 - }, -/obj/effect/turf_decal/techfloor{ - dir = 5 - }, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/dark, /area/hangar) -"jk" = ( -/obj/effect/turf_decal/techfloor{ - dir = 9 +"iV" = ( +/obj/structure/grille, +/turf/open/floor/plating{ + planetary_atmos = 1 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, /area/hangar) -"jn" = ( -/obj/machinery/light/directional/north, +"jy" = ( +/obj/structure/chair{ + dir = 4 + }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/concrete/reinforced, -/area/hangar) -"jq" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ - dir = 8 +/turf/open/floor/wood/walnut{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/dark, -/area/hangar) -"jS" = ( -/obj/structure/flora/rock/icy, -/turf/open/water/beach/deep, /area/hangar) -"jW" = ( -/obj/machinery/light/directional/north, +"jF" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/hangar) -"kd" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ dir = 1 }, -/turf/open/floor/plasteel/tech, -/area/hangar) -"kr" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw, -/obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, /area/hangar) -"kA" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/middle{ +"jR" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + volume = 10000000 + }, +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/turf_decal/industrial/warning{ dir = 4 }, -/turf/open/floor/plating, +/obj/machinery/light/directional/north, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, /area/hangar) -"kO" = ( -/obj/effect/turf_decal/box, -/obj/structure/railing{ - layer = 3.1 +"jS" = ( +/obj/structure/flora/rock/icy, +/turf/open/water/beach/deep, +/area/hangar) +"jX" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 }, -/obj/machinery/power/floodlight, -/turf/open/floor/plating{ - icon_state = "panelscorched" +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 }, /area/hangar) -"kZ" = ( +"ka" = ( /obj/structure/catwalk/over/plated_catwalk, -/obj/machinery/atmospherics/pipe/simple/general, +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/general{ + dir = 4 + }, /turf/open/floor/plating{ - icon_state = "panelscorched" + planetary_atmos = 1 }, /area/hangar) -"lf" = ( -/obj/effect/turf_decal/arrows, -/turf/open/floor/plasteel/tech, -/area/hangar) -"ly" = ( -/obj/machinery/door/poddoor/shutters/indestructible/preopen, -/obj/effect/turf_decal/techfloor{ +"kk" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ dir = 1 }, -/turf/open/floor/plasteel/tech, -/area/hangar) -"lJ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw, -/obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel/dark, -/area/hangar) -"mu" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw, /obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel/dark, -/area/hangar) -"mx" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 9 - }, -/obj/structure/closet/toolcloset/empty, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) -"nb" = ( -/obj/item/kirbyplants{ - icon_state = "plant-25"; - pixel_x = 5 +"kD" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/robot_debris{ - pixel_x = 8 - }, -/obj/machinery/atmospherics/pipe/simple/general{ - dir = 9 +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/tech/techmaint, /area/hangar) -"nq" = ( -/obj/effect/decal/cleanable/dirt, +"kG" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, /area/hangar) -"nA" = ( -/obj/machinery/door/poddoor/shutters/indestructible/preopen, -/obj/effect/turf_decal/techfloor/corner{ - dir = 4 +"kU" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/stack/sheet/mineral/wood{ + pixel_x = -6 }, -/obj/effect/turf_decal/techfloor{ - dir = 1 +/obj/item/stack/sheet/mineral/wood{ + pixel_x = 10; + pixel_y = 7 }, -/turf/open/floor/plasteel/tech, -/area/hangar) -"ov" = ( -/obj/effect/turf_decal/industrial/traffic{ - dir = 4 +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/stack/sheet/mineral/wood{ + pixel_x = -6 + }, +/obj/item/stack/sheet/mineral/wood{ + pixel_x = 10; + pixel_y = 7 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/obj/machinery/atmospherics/pipe/simple/general, +/turf/open/floor/plasteel/tech/techmaint, /area/hangar) -"oy" = ( +"ll" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/light/directional/north, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, /obj/structure/catwalk/over/plated_catwalk, /obj/machinery/light/directional/north, /obj/effect/decal/cleanable/dirt, @@ -488,91 +423,58 @@ /obj/machinery/atmospherics/pipe/simple/general{ dir = 4 }, -/turf/open/floor/plating, -/area/hangar) -"oE" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/hangar) -"pb" = ( -/turf/open/floor/grass/snow/safe, -/area/hangar) -"pf" = ( -/obj/structure/girder/reinforced, -/obj/structure/grille/broken, -/obj/machinery/light/directional/north, /turf/open/floor/plating{ - icon_state = "panelscorched" + planetary_atmos = 1 }, /area/hangar) -"ph" = ( -/obj/structure/grille/indestructable, -/obj/structure/window/plasma/reinforced/plastitanium, -/turf/open/floor/plating, -/area/hangar) -"po" = ( -/obj/structure/flora/grass/both, -/turf/open/floor/grass/snow/safe, -/area/hangar) -"pU" = ( -/obj/structure/railing/wood{ - layer = 3.1 +"lN" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ + dir = 8 }, -/obj/structure/fluff/hedge{ - icon_state = "hedge-4" +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/turf/open/floor/wood/walnut, /area/hangar) -"qe" = ( -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/structure/closet/crate, +"mb" = ( +/mob/living/simple_animal/hostile/cockroach, /obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/vomit, -/turf/open/floor/plating/rust, -/area/hangar) -"qF" = ( -/obj/structure/table/wood, -/obj/item/reagent_containers/food/drinks/beer{ - pixel_x = 5; - pixel_y = 6 - }, -/obj/item/toy/cards/deck{ - pixel_y = 2; - pixel_x = -5 +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 }, -/turf/open/floor/wood/walnut, /area/hangar) -"qO" = ( -/obj/structure/girder/displaced, -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/structure/railing{ - dir = 1 +"mo" = ( +/obj/structure/table/wood/reinforced, +/obj/item/table_bell{ + pixel_x = 9; + pixel_y = -1 }, -/turf/open/floor/plasteel/tech, -/area/hangar) -"qQ" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 +/obj/item/cigbutt/cigarbutt{ + pixel_x = -5; + pixel_y = 10 }, -/obj/item/chair{ - pixel_x = -1; - pixel_y = -4 +/obj/item/dice/d2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 }, -/obj/item/chair{ - pixel_x = -1 +/area/hangar) +"mq" = ( +/turf/open/floor/plasteel/stairs{ + dir = 8; + planetary_atmos = 1 }, -/obj/item/chair{ - pixel_x = -1; - pixel_y = 3 +/area/hangar) +"mN" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/mopbucket, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + planetary_atmos = 1 }, -/obj/effect/turf_decal/box, -/turf/open/floor/plasteel/tech, /area/hangar) -"rd" = ( +"ns" = ( /obj/structure/railing/corner{ dir = 8 }, @@ -580,373 +482,993 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/hangar) -"rj" = ( -/obj/structure/railing{ - layer = 3.1 +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/turf/open/floor/plasteel/tech, /area/hangar) -"rK" = ( +"nW" = ( /obj/structure/catwalk/over/plated_catwalk, -/obj/structure/easel, -/turf/open/floor/plating, -/area/hangar) -"rL" = ( -/obj/structure/table_frame/wood, -/obj/item/trash/boritos, -/turf/open/floor/plating{ - icon_state = "platingdmg1" +/obj/effect/turf_decal/industrial/warning{ + dir = 1 }, -/area/hangar) -"rP" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/warning{ - dir = 8 +/obj/effect/decal/cleanable/dirt, +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/general{ + dir = 4 + }, +/turf/open/floor/plating{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/tech/grid, /area/hangar) -"sJ" = ( +"os" = ( /obj/effect/turf_decal/techfloor{ dir = 8 }, -/obj/machinery/computer/card/minor/cmo{ +/obj/effect/turf_decal/techfloor{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) -"tc" = ( -/obj/structure/railing/wood{ - layer = 3.1 +"oJ" = ( +/obj/item/kirbyplants{ + icon_state = "plant-09" }, -/obj/structure/chair{ - dir = 1 +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 }, -/obj/machinery/light/directional/east, -/turf/open/floor/wood/walnut, /area/hangar) -"td" = ( -/obj/effect/turf_decal/industrial/traffic/corner, -/obj/effect/decal/cleanable/plastic, -/turf/open/floor/plasteel/dark, -/area/hangar) -"tH" = ( -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 1 +"oK" = ( +/obj/effect/turf_decal/box/corners{ + dir = 4 }, +/obj/structure/closet/crate, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/general{ - dir = 4 +/obj/effect/decal/cleanable/vomit, +/turf/open/floor/plating/rust{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/dark, /area/hangar) -"tR" = ( -/obj/effect/turf_decal/techfloor{ +"oU" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ dir = 8 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) -"tU" = ( -/obj/structure/table/wood/reinforced, -/obj/item/modular_computer/laptop/preset/civilian{ - pixel_x = -1; - pixel_y = 3 +"pt" = ( +/obj/structure/table/reinforced, +/obj/item/stamp{ + pixel_x = -8; + pixel_y = 8 + }, +/obj/item/stamp/denied{ + pixel_x = -8; + pixel_y = 3 + }, +/obj/item/paper_bin{ + pixel_x = 5; + pixel_y = 4 + }, +/obj/item/pen{ + pixel_y = 4; + pixel_x = 5 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/plating/catwalk_floor{ + planetary_atmos = 1 + }, +/area/hangar) +"pu" = ( +/obj/structure/table/wood/reinforced, +/obj/item/flashlight/lamp/green{ + pixel_y = 13; + pixel_x = 8 + }, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/pen{ + pixel_y = 4; + pixel_x = -4 + }, +/obj/item/clipboard{ + pixel_x = -2; + pixel_y = 8 + }, +/obj/item/phone{ + pixel_x = 8; + pixel_y = -4 + }, +/obj/item/storage/fancy/cigarettes/cigars/havana{ + pixel_y = -8; + pixel_x = 4 + }, +/obj/item/lighter{ + pixel_y = -16; + pixel_x = 13 + }, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"px" = ( +/obj/effect/turf_decal/industrial/loading, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"py" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/general{ + dir = 5 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"pF" = ( +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"pG" = ( +/obj/structure/table/reinforced{ + color = "#c1b6a5" + }, +/obj/item/desk_flag{ + pixel_x = -6; + pixel_y = 17 + }, +/obj/item/megaphone/sec{ + name = "syndicate megaphone"; + pixel_x = 1; + pixel_y = 4 + }, +/obj/item/camera_bug{ + pixel_x = -5; + pixel_y = -3 + }, +/obj/effect/turf_decal/techfloor{ + dir = 5 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"pJ" = ( +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"pQ" = ( +/obj/machinery/computer/communications{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"pT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"qc" = ( +/obj/effect/turf_decal/industrial/warning/corner, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"qg" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 9 + }, +/obj/structure/closet/toolcloset/empty, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"qh" = ( +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/general{ + dir = 4 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"qH" = ( +/obj/structure/flora/grass/both{ + pixel_x = 23; + pixel_y = 6 + }, +/turf/open/floor/grass/snow/safe{ + planetary_atmos = 1 + }, +/area/hangar) +"rt" = ( +/obj/structure/table/wood/reinforced, +/obj/item/modular_computer/laptop/preset/civilian{ + pixel_x = -1; + pixel_y = 3 }, /obj/item/newspaper{ pixel_x = 6; pixel_y = 10 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, /area/hangar) -"tY" = ( -/obj/machinery/atmospherics/pipe/simple/general{ +"rJ" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"rX" = ( +/obj/machinery/vending/coffee, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/structure/sign/poster/official/nanotrasen_logo{ + pixel_y = 32 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/wood/walnut{ + planetary_atmos = 1 + }, +/area/hangar) +"sA" = ( +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/machinery/computer/card/minor/cmo{ dir = 4 }, -/turf/open/floor/plasteel/stairs{ +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"sG" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"sP" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/sign/poster/official/moth/meth{ + pixel_x = 32 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, +/area/hangar) +"sY" = ( +/obj/effect/turf_decal/industrial/warning, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"sZ" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + req_access_txt = "109" + }, +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/barricade/wooden/crude, +/obj/machinery/atmospherics/pipe/simple/general, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"te" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"to" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"tq" = ( +/obj/machinery/elevator_call_button{ + pixel_y = 31; + pixel_x = 10 + }, +/obj/effect/landmark/outpost/elevator_machine, +/turf/open/floor/wood/walnut{ + planetary_atmos = 1 + }, +/area/hangar) +"tx" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/decal/cleanable/oil/streak, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"tF" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/middle{ + dir = 4 + }, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"tH" = ( +/obj/machinery/computer/cargo/express, +/obj/item/toy/plush/knight{ + pixel_y = 25; + pixel_x = 9 + }, +/turf/open/floor/plating/catwalk_floor{ + planetary_atmos = 1 + }, +/area/hangar) +"ug" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/general{ dir = 4 }, +/turf/open/floor/plating{ + icon_state = "platingdmg3"; + planetary_atmos = 1 + }, +/area/hangar) +"vh" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"vk" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"vn" = ( +/obj/machinery/door/poddoor/shutters/indestructible/preopen, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"vq" = ( +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"vt" = ( +/obj/structure/railing/corner/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, +/area/hangar) +"vz" = ( +/obj/effect/turf_decal/industrial/caution{ + pixel_y = 4 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"vG" = ( +/obj/machinery/light/floor/hangar, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"vJ" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/item/mop{ + pixel_y = -8; + pixel_x = -13 + }, +/obj/item/clothing/head/soft/purple, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"vO" = ( +/obj/machinery/door/poddoor/multi_tile/four_tile_ver, +/turf/closed/indestructible/reinforced, +/area/hangar) +"wi" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"wk" = ( +/obj/structure/flora/rock/pile/icy, +/turf/open/water/beach/deep, +/area/hangar) +"wm" = ( +/obj/structure/grille/indestructable, +/obj/structure/window/plasma/reinforced/plastitanium, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"wo" = ( +/obj/structure/rack, +/obj/item/poster/random_official{ + pixel_x = 2; + pixel_y = 9 + }, +/obj/item/poster/random_official{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/item/poster/random_contraband{ + pixel_y = 8; + pixel_x = -1 + }, +/obj/item/destTagger{ + pixel_x = -2 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/turf_decal/industrial/warning, +/turf/open/floor/plasteel/tech/grid{ + planetary_atmos = 1 + }, +/area/hangar) +"xi" = ( +/obj/structure/closet/crate/trashcart/laundry, +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/patterned/cargo_one{ + planetary_atmos = 1 + }, +/area/hangar) +"xu" = ( +/turf/open/floor/plasteel/stairs{ + dir = 4 + }, +/area/hangar) +"xF" = ( +/obj/structure/girder/displaced, +/obj/structure/grille, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"xN" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/turf/open/floor/grass/snow/safe{ + planetary_atmos = 1 + }, +/area/hangar) +"yd" = ( +/obj/structure/railing/wood{ + layer = 3.1 + }, +/obj/structure/fluff/hedge{ + icon_state = "hedge-8" + }, +/turf/open/floor/wood/walnut{ + planetary_atmos = 1 + }, +/area/hangar) +"yO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"yQ" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/plating/catwalk_floor{ + planetary_atmos = 1 + }, +/area/hangar) +"zc" = ( +/turf/open/floor/concrete/reinforced{ + planetary_atmos = 1 + }, +/area/hangar) +"zr" = ( +/obj/item/trash/waffles{ + pixel_y = -3 + }, +/obj/item/trash/sosjerky{ + pixel_x = -4 + }, +/obj/item/trash/raisins, +/obj/item/trash/pistachios{ + pixel_x = 6 + }, +/obj/structure/closet/crate/trashcart, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"zs" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 8 + }, +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/cargo_one{ + planetary_atmos = 1 + }, +/area/hangar) +"zy" = ( +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"zA" = ( +/turf/open/floor/plating/ice/smooth, +/area/hangar) +"zK" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/stand_clear, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"zM" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"zN" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/item/trash/can{ + pixel_x = -8; + pixel_y = -6 + }, +/obj/item/trash/candy, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"Ao" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/item/wallframe/light_fixture{ + pixel_y = -5; + pixel_x = 5 + }, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"Ap" = ( +/obj/item/storage/cans/sixbeer{ + pixel_x = 3; + pixel_y = 2 + }, +/obj/effect/decal/cleanable/greenglow, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"Av" = ( +/obj/effect/turf_decal/arrows{ + dir = 1 + }, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, +/area/hangar) +"AD" = ( +/obj/structure/statue/snow/snowman{ + pixel_y = 5 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/turf/open/floor/grass/snow/safe{ + planetary_atmos = 1 + }, +/area/hangar) +"AG" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/general{ + dir = 4 + }, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"Bx" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"BB" = ( +/obj/structure/table/reinforced{ + color = "#c1b6a5" + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/item/storage/fancy/donut_box{ + pixel_y = 6 + }, +/obj/item/storage/fancy/cigarettes{ + pixel_x = 10 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"BL" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ + dir = 8 + }, +/obj/machinery/light/floor/hangar{ + pixel_y = 17 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"BU" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ + dir = 8 + }, +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"Cd" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 8 + }, +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/obj/structure/reagent_dispensers/watertank, +/obj/item/radio/intercom/directional/north{ + pixel_y = 20 + }, +/turf/open/floor/plasteel/patterned/cargo_one{ + planetary_atmos = 1 + }, +/area/hangar) +"Cf" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/structure/fluff/hedge{ + icon_state = "hedge-4" + }, +/turf/open/floor/plasteel/tech/grid{ + planetary_atmos = 1 + }, +/area/hangar) +"Cn" = ( +/obj/effect/turf_decal/techfloor{ + dir = 10 + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"CI" = ( +/obj/structure/table/reinforced{ + color = "#c1b6a5" + }, +/obj/machinery/fax, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"CS" = ( +/turf/open/floor/grass/snow/safe{ + planetary_atmos = 1 + }, +/area/hangar) +"De" = ( +/obj/effect/turf_decal/industrial/traffic/corner, +/obj/effect/decal/cleanable/plastic, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) -"ue" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +"Dx" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/dark, /area/hangar) -"uk" = ( -/obj/structure/table/wood/reinforced, -/obj/item/table_bell{ - pixel_x = 9; - pixel_y = -1 - }, -/obj/item/cigbutt/cigarbutt{ - pixel_x = -5; - pixel_y = 10 +"ET" = ( +/turf/open/floor/plasteel/stairs/wood, +/area/hangar) +"Fm" = ( +/obj/structure/girder/reinforced, +/obj/structure/grille/broken, +/obj/machinery/light/directional/north, +/turf/open/floor/plating{ + icon_state = "panelscorched"; + planetary_atmos = 1 }, -/obj/item/dice/d2, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech, /area/hangar) -"ur" = ( +"Fv" = ( +/obj/effect/turf_decal/techfloor, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) -"ut" = ( -/obj/structure/railing{ - dir = 8; - layer = 4.1 +"Fw" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ + dir = 1 }, -/obj/effect/turf_decal/techfloor{ - dir = 8 +/obj/machinery/light/floor/hangar, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/tech, /area/hangar) -"uw" = ( -/obj/item/storage/cans/sixbeer{ - pixel_x = 3; - pixel_y = 2 - }, -/obj/effect/decal/cleanable/greenglow, -/turf/open/floor/plasteel/tech, +"FC" = ( +/obj/machinery/door/airlock, +/obj/effect/landmark/outpost/elevator_machine, +/obj/structure/lattice/catwalk, +/turf/open/floor/engine, /area/hangar) -"uy" = ( -/obj/structure/chair{ - dir = 4 +"GA" = ( +/obj/structure/railing/corner/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood/walnut, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, /area/hangar) -"uM" = ( -/obj/item/binoculars{ - pixel_y = 6; - pixel_x = -3 +"He" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/beer{ + pixel_x = 5; + pixel_y = 6 }, -/obj/structure/rack, -/obj/item/radio{ - pixel_y = 6; - pixel_x = 9 +/obj/item/toy/cards/deck{ + pixel_y = 2; + pixel_x = -5 }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 8 +/turf/open/floor/wood/walnut{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/tech, /area/hangar) -"uN" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/item/trash/can{ - pixel_x = -8; - pixel_y = -6 +"Hg" = ( +/obj/effect/turf_decal/box, +/obj/structure/railing{ + layer = 3.1 + }, +/obj/machinery/power/floodlight, +/turf/open/floor/plating{ + icon_state = "panelscorched"; + planetary_atmos = 1 }, -/obj/item/trash/candy, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, /area/hangar) -"uQ" = ( +"Hk" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/concrete/slab_1, -/area/hangar) -"uS" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw, +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/turf/open/floor/grass/snow/safe, /area/hangar) -"uT" = ( -/obj/machinery/computer/crew/syndie{ +"Ho" = ( +/obj/structure/chair/plastic{ dir = 4 }, -/obj/effect/turf_decal/techfloor{ - dir = 8 +/obj/structure/sign/poster/official/random{ + pixel_y = -32 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/hangar) -"vC" = ( -/obj/machinery/vending/coffee, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/structure/sign/poster/official/nanotrasen_logo{ - pixel_y = 32 +/obj/machinery/light/directional/south, +/turf/open/floor/plating{ + planetary_atmos = 1 }, -/obj/machinery/light/directional/west, -/turf/open/floor/wood/walnut, /area/hangar) -"vO" = ( -/obj/machinery/door/poddoor/multi_tile/four_tile_ver, -/turf/closed/indestructible/reinforced, +"HH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) -"vQ" = ( +"HP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw, /obj/machinery/light/floor/hangar, -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ - dir = 1 +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/dark, /area/hangar) -"wc" = ( -/turf/open/floor/concrete/reinforced, -/area/hangar) -"wh" = ( -/obj/machinery/computer/cargo/express, -/obj/item/toy/plush/knight{ - pixel_y = 25; - pixel_x = 9 +"HR" = ( +/obj/structure/railing/wood{ + dir = 4 }, -/turf/open/floor/plating/catwalk_floor, -/area/hangar) -"wk" = ( -/obj/structure/flora/rock/pile/icy, -/turf/open/water/beach/deep, +/turf/open/floor/plasteel/stairs/wood, /area/hangar) -"wl" = ( +"HX" = ( /obj/effect/turf_decal/techfloor{ dir = 4 }, -/turf/open/floor/plasteel/tech/grid, -/area/hangar) -"wv" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/structure/fluff/hedge{ - icon_state = "hedge-4" +/turf/open/floor/plasteel/tech/grid{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/tech/grid, /area/hangar) -"wA" = ( -/obj/effect/decal/cleanable/garbage{ - pixel_y = -7; - pixel_x = 6 +"Ia" = ( +/obj/structure/chair{ + dir = 4 }, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating{ - icon_state = "panelscorched" +/turf/open/floor/wood/walnut{ + icon_state = "wood-broken7"; + planetary_atmos = 1 }, /area/hangar) -"wH" = ( +"Iv" = ( /obj/structure/girder, -/turf/open/floor/plating, -/area/hangar) -"wO" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/general, -/turf/open/floor/plating, -/area/hangar) -"xd" = ( -/obj/structure/grille, -/turf/open/floor/plating, -/area/hangar) -"xu" = ( -/turf/open/floor/plasteel/stairs{ - dir = 4 +/turf/open/floor/plating{ + planetary_atmos = 1 }, /area/hangar) -"xC" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/oil, -/turf/open/floor/plasteel/dark, -/area/hangar) -"xU" = ( -/obj/effect/turf_decal/box/corners{ +"Iy" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ dir = 1 }, -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/hangar) -"xZ" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ - dir = 5 +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/tech, /area/hangar) -"ye" = ( -/turf/open/floor/plating, -/area/hangar) -"yo" = ( -/obj/effect/turf_decal/industrial/warning/corner, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/hangar) -"yq" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ - dir = 8 +"IE" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 }, -/obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel/dark, -/area/hangar) -"yF" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw, -/turf/open/floor/plasteel/dark, /area/hangar) -"yV" = ( -/turf/open/floor/plasteel/stairs{ - dir = 8 +"Jk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 }, /area/hangar) -"zp" = ( -/obj/structure/railing{ - layer = 3.1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/turf/open/floor/plasteel/stairs{ - dir = 8 +"Jp" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/cargo_one{ + planetary_atmos = 1 }, /area/hangar) -"zq" = ( +"JF" = ( /obj/structure/catwalk/over/plated_catwalk, -/obj/item/wallframe/light_fixture{ - pixel_y = -5; - pixel_x = 5 - }, -/turf/open/floor/plating, -/area/hangar) -"zA" = ( -/turf/open/floor/plating/ice/smooth, -/area/hangar) -"zI" = ( +/obj/effect/decal/cleanable/dirt, /obj/structure/catwalk/over/plated_catwalk, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/general{ dir = 6 }, -/turf/open/floor/plating, -/area/hangar) -"zR" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw, -/turf/open/floor/plasteel/dark, -/area/hangar) -"AB" = ( -/obj/structure/rack, -/obj/item/poster/random_official{ - pixel_x = 2; - pixel_y = 9 +/turf/open/floor/plating{ + icon_state = "platingdmg3"; + planetary_atmos = 1 }, -/obj/item/poster/random_official{ - pixel_x = -2; - pixel_y = 4 +/area/hangar) +"JI" = ( +/obj/machinery/vending/cigarette, +/obj/item/radio/intercom/directional/north{ + pixel_y = 20 }, -/obj/item/poster/random_contraband{ - pixel_y = 8; - pixel_x = -1 +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/item/toy/plush/hornet/gay{ + pixel_y = 23; + pixel_x = 7 }, -/obj/item/destTagger{ - pixel_x = -2 +/obj/item/reagent_containers/food/drinks/coffee{ + pixel_x = 1; + pixel_y = 19; + layer = 3.1 }, -/obj/effect/decal/cleanable/cobweb, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/tech/grid, -/area/hangar) -"AH" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/general{ - dir = 4 +/turf/open/floor/wood/walnut{ + planetary_atmos = 1 }, -/turf/open/floor/plating, /area/hangar) -"AN" = ( +"KG" = ( /obj/structure/table/reinforced, /obj/item/stack/packageWrap{ pixel_y = 7 @@ -959,504 +1481,441 @@ pixel_x = 4 }, /obj/effect/turf_decal/industrial/warning, -/obj/structure/sign/poster/contraband/eoehoma{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/tech/grid, -/area/hangar) -"Bf" = ( -/obj/machinery/elevator_call_button{ - pixel_y = 31; - pixel_x = 10 - }, -/obj/effect/landmark/outpost/elevator_machine, -/turf/open/floor/wood/walnut, -/area/hangar) -"Bt" = ( -/obj/structure/railing/corner/wood{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/concrete/slab_1, -/area/hangar) -"Cb" = ( -/obj/effect/turf_decal/industrial/traffic{ - dir = 8 - }, -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/structure/reagent_dispensers/watertank, -/obj/item/radio/intercom/directional/north{ - pixel_y = 20 - }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/hangar) -"Cm" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw, -/turf/open/floor/plasteel/dark, -/area/hangar) -"Df" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 +/obj/structure/sign/poster/contraband/eoehoma{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/tech/grid{ + planetary_atmos = 1 }, -/turf/open/floor/concrete/slab_1, -/area/hangar) -"Dh" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood/walnut, -/area/hangar) -"Ef" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw, -/turf/open/floor/plasteel/dark, /area/hangar) -"EG" = ( -/obj/structure/railing{ - layer = 3.1 +"KY" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/warning{ + dir = 8 }, -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/obj/machinery/atmospherics/pipe/simple/general, -/turf/open/floor/plating{ - icon_state = "platingdmg3" +/turf/open/floor/plasteel/tech/grid{ + planetary_atmos = 1 }, /area/hangar) -"ET" = ( -/turf/open/floor/plasteel/stairs/wood, -/area/hangar) -"Fb" = ( +"Lc" = ( /obj/structure/railing/wood{ layer = 3.1 }, /obj/structure/fluff/hedge{ - icon_state = "hedge-8" + icon_state = "hedge-4" }, -/turf/open/floor/wood/walnut, -/area/hangar) -"Fo" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 +/turf/open/floor/wood/walnut{ + planetary_atmos = 1 }, -/turf/open/floor/concrete/slab_1, /area/hangar) -"Fs" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech, -/area/hangar) -"FD" = ( -/obj/effect/landmark/outpost/elevator, -/turf/open/floor/plasteel/elevatorshaft, -/area/hangar) -"GB" = ( -/obj/structure/girder/reinforced, -/turf/open/floor/plasteel/dark, -/area/hangar) -"GG" = ( -/obj/effect/turf_decal/industrial/traffic{ +"Lm" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/turf_decal/industrial/warning{ dir = 4 }, -/obj/effect/turf_decal/box/corners, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/patterned/cargo_one, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, /area/hangar) -"GT" = ( +"Ly" = ( +/obj/structure/catwalk/over/plated_catwalk, /obj/structure/catwalk/over/plated_catwalk, -/obj/machinery/light/directional/east, /obj/machinery/atmospherics/pipe/simple/general, /turf/open/floor/plating{ - icon_state = "panelscorched" + icon_state = "panelscorched"; + planetary_atmos = 1 }, /area/hangar) -"GU" = ( -/obj/structure/railing/corner{ - dir = 1 +"LI" = ( +/obj/structure/railing/wood{ + layer = 3.1 }, -/obj/effect/turf_decal/techfloor/corner{ +/obj/structure/chair{ dir = 1 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech, +/obj/machinery/light/directional/east, +/turf/open/floor/wood/walnut{ + planetary_atmos = 1 + }, /area/hangar) -"Hj" = ( -/obj/structure/chair/plastic{ - dir = 4 +"LR" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 }, -/obj/structure/sign/poster/official/random{ - pixel_y = -32 +/area/hangar) +"Mt" = ( +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 }, -/obj/machinery/light/directional/south, -/turf/open/floor/plating, /area/hangar) -"Hl" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 +"MV" = ( +/obj/effect/turf_decal/techfloor{ + dir = 6 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/concrete/slab_1, -/area/hangar) -"Hm" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/obj/machinery/light/directional/east, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/obj/effect/turf_decal/industrial/stand_clear, -/turf/open/floor/plasteel/dark, /area/hangar) -"Hp" = ( -/obj/structure/chair{ +"Nw" = ( +/obj/machinery/computer/camera_advanced{ dir = 4 }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"NC" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/mug{ + pixel_x = 9; + pixel_y = -2 + }, +/obj/item/newspaper{ + pixel_x = -5; + pixel_y = -1 + }, +/obj/item/newspaper{ + pixel_x = -5; + pixel_y = 2 + }, +/obj/machinery/jukebox/boombox{ + pixel_y = 5 + }, /turf/open/floor/wood/walnut{ - icon_state = "wood-broken7" + planetary_atmos = 1 }, /area/hangar) -"Hy" = ( +"NK" = ( /obj/structure/catwalk/over/plated_catwalk, -/obj/machinery/atmospherics/pipe/simple/general{ - dir = 4 +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/general, +/turf/open/floor/plating{ + planetary_atmos = 1 }, -/turf/open/floor/plating, /area/hangar) -"HC" = ( -/obj/item/kirbyplants{ - icon_state = "plant-09" +"NW" = ( +/obj/item/binoculars{ + pixel_y = 6; + pixel_x = -3 + }, +/obj/structure/rack, +/obj/item/radio{ + pixel_y = 6; + pixel_x = 9 + }, +/obj/effect/turf_decal/techfloor/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/tech, /area/hangar) -"HJ" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 +"NX" = ( +/obj/structure/railing{ + layer = 3.1 }, -/obj/structure/sign/poster/official/moth/meth{ - pixel_x = 32 +/obj/effect/turf_decal/spline/fancy/opaque/black, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 }, -/obj/machinery/light/directional/east, -/turf/open/floor/concrete/slab_1, /area/hangar) -"HR" = ( -/obj/structure/railing/wood{ - dir = 4 +"Oh" = ( +/obj/effect/landmark/outpost/hangar_dock, +/turf/open/floor/plating{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/stairs/wood, /area/hangar) -"Ij" = ( -/obj/structure/catwalk/over/plated_catwalk, -/turf/open/floor/plating, +"ON" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) -"IW" = ( -/obj/effect/turf_decal/techfloor{ - dir = 8 +"OS" = ( +/obj/item/kirbyplants{ + icon_state = "plant-25"; + pixel_x = 5 }, -/obj/effect/turf_decal/techfloor{ - dir = 4 +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/robot_debris{ + pixel_x = 8 }, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/dark, -/area/hangar) -"Jl" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ - dir = 1 +/obj/item/kirbyplants{ + icon_state = "plant-25"; + pixel_x = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/robot_debris{ + pixel_x = 8 }, -/turf/open/floor/plasteel/dark, +/obj/machinery/atmospherics/pipe/simple/general{ + dir = 9 + }, +/turf/open/floor/plasteel/tech/techmaint, /area/hangar) -"JC" = ( -/obj/structure/window/reinforced/spawner, -/obj/effect/spawner/structure/window/hollow/reinforced/middle{ - dir = 4 +"Pv" = ( +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 }, -/turf/open/floor/plating, /area/hangar) -"JM" = ( -/obj/item/trash/waffles{ - pixel_y = -3 +"PF" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 8 }, -/obj/item/trash/sosjerky{ - pixel_x = -4 +/obj/item/chair{ + pixel_x = -1; + pixel_y = -4 }, -/obj/item/trash/raisins, -/obj/item/trash/pistachios{ - pixel_x = 6 +/obj/item/chair{ + pixel_x = -1 + }, +/obj/item/chair{ + pixel_x = -1; + pixel_y = 3 + }, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 }, -/obj/structure/closet/crate/trashcart, -/turf/open/floor/plating, /area/hangar) -"Kg" = ( -/obj/structure/girder/displaced, -/obj/structure/grille/broken, +"QA" = ( /obj/structure/catwalk/over/plated_catwalk, -/turf/open/floor/plating, -/area/hangar) -"KA" = ( +/obj/machinery/light/directional/east, /obj/structure/catwalk/over/plated_catwalk, -/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/directional/east, /obj/machinery/atmospherics/pipe/simple/general, -/turf/open/floor/plating, -/area/hangar) -"KV" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - req_access_txt = "109" +/turf/open/floor/plating{ + icon_state = "panelscorched"; + planetary_atmos = 1 }, -/turf/open/floor/concrete/reinforced, -/area/hangar) -"Lv" = ( -/obj/structure/girder/displaced, -/obj/structure/grille, -/turf/open/floor/plating, /area/hangar) -"LG" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/item/mop{ - pixel_y = -8; - pixel_x = -13 +"QB" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/structure/fluff/hedge{ + icon_state = "hedge-8" }, -/obj/item/clothing/head/soft/purple, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/hangar) -"LH" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ - dir = 8 +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/tech/grid{ + planetary_atmos = 1 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, /area/hangar) -"LW" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ - dir = 1 +"QC" = ( +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/obj/machinery/light/floor/hangar, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, /area/hangar) -"Mi" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/structure/sign/poster/contraband/energy_swords{ - pixel_y = -32 - }, -/obj/machinery/atmospherics/pipe/simple/general{ - dir = 4 +"QL" = ( +/obj/structure/table_frame/wood, +/obj/item/trash/boritos, +/turf/open/floor/plating{ + icon_state = "platingdmg1"; + planetary_atmos = 1 }, -/turf/open/floor/plating/rust, /area/hangar) -"MG" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, +"QP" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/general{ - dir = 4 +/obj/effect/landmark/outpost/hangar_numbers, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/dark, /area/hangar) -"Nd" = ( -/obj/effect/turf_decal/industrial/traffic{ - dir = 4 +"QR" = ( +/obj/machinery/light/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/cargo_one{ + planetary_atmos = 1 }, -/obj/effect/turf_decal/box/corners{ - dir = 4 +/area/hangar) +"QX" = ( +/obj/effect/turf_decal/arrows, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/patterned/cargo_one, /area/hangar) -"Ne" = ( +"RB" = ( /obj/structure/catwalk/over/plated_catwalk, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/general{ - dir = 4 - }, +/obj/structure/easel, /turf/open/floor/plating{ - icon_state = "platingdmg3" + planetary_atmos = 1 }, /area/hangar) -"NF" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plasteel/tech, -/area/hangar) -"Oq" = ( -/turf/open/floor/plasteel/dark, +"RH" = ( +/obj/structure/girder/displaced, +/obj/structure/grille/broken, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, /area/hangar) -"Ov" = ( -/obj/item/wallframe/airalarm{ - pixel_y = -7 +"RI" = ( +/obj/structure/railing{ + layer = 3.1 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - icon_state = "panelscorched" +/obj/effect/turf_decal/spline/fancy/opaque/black, +/obj/machinery/power/floodlight, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 }, /area/hangar) -"OM" = ( +"RN" = ( +/obj/structure/flora/grass/both, +/turf/open/floor/grass/snow/safe{ + planetary_atmos = 1 + }, +/area/hangar) +"Se" = ( /obj/effect/turf_decal/trimline/opaque/yellow/warning{ dir = 8 }, -/turf/open/floor/plasteel/tech, -/area/hangar) -"Pp" = ( -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, /area/hangar) -"Pr" = ( -/obj/structure/statue/snow/snowman{ - pixel_y = 5 +"Sj" = ( +/obj/structure/girder/displaced, +/obj/effect/turf_decal/techfloor{ + dir = 1 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 }, -/turf/open/floor/grass/snow/safe, -/area/hangar) -"Pz" = ( -/mob/living/simple_animal/hostile/cockroach, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech, -/area/hangar) -"PZ" = ( -/turf/open/floor/concrete/slab_1, /area/hangar) -"Qx" = ( -/obj/effect/turf_decal/industrial/warning/corner{ +"Sl" = ( +/obj/effect/turf_decal/industrial/traffic/corner{ dir = 4 }, -/obj/structure/girder/reinforced, -/turf/open/floor/plasteel/dark, -/area/hangar) -"QM" = ( -/obj/effect/turf_decal/industrial/caution{ - pixel_y = 4 +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/dark, /area/hangar) -"Rh" = ( -/obj/effect/turf_decal/techfloor{ - dir = 10 +"Tu" = ( +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/plasteel/dark, /area/hangar) -"Rv" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/drinks/mug{ - pixel_x = 9; - pixel_y = -2 - }, -/obj/item/newspaper{ - pixel_x = -5; - pixel_y = -1 +"Tw" = ( +/obj/machinery/computer/crew/syndie{ + dir = 4 }, -/obj/item/newspaper{ - pixel_x = -5; - pixel_y = 2 +/obj/effect/turf_decal/techfloor{ + dir = 8 }, -/obj/machinery/jukebox/boombox{ - pixel_y = 5 +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/turf/open/floor/wood/walnut, /area/hangar) -"RQ" = ( -/obj/effect/turf_decal/industrial/traffic/corner{ - dir = 4 +"TT" = ( +/obj/structure/railing/corner, +/obj/effect/turf_decal/techfloor/corner, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/dark, /area/hangar) -"Sa" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ - dir = 1 +"TV" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 4 }, -/obj/machinery/light/floor/hangar, +/obj/effect/turf_decal/box/corners, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/patterned/cargo_one{ + planetary_atmos = 1 + }, /area/hangar) -"Sg" = ( +"Uc" = ( +/obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ - dir = 9 + dir = 8 }, -/turf/open/floor/plasteel/tech, -/area/hangar) -"Sk" = ( -/obj/effect/turf_decal/industrial/warning{ +/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ dir = 8 }, -/obj/effect/decal/cleanable/oil/streak, -/turf/open/floor/plasteel/dark, -/area/hangar) -"SA" = ( -/obj/structure/table/reinforced, -/obj/item/stamp{ - pixel_x = -8; - pixel_y = 8 +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 }, -/obj/item/stamp/denied{ - pixel_x = -8; - pixel_y = 3 +/area/hangar) +"Ue" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/obj/item/paper_bin{ - pixel_x = 5; - pixel_y = 4 +/area/hangar) +"Uj" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + req_access_txt = "109" }, -/obj/item/pen{ - pixel_y = 4; - pixel_x = 5 +/turf/open/floor/concrete/reinforced{ + planetary_atmos = 1 }, -/obj/machinery/light/directional/north, -/turf/open/floor/plating/catwalk_floor, /area/hangar) -"SZ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/passive_vent{ - dir = 8 +"UA" = ( +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/patterned/cargo_one{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/dark, /area/hangar) -"Tc" = ( -/obj/machinery/door/airlock/highsecurity, -/obj/effect/turf_decal/techfloor{ - dir = 4 +"UL" = ( +/obj/effect/decal/cleanable/garbage{ + pixel_y = -7; + pixel_x = 6 }, -/obj/effect/turf_decal/techfloor{ - dir = 8 +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating{ + icon_state = "panelscorched"; + planetary_atmos = 1 }, -/turf/open/floor/plasteel/dark, /area/hangar) -"Tv" = ( +"UN" = ( /obj/structure/chair{ dir = 4 }, /obj/effect/decal/cleanable/glass, -/turf/open/floor/wood/walnut, +/turf/open/floor/wood/walnut{ + planetary_atmos = 1 + }, /area/hangar) -"TA" = ( -/obj/structure/barricade/wooden, -/turf/open/floor/plating, +"UV" = ( +/obj/structure/girder/reinforced, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) -"TG" = ( -/obj/structure/table/reinforced{ - color = "#c1b6a5" +"We" = ( +/turf/open/floor/plasteel/patterned/cargo_one{ + planetary_atmos = 1 }, -/obj/machinery/fax, -/obj/effect/turf_decal/techfloor{ +/area/hangar) +"Wi" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/turf_decal/industrial/warning{ dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/hangar) -"TM" = ( -/obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel/tech, -/area/hangar) -"TN" = ( /obj/effect/turf_decal/industrial/warning/corner{ - dir = 8 + dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/hangar) -"TR" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/obj/structure/catwalk/over/plated_catwalk, -/turf/open/floor/plating, -/area/hangar) -"TU" = ( /obj/structure/catwalk/over/plated_catwalk, /obj/effect/turf_decal/industrial/warning{ dir = 4 @@ -1468,168 +1927,152 @@ /obj/machinery/atmospherics/pipe/simple/general{ dir = 9 }, -/turf/open/floor/plating, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, /area/hangar) -"Ud" = ( +"Wo" = ( /obj/effect/turf_decal/techfloor, /obj/structure/railing{ dir = 2; layer = 4.1 }, -/turf/open/floor/plasteel/dark, -/area/hangar) -"UG" = ( -/obj/machinery/door/airlock, -/obj/effect/landmark/outpost/elevator_machine, -/turf/open/floor/plasteel, -/area/hangar) -"UJ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/hangar) -"UU" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ - dir = 8 - }, -/obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel/dark, -/area/hangar) -"Vg" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ - dir = 8 - }, -/obj/machinery/light/floor/hangar{ - pixel_y = 17 +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, /area/hangar) -"Vi" = ( +"Xg" = ( /obj/structure/chair{ dir = 1 }, /obj/effect/decal/cleanable/blood/old, -/turf/open/floor/wood/walnut, -/area/hangar) -"Vp" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - req_access_txt = "109" +/turf/open/floor/wood/walnut{ + planetary_atmos = 1 }, -/obj/structure/catwalk/over/plated_catwalk, -/obj/structure/barricade/wooden/crude, -/obj/machinery/atmospherics/pipe/simple/general, -/turf/open/floor/plating, -/area/hangar) -"Wb" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/outpost/hangar_numbers, -/turf/open/floor/concrete/slab_1, /area/hangar) -"Wk" = ( -/turf/open/floor/plasteel/patterned/cargo_one, +"Xq" = ( +/turf/open/water/beach/deep, /area/hangar) -"WP" = ( -/obj/machinery/atmospherics/components/binary/pump/on, -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/turf_decal/industrial/warning{ +"Xs" = ( +/obj/effect/turf_decal/industrial/traffic{ dir = 4 }, -/obj/effect/turf_decal/industrial/warning{ +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/cargo_one{ + planetary_atmos = 1 + }, +/area/hangar) +"XH" = ( +/obj/structure/frame/computer{ dir = 8 }, +/turf/open/floor/plating{ + icon_state = "panelscorched"; + planetary_atmos = 1 + }, +/area/hangar) +"XN" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, +/turf/open/floor/wood/walnut{ + planetary_atmos = 1 + }, /area/hangar) -"WW" = ( -/obj/machinery/vending/cigarette, -/obj/item/radio/intercom/directional/north{ - pixel_y = 20 +"XP" = ( +/obj/structure/railing/corner{ + dir = 1 }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/item/toy/plush/hornet/gay{ - pixel_y = 23; - pixel_x = 7 +/obj/effect/turf_decal/techfloor/corner{ + dir = 1 }, -/obj/item/reagent_containers/food/drinks/coffee{ - pixel_x = 1; - pixel_y = 19; - layer = 3.1 +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 }, -/turf/open/floor/wood/walnut, /area/hangar) -"WZ" = ( -/obj/structure/marker_beacon{ - picked_color = "Teal" +"XX" = ( +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/turf/open/floor/plating, -/area/hangar) -"Xq" = ( -/turf/open/water/beach/deep, -/area/hangar) -"Xw" = ( -/obj/effect/decal/cleanable/oil, -/turf/open/floor/plasteel/dark, /area/hangar) -"XU" = ( -/obj/structure/closet/crate/trashcart/laundry, -/obj/effect/turf_decal/industrial/hatch/yellow, +"Yi" = ( /obj/effect/decal/cleanable/oil, -/turf/open/floor/plasteel/patterned/cargo_one, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) -"XV" = ( +"Yw" = ( +/obj/structure/railing{ + layer = 3.1 + }, /obj/structure/catwalk/over/plated_catwalk, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/general{ - dir = 6 +/obj/effect/turf_decal/spline/fancy/opaque/black, +/obj/structure/railing{ + layer = 3.1 }, +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/turf_decal/spline/fancy/opaque/black, +/obj/machinery/atmospherics/pipe/simple/general, /turf/open/floor/plating{ - icon_state = "platingdmg3" + icon_state = "platingdmg3"; + planetary_atmos = 1 }, /area/hangar) -"Yb" = ( -/obj/effect/turf_decal/industrial/warning/corner{ +"YK" = ( +/obj/structure/window/reinforced/spawner, +/obj/effect/spawner/structure/window/hollow/reinforced/middle{ dir = 4 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 +/turf/open/floor/plating{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/dark, /area/hangar) -"Yd" = ( -/obj/machinery/atmospherics/components/unary/tank/air{ - volume = 10000000 +"Zm" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/turf_decal/industrial/warning{ +/area/hangar) +"Zz" = ( +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor{ dir = 4 }, -/obj/machinery/light/directional/north, -/turf/open/floor/plating, -/area/hangar) -"Ym" = ( -/obj/effect/turf_decal/industrial/loading, -/turf/open/floor/plasteel/dark, +/obj/machinery/light/directional/east, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) -"Zc" = ( -/obj/effect/decal/cleanable/dirt, +"ZQ" = ( +/obj/structure/chair/comfy/black{ + dir = 1 + }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/concrete/slab_1, -/area/hangar) -"Zq" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw, -/obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, /area/hangar) -"Zx" = ( -/obj/structure/frame/computer{ - dir = 8 +"ZR" = ( +/obj/structure/marker_beacon{ + picked_color = "Teal" }, /turf/open/floor/plating{ - icon_state = "panelscorched" + planetary_atmos = 1 + }, +/area/hangar) +"ZU" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 5 + }, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 }, /area/hangar) @@ -1693,26 +2136,26 @@ ie ie ie ie -rP -OM -OM -OM -OM -OM -OM -OM -OM -OM -OM -OM -OM -OM -OM -OM -OM -OM -OM -rP +KY +Se +Se +Se +Se +Se +Se +Se +Se +Se +Se +Se +Se +Se +Se +Se +Se +Se +Se +KY ie ie gu @@ -1736,28 +2179,28 @@ au au au ie -dZ -wl -gx -bA -TM -gx -gx -gx -bA -TM -gx -gx -TM -lf -gx -gx -gx -TM -lf -gx -wl -vQ +fI +HX +gV +Av +Pv +gV +gV +gV +Av +Pv +gV +gV +Pv +QX +gV +gV +gV +Pv +QX +gV +HX +vG ie ie ie @@ -1780,28 +2223,28 @@ au au au au -yF -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -eX -Jl +Zm +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +Oh +Iy au au ie @@ -1823,29 +2266,29 @@ au au au au -Oq -Zq -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -Jl +QC +ck +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +Iy au au au @@ -1867,30 +2310,30 @@ au au au au -Oq -Cm -WZ -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -WZ -Jl -ur +QC +yO +ZR +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +ZR +Iy +ON au au ie @@ -1911,30 +2354,30 @@ au au au au -Oq -Cm -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -hr -nq +QC +yO +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +rJ +pT au au ie @@ -1953,32 +2396,32 @@ au au au wk -qO -au -Qx -Cm -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -hr -Oq +Sj +au +ed +yO +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +rJ +QC au au ie @@ -1997,32 +2440,32 @@ au au jS Xq -gg -eZ -ue -Cm -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -fj -ur +to +RI +fB +yO +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +gr +ON ie au ie @@ -2041,32 +2484,32 @@ au Xq Xq Xq -gg -rj -ue -Cm -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -Jl -ur +to +NX +fB +yO +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +Iy +ON au au ie @@ -2081,36 +2524,36 @@ gu ie au au -AB -ut -ut -ut -GU -rj -ue -lJ -WZ -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -WZ -Jl -ur +wo +gO +gO +gO +XP +NX +fB +Hk +ZR +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +ZR +Iy +ON au au ie @@ -2125,36 +2568,36 @@ gu ie au au -wv -dQ -XV -GT -kZ -EG -dv -Cm -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -Jl -Oq +Cf +LR +JF +QA +Ly +Yw +py +yO +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +Iy +QC au au ie @@ -2169,36 +2612,36 @@ ie ie ie ie -bZ -uw -Ne +QB +Ap +ug ie -yV -zp -MG -Cm -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -Jl -Oq +mq +iM +fy +yO +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +Iy +QC au au ie @@ -2209,40 +2652,40 @@ gu gu gu ie -bb -bb -bb +Mt +Mt +Mt ie -AN -Pz -Mi +KG +mb +eH ie -Yb -Sk -tH -Cm -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -fj -Oq +pF +tx +qh +yO +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +gr +QC au au ie @@ -2253,40 +2696,40 @@ gu gu gu ie -bb -bb -bb +Mt +Mt +Mt ie ie xu -tY +dw he -Hm -Oq -SZ -Cm -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -Jl -Oq +zK +QC +ON +yO +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +Iy +QC ie au ie @@ -2297,40 +2740,40 @@ gu gu gu ie -zI -wO -KA -KA -Vp -cX -nb +hs +NK +dN +dN +sZ +kU +OS he -Hm -Oq -xC -Cm -WZ -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -WZ -Jl -ur +zK +QC +HH +yO +ZR +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +ZR +Iy +ON au au au @@ -2341,40 +2784,40 @@ ie gu gu ie -oy -mx -qQ +ll +qg +PF ie ie -pf -Zx +Fm +XH au au au -ur -lJ -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -Jl -ur +ON +Hk +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +Iy +ON au au au @@ -2385,7 +2828,7 @@ ie gu gu ie -AH +AG ie ie ie @@ -2395,31 +2838,31 @@ au au au au -nq -Cm -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -Jl -ur -wH +pT +yO +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +Iy +ON +Iv au au au @@ -2429,7 +2872,7 @@ ie gu ie ie -Hy +ka ie au au @@ -2439,31 +2882,31 @@ au au au ie -ur -Cm -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -Jl -Oq -xd +ON +yO +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +Iy +QC +iV au au au @@ -2473,7 +2916,7 @@ ie ie ie au -bL +nW ie au zA @@ -2483,76 +2926,76 @@ au au au ie -Oq -Cm -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -fj -ur -Ij -JM +QC +yO +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +gr +ON +vq +zr au au ie "} (21,1,1) = {" ie -Yd -WP -TU -KV -wc -pb +jR +Lm +Wi +Uj +zc +CS zA au au au au ie -Oq -Cm -WZ -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -WZ -Jl -ur -gD -Ov +QC +yO +ZR +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +ZR +Iy +ON +mN +ai au au ie @@ -2563,40 +3006,40 @@ au au au ie -jn -pb -po -ex +cn +CS +RN +qH au au au au -Oq -Cm -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -Jl -ur -LG -wA +QC +yO +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +Iy +ON +vJ +UL au au ie @@ -2608,39 +3051,39 @@ ie ie ie au -Pr -uS -uS -uS +AD +xN +xN +xN au au au -Oq -lJ -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -Jl -nq -uN -Hj +QC +Hk +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +Iy +pT +zN +Ho ie au ie @@ -2652,39 +3095,39 @@ gu gu ie ie -kA -kA -kA -kA -JC +tF +tF +tF +tF +YK au au -Oq -Cm -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -hr -ur -zq -rL +QC +yO +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +rJ +ON +Ao +QL au au ie @@ -2695,40 +3138,40 @@ gu gu gu ie -vC -Tv -uy -Hp -Rv -pU +rX +UN +jy +Ia +NC +Lc au au -bQ -Cm -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -hr -ur -Ij -TA +iw +yO +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +rJ +ON +vq +wi au au ie @@ -2739,171 +3182,171 @@ ie ie ie ie -Bf -Dh -Dh -Dh -Vi -Fb -HC -nA -Sg -fv -WZ -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -WZ -fj -ur -Ij -rK +tq +XN +XN +XN +Xg +yd +oJ +dK +ep +Uc +ZR +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +ZR +gr +ON +vq +RB au au ie "} (27,1,1) = {" ie -bb -bb -FD -UG -dY -dY -Fo -dY -iK -Bt +Mt +Mt +hh +FC +kG +kG +jX +kG +kD +GA hJ -ly -UJ -Fs -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -Jl -ur -Kg -Lv +vn +jF +te +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +Iy +ON +RH +xF au au ie "} (28,1,1) = {" ie -bb -bb -bb -UG -PZ -Wb -Zc -PZ -PZ -uQ +Mt +Mt +Mt +FC +Tu +QP +Jk +Tu +Tu +bX ET -ly -kd -Fs -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -hr -Oq -Ij -kO +vn +zM +te +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +rJ +QC +vq +Hg ie au ie "} (29,1,1) = {" ie -bb -bb -bb -UG -HJ -Df -Df -Df -Hl -ga +Mt +Mt +Mt +FC +sP +eP +eP +eP +gE +vt HR -ly -xZ -dM -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -hr -Oq -TR +vn +ZU +hp +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +rJ +QC +vh au au au @@ -2917,36 +3360,36 @@ ie ie ie ie -WW -fW -qF -tc +JI +eg +He +LI au au -bQ -zR -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -hr -ur +iw +Ue +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +rJ +ON au au au @@ -2967,30 +3410,30 @@ ie ie au au -Oq -zR -WZ -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -WZ -hr -nq +QC +Ue +ZR +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +ZR +rJ +pT au au au @@ -3011,30 +3454,30 @@ ie ie au au -Oq -kr -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -LW -nq +QC +HP +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +kk +pT au au au @@ -3055,30 +3498,30 @@ ie au au au -Oq -zR -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -hr -Oq +QC +Ue +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +rJ +QC au au au @@ -3098,31 +3541,31 @@ au au au au -dD -ur -Ef -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -hr -eA +yQ +ON +Dx +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +rJ +TT au au au @@ -3142,31 +3585,31 @@ au au au ie -wh -ur -Ef -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -hr -Ud +tH +ON +Dx +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +rJ +Wo Xq au au @@ -3186,31 +3629,31 @@ au au ie ie -SA -Oq -Ef -WZ -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -WZ -hr -Ud +pt +QC +Dx +ZR +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +ZR +rJ +Wo Xq au au @@ -3229,32 +3672,32 @@ ie au au ie -Cb -cb -QM -Ef -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -hr -rd +Cd +zs +vz +Dx +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +rJ +ns au au au @@ -3272,33 +3715,33 @@ gu ie au au -xU -oE -aO -Ym -mu -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -fj -yo +UA +Jp +cq +px +ba +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +gr +qc ie au au @@ -3316,33 +3759,33 @@ gu ie au ie -jW -oE -Wk -Ym -Ef -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -Jl -Pp +QR +Jp +We +px +Dx +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +Iy +sY au au au @@ -3360,33 +3803,33 @@ gu ie au au -qe -Wk -Wk -Ym -Ef -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -hr -aB +oK +We +We +px +Dx +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +rJ +vk au au au @@ -3405,32 +3848,32 @@ ie au au au -Nd -GG -QM -Ef -WZ -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -WZ -Jl -Pp +Xs +TV +vz +Dx +ZR +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +ZR +Iy +sY au au au @@ -3450,31 +3893,31 @@ ie au au au -XU -Oq -Ef -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -Jl -TN +xi +QC +Dx +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +Iy +zy au au au @@ -3495,30 +3938,30 @@ au au au au -Oq -Ef -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -ye -Jl -ur +QC +Dx +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +Iy +ON au au au @@ -3539,30 +3982,30 @@ ie au au au -Oq -yq -LH -LH -jq -jq -jq -UU -jq -jq -jq -jq -Vg -LH -jq -jq -UU -LH -LH -jq -jq -jq -Sa -Oq +QC +BU +cY +cY +oU +oU +oU +lN +oU +oU +oU +oU +BL +cY +oU +oU +lN +cY +cY +oU +oU +oU +Fw +QC au au ie @@ -3585,27 +4028,27 @@ au au ie au -Xw -ur -ur -ur -Oq -Oq -td -ov -ov -ov -ov -fM -RQ -ur -ur -Oq -ur -ur -ur -ur -Oq +Yi +ON +ON +ON +QC +QC +De +Bx +Bx +Bx +Bx +dn +Sl +ON +ON +QC +ON +ON +ON +ON +QC au au au @@ -3637,12 +4080,12 @@ au au ie ie -ph -ph -ph +wm +wm +wm ie ie -GB +UV au au au @@ -3680,11 +4123,11 @@ au au ie ie -es -sJ -uT -dk -uM +Nw +sA +Tw +pQ +NW ie ie ie @@ -3723,16 +4166,16 @@ au au au ie -tU -iO -jk -tR -tR -Rh +rt +ZQ +cO +XX +XX +Cn ie -bb -bb -bb +Mt +Mt +Mt ie ie ie @@ -3767,16 +4210,16 @@ ie ie ie ie -dr -uk -eJ -ur -ur -fs +pu +mo +sG +ON +ON +Fv ie -bb -bb -bb +Mt +Mt +Mt ie gu gu @@ -3812,15 +4255,15 @@ gu gu ie ie -NF -iW -TG -cR -gY -Tc -gv -IW -gv +IE +pG +CI +BB +MV +gL +os +Zz +os ie gu gu diff --git a/_maps/outpost/hangar/test_2_40x40.dmm b/_maps/outpost/hangar/nt_asteroid_40x40.dmm similarity index 71% rename from _maps/outpost/hangar/test_2_40x40.dmm rename to _maps/outpost/hangar/nt_asteroid_40x40.dmm index d5f4c069a61c..a2c2f915da96 100644 --- a/_maps/outpost/hangar/test_2_40x40.dmm +++ b/_maps/outpost/hangar/nt_asteroid_40x40.dmm @@ -1,44 +1,4 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"ae" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - req_access_txt = "109" - }, -/obj/machinery/atmospherics/pipe/simple/general/hidden, -/turf/open/floor/concrete/slab_3, -/area/hangar) -"ah" = ( -/obj/effect/decal/cleanable/robot_debris{ - pixel_x = 12 - }, -/turf/open/floor/plasteel{ - color = "#808080" - }, -/area/hangar) -"ar" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/spawner/lootdrop/glowstick{ - pixel_x = 5; - pixel_y = 9 - }, -/turf/open/floor/plating, -/area/hangar) -"az" = ( -/obj/machinery/vending/coffee{ - pixel_x = 5 - }, -/obj/item/kirbyplants{ - icon_state = "plant-22"; - pixel_x = -11 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/item/toy/plush/moth{ - pixel_y = 21; - pixel_x = 6 - }, -/turf/open/floor/concrete/slab_3, -/area/hangar) "aF" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ dir = 8 @@ -46,37 +6,26 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, /area/hangar) -"aH" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/structure/girder, -/obj/structure/grille/broken, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/hangar) -"aL" = ( -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/machinery/computer/cargo/express{ - dir = 8 +"bg" = ( +/obj/effect/turf_decal/industrial/warning/corner, +/obj/structure/railing/corner, +/obj/effect/turf_decal/industrial/warning{ + dir = 10 }, -/obj/machinery/light/directional/east, /turf/open/floor/plasteel{ - color = "#808080" + color = "#808080"; + planetary_atmos = 1 }, /area/hangar) -"bt" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/effect/turf_decal/box/corners{ - dir = 8 +"ce" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/caution{ + dir = 1 }, -/turf/open/floor/plating/rust, -/area/hangar) -"cg" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel{ - color = "#808080" + color = "#808080"; + planetary_atmos = 1 }, /area/hangar) "cm" = ( @@ -85,11 +34,17 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, /area/hangar) -"db" = ( -/obj/structure/marker_beacon{ - picked_color = "Teal" +"cT" = ( +/obj/structure/chair/sofa/left{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/concrete/reinforced{ + planetary_atmos = 1 }, -/turf/open/floor/plating, /area/hangar) "dd" = ( /obj/effect/turf_decal/industrial/warning{ @@ -97,13 +52,23 @@ }, /turf/open/floor/plasteel/dark, /area/hangar) -"eM" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/caution{ - dir = 1 +"dZ" = ( +/obj/machinery/door/poddoor/shutters/indestructible/preopen{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/hangar) +"ec" = ( +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/machinery/computer/cargo/express{ + dir = 8 }, +/obj/machinery/light/directional/east, /turf/open/floor/plasteel{ - color = "#808080" + color = "#808080"; + planetary_atmos = 1 }, /area/hangar) "fn" = ( @@ -113,7 +78,20 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, /area/hangar) -"fE" = ( +"fR" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 8 + }, +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel/dark, +/area/hangar) +"gN" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/hangar) +"hb" = ( /obj/structure/catwalk/over, /obj/structure/table/wood, /obj/item/reagent_containers/syringe/contraband/space_drugs{ @@ -126,21 +104,16 @@ pixel_y = 1 }, /turf/open/floor/plating{ - icon_state = "foam_plating" - }, -/area/hangar) -"fR" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ - dir = 8 + icon_state = "foam_plating"; + planetary_atmos = 1 }, -/obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel/dark, /area/hangar) -"gN" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ - dir = 8 +"hj" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + color = "#808080"; + planetary_atmos = 1 }, -/turf/open/floor/plasteel/dark, /area/hangar) "ht" = ( /obj/structure/railing/corner{ @@ -162,43 +135,99 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, /area/hangar) +"hA" = ( +/turf/open/floor/plasteel{ + color = "#808080"; + planetary_atmos = 1 + }, +/area/hangar) +"hB" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/landmark/outpost/hangar_numbers, +/turf/open/floor/concrete/slab_3{ + planetary_atmos = 1 + }, +/area/hangar) "hG" = ( /obj/structure/flora/rock/pile/icy, /turf/open/floor/plating/asteroid/icerock, /area/hangar) +"hO" = ( +/turf/open/floor/plasteel/patterned/cargo_one{ + planetary_atmos = 1 + }, +/area/hangar) "hP" = ( /obj/machinery/door/poddoor/multi_tile/four_tile_ver, /turf/closed/indestructible/reinforced, /area/hangar) +"iA" = ( +/obj/structure/fluff/hedge, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/concrete/reinforced{ + planetary_atmos = 1 + }, +/area/hangar) "iG" = ( /obj/structure/railing{ dir = 1 }, /turf/open/floor/plasteel/dark, /area/hangar) -"iY" = ( -/obj/effect/turf_decal/techfloor{ - dir = 4 +"iL" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 }, -/obj/structure/rack, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/turf/open/floor/concrete/slab_3{ + planetary_atmos = 1 }, -/obj/structure/railing{ - dir = 1 +/area/hangar) +"iS" = ( +/obj/machinery/vending/coffee{ + pixel_x = 5 }, -/turf/open/floor/plasteel{ - color = "#808080" +/obj/item/kirbyplants{ + icon_state = "plant-22"; + pixel_x = -11 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/item/toy/plush/moth{ + pixel_y = 21; + pixel_x = 6 + }, +/turf/open/floor/concrete/slab_3{ + planetary_atmos = 1 }, /area/hangar) "jk" = ( /obj/structure/flora/rock/pile/icy, /turf/open/water/beach/deep, /area/hangar) +"jp" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) "jw" = ( /obj/machinery/light/directional/east, /turf/open/floor/plasteel/dark, /area/hangar) +"kf" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_3{ + planetary_atmos = 1 + }, +/area/hangar) "kF" = ( /obj/effect/decal/cleanable/garbage{ pixel_x = 11; @@ -210,14 +239,6 @@ }, /turf/open/floor/plasteel/dark, /area/hangar) -"kJ" = ( -/obj/effect/turf_decal/siding/wood, -/obj/effect/landmark/outpost/hangar_numbers, -/turf/open/floor/concrete/slab_3, -/area/hangar) -"kV" = ( -/turf/open/floor/plasteel/patterned/cargo_one, -/area/hangar) "la" = ( /obj/structure/railing{ layer = 3.1 @@ -226,23 +247,47 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, /area/hangar) -"ln" = ( -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/concrete/slab_3, +"lf" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/chair{ + dir = 8 + }, +/obj/structure/sign/poster/official/nanotrasen_logo{ + pixel_y = 32 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/concrete/reinforced{ + planetary_atmos = 1 + }, +/area/hangar) +"lr" = ( +/obj/effect/turf_decal/box/corners, +/obj/structure/closet/crate, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating{ + icon_state = "platingdmg1"; + planetary_atmos = 1 + }, +/area/hangar) +"ls" = ( +/obj/structure/chair/sofa/right{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/concrete/reinforced{ + planetary_atmos = 1 + }, /area/hangar) "lJ" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, /obj/machinery/light/floor/hangar, /turf/open/floor/plasteel/dark, /area/hangar) -"lO" = ( -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/machinery/light/directional/north, -/obj/effect/decal/cleanable/glass, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/hangar) "lP" = ( /obj/structure/railing{ dir = 4; @@ -253,6 +298,18 @@ }, /turf/open/water/beach/deep, /area/hangar) +"mg" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/open/floor/concrete/slab_3{ + planetary_atmos = 1 + }, +/area/hangar) "ml" = ( /obj/structure/railing/corner{ dir = 4 @@ -273,38 +330,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, /area/hangar) -"nN" = ( -/obj/structure/closet/crate, -/turf/open/floor/plating, -/area/hangar) -"of" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/structure/table/wood, -/obj/item/reagent_containers/food/drinks/coffee{ - pixel_x = -9; - pixel_y = 3 - }, -/obj/item/reagent_containers/food/drinks/mug/tea{ - pixel_y = 9; - pixel_x = 5 - }, -/obj/machinery/light/floor/hangar, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/concrete/slab_3, -/area/hangar) -"oi" = ( -/obj/item/stack/ore/salvage/scrapsilver{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/structure/railing{ - dir = 2; - layer = 4.1 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/hangar) "oj" = ( /turf/open/floor/plasteel/tech, /area/hangar) @@ -315,11 +340,44 @@ /obj/structure/fans/tiny/invisible, /turf/open/floor/plating/asteroid/icerock, /area/hangar) +"oC" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/item/stack/rods{ + pixel_x = -7; + pixel_y = -2 + }, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"oU" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/concrete/slab_3{ + planetary_atmos = 1 + }, +/area/hangar) "oX" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, /area/hangar) +"pa" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/concrete/slab_3{ + planetary_atmos = 1 + }, +/area/hangar) +"ph" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/turf/open/floor/plasteel{ + color = "#808080"; + planetary_atmos = 1 + }, +/area/hangar) "pt" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ dir = 1 @@ -329,33 +387,12 @@ "pz" = ( /turf/open/floor/plasteel/dark, /area/hangar) -"pE" = ( +"pF" = ( /obj/structure/catwalk/over/plated_catwalk, -/obj/item/stack/ore/salvage/scraptitanium/five, -/obj/machinery/light/directional/north, -/turf/open/floor/plating, -/area/hangar) -"pO" = ( -/obj/structure/grille, -/obj/structure/railing{ - dir = 1; - layer = 4.1 - }, -/obj/structure/railing{ - dir = 2; - layer = 4.1 - }, -/turf/open/floor/plating, -/area/hangar) -"qn" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 +/obj/machinery/atmospherics/components/binary/pump/on, +/turf/open/floor/plating{ + planetary_atmos = 1 }, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/concrete/reinforced, /area/hangar) "qq" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ @@ -365,6 +402,33 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, /area/hangar) +"qx" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/structure/sign/warning/nosmoking{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/patterned/cargo_one{ + planetary_atmos = 1 + }, +/area/hangar) +"qy" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/light/directional/east, +/turf/open/floor/plating/rust{ + planetary_atmos = 1 + }, +/area/hangar) +"qG" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/caution, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + color = "#808080"; + planetary_atmos = 1 + }, +/area/hangar) "qT" = ( /obj/effect/turf_decal/industrial/warning{ dir = 4 @@ -379,12 +443,13 @@ }, /turf/open/floor/plasteel/dark, /area/hangar) -"rc" = ( -/obj/effect/turf_decal/industrial/warning{ +"ri" = ( +/obj/effect/turf_decal/siding/wood{ dir = 1 }, -/turf/open/floor/plasteel{ - color = "#808080" +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_3{ + planetary_atmos = 1 }, /area/hangar) "rp" = ( @@ -397,29 +462,24 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/concrete/slab_2, /area/hangar) -"rF" = ( -/obj/structure/easel, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/hangar) -"sc" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/structure/railing{ - dir = 2; - layer = 4.1 +"rH" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel{ - color = "#808080" +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/open/floor/concrete/slab_3{ + planetary_atmos = 1 }, /area/hangar) -"sn" = ( -/obj/effect/decal/cleanable/oil, -/turf/open/floor/plating/rust, -/area/hangar) -"sp" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/structure/frame/machine, -/turf/open/floor/plating, +"se" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/obj/structure/closet/crate/bin, +/turf/open/floor/concrete/tiles{ + planetary_atmos = 1 + }, /area/hangar) "sW" = ( /obj/structure/sign/departments/cargo{ @@ -432,87 +492,125 @@ /obj/machinery/light/floor/hangar, /turf/open/floor/plasteel/dark, /area/hangar) -"ue" = ( -/obj/machinery/door/airlock, -/obj/effect/landmark/outpost/elevator_machine, -/turf/open/floor/plasteel{ - color = "#808080" +"uf" = ( +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/obj/machinery/light/directional/north, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plasteel/patterned/cargo_one{ + planetary_atmos = 1 }, /area/hangar) -"ui" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 9 +"vu" = ( +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/cargo_one{ + planetary_atmos = 1 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/concrete/slab_3, /area/hangar) -"vW" = ( +"vy" = ( +/obj/effect/turf_decal/industrial/warning, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/hangar) -"wj" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 +/turf/open/floor/plasteel{ + color = "#808080"; + planetary_atmos = 1 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/concrete/slab_3, /area/hangar) -"wH" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw{ - dir = 8 +"vF" = ( +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/obj/structure/closet/crate, +/turf/open/floor/plasteel/patterned/cargo_one{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/dark, /area/hangar) -"wZ" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +"vG" = ( +/obj/item/stack/ore/salvage/scrapsilver{ + pixel_x = 4; + pixel_y = 4 }, -/obj/effect/turf_decal/industrial/caution, -/turf/open/floor/plasteel{ - color = "#808080" +/obj/structure/railing{ + dir = 2; + layer = 4.1 + }, +/turf/open/floor/plasteel/tech/techmaint{ + planetary_atmos = 1 }, /area/hangar) -"xj" = ( -/turf/open/floor/plasteel/elevatorshaft, +"wc" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating/rust{ + planetary_atmos = 1 + }, /area/hangar) -"xk" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ - dir = 8 +"wm" = ( +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/structure/rack, +/obj/effect/turf_decal/industrial/warning, +/obj/structure/railing{ + dir = 2; + layer = 4.1 + }, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/plasteel{ + color = "#808080"; + planetary_atmos = 1 }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, /area/hangar) -"xG" = ( -/obj/structure/sign/poster/official/nanotrasen_logo{ - pixel_y = 32 +"ws" = ( +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/structure/rack, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plasteel{ + color = "#808080"; + planetary_atmos = 1 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/rust, /area/hangar) -"xN" = ( +"wu" = ( /obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/caution{ - dir = 1 +/obj/structure/railing{ + dir = 2; + layer = 4.1 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel{ - color = "#808080" + color = "#808080"; + planetary_atmos = 1 }, /area/hangar) -"xR" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/item/kirbyplants{ - icon_state = "plant-25"; - pixel_x = 11 +"wH" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw{ + dir = 8 }, +/turf/open/floor/plasteel/dark, +/area/hangar) +"wJ" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/item/stack/ore/salvage/scraptitanium/five, +/obj/machinery/light/directional/north, /turf/open/floor/plating{ - icon_state = "panelscorched" + planetary_atmos = 1 }, /area/hangar) -"xU" = ( -/obj/effect/decal/cleanable/garbage, -/turf/open/floor/plating, +"xk" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, /area/hangar) "xX" = ( /obj/effect/turf_decal/industrial/warning{ @@ -533,10 +631,15 @@ /obj/structure/girder/displaced, /turf/open/floor/plasteel/dark, /area/hangar) -"yV" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/machinery/light/directional/east, -/turf/open/floor/plating/rust, +"yU" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + color = "#808080"; + planetary_atmos = 1 + }, /area/hangar) "zd" = ( /obj/machinery/light/floor/hangar, @@ -545,137 +648,109 @@ }, /turf/open/floor/plasteel/dark, /area/hangar) +"zL" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_3{ + planetary_atmos = 1 + }, +/area/hangar) "zY" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, /area/hangar) -"Ab" = ( -/obj/item/stack/cable_coil/cut/yellow, +"Aa" = ( +/obj/structure/grille, +/obj/structure/railing{ + dir = 1; + layer = 4.1 + }, /obj/structure/railing{ dir = 2; layer = 4.1 }, -/turf/open/floor/plasteel/tech/techmaint, -/area/hangar) -"Ak" = ( -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel{ - color = "#808080" +/turf/open/floor/plating{ + planetary_atmos = 1 }, /area/hangar) -"Ar" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 +"AI" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/frame/machine, +/turf/open/floor/plating{ + planetary_atmos = 1 }, -/turf/open/floor/concrete/slab_3, /area/hangar) "AO" = ( /obj/machinery/light/directional/south, /turf/open/floor/plating/asteroid/icerock/cracked, /area/hangar) -"Be" = ( -/obj/effect/turf_decal/siding/wood/corner, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/concrete/slab_3, -/area/hangar) -"BE" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/warning{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/hangar) -"BL" = ( -/obj/effect/turf_decal/box/corners{ - dir = 4 +"AT" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/railing{ + dir = 2; + layer = 4.1 }, -/obj/structure/closet/crate, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/hangar) -"BZ" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 +/obj/item/stack/rods{ + pixel_x = -7; + pixel_y = -2 }, -/obj/effect/turf_decal/siding/wood, -/obj/structure/closet/crate/bin, -/turf/open/floor/concrete/tiles, -/area/hangar) -"Cl" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/structure/sign/warning/nosmoking{ - pixel_y = 32 +/obj/structure/grille/broken, +/obj/structure/girder/reinforced, +/turf/open/floor/plating{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/patterned/cargo_one, /area/hangar) -"Cy" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 +"Bb" = ( +/obj/effect/decal/cleanable/robot_debris{ + pixel_x = 12 }, -/obj/structure/table, -/obj/item/paper/pamphlet/gateway{ - pixel_x = 6; - pixel_y = 4 +/turf/open/floor/plasteel{ + color = "#808080"; + planetary_atmos = 1 }, -/obj/item/paper/pamphlet/centcom{ - pixel_x = 8; - pixel_y = 1 +/area/hangar) +"Br" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 }, -/obj/item/paper_bin{ - pixel_x = -6; - pixel_y = 4 +/turf/open/floor/concrete/slab_3{ + planetary_atmos = 1 }, -/obj/item/pen{ - pixel_y = 4; - pixel_x = -7 +/area/hangar) +"BE" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/warning{ + dir = 8 }, -/turf/open/floor/concrete/reinforced, +/turf/open/floor/plasteel/tech, /area/hangar) -"CV" = ( -/obj/structure/bed{ - icon_state = "dirty_mattress" +"BI" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/components/unary/tank/air{ + volume = 10000000 }, -/obj/structure/catwalk/over, /turf/open/floor/plating{ - icon_state = "panelscorched" + planetary_atmos = 1 }, /area/hangar) -"De" = ( -/obj/effect/landmark/outpost/hangar_dock, -/turf/open/floor/plating, -/area/hangar) -"Dm" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/item/trash/boritos, -/turf/open/floor/plating, -/area/hangar) -"DA" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/oil/streak, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/hangar) -"DK" = ( -/turf/closed/mineral/random/snow, -/area/hangar) -"DP" = ( -/obj/effect/turf_decal/box/corners, +"Cw" = ( /obj/structure/closet/crate, -/obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plating{ - icon_state = "platingdmg1" + planetary_atmos = 1 }, /area/hangar) +"DK" = ( +/turf/closed/mineral/random/snow, +/area/hangar) "DS" = ( /obj/structure/fence/door, /obj/structure/fans/tiny/invisible, /turf/open/floor/plating/asteroid/icerock, /area/hangar) -"DY" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/caution, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel{ - color = "#808080" +"Er" = ( +/turf/open/floor/plating{ + planetary_atmos = 1 }, /area/hangar) "Et" = ( @@ -695,6 +770,18 @@ }, /turf/open/floor/plasteel/dark, /area/hangar) +"EC" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/passive_vent{ + dir = 1 + }, +/turf/open/floor/concrete/slab_3{ + planetary_atmos = 1 + }, +/area/hangar) "EJ" = ( /obj/structure/railing{ dir = 1; @@ -705,21 +792,6 @@ }, /turf/open/water/beach/deep, /area/hangar) -"Fj" = ( -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/structure/rack, -/obj/effect/turf_decal/industrial/warning, -/obj/structure/railing{ - dir = 2; - layer = 4.1 - }, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/plasteel{ - color = "#808080" - }, -/area/hangar) "Fl" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -732,11 +804,21 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/concrete/slab_2, /area/hangar) -"Fp" = ( -/obj/structure/railing/corner{ - dir = 8 +"Fy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/poddoor/shutters/indestructible/preopen{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/hangar) +"FC" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/girder, +/obj/structure/grille/broken, +/turf/open/floor/plating{ + icon_state = "platingdmg1"; + planetary_atmos = 1 }, -/turf/open/floor/plasteel/dark, /area/hangar) "FI" = ( /obj/effect/turf_decal/siding/wood{ @@ -744,26 +826,16 @@ }, /turf/open/floor/concrete/slab_2, /area/hangar) -"FL" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 +"FT" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/rust{ + planetary_atmos = 1 }, -/obj/machinery/atmospherics/pipe/simple/general/hidden, -/turf/open/floor/concrete/slab_3, /area/hangar) "FY" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw, /turf/open/floor/plasteel/dark, /area/hangar) -"Gg" = ( -/obj/structure/closet/crate, -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/turf/open/floor/plating{ - icon_state = "foam_plating" - }, -/area/hangar) "Gm" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -771,15 +843,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/concrete/slab_2, /area/hangar) -"Gu" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/structure/chair{ - dir = 4 +"GI" = ( +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 }, -/obj/machinery/atmospherics/pipe/simple/general/hidden, -/turf/open/floor/concrete/slab_3, /area/hangar) "Hg" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ @@ -788,25 +855,14 @@ /obj/machinery/light/floor/hangar, /turf/open/floor/plasteel/dark, /area/hangar) -"Hi" = ( -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 4 - }, -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 9 - }, -/turf/open/floor/plasteel{ - color = "#808080" +"HP" = ( +/obj/structure/sign/poster/official/nanotrasen_logo{ + pixel_y = 32 }, -/area/hangar) -"HW" = ( -/obj/effect/turf_decal/box/corners{ - dir = 8 +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/rust{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/patterned/cargo_one, /area/hangar) "HY" = ( /turf/open/floor/plating/asteroid/icerock/smooth, @@ -825,6 +881,29 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, /area/hangar) +"IB" = ( +/obj/structure/bed{ + icon_state = "dirty_mattress" + }, +/obj/structure/catwalk/over, +/turf/open/floor/plating{ + icon_state = "panelscorched"; + planetary_atmos = 1 + }, +/area/hangar) +"IE" = ( +/obj/structure/closet/crate, +/obj/item/storage/box/donkpockets{ + pixel_x = 6; + pixel_y = -3 + }, +/obj/machinery/light/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/patterned/cargo_one{ + planetary_atmos = 1 + }, +/area/hangar) "IF" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ dir = 8 @@ -833,23 +912,41 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, /area/hangar) +"IK" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/caution, +/turf/open/floor/plasteel{ + color = "#808080"; + planetary_atmos = 1 + }, +/area/hangar) +"Jq" = ( +/obj/item/stack/cable_coil/cut/yellow, +/obj/structure/railing{ + dir = 2; + layer = 4.1 + }, +/turf/open/floor/plasteel/tech/techmaint{ + planetary_atmos = 1 + }, +/area/hangar) +"Js" = ( +/obj/structure/easel, +/turf/open/floor/plasteel/patterned/cargo_one{ + planetary_atmos = 1 + }, +/area/hangar) "JN" = ( /turf/closed/indestructible/reinforced, /area/hangar) -"Ka" = ( +"JZ" = ( /obj/structure/catwalk/over/plated_catwalk, -/obj/structure/firelock_frame, /turf/open/floor/plating{ - icon_state = "panelscorched" + planetary_atmos = 1 }, /area/hangar) -"Kf" = ( -/obj/structure/fluff/hedge, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/concrete/reinforced, -/area/hangar) "Km" = ( /turf/open/floor/plating/asteroid/icerock/cracked, /area/hangar) @@ -859,36 +956,65 @@ }, /turf/open/floor/plasteel/dark, /area/hangar) +"KJ" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/girder, +/obj/structure/grille/broken, +/obj/structure/railing{ + dir = 2; + layer = 4.1 + }, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"KL" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + req_access_txt = "109" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/open/floor/concrete/slab_3{ + planetary_atmos = 1 + }, +/area/hangar) "KN" = ( /obj/effect/turf_decal/siding/wood, /obj/effect/decal/cleanable/dirt, /turf/open/floor/concrete/slab_2, /area/hangar) -"Lc" = ( -/obj/structure/closet/crate, -/obj/item/storage/box/donkpockets{ +"KQ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/table, +/obj/item/paper/pamphlet/gateway{ pixel_x = 6; - pixel_y = -3 + pixel_y = 4 }, -/obj/machinery/light/directional/south, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/hangar) -"Lq" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/obj/item/paper/pamphlet/centcom{ + pixel_x = 8; + pixel_y = 1 }, -/obj/structure/railing{ - dir = 1 +/obj/item/paper_bin{ + pixel_x = -6; + pixel_y = 4 }, -/turf/open/floor/plasteel{ - color = "#808080" +/obj/item/pen{ + pixel_y = 4; + pixel_x = -7 + }, +/turf/open/floor/concrete/reinforced{ + planetary_atmos = 1 }, /area/hangar) -"Lr" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/rust, +"KS" = ( +/obj/item/stack/rods{ + pixel_x = 7; + pixel_y = -9 + }, +/turf/open/floor/plasteel/tech/techmaint{ + planetary_atmos = 1 + }, /area/hangar) "LE" = ( /obj/effect/decal/cleanable/oil, @@ -897,12 +1023,17 @@ "LH" = ( /turf/template_noop, /area/template_noop) -"LV" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 +"LK" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/concrete/reinforced{ + planetary_atmos = 1 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/concrete/slab_3, /area/hangar) "Mg" = ( /obj/structure/girder/displaced, @@ -912,35 +1043,51 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, /area/hangar) +"Mt" = ( +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 4 + }, +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 9 + }, +/turf/open/floor/plasteel{ + color = "#808080"; + planetary_atmos = 1 + }, +/area/hangar) "Mu" = ( /turf/open/floor/plating/asteroid/iceberg, /area/hangar) -"Na" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/structure/chair{ - dir = 8 +"Nt" = ( +/turf/open/floor/plasteel/tech/techmaint{ + planetary_atmos = 1 }, -/obj/structure/sign/poster/official/nanotrasen_logo{ - pixel_y = 32 +/area/hangar) +"Ny" = ( +/obj/effect/landmark/outpost/elevator, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 }, -/obj/machinery/light/directional/east, -/turf/open/floor/concrete/reinforced, /area/hangar) -"Nq" = ( -/obj/structure/chair/sofa/left{ - dir = 1 +"NE" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/spawner/lootdrop/glowstick{ + pixel_x = 5; + pixel_y = 9 }, -/obj/effect/turf_decal/siding/wood{ - dir = 1 +/turf/open/floor/plating{ + planetary_atmos = 1 }, -/obj/machinery/light/directional/south, -/turf/open/floor/concrete/reinforced, /area/hangar) -"NL" = ( -/obj/effect/landmark/outpost/elevator, -/turf/open/floor/plasteel/elevatorshaft, +"NX" = ( +/obj/effect/turf_decal/industrial/warning, +/turf/open/floor/plasteel{ + color = "#808080"; + planetary_atmos = 1 + }, /area/hangar) "Og" = ( /obj/effect/turf_decal/siding/wood{ @@ -950,29 +1097,28 @@ /obj/machinery/light/directional/east, /turf/open/floor/concrete/slab_2, /area/hangar) -"Oz" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/item/stack/rods{ - pixel_x = -7; - pixel_y = -2 - }, -/turf/open/floor/plating, -/area/hangar) -"OG" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/poddoor/shutters/indestructible/preopen, -/turf/open/floor/plasteel/tech, -/area/hangar) "OI" = ( /obj/effect/turf_decal/arrows{ dir = 1 }, /turf/open/floor/plasteel/tech, /area/hangar) -"Ph" = ( -/obj/effect/turf_decal/siding/wood, +"OZ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/concrete/slab_3, +/obj/effect/decal/cleanable/oil/streak, +/turf/open/floor/plasteel/patterned/cargo_one{ + planetary_atmos = 1 + }, +/area/hangar) +"Pf" = ( +/obj/structure/closet/crate, +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/turf/open/floor/plating{ + icon_state = "foam_plating"; + planetary_atmos = 1 + }, /area/hangar) "Po" = ( /obj/item/flashlight/lantern{ @@ -980,35 +1126,46 @@ }, /turf/open/floor/plating/asteroid/icerock, /area/hangar) -"Px" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/turf/open/floor/plasteel{ - color = "#808080" +"Pu" = ( +/obj/structure/sign/poster/contraband/random{ + pixel_y = 32 }, -/area/hangar) -"PL" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 +/obj/machinery/light/directional/east, +/turf/open/floor/plating{ + icon_state = "foam_plating"; + planetary_atmos = 1 }, -/turf/open/floor/concrete/slab_3, /area/hangar) "Qb" = ( /obj/structure/flora/rock/icy, /turf/open/water/beach/deep, /area/hangar) -"QJ" = ( +"Qr" = ( /obj/structure/catwalk/over/plated_catwalk, -/obj/item/stack/cable_coil/cut/yellow, -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, +/obj/item/kirbyplants{ + icon_state = "plant-25"; + pixel_x = 11 + }, /turf/open/floor/plating{ - icon_state = "panelscorched" + icon_state = "panelscorched"; + planetary_atmos = 1 + }, +/area/hangar) +"Qy" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/caution{ + dir = 1 + }, +/turf/open/floor/plasteel{ + color = "#808080"; + planetary_atmos = 1 }, /area/hangar) -"QV" = ( -/turf/open/floor/plasteel/tech/techmaint, +"Rw" = ( +/obj/effect/landmark/outpost/hangar_dock, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, /area/hangar) "RA" = ( /obj/structure/railing{ @@ -1024,29 +1181,14 @@ }, /turf/open/water/beach/deep, /area/hangar) -"RB" = ( -/obj/machinery/door/poddoor/shutters/indestructible/preopen, -/turf/open/floor/plasteel/tech, -/area/hangar) -"Sf" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/structure/railing{ - dir = 2; - layer = 4.1 - }, -/obj/item/stack/rods{ - pixel_x = -7; - pixel_y = -2 +"RS" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/box/corners{ + dir = 8 }, -/obj/structure/grille/broken, -/obj/structure/girder/reinforced, -/turf/open/floor/plating, -/area/hangar) -"Sg" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 6 +/turf/open/floor/plating/rust{ + planetary_atmos = 1 }, -/turf/open/floor/concrete/slab_3, /area/hangar) "So" = ( /obj/structure/flora/rock/icy{ @@ -1055,12 +1197,11 @@ }, /turf/open/water/beach/deep, /area/hangar) -"SO" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 +"Td" = ( +/obj/effect/decal/cleanable/garbage, +/turf/open/floor/plating{ + planetary_atmos = 1 }, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/concrete/tiles, /area/hangar) "Th" = ( /obj/structure/fence/corner{ @@ -1069,15 +1210,6 @@ /obj/structure/fans/tiny/invisible, /turf/open/floor/plating/asteroid/icerock, /area/hangar) -"Ts" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel{ - color = "#808080" - }, -/area/hangar) "Tw" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ dir = 1 @@ -1091,22 +1223,11 @@ /obj/effect/turf_decal/spline/fancy/opaque/black/corner, /turf/open/water/beach/deep, /area/hangar) -"TV" = ( -/obj/item/stack/rods{ - pixel_x = 7; - pixel_y = -9 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/hangar) -"Uc" = ( +"Us" = ( /obj/structure/catwalk/over/plated_catwalk, -/obj/structure/railing{ - dir = 2; - layer = 4.1 - }, -/obj/structure/grille, +/obj/item/trash/boritos, /turf/open/floor/plating{ - icon_state = "platingdmg2" + planetary_atmos = 1 }, /area/hangar) "UB" = ( @@ -1122,11 +1243,16 @@ }, /turf/open/water/beach/deep, /area/hangar) -"Vb" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel{ - color = "#808080" +"UT" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/railing{ + dir = 2; + layer = 4.1 + }, +/obj/structure/grille, +/turf/open/floor/plating{ + icon_state = "platingdmg2"; + planetary_atmos = 1 }, /area/hangar) "Vc" = ( @@ -1147,16 +1273,6 @@ /obj/effect/decal/cleanable/glass, /turf/open/floor/plasteel/dark, /area/hangar) -"Vf" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/passive_vent{ - dir = 1 - }, -/turf/open/floor/concrete/slab_3, -/area/hangar) "Vj" = ( /obj/structure/fence{ dir = 1 @@ -1164,59 +1280,42 @@ /obj/structure/fans/tiny/invisible, /turf/open/floor/plating/asteroid/icerock, /area/hangar) -"Vo" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/structure/girder, -/obj/structure/grille/broken, -/obj/structure/railing{ - dir = 2; - layer = 4.1 - }, -/turf/open/floor/plating, +"Vk" = ( +/obj/machinery/door/airlock, +/obj/effect/landmark/outpost/elevator_machine, +/obj/structure/lattice/catwalk, +/turf/open/floor/engine, /area/hangar) -"Vq" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/machinery/atmospherics/components/unary/tank/air{ - volume = 10000000 +"Vy" = ( +/obj/effect/turf_decal/siding/wood/corner, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_3{ + planetary_atmos = 1 }, -/turf/open/floor/plating, /area/hangar) -"Vz" = ( -/obj/structure/sign/poster/contraband/random{ - pixel_y = 32 +"VA" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/cargo_one{ + planetary_atmos = 1 }, -/obj/machinery/light/directional/east, +/area/hangar) +"Wo" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/firelock_frame, /turf/open/floor/plating{ - icon_state = "foam_plating" + icon_state = "panelscorched"; + planetary_atmos = 1 }, /area/hangar) -"VS" = ( -/obj/effect/turf_decal/industrial/warning/corner, -/obj/structure/railing/corner, -/obj/effect/turf_decal/industrial/warning{ - dir = 10 - }, -/turf/open/floor/plasteel{ - color = "#808080" +"Xp" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 }, -/area/hangar) -"VZ" = ( -/turf/open/floor/plating, -/area/hangar) -"Wc" = ( -/obj/structure/catwalk/over/plated_catwalk, -/turf/open/floor/plating, -/area/hangar) -"Wp" = ( -/turf/open/floor/plasteel{ - color = "#808080" +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/concrete/tiles{ + planetary_atmos = 1 }, /area/hangar) -"Xt" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/machinery/atmospherics/components/binary/pump/on, -/turf/open/floor/plating, -/area/hangar) "Xx" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ dir = 1 @@ -1234,12 +1333,30 @@ "XF" = ( /turf/open/water/beach/deep, /area/hangar) +"Yt" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/item/stack/cable_coil/cut/yellow, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating{ + icon_state = "panelscorched"; + planetary_atmos = 1 + }, +/area/hangar) "YA" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ dir = 8 }, /turf/open/floor/plasteel/dark, /area/hangar) +"YN" = ( +/obj/structure/marker_beacon{ + picked_color = "Teal" + }, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) "YO" = ( /obj/structure/railing{ layer = 3.1 @@ -1247,15 +1364,52 @@ /obj/structure/fans/tiny/invisible, /turf/open/floor/plasteel/dark, /area/hangar) -"ZD" = ( -/obj/structure/chair/sofa/right{ +"YX" = ( +/obj/effect/turf_decal/industrial/warning{ dir = 1 }, -/obj/effect/turf_decal/siding/wood{ +/obj/structure/railing{ dir = 1 }, +/turf/open/floor/plasteel{ + color = "#808080"; + planetary_atmos = 1 + }, +/area/hangar) +"Zi" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_3{ + planetary_atmos = 1 + }, +/area/hangar) +"ZE" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/coffee{ + pixel_x = -9; + pixel_y = 3 + }, +/obj/item/reagent_containers/food/drinks/mug/tea{ + pixel_y = 9; + pixel_x = 5 + }, +/obj/machinery/light/floor/hangar, /obj/item/radio/intercom/directional/east, -/turf/open/floor/concrete/reinforced, +/turf/open/floor/concrete/slab_3{ + planetary_atmos = 1 + }, +/area/hangar) +"ZX" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/turf/open/floor/plasteel{ + color = "#808080"; + planetary_atmos = 1 + }, /area/hangar) (1,1,1) = {" @@ -1498,46 +1652,46 @@ DK DK DK FY -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -De +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Rw pt DK DK @@ -1556,46 +1710,46 @@ DK DK pz FY -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er pt pz DK @@ -1614,46 +1768,46 @@ DK DK pz FY -db -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -db +YN +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +YN pt pz DK @@ -1672,46 +1826,46 @@ DK DK pz FY -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er pt pz JN @@ -1730,46 +1884,46 @@ DK DK pz tN -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er Et zY DK @@ -1788,46 +1942,46 @@ DK DK pz FY -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er pt zY DK @@ -1846,46 +2000,46 @@ DK DK pz oX -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er Xx pz DK @@ -1904,49 +2058,49 @@ DK DK fn oX -db -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -db +YN +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +YN pt pz -aH +FC DK DK DK @@ -1959,52 +2113,52 @@ JN DK DK DK -pO +Aa Iw FY -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er pt zY -Dm +Us DK DK DK @@ -2017,53 +2171,53 @@ JN DK DK DK -pO +Aa Mg FY -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er pt zY -Wc -xR +JZ +Qr DK DK DK @@ -2075,53 +2229,53 @@ JN DK DK DK -pO +Aa xX tN -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er Et zY -CV -fE +IB +hb DK DK DK @@ -2132,50 +2286,50 @@ JN JN DK DK -sp -Sf +AI +AT dd FY -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er pt pz Th @@ -2190,50 +2344,50 @@ JN JN DK DK -Oz -Ab +oC +Jq Iw FY -db -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -db +YN +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +YN pt zY oq @@ -2248,50 +2402,50 @@ JN JN JN JN -pE -QV +wJ +Nt ya FY -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er pt zY oq @@ -2306,50 +2460,50 @@ JN JN DK DK -ar -TV +NE +KS Iw FY -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er pt zY oq @@ -2364,50 +2518,50 @@ JN JN DK DK -Ka -oi +Wo +vG Iw FY -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er pt zY oq @@ -2422,50 +2576,50 @@ JN JN DK DK -QJ -Uc +Yt +UT dd tN -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er Et zY oq @@ -2481,49 +2635,49 @@ JN DK DK DK -Vo +KJ Iw FY -db -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -db +YN +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +YN pt pz oq @@ -2542,46 +2696,46 @@ DK DK Xz FY -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er pt pz DS @@ -2600,46 +2754,46 @@ DK DK zY FY -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er pt pz oq @@ -2658,46 +2812,46 @@ DK DK zY FY -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er pt zY oq @@ -2716,46 +2870,46 @@ DK DK pz FY -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er pt zY oq @@ -2774,46 +2928,46 @@ DK DK pz tN -db -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -db +YN +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +YN Et zY oq @@ -2832,46 +2986,46 @@ DK DK zY FY -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er pt pz oq @@ -2890,46 +3044,46 @@ DK JN zY FY -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er pt pz JN @@ -2948,46 +3102,46 @@ DK DK ml FY -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er pt pz DK @@ -3006,46 +3160,46 @@ DK DK iG oX -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er Xx pz DK @@ -3064,46 +3218,46 @@ DK JN iG FY -db -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -db +YN +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +YN Xx pz DK @@ -3122,46 +3276,46 @@ DK JN iG cm -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er Tw pz DK @@ -3180,46 +3334,46 @@ DK DK iG oX -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er Xx pz JN @@ -3238,46 +3392,46 @@ DK DK ht oX -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er pt pz DK @@ -3296,46 +3450,46 @@ DK DK pz FY -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er pt zY DK @@ -3354,46 +3508,46 @@ DK DK pz FY -db -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -db +YN +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +YN Xx zY DK @@ -3412,46 +3566,46 @@ DK DK pz oX -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er Xx hz DK @@ -3470,46 +3624,46 @@ DK DK pz cm -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er nK YO Mu @@ -3528,46 +3682,46 @@ DK DK pz FY -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er Xx YO Mu @@ -3586,46 +3740,46 @@ DK DK pz FY -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er pt YO Mu @@ -3644,46 +3798,46 @@ DK DK zY FY -db -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -db +YN +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +YN pt YO Mu @@ -3702,46 +3856,46 @@ DK DK zY FY -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er pt la Mu @@ -3760,46 +3914,46 @@ DK DK kF FY -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ -VZ +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er +Er Xx la Mu @@ -3859,7 +4013,7 @@ gN aF xk qq -Fp +jp JN DK DK @@ -3937,8 +4091,8 @@ DK DK DK DK -RB -OG +dZ +Fy DK DK DK @@ -3995,8 +4149,8 @@ XF XF XF hw -wj -ln +ri +pa DK DK DK @@ -4008,9 +4162,9 @@ DK JN Vc Ew -Hi -Px -VS +Mt +ph +bg Ew qT JN @@ -4054,7 +4208,7 @@ XF XF hw FI -Ph +Zi RA XF XF @@ -4064,13 +4218,13 @@ DK DK DK JN -lO -HW -Lq -Wp -sc -Gg -bt +uf +vu +YX +hA +wu +Pf +RS DK DK DK @@ -4111,8 +4265,8 @@ XF XF Tz UO -Ar -Ph +oU +Zi EJ XF XF @@ -4122,13 +4276,13 @@ XF DK DK JN -xG -kV -wZ -cg -xN -kV -xU +HP +hO +IK +hj +ce +hO +Td DK DK DK @@ -4168,8 +4322,8 @@ DK lP lP UO -ui -LV +kf +zL rB EJ XF @@ -4180,13 +4334,13 @@ jk DK DK JN -Cl -vW -rc -Wp -Ak -kV -rF +qx +VA +ZX +hA +NX +hO +Js DK JN JN @@ -4220,15 +4374,15 @@ LH LH JN JN -Vq -Xt -ae -FL -FL -Gu -Vf -Be -Sg +BI +pF +KL +rH +rH +mg +EC +Vy +iL EJ XF XF @@ -4238,13 +4392,13 @@ DK DK DK JN -nN -DA -Ts -cg -Vb -vW -Lc +Cw +OZ +yU +hj +vy +VA +IE JN JN LH @@ -4278,14 +4432,14 @@ LH LH LH JN -yV -Wc +qy +JZ JN -az +iS Og -of -PL -Ph +ZE +Br +Zi DK DK DK @@ -4296,13 +4450,13 @@ DK DK DK JN -Vz -Lr -DY -ah -eM -kV -sn +Pu +FT +qG +Bb +Qy +hO +wc JN LH LH @@ -4343,8 +4497,8 @@ JN JN JN Fl -Ph -BZ +Zi +se DK DK DK @@ -4355,11 +4509,11 @@ DK JN JN JN -DP -iY -aL -Fj -BL +lr +ws +ec +wm +vF JN JN LH @@ -4396,14 +4550,14 @@ LH LH LH JN -xj -xj -NL -ue -wj -ln -SO -Kf +GI +GI +Ny +Vk +ri +pa +Xp +iA JN DK DK @@ -4454,14 +4608,14 @@ LH LH LH JN -xj -xj -xj -ue +GI +GI +GI +Vk Gm -kJ -SO -Nq +hB +Xp +cT JN DK DK @@ -4512,14 +4666,14 @@ LH LH LH JN -xj -xj -xj -ue -Ar +GI +GI +GI +Vk +oU KN -SO -ZD +Xp +ls JN JN JN @@ -4574,9 +4728,9 @@ JN JN JN JN -Na -Cy -qn +lf +KQ +LK JN JN LH diff --git a/_maps/outpost/hangar/test_2_56x20.dmm b/_maps/outpost/hangar/nt_asteroid_56x20.dmm similarity index 78% rename from _maps/outpost/hangar/test_2_56x20.dmm rename to _maps/outpost/hangar/nt_asteroid_56x20.dmm index aa7bc893a0ab..19221a5de90a 100644 --- a/_maps/outpost/hangar/test_2_56x20.dmm +++ b/_maps/outpost/hangar/nt_asteroid_56x20.dmm @@ -3,11 +3,15 @@ /obj/effect/turf_decal/trimline/opaque/yellow/warning{ dir = 8 }, -/turf/open/floor/plasteel/tech, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, /area/hangar) "an" = ( /obj/effect/turf_decal/siding/wood, -/turf/open/floor/concrete/slab_1, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, /area/hangar) "at" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ @@ -15,12 +19,16 @@ }, /obj/machinery/light/floor/hangar, /obj/effect/turf_decal/industrial/warning/corner, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "aA" = ( /obj/effect/turf_decal/siding/wood, /obj/structure/bookcase/random/fiction, -/turf/open/floor/wood, +/turf/open/floor/wood{ + planetary_atmos = 1 + }, /area/hangar) "aF" = ( /obj/structure/bookcase/random/fiction, @@ -32,11 +40,15 @@ pixel_x = 9; pixel_y = 26 }, -/turf/open/floor/wood, +/turf/open/floor/wood{ + planetary_atmos = 1 + }, /area/hangar) "aR" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "aU" = ( /obj/effect/turf_decal/industrial/warning{ @@ -45,7 +57,9 @@ /obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ dir = 8 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "bp" = ( /obj/item/stack/rods{ @@ -53,40 +67,51 @@ pixel_y = -9 }, /turf/open/floor/plating{ - icon_state = "platingdmg2" + icon_state = "platingdmg2"; + planetary_atmos = 1 }, /area/hangar) "bt" = ( /obj/structure/chair/sofa/left{ dir = 8 }, -/turf/open/floor/concrete/reinforced, +/turf/open/floor/concrete/reinforced{ + planetary_atmos = 1 + }, /area/hangar) "bu" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ dir = 8 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "bP" = ( /obj/effect/turf_decal/industrial/traffic{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "ce" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/concrete/slab_1, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, /area/hangar) "cz" = ( /obj/structure/rack, /obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, /area/hangar) "cP" = ( /obj/effect/turf_decal/siding/wood{ @@ -99,7 +124,9 @@ /obj/structure/marker_beacon{ picked_color = "Teal" }, -/turf/open/floor/plating, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, /area/hangar) "dj" = ( /obj/effect/turf_decal/siding/wood{ @@ -115,7 +142,9 @@ dir = 8 }, /obj/machinery/light/directional/east, -/turf/open/floor/concrete/reinforced, +/turf/open/floor/concrete/reinforced{ + planetary_atmos = 1 + }, /area/hangar) "dr" = ( /obj/structure/flora/rock/pile/icy, @@ -126,7 +155,9 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "eE" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ @@ -134,11 +165,15 @@ }, /obj/effect/decal/cleanable/dirt, /obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "eP" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "eW" = ( /obj/effect/decal/cleanable/dirt, @@ -149,14 +184,18 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "fn" = ( /obj/effect/turf_decal/steeldecal/steel_decals6, /obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ dir = 8 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "ft" = ( /obj/effect/turf_decal/siding/wood{ @@ -165,21 +204,28 @@ /obj/structure/sign/poster/official/moth/meth{ pixel_y = 32 }, -/turf/open/floor/concrete/slab_1, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, /area/hangar) "fM" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "fQ" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw, /obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "hl" = ( /obj/machinery/door/airlock, /obj/effect/landmark/outpost/elevator_machine, -/turf/open/floor/plasteel, +/obj/structure/lattice/catwalk, +/turf/open/floor/engine, /area/hangar) "hz" = ( /obj/effect/turf_decal/siding/wood/end{ @@ -198,36 +244,48 @@ "ik" = ( /obj/structure/fireplace, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/sepia, +/turf/open/floor/plasteel/sepia{ + planetary_atmos = 1 + }, /area/hangar) "il" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "jd" = ( /obj/effect/turf_decal/siding/wood{ dir = 10 }, -/turf/open/floor/concrete/slab_1, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, /area/hangar) "je" = ( /obj/effect/turf_decal/siding/wood{ dir = 10 }, /obj/structure/bookcase/random/fiction, -/turf/open/floor/wood, +/turf/open/floor/wood{ + planetary_atmos = 1 + }, /area/hangar) "ju" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 }, -/turf/open/floor/concrete/slab_1, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, /area/hangar) "jD" = ( /obj/machinery/light/floor/hangar, /obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "kx" = ( /obj/machinery/computer/cargo/express{ @@ -242,7 +300,9 @@ pixel_y = -10 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "kL" = ( /obj/effect/turf_decal/siding/wood{ @@ -256,19 +316,25 @@ dir = 1 }, /obj/effect/turf_decal/siding/wood, -/turf/open/floor/carpet/green, +/turf/open/floor/carpet/green{ + planetary_atmos = 1 + }, /area/hangar) "lE" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ dir = 1 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "lS" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ dir = 8 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "lT" = ( /obj/structure/table, @@ -286,11 +352,15 @@ pixel_y = 3; pixel_x = 4 }, -/turf/open/floor/carpet/green, +/turf/open/floor/carpet/green{ + planetary_atmos = 1 + }, /area/hangar) "mh" = ( /obj/structure/bookcase/random/fiction, -/turf/open/floor/wood, +/turf/open/floor/wood{ + planetary_atmos = 1 + }, /area/hangar) "mu" = ( /obj/effect/turf_decal/siding/wood, @@ -307,32 +377,42 @@ /area/hangar) "mX" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood, +/turf/open/floor/wood{ + planetary_atmos = 1 + }, /area/hangar) "nl" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 }, /obj/machinery/light/directional/north, -/turf/open/floor/concrete/slab_1, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, /area/hangar) "oi" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/concrete/slab_1, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, /area/hangar) "oO" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "oU" = ( /obj/structure/firelock_frame, -/turf/open/floor/plating, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, /area/hangar) "oY" = ( /obj/machinery/vending/coffee{ @@ -348,7 +428,9 @@ pixel_x = -10 }, /obj/effect/landmark/outpost/elevator_machine, -/turf/open/floor/concrete/reinforced, +/turf/open/floor/concrete/reinforced{ + planetary_atmos = 1 + }, /area/hangar) "po" = ( /obj/structure/railing/corner{ @@ -364,20 +446,26 @@ pixel_x = -32 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/concrete/slab_1, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, /area/hangar) "qa" = ( /obj/effect/turf_decal/siding/wood{ dir = 6 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/concrete/slab_1, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, /area/hangar) "qb" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 1 }, -/turf/open/floor/concrete/slab_1, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, /area/hangar) "qi" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ @@ -385,7 +473,9 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "rn" = ( /obj/structure/grille/broken, @@ -395,14 +485,17 @@ pixel_x = 2 }, /turf/open/floor/plating{ - icon_state = "foam_plating" + icon_state = "foam_plating"; + planetary_atmos = 1 }, /area/hangar) "rq" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 }, -/turf/open/floor/carpet/red, +/turf/open/floor/carpet/red{ + planetary_atmos = 1 + }, /area/hangar) "rB" = ( /obj/effect/turf_decal/siding/wood{ @@ -419,18 +512,24 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "se" = ( /obj/effect/turf_decal/trimline/opaque/yellow/warning{ dir = 4 }, -/turf/open/floor/plasteel/tech, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, /area/hangar) "sg" = ( /obj/structure/bookcase/random/fiction, /obj/item/radio/intercom/directional/south, -/turf/open/floor/wood, +/turf/open/floor/wood{ + planetary_atmos = 1 + }, /area/hangar) "si" = ( /obj/effect/decal/cleanable/dirt, @@ -443,16 +542,22 @@ /obj/effect/turf_decal/arrows{ dir = 1 }, -/turf/open/floor/plasteel/tech, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, /area/hangar) "sF" = ( /obj/effect/turf_decal/siding/wood/corner, -/turf/open/floor/concrete/slab_1, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, /area/hangar) "sT" = ( /obj/effect/turf_decal/techfloor/corner, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "tc" = ( /obj/machinery/door/poddoor/multi_tile/four_tile_ver, @@ -467,11 +572,15 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "tW" = ( /obj/effect/landmark/outpost/elevator, -/turf/open/floor/plasteel/elevatorshaft, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, /area/hangar) "ut" = ( /obj/structure/rack, @@ -491,7 +600,9 @@ pixel_y = 2 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "uB" = ( /obj/structure/railing{ @@ -506,13 +617,17 @@ }, /obj/effect/decal/cleanable/dirt, /obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "vt" = ( /obj/effect/turf_decal/industrial/traffic{ dir = 1 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "vA" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ @@ -520,7 +635,9 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "wx" = ( /obj/effect/turf_decal/siding/wood{ @@ -529,33 +646,44 @@ /obj/structure/chair/comfy/black{ dir = 4 }, -/turf/open/floor/wood, +/turf/open/floor/wood{ + planetary_atmos = 1 + }, /area/hangar) "xe" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ dir = 1 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "xE" = ( -/turf/open/floor/wood, +/turf/open/floor/wood{ + planetary_atmos = 1 + }, /area/hangar) "xK" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 4 }, -/turf/open/floor/concrete/slab_1, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, /area/hangar) "yh" = ( /obj/effect/turf_decal/techfloor, /obj/effect/turf_decal/techfloor/hole, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "yK" = ( /obj/structure/catwalk/over/plated_catwalk, /obj/machinery/light/broken/directional/south, /turf/open/floor/plating{ - icon_state = "panelscorched" + icon_state = "panelscorched"; + planetary_atmos = 1 }, /area/hangar) "yT" = ( @@ -575,26 +703,30 @@ pixel_y = -7; pixel_x = -8 }, -/turf/open/floor/wood, +/turf/open/floor/wood{ + planetary_atmos = 1 + }, /area/hangar) "yV" = ( /obj/effect/turf_decal/industrial/traffic/corner{ dir = 1 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "yY" = ( -/obj/machinery/atmospherics/components/unary/tank/air{ - volume = 10000000; - dir = 1 +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/dark, /area/hangar) "zj" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ dir = 8 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "zr" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ @@ -604,20 +736,28 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "zT" = ( /obj/effect/turf_decal/siding/wood, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/concrete/slab_1, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, /area/hangar) "zX" = ( /obj/structure/reagent_dispensers/watertank, /obj/machinery/light/directional/east, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "Ab" = ( -/turf/open/floor/plating, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, /area/hangar) "BA" = ( /obj/effect/turf_decal/siding/wood/corner, @@ -627,9 +767,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/carpet/red, /area/hangar) -"Cb" = ( -/turf/open/floor/plasteel/dark, -/area/hangar) "Cg" = ( /obj/effect/turf_decal/siding/wood{ dir = 10 @@ -643,7 +780,9 @@ pixel_y = 7 }, /obj/item/toy/cards/deck/cas, -/turf/open/floor/wood, +/turf/open/floor/wood{ + planetary_atmos = 1 + }, /area/hangar) "CJ" = ( /obj/structure/chair/comfy/black{ @@ -652,7 +791,9 @@ /obj/effect/turf_decal/siding/wood/corner{ dir = 4 }, -/turf/open/floor/wood, +/turf/open/floor/wood{ + planetary_atmos = 1 + }, /area/hangar) "CK" = ( /obj/structure/grille, @@ -664,23 +805,31 @@ dir = 8; layer = 4.1 }, -/turf/open/floor/plating, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, /area/hangar) "CV" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/concrete/slab_1, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, /area/hangar) "CW" = ( /obj/structure/statue/snow/snowlegion, -/turf/open/floor/concrete/reinforced, +/turf/open/floor/concrete/reinforced{ + planetary_atmos = 1 + }, /area/hangar) "Df" = ( /obj/effect/decal/cleanable/oil, /obj/item/radio/intercom/directional/east, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "Dy" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ @@ -688,33 +837,40 @@ }, /obj/machinery/light/floor/hangar, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "EQ" = ( /obj/effect/landmark/outpost/hangar_dock, -/turf/open/floor/plating, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, /area/hangar) "Fi" = ( /turf/open/water/beach/deep, /area/hangar) "Fm" = ( -/obj/machinery/door/airlock/centcom{ - req_access_txt = "109" +/obj/machinery/door/airlock/outpost{ + req_one_access_txt = "109" }, -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 1 +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 }, -/turf/open/floor/plasteel/dark, /area/hangar) "Fz" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/outpost/hangar_numbers, -/turf/open/floor/concrete/slab_1, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, /area/hangar) "FB" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "FF" = ( /obj/effect/turf_decal/siding/wood{ @@ -725,7 +881,9 @@ "FN" = ( /obj/effect/turf_decal/siding/wood/corner, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/concrete/slab_1, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, /area/hangar) "FQ" = ( /turf/closed/mineral/random/snow, @@ -733,26 +891,34 @@ "Gc" = ( /obj/effect/turf_decal/industrial/warning, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "Gf" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 }, -/turf/open/floor/concrete/slab_1, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, /area/hangar) "Gl" = ( /obj/effect/turf_decal/siding/wood{ dir = 9 }, -/turf/open/floor/concrete/slab_1, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, /area/hangar) "Hi" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/concrete/slab_1, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, /area/hangar) "Im" = ( /obj/effect/turf_decal/siding/wood{ @@ -765,7 +931,9 @@ /area/hangar) "Io" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/concrete/slab_1, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, /area/hangar) "Iu" = ( /obj/effect/turf_decal/siding/wood{ @@ -780,7 +948,9 @@ /obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ dir = 8 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "JD" = ( /obj/effect/turf_decal/siding/wood{ @@ -797,19 +967,25 @@ /area/hangar) "JX" = ( /obj/effect/turf_decal/techfloor, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "Kg" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/concrete/slab_1, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, /area/hangar) "Kp" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 }, /obj/machinery/light/directional/west, -/turf/open/floor/concrete/slab_1, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, /area/hangar) "KV" = ( /obj/effect/turf_decal/siding/wood{ @@ -818,17 +994,23 @@ /obj/machinery/vending/cigarette{ pixel_x = 5 }, -/turf/open/floor/wood, +/turf/open/floor/wood{ + planetary_atmos = 1 + }, /area/hangar) "Lg" = ( -/turf/open/floor/concrete/slab_1, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, /area/hangar) "Ls" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 }, /obj/machinery/light/directional/east, -/turf/open/floor/concrete/slab_1, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, /area/hangar) "LT" = ( /obj/effect/decal/cleanable/dirt, @@ -846,7 +1028,9 @@ dir = 1; layer = 4.1 }, -/turf/open/floor/plating, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, /area/hangar) "MI" = ( /obj/structure/closet/crate, @@ -854,7 +1038,9 @@ /obj/effect/spawner/lootdrop/maintenance, /obj/machinery/light/directional/east, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "MP" = ( /turf/closed/indestructible/reinforced, @@ -864,7 +1050,9 @@ dir = 1 }, /obj/structure/girder/displaced, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "Na" = ( /obj/effect/decal/cleanable/dirt, @@ -874,26 +1062,33 @@ /obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ dir = 8 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "Nt" = ( /obj/machinery/door/airlock, /obj/effect/landmark/outpost/elevator_machine, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, +/obj/structure/lattice/catwalk, +/turf/open/floor/engine, /area/hangar) "Nu" = ( /obj/effect/turf_decal/siding/wood{ dir = 6 }, -/turf/open/floor/concrete/slab_1, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, /area/hangar) "NP" = ( /obj/machinery/light/floor/hangar, /obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ dir = 8 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "Ph" = ( /obj/effect/turf_decal/siding/wood, @@ -908,7 +1103,9 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/concrete/slab_1, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, /area/hangar) "Qk" = ( /obj/effect/turf_decal/siding/wood, @@ -931,14 +1128,18 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "RV" = ( /obj/effect/turf_decal/siding/wood{ dir = 10 }, /obj/structure/fluff/hedge, -/turf/open/floor/wood, +/turf/open/floor/wood{ + planetary_atmos = 1 + }, /area/hangar) "Sj" = ( /obj/structure/railing{ @@ -961,7 +1162,9 @@ pixel_y = 3 }, /obj/machinery/light/directional/south, -/turf/open/floor/concrete/reinforced, +/turf/open/floor/concrete/reinforced{ + planetary_atmos = 1 + }, /area/hangar) "Sx" = ( /turf/template_noop, @@ -978,10 +1181,14 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "SU" = ( -/turf/open/floor/plasteel/tech, +/turf/open/floor/plasteel/tech{ + planetary_atmos = 1 + }, /area/hangar) "Tg" = ( /obj/structure/girder, @@ -993,14 +1200,18 @@ dir = 1; layer = 4.1 }, -/turf/open/floor/plating, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, /area/hangar) "TD" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/concrete/slab_1, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, /area/hangar) "TY" = ( /obj/effect/turf_decal/siding/wood{ @@ -1013,11 +1224,15 @@ /obj/effect/turf_decal/industrial/traffic/corner{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "Uu" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) "Ux" = ( /obj/structure/noticeboard{ @@ -1033,15 +1248,15 @@ pixel_y = 14 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/sepia, +/turf/open/floor/plasteel/sepia{ + planetary_atmos = 1 + }, /area/hangar) "UA" = ( /obj/structure/girder/reinforced, -/turf/open/floor/plating, -/area/hangar) -"Vl" = ( -/obj/machinery/atmospherics/components/unary/passive_vent, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, /area/hangar) "VM" = ( /obj/structure/flora/rock/icy, @@ -1054,7 +1269,8 @@ pixel_y = 9 }, /turf/open/floor/plating{ - icon_state = "panelscorched" + icon_state = "panelscorched"; + planetary_atmos = 1 }, /area/hangar) "Xm" = ( @@ -1078,7 +1294,9 @@ pixel_y = 32 }, /obj/machinery/light/directional/east, -/turf/open/floor/wood, +/turf/open/floor/wood{ + planetary_atmos = 1 + }, /area/hangar) "Xp" = ( /obj/effect/turf_decal/siding/wood, @@ -1092,7 +1310,9 @@ /area/hangar) "XQ" = ( /obj/structure/grille, -/turf/open/floor/plating, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, /area/hangar) "XT" = ( /obj/structure/rack{ @@ -1114,7 +1334,9 @@ /obj/item/statuebust{ pixel_x = 6 }, -/turf/open/floor/plasteel/sepia, +/turf/open/floor/plasteel/sepia{ + planetary_atmos = 1 + }, /area/hangar) "Yn" = ( /obj/effect/turf_decal/siding/wood{ @@ -1125,25 +1347,33 @@ /turf/open/floor/concrete/tiles, /area/hangar) "YD" = ( -/turf/open/floor/plasteel/elevatorshaft, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, /area/hangar) "YI" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 8 }, -/turf/open/floor/wood, +/turf/open/floor/wood{ + planetary_atmos = 1 + }, /area/hangar) "YN" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 }, -/turf/open/floor/concrete/slab_1, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, /area/hangar) "ZX" = ( /obj/effect/turf_decal/techfloor/corner{ dir = 8 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, /area/hangar) (1,1,1) = {" @@ -1301,7 +1531,7 @@ Ab Ab EQ uX -Cb +yY FQ FQ MP @@ -1333,7 +1563,7 @@ Ab Ab Ab fb -Cb +yY FQ FQ MP @@ -1365,7 +1595,7 @@ Ab Ab df lE -Cb +yY FQ FQ MP @@ -1429,7 +1659,7 @@ Ab Ab Ab qi -Cb +yY FQ FQ MP @@ -1461,7 +1691,7 @@ Ab Ab Ab fb -Cb +yY FQ FQ MP @@ -1525,7 +1755,7 @@ Ab Ab df lE -Cb +yY FQ FQ MP @@ -1557,7 +1787,7 @@ Ab Ab Ab lE -Cb +yY FQ FQ MP @@ -1653,7 +1883,7 @@ Ab Ab Ab qi -Cb +yY FQ FQ MP @@ -1685,7 +1915,7 @@ Ab Ab df uX -Cb +yY FQ FQ MP @@ -1717,7 +1947,7 @@ Ab Ab Ab fb -Cb +yY MP FQ MP @@ -1749,7 +1979,7 @@ Ab Ab Ab fb -Cb +yY FQ FQ MP @@ -1781,7 +2011,7 @@ Ab Ab Ab lE -Cb +yY FQ FQ MP @@ -1909,7 +2139,7 @@ Ab Ab Ab lE -Cb +yY FQ FQ MP @@ -1941,7 +2171,7 @@ Ab Ab Ab lE -Cb +yY FQ FQ MP @@ -1973,7 +2203,7 @@ Ab Ab Ab lE -Cb +yY FQ FQ MP @@ -2005,7 +2235,7 @@ Ab Ab df fb -Cb +yY FQ FQ MP @@ -2037,7 +2267,7 @@ Ab Ab Ab fb -Cb +yY FQ FQ MP @@ -2133,7 +2363,7 @@ Ab Ab Ab lE -Cb +yY FQ FQ MP @@ -2165,7 +2395,7 @@ Ab Ab df lE -Cb +yY FQ FQ MP @@ -2293,7 +2523,7 @@ Ab Ab Ab lE -Cb +yY FQ FQ MP @@ -2325,7 +2555,7 @@ Ab Ab df lE -Cb +yY FQ FQ MP @@ -2357,7 +2587,7 @@ Ab Ab Ab lE -Cb +yY FQ FQ MP @@ -2389,7 +2619,7 @@ Ab Ab Ab fb -Cb +yY FQ FQ MP @@ -2421,7 +2651,7 @@ Ab Ab Ab fb -Cb +yY MP MP MP @@ -2453,7 +2683,7 @@ Ab Ab Ab uX -Vl +yY Fm yY MP @@ -2837,7 +3067,7 @@ Ab Ab Ab uX -Cb +yY FQ FQ MP @@ -2869,7 +3099,7 @@ Ab Ab Ab lE -Cb +yY FQ FQ MP @@ -2901,7 +3131,7 @@ Ab Ab Ab lE -Cb +yY FQ FQ MP @@ -2933,7 +3163,7 @@ Ab Ab Ab lE -Cb +yY oU cz MP @@ -2965,7 +3195,7 @@ Ab Ab df fb -Cb +yY Tg yK MP @@ -2997,7 +3227,7 @@ Ab Ab Ab fb -Cb +yY bp Wp MP @@ -3029,7 +3259,7 @@ Ab Ab Ab uX -Cb +yY Tg rn MP @@ -3061,7 +3291,7 @@ Ab Ab Ab lE -Cb +yY Tg XQ MP @@ -3070,7 +3300,7 @@ MP MP FQ FQ -Cb +yY lS fn NP @@ -3093,7 +3323,7 @@ oO Dy RO vA -Cb +yY LY FQ MP @@ -3103,11 +3333,11 @@ MP FQ MP MP -Cb -Cb -Cb -Cb -Cb +yY +yY +yY +yY +yY aR Gc MI @@ -3117,15 +3347,15 @@ kx ut zX aR -Cb +yY aR aR -Cb -Cb -Cb +yY +yY +yY FB -Cb -Cb +yY +yY FQ FQ MP diff --git a/_maps/outpost/hangar/nt_asteroid_56x40.dmm b/_maps/outpost/hangar/nt_asteroid_56x40.dmm new file mode 100644 index 000000000000..fd876e5844d1 --- /dev/null +++ b/_maps/outpost/hangar/nt_asteroid_56x40.dmm @@ -0,0 +1,5478 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ae" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, +/area/hangar) +"ak" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/chair/comfy/black{ + dir = 1 + }, +/turf/open/floor/carpet/red{ + planetary_atmos = 1 + }, +/area/hangar) +"au" = ( +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, +/area/hangar) +"aE" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/red{ + planetary_atmos = 1 + }, +/area/hangar) +"ba" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, +/area/hangar) +"bx" = ( +/obj/effect/turf_decal/techfloor, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"bS" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/turf/open/floor/wood{ + planetary_atmos = 1 + }, +/area/hangar) +"ca" = ( +/obj/effect/landmark/outpost/hangar_dock, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"cj" = ( +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"dQ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/red{ + planetary_atmos = 1 + }, +/area/hangar) +"ee" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/concrete/tiles{ + planetary_atmos = 1 + }, +/area/hangar) +"ei" = ( +/obj/machinery/door/airlock/outpost{ + req_access_txt = "109" + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"ew" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"eA" = ( +/obj/machinery/door/airlock, +/obj/effect/landmark/outpost/elevator_machine, +/obj/structure/lattice/catwalk, +/turf/open/floor/engine, +/area/hangar) +"eH" = ( +/turf/closed/indestructible/reinforced, +/area/hangar) +"eS" = ( +/obj/effect/turf_decal/siding/wood/corner, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, +/area/hangar) +"fd" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw, +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"fh" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/concrete/tiles{ + planetary_atmos = 1 + }, +/area/hangar) +"fv" = ( +/obj/effect/turf_decal/siding/wood/corner, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/red{ + planetary_atmos = 1 + }, +/area/hangar) +"hB" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/sign/poster/official/moth/meth{ + pixel_y = 32 + }, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, +/area/hangar) +"hG" = ( +/obj/effect/decal/cleanable/oil, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"hL" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"il" = ( +/obj/effect/decal/cleanable/dirt, +/turf/closed/mineral/random/snow, +/area/hangar) +"iT" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, +/area/hangar) +"jj" = ( +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, +/area/hangar) +"jF" = ( +/obj/structure/marker_beacon{ + picked_color = "Teal" + }, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"jI" = ( +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/techfloor/hole, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"jK" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/sign/poster/official/nanotrasen_logo{ + pixel_x = -32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, +/area/hangar) +"kK" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/concrete/tiles{ + planetary_atmos = 1 + }, +/area/hangar) +"lk" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"lv" = ( +/turf/open/floor/plasteel/tech, +/area/hangar) +"lF" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/red{ + planetary_atmos = 1 + }, +/area/hangar) +"lI" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, +/area/hangar) +"lN" = ( +/obj/effect/turf_decal/techfloor/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"lS" = ( +/obj/structure/railing{ + dir = 10 + }, +/turf/open/water/beach/deep, +/area/hangar) +"lY" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, +/area/hangar) +"lZ" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/light/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"mx" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"mK" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/floor/wood{ + planetary_atmos = 1 + }, +/area/hangar) +"nD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, +/area/hangar) +"nM" = ( +/obj/machinery/vending/coffee{ + pixel_x = 5 + }, +/obj/item/kirbyplants{ + icon_state = "plant-22"; + pixel_x = -11 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/elevator_call_button{ + pixel_y = 24; + pixel_x = -10 + }, +/obj/effect/landmark/outpost/elevator_machine, +/turf/open/floor/concrete/reinforced{ + planetary_atmos = 1 + }, +/area/hangar) +"oa" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, +/area/hangar) +"op" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"oJ" = ( +/turf/open/space/basic, +/area/hangar) +"oL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/outpost/hangar_numbers, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, +/area/hangar) +"pp" = ( +/obj/structure/bookcase/random/fiction, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/wood{ + planetary_atmos = 1 + }, +/area/hangar) +"pK" = ( +/obj/structure/chair/sofa/left{ + dir = 8 + }, +/turf/open/floor/concrete/reinforced{ + planetary_atmos = 1 + }, +/area/hangar) +"qh" = ( +/obj/structure/bookcase/random/fiction, +/obj/structure/sign/plaques/deempisi{ + pixel_y = 22; + pixel_x = -8 + }, +/obj/item/toy/plush/hornet{ + pixel_x = 9; + pixel_y = 26 + }, +/turf/open/floor/wood{ + planetary_atmos = 1 + }, +/area/hangar) +"qD" = ( +/obj/machinery/light/floor/hangar, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"qK" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/light/broken/directional/south, +/turf/open/floor/plating{ + icon_state = "panelscorched"; + planetary_atmos = 1 + }, +/area/hangar) +"qR" = ( +/obj/structure/flora/rock/pile/icy, +/turf/open/water/beach/deep, +/area/hangar) +"qT" = ( +/obj/effect/landmark/outpost/elevator, +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"rf" = ( +/obj/structure/noticeboard{ + pixel_y = 31 + }, +/obj/item/storage/box/matches, +/obj/item/grown/log{ + pixel_x = 7; + pixel_y = 14 + }, +/obj/item/grown/log{ + pixel_x = 7; + pixel_y = 14 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/sepia{ + planetary_atmos = 1 + }, +/area/hangar) +"rn" = ( +/obj/structure/fireplace, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/sepia{ + planetary_atmos = 1 + }, +/area/hangar) +"rw" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"rT" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/structure/table/wood, +/obj/item/storage/pill_bottle/dice{ + pixel_x = -6 + }, +/obj/item/toy/figure/lawyer{ + pixel_x = 3; + pixel_y = 7 + }, +/obj/item/toy/cards/deck/cas, +/turf/open/floor/wood{ + planetary_atmos = 1 + }, +/area/hangar) +"rX" = ( +/obj/effect/turf_decal/steeldecal/steel_decals6, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"sn" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ + dir = 1 + }, +/obj/structure/girder/displaced, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"sE" = ( +/obj/structure/chair/comfy{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/carpet/green{ + planetary_atmos = 1 + }, +/area/hangar) +"tD" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + pixel_x = 5; + pixel_y = 14 + }, +/obj/item/storage/photo_album/library{ + pixel_y = -2; + pixel_x = -4 + }, +/turf/open/floor/carpet/red{ + planetary_atmos = 1 + }, +/area/hangar) +"uz" = ( +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"uO" = ( +/obj/machinery/door/poddoor/multi_tile/four_tile_ver, +/turf/closed/indestructible/reinforced, +/area/hangar) +"uV" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/concrete/tiles{ + planetary_atmos = 1 + }, +/area/hangar) +"vc" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/carpet/red{ + planetary_atmos = 1 + }, +/area/hangar) +"vg" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"vi" = ( +/obj/item/stack/rods{ + pixel_x = 7; + pixel_y = -9 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg2"; + planetary_atmos = 1 + }, +/area/hangar) +"wk" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ + dir = 8 + }, +/obj/machinery/light/floor/hangar, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"wm" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, +/area/hangar) +"wp" = ( +/turf/template_noop, +/area/template_noop) +"xo" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/light/directional/south, +/turf/open/floor/concrete/tiles{ + planetary_atmos = 1 + }, +/area/hangar) +"xp" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"xW" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, +/area/hangar) +"yi" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/floor/carpet/red{ + planetary_atmos = 1 + }, +/area/hangar) +"yL" = ( +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"zl" = ( +/obj/structure/chair/sofa/right{ + dir = 8 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/concrete/reinforced{ + planetary_atmos = 1 + }, +/area/hangar) +"Ag" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/structure/bookcase/random/fiction, +/turf/open/floor/wood{ + planetary_atmos = 1 + }, +/area/hangar) +"Ai" = ( +/obj/structure/grille/broken, +/obj/structure/catwalk/over/plated_catwalk, +/obj/item/toy/plush/beeplushie{ + pixel_y = -1; + pixel_x = 2 + }, +/turf/open/floor/plating{ + icon_state = "foam_plating"; + planetary_atmos = 1 + }, +/area/hangar) +"AT" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/hangar) +"AW" = ( +/obj/structure/girder/reinforced, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"Bp" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"BX" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/structure/fluff/hedge, +/turf/open/floor/wood{ + planetary_atmos = 1 + }, +/area/hangar) +"Cl" = ( +/obj/machinery/door/airlock, +/obj/effect/landmark/outpost/elevator_machine, +/obj/effect/decal/cleanable/dirt, +/obj/structure/lattice/catwalk, +/turf/open/floor/engine, +/area/hangar) +"Cw" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw{ + dir = 8 + }, +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"Cx" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"Df" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"Dk" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + planetary_atmos = 1 + }, +/area/hangar) +"Dr" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/vending/cigarette{ + pixel_x = 5 + }, +/turf/open/floor/wood{ + planetary_atmos = 1 + }, +/area/hangar) +"DT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"Ed" = ( +/obj/machinery/computer/cargo/express{ + dir = 8; + pixel_x = 7 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/effect/decal/cleanable/garbage{ + pixel_x = -3; + pixel_y = -10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"EZ" = ( +/turf/open/floor/plasteel/elevatorshaft{ + planetary_atmos = 1 + }, +/area/hangar) +"Fs" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, +/area/hangar) +"FK" = ( +/obj/structure/firelock_frame, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"FP" = ( +/obj/structure/table, +/obj/item/paper/pamphlet/gateway{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/item/paper/pamphlet/centcom{ + pixel_x = 8; + pixel_y = 1 + }, +/obj/item/reagent_containers/food/drinks/coffee{ + pixel_x = -6; + pixel_y = 3 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/concrete/reinforced{ + planetary_atmos = 1 + }, +/area/hangar) +"FS" = ( +/obj/machinery/light/floor/hangar, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"Gj" = ( +/obj/structure/statue/snow/snowlegion, +/turf/open/floor/concrete/reinforced{ + planetary_atmos = 1 + }, +/area/hangar) +"GW" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"Hs" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"HD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"Ib" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, +/area/hangar) +"Ig" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/item/toy/cards/deck{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/item/toy/cards/deck/kotahi{ + pixel_x = 5; + pixel_y = 2 + }, +/obj/item/toy/plush/moth{ + pixel_y = -7; + pixel_x = -8 + }, +/turf/open/floor/wood{ + planetary_atmos = 1 + }, +/area/hangar) +"Il" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/hangar) +"Io" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, +/area/hangar) +"Is" = ( +/obj/structure/railing{ + dir = 2; + layer = 4.1 + }, +/obj/structure/girder, +/obj/structure/railing{ + dir = 1; + layer = 4.1 + }, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"Iy" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"IH" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, +/area/hangar) +"IV" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"Ji" = ( +/obj/structure/grille, +/obj/structure/railing{ + dir = 4; + layer = 4.1 + }, +/obj/structure/railing{ + dir = 8; + layer = 4.1 + }, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"JA" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, +/area/hangar) +"JM" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"Kf" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/light/directional/east, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"Ky" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, +/area/hangar) +"KQ" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"KT" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/spawner/lootdrop/glowstick{ + pixel_x = 5; + pixel_y = 9 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched"; + planetary_atmos = 1 + }, +/area/hangar) +"Lc" = ( +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"LD" = ( +/turf/open/water/beach/deep, +/area/hangar) +"LM" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/floor/wood{ + planetary_atmos = 1 + }, +/area/hangar) +"Mf" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/floor/hangar, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"Mh" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, +/area/hangar) +"MN" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/pen{ + pixel_x = 3; + pixel_y = 2 + }, +/obj/item/pen{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/structure/sign/poster/official/fruit_bowl{ + pixel_y = 32 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/wood{ + planetary_atmos = 1 + }, +/area/hangar) +"Nt" = ( +/obj/structure/flora/rock/icy, +/turf/open/water/beach/deep, +/area/hangar) +"NC" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ + dir = 1 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"NN" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"NV" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, +/area/hangar) +"Ob" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"On" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/bookcase/random/fiction, +/turf/open/floor/wood{ + planetary_atmos = 1 + }, +/area/hangar) +"OB" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw{ + dir = 8 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"OC" = ( +/obj/machinery/light/floor/hangar, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"OL" = ( +/turf/open/floor/wood{ + planetary_atmos = 1 + }, +/area/hangar) +"Pg" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, +/area/hangar) +"Pi" = ( +/obj/effect/turf_decal/techfloor/corner, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"Pj" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, +/area/hangar) +"PQ" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/obj/item/kirbyplants{ + icon_state = "plant-21"; + pixel_x = 6; + pixel_y = 17 + }, +/obj/structure/sign/poster/official/sgt{ + pixel_x = 32 + }, +/turf/open/floor/carpet/red{ + planetary_atmos = 1 + }, +/area/hangar) +"Rd" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/carpet/red{ + planetary_atmos = 1 + }, +/area/hangar) +"Rh" = ( +/obj/structure/table, +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/siding/wood, +/obj/item/newspaper{ + pixel_x = -5; + pixel_y = -1 + }, +/obj/item/newspaper{ + pixel_x = -5; + pixel_y = 2 + }, +/obj/machinery/jukebox/boombox{ + pixel_y = 3; + pixel_x = 4 + }, +/turf/open/floor/carpet/green{ + planetary_atmos = 1 + }, +/area/hangar) +"Rn" = ( +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"Ry" = ( +/obj/structure/bookcase/random/fiction, +/turf/open/floor/wood{ + planetary_atmos = 1 + }, +/area/hangar) +"Rz" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/water/beach/deep, +/area/hangar) +"RX" = ( +/obj/structure/girder, +/obj/structure/railing{ + dir = 2; + layer = 4.1 + }, +/obj/structure/railing{ + dir = 1; + layer = 4.1 + }, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"Sc" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, +/area/hangar) +"Sh" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, +/area/hangar) +"Sq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/hangar) +"Sw" = ( +/obj/structure/railing{ + dir = 8; + layer = 4.1 + }, +/turf/open/water/beach/deep, +/area/hangar) +"SU" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/sign/poster/official/nanotrasen_logo{ + pixel_y = 32 + }, +/turf/open/floor/concrete/tiles{ + planetary_atmos = 1 + }, +/area/hangar) +"SY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"Tt" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/floor/carpet/red{ + planetary_atmos = 1 + }, +/area/hangar) +"TU" = ( +/obj/structure/rack{ + color = "#A47449"; + pixel_y = 11 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/grown/log{ + pixel_x = -7; + pixel_y = 20 + }, +/obj/item/grown/log{ + pixel_x = 7; + pixel_y = 20 + }, +/obj/item/grown/log{ + pixel_y = 25 + }, +/obj/item/statuebust{ + pixel_x = 6 + }, +/turf/open/floor/plasteel/sepia{ + planetary_atmos = 1 + }, +/area/hangar) +"Un" = ( +/obj/effect/turf_decal/arrows{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, +/area/hangar) +"UY" = ( +/turf/closed/mineral/random/snow, +/area/hangar) +"VD" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ + dir = 8 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"VE" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/concrete/tiles{ + planetary_atmos = 1 + }, +/area/hangar) +"VV" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"WE" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/floor/concrete/tiles{ + planetary_atmos = 1 + }, +/area/hangar) +"Xo" = ( +/obj/structure/grille, +/turf/open/floor/plating{ + planetary_atmos = 1 + }, +/area/hangar) +"Xu" = ( +/obj/structure/rack, +/obj/item/poster/random_official{ + pixel_x = 2; + pixel_y = 9 + }, +/obj/item/poster/random_official{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/item/destTagger{ + pixel_x = -5 + }, +/obj/item/export_scanner{ + pixel_x = 6; + pixel_y = 2 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"YV" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/concrete/slab_1{ + planetary_atmos = 1 + }, +/area/hangar) +"YW" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/hangar) +"YY" = ( +/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{ + dir = 8 + }, +/obj/machinery/light/floor/hangar, +/obj/effect/turf_decal/industrial/warning/corner, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"ZA" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/carpet/red{ + planetary_atmos = 1 + }, +/area/hangar) +"ZK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) +"ZX" = ( +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/dark{ + planetary_atmos = 1 + }, +/area/hangar) + +(1,1,1) = {" +wp +wp +wp +wp +eH +eH +eH +eH +eH +uO +eH +eH +eH +uO +eH +eH +eH +uO +oJ +eH +eH +uO +oJ +eH +eH +uO +oJ +eH +eH +uO +eH +eH +eH +uO +eH +eH +eH +uO +eH +eH +eH +uO +eH +eH +eH +uO +eH +eH +wp +wp +wp +wp +"} +(2,1,1) = {" +wp +wp +wp +eH +eH +YW +YW +YW +YW +YW +YW +YW +YW +YW +YW +YW +YW +YW +YW +YW +YW +YW +YW +YW +YW +YW +YW +YW +YW +YW +YW +YW +YW +YW +YW +YW +YW +YW +YW +YW +YW +YW +YW +YW +YW +YW +YW +eH +eH +wp +wp +wp +"} +(3,1,1) = {" +eH +eH +eH +eH +lk +lv +lv +lv +lv +lv +lv +lv +lv +Un +lv +lv +lv +lv +Un +lv +lv +lv +lv +Un +lv +lv +lv +lv +lv +Un +lv +lv +lv +lv +Un +lv +lv +lv +lv +Un +lv +lv +lv +lv +Un +lv +lv +Iy +eH +eH +eH +eH +"} +(4,1,1) = {" +eH +UY +UY +UY +lk +AT +AT +AT +AT +AT +AT +AT +AT +AT +AT +AT +AT +AT +AT +AT +AT +AT +AT +AT +AT +AT +AT +AT +AT +AT +AT +AT +AT +AT +AT +AT +AT +AT +AT +AT +AT +AT +AT +AT +AT +AT +AT +Iy +UY +UY +UY +eH +"} +(5,1,1) = {" +eH +UY +UY +Rn +fd +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +ca +cj +KQ +yL +UY +UY +eH +"} +(6,1,1) = {" +eH +UY +UY +Df +rw +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +hL +yL +UY +UY +eH +"} +(7,1,1) = {" +eH +UY +UY +IV +rw +jF +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +jF +NC +yL +UY +UY +eH +"} +(8,1,1) = {" +eH +UY +UY +Lc +JM +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +hL +VV +eH +UY +eH +"} +(9,1,1) = {" +eH +UY +UY +Rn +JM +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +op +yL +UY +UY +eH +"} +(10,1,1) = {" +eH +UY +eH +Df +rw +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +hL +yL +UY +UY +eH +"} +(11,1,1) = {" +eH +UY +UY +IV +fd +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +KQ +VV +UY +UY +eH +"} +(12,1,1) = {" +eH +UY +UY +Lc +rw +jF +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +jF +NC +yL +UY +UY +eH +"} +(13,1,1) = {" +eH +UY +UY +uz +rw +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +NC +yL +UY +UY +eH +"} +(14,1,1) = {" +eH +UY +UY +Df +JM +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +hL +DT +UY +UY +eH +"} +(15,1,1) = {" +eH +UY +UY +Df +JM +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +hL +VV +UY +UY +eH +"} +(16,1,1) = {" +eH +UY +UY +Lc +rw +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +op +yL +UY +UY +eH +"} +(17,1,1) = {" +eH +UY +UY +uz +fd +jF +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +jF +KQ +yL +UY +UY +eH +"} +(18,1,1) = {" +eH +UY +UY +Df +rw +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +hL +yL +eH +UY +eH +"} +(19,1,1) = {" +eH +UY +UY +Df +rw +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +hL +yL +UY +UY +eH +"} +(20,1,1) = {" +eH +UY +UY +ZX +JM +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +NC +yL +UY +UY +eH +"} +(21,1,1) = {" +eH +UY +UY +Rn +JM +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +op +VV +UY +UY +eH +"} +(22,1,1) = {" +eH +UY +UY +Df +rw +jF +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +jF +hL +DT +UY +UY +eH +"} +(23,1,1) = {" +eH +UY +UY +Df +fd +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +KQ +DT +UY +UY +eH +"} +(24,1,1) = {" +eH +UY +UY +Lc +rw +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +NC +yL +UY +UY +eH +"} +(25,1,1) = {" +eH +UY +UY +uz +rw +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +NC +yL +UY +UY +eH +"} +(26,1,1) = {" +eH +UY +UY +IV +JM +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +NC +yL +UY +UY +eH +"} +(27,1,1) = {" +eH +UY +eH +Df +JM +jF +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +jF +hL +yL +UY +UY +eH +"} +(28,1,1) = {" +eH +UY +UY +ZX +rw +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +hL +yL +UY +UY +eH +"} +(29,1,1) = {" +eH +UY +UY +Rn +fd +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +KQ +VV +UY +UY +eH +"} +(30,1,1) = {" +eH +UY +UY +Df +rw +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +NC +VV +UY +UY +eH +"} +(31,1,1) = {" +eH +UY +UY +Df +rw +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +NC +yL +UY +UY +eH +"} +(32,1,1) = {" +eH +UY +UY +Lc +JM +jF +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +jF +NC +yL +UY +UY +eH +"} +(33,1,1) = {" +eH +UY +UY +Rn +JM +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +hL +VV +UY +UY +eH +"} +(34,1,1) = {" +eH +UY +UY +Df +rw +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +hL +VV +eH +UY +eH +"} +(35,1,1) = {" +eH +UY +UY +Df +fd +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +KQ +VV +UY +UY +eH +"} +(36,1,1) = {" +eH +UY +UY +ZX +rw +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +NC +yL +UY +UY +eH +"} +(37,1,1) = {" +eH +UY +UY +Rn +rw +jF +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +jF +NC +yL +UY +UY +eH +"} +(38,1,1) = {" +eH +UY +eH +Df +JM +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +NC +yL +UY +UY +eH +"} +(39,1,1) = {" +eH +UY +UY +Df +JM +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +hL +yL +UY +UY +eH +"} +(40,1,1) = {" +eH +UY +UY +ZX +rw +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +hL +yL +eH +eH +eH +"} +(41,1,1) = {" +eH +UY +UY +Rn +fd +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +KQ +yL +ei +yL +eH +"} +(42,1,1) = {" +eH +UY +UY +Df +rw +jF +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +jF +NC +Pi +eH +eH +eH +"} +(43,1,1) = {" +eH +UY +UY +Df +rw +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +NC +bx +UY +UY +eH +"} +(44,1,1) = {" +eH +UY +UY +ZX +JM +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +NC +bx +UY +UY +eH +"} +(45,1,1) = {" +eH +UY +UY +Rn +JM +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +hL +bx +UY +UY +eH +"} +(46,1,1) = {" +eH +UY +UY +Df +rw +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +hL +jI +UY +UY +eH +"} +(47,1,1) = {" +eH +UY +UY +Df +fd +jF +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +jF +KQ +bx +eH +UY +eH +"} +(48,1,1) = {" +eH +UY +UY +ZX +rw +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +NC +bx +UY +UY +eH +"} +(49,1,1) = {" +eH +UY +UY +Rn +rw +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +NC +bx +UY +UY +eH +"} +(50,1,1) = {" +eH +UY +UY +Df +JM +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +sn +jI +UY +UY +eH +"} +(51,1,1) = {" +eH +UY +UY +Df +JM +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +hL +bx +UY +UY +eH +"} +(52,1,1) = {" +eH +UY +UY +ZX +rw +jF +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +jF +hL +lN +UY +UY +eH +"} +(53,1,1) = {" +eH +UY +UY +Rn +qD +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +KQ +yL +UY +UY +eH +"} +(54,1,1) = {" +eH +UY +UY +Df +rw +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +NC +yL +UY +UY +eH +"} +(55,1,1) = {" +eH +UY +eH +Df +rw +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +NC +yL +UY +UY +eH +"} +(56,1,1) = {" +eH +UY +UY +ZX +JM +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +NC +yL +FK +Hs +eH +"} +(57,1,1) = {" +eH +UY +UY +Rn +JM +jF +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +jF +hL +yL +RX +qK +eH +"} +(58,1,1) = {" +eH +UY +UY +Df +rw +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +hL +yL +vi +KT +eH +"} +(59,1,1) = {" +eH +UY +UY +Df +fd +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +KQ +yL +RX +Ai +eH +"} +(60,1,1) = {" +eH +UY +UY +ZX +rw +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +NC +yL +RX +Xo +eH +"} +(61,1,1) = {" +eH +UY +UY +yL +Bp +OB +OB +OB +OB +Cw +OB +OB +Cw +OB +OB +OB +Cw +OB +OB +OB +Cw +OB +OB +OB +Cw +OB +OB +rX +OC +Cx +SY +ew +YY +xp +HD +FS +Ob +VD +Mf +vg +Cx +OC +ZK +Cx +ew +wk +vg +GW +yL +Is +UY +eH +"} +(62,1,1) = {" +eH +UY +UY +yL +yL +yL +yL +yL +yL +yL +yL +yL +yL +yL +yL +yL +yL +yL +yL +yL +yL +yL +yL +yL +yL +yL +yL +yL +yL +yL +yL +VV +NN +lZ +hG +mx +Ed +Xu +Kf +VV +yL +VV +VV +yL +yL +yL +DT +yL +yL +UY +UY +eH +"} +(63,1,1) = {" +eH +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +eH +eH +eH +eH +hB +au +Fs +UY +UY +eH +eH +Ji +Ji +Ji +eH +UY +UY +iT +au +YV +UY +UY +UY +UY +UY +UY +UY +eH +"} +(64,1,1) = {" +eH +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +UY +eH +Gj +eH +Pj +NV +ae +Ky +UY +UY +eH +UY +UY +UY +eH +UY +Io +wm +NV +YV +BX +UY +UY +UY +UY +UY +UY +eH +"} +(65,1,1) = {" +eH +eH +eH +eH +eH +eH +eH +eH +eH +eH +eH +eH +eH +eH +eH +eH +eH +eH +eH +eH +eH +eH +eH +UY +UY +eH +eH +eH +xW +lI +nD +Pg +Ky +UY +eH +Ji +Ji +Ji +eH +Io +IH +NV +jj +Sh +mK +Ag +UY +UY +eH +eH +eH +eH +"} +(66,1,1) = {" +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +eH +UY +UY +LD +LD +Rz +lS +xW +ba +NV +Pg +JA +jK +JA +JA +JA +Ib +wm +au +jj +Sh +Dk +OL +On +UY +UY +eH +wp +wp +wp +"} +(67,1,1) = {" +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +eH +UY +UY +UY +LD +qR +Rz +lS +xW +ba +NV +NV +au +au +au +au +au +NV +eS +oa +OL +Il +Dk +On +UY +UY +eH +wp +wp +wp +"} +(68,1,1) = {" +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +eH +UY +UY +UY +LD +LD +LD +Rz +lS +xW +Sc +Mh +lY +lY +Sc +Mh +Sc +lY +oa +Dr +LM +OL +Sq +Ig +rT +UY +eH +wp +wp +wp +"} +(69,1,1) = {" +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +eH +eH +UY +UY +UY +LD +LD +LD +Rz +Sw +Sw +eH +UY +il +UY +eH +fh +NV +uV +eH +MN +bS +lF +dQ +ZA +eH +eH +wp +wp +wp +"} +(70,1,1) = {" +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +eH +eH +UY +eH +Nt +LD +LD +qR +LD +eH +eH +eH +eH +eH +eH +SU +NV +xo +eH +eH +rf +Rd +aE +yi +pp +eH +wp +wp +wp +"} +(71,1,1) = {" +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +eH +eH +eH +eH +LD +LD +LD +AW +eH +EZ +EZ +qT +eA +ee +WE +NV +uV +sE +eH +rn +ak +aE +tD +Ry +eH +wp +wp +wp +"} +(72,1,1) = {" +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +eH +eH +eH +eH +eH +eH +EZ +EZ +EZ +Cl +NV +NV +oL +uV +Rh +eH +TU +vc +fv +Tt +Ry +eH +wp +wp +wp +"} +(73,1,1) = {" +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +eH +EZ +EZ +EZ +Cl +VE +VE +VE +kK +sE +eH +eH +qh +PQ +Ry +eH +eH +wp +wp +wp +"} +(74,1,1) = {" +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +eH +eH +eH +eH +eH +nM +zl +pK +FP +eH +eH +eH +eH +eH +eH +eH +wp +wp +wp +wp +"} +(75,1,1) = {" +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +eH +eH +eH +eH +eH +eH +wp +wp +wp +wp +wp +wp +wp +wp +wp +wp +"} diff --git a/_maps/outpost/hangar/test_20x20.dmm b/_maps/outpost/hangar/test_20x20.dmm deleted file mode 100644 index 118bb8afa821..000000000000 --- a/_maps/outpost/hangar/test_20x20.dmm +++ /dev/null @@ -1,1072 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( -/turf/open/floor/plating, -/area/hangar) -"b" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ - dir = 1 - }, -/obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel, -/area/hangar) -"e" = ( -/obj/effect/landmark/outpost/hangar_numbers, -/turf/open/floor/plasteel, -/area/hangar) -"f" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hangar) -"g" = ( -/obj/effect/landmark/outpost/hangar_dock, -/turf/open/floor/plating, -/area/hangar) -"h" = ( -/obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel, -/area/hangar) -"i" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hangar) -"j" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, -/turf/open/floor/plasteel, -/area/hangar) -"k" = ( -/obj/machinery/atmospherics/components/binary/pump/on, -/turf/open/floor/plasteel, -/area/hangar) -"m" = ( -/turf/closed/indestructible/reinforced, -/area/hangar) -"n" = ( -/obj/machinery/atmospherics/components/unary/tank/air{ - volume = 10000000 - }, -/turf/open/floor/plasteel, -/area/hangar) -"r" = ( -/obj/machinery/atmospherics/pipe/simple/general, -/turf/closed/indestructible/reinforced, -/area/hangar) -"s" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hangar) -"t" = ( -/obj/effect/turf_decal/arrows{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/hangar) -"u" = ( -/obj/structure/marker_beacon{ - picked_color = "Teal" - }, -/turf/open/floor/plating, -/area/hangar) -"w" = ( -/turf/open/floor/plasteel/tech, -/area/hangar) -"y" = ( -/obj/machinery/door/poddoor/multi_tile/four_tile_ver, -/turf/closed/indestructible/reinforced, -/area/hangar) -"D" = ( -/obj/effect/turf_decal/arrows{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hangar) -"F" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/warning{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/hangar) -"G" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, -/obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel, -/area/hangar) -"H" = ( -/turf/template_noop, -/area/template_noop) -"I" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hangar) -"K" = ( -/obj/effect/turf_decal/arrows{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hangar) -"Q" = ( -/obj/effect/landmark/outpost/elevator, -/turf/open/floor/plasteel/elevatorshaft, -/area/hangar) -"R" = ( -/obj/machinery/door/airlock, -/obj/effect/landmark/outpost/elevator_machine, -/turf/open/floor/plasteel, -/area/hangar) -"S" = ( -/turf/open/floor/plasteel, -/area/hangar) -"U" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/warning{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/hangar) -"V" = ( -/obj/machinery/elevator_call_button{ - pixel_y = 25 - }, -/obj/effect/landmark/outpost/elevator_machine, -/turf/open/floor/plasteel, -/area/hangar) -"W" = ( -/turf/open/floor/plasteel/elevatorshaft, -/area/hangar) -"X" = ( -/obj/machinery/atmospherics/components/unary/passive_vent{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hangar) - -(1,1,1) = {" -H -H -H -m -m -m -m -m -m -m -y -m -m -m -y -m -m -m -y -m -m -m -y -m -m -m -y -m -m -m -m -"} -(2,1,1) = {" -H -H -H -m -S -S -j -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -i -S -S -m -"} -(3,1,1) = {" -H -H -H -m -S -S -j -w -w -t -w -w -w -w -t -w -w -w -w -t -w -w -w -w -t -w -w -i -S -S -m -"} -(4,1,1) = {" -H -H -H -m -S -S -j -U -U -U -U -U -U -U -U -U -U -U -U -U -U -U -U -U -U -U -U -i -S -S -m -"} -(5,1,1) = {" -H -H -H -m -S -S -j -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -g -i -S -S -m -"} -(6,1,1) = {" -H -H -H -m -S -S -j -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -i -S -S -m -"} -(7,1,1) = {" -H -H -H -m -S -D -j -u -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -u -i -D -S -m -"} -(8,1,1) = {" -H -H -H -m -S -S -j -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -i -S -S -m -"} -(9,1,1) = {" -H -H -H -m -S -S -G -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -S -S -m -"} -(10,1,1) = {" -H -H -H -m -S -S -j -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -i -S -S -m -"} -(11,1,1) = {" -H -H -H -m -S -S -j -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -i -S -S -m -"} -(12,1,1) = {" -H -H -H -m -S -D -j -u -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -u -i -D -S -m -"} -(13,1,1) = {" -H -H -H -m -S -S -j -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -i -S -S -m -"} -(14,1,1) = {" -H -H -H -m -S -S -j -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -i -S -S -m -"} -(15,1,1) = {" -H -H -H -m -S -S -j -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -i -S -S -m -"} -(16,1,1) = {" -H -H -H -m -S -S -j -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -i -S -S -m -"} -(17,1,1) = {" -H -H -H -m -S -D -j -u -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -u -i -D -S -m -"} -(18,1,1) = {" -H -H -H -m -S -S -j -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -i -S -S -m -"} -(19,1,1) = {" -H -H -H -m -S -S -G -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -b -S -S -m -"} -(20,1,1) = {" -H -H -H -m -S -S -j -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -i -S -S -m -"} -(21,1,1) = {" -H -H -H -m -S -S -j -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -i -S -S -m -"} -(22,1,1) = {" -H -H -H -m -S -D -j -u -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -u -i -D -S -m -"} -(23,1,1) = {" -H -n -k -r -X -S -j -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -i -S -S -m -"} -(24,1,1) = {" -m -m -m -m -m -V -j -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -i -S -S -m -"} -(25,1,1) = {" -m -W -W -Q -R -S -s -I -I -I -I -I -I -I -I -I -I -I -I -I -I -I -I -I -I -I -I -f -S -S -m -"} -(26,1,1) = {" -m -W -W -W -R -e -S -S -S -K -S -S -S -S -K -S -S -S -S -K -S -S -S -S -K -S -S -S -S -S -m -"} -(27,1,1) = {" -m -W -W -W -R -S -S -S -h -S -S -S -S -S -S -S -S -S -S -S -S -S -S -S -S -h -S -S -S -S -m -"} -(28,1,1) = {" -m -m -m -m -m -m -m -m -m -m -m -m -m -m -m -m -m -m -m -m -m -m -m -m -m -m -m -m -m -m -m -"} diff --git a/_maps/outpost/hangar/test_40x20.dmm b/_maps/outpost/hangar/test_40x20.dmm deleted file mode 100644 index 66b1a7d24b6f..000000000000 --- a/_maps/outpost/hangar/test_40x20.dmm +++ /dev/null @@ -1,1732 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( -/turf/open/floor/plating, -/area/hangar) -"b" = ( -/turf/closed/indestructible/reinforced, -/area/hangar) -"c" = ( -/obj/effect/turf_decal/arrows{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hangar) -"d" = ( -/obj/machinery/atmospherics/components/binary/pump/on, -/turf/open/floor/plasteel, -/area/hangar) -"g" = ( -/obj/machinery/atmospherics/components/unary/passive_vent{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hangar) -"h" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hangar) -"k" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hangar) -"n" = ( -/obj/machinery/atmospherics/pipe/simple/general, -/turf/closed/indestructible/reinforced, -/area/hangar) -"o" = ( -/obj/machinery/atmospherics/components/unary/tank/air{ - volume = 10000000 - }, -/turf/open/floor/plasteel, -/area/hangar) -"q" = ( -/turf/open/floor/plasteel, -/area/hangar) -"r" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hangar) -"t" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, -/obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel, -/area/hangar) -"u" = ( -/obj/effect/landmark/outpost/elevator, -/turf/open/floor/plasteel/elevatorshaft, -/area/hangar) -"x" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/warning{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/hangar) -"y" = ( -/obj/machinery/elevator_call_button{ - pixel_y = 25 - }, -/obj/effect/landmark/outpost/elevator_machine, -/turf/open/floor/plasteel, -/area/hangar) -"z" = ( -/obj/effect/landmark/outpost/hangar_numbers, -/turf/open/floor/plasteel, -/area/hangar) -"B" = ( -/obj/effect/turf_decal/arrows{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hangar) -"C" = ( -/obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel, -/area/hangar) -"E" = ( -/obj/machinery/door/airlock, -/obj/effect/landmark/outpost/elevator_machine, -/turf/open/floor/plasteel, -/area/hangar) -"I" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ - dir = 1 - }, -/obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel, -/area/hangar) -"J" = ( -/obj/effect/landmark/outpost/hangar_dock, -/turf/open/floor/plating, -/area/hangar) -"K" = ( -/obj/structure/marker_beacon{ - picked_color = "Teal" - }, -/turf/open/floor/plating, -/area/hangar) -"N" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, -/turf/open/floor/plasteel, -/area/hangar) -"P" = ( -/turf/template_noop, -/area/template_noop) -"Q" = ( -/turf/open/floor/plasteel/tech, -/area/hangar) -"S" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/warning{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/hangar) -"T" = ( -/obj/machinery/door/poddoor/multi_tile/four_tile_ver, -/turf/closed/indestructible/reinforced, -/area/hangar) -"V" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hangar) -"W" = ( -/turf/open/floor/plasteel/elevatorshaft, -/area/hangar) -"Z" = ( -/obj/effect/turf_decal/arrows{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/hangar) - -(1,1,1) = {" -P -P -P -b -b -b -b -b -b -b -T -b -b -b -T -b -b -b -T -b -b -b -T -b -b -b -T -b -b -b -b -"} -(2,1,1) = {" -P -P -P -b -q -q -N -S -S -S -S -S -S -S -S -S -S -S -S -S -S -S -S -S -S -S -S -k -q -q -b -"} -(3,1,1) = {" -P -P -P -b -q -q -N -Q -Q -Z -Q -Q -Q -Q -Z -Q -Q -Q -Q -Z -Q -Q -Q -Q -Z -Q -Q -k -q -q -b -"} -(4,1,1) = {" -P -P -P -b -q -q -N -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -k -q -q -b -"} -(5,1,1) = {" -P -P -P -b -q -q -N -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -J -k -q -q -b -"} -(6,1,1) = {" -P -P -P -b -q -q -N -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -k -q -q -b -"} -(7,1,1) = {" -P -P -P -b -q -B -N -K -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -K -k -B -q -b -"} -(8,1,1) = {" -P -P -P -b -q -q -N -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -k -q -q -b -"} -(9,1,1) = {" -P -P -P -b -q -q -t -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -I -q -q -b -"} -(10,1,1) = {" -P -P -P -b -q -q -N -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -k -q -q -b -"} -(11,1,1) = {" -P -P -P -b -q -q -N -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -k -q -q -b -"} -(12,1,1) = {" -P -P -P -b -q -B -N -K -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -K -k -B -q -b -"} -(13,1,1) = {" -P -P -P -b -q -q -N -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -k -q -q -b -"} -(14,1,1) = {" -P -P -P -b -q -q -N -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -k -q -q -b -"} -(15,1,1) = {" -P -P -P -b -q -q -N -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -k -q -q -b -"} -(16,1,1) = {" -P -P -P -b -q -q -N -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -k -q -q -b -"} -(17,1,1) = {" -P -P -P -b -q -B -N -K -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -K -k -B -q -b -"} -(18,1,1) = {" -P -P -P -b -q -q -N -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -k -q -q -b -"} -(19,1,1) = {" -P -P -P -b -q -q -t -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -I -q -q -b -"} -(20,1,1) = {" -P -P -P -b -q -q -N -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -k -q -q -b -"} -(21,1,1) = {" -P -P -P -b -q -q -N -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -k -q -q -b -"} -(22,1,1) = {" -P -P -P -b -q -B -N -K -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -K -k -B -q -b -"} -(23,1,1) = {" -P -P -P -b -q -q -N -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -k -q -q -b -"} -(24,1,1) = {" -P -P -P -b -q -q -N -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -k -q -q -b -"} -(25,1,1) = {" -P -P -P -b -q -q -N -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -k -q -q -b -"} -(26,1,1) = {" -P -P -P -b -q -q -N -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -k -q -q -b -"} -(27,1,1) = {" -P -P -P -b -q -B -N -K -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -K -k -B -q -b -"} -(28,1,1) = {" -P -P -P -b -q -q -N -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -k -q -q -b -"} -(29,1,1) = {" -P -P -P -b -q -q -t -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -I -q -q -b -"} -(30,1,1) = {" -P -P -P -b -q -q -N -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -k -q -q -b -"} -(31,1,1) = {" -P -P -P -b -q -q -N -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -k -q -q -b -"} -(32,1,1) = {" -P -P -P -b -q -B -N -K -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -K -k -B -q -b -"} -(33,1,1) = {" -P -P -P -b -q -q -N -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -k -q -q -b -"} -(34,1,1) = {" -P -P -P -b -q -q -N -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -k -q -q -b -"} -(35,1,1) = {" -P -P -P -b -q -q -N -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -k -q -q -b -"} -(36,1,1) = {" -P -P -P -b -q -q -N -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -k -q -q -b -"} -(37,1,1) = {" -P -P -P -b -q -B -N -K -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -K -k -B -q -b -"} -(38,1,1) = {" -P -P -P -b -q -q -N -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -k -q -q -b -"} -(39,1,1) = {" -P -P -P -b -q -q -t -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -I -q -q -b -"} -(40,1,1) = {" -P -P -P -b -q -q -N -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -k -q -q -b -"} -(41,1,1) = {" -P -P -P -b -q -q -N -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -k -q -q -b -"} -(42,1,1) = {" -P -P -P -b -q -B -N -K -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -K -k -B -q -b -"} -(43,1,1) = {" -P -o -d -n -g -q -N -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -k -q -q -b -"} -(44,1,1) = {" -b -b -b -b -b -y -N -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -k -q -q -b -"} -(45,1,1) = {" -b -W -W -u -E -q -h -V -V -V -V -V -V -V -V -V -V -V -V -V -V -V -V -V -V -V -V -r -q -q -b -"} -(46,1,1) = {" -b -W -W -W -E -z -q -q -q -c -q -q -q -q -c -q -q -q -q -c -q -q -q -q -c -q -q -q -q -q -b -"} -(47,1,1) = {" -b -W -W -W -E -q -q -q -C -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -q -C -q -q -q -q -b -"} -(48,1,1) = {" -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -"} diff --git a/_maps/outpost/hangar/test_40x40.dmm b/_maps/outpost/hangar/test_40x40.dmm deleted file mode 100644 index d38fcbb3d75d..000000000000 --- a/_maps/outpost/hangar/test_40x40.dmm +++ /dev/null @@ -1,2692 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( -/turf/closed/indestructible/reinforced, -/area/hangar) -"d" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/warning{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/hangar) -"e" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/warning{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/hangar) -"f" = ( -/obj/machinery/atmospherics/components/binary/pump/on, -/turf/open/floor/plasteel, -/area/hangar) -"i" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ - dir = 1 - }, -/obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel, -/area/hangar) -"j" = ( -/obj/effect/turf_decal/arrows{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/hangar) -"l" = ( -/obj/effect/landmark/outpost/hangar_numbers, -/turf/open/floor/plasteel, -/area/hangar) -"o" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hangar) -"p" = ( -/obj/machinery/door/poddoor/multi_tile/four_tile_ver, -/turf/closed/indestructible/reinforced, -/area/hangar) -"q" = ( -/obj/machinery/atmospherics/pipe/simple/general, -/turf/closed/indestructible/reinforced, -/area/hangar) -"r" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, -/obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel, -/area/hangar) -"u" = ( -/turf/template_noop, -/area/template_noop) -"v" = ( -/obj/machinery/door/airlock, -/obj/effect/landmark/outpost/elevator_machine, -/turf/open/floor/plasteel, -/area/hangar) -"z" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hangar) -"A" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, -/turf/open/floor/plasteel, -/area/hangar) -"B" = ( -/obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel, -/area/hangar) -"D" = ( -/turf/open/floor/plating, -/area/hangar) -"E" = ( -/turf/open/floor/plasteel, -/area/hangar) -"G" = ( -/obj/machinery/elevator_call_button{ - pixel_y = 25 - }, -/obj/effect/landmark/outpost/elevator_machine, -/turf/open/floor/plasteel, -/area/hangar) -"I" = ( -/turf/open/floor/plasteel/tech, -/area/hangar) -"J" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hangar) -"K" = ( -/obj/machinery/atmospherics/components/unary/tank/air{ - volume = 10000000 - }, -/turf/open/floor/plasteel, -/area/hangar) -"L" = ( -/obj/effect/turf_decal/arrows{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hangar) -"M" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hangar) -"N" = ( -/obj/effect/landmark/outpost/elevator, -/turf/open/floor/plasteel/elevatorshaft, -/area/hangar) -"O" = ( -/obj/effect/landmark/outpost/hangar_dock, -/turf/open/floor/plating, -/area/hangar) -"R" = ( -/obj/effect/turf_decal/arrows{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hangar) -"U" = ( -/obj/machinery/atmospherics/components/unary/passive_vent{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hangar) -"V" = ( -/turf/open/floor/plasteel/elevatorshaft, -/area/hangar) -"W" = ( -/obj/structure/marker_beacon{ - picked_color = "Teal" - }, -/turf/open/floor/plating, -/area/hangar) - -(1,1,1) = {" -u -u -u -a -a -a -a -a -a -a -p -a -a -a -p -a -a -a -p -a -a -a -p -a -a -a -p -a -a -a -p -a -a -a -p -a -a -a -p -a -a -a -p -a -a -a -p -a -a -a -a -"} -(2,1,1) = {" -u -u -u -a -E -E -A -d -d -d -d -d -d -d -d -d -d -d -d -d -d -d -d -d -d -d -d -d -d -d -d -d -d -d -d -d -d -d -d -d -d -d -d -d -d -d -d -J -E -E -a -"} -(3,1,1) = {" -u -u -u -a -E -E -A -I -I -j -I -I -I -I -j -I -I -I -I -j -I -I -I -I -j -I -I -I -I -j -I -I -I -I -j -I -I -I -I -j -I -I -I -I -j -I -I -J -E -E -a -"} -(4,1,1) = {" -u -u -u -a -E -E -A -e -e -e -e -e -e -e -e -e -e -e -e -e -e -e -e -e -e -e -e -e -e -e -e -e -e -e -e -e -e -e -e -e -e -e -e -e -e -e -e -J -E -E -a -"} -(5,1,1) = {" -u -u -u -a -E -E -A -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -O -J -E -E -a -"} -(6,1,1) = {" -u -u -u -a -E -E -A -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -J -E -E -a -"} -(7,1,1) = {" -u -u -u -a -E -R -A -W -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -W -J -R -E -a -"} -(8,1,1) = {" -u -u -u -a -E -E -A -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -J -E -E -a -"} -(9,1,1) = {" -u -u -u -a -E -E -r -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -i -E -E -a -"} -(10,1,1) = {" -u -u -u -a -E -E -A -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -J -E -E -a -"} -(11,1,1) = {" -u -u -u -a -E -E -A -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -J -E -E -a -"} -(12,1,1) = {" -u -u -u -a -E -R -A -W -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -W -J -R -E -a -"} -(13,1,1) = {" -u -u -u -a -E -E -A -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -J -E -E -a -"} -(14,1,1) = {" -u -u -u -a -E -E -A -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -J -E -E -a -"} -(15,1,1) = {" -u -u -u -a -E -E -A -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -J -E -E -a -"} -(16,1,1) = {" -u -u -u -a -E -E -A -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -J -E -E -a -"} -(17,1,1) = {" -u -u -u -a -E -R -A -W -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -W -J -R -E -a -"} -(18,1,1) = {" -u -u -u -a -E -E -A -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -J -E -E -a -"} -(19,1,1) = {" -u -u -u -a -E -E -r -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -i -E -E -a -"} -(20,1,1) = {" -u -u -u -a -E -E -A -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -J -E -E -a -"} -(21,1,1) = {" -u -u -u -a -E -E -A -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -J -E -E -a -"} -(22,1,1) = {" -u -u -u -a -E -R -A -W -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -W -J -R -E -a -"} -(23,1,1) = {" -u -u -u -a -E -E -A -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -J -E -E -a -"} -(24,1,1) = {" -u -u -u -a -E -E -A -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -J -E -E -a -"} -(25,1,1) = {" -u -u -u -a -E -E -A -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -J -E -E -a -"} -(26,1,1) = {" -u -u -u -a -E -E -A -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -J -E -E -a -"} -(27,1,1) = {" -u -u -u -a -E -R -A -W -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -W -J -R -E -a -"} -(28,1,1) = {" -u -u -u -a -E -E -A -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -J -E -E -a -"} -(29,1,1) = {" -u -u -u -a -E -E -r -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -i -E -E -a -"} -(30,1,1) = {" -u -u -u -a -E -E -A -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -J -E -E -a -"} -(31,1,1) = {" -u -u -u -a -E -E -A -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -J -E -E -a -"} -(32,1,1) = {" -u -u -u -a -E -R -A -W -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -W -J -R -E -a -"} -(33,1,1) = {" -u -u -u -a -E -E -A -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -J -E -E -a -"} -(34,1,1) = {" -u -u -u -a -E -E -A -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -J -E -E -a -"} -(35,1,1) = {" -u -u -u -a -E -E -A -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -J -E -E -a -"} -(36,1,1) = {" -u -u -u -a -E -E -A -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -J -E -E -a -"} -(37,1,1) = {" -u -u -u -a -E -R -A -W -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -W -J -R -E -a -"} -(38,1,1) = {" -u -u -u -a -E -E -A -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -J -E -E -a -"} -(39,1,1) = {" -u -u -u -a -E -E -r -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -i -E -E -a -"} -(40,1,1) = {" -u -u -u -a -E -E -A -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -J -E -E -a -"} -(41,1,1) = {" -u -u -u -a -E -E -A -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -J -E -E -a -"} -(42,1,1) = {" -u -u -u -a -E -R -A -W -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -W -J -R -E -a -"} -(43,1,1) = {" -u -K -f -q -U -E -A -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -J -E -E -a -"} -(44,1,1) = {" -a -a -a -a -a -G -A -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -D -J -E -E -a -"} -(45,1,1) = {" -a -V -V -N -v -E -o -z -z -z -z -z -z -z -z -z -z -z -z -z -z -z -z -z -z -z -z -z -z -z -z -z -z -z -z -z -z -z -z -z -z -z -z -z -z -z -z -M -E -E -a -"} -(46,1,1) = {" -a -V -V -V -v -l -E -E -E -L -E -E -E -E -L -E -E -E -E -L -E -E -E -E -L -E -E -E -E -L -E -E -E -E -L -E -E -E -E -L -E -E -E -E -L -E -E -E -E -E -a -"} -(47,1,1) = {" -a -V -V -V -v -E -E -B -E -E -E -E -E -E -E -E -E -B -E -E -E -E -E -E -E -E -B -B -E -E -E -E -E -E -E -E -B -E -E -E -E -E -E -E -E -E -B -E -E -E -a -"} -(48,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} diff --git a/_maps/outpost/hangar/test_56x20.dmm b/_maps/outpost/hangar/test_56x20.dmm deleted file mode 100644 index 143bbd3ef8d1..000000000000 --- a/_maps/outpost/hangar/test_56x20.dmm +++ /dev/null @@ -1,2260 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( -/turf/open/floor/plating, -/area/hangar) -"b" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/warning{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/hangar) -"c" = ( -/obj/effect/turf_decal/arrows{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hangar) -"d" = ( -/obj/machinery/door/poddoor/multi_tile/four_tile_ver, -/turf/closed/indestructible/reinforced, -/area/hangar) -"g" = ( -/turf/closed/indestructible/reinforced, -/area/hangar) -"h" = ( -/obj/machinery/atmospherics/pipe/simple/general, -/turf/closed/indestructible/reinforced, -/area/hangar) -"k" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hangar) -"o" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hangar) -"q" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, -/obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel, -/area/hangar) -"r" = ( -/obj/structure/marker_beacon{ - picked_color = "Teal" - }, -/turf/open/floor/plating, -/area/hangar) -"t" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ - dir = 1 - }, -/obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel, -/area/hangar) -"u" = ( -/obj/machinery/elevator_call_button{ - pixel_y = 25 - }, -/obj/effect/landmark/outpost/elevator_machine, -/turf/open/floor/plasteel, -/area/hangar) -"v" = ( -/obj/effect/turf_decal/arrows{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/hangar) -"w" = ( -/obj/machinery/door/airlock, -/obj/effect/landmark/outpost/elevator_machine, -/turf/open/floor/plasteel, -/area/hangar) -"z" = ( -/obj/machinery/atmospherics/components/unary/passive_vent{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hangar) -"A" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hangar) -"F" = ( -/obj/effect/landmark/outpost/hangar_numbers, -/turf/open/floor/plasteel, -/area/hangar) -"H" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hangar) -"L" = ( -/turf/open/floor/plasteel/elevatorshaft, -/area/hangar) -"M" = ( -/obj/effect/landmark/outpost/elevator, -/turf/open/floor/plasteel/elevatorshaft, -/area/hangar) -"O" = ( -/obj/effect/landmark/outpost/hangar_dock, -/turf/open/floor/plating, -/area/hangar) -"Q" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, -/turf/open/floor/plasteel, -/area/hangar) -"R" = ( -/obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel, -/area/hangar) -"S" = ( -/obj/effect/turf_decal/arrows{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hangar) -"T" = ( -/turf/open/floor/plasteel, -/area/hangar) -"U" = ( -/obj/machinery/atmospherics/components/binary/pump/on, -/turf/open/floor/plasteel, -/area/hangar) -"V" = ( -/turf/open/floor/plasteel/tech, -/area/hangar) -"W" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/warning{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/hangar) -"Y" = ( -/obj/machinery/atmospherics/components/unary/tank/air{ - volume = 10000000 - }, -/turf/open/floor/plasteel, -/area/hangar) -"Z" = ( -/turf/template_noop, -/area/template_noop) - -(1,1,1) = {" -Z -Z -Z -g -g -g -g -g -g -g -d -g -g -g -d -g -g -g -d -g -g -g -d -g -g -g -d -g -g -g -g -"} -(2,1,1) = {" -Z -Z -Z -g -T -T -Q -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b -A -T -T -g -"} -(3,1,1) = {" -Z -Z -Z -g -T -T -Q -V -V -v -V -V -V -V -v -V -V -V -V -v -V -V -V -V -v -V -V -A -T -T -g -"} -(4,1,1) = {" -Z -Z -Z -g -T -T -Q -W -W -W -W -W -W -W -W -W -W -W -W -W -W -W -W -W -W -W -W -A -T -T -g -"} -(5,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -O -A -T -T -g -"} -(6,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(7,1,1) = {" -Z -Z -Z -g -T -S -Q -r -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -r -A -S -T -g -"} -(8,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(9,1,1) = {" -Z -Z -Z -g -T -T -q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -t -T -T -g -"} -(10,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(11,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(12,1,1) = {" -Z -Z -Z -g -T -S -Q -r -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -r -A -S -T -g -"} -(13,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(14,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(15,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(16,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(17,1,1) = {" -Z -Z -Z -g -T -S -Q -r -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -r -A -S -T -g -"} -(18,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(19,1,1) = {" -Z -Z -Z -g -T -T -q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -t -T -T -g -"} -(20,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(21,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(22,1,1) = {" -Z -Z -Z -g -T -S -Q -r -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -r -A -S -T -g -"} -(23,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(24,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(25,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(26,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(27,1,1) = {" -Z -Z -Z -g -T -S -Q -r -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -r -A -S -T -g -"} -(28,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(29,1,1) = {" -Z -Z -Z -g -T -T -q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -t -T -T -g -"} -(30,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(31,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(32,1,1) = {" -Z -Z -Z -g -T -S -Q -r -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -r -A -S -T -g -"} -(33,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(34,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(35,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(36,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(37,1,1) = {" -Z -Z -Z -g -T -S -Q -r -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -r -A -S -T -g -"} -(38,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(39,1,1) = {" -Z -Z -Z -g -T -T -q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -t -T -T -g -"} -(40,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(41,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(42,1,1) = {" -Z -Z -Z -g -T -S -Q -r -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -r -A -S -T -g -"} -(43,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(44,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(45,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(46,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(47,1,1) = {" -Z -Z -Z -g -T -S -Q -r -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -r -A -S -T -g -"} -(48,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(49,1,1) = {" -Z -Z -Z -g -T -T -q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -t -T -T -g -"} -(50,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(51,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(52,1,1) = {" -Z -Z -Z -g -T -S -Q -r -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -r -A -S -T -g -"} -(53,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(54,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(55,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(56,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(57,1,1) = {" -Z -Z -Z -g -T -S -Q -r -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -r -A -S -T -g -"} -(58,1,1) = {" -Z -Z -Z -g -T -T -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(59,1,1) = {" -Z -Y -U -h -z -T -q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -t -T -T -g -"} -(60,1,1) = {" -g -g -g -g -g -u -Q -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -A -T -T -g -"} -(61,1,1) = {" -g -L -L -M -w -T -k -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -o -H -T -T -g -"} -(62,1,1) = {" -g -L -L -L -w -F -T -T -T -c -T -T -T -T -c -T -T -T -T -c -T -T -T -T -c -T -T -T -T -T -g -"} -(63,1,1) = {" -g -L -L -L -w -T -T -T -R -T -T -T -T -T -T -T -T -T -T -T -T -T -T -T -T -R -T -T -T -T -g -"} -(64,1,1) = {" -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -g -"} diff --git a/_maps/outpost/hangar/test_56x40.dmm b/_maps/outpost/hangar/test_56x40.dmm deleted file mode 100644 index 80ba17bd26b6..000000000000 --- a/_maps/outpost/hangar/test_56x40.dmm +++ /dev/null @@ -1,3540 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( -/turf/open/floor/plating, -/area/hangar) -"c" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hangar) -"e" = ( -/obj/effect/landmark/outpost/hangar_numbers, -/turf/open/floor/plasteel, -/area/hangar) -"f" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, -/obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel, -/area/hangar) -"g" = ( -/obj/structure/marker_beacon{ - picked_color = "Teal" - }, -/turf/open/floor/plating, -/area/hangar) -"h" = ( -/obj/machinery/door/airlock, -/obj/effect/landmark/outpost/elevator_machine, -/turf/open/floor/plasteel, -/area/hangar) -"k" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ - dir = 1 - }, -/obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel, -/area/hangar) -"l" = ( -/obj/machinery/light/floor/hangar, -/turf/open/floor/plasteel, -/area/hangar) -"n" = ( -/turf/open/floor/plasteel/tech, -/area/hangar) -"p" = ( -/obj/effect/turf_decal/arrows{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/hangar) -"q" = ( -/obj/machinery/atmospherics/pipe/simple/general, -/turf/closed/indestructible/reinforced, -/area/hangar) -"s" = ( -/obj/machinery/atmospherics/components/binary/pump/on, -/turf/open/floor/plasteel, -/area/hangar) -"v" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hangar) -"x" = ( -/obj/effect/turf_decal/arrows{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hangar) -"y" = ( -/obj/machinery/elevator_call_button{ - pixel_y = 25 - }, -/obj/effect/landmark/outpost/elevator_machine, -/turf/open/floor/plasteel, -/area/hangar) -"z" = ( -/turf/open/floor/plasteel, -/area/hangar) -"B" = ( -/obj/machinery/atmospherics/components/unary/tank/air{ - volume = 10000000 - }, -/turf/open/floor/plasteel, -/area/hangar) -"C" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, -/turf/open/floor/plasteel, -/area/hangar) -"F" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/warning{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/hangar) -"H" = ( -/turf/closed/indestructible/reinforced, -/area/hangar) -"J" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/warning{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/hangar) -"L" = ( -/obj/machinery/atmospherics/components/unary/passive_vent{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hangar) -"Q" = ( -/obj/effect/landmark/outpost/elevator, -/turf/open/floor/plasteel/elevatorshaft, -/area/hangar) -"R" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hangar) -"S" = ( -/obj/effect/landmark/outpost/hangar_dock, -/turf/open/floor/plating, -/area/hangar) -"U" = ( -/obj/machinery/door/poddoor/multi_tile/four_tile_ver, -/turf/closed/indestructible/reinforced, -/area/hangar) -"V" = ( -/turf/template_noop, -/area/template_noop) -"W" = ( -/obj/effect/turf_decal/arrows{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hangar) -"X" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hangar) -"Y" = ( -/turf/open/floor/plasteel/elevatorshaft, -/area/hangar) - -(1,1,1) = {" -V -V -V -H -H -H -H -H -H -H -U -H -H -H -U -H -H -H -U -H -H -H -U -H -H -H -U -H -H -H -U -H -H -H -U -H -H -H -U -H -H -H -U -H -H -H -U -H -H -H -H -"} -(2,1,1) = {" -V -V -V -H -z -z -C -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -v -z -z -H -"} -(3,1,1) = {" -V -V -V -H -z -z -C -n -n -p -n -n -n -n -p -n -n -n -n -p -n -n -n -n -p -n -n -n -n -p -n -n -n -n -p -n -n -n -n -p -n -n -n -n -p -n -n -v -z -z -H -"} -(4,1,1) = {" -V -V -V -H -z -z -C -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -J -v -z -z -H -"} -(5,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -S -v -z -z -H -"} -(6,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(7,1,1) = {" -V -V -V -H -z -W -C -g -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -g -v -W -z -H -"} -(8,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(9,1,1) = {" -V -V -V -H -z -z -f -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -k -z -z -H -"} -(10,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(11,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(12,1,1) = {" -V -V -V -H -z -W -C -g -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -g -v -W -z -H -"} -(13,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(14,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(15,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(16,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(17,1,1) = {" -V -V -V -H -z -W -C -g -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -g -v -W -z -H -"} -(18,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(19,1,1) = {" -V -V -V -H -z -z -f -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -k -z -z -H -"} -(20,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(21,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(22,1,1) = {" -V -V -V -H -z -W -C -g -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -g -v -W -z -H -"} -(23,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(24,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(25,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(26,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(27,1,1) = {" -V -V -V -H -z -W -C -g -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -g -v -W -z -H -"} -(28,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(29,1,1) = {" -V -V -V -H -z -z -f -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -k -z -z -H -"} -(30,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(31,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(32,1,1) = {" -V -V -V -H -z -W -C -g -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -g -v -W -z -H -"} -(33,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(34,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(35,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(36,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(37,1,1) = {" -V -V -V -H -z -W -C -g -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -g -v -W -z -H -"} -(38,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(39,1,1) = {" -V -V -V -H -z -z -f -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -k -z -z -H -"} -(40,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(41,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(42,1,1) = {" -V -V -V -H -z -W -C -g -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -g -v -W -z -H -"} -(43,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(44,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(45,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(46,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(47,1,1) = {" -V -V -V -H -z -W -C -g -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -g -v -W -z -H -"} -(48,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(49,1,1) = {" -V -V -V -H -z -z -f -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -k -z -z -H -"} -(50,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(51,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(52,1,1) = {" -V -V -V -H -z -W -C -g -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -g -v -W -z -H -"} -(53,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(54,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(55,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(56,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(57,1,1) = {" -V -V -V -H -z -W -C -g -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -g -v -W -z -H -"} -(58,1,1) = {" -V -V -V -H -z -z -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(59,1,1) = {" -V -B -s -q -L -z -f -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -k -z -z -H -"} -(60,1,1) = {" -H -H -H -H -H -y -C -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -v -z -z -H -"} -(61,1,1) = {" -H -Y -Y -Q -h -z -c -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -R -z -z -H -"} -(62,1,1) = {" -H -Y -Y -Y -h -e -z -z -z -x -z -z -z -z -x -z -z -z -z -x -z -z -z -z -x -z -z -z -z -x -z -z -z -z -x -z -z -z -z -x -z -z -z -z -x -z -z -z -z -z -H -"} -(63,1,1) = {" -H -Y -Y -Y -h -z -z -l -z -z -z -z -z -z -z -z -z -l -z -z -z -z -z -z -z -z -l -l -z -z -z -z -z -z -z -z -l -z -z -z -z -z -z -z -z -z -l -z -z -z -H -"} -(64,1,1) = {" -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -H -"} diff --git a/_maps/outpost/indie_space.dmm b/_maps/outpost/indie_space.dmm new file mode 100644 index 000000000000..a3949804177c --- /dev/null +++ b/_maps/outpost/indie_space.dmm @@ -0,0 +1,23001 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ag" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/machinery/door/airlock/public{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/cargo/office) +"ai" = ( +/obj/structure/flora/grass/jungle, +/turf/open/floor/grass/ship/jungle, +/area/outpost/hallway/central) +"aq" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/firealarm/directional/south, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 10 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"ar" = ( +/obj/machinery/camera/autoname{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/library) +"at" = ( +/obj/effect/turf_decal/corner_techfloor_gray{ + dir = 9 + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/fore) +"au" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/modglass{ + pixel_y = 1; + pixel_x = -6 + }, +/obj/item/reagent_containers/food/drinks/modglass{ + pixel_y = 5; + pixel_x = 5 + }, +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"aw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/storage) +"aB" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"aE" = ( +/obj/machinery/light/small/directional/east, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/corner_techfloor_gray{ + dir = 6 + }, +/obj/structure/spider/stickyweb, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"aI" = ( +/turf/closed/indestructible/reinforced, +/area/outpost/crew/library) +"aM" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/prison_contraband, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/vacant_rooms) +"aP" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/item/radio/intercom/directional/east, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 6 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"aS" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 4 + }, +/obj/item/radio/intercom/directional/east, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"aU" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/corner/opaque/black, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"aX" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 6 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"aZ" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/item/toy/figure/bartender{ + pixel_x = -4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"bc" = ( +/obj/structure/rack, +/obj/machinery/light/small/directional/west, +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/glass/rag, +/obj/item/razor, +/obj/item/plunger, +/turf/open/floor/plasteel, +/area/outpost/maintenance/fore) +"bi" = ( +/obj/machinery/mineral/processing_unit_console{ + pixel_y = -31; + machinedir = 1; + output_dir = 1 + }, +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 10 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"bn" = ( +/obj/structure/closet/crate/trashcart, +/obj/structure/spider/stickyweb, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"bq" = ( +/obj/structure/chair/pew/left{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/green{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"bs" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"bz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/sign/poster/random{ + pixel_y = -30 + }, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"bA" = ( +/obj/structure/table, +/obj/machinery/paystand{ + pixel_y = 8 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/vacant_rooms) +"bC" = ( +/obj/machinery/light/small/directional/south, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"bJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/effect/spawner/lootdrop/salvage/metal, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/central) +"bL" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/obj/structure/sign/poster/random{ + pixel_x = -28 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"bS" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/turf_decal/corner_techfloor_grid{ + dir = 8 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/fore) +"bV" = ( +/obj/machinery/light/small/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/structure/foamedmetal, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"bY" = ( +/obj/item/kirbyplants{ + icon_state = "plant-19" + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/vacant_rooms) +"ca" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "outpost1" + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/cargo) +"cc" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/junction/yjunction{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"cg" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"ci" = ( +/obj/effect/spawner/lootdrop/waste/trash, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"cl" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"cm" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/storage) +"cq" = ( +/turf/closed/indestructible/reinforced, +/area/outpost/maintenance/central) +"cr" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/loading, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"cs" = ( +/obj/structure/flora/junglebush, +/turf/open/floor/grass/ship/jungle, +/area/outpost/hallway/central) +"cG" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"cI" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"cK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/closed/indestructible/reinforced, +/area/outpost/maintenance/central) +"cO" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_y = 2; + pixel_x = 4 + }, +/turf/open/floor/carpet/green, +/area/outpost/crew/bar) +"cR" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/corner_techfloor_gray{ + dir = 6 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/fore) +"cS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/effect/decal/cleanable/oil, +/obj/effect/turf_decal/steeldecal/steel_decals6{ + dir = 9 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"cV" = ( +/obj/effect/spawner/structure/window/reinforced/indestructable, +/turf/open/floor/plating, +/area/outpost/cargo/office) +"dg" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 9 + }, +/obj/machinery/camera/autoname{ + dir = 5 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"di" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"dl" = ( +/obj/effect/spawner/lootdrop/waste/trash, +/obj/effect/turf_decal/steeldecal/steel_decals7{ + dir = 9 + }, +/obj/effect/turf_decal/steeldecal/steel_decals7{ + dir = 6 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"dn" = ( +/obj/structure/chair/stool/bar{ + dir = 1; + pixel_y = 13 + }, +/obj/machinery/newscaster/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"dr" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/ash, +/turf/open/floor/plating/asteroid, +/area/outpost/external) +"ds" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/rack, +/obj/item/storage/bag/trash, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"dw" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"dD" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/disposalpipe/segment, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plasteel, +/area/outpost/crew/janitor) +"dK" = ( +/obj/item/trash/can/food/beans{ + pixel_x = -16; + pixel_y = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/can/food/beans{ + pixel_x = 7; + pixel_y = 5 + }, +/obj/item/trash/can/food/beans{ + pixel_y = -2; + pixel_x = 2 + }, +/obj/item/reagent_containers/food/snacks/canned/beans{ + pixel_x = -9; + pixel_y = 18 + }, +/turf/open/floor/plating/asteroid, +/area/outpost/maintenance/central) +"dL" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/maintenance{ + dir = 4; + req_access = list("101") + }, +/turf/open/floor/plasteel/tech, +/area/outpost/vacant_rooms) +"dN" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"dO" = ( +/obj/item/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/light/dim/directional/west, +/obj/machinery/camera/autoname{ + dir = 6 + }, +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 6 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/hallway/central) +"dP" = ( +/obj/structure/chair, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/vacant_rooms) +"dQ" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/trash/syndi_cakes{ + pixel_y = 6; + pixel_x = -3 + }, +/turf/open/floor/carpet/green, +/area/outpost/crew/bar) +"dR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/chem_pile, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"dT" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/closed/indestructible/reinforced, +/area/outpost/maintenance/fore) +"dU" = ( +/obj/item/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/newscaster/directional/north, +/obj/machinery/light/dim/directional/east, +/obj/machinery/camera/autoname, +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 10 + }, +/obj/item/reagent_containers/food/drinks/dry_ramen, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/hallway/central) +"dW" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/steeldecal/steel_decals9, +/obj/effect/turf_decal/steeldecal/steel_decals9{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"dZ" = ( +/obj/structure/railing, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"ee" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/outpost/crew/bar) +"ei" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 9 + }, +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"em" = ( +/turf/closed/indestructible/reinforced, +/area/outpost/external) +"eq" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/turf_decal/corner/opaque/neutral/three_quarters{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"et" = ( +/obj/machinery/photocopier{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/library) +"ev" = ( +/obj/machinery/newscaster/directional/south, +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"ey" = ( +/obj/machinery/door/firedoor/closed, +/obj/structure/barricade/wooden/crude, +/obj/machinery/door/airlock/mining{ + req_access = list("106") + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/port) +"eD" = ( +/obj/structure/cable/yellow{ + icon_state = "6-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/corner_techfloor_gray{ + dir = 5 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/fore) +"eE" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"eG" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/effect/turf_decal/corner/opaque/brown/full, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"eQ" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/corner/opaque/brown/full, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"eU" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/corner_techfloor_grid/diagonal, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/fore) +"fd" = ( +/obj/machinery/mineral/processing_unit{ + input_dir = 8; + output_dir = 1 + }, +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/cargo) +"fi" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel, +/area/outpost/storage) +"fk" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/plaques/kiddie/library{ + pixel_y = 26 + }, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/library) +"fq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/foamedmetal, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"fw" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/corner_techfloor_gray{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/corner_steel_grid{ + dir = 5 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"fE" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"fG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"fI" = ( +/obj/effect/spawner/structure/window/reinforced/indestructable, +/turf/open/floor/plating, +/area/outpost/hallway/central) +"fK" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/outpost/crew/bar) +"fN" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"fP" = ( +/obj/structure/sign/poster/random{ + pixel_x = 28 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/outpost/crew/bar) +"fR" = ( +/obj/structure/railing, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 5 + }, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"fZ" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable/yellow{ + icon_state = "0-10" + }, +/obj/structure/spider/stickyweb, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/steeldecal/steel_decals_central7, +/turf/open/floor/plating, +/area/outpost/vacant_rooms) +"ga" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"gb" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/junglebush/large, +/turf/open/floor/grass/ship/jungle, +/area/outpost/hallway/port) +"gf" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/firealarm/directional/west, +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"go" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"gq" = ( +/turf/closed/indestructible/reinforced, +/area/outpost/crew/janitor) +"gr" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"gt" = ( +/obj/structure/rack, +/obj/item/skub, +/turf/open/floor/plasteel/mono, +/area/outpost/vacant_rooms) +"gz" = ( +/obj/machinery/vending/cola/random, +/obj/item/radio/intercom/directional/east, +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 1 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/hallway/central) +"gA" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/corner_techfloor_gray{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/fore) +"gC" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"gE" = ( +/obj/item/radio/intercom/directional/east, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"gO" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "outpost1" + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/cargo) +"gP" = ( +/obj/structure/filingcabinet/double, +/turf/open/floor/plasteel/dark, +/area/outpost/cargo/office) +"gR" = ( +/obj/effect/decal/cleanable/greenglow, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"gS" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"gT" = ( +/obj/structure/railing, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"gW" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/effect/turf_decal/steeldecal/steel_decals_central6, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"gZ" = ( +/obj/effect/turf_decal/industrial/caution, +/obj/machinery/light/dim/directional/south, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 10 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"hb" = ( +/obj/effect/turf_decal/industrial/caution, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"hg" = ( +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/structure/disposaloutlet{ + dir = 1 + }, +/obj/machinery/conveyor/auto{ + dir = 1; + id = "outpost3" + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"hj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"hk" = ( +/obj/structure/frame, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"hq" = ( +/turf/open/floor/plating/asteroid, +/area/outpost/external) +"hs" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"hz" = ( +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/obj/structure/grille/indestructable, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"hA" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable/yellow, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/machinery/camera/autoname{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 5 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"hD" = ( +/obj/structure/disposalpipe/trunk/multiz{ + dir = 4 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/fore) +"hJ" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"hK" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/salvage_laser, +/obj/effect/spawner/lootdrop/salvage_capacitor, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"hM" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/machinery/light/dim/directional/north, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 6 + }, +/obj/machinery/camera/autoname{ + dir = 9 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"hO" = ( +/obj/structure/flora/grass/jungle/b, +/turf/open/floor/grass/ship/jungle, +/area/outpost/hallway/central) +"hS" = ( +/obj/item/radio/intercom/directional/east, +/obj/structure/table/wood, +/obj/item/toy/cards/deck/tarot{ + pixel_x = 5; + pixel_y = -2 + }, +/obj/item/reagent_containers/food/drinks/mug/tea{ + pixel_x = -7; + pixel_y = -2 + }, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"hW" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/floordetail/tiled, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"hX" = ( +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey/corner{ + dir = 4 + }, +/obj/machinery/light/dim/directional/east, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"hY" = ( +/obj/structure/closet/crate/trashcart, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"hZ" = ( +/obj/structure/table/wood, +/obj/effect/spawner/lootdrop/donut, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"ib" = ( +/obj/structure/reagent_dispensers/beerkeg, +/obj/effect/turf_decal/corner/transparent/brown/full, +/turf/open/floor/plasteel, +/area/outpost/crew/bar) +"ic" = ( +/obj/structure/flora/grass/jungle, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/turf/open/floor/grass/ship/jungle, +/area/outpost/hallway/port) +"id" = ( +/obj/machinery/holopad/emergency/bar, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/green, +/area/outpost/crew/bar) +"ie" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/outpost/cargo/office) +"ii" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"ip" = ( +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"iq" = ( +/obj/machinery/light/small/directional/east, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"ir" = ( +/obj/machinery/light/small/directional/east, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"it" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"iw" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/library) +"iD" = ( +/obj/effect/spawner/lootdrop/waste/trash, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"iG" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/corner/opaque/neutral, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"iH" = ( +/obj/machinery/light/dim/directional/east, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/storage) +"iI" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/port) +"iQ" = ( +/obj/item/trash/can/food/beans{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/light/small/directional/north, +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/can/food/beans{ + pixel_x = 9; + pixel_y = 8 + }, +/obj/item/trash/can/food/beans{ + pixel_y = 1 + }, +/obj/item/reagent_containers/food/snacks/canned/beans{ + pixel_x = 13; + pixel_y = -9 + }, +/turf/open/floor/plating/asteroid, +/area/outpost/maintenance/central) +"iV" = ( +/obj/effect/spawner/structure/window/reinforced/indestructable, +/turf/open/floor/plating, +/area/outpost/vacant_rooms/office) +"iY" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"jd" = ( +/obj/effect/turf_decal/ihejirika_small/right, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"je" = ( +/obj/effect/spawner/structure/window/reinforced/indestructable, +/turf/open/floor/plating, +/area/outpost/crew/bar) +"jg" = ( +/obj/structure/rack, +/obj/machinery/light/dim/directional/west, +/obj/item/reagent_containers/food/drinks/waterbottle, +/turf/open/floor/plasteel/mono, +/area/outpost/storage) +"jj" = ( +/obj/machinery/light/dim/directional/east, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/green, +/area/outpost/crew/bar) +"jn" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance/two, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"jo" = ( +/obj/structure/railing, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 5 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"js" = ( +/obj/effect/turf_decal/box/corners, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/cargo) +"jx" = ( +/obj/item/trash/can/food/beans{ + pixel_x = -5 + }, +/obj/effect/decal/cleanable/generic, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/asteroid, +/area/outpost/maintenance/central) +"jC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/central) +"jH" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"jI" = ( +/obj/machinery/door/airlock{ + dir = 1; + name = "Lounge" + }, +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/tech, +/area/outpost/crew/bar) +"jK" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"jL" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/central) +"jM" = ( +/obj/effect/spawner/lootdrop/chicken, +/turf/open/floor/ship/dirt, +/area/outpost/hallway/port) +"jO" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"jR" = ( +/obj/structure/chair/stool/bar{ + dir = 1; + pixel_y = 13 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"jU" = ( +/obj/structure/table/wood, +/obj/machinery/computer/bookmanagement, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/library) +"kb" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/camera/autoname{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"kd" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"kh" = ( +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"km" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/confetti, +/turf/open/floor/wood, +/area/outpost/crew/library) +"ks" = ( +/turf/open/floor/plasteel/elevatorshaft, +/area/outpost/hallway/central) +"kx" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4{ + dir = 1 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"ky" = ( +/obj/structure/sign/painting/library{ + pixel_y = -26 + }, +/obj/effect/decal/cleanable/glass, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/library) +"kA" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"kE" = ( +/obj/machinery/light/small/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"kH" = ( +/obj/item/shovel/spoon, +/turf/open/floor/plating/asteroid, +/area/outpost/external) +"kM" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"kQ" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/light/small/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"kR" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"kT" = ( +/obj/machinery/mineral/processing_unit_console{ + pixel_y = 20; + machinedir = 2; + output_dir = 4 + }, +/obj/structure/railing, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 5 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"kU" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"la" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/holopad/emergency/janitor, +/obj/effect/turf_decal/trimline/opaque/purple/filled, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel, +/area/outpost/crew/janitor) +"lb" = ( +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"lh" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/floordetail/tiled, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"lk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/light/small/directional/north, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/library) +"lo" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"lq" = ( +/obj/machinery/door/airlock/maintenance{ + req_access = list("101") + }, +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/oil/slippery, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/tech, +/area/outpost/maintenance/fore) +"ls" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"lw" = ( +/obj/machinery/light/small/directional/south, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"lx" = ( +/obj/machinery/light/small/directional/north, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/steeldecal/steel_decals_central2, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"lA" = ( +/obj/structure/flora/grass/jungle, +/obj/effect/spawner/lootdrop/chicken, +/turf/open/floor/grass/ship/jungle, +/area/outpost/hallway/central) +"lB" = ( +/obj/machinery/light/small/directional/west, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"lE" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/insectguts, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"lG" = ( +/obj/machinery/door/airlock/public, +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/tech, +/area/outpost/vacant_rooms) +"lH" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/effect/decal/cleanable/wrapping{ + pixel_y = 11; + pixel_x = 3 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/library) +"lM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/steeldecal/steel_decals9, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"lX" = ( +/obj/structure/rack, +/obj/effect/turf_decal/steeldecal/steel_decals_central2{ + dir = 4 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"lY" = ( +/obj/effect/decal/cleanable/oil/streak, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/outpost/vacant_rooms) +"mb" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"md" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"mf" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"mk" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"mm" = ( +/obj/machinery/light/dim/directional/east, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/storage) +"mp" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/junction{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"mr" = ( +/obj/machinery/door/airlock/maintenance, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/maintenance/fore) +"ms" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/sign/directions/supply{ + pixel_y = 21; + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"mv" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears, +/obj/effect/decal/cleanable/wrapping, +/turf/open/floor/plasteel/mono, +/area/outpost/vacant_rooms) +"mA" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/number/random, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"mB" = ( +/obj/machinery/door/firedoor/closed, +/obj/structure/barricade/wooden/crude, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/door/airlock/mining{ + req_access = list("106") + }, +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/port) +"mC" = ( +/turf/open/space/basic, +/area/space) +"mJ" = ( +/obj/structure/chair/wood, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"mM" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"mN" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/effect/turf_decal/corner/opaque/brown/full, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"mP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/steeldecal/steel_decals3, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"mT" = ( +/obj/structure/table, +/obj/item/trash/can/food/beans{ + pixel_x = -4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"mU" = ( +/obj/structure/closet/crate/trashcart, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"mV" = ( +/obj/machinery/conveyor/auto{ + dir = 5; + id = "outpost3" + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"mW" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/spider/stickyweb, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/outpost/vacant_rooms) +"nb" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"nc" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/airalarm/directional/east, +/obj/effect/turf_decal/corner/opaque/neutral, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"nd" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/outpost/cargo/office) +"nn" = ( +/obj/effect/decal/cleanable/food/tomato_smudge, +/obj/machinery/airalarm/directional/north, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/mahogany, +/area/outpost/crew/bar) +"no" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"np" = ( +/obj/structure/grille/indestructable, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"nq" = ( +/obj/effect/spawner/structure/window/reinforced/indestructable, +/turf/open/floor/plating, +/area/outpost/vacant_rooms) +"nt" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 5 + }, +/obj/effect/turf_decal/corner/opaque/black, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"ny" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/firealarm/directional/west, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 9 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"nz" = ( +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"nK" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/central) +"nL" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/corner_techfloor_gray{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/corner_steel_grid{ + dir = 5 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"nM" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"nR" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_y = 5 + }, +/turf/open/floor/carpet/green, +/area/outpost/crew/bar) +"nT" = ( +/obj/item/radio/intercom/directional/south, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/libraryscanner, +/turf/open/floor/wood, +/area/outpost/crew/library) +"nU" = ( +/obj/structure/flora/grass/jungle/b, +/turf/open/floor/grass/ship/jungle, +/area/outpost/hallway/port) +"nY" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"nZ" = ( +/obj/effect/decal/cleanable/food/egg_smudge, +/obj/effect/turf_decal/steeldecal/steel_decals10, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"oa" = ( +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/siding/wood/corner, +/obj/item/kirbyplants{ + icon_state = "plant-02"; + pixel_y = 18; + pixel_x = -11 + }, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"od" = ( +/obj/machinery/shower{ + pixel_y = 17 + }, +/obj/effect/decal/cleanable/food/pie_smudge, +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/floordetail/pryhole, +/turf/open/floor/plasteel, +/area/outpost/maintenance/fore) +"og" = ( +/obj/machinery/atmospherics/pipe/simple/multiz{ + pixel_y = 1; + pixel_x = -9 + }, +/obj/machinery/power/deck_relay, +/obj/machinery/atmospherics/pipe/simple/multiz{ + pixel_y = 1; + pixel_x = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/fore) +"om" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"on" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"op" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"or" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"ow" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/corner_techfloor_gray{ + dir = 5 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/fore) +"oK" = ( +/obj/machinery/door/airlock/public{ + id_tag = "out1" + }, +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/tech, +/area/outpost/storage) +"oN" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"oS" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/cargo) +"oT" = ( +/obj/structure/chair/pew/right{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/green{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"oU" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/mob/living/simple_animal/mouse/brown, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"pb" = ( +/obj/structure/chair/stool/bar{ + dir = 1; + pixel_y = 13 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"pg" = ( +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/vacant_rooms) +"ph" = ( +/turf/open/floor/ship/dirt/dark, +/area/outpost/hallway/port) +"pj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/outpost/storage) +"pk" = ( +/obj/structure/grille, +/obj/structure/grille, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"pl" = ( +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/outpost/storage) +"pm" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"pn" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/structure/holosign/barrier/infinite{ + max_integrity = 500 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"pp" = ( +/obj/item/reagent_containers/pill/floorpill, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"pr" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/newscaster/directional/east, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"pt" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/paper_bin{ + pixel_x = 4; + pixel_y = -4 + }, +/obj/item/pen/fourcolor{ + pixel_x = 3; + pixel_y = -2 + }, +/turf/open/floor/wood, +/area/outpost/crew/library) +"pA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/glass, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"pC" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/maintenance{ + req_access = list("101") + }, +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/central) +"pF" = ( +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms/office) +"pG" = ( +/obj/structure/easel, +/obj/machinery/light/small/directional/north, +/obj/effect/decal/cleanable/glass, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/canvas/twentythreeXtwentythree, +/turf/open/floor/wood, +/area/outpost/crew/library) +"pQ" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/turf/open/floor/plating/asteroid, +/area/outpost/external) +"pS" = ( +/obj/item/kirbyplants{ + icon_state = "plant-22" + }, +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 8 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/hallway/port) +"qb" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/crayon{ + icon_state = "electricdanger"; + pixel_y = 26 + }, +/obj/effect/turf_decal/corner_techfloor_gray{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/corner_steel_grid{ + dir = 5 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"qg" = ( +/obj/structure/chair/sofa/left{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/royalblack, +/area/outpost/crew/bar) +"qp" = ( +/obj/structure/flora/rock, +/turf/open/floor/plating/asteroid, +/area/outpost/external) +"qq" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/loading{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"qv" = ( +/obj/structure/table/wood, +/obj/machinery/newscaster/directional/east, +/turf/open/floor/carpet/green, +/area/outpost/crew/bar) +"qx" = ( +/obj/structure/spider/stickyweb, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"qA" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/neutral, +/obj/effect/turf_decal/industrial/caution, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"qD" = ( +/obj/structure/chair/pew{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/corner/opaque/green{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"qG" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"qH" = ( +/obj/machinery/light/small/directional/west, +/turf/open/floor/plasteel/dark, +/area/outpost/cargo/office) +"qN" = ( +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/cargo) +"qR" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"qT" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"qW" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/vacant_rooms) +"qX" = ( +/obj/structure/grille/indestructable, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/obj/structure/cable/yellow, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"rb" = ( +/obj/machinery/newscaster/directional/west, +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"rg" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/wrapping, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/library) +"rj" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"rm" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/effect/turf_decal/floordetail/tiled, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"ro" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"rp" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/donkpockets, +/obj/effect/spawner/lootdrop/maintenance/seven, +/turf/open/floor/plasteel/mono, +/area/outpost/vacant_rooms) +"rr" = ( +/obj/structure/flora/grass/jungle, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/turf/open/floor/grass/ship/jungle, +/area/outpost/hallway/central) +"rs" = ( +/obj/structure/table/wood, +/obj/item/radio/old, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/spacecash/bundle/c1{ + pixel_y = 9; + pixel_x = -6 + }, +/turf/open/floor/carpet/royalblack, +/area/outpost/crew/bar) +"rt" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"rv" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey/corner{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"ry" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/central) +"rC" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"rD" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/spawner/lootdrop/maintenance/two, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"rG" = ( +/obj/item/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/light/dim/directional/west, +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 5 + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/hallway/central) +"rK" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"rM" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/light/dim/directional/east, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/corner/opaque/neutral, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"rN" = ( +/obj/machinery/mineral/unloading_machine{ + input_dir = 2; + output_dir = 1 + }, +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/cargo) +"rP" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 10 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"rQ" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/crayon{ + icon_state = "guy"; + pixel_y = 20 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/turf_decal/steeldecal/steel_decals6{ + dir = 9 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"rR" = ( +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen, +/obj/item/reagent_containers/food/drinks/mug{ + pixel_x = -12; + pixel_y = 9 + }, +/turf/open/floor/plasteel/dark, +/area/outpost/cargo/office) +"rS" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/light/small/directional/west, +/obj/effect/decal/cleanable/wrapping, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/library) +"rT" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/steeldecal/steel_decals3{ + dir = 1 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"rU" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/dark, +/area/outpost/cargo/office) +"rW" = ( +/obj/effect/turf_decal/corner_techfloor_gray{ + dir = 6 + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/spawner/lootdrop/waste/trash, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/fore) +"rZ" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/firealarm/directional/west, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"sb" = ( +/obj/item/kirbyplants{ + icon_state = "plant-06"; + pixel_y = 17; + pixel_x = -9 + }, +/obj/item/kirbyplants{ + icon_state = "plant-12"; + pixel_y = 14; + pixel_x = 3 + }, +/obj/item/kirbyplants{ + icon_state = "plant-11"; + pixel_y = 4; + pixel_x = -6 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/obj/structure/sign/poster/random{ + pixel_y = 0; + pixel_x = -28 + }, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"sf" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/foamedmetal, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"sj" = ( +/obj/structure/reagent_dispensers/beerkeg, +/obj/machinery/light/small/directional/west, +/obj/effect/turf_decal/corner/transparent/brown/full, +/turf/open/floor/plasteel, +/area/outpost/crew/bar) +"sk" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"sl" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/corner/opaque/brown/full, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"sm" = ( +/obj/structure/flippedtable{ + dir = 4 + }, +/obj/effect/turf_decal/box, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"sn" = ( +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"sz" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/closet/emcloset/wall{ + dir = 4; + pixel_x = -28 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"sB" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/chair/office{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/confetti, +/turf/open/floor/wood, +/area/outpost/crew/library) +"sF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"sG" = ( +/obj/structure/toilet{ + dir = 8; + pixel_y = 0; + pixel_x = 8 + }, +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/steeldecal/steel_decals9{ + dir = 1 + }, +/obj/effect/turf_decal/floordetail/pryhole, +/turf/open/floor/plasteel, +/area/outpost/maintenance/fore) +"sH" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/port) +"sO" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock{ + dir = 4; + name = "Library" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/crew/library) +"sP" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/closed/indestructible/reinforced, +/area/outpost/maintenance/central) +"sR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"sV" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/library) +"ta" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/minor/twentyfive_percent_cyborg_mask, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/gloves, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono, +/area/outpost/storage) +"th" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/light/dim/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"tj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/vacant_rooms/office) +"tk" = ( +/obj/effect/decal/cleanable/glass, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"tl" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/effect/decal/cleanable/insectguts, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"tm" = ( +/obj/effect/decal/cleanable/glass/strange, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/central) +"to" = ( +/obj/structure/flora/junglebush/large, +/turf/open/floor/grass/ship/jungle, +/area/outpost/hallway/central) +"tr" = ( +/obj/structure/bookcase/random, +/obj/machinery/light/small/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/library) +"tt" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/steeldecal/steel_decals_central6, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"tu" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken3" + }, +/area/outpost/crew/bar) +"tv" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"tw" = ( +/obj/structure/table/wood, +/obj/item/newspaper{ + pixel_x = 1; + pixel_y = 7 + }, +/turf/open/floor/carpet/royalblack, +/area/outpost/crew/bar) +"tA" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"tC" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"tE" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/light/dim/directional/west, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 9 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"tG" = ( +/obj/structure/cable/yellow{ + icon_state = "2-9" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"tH" = ( +/obj/structure/sink/greyscale{ + dir = 8; + pixel_x = 13 + }, +/obj/structure/mirror{ + pixel_x = 26; + pixel_y = -4 + }, +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/steeldecal/steel_decals9{ + dir = 8 + }, +/obj/effect/turf_decal/floordetail/pryhole, +/turf/open/floor/plasteel, +/area/outpost/maintenance/fore) +"tI" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"tN" = ( +/obj/structure/railing/corner, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"tS" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance/four, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"tT" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"tU" = ( +/obj/machinery/light/small/directional/north, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/techfloor{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"tZ" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/central) +"ua" = ( +/obj/item/radio/intercom/directional/east, +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/storage) +"ue" = ( +/obj/structure/table/wood, +/obj/machinery/light/small/directional/east, +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/pill/epinephrine, +/obj/item/paper_bin/bundlenatural{ + pixel_x = 9; + pixel_y = 13 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"uf" = ( +/obj/machinery/light/dim/directional/west, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"ug" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/effect/turf_decal/corner/opaque/neutral, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"uj" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/port) +"uk" = ( +/obj/structure/railing, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"um" = ( +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel, +/area/outpost/storage) +"un" = ( +/obj/structure/chair/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"ur" = ( +/obj/structure/chair/sofa/corner{ + dir = 8 + }, +/turf/open/floor/carpet/royalblack, +/area/outpost/crew/bar) +"uu" = ( +/obj/machinery/light/small/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"uv" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/bookbinder, +/turf/open/floor/wood, +/area/outpost/crew/library) +"uw" = ( +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/obj/machinery/light/dim/directional/north, +/obj/structure/closet/crate, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/cargo) +"uy" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/newscaster/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"uz" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/brown/full, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"uA" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"uD" = ( +/turf/open/floor/ship/dirt, +/area/outpost/hallway/central) +"uE" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"uL" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"uN" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/insectguts, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"uQ" = ( +/obj/structure/table, +/obj/item/clipboard{ + pixel_y = -5; + pixel_x = 5 + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/plasteel/dark, +/area/outpost/cargo/office) +"uU" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/turf_decal/corner/opaque/neutral, +/obj/structure/sign/poster/random{ + pixel_x = 28 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"uV" = ( +/obj/structure/dresser{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/asteroid, +/area/outpost/maintenance/central) +"uW" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/firealarm/directional/north, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"uX" = ( +/obj/machinery/disposal/bin, +/obj/machinery/newscaster/directional/west, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 1 + }, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/hallway/central) +"va" = ( +/obj/machinery/light/small/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"vc" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/turf/open/floor/plating/asteroid, +/area/outpost/external) +"vd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"vp" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"vr" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/central) +"vB" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"vH" = ( +/obj/machinery/conveyor/auto{ + dir = 6; + id = "outpost3" + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"vI" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 9 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"vR" = ( +/obj/structure/flora/grass/jungle, +/obj/machinery/light/dim/directional/north, +/turf/open/floor/grass/ship/jungle, +/area/outpost/hallway/port) +"vT" = ( +/obj/structure/rack, +/mob/living/simple_animal/pet/mothroach{ + name = "beanroach" + }, +/obj/item/reagent_containers/food/snacks/canned/beans, +/obj/item/reagent_containers/food/snacks/canned/beans, +/obj/item/reagent_containers/food/snacks/canned/beans, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/asteroid, +/area/outpost/maintenance/central) +"vV" = ( +/obj/machinery/door/airlock/public{ + id_tag = "out2" + }, +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/central) +"vX" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"vZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"wa" = ( +/obj/structure/sign/painting/library{ + pixel_y = 0; + pixel_x = -26 + }, +/obj/effect/decal/cleanable/wrapping, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/confetti, +/turf/open/floor/wood, +/area/outpost/crew/library) +"we" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/light/dim/directional/south, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"wi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/central) +"wk" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/corner_techfloor_gray{ + dir = 8 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"wn" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"wq" = ( +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"wu" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"wv" = ( +/obj/machinery/light/dim/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"wA" = ( +/obj/effect/decal/cleanable/food/tomato_smudge, +/turf/open/floor/wood/mahogany, +/area/outpost/crew/bar) +"wC" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/turf_decal/industrial/stand_clear, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"wF" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/junglebush/c, +/turf/open/floor/grass/ship/jungle, +/area/outpost/hallway/central) +"wK" = ( +/turf/closed/indestructible/reinforced, +/area/outpost/vacant_rooms/office) +"wL" = ( +/turf/closed/indestructible/reinforced, +/area/outpost/vacant_rooms) +"wN" = ( +/obj/machinery/vending/coffee, +/obj/machinery/light/dim/directional/south, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/hallway/central) +"wR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/foamedmetal, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"wT" = ( +/obj/machinery/jukebox{ + pixel_y = 16; + density = 0; + can_be_unanchored = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/green, +/area/outpost/crew/bar) +"wU" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"wX" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel, +/area/outpost/storage) +"xc" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/structure/spider/stickyweb, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/outpost/vacant_rooms) +"xf" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/corner/opaque/brown/full, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"xk" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"xm" = ( +/obj/machinery/light/small/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"xo" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/light/dim/directional/north, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"xr" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/camera/autoname{ + dir = 5 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"xu" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"xy" = ( +/obj/effect/decal/cleanable/glass/strange, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/central) +"xI" = ( +/obj/machinery/camera/autoname, +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"xJ" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"xK" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/turf_decal/techfloor, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"xM" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"xQ" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"xW" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning, +/obj/machinery/door/airlock{ + name = "Restroom"; + id_tag = "out3" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech, +/area/outpost/crew/bar) +"xX" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/spawner/lootdrop/waste/trash, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"xZ" = ( +/obj/structure/chair/pew/left{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/green{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"yc" = ( +/obj/structure/foamedmetal, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"yh" = ( +/obj/structure/chair/sofa/corner{ + dir = 4 + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/carpet/green, +/area/outpost/crew/bar) +"yj" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/port) +"yk" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"yq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/obj/effect/turf_decal/steeldecal/steel_decals6{ + dir = 5 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"yv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/obj/effect/turf_decal/corner/opaque/brown/full, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"yB" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"yE" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"yN" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/donkpockets, +/turf/open/floor/plasteel/mono, +/area/outpost/vacant_rooms) +"yQ" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/gibs{ + name = "old bloody vomit" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"yR" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/camera/autoname{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"yS" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"yV" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/turf_decal/corner/opaque/neutral, +/obj/structure/closet/firecloset/wall{ + dir = 8; + pixel_x = 28 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"zb" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm/directional/south, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/floordetail/tiled, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"zg" = ( +/obj/effect/landmark/outpost/elevator_machine{ + shaft = "1" + }, +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/machinery/door/airlock/hatch, +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/central) +"zo" = ( +/obj/machinery/mineral/processing_unit{ + output_dir = 4; + input_dir = 2 + }, +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/cargo) +"zq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"zr" = ( +/obj/machinery/camera/autoname{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/storage) +"zv" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/sign/directions/service{ + pixel_y = 22; + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"zC" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "outpost2" + }, +/obj/effect/turf_decal/industrial/warning/fulltile, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/cargo) +"zE" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/turf/open/floor/plating/asteroid, +/area/outpost/external) +"zI" = ( +/obj/machinery/light/small/directional/east, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"zL" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"zM" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"zO" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"zR" = ( +/obj/effect/mob_spawn/human/corpse/charredskeleton{ + name = "Marv" + }, +/obj/item/stack/cable_coil/cut/yellow, +/obj/effect/decal/cleanable/ash/large, +/turf/open/floor/plating/asteroid, +/area/outpost/external) +"zS" = ( +/obj/effect/spawner/lootdrop/waste/trash, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"zY" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/corner_techfloor_gray{ + dir = 5 + }, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/fore) +"Ab" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/structure/foamedmetal, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Ai" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/obj/machinery/camera/autoname{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/opaque/purple/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/outpost/crew/janitor) +"Ak" = ( +/obj/machinery/door/airlock/maintenance{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/maintenance/fore) +"Am" = ( +/obj/machinery/vending/cola/random, +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 8 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/hallway/port) +"Ao" = ( +/obj/item/radio/intercom/directional/north, +/obj/item/trash/can/food/beans{ + pixel_y = -1 + }, +/obj/effect/decal/cleanable/generic, +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/can/food/beans{ + pixel_x = 9; + pixel_y = 10 + }, +/obj/item/reagent_containers/food/snacks/canned/beans{ + pixel_x = -14; + pixel_y = -7 + }, +/turf/open/floor/plating/asteroid, +/area/outpost/maintenance/central) +"Ap" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"Au" = ( +/obj/effect/turf_decal/steeldecal/steel_decals3{ + dir = 1 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Aw" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/hallway/port) +"Ay" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/sign/poster/official/miners{ + pixel_x = 26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/corner/opaque/neutral, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"AH" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plating/asteroid, +/area/outpost/external) +"AI" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + dir = 4; + req_access = list("101") + }, +/turf/open/floor/plasteel/tech, +/area/outpost/maintenance/central) +"AL" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 10 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"AM" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/turf_decal/siding/wood/corner, +/obj/machinery/airalarm/directional/north, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/confetti, +/turf/open/floor/wood, +/area/outpost/crew/library) +"AN" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/steeldecal/steel_decals4, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"AO" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/airalarm/directional/south, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"AP" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/box/pillbottles, +/obj/projectile/bullet/dart/syringe, +/obj/projectile/bullet/dart/syringe{ + pixel_x = -6 + }, +/obj/projectile/bullet/dart/syringe{ + pixel_y = 4; + pixel_x = 8 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"AS" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"AT" = ( +/obj/structure/railing/wood{ + dir = 2; + color = "#792f27" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/stairs/wood{ + dir = 4; + color = "#792f27" + }, +/area/outpost/crew/bar) +"AU" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"AW" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/vacant_rooms/office) +"Bc" = ( +/obj/structure/cable/yellow{ + icon_state = "2-5" + }, +/obj/structure/spider/stickyweb, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/outpost/vacant_rooms) +"Bd" = ( +/obj/structure/grille/indestructable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/outpost/vacant_rooms) +"Bf" = ( +/obj/structure/table/wood, +/obj/machinery/camera/autoname{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/reagent_containers/food/drinks/mug{ + pixel_x = 5; + pixel_y = 5 + }, +/turf/open/floor/carpet/green, +/area/outpost/crew/bar) +"Bj" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/central) +"Bp" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/number/random, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Bq" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/disposalpipe/junction/flip{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/outpost/crew/bar) +"Br" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/grille/indestructable, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Bt" = ( +/obj/machinery/light/dim/directional/west, +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"Bu" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/beer/light{ + pixel_x = -8 + }, +/obj/item/newspaper{ + pixel_x = 7; + pixel_y = 7 + }, +/turf/open/floor/carpet/green, +/area/outpost/crew/bar) +"Bz" = ( +/obj/machinery/power/floodlight, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/turf/open/floor/plating/asteroid, +/area/outpost/external) +"BA" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"BE" = ( +/obj/item/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/light/dim/directional/east, +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 9 + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/hallway/central) +"BJ" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"BM" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/port) +"BN" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/steeldecal/steel_decals6{ + dir = 8 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"BR" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"BX" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/mug{ + pixel_x = -2; + pixel_y = 5 + }, +/turf/open/floor/carpet/royalblack, +/area/outpost/crew/bar) +"BY" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/turf/closed/indestructible/reinforced, +/area/outpost/maintenance/fore) +"BZ" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 10 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"Ca" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/light/dim/directional/east, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 6 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"Cc" = ( +/turf/closed/indestructible/reinforced, +/area/outpost/crew/bar) +"Cf" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Cg" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks{ + pixel_y = 13; + layer = 3 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/reagent_containers/food/drinks/shaker{ + pixel_x = 15; + layer = 4.26 + }, +/obj/item/pen/fourcolor{ + pixel_x = 4; + pixel_y = -1 + }, +/turf/open/floor/carpet/green, +/area/outpost/crew/bar) +"Ch" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/firealarm/directional/north, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Ci" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/landmark/outpost/elevator_machine{ + shaft = "1" + }, +/obj/machinery/elevator_call_button{ + dir = 1; + pixel_y = -24 + }, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Cl" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Cm" = ( +/obj/item/toy/sprayoncan, +/turf/open/floor/plating/asteroid, +/area/outpost/external) +"Cn" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/central) +"Cp" = ( +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/vacant_rooms) +"Ct" = ( +/obj/structure/grille/indestructable, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"CI" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/light/dim/directional/west, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"CK" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable/yellow, +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plasteel, +/area/outpost/crew/janitor) +"CL" = ( +/obj/structure/flora/junglebush, +/turf/open/floor/grass/ship/jungle, +/area/outpost/hallway/port) +"CU" = ( +/obj/machinery/button/door{ + id = "out2"; + normaldoorcontrol = 1; + specialfunctions = 4; + dir = 1; + pixel_y = -22; + pixel_x = -9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/floordetail/tiled, +/turf/open/floor/plasteel, +/area/outpost/maintenance/fore) +"CV" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"CX" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 6 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"Df" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/random{ + pixel_x = 28 + }, +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/corner/opaque/neutral, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Di" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/brown/full, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"Dm" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"Do" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/outpost/vacant_rooms) +"Dp" = ( +/obj/structure/railing/corner, +/obj/effect/turf_decal/industrial/loading{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"Dq" = ( +/obj/structure/falsewall/reinforced, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"DA" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"DF" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"DH" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/minor/bowler_or_that, +/obj/effect/spawner/lootdrop/maintenance/two, +/turf/open/floor/plasteel/mono, +/area/outpost/storage) +"DL" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"DP" = ( +/obj/structure/railing/corner, +/obj/machinery/light/dim/directional/north, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 9 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"DS" = ( +/obj/machinery/power/smes/magical{ + name = "power relay" + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"DV" = ( +/obj/structure/falsewall/reinforced, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"DW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/corner_techfloor_gray{ + dir = 10 + }, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/fore) +"Ef" = ( +/obj/effect/turf_decal/corner_techfloor_gray{ + dir = 9 + }, +/obj/effect/spawner/lootdrop/salvage/metal, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/fore) +"Eg" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/item/radio/intercom/directional/east, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/opaque/purple/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/crew/janitor) +"Ei" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/spider/stickyweb, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Eo" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/turf_decal/corner/opaque/black, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Et" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/vacant_rooms) +"Ez" = ( +/obj/effect/spawner/structure/window/reinforced/indestructable, +/turf/open/floor/plating, +/area/outpost/hallway/port) +"EC" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/ship/dirt, +/area/outpost/hallway/port) +"ED" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/table_bell{ + pixel_x = 6; + pixel_y = -3 + }, +/turf/open/floor/carpet/green, +/area/outpost/crew/bar) +"EG" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/closet/l3closet/janitor, +/obj/effect/turf_decal/steeldecal/steel_decals3, +/turf/open/floor/plasteel, +/area/outpost/crew/janitor) +"EH" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"EP" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"ER" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"EV" = ( +/obj/structure/chair/comfy/brown, +/obj/machinery/firealarm/directional/north, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"EX" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Fa" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/effect/turf_decal/steeldecal/steel_decals_central6, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms/office) +"Fi" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 1 + }, +/obj/structure/sign/poster/random{ + pixel_y = 30 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"Fl" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/industrial/warning/dust, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 1 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Fq" = ( +/obj/effect/spawner/structure/window/reinforced/indestructable, +/turf/open/floor/plating, +/area/outpost/crew/library) +"Fr" = ( +/obj/machinery/vending/boozeomat{ + pixel_y = 32; + density = 0 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/green, +/area/outpost/crew/bar) +"Fs" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/outpost/crew/bar) +"Fv" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/plasteel/dark, +/area/outpost/cargo/office) +"Fx" = ( +/obj/structure/table, +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 1 + }, +/obj/item/radio/intercom/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms/office) +"FB" = ( +/turf/open/floor/carpet/green, +/area/outpost/crew/bar) +"FD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/outpost/crew/bar) +"FE" = ( +/obj/machinery/mineral/unloading_machine{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/cargo) +"FF" = ( +/obj/effect/turf_decal/ihejirika_small/left, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"FH" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"FI" = ( +/obj/structure/railing, +/obj/item/radio/intercom/directional/north, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 5 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"FJ" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/library) +"FN" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/steeldecal/steel_decals_central7, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/central) +"FQ" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"FS" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"FY" = ( +/obj/effect/decal/cleanable/crayon{ + icon_state = "electricdanger"; + pixel_y = 0; + pixel_x = 30 + }, +/obj/effect/turf_decal/steeldecal/steel_decals10, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"Gb" = ( +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/obj/structure/foamedmetal, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Gi" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/vacant_rooms/office) +"Gj" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/corner_techfloor_gray, +/obj/effect/turf_decal/corner_steel_grid{ + dir = 4 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Gk" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Gm" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/turf/open/floor/plating/asteroid, +/area/outpost/external) +"Gn" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/minor/bowler_or_that, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Gu" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/grey/full, +/turf/open/floor/plasteel, +/area/outpost/crew/janitor) +"Gv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/toy/plush/spider, +/turf/open/floor/plating, +/area/outpost/vacant_rooms) +"GB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/maintenance{ + dir = 4; + req_access = list("101") + }, +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/port) +"GE" = ( +/obj/structure/chair/comfy/brown, +/obj/effect/turf_decal/siding/wood, +/obj/structure/sign/poster/random{ + pixel_y = 30 + }, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"GK" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/central) +"GL" = ( +/obj/effect/landmark/outpost/elevator{ + shaft = "1" + }, +/turf/open/floor/plasteel/elevatorshaft, +/area/outpost/hallway/central) +"GM" = ( +/obj/structure/sign/poster/official/no_erp{ + pixel_y = 30 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/floordetail/tiled, +/turf/open/floor/plasteel, +/area/outpost/maintenance/fore) +"GQ" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"GS" = ( +/obj/machinery/modular_computer/console/preset/civilian, +/turf/open/floor/plasteel/dark, +/area/outpost/cargo/office) +"GT" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/airalarm/directional/north, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"GU" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/junction/yjunction{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"GW" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/flashlight/lamp/green{ + pixel_y = 24; + pixel_x = -16 + }, +/turf/open/floor/carpet/royalblack, +/area/outpost/crew/bar) +"GX" = ( +/obj/structure/chair/wood{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"GY" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/spacecash/bundle/c1{ + pixel_y = 4; + pixel_x = 3 + }, +/turf/open/floor/carpet/royalblack, +/area/outpost/crew/bar) +"Ha" = ( +/obj/structure/flora/rock/pile, +/turf/open/floor/plating/asteroid, +/area/outpost/external) +"He" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/light/dim/directional/south, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/neutral/three_quarters{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"Hh" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"Hi" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Hk" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/minor/beret_or_rabbitears, +/obj/machinery/light/dim/directional/west, +/turf/open/floor/plasteel/mono, +/area/outpost/storage) +"Hl" = ( +/mob/living/simple_animal/mouse/brown, +/obj/effect/turf_decal/steeldecal/steel_decals6, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Ht" = ( +/obj/machinery/door/airlock/maintenance{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/vacant_rooms/office) +"Hv" = ( +/obj/structure/grille/indestructable, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"HB" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/glowstick, +/obj/effect/spawner/lootdrop/glowstick, +/obj/effect/spawner/lootdrop/glowstick, +/obj/effect/spawner/lootdrop/glowstick, +/obj/effect/spawner/lootdrop/glowstick, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/vacant_rooms) +"HD" = ( +/turf/closed/indestructible/rock, +/area/outpost/external) +"HF" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/beer/light{ + pixel_y = -2; + pixel_x = 5 + }, +/turf/open/floor/carpet/green, +/area/outpost/crew/bar) +"HG" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/central) +"HJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"HL" = ( +/obj/structure/easel, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/canvas/nineteenXnineteen, +/turf/open/floor/wood, +/area/outpost/crew/library) +"HQ" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/firealarm/directional/east, +/obj/structure/holosign/barrier/infinite{ + max_integrity = 500 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"HR" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/central) +"HX" = ( +/obj/machinery/door/airlock{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plating, +/area/outpost/crew/bar) +"HZ" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 9 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 6 + }, +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"Ic" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/storage) +"If" = ( +/obj/effect/turf_decal/corner_techfloor_gray{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/fore) +"Ip" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/caution, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"Is" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel, +/area/outpost/storage) +"It" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Iu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/chem_pile, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Iv" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"Ix" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/outpost/crew/janitor) +"Iz" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"IB" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/corner/opaque/neutral, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"IE" = ( +/obj/structure/chair/wood, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"IH" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"IJ" = ( +/obj/structure/table, +/obj/item/trash/can/food/beans, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"IM" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/firealarm/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"IN" = ( +/obj/effect/decal/cleanable/crayon{ + icon_state = "!"; + pixel_x = 9 + }, +/obj/effect/decal/cleanable/crayon{ + icon_state = "f"; + pixel_y = 0; + pixel_x = -19 + }, +/obj/effect/decal/cleanable/crayon{ + icon_state = "u"; + pixel_y = -5; + pixel_x = -10 + }, +/obj/effect/decal/cleanable/crayon{ + icon_state = "n" + }, +/obj/effect/decal/cleanable/crayon{ + icon_state = "arrow"; + pixel_y = -19; + pixel_x = 2 + }, +/obj/effect/decal/cleanable/crayon{ + icon_state = "arrow"; + pixel_y = -25; + pixel_x = -7 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"IS" = ( +/obj/machinery/light/dim/directional/east, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"IU" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"IW" = ( +/turf/closed/indestructible/rock, +/area/outpost/maintenance/central) +"IY" = ( +/obj/effect/decal/cleanable/crayon{ + icon_state = "antilizard"; + pixel_x = -30 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/outpost/maintenance/fore) +"Ji" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/steeldecal/steel_decals9, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Jo" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"Jp" = ( +/obj/machinery/door/airlock/public, +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/tech, +/area/outpost/vacant_rooms) +"Jq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Jr" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/light/dim/directional/south, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"JA" = ( +/obj/machinery/firealarm/directional/north, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"JE" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"JF" = ( +/obj/effect/decal/cleanable/crayon{ + icon_state = "electricdanger"; + pixel_y = -28 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"JM" = ( +/obj/structure/chair/sofa/right{ + dir = 4 + }, +/turf/open/floor/carpet/green, +/area/outpost/crew/bar) +"JS" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"JU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/outpost/cargo/office) +"JV" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/minor/pirate_or_bandana, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono, +/area/outpost/storage) +"JW" = ( +/obj/machinery/vending/games, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/library) +"JX" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/junglebush/b, +/turf/open/floor/grass/ship/jungle, +/area/outpost/hallway/port) +"Kd" = ( +/obj/machinery/light/small/directional/north, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"Ke" = ( +/obj/structure/table, +/obj/item/trash/can/food/beans{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"Kh" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/newscaster/directional/east, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/corner/opaque/neutral, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Kl" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"Ko" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/camera/autoname{ + dir = 5 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"Kr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/spider/stickyweb, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Ks" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"Kx" = ( +/turf/closed/indestructible/reinforced, +/area/outpost/storage) +"Ky" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/port) +"Kz" = ( +/obj/structure/falsewall/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"KC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/greenglow, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"KF" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock{ + dir = 4; + name = "Janitor Closet" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/crew/janitor) +"KI" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"KJ" = ( +/obj/effect/decal/cleanable/crayon{ + icon_state = "Donk"; + pixel_y = 32 + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"KK" = ( +/obj/structure/toilet{ + dir = 4; + pixel_y = 0; + pixel_x = -6 + }, +/obj/structure/mirror{ + pixel_y = 30 + }, +/obj/structure/sink{ + pixel_y = 24 + }, +/obj/effect/turf_decal/corner/transparent/brown/full, +/turf/open/floor/plasteel, +/area/outpost/crew/bar) +"KS" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"KV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/orange{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/outpost/cargo/office) +"KW" = ( +/obj/structure/cable/yellow{ + icon_state = "6-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"KY" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/steeldecal/steel_decals9{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"KZ" = ( +/obj/machinery/door/airlock/maintenance{ + dir = 4; + req_access = list("101") + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/plasteel/tech, +/area/outpost/cargo) +"Le" = ( +/obj/structure/spider/stickyweb, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/outpost/vacant_rooms) +"Lg" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/airalarm/directional/south, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"Lh" = ( +/obj/structure/spider/stickyweb, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/outpost/vacant_rooms) +"Li" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/green, +/area/outpost/crew/bar) +"Ls" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/effect/turf_decal/steeldecal/steel_decals7{ + dir = 9 + }, +/obj/effect/turf_decal/steeldecal/steel_decals7{ + dir = 6 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"Lu" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/junction/yjunction{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/corner/opaque/black/full, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"LB" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/storage) +"LD" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"LE" = ( +/obj/item/radio/intercom/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/mahogany, +/area/outpost/crew/bar) +"LH" = ( +/obj/structure/spider/stickyweb, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"LK" = ( +/obj/structure/flora/junglebush/c, +/turf/open/floor/grass/ship/jungle, +/area/outpost/hallway/port) +"LL" = ( +/turf/closed/indestructible/reinforced, +/area/outpost/hallway/port) +"LP" = ( +/obj/machinery/door/airlock, +/turf/open/floor/wood, +/area/outpost/crew/library) +"LR" = ( +/obj/effect/spawner/lootdrop/tool_engie_common, +/obj/effect/spawner/lootdrop/tool_engie_common, +/obj/structure/rack, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"LS" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"LU" = ( +/obj/structure/falsewall/reinforced, +/turf/open/floor/plating, +/area/outpost/storage) +"LX" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"LY" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"Md" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/crayon{ + icon_state = "firedanger"; + pixel_y = -28 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Me" = ( +/obj/structure/grille/indestructable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/outpost/vacant_rooms) +"Ml" = ( +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/outpost/storage) +"Mm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"Mq" = ( +/obj/machinery/light/small/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/corner_techfloor_gray{ + dir = 10 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/fore) +"Ms" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/machinery/light/dim/directional/north, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"Mt" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"Mu" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/steeldecal/steel_decals7{ + dir = 9 + }, +/obj/effect/turf_decal/steeldecal/steel_decals7{ + dir = 6 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"Mw" = ( +/obj/structure/closet/crate/trashcart, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"MB" = ( +/obj/effect/turf_decal/corner/opaque/orange{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/outpost/cargo/office) +"MD" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks/beer{ + pixel_y = 13; + layer = 3 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/paper_bin{ + pixel_x = 6; + pixel_y = -4 + }, +/turf/open/floor/carpet/green, +/area/outpost/crew/bar) +"MF" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/library) +"MI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey/corner{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"MK" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/glass/mortar, +/obj/item/pestle, +/obj/item/reagent_containers/food/drinks/mug/coco{ + pixel_y = 12; + pixel_x = 15 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"MM" = ( +/obj/structure/cable/yellow{ + icon_state = "2-9" + }, +/obj/effect/decal/cleanable/crayon{ + icon_state = "danger"; + pixel_x = 30 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"MO" = ( +/obj/structure/chair/pew/right{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/green{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Nc" = ( +/turf/closed/indestructible/rock, +/area/outpost/hallway/central) +"Ne" = ( +/obj/item/radio/intercom/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/library) +"Ng" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/pill/happy, +/obj/item/pen{ + pixel_y = 3; + pixel_x = 5 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Ni" = ( +/obj/structure/table, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plasteel/dark, +/area/outpost/cargo/office) +"No" = ( +/obj/structure/grille/indestructable, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/turf/open/floor/plating, +/area/outpost/vacant_rooms) +"Nu" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"Nv" = ( +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel, +/area/outpost/storage) +"NF" = ( +/obj/structure/cable/yellow{ + icon_state = "6-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"NH" = ( +/obj/structure/grille, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"NI" = ( +/obj/machinery/firealarm/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"NK" = ( +/turf/closed/indestructible/reinforced, +/area/outpost/maintenance/fore) +"NN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"NQ" = ( +/obj/structure/disposalpipe/trunk/multiz/down{ + dir = 8 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/fore) +"NT" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/hatch, +/obj/structure/barricade/wooden/crude, +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/central) +"NU" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/food/snacks/grown/citrus/orange, +/obj/effect/spawner/lootdrop/salvage_capacitor, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"NV" = ( +/obj/structure/table, +/obj/item/stack/wrapping_paper, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/vacant_rooms) +"Oa" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/junglebush/c, +/turf/open/floor/grass/ship/jungle, +/area/outpost/hallway/port) +"Oh" = ( +/obj/structure/chair/sofa{ + dir = 1 + }, +/turf/open/floor/carpet/royalblack, +/area/outpost/crew/bar) +"Oi" = ( +/obj/structure/railing/corner, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"Om" = ( +/obj/structure/flora/junglebush/b, +/turf/open/floor/grass/ship/jungle, +/area/outpost/hallway/port) +"On" = ( +/obj/machinery/conveyor/auto{ + id = "outpost3"; + dir = 1 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Or" = ( +/obj/structure/chair/sofa/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/royalblack, +/area/outpost/crew/bar) +"Oy" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/bottle/wine{ + pixel_y = 5; + pixel_x = -8 + }, +/obj/item/reagent_containers/food/drinks/bottle/wine{ + pixel_y = 5; + pixel_x = 7 + }, +/obj/item/reagent_containers/food/drinks/bottle/wine, +/obj/machinery/light/small/directional/east, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"OC" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 1; + piping_layer = 2 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"OG" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/central) +"OH" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/port) +"OI" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"OK" = ( +/obj/structure/falsewall/wood, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plating, +/area/outpost/crew/bar) +"OM" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/firealarm/directional/east, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/corner/opaque/neutral, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"OO" = ( +/obj/structure/railing, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"OP" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"OY" = ( +/obj/structure/grille/indestructable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"Pe" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Ph" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Pm" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/item/toy/figure/captain, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"Po" = ( +/obj/structure/chair/pew{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/green{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Pw" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance/four, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/vacant_rooms/office) +"Px" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"PD" = ( +/obj/structure/chair/sofa/right{ + dir = 8 + }, +/turf/open/floor/carpet/royalblack, +/area/outpost/crew/bar) +"PF" = ( +/obj/structure/grille/indestructable, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/structure/cable/yellow, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning/dust, +/obj/effect/turf_decal/steeldecal/steel_decals_central7, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"PG" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/holosign/barrier/infinite{ + max_integrity = 500 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"PI" = ( +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/cargo) +"PO" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"PS" = ( +/obj/structure/falsewall/reinforced, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"PT" = ( +/obj/structure/grille/indestructable, +/obj/structure/cable/yellow, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"PV" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/carpet/green, +/area/outpost/crew/bar) +"Qa" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/newscaster/directional/north, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"Qc" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/turf_decal/corner/opaque/neutral/three_quarters{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"Qg" = ( +/obj/structure/cable/yellow{ + icon_state = "4-9" + }, +/obj/structure/cable/yellow{ + icon_state = "1-9" + }, +/obj/effect/turf_decal/corner_techfloor_gray{ + dir = 10 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/fore) +"Qk" = ( +/obj/machinery/button/door{ + dir = 8; + pixel_x = 22; + pixel_y = 9; + id = "out3"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/obj/effect/turf_decal/corner/transparent/brown/full, +/turf/open/floor/plasteel, +/area/outpost/crew/bar) +"Qn" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Qp" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/item/trash/semki, +/turf/open/floor/plating/asteroid, +/area/outpost/external) +"Qv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Qx" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/minor/bowler_or_that, +/obj/effect/spawner/lootdrop/maintenance/three, +/turf/open/floor/plasteel/mono, +/area/outpost/storage) +"QA" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/firealarm/directional/south, +/obj/structure/janitorialcart, +/obj/item/mop, +/obj/item/clothing/gloves/color/purple, +/obj/item/clothing/head/beanie/purple, +/obj/item/clothing/neck/tie/purple, +/turf/open/floor/plasteel, +/area/outpost/crew/janitor) +"QL" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 9 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"QR" = ( +/obj/machinery/newscaster/directional/north, +/obj/structure/filingcabinet/double, +/turf/open/floor/plasteel/dark, +/area/outpost/cargo/office) +"QT" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"QY" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"QZ" = ( +/obj/effect/decal/cleanable/crayon{ + icon_state = "arrow"; + pixel_y = 11; + pixel_x = -14 + }, +/turf/closed/indestructible/reinforced, +/area/outpost/maintenance/fore) +"Ra" = ( +/obj/machinery/door/airlock{ + dir = 4; + name = "Lounge" + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/crew/bar) +"Rb" = ( +/obj/structure/falsewall/reinforced, +/turf/open/floor/plating, +/area/outpost/vacant_rooms/office) +"Rc" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 6 + }, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"Rf" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"Rg" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Rh" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"Ri" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/item/trash/semki, +/turf/open/floor/plating/asteroid, +/area/outpost/external) +"Rr" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel, +/area/outpost/storage) +"Rs" = ( +/obj/structure/cable/yellow{ + icon_state = "6-8" + }, +/obj/structure/cable/yellow{ + icon_state = "4-6" + }, +/obj/effect/spawner/lootdrop/waste/trash, +/obj/effect/turf_decal/corner_techfloor_gray{ + dir = 10 + }, +/obj/effect/turf_decal/corner_steel_grid{ + dir = 5 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Rt" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/turf_decal/trimline/opaque/purple/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/outpost/crew/janitor) +"Ru" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/light/small/directional/east, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/library) +"Rv" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Rx" = ( +/obj/structure/falsewall/reinforced, +/turf/open/floor/plating, +/area/outpost/vacant_rooms) +"RA" = ( +/obj/structure/railing/wood{ + dir = 10; + color = "#792f27" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"RG" = ( +/obj/structure/barricade/wooden/crude, +/obj/machinery/door/firedoor/closed, +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/machinery/door/airlock/mining{ + req_access = list("106") + }, +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/port) +"RH" = ( +/obj/structure/chair/stool/bar{ + dir = 1; + pixel_y = 13 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"RI" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/spawner/lootdrop/waste/trash, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"RJ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel, +/area/outpost/storage) +"RO" = ( +/obj/structure/railing{ + dir = 6 + }, +/obj/machinery/conveyor_switch{ + id = "outpost1"; + layer = 3.11; + pixel_y = 4; + pixel_x = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"RU" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/storage) +"RV" = ( +/obj/effect/decal/cleanable/crayon{ + icon_state = "safe"; + pixel_y = 29 + }, +/obj/effect/decal/cleanable/garbage{ + pixel_y = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/can/food/beans{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/trash/can/food/beans{ + pixel_x = -6; + pixel_y = 3 + }, +/turf/open/floor/plating/asteroid, +/area/outpost/maintenance/central) +"RW" = ( +/obj/machinery/light/small/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/decal/cleanable/garbage{ + pixel_y = 6; + pixel_x = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"RY" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/corner/opaque/neutral, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"Sd" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Si" = ( +/obj/effect/turf_decal/borderfloor/full, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/floordetail/pryhole, +/turf/open/floor/plasteel, +/area/outpost/maintenance/fore) +"Sk" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Sl" = ( +/obj/structure/railing, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"Sn" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/central) +"So" = ( +/obj/structure/closet/crate/trashcart, +/obj/effect/turf_decal/steeldecal/steel_decals1, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"Sq" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"Sr" = ( +/obj/structure/sign/painting/library_private{ + pixel_y = -26 + }, +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/library) +"Ss" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 1 + }, +/obj/structure/closet/emcloset/wall{ + pixel_y = 28 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"SC" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/insectguts, +/obj/effect/turf_decal/floordetail/tiled, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"SE" = ( +/turf/open/floor/ship/dirt, +/area/outpost/hallway/port) +"SG" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/chair/office{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/camera/autoname{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/library) +"SL" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plating/asteroid, +/area/outpost/external) +"SM" = ( +/obj/machinery/light/dim/directional/west, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"SS" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/outpost/vacant_rooms) +"SV" = ( +/obj/structure/flora/grass/jungle, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/turf/open/floor/grass/ship/jungle, +/area/outpost/hallway/port) +"SW" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/donkpockets, +/obj/effect/spawner/lootdrop/maintenance/two, +/turf/open/floor/plasteel/mono, +/area/outpost/vacant_rooms) +"SY" = ( +/obj/machinery/light/small/directional/east, +/obj/structure/spider/stickyweb, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Ta" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/decal/cleanable/oil, +/obj/effect/turf_decal/steeldecal/steel_decals9, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Tb" = ( +/obj/structure/flora/junglebush, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, +/turf/open/floor/grass/ship/jungle, +/area/outpost/hallway/central) +"Td" = ( +/obj/structure/bookcase/random, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/library) +"Tg" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/donut, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/vacant_rooms) +"Th" = ( +/turf/closed/indestructible/reinforced, +/area/outpost/cargo/office) +"Tr" = ( +/obj/structure/railing{ + dir = 9 + }, +/obj/machinery/conveyor_switch{ + id = "outpost2"; + layer = 3.11; + pixel_y = 9; + pixel_x = -2 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"Ts" = ( +/obj/structure/chair/pew{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/green{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Tx" = ( +/obj/machinery/button/door{ + specialfunctions = 4; + normaldoorcontrol = 1; + id = "out1"; + dir = 1; + pixel_y = -21; + pixel_x = -8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel, +/area/outpost/storage) +"TA" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 6 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 9 + }, +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"TD" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"TE" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera/autoname, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"TG" = ( +/obj/effect/turf_decal/corner_techfloor_gray{ + dir = 6 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/fore) +"TM" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"TT" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"TU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"TZ" = ( +/obj/effect/turf_decal/corner_techfloor_gray{ + dir = 9 + }, +/obj/effect/spawner/lootdrop/waste/trash, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/fore) +"Ua" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/light/small/directional/east, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Uf" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/light/small/directional/north, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Ui" = ( +/obj/machinery/disposal/deliveryChute{ + name = "fun chute"; + desc = "If it's so fun, what's the harm in it?" + }, +/obj/effect/decal/cleanable/crayon{ + icon_state = "arrow"; + pixel_y = -19; + pixel_x = 2 + }, +/obj/structure/disposalpipe/trunk, +/obj/effect/turf_decal/corner_techfloor_gray{ + dir = 5 + }, +/obj/effect/turf_decal/steeldecal/steel_decals_central2, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Um" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/item/toy/figure/head_of_personnel{ + layer = 2.9; + pixel_y = 4 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"Uq" = ( +/obj/machinery/vending/snack/random, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/hallway/port) +"Us" = ( +/obj/structure/cable/yellow{ + icon_state = "4-9" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/spawner/lootdrop/waste/trash, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"Ut" = ( +/obj/machinery/door/airlock{ + dir = 4; + name = "Bar" + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/crew/bar) +"Uv" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Uw" = ( +/turf/closed/indestructible/reinforced, +/area/outpost/cargo) +"UB" = ( +/obj/effect/turf_decal/corner/opaque/brown/full, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"UC" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "outpost2" + }, +/obj/effect/turf_decal/industrial/warning/fulltile, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/cargo) +"UE" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms/office) +"UG" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/corner_techfloor_gray{ + dir = 8 + }, +/obj/effect/turf_decal/corner_steel_grid{ + dir = 1 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"UI" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/floordetail/tiled, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"UO" = ( +/obj/machinery/firealarm/directional/south, +/obj/item/kirbyplants{ + icon_state = "plant-21"; + pixel_y = 1; + pixel_x = -11 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"UP" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"UT" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"UU" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/structure/fluff/hedge, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/library) +"UZ" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms/office) +"Vc" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Vf" = ( +/obj/structure/cable/yellow{ + icon_state = "6-9" + }, +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Vg" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 4 + }, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Vp" = ( +/obj/structure/flora/grass/jungle, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/turf/open/floor/grass/ship/jungle, +/area/outpost/hallway/port) +"Vq" = ( +/obj/structure/bed/double/maint{ + dir = 4 + }, +/obj/item/bedsheet/double/captain, +/obj/effect/decal/cleanable/greenglow, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/decal/cleanable/dirt, +/obj/item/clothing/head/papersack/smiley{ + pixel_x = 7 + }, +/turf/open/floor/plating/asteroid, +/area/outpost/maintenance/central) +"Vr" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Vv" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"Vx" = ( +/obj/structure/railing{ + dir = 9 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"VG" = ( +/obj/structure/noticeboard{ + pixel_y = 26 + }, +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"VM" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/newscaster/directional/south, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"VN" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 10 + }, +/obj/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"VO" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/holosign/barrier/infinite{ + max_integrity = 500 + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"VP" = ( +/obj/structure/grille/indestructable, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"VQ" = ( +/obj/effect/turf_decal/industrial/loading{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"VT" = ( +/obj/effect/decal/cleanable/crayon{ + icon_state = "med"; + pixel_y = -28 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/chem_pile, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"VW" = ( +/obj/structure/chair/sofa, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/green, +/area/outpost/crew/bar) +"Wa" = ( +/obj/effect/spawner/lootdrop/waste/trash, +/obj/effect/decal/cleanable/dirt, +/mob/living/simple_animal/mouse/brown, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Wc" = ( +/obj/machinery/recycler, +/obj/machinery/conveyor/auto{ + dir = 4; + id = "outpost3" + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Wd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"Wf" = ( +/obj/machinery/light/dim/directional/north, +/turf/open/floor/ship/dirt/dark, +/area/outpost/hallway/port) +"Wl" = ( +/obj/structure/grille/indestructable, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning/dust, +/obj/effect/turf_decal/steeldecal/steel_decals_central7, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Wm" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/turf_decal/industrial/stand_clear, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Wt" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/light/small/directional/east, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/corner/opaque/neutral, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"Wv" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"Wz" = ( +/obj/structure/barricade/wooden/crude, +/obj/effect/spawner/structure/window/reinforced/indestructable, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"WC" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/vacant_rooms/office) +"WH" = ( +/obj/structure/cable/yellow, +/obj/machinery/power/apc/auto_name/directional/west, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"WM" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/effect/turf_decal/corner/opaque/neutral, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"WO" = ( +/obj/effect/spawner/lootdrop/maintenance/two, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"WR" = ( +/obj/structure/noticeboard{ + name = "refinery notice board"; + dir = 8; + pixel_y = 0; + pixel_x = 26 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"WS" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/foamedmetal, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"WV" = ( +/obj/machinery/vending/snack/random, +/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{ + dir = 1 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/hallway/central) +"WW" = ( +/obj/effect/turf_decal/ihejirika_small, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"WZ" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Xd" = ( +/obj/effect/decal/cleanable/ash, +/turf/open/floor/plating/asteroid, +/area/outpost/external) +"Xe" = ( +/obj/structure/table/wood, +/obj/item/radio/intercom/table{ + dir = 4 + }, +/turf/open/floor/wood/mahogany, +/area/outpost/crew/bar) +"Xg" = ( +/obj/structure/spider/stickyweb, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Xl" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/neutral, +/obj/effect/turf_decal/floordetail/tiled, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Xm" = ( +/turf/open/floor/grass/ship/jungle, +/area/outpost/hallway/central) +"Xn" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"Xq" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/turf/open/floor/plating/asteroid, +/area/outpost/external) +"Xr" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/orange{ + dir = 5 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/obj/machinery/light/small/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/outpost/cargo/office) +"Xv" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 9 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"Xy" = ( +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/obj/effect/turf_decal/corner/opaque/neutral/diagonal, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) +"Xz" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/port) +"XA" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance/five, +/turf/open/floor/plasteel/mono, +/area/outpost/vacant_rooms) +"XD" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 4 + }, +/obj/structure/sign/poster/random{ + pixel_x = 28 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"XE" = ( +/obj/structure/flora/grass/jungle, +/turf/open/floor/grass/ship/jungle, +/area/outpost/hallway/port) +"XF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"XI" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/purple/filled/line, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel, +/area/outpost/crew/janitor) +"XP" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"XQ" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"XS" = ( +/obj/structure/falsewall/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"XV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/outpost/vacant_rooms) +"XW" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"XZ" = ( +/obj/structure/sign/painting/library{ + pixel_y = -26 + }, +/obj/machinery/light/small/directional/east, +/obj/effect/decal/cleanable/glass, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/library) +"Yd" = ( +/turf/closed/indestructible/reinforced, +/area/outpost/hallway/central) +"Yj" = ( +/obj/machinery/vending/cigarette, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/hallway/central) +"Yl" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Yn" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/bar) +"Yq" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/junction/yjunction{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/corner/opaque/black/three_quarters{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"Yt" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/item/radio/intercom/directional/west, +/obj/effect/turf_decal/corner/opaque/brown{ + dir = 9 + }, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"Yu" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/steeldecal/steel_decals_central6, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"Yv" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/neutral, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"Yw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/corner/opaque/brown/full, +/turf/open/floor/plasteel/patterned, +/area/outpost/cargo) +"YC" = ( +/obj/effect/spawner/lootdrop/waste/trash, +/obj/structure/rack, +/obj/effect/turf_decal/steeldecal/steel_decals_central2{ + dir = 4 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/central) +"YD" = ( +/obj/structure/chair/sofa/left, +/obj/machinery/light/small/directional/east, +/turf/open/floor/carpet/green, +/area/outpost/crew/bar) +"YE" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"YF" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"YI" = ( +/obj/structure/spider/stickyweb, +/obj/effect/decal/cleanable/insectguts, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"YL" = ( +/obj/structure/falsewall/reinforced, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"YN" = ( +/obj/structure/flora/grass/jungle, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/turf/open/floor/grass/ship/jungle, +/area/outpost/hallway/central) +"YX" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/light/dim/directional/south, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/neutral/three_quarters, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"Ze" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/light/dim/directional/east, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"Zh" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"Zk" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms/office) +"Zm" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/turf_decal/corner/opaque/neutral, +/turf/open/floor/plasteel, +/area/outpost/hallway/port) +"Zo" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/insectguts, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Zs" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"Zu" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/outpost/crew/library) +"Zv" = ( +/obj/machinery/paystand{ + pixel_y = 8 + }, +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/storage) +"Zx" = ( +/obj/structure/falsewall/reinforced, +/turf/open/floor/plating, +/area/outpost/cargo/office) +"ZE" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/effect/turf_decal/corner/opaque/black{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"ZG" = ( +/obj/structure/cable/yellow{ + icon_state = "6-9" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"ZJ" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/corner_techfloor_grid{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/maintenance/fore) +"ZK" = ( +/obj/item/radio/intercom/directional/north, +/obj/item/kirbyplants{ + icon_state = "plant-16"; + pixel_x = -13 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/green, +/area/outpost/crew/bar) +"ZM" = ( +/turf/closed/indestructible/wood, +/area/outpost/crew/bar) +"ZN" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/machinery/light/small/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) +"ZP" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/tool_surgery_common, +/obj/effect/spawner/lootdrop/maintenance/four, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/outpost/vacant_rooms/office) +"ZU" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) +"ZY" = ( +/obj/effect/turf_decal/corner/opaque/grey/full, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/sign/poster/random{ + pixel_y = 30 + }, +/obj/effect/turf_decal/corner/opaque/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/outpost/hallway/central) + +(1,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(2,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(3,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(4,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(5,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(6,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(7,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(8,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(9,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(10,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(11,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(12,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(13,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(14,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(15,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(16,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(17,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(18,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(19,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(20,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(21,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(22,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(23,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(24,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(25,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(26,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(27,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +NH +pk +NH +NH +mC +mC +mC +mC +mC +mC +NH +NH +NH +NH +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(28,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +rt +mC +mC +mC +mC +mC +mC +mC +mC +rt +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(29,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +rt +mC +mC +mC +mC +mC +mC +mC +mC +rt +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(30,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +mC +mC +mC +mC +HD +HD +HD +mC +mC +mC +mC +HD +HD +mC +mC +rt +mC +mC +mC +mC +mC +mC +mC +mC +rt +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(31,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +HD +HD +mC +mC +mC +mC +HD +HD +HD +HD +mC +HD +HD +HD +mC +mC +rt +mC +mC +mC +mC +mC +mC +mC +mC +rt +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(32,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +mC +HD +HD +HD +HD +HD +HD +HD +HD +mC +mC +mC +HD +HD +HD +HD +HD +HD +HD +HD +HD +em +HD +Cc +je +je +je +je +Cc +HD +em +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(33,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +mC +HD +HD +HD +HD +ZM +ZM +ZM +ZM +HD +HD +HD +ZM +oa +XW +XW +lw +ZM +ZM +ZM +HD +mC +mC +mC +mC +mC +NH +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(34,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +hq +hq +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +ZM +ib +sj +ZM +ZM +HD +HD +ZM +GE +tw +BX +Hh +qg +Or +ZM +HD +HD +mC +mC +mC +mC +NH +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(35,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +hq +hq +hq +hq +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +yq +OK +FD +HJ +Rf +ZM +ZM +ZM +ZM +EV +GY +GW +Hh +rs +Oh +ZM +HD +HD +em +rt +rt +rt +NH +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(36,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +HD +hq +hq +hq +hq +hq +Ha +hq +hq +HD +HD +HD +HD +HD +HD +HD +Jq +ZM +ZM +gE +Fs +ZM +nn +LE +ZM +iq +Yn +BR +ir +PD +ur +ZM +HD +HD +HD +mC +mC +mC +NH +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(37,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +Xd +hq +kH +hq +Bz +Qp +hq +hq +hq +HD +HD +EP +EP +mP +Zs +Iu +NN +lM +ZM +ZM +HX +ZM +Xe +wA +ZM +ZM +Ra +ZM +ZM +ZM +ZM +ZM +HD +HD +mC +mC +mC +mC +NH +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(38,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +Cm +zR +Xd +Gm +SL +SL +pQ +SL +Xq +HD +NK +NK +YL +NK +NK +NK +cS +EP +VT +ZM +JA +zO +uf +RA +AT +OI +SM +no +th +ZM +KK +ZM +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(39,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +HD +hq +dr +qp +AH +hq +hq +HD +NK +PS +NK +NK +fq +fq +NK +ro +NK +MK +dR +Ng +ZM +ZK +Li +ED +mM +qG +Bq +GX +tu +zq +xW +Qk +ZM +ZM +ZM +ZM +Cc +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(40,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +hq +Ha +vc +SL +Ri +Ha +hq +HD +NK +rQ +kd +Fl +Ab +bV +NK +DS +NK +NU +ue +AP +ZM +wT +Li +cO +RH +ii +mJ +hZ +PO +UO +ZM +ZM +ZM +PV +yh +JM +je +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(41,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +HD +hq +hq +AH +hq +hq +hq +hq +HD +NK +xX +gS +NK +YF +hK +NK +dT +NK +NK +NK +NK +Cc +Fr +id +dQ +pb +fK +Iz +un +ii +bz +ZM +sb +iY +Li +VW +Bu +je +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(42,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +HD +hq +Bz +zE +hq +HD +HD +hq +HD +NK +YF +NK +NK +Gj +NK +NK +BY +og +ZJ +PT +hD +Cc +Cg +Li +nR +jR +yE +TD +ee +dw +sF +jI +Wd +iY +Li +VW +HF +je +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(43,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +hq +hq +hq +hq +HD +HD +NK +YL +NK +NK +ow +DW +NK +Rs +LH +bn +NK +bS +eU +VP +NQ +Cc +MD +jj +Bf +dn +fP +mb +IE +hS +PO +ZM +Oy +au +FB +YD +qv +je +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(44,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +HD +hq +hq +hq +HD +NK +NK +gC +wq +NK +eD +Mq +NK +fw +ZG +Xg +NK +NK +Ak +NK +NK +Cc +ZM +ZM +ZM +ZM +ZM +Ut +ZM +ZM +ZM +ZM +ZM +ZM +Cc +Cc +Cc +Cc +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(45,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +HD +NK +YL +NK +NK +NK +Ui +IN +mf +NK +zY +Qg +NK +qb +Qv +tG +aE +gA +cR +TG +rW +NK +Uf +yB +Ji +AU +UI +WZ +lh +pm +pm +pm +ga +ga +rZ +ZN +Yd +HD +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(46,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +NK +LR +LR +LR +NK +NK +QZ +kE +NK +NK +YF +hz +nL +oN +xu +NK +Ef +TZ +If +at +lq +Wm +tA +vB +rj +rj +xM +XQ +Hi +BJ +AN +Hi +BJ +zL +sk +Yd +aI +aI +aI +aI +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(47,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +NK +EP +mk +Vc +qX +RI +qX +Cf +Sd +BN +kM +NK +UG +NK +NK +NK +Kx +Kx +Kx +Kx +Kx +Kx +OG +Cn +Yd +dU +xZ +qD +qD +Po +MO +BE +Yd +tZ +ry +Yd +uv +wa +tr +aI +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(48,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +NK +qx +zM +xm +NK +NK +NK +NK +Yl +Hv +FS +NK +ZU +Sd +oU +Hv +Kx +jg +DH +Qx +Hk +Kx +JE +AO +Yd +Yd +fI +fI +fI +fI +fI +Yd +Yd +GT +Cl +Yd +JW +km +Td +aI +aI +aI +em +mC +mC +mC +HD +HD +mC +HD +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(49,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +NK +iD +kU +uE +NK +EX +tS +NK +NK +NK +NK +NK +ip +xu +Rg +Kx +Kx +Ml +aw +aw +zr +Kx +Ch +VM +Yd +rr +lA +wF +ai +hO +uD +cs +Yd +ZY +FH +Yd +aI +AM +sB +iw +rS +Zu +aI +Fq +Fq +aI +HD +HD +HD +HD +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(50,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +NK +NK +nb +NK +NK +rT +kd +wk +dN +xQ +lE +NK +Ta +fq +WS +LU +RU +Nv +ta +JV +um +Kx +Ss +tl +pC +YN +uD +hO +to +ai +uD +uD +Yd +xo +xJ +uX +aI +Ne +pt +et +FJ +UU +aI +pG +ky +aI +HD +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(51,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +NK +it +JF +NK +Rg +NK +NK +NK +NK +PS +NK +NK +NK +WS +Kx +cm +Is +Rr +wX +fi +oK +AS +we +Yd +Tb +uD +uD +ai +ai +Xm +lA +Yd +TE +Zh +WV +aI +lk +rg +jU +MF +nT +aI +HL +Sr +aI +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(52,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +NK +aB +KI +PF +TT +NK +mU +Gn +NK +Rg +Hv +hk +NK +Rg +Kx +Kx +pl +pj +RJ +Tx +Kx +on +LX +Yd +Yd +fI +fI +fI +fI +fI +Yd +Yd +uW +Zh +gz +aI +fk +SG +Ru +lH +sV +LP +ar +XZ +aI +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(53,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +NK +Zo +EP +Wl +Hl +NK +LH +LH +NK +Rg +Br +lo +Dq +kM +LH +Kx +Ic +Zv +LB +LB +Kx +tt +Ph +Yd +dO +oT +Ts +Ts +Ts +bq +rG +Yd +rK +kQ +Yd +aI +sO +aI +aI +aI +aI +aI +aI +aI +aI +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(54,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +NK +NK +NK +NK +NK +NK +Ei +Kr +SY +wU +Sd +kM +NK +wq +LH +Kx +mm +Ic +ua +iH +Kx +KY +cl +LD +LD +rj +aU +cc +YE +uN +LD +GK +mp +yk +vr +sz +GU +VO +NT +Nc +HD +HD +HD +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(55,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +HD +HD +HD +HD +HD +NK +ds +ci +NK +PS +NK +NK +NK +NK +NK +Kx +Kx +Kx +Kx +Kx +Kx +or +WM +Df +Kh +OM +ZE +ei +Rv +yR +Vg +nK +qT +Ua +HR +FQ +cg +HQ +NT +Nc +HD +HD +HD +HD +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(56,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +HD +HD +HD +HD +NK +NK +NK +NK +NK +Gk +UP +nY +WH +EP +Mw +NK +Yl +NK +bc +IY +vV +tC +LL +LL +LL +LL +jL +HG +Bj +Yd +cq +cq +AI +cq +cq +cq +KF +gq +gq +gq +HD +HD +HD +HD +HD +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(57,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +HD +HD +HD +HD +HD +NK +mV +On +hg +NK +uu +NK +nb +Vr +XF +rC +NK +Au +NK +GM +CU +LL +LL +LL +XE +XE +Ez +SC +uL +Xl +wN +cq +yc +bs +cq +dl +cq +Ix +Ai +CK +gq +gq +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(58,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +NK +Wc +Vx +BA +mr +cI +NK +xK +NK +LH +LH +LH +YI +NK +od +Si +LL +XE +Oa +XE +Om +Ez +kR +vX +ug +Yj +cq +zS +kA +zI +Ls +cq +XI +la +Rt +QA +gq +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(59,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +NK +vH +pp +Uv +NK +NK +NK +xK +NK +NK +LH +NK +nZ +NK +tH +sG +LL +vR +SE +XE +XE +Ez +Eo +jH +Ci +Yd +cq +cq +cq +sP +Mu +DV +EG +Eg +dD +Gu +gq +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(60,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +mC +mC +mC +HD +HD +HD +HD +NK +NK +NK +NK +NK +Hv +Hv +NF +WO +NK +NK +Th +Th +Th +Th +Zx +Th +CL +XE +LK +SE +LL +zv +mA +Qn +zg +ks +ks +GL +cq +IU +cq +cq +cq +cq +cq +cq +IW +HD +HD +HD +HD +HD +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(61,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +mC +mC +mC +mC +mC +HD +HD +HD +HD +HD +HD +HD +NK +Pe +Hv +JS +Vf +Gb +sf +Th +gP +qH +Fv +rU +Th +XE +gb +nU +EC +LL +VG +Bp +fE +zg +ks +ks +ks +cq +KW +Ks +zS +cq +iQ +jx +vT +IW +HD +HD +HD +HD +HD +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(62,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +HD +HD +NK +FS +Hv +Wa +Px +MM +Md +Th +QR +MB +KV +Th +Th +XE +CL +XE +XE +LL +ms +Bp +QT +zg +ks +ks +ks +cq +Mt +Us +So +cq +RV +dK +uV +IW +HD +HD +HD +HD +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(63,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +Uw +Uw +Uw +Uw +Uw +Uw +Uw +Uw +KZ +Th +uQ +MB +Xr +Th +SE +SE +XE +SE +CL +Ez +It +wn +Jr +cq +cq +cq +cq +cq +ER +XP +cq +cq +Ao +Vq +IW +IW +HD +HD +HD +mC +mC +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(64,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +Uw +DP +dg +ny +tE +Yt +vI +Xv +QL +cV +GS +nd +ie +Th +Wf +jM +JX +nU +JX +Ez +AU +ls +uy +cq +gR +sn +lB +om +sR +Rh +gR +cq +DV +IW +IW +cq +cq +cq +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(65,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +HD +Uw +kT +zo +UC +UC +UC +rN +oS +hb +cV +rR +Ni +JU +Th +ph +SE +SV +ic +Vp +Ez +UI +Sk +zb +cq +sn +wR +OY +hs +FY +XP +Mt +cq +tU +hj +cK +TU +OC +cq +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(66,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +HD +HD +HD +Uw +FI +zC +Tr +tT +tT +jK +qq +md +cV +cV +Th +ag +Th +LL +LL +LL +GB +LL +LL +sH +iI +OH +cq +FF +cq +cq +cq +cq +Ct +cq +cq +sm +tv +cq +IH +kx +cq +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(67,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +HD +HD +Uw +fR +zC +KS +uz +UB +Yw +Yw +UT +TM +vZ +uj +Ip +IM +bL +CI +xr +uA +GQ +GQ +eq +TA +He +cq +WW +cq +lX +YC +cq +Sn +nM +cq +XS +cq +cq +cq +cq +cq +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(68,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +HD +HD +HD +Uw +jo +zC +KS +eG +sl +xf +xf +Vv +op +cG +Xz +wC +dW +hJ +QY +EH +gr +QY +QY +AL +Lu +hA +cq +jd +cq +lx +Mt +cq +FN +rD +Mm +xy +np +sn +cq +HD +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(69,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +HD +HD +HD +Uw +Ms +oS +cr +yS +tN +VQ +CV +wv +WR +gW +uj +qA +Zm +yV +rM +nc +IB +uU +Zm +Qc +HZ +YX +cq +sn +ER +zS +Mt +cq +bJ +jC +tm +wi +np +hY +cq +HD +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(70,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +HD +HD +Uw +Yu +Dm +eQ +mN +dZ +oS +gZ +Uw +Uw +Uw +LL +Uq +Aw +LL +wL +wL +wL +wL +wL +BM +Ky +yj +wK +wK +wK +wK +Rb +cq +cq +Kz +cq +cq +cq +cq +cq +HD +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(71,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +HD +Uw +uw +qN +UB +UB +gT +FE +VN +Uw +HD +HD +LL +LL +LL +LL +wL +aM +Tg +aM +wL +rm +Kl +hW +iV +Gi +WC +Fx +Zk +cq +KJ +pA +Mt +Mt +tk +Ap +cq +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(72,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +HD +Uw +PI +js +UB +yv +Sl +gO +aq +Uw +HD +HD +HD +HD +HD +HD +wL +xI +kh +ev +wL +Qa +LY +wu +iV +ZP +tj +pF +Fa +wK +Kd +KC +IJ +jn +yQ +bC +cq +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(73,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +Uw +NI +CV +Yw +Di +uk +gO +rP +Uw +HD +HD +HD +HD +HD +HD +wL +aM +kh +nz +wL +Fi +qR +wu +iV +Pw +AW +UE +UZ +wK +RW +Iv +Ke +mT +Um +va +cq +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(74,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +Uw +Oi +Dp +tI +tI +RO +gO +BZ +Uw +HD +HD +HD +HD +HD +HD +wL +HB +IS +vd +lG +LS +DF +Lg +wK +iV +iV +wK +Ht +wK +DL +sn +aZ +Pm +sn +tk +cq +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(75,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +Uw +OO +oS +ca +ca +ca +fd +bi +Uw +HD +HD +HD +HD +HD +wL +wL +wL +wL +wL +wL +go +nt +jO +gf +GQ +GQ +Ko +Xn +cq +cq +Wz +Wz +Wz +Wz +cq +cq +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(76,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +HD +HD +Uw +hM +CX +CX +Ca +aP +CX +aX +Uw +HD +HD +HD +wL +wL +wL +rv +rb +Bt +Xy +Jp +Sq +Yq +Rc +OP +QY +EH +Nu +PG +ey +Jo +DA +DA +DA +DA +fN +RG +HD +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(77,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +HD +HD +HD +Uw +Uw +Uw +Uw +Uw +Uw +Uw +Uw +Uw +HD +HD +HD +wL +dP +bA +fG +yN +XA +di +wL +Wv +vp +kb +XD +pr +Ze +aS +pn +mB +RY +Wt +Ay +iG +Wt +Yv +RG +HD +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(78,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +mC +nq +Cp +NV +fG +mv +SW +xk +wL +pS +Am +wL +wL +wL +wL +wL +dL +wL +LL +LL +LL +LL +LL +LL +LL +HD +HD +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(79,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +mC +nq +pg +pg +fG +rp +gt +ev +wL +wL +wL +wL +Le +Le +Bc +mW +xc +wL +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(80,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +HD +HD +HD +HD +em +HD +HD +HD +HD +mC +mC +mC +nq +nq +wL +MI +eE +hX +lb +Rx +lY +Le +Lh +Le +fZ +Gv +wL +wL +wL +HD +HD +HD +HD +HD +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(81,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +mC +HD +mC +mC +mC +mC +rt +mC +mC +mC +mC +mC +NH +mC +mC +mC +wL +Et +bY +wL +wL +wL +Bd +Me +wL +wL +wL +No +wL +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(82,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +mC +mC +mC +mC +mC +NH +NH +NH +NH +NH +mC +mC +mC +NH +mC +mC +HD +wL +wL +wL +wL +HD +wL +XV +XV +qW +wL +Do +SS +wL +HD +HD +HD +HD +HD +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(83,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +NH +rt +em +HD +HD +HD +HD +HD +HD +wL +wL +wL +wL +wL +wL +wL +wL +HD +HD +HD +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(84,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +NH +mC +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(85,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(86,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(87,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +HD +mC +mC +mC +HD +HD +mC +mC +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(88,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(89,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(90,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +HD +HD +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(91,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(92,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(93,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(94,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(95,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(96,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(97,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(98,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(99,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(100,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(101,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(102,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(103,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(104,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(105,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(106,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(107,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(108,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(109,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(110,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(111,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(112,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(113,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(114,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(115,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(116,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(117,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(118,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(119,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(120,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} +(121,1,1) = {" +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +mC +"} diff --git a/_maps/outpost/outpost_test_2.dmm b/_maps/outpost/nanotrasen_asteroid.dmm similarity index 89% rename from _maps/outpost/outpost_test_2.dmm rename to _maps/outpost/nanotrasen_asteroid.dmm index 3dab58add4c0..39a1808839b2 100644 --- a/_maps/outpost/outpost_test_2.dmm +++ b/_maps/outpost/nanotrasen_asteroid.dmm @@ -12,21 +12,12 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/plasteel/rockvault, /area/outpost/operations) "ae" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood/corner, -/obj/machinery/firealarm/directional/north, -/obj/item/radio/intercom/directional/north{ - pixel_y = 20; - pixel_x = -3 - }, -/turf/open/floor/wood, -/area/outpost/crew/bar) +/obj/machinery/door/airlock/freezer, +/turf/open/floor/plasteel/showroomfloor, +/area/outpost/hallway/central) "ag" = ( /obj/structure/table/reinforced, /obj/item/folder/blue{ @@ -215,6 +206,7 @@ /obj/effect/turf_decal/industrial/warning{ dir = 4 }, +/obj/machinery/light/small/directional/west, /turf/open/floor/plasteel/dark, /area/outpost/operations) "aU" = ( @@ -315,6 +307,14 @@ }, /obj/structure/closet/secure_closet/security/sec, /obj/effect/turf_decal/industrial/outline/yellow, +/obj/machinery/button/door{ + dir = 4; + pixel_x = -28; + pixel_y = 6; + id = "outpost_security"; + req_access_txt = "101"; + name = "Security Lockdown" + }, /turf/open/floor/plasteel/dark, /area/outpost/security) "bu" = ( @@ -439,9 +439,12 @@ /turf/open/floor/carpet/nanoweave, /area/outpost/crew/canteen) "bO" = ( -/obj/machinery/door/airlock/grunge, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) +/obj/effect/turf_decal/techfloor, +/obj/item/radio/intercom/directional/north{ + pixel_x = -3 + }, +/turf/open/floor/plasteel/tech, +/area/outpost/crew/cryo) "bP" = ( /obj/effect/turf_decal/siding/wood{ dir = 9 @@ -577,16 +580,13 @@ pixel_y = -3 }, /obj/item/toy/plush/beeplushie, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 - }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 6 - }, /obj/item/reagent_containers/food/drinks/mug/tea{ pixel_y = -14; pixel_x = -4 }, +/obj/effect/turf_decal/weather/snow/surround{ + dir = 4 + }, /turf/open/floor/plating/asteroid/snow/under/lit, /area/outpost/external) "cm" = ( @@ -635,6 +635,13 @@ }, /turf/open/floor/concrete/slab_3, /area/outpost/hallway/central) +"cw" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/concrete/slab_3, +/area/outpost/hallway/central) "cB" = ( /obj/item/kirbyplants/photosynthetic, /turf/open/floor/plasteel, @@ -681,6 +688,7 @@ /obj/machinery/newscaster/directional/north{ pixel_x = -32 }, +/obj/machinery/light/directional/west, /turf/open/floor/wood, /area/outpost/operations) "cJ" = ( @@ -726,15 +734,37 @@ /turf/open/floor/plasteel/cult, /area/outpost/maintenance/fore) "cX" = ( -/obj/structure/sign/warning/electricshock{ - pixel_y = 32 +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/red/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, /obj/structure/cable{ - icon_state = "0-2" + icon_state = "4-8" }, -/obj/machinery/power/smes/magical, -/turf/open/floor/plasteel/telecomms_floor, -/area/outpost/engineering) +/obj/machinery/door/poddoor/ert{ + dir = 8; + id = "outpost_security"; + desc = "A heavy duty blast door." + }, +/obj/machinery/door/airlock/outpost{ + dir = 4; + icon = 'icons/obj/doors/airlocks/station/security.dmi'; + overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi'; + assemblytype = /obj/structure/door_assembly/door_assembly_sec; + req_one_access_txt = "101" + }, +/turf/open/floor/plasteel/dark, +/area/outpost/security) "da" = ( /obj/effect/turf_decal/siding/thinplating/dark{ dir = 8 @@ -832,14 +862,14 @@ /turf/open/floor/wood, /area/outpost/crew/bar) "du" = ( -/obj/machinery/door/airlock{ - name = "WC" +/obj/effect/turf_decal/techfloor{ + dir = 8 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/patterned/ridged{ - color = "#4c535b" +/obj/item/radio/intercom/directional/north{ + pixel_x = -3 }, -/area/outpost/crew/library) +/turf/open/floor/plasteel/tech, +/area/outpost/security/armory) "dv" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -876,12 +906,16 @@ /turf/open/space/basic, /area/outpost/external) "dA" = ( -/obj/machinery/door/airlock/public/glass, -/obj/effect/landmark/outpost/elevator_machine{ - shaft = "4" +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/hallway/fore) +/obj/item/kirbyplants{ + icon_state = "plant-21" + }, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/concrete/tiles, +/area/outpost/hallway/central) "dB" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -945,15 +979,23 @@ /turf/open/floor/grass, /area/outpost/crew/lounge) "dN" = ( -/obj/structure/table/reinforced, -/obj/machinery/microwave{ - pixel_y = 5 +/obj/structure/barricade/wooden/crude{ + layer = 3.13 }, -/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, -/area/outpost/crew/library) +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/machinery/door/poddoor/shutters/indestructible{ + name = "Showcase Storage"; + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/outpost/maintenance/fore) "dO" = ( /obj/effect/turf_decal/snow, -/obj/effect/turf_decal/weather/snow/corner{ +/obj/effect/turf_decal/weather/snow{ dir = 8 }, /turf/open/floor/concrete/reinforced, @@ -1036,6 +1078,22 @@ }, /turf/open/floor/plasteel/dark, /area/outpost/cargo) +"ej" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/rockvault, +/area/outpost/operations) "en" = ( /obj/structure/closet/firecloset/full{ anchored = 1; @@ -1175,6 +1233,13 @@ }, /turf/open/floor/plasteel, /area/outpost/vacant_rooms) +"eM" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/effect/turf_decal/corner/opaque/yellow/full, +/obj/effect/turf_decal/corner/opaque/yellow/diagonal, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/plasteel/dark, +/area/outpost/cargo) "eO" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -1322,6 +1387,11 @@ /obj/effect/turf_decal/number/one, /turf/open/floor/plasteel/tech/techmaint, /area/outpost/hallway/fore) +"fo" = ( +/obj/effect/turf_decal/corner/opaque/blue/full, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/plasteel/white, +/area/outpost/medical) "fp" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 4 @@ -1472,8 +1542,11 @@ /turf/open/floor/concrete/slab_3, /area/outpost/hallway/starboard) "fO" = ( -/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, -/area/outpost/crew/library) +/obj/structure/urinal{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/outpost/crew/canteen) "fP" = ( /obj/structure/chair{ dir = 4 @@ -1533,19 +1606,12 @@ /turf/open/floor/plasteel/dark, /area/outpost/crew/cryo) "fZ" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/item/banner, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/obj/item/radio/intercom/directional/north{ - pixel_y = 20 +/obj/machinery/door/airlock/maintenance_hatch{ + req_access_txt = "109"; + dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/outpost/hallway/fore) +/turf/open/floor/plating, +/area/outpost/crew/library) "ga" = ( /turf/open/floor/plasteel/stairs{ icon = 'icons/obj/stairs.dmi' @@ -1642,7 +1708,6 @@ }, /obj/effect/decal/cleanable/wrapping, /obj/item/radio/intercom/directional/west, -/obj/machinery/firealarm/directional/west, /turf/open/floor/concrete/slab_1, /area/outpost/hallway/central) "gv" = ( @@ -1702,11 +1767,26 @@ }, /turf/open/floor/plasteel/tech, /area/outpost/crew/cryo) +"gF" = ( +/obj/structure/table/reinforced, +/obj/item/kitchen/knife{ + pixel_y = 6; + pixel_x = 9 + }, +/obj/item/book/manual/chef_recipes{ + pixel_x = -4; + pixel_y = 6 + }, +/obj/item/kitchen/rollingpin, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/plasteel/showroomfloor, +/area/outpost/crew/library) "gH" = ( /obj/structure/girder, /obj/effect/decal/cleanable/blood/gibs/old, /obj/structure/sign/poster/official/random{ - pixel_y = -32 + pixel_x = -32 }, /turf/open/floor/plating, /area/outpost/maintenance/aft) @@ -1801,7 +1881,13 @@ /turf/open/floor/plasteel/tech/grid, /area/outpost/security/armory) "gW" = ( -/obj/machinery/door/poddoor/ert, +/obj/machinery/door/poddoor/ert{ + id = "outpost_ert" + }, +/obj/effect/turf_decal/industrial/traffic, +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, /turf/open/floor/plasteel/dark, /area/outpost/security/armory) "ha" = ( @@ -1874,19 +1960,9 @@ /turf/open/floor/plasteel/tech, /area/outpost/crew/bar) "hp" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/decal/cleanable/wrapping, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/wood, -/area/outpost/crew/bar) +/obj/machinery/processor, +/turf/open/floor/plasteel/showroomfloor, +/area/outpost/crew/library) "hu" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/engine, @@ -1900,14 +1976,14 @@ /turf/open/floor/plasteel/dark, /area/outpost/operations) "hy" = ( -/obj/machinery/door/airlock/highsecurity, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/door/airlock/external{ + dir = 8 }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/crew/cryo) +/obj/structure/barricade/wooden/crude{ + layer = 3.1 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/aft) "hA" = ( /obj/effect/turf_decal/industrial/hatch/yellow, /obj/effect/turf_decal/corner/opaque/yellow/full, @@ -1926,14 +2002,9 @@ /turf/open/floor/plasteel/sepia, /area/outpost/crew/canteen) "hE" = ( -/obj/machinery/door/poddoor/shutters/indestructible{ - name = "Showcase Storage" - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) +/obj/machinery/light/directional/east, +/turf/open/floor/plasteel/showroomfloor, +/area/outpost/crew/canteen) "hF" = ( /obj/structure/table/wood, /obj/item/trash/plate{ @@ -2045,6 +2116,17 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/showroomfloor, /area/outpost/hallway/central) +"ia" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/structure/railing/wood{ + layer = 3.1; + dir = 8 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/grass, +/area/outpost/crew/lounge) "ic" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ @@ -2077,24 +2159,6 @@ /obj/machinery/light/directional/south, /turf/open/floor/plasteel/tech/techmaint, /area/outpost/engineering/atmospherics) -"ij" = ( -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel/rockvault, -/area/outpost/operations) "il" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -2219,6 +2283,15 @@ }, /turf/open/floor/concrete/tiles, /area/outpost/hallway/central) +"iK" = ( +/obj/machinery/door/airlock/command{ + name = "Council Chamber"; + req_access_txt = "19"; + security_level = 6; + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/outpost/operations) "iL" = ( /obj/effect/turf_decal/trimline/opaque/beige/filled/line, /turf/open/floor/plasteel/dark, @@ -2282,6 +2355,13 @@ /obj/structure/catwalk/over/plated_catwalk, /turf/open/floor/plating, /area/outpost/maintenance/fore) +"ja" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/concrete/slab_3, +/area/outpost/hallway/starboard) "jb" = ( /obj/structure/rack, /obj/item/storage/belt/utility/full/engi{ @@ -2335,25 +2415,29 @@ /obj/effect/turf_decal/siding/wood{ dir = 8 }, -/obj/machinery/firealarm/directional/west, /obj/item/radio/intercom/directional/west, /turf/open/floor/carpet/nanoweave, /area/outpost/crew/canteen) "jl" = ( -/obj/machinery/door/poddoor/shutters/preopen, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8 + }, /obj/structure/barricade/wooden, +/obj/structure/barricade/wooden/crude, /turf/open/floor/plating, /area/outpost/maintenance/aft) "jm" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 +/obj/structure/chair/comfy/brown{ + dir = 4 }, -/obj/machinery/light/directional/north, -/obj/structure/sign/poster/retro/nanotrasen_logo_80s{ - pixel_y = 32 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/turf/open/floor/concrete/tiles, -/area/outpost/crew/garden) +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/outpost/operations) "jn" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ @@ -2570,14 +2654,17 @@ /turf/open/floor/plasteel/rockvault, /area/outpost/operations) "jT" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 +/obj/structure/railing{ + dir = 4 }, -/obj/item/radio/intercom/directional/north{ - pixel_y = 20 +/obj/item/banner, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 }, -/turf/open/floor/carpet/nanoweave, -/area/outpost/crew/canteen) +/obj/effect/turf_decal/spline/fancy/opaque/black, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/plasteel/dark, +/area/outpost/hallway/fore) "jU" = ( /obj/effect/turf_decal/borderfloorwhite{ dir = 5 @@ -2605,6 +2692,10 @@ dir = 8; name = "Reception Window" }, +/obj/machinery/door/poddoor/preopen{ + id = "outpost_office_lockdown"; + dir = 8 + }, /turf/open/floor/plasteel, /area/outpost/operations) "jX" = ( @@ -2681,8 +2772,11 @@ /turf/open/floor/grass, /area/outpost/crew/lounge) "kl" = ( -/obj/machinery/door/airlock/mining{ - req_access_txt = "109" +/obj/machinery/door/airlock/outpost{ + dir = 1; + icon = 'icons/obj/doors/airlocks/station/mining.dmi'; + overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi'; + assemblytype = /obj/structure/door_assembly/door_assembly_min }, /turf/open/floor/plasteel/tech, /area/outpost/cargo/office) @@ -2809,6 +2903,16 @@ }, /turf/open/floor/plasteel/patterned/grid, /area/outpost/vacant_rooms) +"kP" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/turf/open/floor/plasteel/dark, +/area/outpost/operations) "kR" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ @@ -2857,6 +2961,10 @@ /area/outpost/hallway/aft) "lb" = ( /obj/effect/spawner/structure/window/reinforced/indestructable, +/obj/machinery/door/poddoor/ert{ + id = "outpost_security_desk"; + desc = "A heavy duty blast door." + }, /turf/open/floor/plating, /area/outpost/security) "le" = ( @@ -2920,19 +3028,13 @@ /obj/effect/turf_decal/siding/wood{ dir = 6 }, -/obj/machinery/firealarm/directional/south, /obj/item/radio/intercom/directional/south, /turf/open/floor/grass, /area/outpost/crew/lounge) -"li" = ( -/obj/effect/turf_decal/number/seven, -/turf/open/floor/plasteel/elevatorshaft, -/area/outpost/vacant_rooms) "lq" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 }, -/obj/machinery/firealarm/directional/east, /obj/item/radio/intercom/directional/east, /turf/open/floor/concrete/slab_3, /area/outpost/hallway/starboard) @@ -2946,13 +3048,8 @@ /turf/open/floor/wood, /area/outpost/hallway/central) "lx" = ( -/obj/machinery/door/airlock/freezer, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/showroomfloor, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/plasteel/sepia, /area/outpost/crew/canteen) "ly" = ( /obj/effect/decal/cleanable/dirt, @@ -2991,29 +3088,12 @@ /turf/open/floor/grass, /area/outpost/crew/lounge) "lG" = ( -/obj/effect/turf_decal/siding/wideplating/dark{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wideplating/dark, -/obj/effect/turf_decal/trimline/opaque/red/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/red/line, -/obj/machinery/door/airlock/security/glass{ - req_access_txt = "101" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/structure/grille/broken, +/obj/machinery/door/airlock/maintenance_hatch{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4; - req_one_access_txt = "101" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/outpost/security) +/turf/open/floor/plating, +/area/outpost/maintenance/fore) "lH" = ( /obj/effect/turf_decal/siding/thinplating/dark{ dir = 1 @@ -3058,11 +3138,15 @@ /turf/open/floor/plating/foam, /area/outpost/maintenance/aft) "lM" = ( -/obj/machinery/door/poddoor/shutters/preopen, -/obj/structure/barricade/wooden, -/obj/structure/barricade/wooden/crude, -/turf/open/floor/plating, -/area/outpost/maintenance/aft) +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock{ + dir = 4; + name = "Chapel" + }, +/turf/open/floor/plasteel/tech, +/area/outpost/crew/lounge) "lN" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/siding/white{ @@ -3166,7 +3250,7 @@ pixel_y = 3; pixel_x = -1 }, -/obj/effect/turf_decal/weather/snow/corner{ +/obj/effect/turf_decal/weather/snow{ dir = 9 }, /turf/open/floor/plating/asteroid/snow/under/lit, @@ -3175,6 +3259,13 @@ /obj/structure/barricade/wooden, /turf/open/floor/plating, /area/outpost/maintenance/aft) +"mj" = ( +/obj/effect/spawner/structure/window/reinforced/indestructable, +/obj/machinery/door/poddoor/preopen{ + id = "outpost_security_window" + }, +/turf/open/floor/plating, +/area/outpost/security) "mk" = ( /obj/effect/turf_decal/techfloor{ dir = 8 @@ -3220,6 +3311,7 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 8 }, +/obj/machinery/firealarm/directional/east, /turf/open/floor/plasteel/sepia, /area/outpost/crew/canteen) "mr" = ( @@ -3283,15 +3375,18 @@ /turf/open/floor/wood, /area/outpost/crew/bar) "mw" = ( -/obj/machinery/door/airlock/command{ - req_access_txt = "101" - }, /obj/effect/turf_decal/industrial/warning{ dir = 8 }, /obj/effect/turf_decal/industrial/warning{ dir = 4 }, +/obj/machinery/door/airlock/outpost{ + assemblytype = /obj/structure/door_assembly/door_assembly_com; + icon = 'icons/obj/doors/airlocks/station/command.dmi'; + overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi'; + req_one_access_txt = "109" + }, /turf/open/floor/plasteel/dark, /area/outpost/operations) "mx" = ( @@ -3329,20 +3424,13 @@ /turf/open/floor/wood, /area/outpost/crew/bar) "mB" = ( -/obj/machinery/door/airlock/medical{ - req_access_txt = "109" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/structure/table/wood, +/obj/machinery/status_display/ai{ + pixel_y = 32 }, -/turf/open/floor/plasteel/white, -/area/outpost/medical) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/outpost/operations) "mD" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ @@ -3417,6 +3505,12 @@ /obj/effect/turf_decal/techfloor{ dir = 4 }, +/obj/machinery/button/door{ + pixel_y = 28; + id = "outpost_ert"; + req_access_txt = "101"; + pixel_x = -3 + }, /turf/open/floor/plasteel/tech, /area/outpost/security/armory) "mP" = ( @@ -3458,6 +3552,11 @@ }, /turf/open/floor/wood, /area/outpost/crew/library) +"mZ" = ( +/obj/structure/table/wood, +/obj/machinery/fax, +/turf/open/floor/plasteel, +/area/outpost/crew/canteen) "na" = ( /obj/structure/flora/rock/pile/largejungle{ pixel_x = 3; @@ -3528,16 +3627,18 @@ /turf/open/floor/plasteel, /area/outpost/vacant_rooms) "nk" = ( -/obj/structure/chair/comfy/black{ +/obj/structure/chair/comfy/black, +/obj/effect/turf_decal/siding/wood{ dir = 8 }, -/obj/effect/turf_decal/siding/wood, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable{ + icon_state = "0-4" }, /turf/open/floor/wood, /area/outpost/vacant_rooms/office) "nn" = ( +/obj/structure/elevator_platform, /turf/open/floor/plasteel/elevatorshaft, /area/outpost/vacant_rooms) "no" = ( @@ -3584,11 +3685,6 @@ }, /turf/open/floor/grass, /area/outpost/crew/lounge) -"nB" = ( -/obj/structure/table/wood, -/obj/machinery/fax, -/turf/open/floor/plasteel, -/area/outpost/crew/canteen) "nC" = ( /obj/structure/table/wood, /obj/item/phone{ @@ -3802,17 +3898,23 @@ /turf/open/floor/wood, /area/outpost/hallway/central) "op" = ( -/obj/machinery/door/airlock/command/glass{ - name = "Bridge Access"; - req_access_txt = "101"; - security_level = 6 - }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/door/airlock/outpost{ + assemblytype = /obj/structure/door_assembly/door_assembly_com; + icon = 'icons/obj/doors/airlocks/station/command.dmi'; + glass = 1; + overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi'; + name = "Bridge Access"; + req_one_access_txt = "109" + }, +/obj/machinery/door/poddoor/preopen{ + id = "outpost_bridge_lockdown" + }, /turf/open/floor/plasteel, /area/outpost/operations) "oq" = ( @@ -3842,6 +3944,7 @@ /obj/effect/turf_decal/industrial/warning{ dir = 8 }, +/obj/machinery/firealarm/directional/west, /turf/open/floor/plasteel/dark, /area/outpost/cargo) "oA" = ( @@ -3859,6 +3962,7 @@ /obj/structure/chair/sofa/right{ dir = 4 }, +/obj/machinery/firealarm/directional/west, /turf/open/floor/concrete/tiles, /area/outpost/hallway/aft) "oD" = ( @@ -3934,6 +4038,7 @@ /obj/effect/turf_decal/techfloor{ dir = 4 }, +/obj/machinery/firealarm/directional/south, /turf/open/floor/plasteel/tech, /area/outpost/hallway/fore) "oX" = ( @@ -3989,7 +4094,6 @@ /obj/structure/chair/sofa/left{ dir = 4 }, -/obj/machinery/firealarm/directional/west, /obj/item/radio/intercom/directional/west, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 4 @@ -4003,12 +4107,20 @@ /turf/open/floor/plasteel/elevatorshaft, /area/outpost/hallway/fore) "pm" = ( -/obj/machinery/door/airlock/external, -/obj/structure/barricade/wooden/crude{ - layer = 3.1 +/obj/effect/turf_decal/industrial/warning{ + dir = 4 }, -/turf/open/floor/plating, -/area/outpost/maintenance/aft) +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 + }, +/turf/open/floor/plasteel/rockvault, +/area/outpost/operations) "po" = ( /turf/closed/indestructible/reinforced, /area/outpost/medical) @@ -4038,12 +4150,20 @@ "pt" = ( /obj/machinery/light/directional/south, /obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm/directional/west, /turf/open/floor/carpet/blue, /area/outpost/hallway/central) "pu" = ( -/obj/machinery/door/airlock/maintenance_hatch, -/turf/open/floor/plasteel/tech, -/area/outpost/vacant_rooms) +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/trimline/transparent/lightgrey/line{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/engineering/atmospherics) "pv" = ( /obj/structure/railing/wood{ layer = 3.1; @@ -4130,6 +4250,13 @@ }, /turf/open/floor/plasteel/sepia, /area/outpost/crew/library) +"pK" = ( +/obj/effect/spawner/structure/window/reinforced/indestructable, +/obj/machinery/door/poddoor/preopen{ + id = "outpost_bridge_lockdown" + }, +/turf/open/floor/plating, +/area/outpost/operations) "pL" = ( /obj/structure/flora/rock/pile/largejungle{ pixel_x = -26; @@ -4165,6 +4292,12 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/button/door{ + pixel_y = 28; + id = "outpost_security_window"; + req_access_txt = "101"; + name = "Cell Window Shutters" + }, /turf/open/floor/plasteel/dark, /area/outpost/security) "pT" = ( @@ -4239,16 +4372,14 @@ /area/outpost/maintenance/fore) "qg" = ( /obj/structure/table/reinforced, -/obj/item/modular_computer/laptop/preset/civilian{ +/obj/item/reagent_containers/food/condiment/enzyme{ + pixel_x = -2; pixel_y = 6 }, -/obj/effect/decal/cleanable/dirt, -/obj/item/radio/intercom/directional/north{ - pixel_y = 20; - pixel_x = -3 - }, -/turf/open/floor/plasteel/dark, -/area/outpost/security) +/obj/item/reagent_containers/glass/beaker, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/plasteel/showroomfloor, +/area/outpost/crew/library) "qi" = ( /obj/effect/turf_decal/techfloor/orange{ dir = 1 @@ -4363,11 +4494,12 @@ /turf/open/floor/plasteel/white, /area/outpost/medical) "qy" = ( -/obj/machinery/door/airlock/external{ - req_access_txt = "109" +/obj/effect/turf_decal/siding/wood{ + dir = 8 }, -/turf/open/floor/plating, -/area/outpost/maintenance/aft) +/obj/machinery/firealarm/directional/west, +/turf/open/floor/carpet/nanoweave, +/area/outpost/hallway/central) "qz" = ( /obj/structure/railing/corner/wood{ dir = 1 @@ -4464,23 +4596,23 @@ /turf/open/floor/plasteel/patterned/ridged, /area/outpost/hallway/central) "qK" = ( -/obj/structure/chair/sofa/corner{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 1 +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/door/airlock/maintenance_hatch{ + dir = 8 }, -/obj/item/radio/intercom/directional/north{ - pixel_y = 20 +/turf/open/floor/plating{ + icon_state = "panelscorched" }, -/turf/open/floor/wood, -/area/outpost/crew/library) +/area/outpost/maintenance/aft) "qL" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 +/obj/effect/landmark/outpost/elevator_machine{ + shaft = "1" }, -/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, -/area/outpost/crew/library) +/obj/machinery/door/airlock/public/glass{ + dir = 4 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/hallway/fore) "qN" = ( /obj/effect/turf_decal/steeldecal/steel_decals10{ dir = 5 @@ -4517,7 +4649,6 @@ dir = 8 }, /obj/item/radio/intercom/directional/west, -/obj/machinery/firealarm/directional/west, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /turf/open/floor/plasteel/stairs{ icon = 'icons/obj/stairs.dmi' @@ -4555,16 +4686,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, /turf/open/floor/plasteel/dark, /area/outpost/crew/cryo) -"rb" = ( -/obj/machinery/door/airlock/command, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/outpost/operations) "rc" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -4595,7 +4716,6 @@ pixel_x = -8 }, /obj/item/radio/intercom/directional/west, -/obj/machinery/firealarm/directional/west, /turf/open/floor/carpet/blue, /area/outpost/hallway/central) "rh" = ( @@ -4644,19 +4764,13 @@ }, /area/outpost/maintenance/aft) "rl" = ( -/obj/structure/table/reinforced, -/obj/item/kitchen/knife{ - pixel_y = 6; - pixel_x = 9 +/obj/effect/turf_decal/siding/wood{ + dir = 1 }, -/obj/item/book/manual/chef_recipes{ - pixel_x = -4; - pixel_y = 6 - }, -/obj/item/kitchen/rollingpin, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, -/area/outpost/crew/library) +/obj/item/radio/intercom/directional/north, +/turf/open/floor/concrete/slab_3, +/area/outpost/hallway/central) "ro" = ( /obj/structure/table/wood/poker, /obj/item/flashlight/lamp/green{ @@ -4679,12 +4793,23 @@ /turf/open/floor/wood, /area/outpost/crew/library) "rs" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, -/area/outpost/crew/library) +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/outpost{ + dir = 4; + icon = 'icons/obj/doors/airlocks/station/medical.dmi'; + overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi'; + assemblytype = /obj/structure/door_assembly/door_assembly_med + }, +/turf/open/floor/plasteel/white, +/area/outpost/medical) "ru" = ( /obj/effect/turf_decal/techfloor{ dir = 8 @@ -4761,19 +4886,12 @@ /turf/open/floor/plasteel/tech/grid, /area/outpost/security) "rE" = ( -/obj/machinery/door/airlock/command{ - name = "Council Chamber"; - req_access_txt = "19"; - security_level = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 }, -/turf/open/floor/plasteel/dark, -/area/outpost/operations) +/turf/open/floor/plasteel/showroomfloor, +/area/outpost/crew/library) "rG" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/siding/thinplating/dark{ @@ -4893,12 +5011,14 @@ /turf/open/floor/plasteel/white, /area/outpost/medical) "rV" = ( -/obj/machinery/door/poddoor{ - id = "heron_outercargo"; - name = "Cargo Hatch" +/obj/effect/turf_decal/siding/wood{ + dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/outpost/cargo) +/obj/structure/sign/poster/retro/nanotrasen_logo_80s{ + pixel_y = 32 + }, +/turf/open/floor/concrete/tiles, +/area/outpost/crew/garden) "rW" = ( /obj/effect/turf_decal/industrial/warning{ dir = 5 @@ -4993,9 +5113,16 @@ /turf/open/floor/carpet/blue, /area/outpost/operations) "st" = ( -/obj/machinery/door/poddoor/shutters/indestructible, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) +/obj/machinery/door/airlock/freezer{ + req_access_txt = "109" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, +/area/outpost/crew/canteen) "su" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -5127,7 +5254,6 @@ dir = 8 }, /obj/item/radio/intercom/directional/west, -/obj/machinery/firealarm/directional/west, /turf/open/floor/concrete/slab_3, /area/outpost/hallway/fore) "sL" = ( @@ -5336,12 +5462,17 @@ /turf/open/floor/wood, /area/outpost/operations) "ty" = ( -/obj/machinery/door/airlock/atmos, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/door/airlock/outpost{ + assemblytype = /obj/structure/door_assembly/door_assembly_atmo; + icon = 'icons/obj/doors/airlocks/station/atmos.dmi'; + overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi'; + req_access_txt = "101" + }, /turf/open/floor/plasteel/tech/techmaint, /area/outpost/engineering/atmospherics) "tz" = ( @@ -5412,6 +5543,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm/directional/east, /turf/open/floor/wood, /area/outpost/vacant_rooms/office) "tM" = ( @@ -5466,12 +5598,12 @@ }, /area/outpost/maintenance/aft) "tV" = ( -/obj/effect/turf_decal/siding/white{ - dir = 4 +/obj/machinery/door/airlock/maintenance_hatch{ + req_access_txt = "109"; + dir = 8 }, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) +/turf/open/floor/concrete/reinforced, +/area/outpost/maintenance/aft) "tW" = ( /obj/machinery/computer/cargo/express{ dir = 8 @@ -5479,9 +5611,6 @@ /obj/effect/turf_decal/techfloor{ dir = 4 }, -/obj/structure/sign/poster/contraband/random{ - pixel_y = 32 - }, /obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/plasteel/dark, /area/outpost/cargo) @@ -5507,6 +5636,13 @@ /obj/structure/chair/comfy/black{ dir = 1 }, +/obj/machinery/button/door{ + dir = 4; + pixel_x = -28; + pixel_y = 6; + id = "outpost_security_desk"; + name = "Desk Shutter" + }, /turf/open/floor/plasteel/dark, /area/outpost/security) "ua" = ( @@ -5909,9 +6045,11 @@ /turf/open/floor/plasteel, /area/outpost/crew/canteen) "vr" = ( -/obj/machinery/door/airlock/freezer, -/obj/structure/cable{ - icon_state = "4-8" +/obj/structure/sink{ + pixel_y = 23 + }, +/obj/structure/mirror{ + pixel_y = 32 }, /turf/open/floor/plasteel/showroomfloor, /area/outpost/crew/canteen) @@ -5982,12 +6120,11 @@ /turf/open/floor/plating, /area/outpost/maintenance/fore) "vG" = ( -/obj/machinery/door/airlock/public/glass, -/obj/effect/landmark/outpost/elevator_machine{ - shaft = "1" +/obj/machinery/door/poddoor/shutters/indestructible{ + dir = 8 }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/hallway/fore) +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) "vI" = ( /obj/effect/turf_decal/techfloor/orange{ dir = 4 @@ -6032,7 +6169,6 @@ /obj/machinery/libraryscanner, /obj/machinery/light/directional/south, /obj/item/radio/intercom/directional/west, -/obj/machinery/firealarm/directional/west, /turf/open/floor/carpet/red, /area/outpost/vacant_rooms/office) "vM" = ( @@ -6171,9 +6307,12 @@ /turf/open/floor/plasteel/rockvault, /area/outpost/operations) "we" = ( -/obj/machinery/door/airlock/maintenance_hatch, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) +/obj/structure/railing/wood{ + dir = 4 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/grass, +/area/outpost/crew/garden) "wf" = ( /obj/structure/flora/rock/jungle{ pixel_x = 12 @@ -6225,6 +6364,7 @@ /turf/open/floor/plasteel/dark, /area/outpost/security) "wq" = ( +/obj/structure/elevator_platform, /turf/open/floor/plasteel/elevatorshaft, /area/outpost/crew/library) "wt" = ( @@ -6240,16 +6380,16 @@ /turf/open/floor/concrete/slab_3, /area/outpost/hallway/starboard) "wy" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, /obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/siding/wood{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 1 }, -/obj/item/kirbyplants{ - icon_state = "plant-21" - }, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/concrete/tiles, -/area/outpost/hallway/central) +/obj/machinery/light/directional/south, +/turf/open/floor/wood, +/area/outpost/vacant_rooms/office) "wz" = ( /obj/effect/turf_decal/techfloor/orange, /obj/machinery/computer/monitor{ @@ -6476,7 +6616,7 @@ /area/outpost/hallway/central) "xk" = ( /obj/structure/bonfire/prelit, -/obj/effect/turf_decal/weather/snow/corner{ +/obj/effect/turf_decal/weather/snow{ dir = 1 }, /turf/open/floor/plating/asteroid/snow/under/lit, @@ -6564,9 +6704,13 @@ }, /area/outpost/maintenance/aft) "xC" = ( -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/plasteel, -/area/outpost/hallway/fore) +/obj/structure/chair/office, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/carpet/red, +/area/outpost/vacant_rooms/office) "xD" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/chair/wood{ @@ -6587,11 +6731,12 @@ /turf/open/floor/carpet/nanoweave, /area/outpost/crew/canteen) "xF" = ( +/obj/structure/catwalk/over/plated_catwalk, /obj/machinery/door/airlock/maintenance_hatch{ - req_access_txt = "109" + dir = 4 }, /turf/open/floor/plating, -/area/outpost/crew/library) +/area/outpost/maintenance/fore) "xH" = ( /obj/machinery/door/window/brigdoor/security, /obj/structure/rack, @@ -6777,14 +6922,13 @@ /turf/open/floor/plating/asteroid/snow/airless, /area/outpost/external) "yl" = ( -/obj/structure/sink{ - pixel_y = 23 - }, -/obj/structure/mirror{ - pixel_y = 32 +/obj/effect/turf_decal/techfloor/orange{ + dir = 1 }, -/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, -/area/outpost/crew/canteen) +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/plasteel/tech/grid, +/area/outpost/engineering) "ym" = ( /obj/effect/turf_decal/trimline/opaque/beige/filled/corner, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, @@ -6836,6 +6980,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, /obj/effect/turf_decal/siding/wood, +/obj/item/radio/intercom/directional/west, /turf/open/floor/wood, /area/outpost/operations) "yA" = ( @@ -6884,17 +7029,13 @@ }, /area/outpost/maintenance/aft) "yF" = ( -/obj/structure/chair/comfy/black, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/machinery/light/directional/west, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable{ - icon_state = "0-4" +/obj/effect/turf_decal/techfloor{ + dir = 4 }, -/turf/open/floor/wood, -/area/outpost/vacant_rooms/office) +/obj/effect/overlay/holoray, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/plasteel/tech, +/area/outpost/crew/cryo) "yG" = ( /obj/structure/table/reinforced, /obj/item/flashlight/lamp{ @@ -7022,11 +7163,18 @@ /turf/open/floor/concrete/slab_3, /area/outpost/hallway/central) "yZ" = ( -/obj/structure/urinal{ - pixel_y = 28 +/obj/structure/barricade/wooden/crude{ + layer = 3.13 }, -/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, -/area/outpost/crew/canteen) +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/machinery/door/poddoor/shutters/indestructible{ + name = "Showcase Storage"; + dir = 4 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) "za" = ( /obj/effect/turf_decal/siding/wood{ dir = 6 @@ -7103,11 +7251,11 @@ /turf/open/floor/plasteel/dark, /area/outpost/operations) "zn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/machinery/door/poddoor/ert{ dir = 8 }, -/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, -/area/outpost/crew/library) +/turf/open/floor/plasteel/dark, +/area/outpost/cargo) "zo" = ( /obj/structure/table/reinforced, /obj/item/storage/photo_album{ @@ -7162,6 +7310,7 @@ "zB" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/food/plant_smudge, +/obj/machinery/firealarm/directional/east, /turf/open/floor/plasteel/sepia, /area/outpost/hallway/central) "zD" = ( @@ -7247,10 +7396,12 @@ /turf/open/floor/carpet/blue, /area/outpost/hallway/central) "zQ" = ( -/obj/machinery/door/airlock/maintenance_hatch, -/obj/structure/grille/broken, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/carpet/nanoweave, +/area/outpost/crew/canteen) "zR" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -7301,26 +7452,16 @@ /turf/open/floor/engine, /area/outpost/crew/cryo) "Ab" = ( +/obj/structure/elevator_platform, /turf/open/floor/plasteel/elevatorshaft, /area/outpost/cargo) "Ac" = ( -/obj/effect/turf_decal/siding/wideplating/dark{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wideplating/dark, -/obj/effect/turf_decal/trimline/opaque/red/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/red/line, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/centcom{ - name = "Briefing Room"; - req_access_txt = "101" +/obj/effect/turf_decal/siding/white{ + dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/outpost/security/armory) +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) "Ad" = ( /turf/closed/mineral/random/snow, /area/outpost/operations) @@ -7335,7 +7476,9 @@ /area/outpost/operations) "Ag" = ( /obj/machinery/door/airlock{ - req_access_txt = "109" + req_access_txt = "109"; + explosion_block = 2; + normal_integrity = 1000 }, /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -7564,14 +7707,11 @@ /turf/open/floor/carpet/nanoweave, /area/outpost/crew/canteen) "AS" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/item/radio/intercom/directional/north{ - pixel_y = 20; - pixel_x = -3 +/obj/machinery/door/airlock/grunge{ + dir = 8 }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/plasteel/mono/dark, -/area/outpost/cargo) +/turf/open/floor/plasteel, +/area/outpost/vacant_rooms) "AT" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -7618,6 +7758,20 @@ /obj/effect/spawner/structure/window/reinforced/indestructable, /turf/open/floor/plating, /area/outpost/external) +"Bg" = ( +/obj/effect/turf_decal/corner/opaque/blue{ + dir = 5 + }, +/obj/machinery/smartfridge/bloodbank/preloaded, +/obj/effect/turf_decal/corner/opaque/blue/full, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/item/radio/intercom/directional/north{ + pixel_x = -3 + }, +/turf/open/floor/plasteel/white, +/area/outpost/medical) "Bi" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -7715,12 +7869,12 @@ /turf/open/floor/plating/asteroid/icerock/cracked, /area/outpost/maintenance/fore) "Bz" = ( -/obj/structure/table/wood, /obj/machinery/recharger, /obj/structure/railing{ dir = 4 }, /obj/machinery/airalarm/directional/north, +/obj/structure/table/wood/reinforced, /turf/open/floor/plasteel/dark, /area/outpost/operations) "BA" = ( @@ -7734,12 +7888,15 @@ /turf/open/floor/plasteel/cult, /area/outpost/maintenance/fore) "BC" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/carpet/nanoweave, -/area/outpost/hallway/central) +/obj/machinery/door/airlock/freezer{ + dir = 4; + req_access_txt = "109" + }, +/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, +/area/outpost/crew/canteen) "BD" = ( /obj/effect/turf_decal/techfloor{ dir = 9 @@ -8052,12 +8209,8 @@ /turf/open/floor/plasteel/tech/techmaint, /area/outpost/engineering/atmospherics) "CF" = ( -/obj/machinery/door/airlock/maintenance_hatch, -/obj/structure/catwalk/over/plated_catwalk, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/outpost/maintenance/aft) +/turf/open/floor/plasteel/showroomfloor, +/area/outpost/crew/library) "CG" = ( /obj/effect/landmark/outpost/elevator{ shaft = "1" @@ -8065,14 +8218,12 @@ /turf/open/floor/plasteel/elevatorshaft, /area/outpost/hallway/fore) "CH" = ( -/obj/machinery/chem_master/condimaster, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/greenglow, -/obj/structure/sign/poster/retro/smile{ - pixel_y = -32 +/obj/structure/barricade/wooden, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8 }, -/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, -/area/outpost/crew/library) +/turf/open/floor/plating, +/area/outpost/maintenance/aft) "CJ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/girder/displaced, @@ -8089,17 +8240,14 @@ /turf/open/floor/plasteel/dark, /area/outpost/crew/cryo) "CL" = ( -/obj/machinery/door/poddoor/shutters/indestructible{ - name = "Showcase Storage" - }, -/obj/structure/barricade/wooden/crude{ - layer = 3.13 - }, -/obj/effect/turf_decal/industrial/warning{ +/obj/structure/railing, +/obj/effect/turf_decal/siding/thinplating/dark{ dir = 8 }, -/turf/open/floor/plating, -/area/outpost/maintenance/fore) +/obj/structure/table, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/hallway/fore) "CN" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -8221,10 +8369,11 @@ /turf/open/floor/engine/n2o, /area/outpost/engineering/atmospherics) "Dk" = ( -/obj/machinery/vending/coffee, -/obj/effect/decal/cleanable/robot_debris, -/turf/open/floor/concrete/slab_1, -/area/outpost/hallway/central) +/obj/machinery/door/airlock/maintenance_hatch{ + dir = 8 + }, +/turf/open/floor/plating, +/area/outpost/maintenance/fore) "Dl" = ( /obj/machinery/computer/card, /turf/open/floor/plasteel/dark, @@ -8304,6 +8453,7 @@ /obj/effect/turf_decal/industrial/warning{ dir = 8 }, +/obj/machinery/light/small/directional/east, /turf/open/floor/plasteel/dark, /area/outpost/operations) "DH" = ( @@ -8342,15 +8492,10 @@ /turf/open/floor/plasteel/dark, /area/outpost/operations) "DO" = ( -/obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/enzyme{ - pixel_x = -2; - pixel_y = 6 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 }, -/obj/item/reagent_containers/glass/beaker, -/obj/machinery/firealarm/directional/south, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, +/turf/open/floor/plasteel/showroomfloor, /area/outpost/crew/library) "DP" = ( /obj/machinery/computer/crew, @@ -8406,9 +8551,13 @@ /turf/open/floor/plasteel, /area/outpost/hallway/fore) "Eb" = ( -/obj/machinery/door/airlock/wood/glass, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood/corner, +/obj/machinery/firealarm/directional/north, /turf/open/floor/wood, -/area/outpost/vacant_rooms/office) +/area/outpost/crew/bar) "Ec" = ( /obj/effect/turf_decal/siding/wood/corner, /obj/effect/decal/cleanable/dirt, @@ -8461,7 +8610,7 @@ /obj/item/kirbyplants{ icon_state = "plant-03" }, -/obj/structure/extinguisher_cabinet/directional/north, +/obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/carpet, /area/outpost/crew/library) "Ei" = ( @@ -8478,7 +8627,9 @@ /area/outpost/hallway/central) "Em" = ( /obj/machinery/door/airlock{ - req_access_txt = "109" + req_access_txt = "109"; + explosion_block = 2; + normal_integrity = 1000 }, /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -8749,6 +8900,14 @@ /obj/machinery/light/directional/east, /turf/open/floor/concrete/slab_1, /area/outpost/hallway/central) +"Fh" = ( +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/stairs{ + barefootstep = "woodbarefoot"; + color = "#A47449"; + footstep = "wood" + }, +/area/outpost/hallway/fore) "Fi" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -8774,9 +8933,16 @@ }, /area/outpost/maintenance/aft) "Fo" = ( -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/plasteel/sepia, -/area/outpost/crew/canteen) +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/item/radio/intercom/directional/north, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/concrete/slab_3, +/area/outpost/crew/garden) "Fp" = ( /obj/effect/turf_decal/techfloor/orange, /obj/structure/railing{ @@ -8871,10 +9037,6 @@ }, /turf/open/floor/carpet/green, /area/outpost/hallway/aft) -"FB" = ( -/obj/effect/turf_decal/number/nine, -/turf/open/floor/plasteel/elevatorshaft, -/area/outpost/crew/library) "FC" = ( /obj/machinery/light/directional/west, /turf/open/floor/plasteel, @@ -8970,9 +9132,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /turf/open/floor/plasteel/rockvault, /area/outpost/operations) -"Gb" = ( -/turf/closed/mineral/random/snow, -/area/outpost/crew/canteen) "Gc" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 1 @@ -8991,10 +9150,6 @@ }, /turf/open/floor/plasteel/dark, /area/outpost/security) -"Gg" = ( -/obj/effect/turf_decal/number/eight, -/turf/open/floor/plasteel/elevatorshaft, -/area/outpost/cargo) "Gh" = ( /obj/machinery/door/airlock/maintenance_hatch{ req_access_txt = "109" @@ -9041,32 +9196,31 @@ /turf/open/floor/plasteel/dark, /area/outpost/operations) "Gn" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/item/radio/intercom/directional/north{ - pixel_y = 20 +/obj/effect/turf_decal/industrial/warning{ + dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/door/poddoor/shutters/indestructible{ + name = "Showcase Storage"; + dir = 4 }, -/turf/open/floor/concrete/slab_3, -/area/outpost/crew/garden) +/turf/open/floor/plating, +/area/outpost/maintenance/fore) "Gq" = ( /obj/machinery/door/poddoor/multi_tile/three_tile_hor, /turf/closed/indestructible/reinforced, /area/outpost/maintenance/fore) "Gr" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/obj/structure/sign/poster/contraband/space_cola{ - pixel_x = -32; +/obj/structure/sign/warning/electricshock{ pixel_y = 32 }, -/turf/open/floor/concrete/slab_3, -/area/outpost/hallway/central) +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/smes/magical{ + output_level = 200000 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/outpost/engineering) "Gs" = ( /obj/machinery/door/window/brigdoor/westright, /obj/machinery/door/window/brigdoor/westright{ @@ -9125,19 +9279,29 @@ pixel_y = 5; pixel_x = 1 }, -/obj/effect/turf_decal/weather/snow/corner{ +/obj/effect/turf_decal/weather/snow{ dir = 10 }, /turf/open/floor/plating/asteroid/snow/under/lit, /area/outpost/external) "Gw" = ( -/obj/effect/turf_decal/techfloor, -/obj/item/radio/intercom/directional/north{ - pixel_y = 20; - pixel_x = -3 +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 }, -/turf/open/floor/plasteel/tech, -/area/outpost/crew/cryo) +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/red/line, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/outpost{ + dir = 4; + name = "Briefing Room" + }, +/turf/open/floor/plasteel/dark, +/area/outpost/security/armory) "Gx" = ( /turf/open/floor/plating, /area/outpost/hallway/fore) @@ -9298,7 +9462,6 @@ /area/outpost/crew/bar) "GT" = ( /obj/effect/turf_decal/siding/wood, -/obj/machinery/firealarm/directional/south, /obj/item/radio/intercom/directional/south, /turf/open/floor/concrete/slab_3, /area/outpost/hallway/central) @@ -9410,14 +9573,19 @@ /turf/open/floor/plasteel/dark, /area/outpost/operations) "Hu" = ( -/obj/machinery/door/airlock/highsecurity{ - req_access_txt = "109" +/obj/effect/turf_decal/siding/wood{ + dir = 10 }, -/obj/structure/cable{ - icon_state = "1-2" +/obj/structure/chair{ + dir = 1 }, -/turf/open/floor/plasteel/tech, -/area/outpost/crew/cryo) +/obj/effect/decal/cleanable/wrapping, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/wood, +/area/outpost/crew/bar) "Hv" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -9458,14 +9626,9 @@ /turf/open/floor/plasteel/rockvault, /area/outpost/operations) "HD" = ( -/obj/structure/chair/comfy/brown{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/outpost/operations) +/obj/machinery/door/airlock, +/turf/open/floor/plasteel/showroomfloor, +/area/outpost/crew/canteen) "HE" = ( /turf/open/floor/plasteel/stairs{ icon = 'icons/obj/stairs.dmi'; @@ -9501,7 +9664,6 @@ /turf/open/floor/plasteel/telecomms_floor, /area/outpost/crew/cryo) "HJ" = ( -/obj/machinery/firealarm/directional/east, /obj/item/radio/intercom/directional/east, /turf/open/floor/plasteel/sepia, /area/outpost/crew/canteen) @@ -9554,21 +9716,11 @@ /turf/open/floor/plasteel/telecomms_floor, /area/outpost/crew/cryo) "HW" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/structure/sign/poster/retro/radio{ - pixel_x = 32 - }, -/obj/item/radio/intercom/directional/north{ - pixel_y = 20 +/obj/machinery/door/airlock/maintenance_hatch{ + dir = 4 }, -/turf/open/floor/wood, -/area/outpost/crew/library) +/turf/open/floor/plating, +/area/outpost/maintenance/fore) "HY" = ( /turf/open/floor/plating/asteroid/icerock/cracked, /area/outpost/external) @@ -9626,31 +9778,25 @@ /turf/open/floor/concrete/slab_1, /area/outpost/hallway/central) "Ig" = ( -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 5 - }, -/obj/machinery/smartfridge/bloodbank/preloaded, -/obj/effect/turf_decal/corner/opaque/blue/full, -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/item/radio/intercom/directional/north{ - pixel_y = 20; - pixel_x = -3 +/obj/machinery/door/airlock/outpost{ + dir = 4; + icon = 'icons/obj/doors/airlocks/external/external.dmi'; + overlays_file = 'icons/obj/doors/airlocks/external/overlays.dmi'; + assemblytype = /obj/structure/door_assembly/door_assembly_ext; + doorClose = 'sound/machines/airlocks/external/airlock_ext_close.ogg'; + doorOpen = 'sound/machines/airlocks/external/airlock_ext_open.ogg' }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/plasteel/white, -/area/outpost/medical) +/turf/open/floor/plating, +/area/outpost/maintenance/aft) "Ih" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, +/obj/machinery/chem_master/condimaster, /obj/effect/decal/cleanable/dirt, -/obj/item/radio/intercom/directional/north{ - pixel_y = 20 +/obj/effect/decal/cleanable/greenglow, +/obj/structure/sign/poster/retro/smile{ + pixel_y = -32 }, -/turf/open/floor/concrete/slab_3, -/area/outpost/hallway/central) +/turf/open/floor/plasteel/showroomfloor, +/area/outpost/crew/library) "Ij" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ @@ -9787,18 +9933,13 @@ /turf/open/floor/plasteel/tech, /area/outpost/cargo) "II" = ( -/obj/effect/turf_decal/techfloor, -/obj/effect/turf_decal/trimline/transparent/lightgrey/line{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/item/radio/intercom/directional/north{ - pixel_y = 20 +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/engineering/atmospherics) +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plasteel/showroomfloor, +/area/outpost/crew/library) "IJ" = ( /turf/open/floor/plasteel, /area/outpost/crew/canteen) @@ -9824,6 +9965,7 @@ /obj/structure/cable{ icon_state = "1-2" }, +/obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/plasteel/rockvault, /area/outpost/operations) "IN" = ( @@ -9853,13 +9995,12 @@ /turf/open/floor/plasteel/dark, /area/outpost/operations) "IS" = ( -/obj/effect/turf_decal/techfloor{ +/obj/effect/turf_decal/siding/wood{ dir = 4 }, -/obj/effect/overlay/holoray, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/plasteel/tech, -/area/outpost/crew/cryo) +/obj/machinery/firealarm/directional/east, +/turf/open/floor/concrete/slab_3, +/area/outpost/hallway/starboard) "IW" = ( /turf/open/floor/plasteel/stairs{ barefootstep = "woodbarefoot"; @@ -9895,6 +10036,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm/directional/west, /turf/open/floor/concrete/tiles, /area/outpost/hallway/central) "Jb" = ( @@ -10081,7 +10223,6 @@ pixel_y = -32 }, /obj/item/radio/intercom/directional/east, -/obj/machinery/firealarm/directional/east, /turf/open/floor/wood, /area/outpost/hallway/central) "JH" = ( @@ -10140,13 +10281,11 @@ }, /area/outpost/operations) "JP" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 +/obj/machinery/door/airlock/maintenance_hatch{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, -/area/outpost/crew/library) +/turf/open/floor/plasteel/tech, +/area/outpost/vacant_rooms) "JR" = ( /obj/effect/turf_decal/industrial/warning{ dir = 4 @@ -10294,12 +10433,15 @@ /turf/open/floor/plasteel/patterned/grid, /area/outpost/hallway/fore) "Kp" = ( -/obj/structure/mineral_door/paperframe, -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/door/airlock{ + name = "WC"; + dir = 8 }, -/turf/open/floor/plasteel/tech, -/area/outpost/crew/lounge) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/ridged{ + color = "#4c535b" + }, +/area/outpost/crew/library) "Kt" = ( /obj/structure/bed{ pixel_x = 1 @@ -10383,7 +10525,6 @@ /turf/open/floor/plating/rust, /area/outpost/maintenance/aft) "KF" = ( -/obj/structure/table/wood, /obj/item/paper_bin{ pixel_x = 5; pixel_y = 4 @@ -10393,12 +10534,26 @@ pixel_y = 6 }, /obj/machinery/light/directional/north, -/turf/open/floor/plasteel/dark, -/area/outpost/operations) -"KG" = ( -/obj/effect/turf_decal/techfloor, -/obj/effect/overlay/holoray{ - pixel_y = -47 +/obj/machinery/button/door{ + id = "outpost_bridge_lockdown"; + req_access_txt = "101"; + pixel_x = -8; + pixel_y = 8; + name = "Bridge Lockdown" + }, +/obj/structure/table/wood/reinforced, +/obj/machinery/button/door{ + id = "outpost_office_lockdown"; + req_access_txt = "101"; + pixel_x = -8; + name = "Office Lockdown" + }, +/turf/open/floor/plasteel/dark, +/area/outpost/operations) +"KG" = ( +/obj/effect/turf_decal/techfloor, +/obj/effect/overlay/holoray{ + pixel_y = -47 }, /turf/open/floor/plasteel/tech, /area/outpost/crew/cryo) @@ -10578,8 +10733,11 @@ /area/outpost/crew/library) "Lz" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/door/airlock/maintenance_hatch{ - req_access_txt = "109" +/obj/machinery/door/airlock/outpost{ + assemblytype = /obj/structure/door_assembly/door_assembly_mhatch; + icon = 'icons/obj/doors/airlocks/hatch/maintenance.dmi'; + overlays_file = 'icons/obj/doors/airlocks/hatch/overlays.dmi'; + req_access_txt = "101" }, /turf/open/floor/plating, /area/outpost/engineering/atmospherics) @@ -10738,9 +10896,20 @@ /turf/open/floor/grass, /area/outpost/crew/lounge) "LW" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, -/area/outpost/crew/library) +/obj/machinery/door/airlock/command{ + name = "Council Chamber"; + req_access_txt = "19"; + security_level = 6; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/outpost/operations) "LX" = ( /obj/effect/turf_decal/steeldecal/steel_decals10{ dir = 5 @@ -10826,6 +10995,14 @@ /obj/structure/flora/stump, /turf/open/floor/grass/snow/safe, /area/outpost/hallway/starboard) +"Mn" = ( +/obj/machinery/photocopier{ + pixel_y = 3 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/industrial/hatch/yellow, +/turf/open/floor/plasteel/dark, +/area/outpost/security) "Mo" = ( /obj/structure/bed, /obj/structure/curtain/cloth/grey, @@ -10876,9 +11053,14 @@ /turf/open/floor/plating, /area/outpost/hallway/fore) "MF" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/outpost/crew/lounge) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/grunge, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/crew/cryo) "MK" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 4 @@ -11352,18 +11534,19 @@ /turf/open/floor/plasteel/telecomms_floor, /area/outpost/crew/cryo) "Of" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 +/obj/structure/chair{ + dir = 8 }, -/obj/machinery/light/directional/north, -/obj/structure/sign/poster/retro/nanotrasen_logo_80s{ - pixel_y = 32 +/obj/effect/turf_decal/siding/wood{ + dir = 1 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/sign/poster/retro/radio{ + pixel_x = 32 }, -/turf/open/floor/concrete/tiles, -/area/outpost/crew/garden) +/obj/item/radio/intercom/directional/north, +/turf/open/floor/wood, +/area/outpost/crew/library) "Og" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/showroomfloor, @@ -11432,13 +11615,13 @@ /turf/open/floor/concrete/slab_3, /area/outpost/hallway/central) "Os" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 6 - }, /obj/item/shovel, /obj/item/flashlight/lantern{ pixel_x = 7 }, +/obj/effect/turf_decal/weather/snow{ + dir = 6 + }, /turf/open/floor/plating/asteroid/snow/under/lit, /area/outpost/external) "Ot" = ( @@ -11472,12 +11655,10 @@ /turf/open/floor/plasteel/dark, /area/outpost/operations) "Ow" = ( -/obj/structure/toilet/secret{ - dir = 4; - secret_type = /obj/item/storage/box/donkpockets/donkpocketgondola - }, -/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, -/area/outpost/crew/canteen) +/obj/structure/window/reinforced/fulltile, +/obj/structure/grille, +/turf/open/floor/plating, +/area/outpost/crew/lounge) "Ox" = ( /obj/structure/flora/grass/jungle/b, /obj/structure/railing/wood{ @@ -11492,8 +11673,14 @@ /area/outpost/cargo) "OA" = ( /obj/machinery/processor, -/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, -/area/outpost/crew/library) +/obj/effect/turf_decal/industrial/warning{ + dir = 2; + color = "#808080" + }, +/obj/effect/decal/cleanable/food/tomato_smudge, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/plasteel, +/area/outpost/crew/canteen) "OC" = ( /obj/effect/turf_decal/siding/white{ dir = 8 @@ -11524,7 +11711,7 @@ /obj/effect/turf_decal/techfloor{ dir = 4 }, -/obj/structure/extinguisher_cabinet/directional/north, +/obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/plasteel/dark, /area/outpost/security) "OG" = ( @@ -11724,15 +11911,9 @@ /turf/open/floor/grass, /area/outpost/crew/lounge) "Pp" = ( -/obj/structure/chair/office, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/item/radio/intercom/directional/north{ - pixel_y = 20 - }, -/turf/open/floor/carpet/red, -/area/outpost/vacant_rooms/office) +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/plasteel, +/area/outpost/hallway/fore) "Pt" = ( /obj/item/kirbyplants{ icon_state = "plant-21" @@ -11758,9 +11939,13 @@ /turf/open/floor/concrete/slab_2, /area/outpost/hallway/central) "PA" = ( -/obj/structure/mineral_door/paperframe, -/turf/open/floor/plasteel/tech, -/area/outpost/crew/lounge) +/obj/machinery/vending/coffee, +/obj/effect/decal/cleanable/robot_debris, +/obj/structure/sign/poster/contraband/space_cola{ + pixel_y = 32 + }, +/turf/open/floor/concrete/slab_1, +/area/outpost/hallway/central) "PB" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/showcase/machinery/cloning_pod, @@ -11846,14 +12031,12 @@ /turf/open/floor/wood, /area/outpost/maintenance/aft) "PP" = ( -/obj/structure/railing, -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 8 +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/structure/table, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/hallway/fore) +/obj/machinery/door/airlock/outpost, +/turf/open/floor/plasteel/tech, +/area/outpost/crew/cryo) "PR" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -11919,9 +12102,6 @@ /turf/open/floor/wood/ebony, /area/outpost/crew/lounge) "Qf" = ( -/obj/machinery/door/airlock/mining{ - req_access_txt = "109" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, @@ -11931,16 +12111,20 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/door/airlock/outpost{ + dir = 4; + icon = 'icons/obj/doors/airlocks/station/mining.dmi'; + overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi'; + assemblytype = /obj/structure/door_assembly/door_assembly_min + }, /turf/open/floor/plasteel/tech/grid, /area/outpost/cargo) "Qj" = ( -/obj/machinery/door/airlock/command{ - name = "Council Chamber"; - req_access_txt = "19"; - security_level = 6 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/outpost/operations) +/turf/open/floor/plasteel/showroomfloor, +/area/outpost/crew/library) "Ql" = ( /obj/structure/rack, /obj/effect/turf_decal/box/corners, @@ -12069,17 +12253,14 @@ }, /area/outpost/maintenance/aft) "QC" = ( -/obj/machinery/processor, -/obj/effect/turf_decal/industrial/warning{ - dir = 2; - color = "#808080" +/obj/machinery/door/airlock/maintenance_hatch{ + dir = 8 }, -/obj/effect/decal/cleanable/food/tomato_smudge, -/obj/item/radio/intercom/directional/north{ - pixel_y = 20 +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plasteel, -/area/outpost/crew/canteen) +/turf/open/floor/plasteel/tech, +/area/outpost/hallway/fore) "QD" = ( /obj/structure/flora/rock/pile/largejungle{ pixel_x = 3; @@ -12305,6 +12486,7 @@ dir = 4 }, /obj/machinery/newscaster/directional/south, +/obj/machinery/firealarm/directional/east, /turf/open/floor/concrete/tiles, /area/outpost/hallway/aft) "Rt" = ( @@ -12365,9 +12547,10 @@ /turf/open/floor/concrete/slab_3, /area/outpost/hallway/starboard) "RD" = ( -/obj/machinery/door/airlock, -/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, -/area/outpost/crew/canteen) +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/indestructable, +/turf/open/floor/plating, +/area/outpost/operations) "RE" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -12399,7 +12582,6 @@ /obj/effect/turf_decal/siding/wood{ dir = 4 }, -/obj/machinery/firealarm/directional/east, /obj/item/radio/intercom/directional/east, /turf/open/floor/concrete/tiles, /area/outpost/hallway/aft) @@ -12436,7 +12618,7 @@ /obj/effect/turf_decal/siding/wood{ dir = 4 }, -/obj/structure/extinguisher_cabinet/directional/north, +/obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/concrete/tiles, /area/outpost/hallway/aft) "RR" = ( @@ -12445,14 +12627,17 @@ /turf/open/floor/plasteel/tech, /area/outpost/cargo) "RS" = ( -/obj/machinery/door/airlock/engineering{ - req_access_txt = "109" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/door/airlock/outpost{ + assemblytype = /obj/structure/door_assembly/door_assembly_eng; + icon = 'icons/obj/doors/airlocks/station/engineering.dmi'; + overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi'; + req_access_txt = "101" + }, /turf/open/floor/plasteel/tech, /area/outpost/engineering) "RT" = ( @@ -12508,15 +12693,12 @@ /turf/open/floor/plating, /area/outpost/maintenance/fore) "Sa" = ( -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/item/radio/intercom/directional/north{ - pixel_y = 20; - pixel_x = -3 +/obj/structure/toilet/secret{ + dir = 4; + secret_type = /obj/item/storage/box/donkpockets/donkpocketgondola }, -/turf/open/floor/plasteel/tech, -/area/outpost/security/armory) +/turf/open/floor/plasteel/showroomfloor, +/area/outpost/crew/canteen) "Sd" = ( /obj/structure/grille/broken, /obj/effect/spawner/lootdrop/minor/pirate_or_bandana, @@ -12575,18 +12757,9 @@ /turf/open/floor/plasteel/dark, /area/outpost/operations) "Sw" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plasteel/rockvault, -/area/outpost/operations) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/showroomfloor, +/area/outpost/crew/library) "Sx" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -12603,16 +12776,19 @@ /turf/open/floor/plasteel/sepia, /area/outpost/crew/canteen) "SB" = ( -/obj/machinery/door/airlock/command/glass{ - name = "Bridge Access"; - req_access_txt = "101"; - security_level = 6 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/door/airlock/outpost{ + assemblytype = /obj/structure/door_assembly/door_assembly_com; + icon = 'icons/obj/doors/airlocks/station/command.dmi'; + glass = 1; + overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi'; + name = "Bridge Access"; + req_one_access_txt = "109" + }, /turf/open/floor/plasteel, /area/outpost/operations) "SE" = ( @@ -12675,14 +12851,6 @@ icon_state = "panelscorched" }, /area/outpost/maintenance/fore) -"SO" = ( -/obj/machinery/photocopier{ - pixel_y = 3 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/industrial/hatch/yellow, -/turf/open/floor/plasteel/dark, -/area/outpost/security) "SP" = ( /obj/effect/turf_decal/techfloor/corner{ dir = 1 @@ -12936,6 +13104,14 @@ }, /turf/open/floor/concrete/slab_3, /area/outpost/hallway/central) +"TI" = ( +/obj/effect/spawner/structure/window/reinforced/indestructable, +/obj/machinery/door/poddoor/preopen{ + id = "outpost_office_lockdown"; + dir = 8 + }, +/turf/open/floor/plating, +/area/outpost/operations) "TJ" = ( /turf/closed/indestructible/reinforced, /area/outpost/hallway/central) @@ -12957,18 +13133,30 @@ /turf/open/floor/plasteel, /area/outpost/crew/canteen) "TN" = ( -/obj/machinery/light/directional/north, -/obj/structure/table/wood, -/obj/machinery/status_display/ai{ - pixel_y = 32 +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 }, -/obj/effect/decal/cleanable/dirt, -/obj/item/radio/intercom/directional/north{ - pixel_y = 5; - pixel_x = -3 +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/effect/turf_decal/trimline/opaque/red/line{ + dir = 1 }, -/turf/open/floor/wood, -/area/outpost/operations) +/obj/effect/turf_decal/trimline/opaque/red/line, +/obj/machinery/door/airlock/security/glass{ + req_access_txt = "109"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4; + req_one_access_txt = "101" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/outpost/security) "TP" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -13120,6 +13308,9 @@ pixel_x = 6; pixel_y = 7 }, +/obj/item/radio/intercom/directional/north{ + pixel_x = -3 + }, /turf/open/floor/wood, /area/outpost/crew/bar) "Uo" = ( @@ -13252,19 +13443,17 @@ /turf/open/floor/plasteel/telecomms_floor, /area/outpost/crew/cryo) "UQ" = ( -/obj/machinery/door/poddoor/shutters/indestructible{ - name = "Showcase Storage" - }, -/obj/structure/barricade/wooden/crude{ - layer = 3.13 +/obj/effect/turf_decal/siding/wood{ + dir = 4 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 +/obj/structure/sign/poster/retro/nanotrasen_logo_80s{ + pixel_y = 32 }, -/turf/open/floor/plating{ - icon_state = "platingdmg1" +/obj/structure/cable{ + icon_state = "4-8" }, -/area/outpost/maintenance/fore) +/turf/open/floor/concrete/tiles, +/area/outpost/crew/garden) "US" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, @@ -13510,6 +13699,18 @@ /obj/effect/turf_decal/corner/opaque/blue/full, /turf/open/floor/plasteel/white, /area/outpost/medical) +"VF" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/carpet/nanoweave, +/area/outpost/crew/canteen) "VI" = ( /obj/machinery/light/small/directional/south, /obj/structure/chair{ @@ -13523,11 +13724,14 @@ /turf/open/floor/plating/rust, /area/outpost/maintenance/fore) "VK" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - req_access_txt = "109" +/obj/effect/landmark/outpost/elevator_machine{ + shaft = "4" }, -/turf/open/floor/concrete/reinforced, -/area/outpost/maintenance/aft) +/obj/machinery/door/airlock/public/glass{ + dir = 4 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/outpost/hallway/fore) "VL" = ( /obj/machinery/gibber, /obj/effect/decal/cleanable/dirt, @@ -13539,18 +13743,6 @@ "VN" = ( /turf/open/floor/engine, /area/outpost/crew/cryo) -"VQ" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/outpost/operations) "VT" = ( /obj/effect/turf_decal/industrial/warning{ dir = 4 @@ -13727,13 +13919,16 @@ /turf/open/floor/plasteel/patterned/grid, /area/outpost/hallway/fore) "WE" = ( -/obj/machinery/door/airlock/freezer, -/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, -/area/outpost/hallway/central) +/obj/structure/flora/grass/jungle, +/obj/machinery/light/directional/north, +/turf/open/floor/grass, +/area/outpost/crew/garden) "WI" = ( -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor, -/area/outpost/crew/canteen) +/obj/machinery/door/airlock/wood/glass{ + dir = 8 + }, +/turf/open/floor/wood, +/area/outpost/vacant_rooms/office) "WJ" = ( /obj/effect/turf_decal/siding/wood{ dir = 10 @@ -13771,12 +13966,12 @@ /turf/open/floor/plasteel/tech, /area/outpost/hallway/fore) "WT" = ( -/obj/machinery/door/airlock/maintenance_hatch, -/obj/structure/cable{ - icon_state = "4-8" +/obj/structure/table/reinforced, +/obj/machinery/microwave{ + pixel_y = 5 }, -/turf/open/floor/plasteel/tech, -/area/outpost/hallway/fore) +/turf/open/floor/plasteel/showroomfloor, +/area/outpost/crew/library) "WU" = ( /obj/structure/table/wood, /obj/item/storage/photo_album/library{ @@ -13802,12 +13997,12 @@ /turf/open/floor/plasteel/patterned/grid, /area/outpost/hallway/fore) "WY" = ( -/obj/effect/decal/cleanable/cobweb, -/obj/machinery/door/airlock/maintenance_hatch, -/turf/open/floor/plating{ - icon_state = "panelscorched" +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/item/radio/intercom/directional/north{ + pixel_x = -3 }, -/area/outpost/maintenance/aft) +/turf/open/floor/plasteel/mono/dark, +/area/outpost/cargo) "WZ" = ( /turf/open/floor/plating, /area/outpost/maintenance/aft) @@ -13938,15 +14133,16 @@ /turf/open/floor/wood, /area/outpost/crew/library) "Xz" = ( -/obj/effect/turf_decal/techfloor/orange{ - dir = 1 +/obj/structure/table/reinforced, +/obj/item/modular_computer/laptop/preset/civilian{ + pixel_y = 6 }, -/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, /obj/item/radio/intercom/directional/north{ - pixel_y = 20 + pixel_x = -3 }, -/turf/open/floor/plasteel/tech/grid, -/area/outpost/engineering) +/turf/open/floor/plasteel/dark, +/area/outpost/security) "XA" = ( /obj/structure/bookcase/random/fiction, /obj/item/candle/infinite{ @@ -14149,7 +14345,6 @@ dir = 1 }, /obj/item/radio/intercom/directional/south, -/obj/machinery/firealarm/directional/south, /turf/open/floor/plasteel/sepia, /area/outpost/crew/library) "Yo" = ( @@ -14214,6 +14409,11 @@ /obj/structure/catwalk/over/plated_catwalk, /turf/open/floor/plating, /area/outpost/maintenance/fore) +"Yw" = ( +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/plasteel/mono/dark, +/area/outpost/cargo) "Yy" = ( /obj/effect/turf_decal/techfloor, /obj/effect/turf_decal/trimline/transparent/lightgrey/line{ @@ -14479,7 +14679,6 @@ /obj/effect/turf_decal/siding/wood{ dir = 1 }, -/obj/machinery/light/directional/north, /obj/structure/sign/logo{ icon_state = "nanotrasen_sign4"; pixel_y = 32 @@ -14589,7 +14788,10 @@ dir = 1 }, /obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/ert, +/obj/machinery/door/poddoor/ert{ + id = "outpost_security_desk"; + desc = "A heavy duty blast door." + }, /turf/open/floor/plasteel/tech/techmaint, /area/outpost/security) "ZE" = ( @@ -14738,12 +14940,15 @@ /turf/open/floor/grass, /area/outpost/hallway/fore) "ZR" = ( -/obj/effect/turf_decal/siding/wood{ +/obj/structure/chair/sofa/corner{ dir = 4 }, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/concrete/slab_3, -/area/outpost/hallway/starboard) +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/wood, +/area/outpost/crew/library) "ZS" = ( /obj/effect/turf_decal/techfloor{ dir = 1 @@ -14773,29 +14978,14 @@ /turf/open/floor/plasteel/sepia, /area/outpost/crew/library) "ZX" = ( -/obj/effect/turf_decal/siding/wideplating/dark{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wideplating/dark, -/obj/effect/turf_decal/trimline/opaque/red/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/red/line, -/obj/machinery/door/airlock/security{ - req_access_txt = "101" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/door/airlock/maintenance_hatch{ + dir = 8 }, -/obj/structure/cable{ - icon_state = "4-8" +/turf/open/floor/plating{ + icon_state = "panelscorched" }, -/obj/machinery/door/poddoor/ert, -/turf/open/floor/plasteel/dark, -/area/outpost/security) +/area/outpost/maintenance/aft) "ZY" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -14847,11 +15037,6 @@ vV vV vV vV -MF -MF -MF -MF -MF vV vV vV @@ -14882,8 +15067,6 @@ vV vV vV vV -"} -(2,1,1) = {" vV vV vV @@ -14913,13 +15096,6 @@ vV vV vV vV -MF -MF -Kv -tJ -Qe -MF -MF vV vV vV @@ -14949,11 +15125,12 @@ vV vV vV vV -"} -(3,1,1) = {" vV vV vV +"} +(2,1,1) = {" +vV vV vV vV @@ -14962,12 +15139,6 @@ vV vV vV vV -Zp -Zp -Zp -Zp -Zp -Zp vV vV vV @@ -14979,15 +15150,6 @@ vV vV vV vV -MF -MF -EB -Qd -fK -fK -fQ -MF -MF vV vV vV @@ -15016,8 +15178,6 @@ vV vV vV vV -"} -(4,1,1) = {" vV vV vV @@ -15027,36 +15187,11 @@ vV vV vV vV -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp vV vV vV vV vV -Zp -Zp -Zp -Zp -Mx -rd -wt -fK -Qd -Qd -SL -yJ -Mx -Zp -Zp vV vV vV @@ -15083,8 +15218,6 @@ vV vV vV vV -"} -(5,1,1) = {" vV vV vV @@ -15093,39 +15226,7 @@ vV vV vV vV -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp vV -Zp -Zp -Zp -Zp -Zp -Zp -Mx -lD -uw -ot -Qd -vu -uw -ot -Mx -aL -aL -Zp -Zp vV vV vV @@ -15151,7 +15252,26 @@ vV vV vV "} -(6,1,1) = {" +(3,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV vV vV vV @@ -15160,40 +15280,6 @@ vV vV vV vV -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Mx -AC -EJ -Po -fK -zR -nA -FM -Mx -cL -aL -aL -aL -Zp vV vV vV @@ -15217,8 +15303,6 @@ vV vV vV vV -"} -(7,1,1) = {" vV vV vV @@ -15226,44 +15310,6 @@ vV vV vV vV -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Mx -Zl -dM -od -fK -qX -BY -Vp -Gh -BX -Ap -EZ -aL -aL -Zp -Zp -Zp vV vV vV @@ -15284,8 +15330,6 @@ vV vV vV vV -"} -(8,1,1) = {" vV vV vV @@ -15293,48 +15337,6 @@ vV vV vV vV -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Mx -kk -mn -Pi -tz -Oo -LV -lh -Mx -yP -iN -iN -uV -aL -Zp -Zp -Zp -Zp -Zp -Zp -Zp vV vV vV @@ -15351,58 +15353,12 @@ vV vV vV vV -"} -(9,1,1) = {" vV vV vV vV vV vV -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -TJ -TJ -TJ -TJ -TJ -TJ -Mx -Mx -Mx -PA -Kp -PA -Mx -Mx -Mx -cL -cL -cL -Tv -cL -cL -aL -Zp -Zp -Zp -Zp -Zp -Zp vV vV vV @@ -15419,58 +15375,46 @@ vV vV vV "} -(10,1,1) = {" +(4,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV vV vV vV vV vV vV -Zp -Zp -Zp -Zp -Zp -Zp -Zp -wH -lJ -wH -wH -lJ -OP -OP -Zp -TJ -TJ -qj -yc -Ja -gu -Wj -re -dE -Tn -Qp -Iz -gN -Tn -AF -Pm -rf -pt -cL -tQ -Xp -RV -Fe -Zp -Zp -Zp -Zp -Zp -Zp -Zp vV vV vV @@ -15485,62 +15429,11 @@ vV vV vV vV -"} -(11,1,1) = {" vV vV vV vV vV -Zp -Zp -HY -sN -sN -sN -Zp -OP -wH -RO -xD -xf -eX -zu -OP -Zp -TJ -xH -ta -MQ -sd -Cd -Cd -Cd -RE -Cd -Gc -Wi -cm -Tn -xO -OV -Js -ay -bX -Lf -cL -lL -Ll -Zp -Zp -Zp -Zp -Zp -Zp -Zp -aW -aW -aW vV vV vV @@ -15552,63 +15445,10 @@ vV vV vV vV -"} -(12,1,1) = {" vV vV vV vV -Zp -Zp -Zp -sN -Ft -sN -HY -Zp -OP -LS -eW -eW -eW -Nz -PH -wH -Zp -TJ -BI -qW -xy -Ze -EH -pz -pz -pz -pz -Dp -jn -TS -Tn -df -OV -DU -zP -cL -uq -cL -BS -cL -gS -Zp -Zp -Zp -Zp -Zp -Zp -ak -aW -aW -aW vV vV vV @@ -15619,64 +15459,11 @@ vV vV vV vV -"} -(13,1,1) = {" vV vV vV vV -Zp -Zp -HY -sN vV -Ft -Ft -Zp -wH -tl -yb -zu -eW -Ra -ip -wH -wH -wH -wH -va -yO -wy -Kh -Ff -yh -DJ -Nd -zI -LG -yX -YO -ob -eO -RT -TJ -cL -Gz -cL -WY -cL -aL -cL -cL -aL -aL -Zp -cL -cL -qy -cL -aW -aW vV vV vV @@ -15686,65 +15473,11 @@ vV vV vV vV -"} -(14,1,1) = {" vV vV vV -Zp -Zp -Zp -sN vV vV -cb -Ft -OP -wH -wH -wH -we -wH -lJ -wH -wH -Zi -jQ -wH -WC -WC -WC -WC -WC -WC -WC -Dk -jI -Zc -HA -xU -TJ -TJ -TJ -TJ -hX -uj -hJ -eI -bG -nc -cL -uo -Fn -aL -aL -cL -WZ -WZ -cL -aW -aW -Zp vV vV vV @@ -15753,65 +15486,9 @@ vV vV vV vV -"} -(15,1,1) = {" vV vV vV -Zp -Zp -Zp -HY -Ft -dx -YE -hH -DD -kc -sn -sg -yD -Dw -PB -uJ -lJ -wa -JY -aD -WC -mA -Uk -ze -dv -hp -WC -TJ -vO -gk -mW -WJ -Pa -wn -NP -TJ -cL -cL -cL -Bs -KD -aw -cL -fV -RX -Rt -aL -cL -QY -WZ -cL -aW -Zp -Zp vV vV vV @@ -15821,65 +15498,61 @@ vV vV vV "} -(16,1,1) = {" +(5,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV vV vV -Zp -Zp -Zp -Zp -HY -HY -Ft -hH -hH -nP -wB -vf -GO -jo -Hk -GH -UA -wH -Oq -Il -Nq -WC -Ez -uv -dr -Bj -mv -GS -bP -Gr -GB -zz -wF -EP -xh -Tz -TJ -hZ -VL -cL -Br -iN -ly -cL -DH -PN -PO -iH -cL -cL -pm -cL -Zp -Zp -Zp -Zp vV vV vV @@ -15887,66 +15560,7 @@ vV vV vV vV -"} -(17,1,1) = {" vV -Zp -Zp -Zp -AB -Zp -Zp -Zp -Zp -Zp -Zp -OP -lJ -UQ -CL -zQ -lJ -hE -hE -wH -wH -we -wH -WC -Tt -ge -nX -Tm -un -sQ -LK -BG -Ij -zz -Lj -Ju -xh -Sn -WE -El -Og -cL -pG -sX -Tc -cL -rc -xA -cL -cL -cL -Dt -QB -cL -cL -Zp -Zp -Zp vV vV vV @@ -15954,66 +15568,7 @@ vV vV vV vV -"} -(18,1,1) = {" vV -Zp -Zp -gv -AB -Re -Zp -Zp -Zp -Zp -wH -wH -wH -vy -zv -IE -vE -LP -xY -SH -Jf -Oh -ha -WC -ae -Ep -Xb -Kg -yI -DS -wJ -Px -er -Ua -RY -zB -oo -JE -TJ -El -LM -cL -ar -lI -cL -cL -jl -lM -cL -Sp -Xw -yn -uV -im -cL -cL -Zp -Zp vV vV vV @@ -16021,2680 +15576,13820 @@ vV vV vV vV -"} -(19,1,1) = {" vV -Zp -Zp -mc -Gv -AB -Zp -Zp -Zp -wH -lJ -oH -eR -Yo -he -CZ -xM -Cj -xd -RZ -UT -Jv -cM -te -IF -lR -aE -ZZ -YJ -GS -Fd -Dp -Ev -GT -TJ -TJ -TJ -TJ -TJ -PC -qI -cL -CF -cL -cL -mh -bR -ar -QH -tD -bR -yp -iN -Dy -gH -cL -cL -Zp -Zp vV vV vV vV vV vV -"} -(20,1,1) = {" vV -Zp -Zp -xk -Os -yj -Zp -Zp -Zp -OP -Ci -UG -nH -xV -wH -lJ -wH -Rp -Rp -Rp -Rp -Rp -gM -WC -il -iE -si -si -qT -WC -TJ -vO -Ev -mt -Tn -SR -QW -Gi -TJ -TJ -cL -cL -rk -rk -bR -bR -iW -fJ -cL -Hy -IB -bq -zH -KW -To -sl -cL -cL -Zp vV vV vV vV vV vV -"} -(21,1,1) = {" vV -Zp -Zp -ck -KY -Zp -Zp -Zp -Zp -OP -Mb -UG -lz -wH -wH -fF -ev -Rp -AE -AE -CG -Rp -hb -WC -Un -hK -OM -OM -Bw -WC -OU -Qp -Ev -Zz -Tn -lf -Kb -Rd -If -Ds -cL -mH -Sm -UK -yr -qF -Qw -Rx -Rx -Rx -Rx -Rx -Rx -Rx -fM -sF -yE -cL -Zp -Zp -Zp vV vV vV vV -"} -(22,1,1) = {" vV -Zp -Zp -Zp -OP -OP -OP -OP -OP -wH -TZ -UG -wH -wH -ng -Lw -BB -Rp -AE -AE -AE -Rp -Rp -WC -WC -WC -fb -hk -kx -WC -PV -Qp -jh -Jm -AD -nU -eg -dF -kT -wR -vw -vw -vw -cL -VK -cL -Rx -Rx -uR -wW -NQ -IS -Fm -Rx -Rx -ef -cL -cL -cL -Zp -Zp -Zp vV vV vV -"} -(23,1,1) = {" vV vV -Zp -OP -OP -Zy -JC -CV -aJ -wH -Uu -eR -Ay -ai -SK -Yz -NC -Rp -AE -AE -AE -Rp -Lv -Ex -wQ -WC -WC -WC -WC -WC -TJ -iR -SF -bk -Tn -gm -NW -Zt -vw -vw -vw -vx -vx -Wq -Mq -uk -Rx -uR -de -Gu -Bu -UP -kZ -Fm -Rx -Mi -hd -dh -aL -Zp -Zp -Zp -Zp vV vV -"} -(24,1,1) = {" vV vV vV -Gq -ka -ok -Ob -nv -zF -wH -ml -Xs -wH -gz -cW -yK -vY -Rp -Rp -vG -Rp -Rp -LQ -uX -Ex -MD -Gx -Gx -Gx -Gx -TJ -gL -gk -Zz -Tn -pD -Pf -Ql -vw -vx -vx -vx -pL -Ed -fc -fc -Rx -xp -LF -kB -wK -HI -pq -qm -Rx -zY -qQ -aL -aL -Zp -Zp -Zp -Zp vV vV -"} -(25,1,1) = {" vV vV vV -wH -ea -jG -jG -Cn -eW -kH -FL -lX -Rp -Rp -Rp -Rp -Rp -Rp -Ww -fn -PP -Rp -KU -KU -KU -Rp -Rp -Rp -Rp -Gx -TJ -Lh -ir -HA -TJ -TJ -TJ -vw -vw -vx -cr -cr -cr -RK -cr -RK -Rx -Pl -Oe -Zu -yN -wl -Ou -oh -Rx -Rx -Rx -Rx -Rx -Zp -Zp -Zp -Zp -Zp vV -"} -(26,1,1) = {" vV vV vV -wH -tF -Kx -hu -EY -nQ -wH -NI -KQ -Rp -AE -AE -AL -Rp -pC -Bb -kw -OC -qU -gR -WX -Ug -hh -At -Rp -Gx -Gx -TJ -qA -TH -Zz -sH -hM -TJ -vw -Vk -cr -cr -NX -cr -Xg -eH -bA -Rx -KG -PL -XS -EA -Pc -Yf -ZS -hW -rJ -Fu -Rx -Rx -Zp -Zp -Zp -Zp -Zp vV -"} -(27,1,1) = {" vV vV -Zp -OP -OP -Uv -vz -gM -Sd -wH -Vy -GY -Rp -AE -AE -AE -XY -Yi -Ko -vZ -vZ -ga -ga -tX -vZ -MA -eZ -Rp -qZ -jg -TJ -Zn -gk -TS -JX -xu -Zs -vw -eH -bA -Ox -eH -eH -kz -aA -ZY -Rx -Na -Se -HT -JM -pE -js -cR -hW -CK -rA -MC -Rx -Zp -Zp -Zp -Zp -Zp vV -"} -(28,1,1) = {" vV -Zp -Zp -Zp -OP -OP -OP -OP -we -wH -Te -qw -Rp -AE -AE -AE -Rp -lH -Ko -vZ -ur -AM -AM -oK -vZ -MA -vS -Rp -Rp -WT -TJ -vW -Fq -IW -Mc -yQ -za -vw -jm -fL -fL -mJ -mJ -mJ -XT -fT -Rx -Rx -XV -eC -eC -eC -gC -hW -hW -pZ -Rm -Vb -Rx -Zp -Zp -Zp -Zp -Zp -Zp "} -(29,1,1) = {" -Zp -Zp -Zp -Zp -Zp -Zp -OP -mS -aF -wH -Xu -Ud -Rp -Rp -Rp -Rp -Rp -aV -Ko -vZ -Ik -wM -zZ -uZ -OK -rj -YS -Rp -sJ -sz -ZB -Rw -Gk -Ny -Cd -Cd -Kj -vw -Hv -Oc -Ol -Ol -Ol -Ol -sP -XB -zL -Rx -ra -NJ -HO -NJ -fX -hW -TA -ru -nY -je -Rx -Zp -Zp -Zp -Zp -Zp -Zp +(6,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(7,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(8,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(9,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(10,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(11,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(12,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(13,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(14,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(15,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(16,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(17,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(18,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(19,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(20,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(21,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(22,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(23,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(24,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Ow +Ow +Ow +Ow +Ow +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(25,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Ow +Ow +Kv +tJ +Qe +Ow +Ow +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(26,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Ow +Ow +EB +Qd +fK +fK +fQ +Ow +Ow +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(27,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +Zp +Zp +Zp +Zp +Mx +rd +wt +fK +Qd +Qd +SL +yJ +Mx +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(28,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +vV +Zp +Zp +Zp +Zp +Zp +Zp +Mx +lD +uw +ot +Qd +vu +uw +ia +Mx +aL +aL +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(29,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Mx +AC +EJ +Po +fK +zR +nA +FM +Mx +cL +aL +aL +aL +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV "} (30,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Mx +Zl +dM +od +fK +qX +BY +Vp +Gh +BX +Ap +EZ +aL +aL +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(31,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Mx +kk +mn +Pi +tz +Oo +LV +lh +Mx +yP +iN +iN +uV +aL +Zp +Zp +Zp +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(32,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +TJ +TJ +TJ +TJ +TJ +TJ +Mx +Mx +Mx +Mx +lM +Mx +Mx +Mx +Mx +cL +cL +cL +Tv +cL +cL +aL +Zp +Zp +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(33,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +Zp +Zp +Zp +Zp +wH +lJ +wH +wH +lJ +OP +OP +Zp +TJ +TJ +qj +yc +Ja +gu +Wj +re +dE +Tn +cw +Iz +gN +Tn +AF +Pm +rf +pt +cL +tQ +Xp +RV +Fe +Zp +Zp +Zp +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(34,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +HY +sN +sN +sN +Zp +OP +wH +RO +xD +xf +eX +zu +OP +Zp +TJ +xH +ta +MQ +sd +Cd +Cd +Cd +RE +Cd +Gc +Wi +cm +Tn +xO +OV +Js +ay +bX +Lf +cL +lL +Ll +Zp +Zp +Zp +Zp +Zp +Zp +Zp +aW +aW +aW +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(35,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +sN +Ft +sN +HY +Zp +OP +LS +eW +eW +eW +Nz +PH +wH +Zp +TJ +BI +qW +xy +Ze +EH +pz +pz +pz +pz +Dp +jn +TS +Tn +df +OV +DU +zP +cL +uq +cL +BS +cL +gS +Zp +Zp +Zp +Zp +Zp +Zp +ak +aW +aW +aW +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(36,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +HY +sN +vV +Ft +Ft +Zp +wH +tl +yb +zu +eW +Ra +ip +wH +wH +wH +wH +va +yO +dA +Kh +Ff +yh +DJ +Nd +zI +LG +yX +YO +ob +eO +RT +TJ +cL +Gz +cL +qK +cL +aL +cL +cL +aL +aL +Zp +cL +cL +Ig +cL +aW +aW +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(37,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +sN +vV +vV +cb +Ft +OP +wH +wH +wH +HW +wH +lJ +wH +wH +Zi +jQ +wH +WC +WC +WC +WC +WC +WC +WC +PA +jI +Zc +HA +xU +TJ +TJ +TJ +TJ +hX +uj +hJ +eI +bG +nc +cL +uo +Fn +aL +aL +cL +WZ +WZ +cL +aW +aW +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(38,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +HY +Ft +dx +YE +hH +DD +kc +sn +sg +yD +Dw +PB +uJ +lJ +wa +JY +aD +WC +mA +Uk +ze +dv +Hu +WC +TJ +vO +gk +mW +WJ +Pa +wn +NP +TJ +cL +cL +cL +Bs +KD +aw +cL +fV +RX +Rt +aL +cL +QY +WZ +cL +aW +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(39,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +Zp +HY +HY +Ft +hH +hH +nP +wB +vf +GO +jo +Hk +GH +UA +wH +Oq +Il +Nq +WC +Ez +uv +dr +Bj +mv +GS +bP +Gc +GB +zz +wF +EP +xh +Tz +TJ +hZ +VL +cL +Br +iN +ly +cL +DH +PN +PO +iH +cL +cL +hy +cL +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(40,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +AB +Zp +Zp +Zp +Zp +Zp +Zp +OP +lJ +dN +yZ +lG +lJ +Gn +Gn +wH +wH +Dk +wH +WC +Tt +ge +nX +Tm +un +sQ +LK +BG +Ij +zz +Lj +Ju +xh +Sn +ae +El +Og +cL +pG +sX +Tc +cL +rc +xA +cL +cL +cL +Dt +QB +cL +cL +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(41,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +gv +AB +Re +Zp +Zp +Zp +Zp +wH +wH +wH +vy +zv +IE +vE +LP +xY +SH +Jf +Oh +ha +WC +Eb +Ep +Xb +Kg +yI +DS +wJ +Px +er +Ua +RY +zB +oo +JE +TJ +El +LM +cL +ar +lI +cL +cL +CH +jl +cL +Sp +Xw +yn +uV +im +cL +cL +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(42,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +mc +Gv +AB +Zp +Zp +Zp +wH +lJ +oH +eR +Yo +he +CZ +xM +Cj +xd +RZ +UT +Jv +cM +te +IF +lR +aE +ZZ +YJ +GS +Fd +Dp +Ev +GT +TJ +TJ +TJ +TJ +TJ +PC +qI +cL +ZX +cL +cL +mh +bR +ar +QH +tD +bR +yp +iN +Dy +gH +cL +cL +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(43,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +xk +Os +yj +Zp +Zp +Zp +OP +Ci +UG +nH +xV +wH +lJ +wH +Rp +Rp +Rp +Rp +Rp +gM +WC +il +iE +si +si +qT +WC +TJ +vO +Ev +mt +Tn +SR +QW +Gi +TJ +TJ +cL +cL +rk +rk +bR +bR +iW +fJ +cL +Hy +IB +bq +zH +KW +To +sl +cL +cL +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(44,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +ck +KY +Zp +Zp +Zp +Zp +OP +Mb +UG +lz +wH +wH +fF +ev +Rp +AE +AE +CG +Rp +hb +WC +Un +hK +OM +OM +Bw +WC +OU +Qp +Ev +Zz +Tn +lf +Kb +Rd +If +Ds +cL +mH +Sm +UK +yr +qF +Qw +Rx +Rx +Rx +Rx +Rx +Rx +Rx +fM +sF +yE +cL +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(45,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +OP +OP +OP +OP +OP +wH +TZ +UG +wH +wH +ng +Lw +BB +Rp +AE +AE +AE +Rp +Rp +WC +WC +WC +fb +hk +kx +WC +PV +Qp +jh +Jm +AD +nU +eg +dF +kT +wR +vw +vw +vw +cL +tV +cL +Rx +Rx +uR +wW +NQ +yF +Fm +Rx +Rx +ef +cL +cL +cL +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(46,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +OP +OP +Zy +JC +CV +aJ +wH +Uu +eR +Ay +ai +SK +Yz +NC +Rp +AE +AE +AE +Rp +Lv +Ex +wQ +WC +WC +WC +WC +WC +TJ +iR +SF +bk +Tn +gm +NW +Zt +vw +vw +vw +vx +vx +Wq +Mq +uk +Rx +uR +de +Gu +Bu +UP +kZ +Fm +Rx +Mi +hd +dh +aL +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(47,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Gq +ka +ok +Ob +nv +zF +wH +ml +Xs +wH +gz +cW +yK +vY +Rp +Rp +qL +Rp +Rp +LQ +uX +Ex +MD +Gx +Gx +Gx +Gx +TJ +gL +gk +Zz +Tn +pD +Pf +Ql +vw +vx +vx +vx +pL +Ed +fc +fc +Rx +xp +LF +kB +wK +HI +pq +qm +Rx +zY +qQ +aL +aL +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(48,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +wH +ea +jG +jG +Cn +eW +kH +FL +lX +Rp +Rp +Rp +Rp +Rp +Rp +Ww +fn +CL +Rp +KU +KU +KU +Rp +Rp +Rp +Rp +Gx +TJ +Lh +ir +HA +TJ +TJ +TJ +vw +vw +vx +cr +cr +cr +RK +cr +RK +Rx +Pl +Oe +Zu +yN +wl +Ou +oh +Rx +Rx +Rx +Rx +Rx +Zp +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(49,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +wH +tF +Kx +hu +EY +nQ +wH +NI +KQ +Rp +AE +AE +AL +Rp +pC +Bb +kw +OC +qU +gR +WX +Ug +hh +At +Rp +Gx +Gx +TJ +qA +TH +Zz +sH +hM +TJ +vw +Vk +cr +cr +NX +cr +Xg +eH +bA +Rx +KG +PL +XS +EA +Pc +Yf +ZS +hW +rJ +Fu +Rx +Rx +Zp +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(50,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +OP +OP +Uv +vz +gM +Sd +wH +Vy +GY +Rp +AE +AE +AE +XY +Yi +Ko +vZ +vZ +ga +ga +tX +vZ +MA +eZ +Rp +qZ +jg +TJ +Zn +gk +TS +JX +xu +Zs +vw +we +bA +Ox +eH +eH +kz +aA +ZY +Rx +Na +Se +HT +JM +pE +js +cR +hW +CK +rA +MC +Rx +Zp +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(51,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +OP +OP +OP +OP +HW +wH +Te +qw +Rp +AE +AE +AE +Rp +lH +Ko +vZ +ur +AM +AM +oK +vZ +MA +vS +Rp +Rp +QC +TJ +vW +Fq +IW +Mc +yQ +za +vw +rV +fL +fL +mJ +mJ +mJ +XT +fT +Rx +Rx +XV +eC +eC +eC +gC +hW +hW +pZ +Rm +Vb +Rx +Zp +Zp +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(52,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +Zp +Zp +Zp +OP +mS +aF +wH +Xu +Ud +Rp +Rp +Rp +Rp +Rp +aV +Ko +vZ +Ik +wM +zZ +uZ +OK +rj +YS +Rp +sJ +sz +Fh +Rw +Gk +Ny +Cd +Cd +Kj +vw +Hv +Oc +Ol +Ol +Ol +Ol +sP +XB +zL +Rx +ra +NJ +HO +NJ +fX +hW +TA +ru +nY +je +Rx +Zp +Zp +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(53,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +Zp +Zp +Zp +OP +sD +Pb +wH +CD +vB +AV +Hi +Dh +BV +Ei +sB +bv +zy +WB +fE +ZT +Uo +WS +up +WS +Io +EV +Hj +NG +iJ +MU +Sk +Sk +iJ +iJ +QK +KC +dp +zb +Bx +zb +zb +zb +Bx +Bx +MF +gn +ZN +RF +BL +PZ +PP +dg +Eq +VN +FG +Rx +Zp +Zp +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(54,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +Zp +Zp +OP +OP +Th +AW +wH +xF +wH +Rp +Rp +Rp +Rp +Rp +jT +Ko +vZ +Ik +vc +vN +OG +RH +wh +oS +Rp +rR +tp +ZB +Rw +rw +og +pz +pz +pz +vw +Fo +uI +rx +td +rx +rx +rx +jw +zL +Rx +Nh +dq +kt +GE +Tw +hW +Aa +IC +IC +NY +Rx +Zp +Zp +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(55,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +OP +OP +OP +lA +Ru +gl +Jw +UG +xm +Rp +AE +AE +pl +Rp +FD +Ko +vZ +UI +tf +tf +Vz +vZ +MA +At +Rp +xL +Ta +ez +hi +NH +hi +Xi +cp +Qm +vw +UQ +fv +fv +fv +fv +fv +xZ +RM +Rx +Rx +Nb +iB +iB +iB +Fm +hW +hW +Iy +ts +ci +Rx +Zp +Zp +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(56,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +OP +UZ +SN +Yj +HG +jD +wH +oE +zs +Rp +AE +AE +AE +cq +HH +Ko +vZ +vZ +ga +ga +Vz +vZ +MA +eZ +Rp +ZQ +OJ +QP +zz +gk +zz +ZG +Ec +Wd +vw +sL +XH +qz +et +et +eb +dC +FN +Rx +bC +de +Gu +Bu +UP +kZ +Fm +hW +DP +rA +rO +Rx +Zp +Zp +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(57,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +OP +UW +UG +HG +NM +wH +wH +wH +wH +Rp +AE +AE +AE +Rp +Vi +Ui +WD +Qy +nb +Ok +hP +KX +Wu +aH +Rp +Rp +xa +Hx +Dp +GB +Ua +Kk +lt +TJ +vw +WE +cr +cr +zO +cr +Yt +et +XH +Rx +bO +LF +kB +wK +HI +pq +ZS +hW +Cc +nT +Rx +Rx +Zp +Zp +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(58,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +wH +bQ +iM +vv +hj +hj +Gr +BD +hg +Rp +Rp +Rp +Rp +Rp +Rp +vT +NF +VV +Rp +qd +Qb +Pp +DZ +Rp +QT +QT +QT +QT +xQ +Ev +HA +It +WI +It +vw +vw +Qu +cr +na +KL +wf +Ew +vx +Rx +Pl +Oe +Zu +yN +wl +Ou +oh +Rx +Rx +Rx +Rx +hc +Zp +Zp +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(59,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +wH +wH +xF +wH +hj +Gr +Cp +Yr +LX +wY +an +Yh +px +xW +Rp +Rp +VK +Rp +QT +QT +JP +QT +QT +QT +EU +NV +Bi +Ho +Oa +Ev +mt +It +mE +nk +bJ +vw +vx +vx +cr +cr +vx +vx +vx +Rx +xp +PL +XS +EA +Pc +Yf +BQ +Rx +Uh +fl +Nr +Nr +Zp +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(60,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +wH +wH +CJ +iY +VI +hj +lg +SP +IY +Jc +GQ +CC +sU +ie +wz +Rp +AE +AE +Jb +QT +nn +nn +nn +QT +wL +Rl +by +TT +xs +Qp +xT +bY +RA +yi +fp +wy +vw +vw +vx +vx +vx +vx +vx +vx +Rx +qO +Se +jE +JM +pE +js +gC +Rx +jU +Lx +Vh +Nr +Zp +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(61,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +wH +Wo +uP +Yv +BN +hj +Gr +EO +LJ +qN +wY +Lr +Vu +Pv +YM +Rp +AE +AE +AE +QT +nn +nn +nn +QT +Wc +di +vm +eS +Bm +Co +Ev +Zz +It +BJ +dL +GR +vK +vw +vw +vw +vw +po +po +po +Rx +Rx +Na +mR +mk +eC +gC +Rx +Rx +Nr +Kp +Nr +Nr +Zp +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(62,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +wH +qe +Fs +wH +wH +hj +hj +Gr +DR +NO +hj +hj +yl +Fy +hj +Rp +AE +AE +AE +QT +nn +nn +nn +QT +ps +Ee +Ee +Ee +QT +Nu +jh +QS +It +jX +TP +Si +rQ +It +Gd +mp +Ey +po +Bg +fo +nz +Rx +Rx +Rx +Rx +Rx +Rx +Rx +fB +vJ +cn +Zv +Nr +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(63,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +wH +LN +nt +pU +uE +jC +pU +pU +pU +pU +pU +zD +HL +OE +jZ +Rp +Rp +Rp +Rp +QT +vG +vG +vG +QT +QT +QT +AS +QT +QT +rl +Ev +Or +It +wN +lB +Si +uL +dR +dR +dR +fk +po +kF +VC +lK +po +Mo +uQ +cf +bV +gI +Za +Nr +Nr +cn +ZV +Nr +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(64,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +wH +wH +HG +pU +pT +Eg +NK +cC +Jp +Lp +pU +vl +Iu +UL +OI +hj +en +wV +hj +fR +Qz +Xf +lN +nj +Qz +kf +Qz +Ns +QT +Uc +Ev +CW +It +It +xC +WU +FT +tK +QR +QR +vM +po +Kd +qx +nJ +po +xI +UC +ZC +oA +Am +mI +Sx +pX +eu +tP +Nr +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(65,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +UM +By +db +Xt +Lz +ry +ry +YP +dT +Qv +Mf +ty +qi +tb +NL +QO +RS +WL +WL +RS +eL +kO +kO +JZ +Ro +Uy +Tk +kO +Zh +yL +fr +ve +Zz +QG +It +nE +Jq +ZO +It +XA +zM +Gd +po +Gj +aB +rU +po +Zk +Mw +Gt +cG +Mw +In +gA +LD +mY +Nr +Nr +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(66,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +HY +HY +wH +wH +pU +aq +Fp +jb +Kw +tO +Et +pU +zl +wg +vI +ZE +hj +da +OR +hj +aC +iT +iT +ys +jv +gh +zi +Ac +MX +QT +vO +GB +mP +TJ +It +It +It +It +It +It +It +It +po +mu +fA +oq +po +LC +IL +le +pg +mx +Za +GA +MK +Vv +Nr +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(67,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +HY +Zp +Zp +pU +aq +Fp +pU +HE +aZ +TW +pU +kq +Dm +hj +hj +hj +hj +hj +hj +QT +QT +AS +QT +QT +QT +QT +QT +QT +QT +RB +gk +Zz +vC +Me +pj +oC +ep +vC +pv +Ca +QN +po +po +rs +po +po +Za +Za +Za +Za +Za +Za +Za +AT +rT +Nr +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(68,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +pU +pU +pU +pU +eU +tO +JS +pU +pU +pU +gP +Vr +BA +sR +gP +ba +DL +FC +IJ +cB +gP +dj +dj +dj +dj +Gy +Qp +gk +mW +Ub +Dg +Cl +Dg +bB +vC +mr +mr +mr +Zm +la +MM +mr +Nr +Rz +zj +Db +nh +YR +fG +fG +Nj +Xy +Nr +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(69,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +Zp +pU +vD +Vm +my +LO +CE +Vm +QU +pU +Qq +AK +sR +sR +gP +ua +sI +mZ +IJ +IJ +gP +dj +dj +dj +Xm +Ak +Qp +uH +Px +uf +aU +GU +FQ +FA +Ag +xK +su +Ng +Yp +Yp +CN +Yp +Em +YG +vQ +fg +EM +Ax +JK +rL +Es +jz +Nr +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(70,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +Zp +pU +rP +Vm +my +LO +CE +Vm +qc +pU +dX +Pk +Rc +tm +st +lT +gy +wZ +XQ +CA +gP +TJ +TJ +TJ +kd +AN +Qp +gk +Ua +yW +PR +PR +VA +PF +vC +Fi +Ux +KM +RG +RP +iG +Rr +Nr +Sh +ON +ON +Nc +XK +ZW +us +Ts +Yl +Nr +Zp +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(71,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +Zp +pU +vD +Vm +my +mz +ye +Vm +QU +pU +dU +Td +gx +sR +gP +zQ +wc +xE +XP +eQ +jj +qy +uG +Ib +ut +ut +Gc +Ev +cv +vC +dB +KA +iG +Yb +vC +bn +Ef +sA +ex +Nn +Qf +Nn +Nr +ZR +QM +ro +pN +XK +jf +Al +BT +Rj +Nr +Zp +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(72,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +Zp +pU +pU +pU +pu +mz +zV +pU +pU +pU +Ji +go +Zb +Hq +gP +ee +Vs +VF +ZJ +bL +oa +cj +Iv +Iv +Iv +Iv +wJ +XD +Wn +Mt +Mt +Mt +cX +Mt +Mt +lS +Mg +TR +ex +RR +Ln +oI +Nr +Cw +fq +gB +Au +Fz +iu +pJ +Nm +gT +Nr +Zp +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(73,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +Zp +pU +lr +Vm +my +mz +ye +Vm +QA +pU +gP +BC +gP +gP +gP +AR +JB +gP +gP +gP +gP +TJ +dj +UU +QD +jF +Qp +Ev +Zz +Mt +yG +zo +tt +bt +Mt +ic +Zw +vd +kl +aI +Ln +oI +Nr +sv +mG +aR +Nc +kA +Nr +Nr +Nr +Nr +Nr +Zp +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(74,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +Zp +pU +ui +Vm +my +mz +ye +Vm +qp +pU +Hh +pr +vq +gP +Sz +Nw +ff +AA +zG +tY +gP +dj +dj +dj +VM +tE +Qp +Ev +Zz +Mt +Xz +En +QL +XW +Mt +Mt +ex +ex +ex +Nn +Qf +Nn +Nr +Nr +yB +Md +pN +Fw +Nr +hp +rh +WT +Nr +Zp +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(75,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +Zp +pU +lr +Vm +my +mz +ye +Vm +QA +pU +OA +IJ +tv +rZ +AA +Nw +ff +gK +tA +xv +gP +Rq +Rq +Rq +Rq +gs +vo +tr +jL +Mt +Mn +zf +rv +ki +RJ +Mt +Ab +Ab +Ab +bx +qu +mb +cS +Nr +of +qb +xR +MR +BF +II +rE +qg +Nr +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(76,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +Zp +pU +pU +pU +Yy +mz +ig +pU +pU +pU +XC +IJ +tv +jc +AA +iQ +bu +gK +UY +tN +UD +DE +Rq +Rq +Rq +gs +xo +EF +iD +Mt +Mt +Aj +LI +ki +rD +Mt +Ab +Ab +Ab +ZK +Zf +jY +cS +Nr +rB +Vq +ca +LZ +bU +Qj +Sw +gF +Nr +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(77,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +pU +Di +Vm +my +mz +PE +Vm +tj +pU +NA +tG +tv +yV +AA +AA +TQ +Ni +xr +oZ +UD +cJ +cJ +Rq +Rq +gs +zq +MP +fy +ZD +tZ +wp +jK +EW +rW +Mt +Ab +Ab +Ab +jx +IH +jY +cS +Nr +fj +YF +ca +cU +sT +DO +CF +Ih +Nr +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(78,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +pU +BH +Vm +MZ +Ck +ye +Vm +tj +pU +vk +TL +IJ +uc +AA +GC +mD +oD +oD +pI +UD +bb +CQ +gO +Rq +gs +Ya +MP +fy +lb +Du +OF +qG +uU +Mt +Mt +Nn +Nn +Nn +Nn +GK +jY +Nn +Nr +Of +Hp +ca +Eh +Nr +GD +qo +Nr +Nr +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(79,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +pU +Tu +Vm +ke +hO +bW +Vm +tj +pU +gP +Lg +IJ +gP +zS +fP +aN +AA +Pt +GC +UD +av +Mk +CQ +Rq +gs +Kz +uD +oN +Mt +Mt +Mt +TN +Mt +Mt +NR +EC +cF +WP +Df +xe +Kf +ow +Nr +Nr +Nr +fZ +Nr +Nr +Nr +Nr +Nr +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(80,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +pU +pU +pU +Vm +UX +Vm +pU +pU +pU +gP +gP +gP +gP +Iq +hD +AA +gK +on +SW +UD +VT +Oi +kI +Rq +gs +KV +uD +fy +mj +GW +Ge +tt +Vg +Mt +Od +Od +Od +ZM +Wz +jB +YT +iL +uS +Nr +wq +wq +wq +Nr +Zp +Zp +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(81,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +pU +bd +bd +NZ +bd +bd +pU +Ad +gP +vr +Sa +gP +Wx +dQ +GC +gK +hF +GG +gP +dO +gs +gs +gs +gs +ZH +tr +fy +mj +YH +KT +LI +JH +Mt +Od +Od +bH +ZM +Wz +jB +YT +iL +eM +Nr +wq +wq +wq +Nr +Zp +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(82,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +pU +bd +bd +wk +bd +bd +pU +Ad +gP +fO +hE +HD +mq +HJ +lx +gK +ST +MO +gP +wE +GL +Ot +ja +Vn +ct +uD +Vc +Mt +Mt +Mt +pR +sV +Mt +YX +uu +ft +ft +kY +bw +cK +Zd +OX +Nr +wq +wq +wq +Nr +Zp +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(83,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +pU +pU +pU +pU +pU +pU +pU +wS +gP +gP +gP +wS +wS +wS +gP +gP +gP +gP +gP +gP +gP +SX +Qo +wu +wu +kR +fN +mj +GW +Ge +fu +GI +Mt +Yw +Od +bH +ZM +Xo +yo +YT +Zd +hA +Nn +Nn +Nn +Nn +Nn +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(84,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Ft +Ft +lY +Bf +EN +wS +wS +Nf +iv +Jt +wS +Ad +Ad +Ad +Kn +Ad +Ad +Ad +Ad +Ad +Ad +Ad +wS +oc +Tp +eh +IS +lq +RC +mj +YH +KT +dw +Zr +Mt +WY +bH +ZF +Oy +bj +BR +om +ce +uS +Nn +aO +Pd +qv +Nn +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(85,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Ft +Zp +lY +Bf +EN +RD +gU +Ty +tI +mF +wS +wS +wS +wS +Gs +wS +wS +wS +wS +wS +Ad +Ad +wS +OQ +MP +fy +FU +FU +FU +FU +FU +FU +Gw +FU +FU +YX +ft +rN +uu +Wz +Fx +dd +VZ +ms +rX +PY +oL +sM +Nn +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(86,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +lY +Bf +EN +RD +XI +Cs +FV +ne +JO +BE +Cv +UO +ej +pm +Lo +jR +Ai +wS +wS +wS +wS +wC +tr +Vc +FU +du +Lu +jJ +YN +EE +gJ +rG +FU +Od +bH +Od +ZM +Xo +wj +no +ym +nF +Hb +PX +Xh +Rk +Nn +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(87,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +HY +lY +Bf +EN +RD +zm +Vl +PG +hI +sx +uK +DV +wT +kP +jm +gd +Rg +Cy +wI +aS +FR +pK +Ya +pe +TC +gW +bS +bS +jV +gw +hV +gV +Rn +FU +Od +Od +Od +ZM +Xo +cK +cK +iL +xw +Nn +lZ +Xh +kJ +Nn +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(88,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +HY +HY +lY +Bf +EN +wS +Op +GJ +tC +Gm +hx +US +Mp +KP +vs +ag +Yq +Rg +kM +SB +Wp +oJ +op +IP +kR +oG +gW +bS +bS +jV +ny +ny +iX +Rn +FU +nZ +hQ +ei +ei +CU +Vx +Xv +ti +uS +Nn +tW +LE +Nn +Nn +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(89,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Ft +HY +lY +Bf +EN +RD +IZ +Vl +bg +Rf +dD +oX +TF +nC +SE +HS +zK +US +iz +wI +DF +xt +pK +KV +jP +jL +FU +mN +JJ +Ao +yA +YZ +az +FU +FU +Nn +Nn +Nn +Nn +zn +zn +zn +zn +Nn +Nn +Nn +Nn +Nn +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(90,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Ft +Zp +lY +Bf +EN +RD +As +eP +Ia +Az +QI +Ce +Xd +wd +IM +ac +HC +qE +HZ +wS +wS +wS +wS +TI +jW +TI +wS +wS +FU +FU +FU +FU +FU +FU +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(91,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +lY +Bf +EN +RD +HF +fU +GN +Ov +wS +wS +wS +LW +wS +wS +wS +iK +wS +wS +sm +Jh +wS +Dl +HM +Su +Qn +wS +Zp +Zp +Zp +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(92,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +lY +Bf +EN +wS +wS +aG +iv +Ke +wS +cH +yy +kC +pa +YI +wS +Bc +IN +wS +eK +PS +wS +KF +fH +So +Ie +wS +Zp +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(93,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +ak +ak +ak +wS +RD +RD +RD +wS +mB +eB +qk +sb +so +wS +qC +DM +mw +IR +Af +mw +JR +gg +cc +DY +wS +Zp +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(94,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +ak +ak +ak +ak +EN +EN +EN +wS +tx +tM +Mv +do +NT +wS +ue +YC +wS +TV +Kt +wS +Bz +Ls +Hs +kN +wS +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(95,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +ak +ak +ak +Bf +Bf +Bf +wS +RD +RD +wS +wS +wS +wS +RD +wS +wS +wS +wS +wS +wS +wS +wS +wS +wS +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(96,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +Zp +Zp +sN +sN +sN +HY +HY +HY +HY +HY +sN +sN +sN +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(97,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +Zp +Zp +Zp +Zp +Zp +Zp +sN +sN +HY +HY +Zp +Zp +HY +sN +sN +sN +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(98,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV Zp Zp Zp Zp +HY +HY +HY +Zp +vV +vV +vV +vV +vV Zp Zp -OP -sD -Pb -wH -CD -vB -AV -Hi -Dh -BV -Ei -sB -bv -zy -WB -fE -ZT -Uo -WS -up -WS -Io -EV -Hj -NG -iJ -MU -Sk -Sk -iJ -iJ -QK -KC -dp -zb -Bx -zb -zb -zb -Bx -Bx -hy -gn -ZN -RF -BL -PZ -Hu -dg -Eq -VN -FG -Rx Zp Zp Zp Zp Zp Zp +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(99,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(100,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(101,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(102,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(103,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(104,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(105,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(106,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV "} -(31,1,1) = {" -Zp -Zp -Zp -Zp -Zp -OP -OP -Th -AW -wH -Jw -wH -Rp -Rp -Rp -Rp -Rp -fZ -Ko -vZ -Ik -vc -vN -OG -RH -wh -oS -Rp -rR -tp -ZB -Rw -rw -og -pz -pz -pz -vw -Gn -uI -rx -td -rx -rx -rx -jw -zL -Rx -Nh -dq -kt -GE -Tw -hW -Aa -IC -IC -NY -Rx -Zp -Zp -Zp -Zp -Zp -Zp +(107,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV "} -(32,1,1) = {" -Zp -Zp -Zp -OP -OP -OP -lA -Ru -gl -Jw -UG -xm -Rp -AE -AE -pl -Rp -FD -Ko -vZ -UI -tf -tf -Vz -vZ -MA -At -Rp -xL -Ta -ez -hi -NH -hi -Xi -cp -Qm -vw -Of -fv -fv -fv -fv -fv -xZ -RM -Rx -Rx -Nb -iB -iB -iB -Fm -hW -hW -Iy -ts -ci -Rx -Zp -Zp -Zp -Zp -Zp -Zp +(108,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(109,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV "} -(33,1,1) = {" -Zp -Zp -Zp -OP -UZ -SN -Yj -HG -jD -wH -oE -zs -Rp -AE -AE -AE -cq -HH -Ko -vZ -vZ -ga -ga -Vz -vZ -MA -eZ -Rp -ZQ -OJ -QP -zz -gk -zz -ZG -Ec -Wd -vw -sL -XH -qz -et -et -eb -dC -FN -Rx -bC -de -Gu -Bu -UP -kZ -Fm -hW -DP -rA -rO -Rx -Zp -Zp -Zp -Zp -Zp -Zp +(110,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV "} -(34,1,1) = {" -Zp -Zp -Zp -OP -UW -UG -HG -NM -wH -wH -wH -wH -Rp -AE -AE -AE -Rp -Vi -Ui -WD -Qy -nb -Ok -hP -KX -Wu -aH -Rp -Rp -xa -Hx -Dp -GB -Ua -Kk -lt -TJ -vw -Ew -cr -cr -zO -cr -Yt -et -XH -Rx -Gw -LF -kB -wK -HI -pq -ZS -hW -Cc -nT -Rx -Rx -Zp -Zp -Zp -Zp -Zp -Zp +(111,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(112,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV "} -(35,1,1) = {" -Zp -Zp -Zp -wH -bQ -iM -vv -hj -hj -cX -BD -hg -Rp -Rp -Rp -Rp -Rp -Rp -vT -NF -VV -Rp -qd -Qb -xC -DZ -Rp -QT -QT -QT -QT -xQ -Ev -HA -It -Eb -It -vw -vw -Qu -cr -na -KL -wf -Ew -vx -Rx -Pl -Oe -Zu -yN -wl -Ou -oh -Rx -Rx -Rx -Rx -hc -Zp -Zp -Zp -Zp -Zp -Zp +(113,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +"} +(114,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV "} -(36,1,1) = {" -Zp -Zp -Zp -wH -wH -Jw -wH -hj -cX -Cp -Yr -LX -wY -an -Yh -px -xW -Rp -Rp -dA -Rp -QT -QT -pu -QT -QT -QT -EU -NV -Bi -Ho -Oa -Ev -mt -It -mE -yF -bJ -vw -vx -vx -cr -cr -vx -vx -vx -Rx -xp -PL -XS -EA -Pc -Yf -BQ -Rx -Uh -fl -Nr -Nr -Zp -Zp -Zp -Zp -Zp +(115,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV vV -"} -(37,1,1) = {" -Zp -Zp -wH -wH -CJ -iY -VI -hj -lg -SP -IY -Jc -GQ -CC -sU -ie -wz -Rp -AE -AE -Jb -QT -nn -nn -nn -QT -wL -Rl -by -TT -xs -Qp -xT -bY -RA -yi -fp -nk -vw -vw -vx -vx -vx -vx -vx -vx -Rx -qO -Se -jE -JM -pE -js -gC -Rx -jU -Lx -Vh -Nr -Zp -Zp -Zp -Zp -Zp vV "} -(38,1,1) = {" -Zp -Zp -wH -Wo -uP -Yv -BN -hj -cX -EO -LJ -qN -wY -Lr -Vu -Pv -YM -Rp -AE -AE -AE -QT -nn -li -nn -QT -Wc -di -vm -eS -Bm -Co -Ev -Zz -It -BJ -dL -GR -vK -vw -vw -vw -vw -po -po -po -Rx -Rx -Na -mR -mk -eC -gC -Rx -Rx -Nr -du -Nr -Nr -Zp -Zp -Zp -Zp -Zp +(116,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV vV -"} -(39,1,1) = {" -Zp -Zp -wH -qe -Fs -wH -wH -hj -hj -cX -DR -NO -hj -hj -Xz -Fy -hj -Rp -AE -AE -AE -QT -nn -nn -nn -QT -ps -Ee -Ee -Ee -QT -Nu -jh -QS -It -jX -TP -Si -rQ -It -Gd -mp -Ey -po -Ig -VC -nz -Rx -Rx -Rx -Rx -Rx -Rx -Rx -fB -vJ -cn -Zv -Nr -Zp -Zp -Zp -Zp vV vV -"} -(40,1,1) = {" -Zp -Zp -wH -LN -nt -pU -uE -jC -pU -pU -pU -pU -pU -zD -HL -OE -jZ -Rp -Rp -Rp -Rp -QT -st -st -st -QT -QT -QT -bO -QT -QT -Ih -Ev -Or -It -wN -lB -Si -uL -dR -dR -dR -fk -po -kF -VC -lK -po -Mo -uQ -cf -bV -gI -Za -Nr -Nr -cn -ZV -Nr -Zp -Zp -Zp vV vV vV -"} -(41,1,1) = {" vV -Zp -wH -wH -HG -pU -pT -Eg -NK -cC -Jp -Lp -pU -vl -Iu -UL -OI -hj -en -wV -hj -fR -Qz -Xf -lN -nj -Qz -kf -Qz -Ns -QT -Uc -Ev -CW -It -It -Pp -WU -FT -tK -QR -QR -vM -po -Kd -qx -nJ -po -xI -UC -ZC -oA -Am -mI -Sx -pX -eu -tP -Nr -Zp -Zp -Zp vV vV vV -"} -(42,1,1) = {" vV -UM -By -db -Xt -Lz -ry -ry -YP -dT -Qv -Mf -ty -qi -tb -NL -QO -RS -WL -WL -RS -eL -kO -kO -JZ -Ro -Uy -Tk -kO -Zh -yL -fr -ve -Zz -QG -It -nE -Jq -ZO -It -XA -zM -Gd -po -Gj -aB -rU -po -Zk -Mw -Gt -cG -Mw -In -gA -LD -mY -Nr -Nr -Zp -Zp -Zp vV vV vV -"} -(43,1,1) = {" vV -HY -HY -wH -wH -pU -aq -Fp -jb -Kw -tO -Et -pU -zl -wg -vI -ZE -hj -da -OR -hj -aC -iT -iT -ys -jv -gh -zi -tV -MX -QT -vO -GB -mP -TJ -It -It -It -It -It -It -It -It -po -mu -fA -oq -po -LC -IL -le -pg -mx -Za -GA -MK -Vv -Nr -Zp -Zp -Zp -Zp vV vV vV -"} -(44,1,1) = {" vV vV -HY -Zp -Zp -pU -aq -Fp -pU -HE -aZ -TW -pU -kq -Dm -hj -hj -hj -hj -hj -hj -QT -QT -bO -QT -QT -QT -QT -QT -QT -QT -RB -gk -Zz -vC -Me -pj -oC -ep -vC -pv -Ca -QN -po -po -mB -po -po -Za -Za -Za -Za -Za -Za -Za -AT -rT -Nr -Zp -Zp -Zp -Zp vV vV vV -"} -(45,1,1) = {" vV vV -Zp -Zp -Zp -pU -pU -pU -pU -eU -tO -JS -pU -pU -pU -gP -Vr -BA -sR -gP -ba -DL -FC -IJ -cB -gP -dj -dj -dj -dj -Gy -Qp -gk -mW -Ub -Dg -Cl -Dg -bB -vC -mr -mr -mr -Zm -la -MM -mr -Nr -Rz -zj -Db -nh -YR -fG -fG -Nj -Xy -Nr -Zp -Zp -Zp -Zp vV vV vV "} -(46,1,1) = {" +(117,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV vV vV -Zp -Zp -Zp -Zp -pU -vD -Vm -my -LO -CE -Vm -QU -pU -Qq -AK -sR -sR -gP -ua -sI -nB -IJ -IJ -gP -dj -dj -dj -Xm -Ak -Qp -uH -Px -uf -aU -GU -FQ -FA -Ag -xK -su -Ng -Yp -Yp -CN -Yp -Em -YG -vQ -fg -EM -Ax -JK -rL -Es -jz -Nr -Zp -Zp -Zp -Zp vV vV vV -"} -(47,1,1) = {" vV vV -Zp -Zp -Zp -Zp -pU -rP -Vm -my -LO -CE -Vm -qc -pU -dX -Pk -Rc -tm -lx -lT -gy -wZ -XQ -CA -gP -TJ -TJ -TJ -kd -AN -Qp -gk -Ua -yW -PR -PR -VA -PF -vC -Fi -Ux -KM -RG -RP -iG -Rr -Nr -Sh -ON -ON -Nc -XK -ZW -us -Ts -Yl -Nr -Zp -Zp -Zp -Zp -Zp vV vV -"} -(48,1,1) = {" vV vV -Zp -Zp -Zp -Zp -pU -vD -Vm -my -mz -ye -Vm -QU -pU -dU -Td -gx -sR -gP -jT -wc -xE -XP -eQ -jj -BC -uG -Ib -ut -ut -Gc -Ev -cv -vC -dB -KA -iG -Yb -vC -bn -Ef -sA -ex -Nn -Qf -Nn -Nr -qK -QM -ro -pN -XK -jf -Al -BT -Rj -Nr -Zp -Zp -Zp -Zp -Zp vV vV -"} -(49,1,1) = {" vV vV -Zp -Zp -Zp -Zp -pU -pU -pU -II -mz -zV -pU -pU -pU -Ji -go -Zb -Hq -gP -ee -Vs -bL -ZJ -bL -oa -cj -Iv -Iv -Iv -Iv -wJ -XD -Wn -Mt -Mt -Mt -ZX -Mt -Mt -lS -Mg -TR -ex -RR -Ln -oI -Nr -Cw -fq -gB -Au -Fz -iu -pJ -Nm -gT -Nr -Zp -Zp -Zp -Zp -Zp vV vV -"} -(50,1,1) = {" vV vV -Zp -Zp -Zp -Zp -pU -lr -Vm -my -mz -ye -Vm -QA -pU -gP -vr -gP -gP -gP -AR -JB -gP -gP -gP -gP -TJ -dj -UU -QD -jF -Qp -Ev -Zz -Mt -yG -zo -tt -bt -Mt -ic -Zw -vd -kl -aI -Ln -oI -Nr -sv -mG -aR -Nc -kA -Nr -Nr -Nr -Nr -Nr -Zp -Zp -Zp -Zp -Zp vV vV -"} -(51,1,1) = {" vV vV -Zp -Zp -Zp -Zp -pU -ui -Vm -my -mz -ye -Vm -qp -pU -Hh -pr -vq -gP -Sz -Nw -ff -AA -zG -tY -gP -dj -dj -dj -VM -tE -Qp -Ev -Zz -Mt -qg -En -QL -XW -Mt -Mt -ex -ex -ex -Nn -Qf -Nn -Nr -Nr -yB -Md -pN -Fw -Nr -OA -rh -dN -Nr -Zp -Zp -Zp -Zp -Zp vV vV -"} -(52,1,1) = {" vV vV -Zp -Zp -Zp -Zp -pU -lr -Vm -my -mz -ye -Vm -QA -pU -QC -IJ -tv -rZ -AA -Nw -ff -gK -tA -xv -gP -Rq -Rq -Rq -Rq -gs -vo -tr -jL -Mt -SO -zf -rv -ki -RJ -Mt -Ab -Ab -Ab -bx -qu -mb -cS -Nr -of -qb -xR -MR -BF -JP -rs -DO -Nr -Zp -Zp -Zp -Zp vV vV vV -"} -(53,1,1) = {" vV vV -Zp -Zp -Zp -Zp -pU -pU -pU -Yy -mz -ig -pU -pU -pU -XC -IJ -tv -jc -AA -iQ -bu -gK -UY -tN -UD -DE -Rq -Rq -Rq -gs -xo -EF -iD -Mt -Mt -Aj -LI -ki -rD -Mt -Ab -Gg -Ab -ZK -Zf -jY -cS -Nr -rB -Vq -ca -LZ -bU -zn -LW -rl -Nr -Zp -Zp -Zp -Zp vV vV vV -"} -(54,1,1) = {" vV vV vV -Zp -Zp -Zp -pU -Di -Vm -my -mz -PE -Vm -tj -pU -NA -tG -tv -yV -AA -AA -TQ -Ni -xr -oZ -UD -cJ -cJ -Rq -Rq -gs -zq -MP -fy -ZD -tZ -wp -jK -EW -rW -Mt -Ab -Ab -Ab -jx -IH -jY -cS -Nr -fj -YF -ca -cU -sT -qL -fO -CH -Nr -Zp -Zp -Zp -Zp vV vV vV -"} -(55,1,1) = {" vV vV vV -Zp -Zp -Zp -pU -BH -Vm -MZ -Ck -ye -Vm -tj -pU -vk -TL -IJ -uc -AA -GC -mD -oD -oD -pI -UD -bb -CQ -gO -Rq -gs -Ya -MP -fy -lb -Du -OF -qG -uU -Mt -Mt -Nn -Nn -Nn -Nn -GK -jY -Nn -Nr -HW -Hp -ca -Eh -Nr -GD -qo -Nr -Nr -Zp -Zp -Zp vV vV vV vV -"} -(56,1,1) = {" vV vV vV -Zp -Zp -Zp -pU -Tu -Vm -ke -hO -bW -Vm -tj -pU -gP -Lg -IJ -gP -zS -fP -aN -AA -Pt -GC -UD -av -Mk -CQ -Rq -gs -Kz -uD -oN -Mt -Mt -Mt -lG -Mt -Mt -NR -EC -cF -WP -Df -xe -Kf -ow -Nr -Nr -Nr -xF -Nr -Nr -Nr -Nr -Nr -Zp -Zp -Zp vV vV vV vV vV -"} -(57,1,1) = {" vV vV vV vV -Zp -Zp -pU -pU -pU -Vm -UX -Vm -pU -pU -pU -gP -gP -gP -gP -Iq -hD -AA -gK -on -SW -UD -VT -Oi -kI -Rq -gs -KV -uD -fy -lb -GW -Ge -tt -Vg -Mt -Od -Od -Od -ZM -Wz -jB -YT -iL -uS -Nr -wq -wq -wq -Nr -Zp -Zp -Zp -Zp -Zp -Zp vV vV vV vV vV -"} -(58,1,1) = {" vV vV vV vV -Zp -Zp -Zp -pU -bd -bd -NZ -bd -bd -pU -Gb -gP -yl -Ow -gP -Wx -dQ -GC -gK -hF -GG -gP -dO -gs -gs -gs -gs -ZH -tr -fy -lb -YH -KT -LI -JH -Mt -Od -Od -bH -ZM -Wz -jB -YT -iL -xw -Nr -wq -FB -wq -Nr -Zp -Zp -Zp -Zp -Zp vV vV vV @@ -18702,131 +29397,64 @@ vV vV vV "} -(59,1,1) = {" +(118,1,1) = {" +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV +vV vV vV vV vV vV -Zp -Zp -pU -bd -bd -wk -bd -bd -pU -Gb -gP -yZ -WI -RD -mq -HJ -Fo -gK -ST -MO -gP -wE -GL -Ot -Vn -Vn -ct -uD -Vc -Mt -Mt -Mt -pR -sV -Mt -YX -uu -ft -ft -kY -bw -cK -Zd -OX -Nr -wq -wq -wq -Nr -Zp -Zp -Zp -Zp -Zp vV vV vV vV vV vV -"} -(60,1,1) = {" vV vV vV vV vV -Zp -Zp -pU -pU -pU -pU -pU -pU -pU -gP -gP -gP -gP -wS -wS -wS -gP -gP -gP -gP -gP -gP -gP -SX -Qo -wu -wu -kR -fN -lb -GW -Ge -fu -GI -Mt -Od -Od -bH -ZM -Xo -yo -YT -Zd -hA -Nn -Nn -Nn -Nn -Nn -Zp -Zp -Zp vV vV vV @@ -18835,65 +29463,11 @@ vV vV vV vV -"} -(61,1,1) = {" vV vV vV vV vV -Ft -Ft -lY -Bf -EN -wS -wS -Nf -iv -Jt -wS -Ad -Ad -Ad -Kn -Ad -Ad -Ad -Ad -Ad -Ad -Ad -wS -oc -Tp -eh -ZR -lq -RC -lb -YH -KT -dw -Zr -Mt -AS -bH -ZF -Oy -bj -BR -om -ce -uS -Nn -aO -Pd -qv -Nn -Zp -Zp -Zp vV vV vV @@ -18902,64 +29476,11 @@ vV vV vV vV -"} -(62,1,1) = {" vV vV vV vV vV -Ft -Zp -lY -Bf -EN -wI -gU -Ty -tI -mF -wS -wS -wS -wS -Gs -wS -wS -wS -wS -wS -Ad -Ad -wS -OQ -MP -fy -FU -FU -FU -FU -FU -FU -Ac -FU -FU -YX -ft -rN -uu -Wz -Fx -dd -VZ -ms -rX -PY -oL -sM -Nn -Zp -Zp vV vV vV @@ -18969,64 +29490,11 @@ vV vV vV vV -"} -(63,1,1) = {" vV vV vV vV vV -Zp -Zp -lY -Bf -EN -wI -XI -Cs -FV -ne -JO -BE -Cv -UO -ij -Sw -Lo -jR -Ai -wS -wS -wS -wS -wC -tr -Vc -FU -Sa -Lu -jJ -YN -EE -gJ -rG -FU -Od -bH -Od -ZM -Xo -wj -no -ym -nF -Hb -PX -Xh -Rk -Nn -Zp -Zp vV vV vV @@ -19036,63 +29504,11 @@ vV vV vV vV -"} -(64,1,1) = {" vV vV vV vV vV -Zp -HY -lY -Bf -EN -wI -zm -Vl -PG -hI -sx -uK -DV -wT -VQ -HD -gd -Rg -Cy -wI -aS -FR -wI -Ya -pe -TC -gW -bS -bS -jV -gw -hV -gV -Rn -FU -Od -Od -Od -ZM -Xo -cK -cK -iL -xw -Nn -lZ -Xh -kJ -Nn -Zp vV vV vV @@ -19104,62 +29520,18 @@ vV vV vV "} -(65,1,1) = {" +(119,1,1) = {" +vV +vV +vV +vV +vV +vV vV vV vV vV vV -HY -HY -lY -Bf -EN -wS -Op -GJ -tC -Gm -hx -US -Mp -KP -vs -ag -Yq -Rg -kM -SB -Wp -oJ -op -IP -kR -oG -gW -bS -bS -jV -ny -ny -iX -Rn -FU -nZ -hQ -ei -ei -CU -Vx -Xv -ti -uS -Nn -tW -LE -Nn -Nn -Zp vV vV vV @@ -19170,63 +29542,11 @@ vV vV vV vV -"} -(66,1,1) = {" vV vV vV vV vV -Ft -HY -lY -Bf -EN -wI -IZ -Vl -bg -Rf -dD -oX -TF -nC -SE -HS -zK -US -iz -wI -DF -xt -wI -KV -jP -jL -FU -mN -JJ -Ao -yA -YZ -az -FU -FU -Nn -Nn -Nn -Nn -rV -rV -rV -rV -Nn -Nn -Nn -Nn -Nn -Zp -Zp vV vV vV @@ -19237,48 +29557,11 @@ vV vV vV vV -"} -(67,1,1) = {" vV vV vV vV vV -Ft -Zp -lY -Bf -EN -wI -As -eP -Ia -Az -QI -Ce -Xd -wd -IM -ac -HC -qE -HZ -wS -wS -wS -wS -wI -jW -wI -wS -wS -FU -FU -FU -FU -FU -FU -Zp vV vV vV @@ -19304,48 +29587,11 @@ vV vV vV vV -"} -(68,1,1) = {" vV vV vV vV vV -Zp -Zp -lY -Bf -EN -wI -HF -fU -GN -Ov -wS -wS -wS -rE -wS -wS -wS -Qj -wS -wS -sm -Jh -wS -Dl -HM -Su -Qn -wS -Zp -Zp -Zp -Zp -Zp -Zp -Zp vV vV vV @@ -19371,46 +29617,11 @@ vV vV vV vV -"} -(69,1,1) = {" vV vV vV vV vV -Zp -Zp -lY -Bf -EN -wS -wS -aG -iv -Ke -wS -cH -yy -kC -pa -YI -wS -Bc -IN -wS -eK -PS -wS -KF -fH -So -Ie -wS -Zp -Zp -Zp -Zp -Zp vV vV vV @@ -19431,6 +29642,8 @@ vV vV vV vV +"} +(120,1,1) = {" vV vV vV @@ -19438,46 +29651,12 @@ vV vV vV vV -"} -(70,1,1) = {" vV vV vV vV vV vV -Zp -Zp -ak -ak -ak -wS -wI -wI -wI -wS -TN -eB -qk -sb -so -wS -qC -DM -rb -IR -Af -mw -JR -gg -cc -DY -wS -Zp -Zp -Zp -Zp -Zp vV vV vV @@ -19505,45 +29684,12 @@ vV vV vV vV -"} -(71,1,1) = {" vV vV vV vV vV vV -Zp -Zp -ak -ak -ak -ak -EN -EN -EN -wS -tx -tM -Mv -do -NT -wS -ue -YC -wS -TV -Kt -wS -Bz -Ls -Hs -kN -wS -Zp -Zp -Zp -Zp vV vV vV @@ -19572,44 +29718,12 @@ vV vV vV vV -"} -(72,1,1) = {" vV vV vV vV vV vV -Zp -Zp -Zp -ak -ak -ak -Bf -Bf -Bf -wS -wI -wI -wS -wS -wS -wS -wI -wS -wS -wS -wS -wS -wS -wS -wS -wS -wS -Zp -Zp -Zp vV vV vV @@ -19639,8 +29753,6 @@ vV vV vV vV -"} -(73,1,1) = {" vV vV vV @@ -19648,34 +29760,16 @@ vV vV vV vV -Zp -Zp -Zp -Zp -Zp -sN -sN -sN -HY -HY -HY -HY -HY -sN -sN -sN -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp +vV +vV +vV +vV +vV +"} +(121,1,1) = {" +vV +vV +vV vV vV vV @@ -19706,8 +29800,6 @@ vV vV vV vV -"} -(74,1,1) = {" vV vV vV @@ -19716,32 +29808,6 @@ vV vV vV vV -Zp -Zp -Zp -Zp -Zp -Zp -sN -sN -HY -HY -Zp -Zp -HY -sN -sN -sN -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp vV vV vV @@ -19773,8 +29839,6 @@ vV vV vV vV -"} -(75,1,1) = {" vV vV vV @@ -19786,27 +29850,11 @@ vV vV vV vV -Zp -Zp -Zp -Zp -HY -HY -HY -Zp vV vV vV vV vV -Zp -Zp -Zp -Zp -Zp -Zp -Zp -Zp vV vV vV diff --git a/_maps/outpost/outpost_test_1.dmm b/_maps/outpost/outpost_test_1.dmm deleted file mode 100644 index af5f62da3a98..000000000000 --- a/_maps/outpost/outpost_test_1.dmm +++ /dev/null @@ -1,20593 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"ac" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"af" = ( -/obj/structure/curtain/cloth/fancy, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/plasteel/mono, -/area/outpost/crew) -"ai" = ( -/obj/structure/chair/office{ - dir = 8 - }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"an" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"ar" = ( -/obj/structure/rack, -/obj/effect/turf_decal/trimline/opaque/green/line, -/obj/effect/turf_decal/trimline/opaque/green/line{ - dir = 1 - }, -/obj/structure/sign/poster/official/random{ - pixel_y = -32 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"aC" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"aH" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 6 - }, -/obj/structure/closet/firecloset/wall{ - dir = 8; - pixel_x = 28 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"bg" = ( -/obj/structure/rack, -/obj/structure/sign/poster/contraband/random{ - pixel_x = -32 - }, -/obj/machinery/light/small/broken/directional/north, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"bk" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/item/clipboard, -/obj/item/hand_labeler, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/cargo) -"bo" = ( -/obj/structure/window/reinforced/tinted{ - dir = 8 - }, -/obj/structure/window/reinforced/tinted{ - dir = 1 - }, -/turf/open/floor/grass, -/area/outpost/crew) -"bs" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"bt" = ( -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"bv" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"by" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/public/glass, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/hallway/central) -"bI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{ - dir = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 4; - pixel_y = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"bJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"bL" = ( -/obj/structure/rack, -/obj/structure/sign/poster/contraband/random{ - pixel_y = 32 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"bQ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/obj/structure/sign/poster/random{ - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"bT" = ( -/obj/structure/chair/wood/wings{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/carpet, -/area/outpost/crew) -"cc" = ( -/obj/structure/chair/office{ - dir = 4 - }, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"cg" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"cs" = ( -/obj/structure/table, -/obj/item/circuitboard/machine/paystand, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"ct" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 9 - }, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"cx" = ( -/obj/item/kirbyplants/random, -/turf/open/floor/plasteel, -/area/outpost/crew) -"cy" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 4; - pixel_y = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 8; - pixel_y = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"cz" = ( -/obj/structure/barricade/wooden, -/turf/open/floor/plasteel/elevatorshaft, -/area/outpost/cargo) -"cA" = ( -/obj/machinery/door/poddoor/preopen, -/obj/effect/turf_decal/siding/thinplating{ - dir = 8 - }, -/obj/effect/turf_decal/siding/thinplating{ - dir = 4 - }, -/obj/machinery/door/airlock/public/glass, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/tech, -/area/outpost/hallway/central) -"cC" = ( -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/cargo) -"cO" = ( -/obj/item/radio/intercom/directional/east, -/turf/open/floor/wood, -/area/outpost/crew) -"cU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"cW" = ( -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/structure/closet/crate, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"cZ" = ( -/obj/machinery/telecomms/allinone/indestructable{ - id = "Outpost" - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"da" = ( -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"dh" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/box, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/plasteel, -/area/outpost/crew) -"dq" = ( -/obj/machinery/door/window/brigdoor/westleft, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - pixel_x = -1 - }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"dt" = ( -/obj/effect/turf_decal/box/corners, -/obj/structure/closet/crate/science, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"du" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew) -"dC" = ( -/obj/machinery/cryopod{ - dir = 4 - }, -/obj/machinery/light/small/directional/west, -/turf/open/floor/plasteel/tech/grid, -/area/outpost/crew/dorm) -"dD" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"dH" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/wood, -/area/outpost/crew) -"dK" = ( -/obj/machinery/firealarm/directional/south, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"dS" = ( -/obj/effect/turf_decal/corner/opaque/red{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"dV" = ( -/obj/machinery/recycler, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"dW" = ( -/obj/machinery/firealarm/directional/north, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 6 - }, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"dX" = ( -/obj/machinery/door/airlock{ - name = "Cryogenics" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"dY" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/newscaster/directional/north{ - pixel_y = 32 - }, -/obj/structure/filingcabinet/double, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/cargo) -"ec" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/machinery/light/small/directional/north, -/obj/structure/sign/poster/contraband/random{ - pixel_x = 32 - }, -/turf/open/floor/wood, -/area/outpost/crew) -"ed" = ( -/obj/structure/sign/poster/random{ - pixel_y = 32 - }, -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"eg" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 9 - }, -/obj/machinery/light/directional/west, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/obj/item/kirbyplants/random, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"em" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"eq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/turf/open/floor/wood, -/area/outpost/vacant_rooms) -"es" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/turf/open/floor/wood, -/area/outpost/crew) -"et" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"ex" = ( -/obj/machinery/vending/snack/random, -/obj/effect/turf_decal/corner/opaque/green/three_quarters{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"ey" = ( -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"ez" = ( -/obj/machinery/door/airlock{ - id_tag = "ob3"; - name = "Bathroom" - }, -/turf/open/floor/plasteel/tech, -/area/outpost/crew) -"eL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/item/kirbyplants{ - icon_state = "plant-03"; - name = "Dave" - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 8 - }, -/obj/structure/sign/poster/contraband/inteq_nt{ - pixel_y = 32 - }, -/obj/effect/decal/cleanable/confetti, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"eO" = ( -/obj/effect/turf_decal/corner/opaque/green/three_quarters{ - dir = 4 - }, -/obj/machinery/vending/coffee, -/obj/structure/sign/poster/random{ - pixel_x = -32 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"fc" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 - }, -/obj/structure/disposalpipe/junction/flip{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/landmark/observer_start, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"fh" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"fj" = ( -/obj/structure/railing/corner, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/disposalpipe/junction{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"fk" = ( -/obj/machinery/camera/autoname{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"fv" = ( -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/garbage, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"fD" = ( -/obj/machinery/door/airlock/public/glass, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/hallway/central) -"fI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 8; - pixel_y = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 4; - pixel_y = 1 - }, -/obj/machinery/camera/autoname, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"fM" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/effect/turf_decal/siding/thinplating{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 4; - pixel_y = 1 - }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"fQ" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/stand_clear{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"fV" = ( -/obj/structure/rack, -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/effect/turf_decal/box/corners, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"fZ" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced, -/obj/item/clipboard{ - pixel_y = -3; - pixel_x = -3 - }, -/obj/item/pen{ - pixel_y = -4; - pixel_x = -4 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/cargo) -"ga" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 4; - pixel_y = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 8; - pixel_y = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"gf" = ( -/obj/effect/turf_decal/box, -/obj/structure/closet/crate/engineering, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"gm" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"gr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"gs" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"gy" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/wood, -/area/outpost/crew) -"gz" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"gF" = ( -/obj/structure/rack, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"gJ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/obj/machinery/newscaster/directional/east, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"gK" = ( -/obj/item/kirbyplants/random, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = -32 - }, -/obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/plasteel, -/area/outpost/crew) -"gN" = ( -/obj/machinery/airalarm/directional/east, -/turf/open/floor/wood, -/area/outpost/crew) -"gU" = ( -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"gX" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"hd" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood/corner, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew) -"ho" = ( -/obj/structure/table, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"hv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/sign/poster/official/random{ - pixel_y = -32; - pixel_x = 32 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"hx" = ( -/obj/effect/turf_decal/box/corners, -/obj/structure/railing, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"hA" = ( -/obj/effect/turf_decal/spline/fancy/wood, -/turf/open/floor/wood, -/area/outpost/vacant_rooms) -"hB" = ( -/obj/structure/rack, -/obj/machinery/light/small/broken/directional/east, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"hG" = ( -/obj/machinery/light/directional/east, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"hI" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"hU" = ( -/obj/machinery/airalarm/directional/west, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"hY" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 6 - }, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"im" = ( -/obj/effect/turf_decal/corner/opaque/green/three_quarters{ - dir = 8 - }, -/obj/item/kirbyplants/random, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"iw" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 5 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/camera/autoname{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"iB" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"iF" = ( -/obj/structure/railing, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"iG" = ( -/turf/open/floor/plasteel/elevatorshaft, -/area/outpost/cargo) -"iI" = ( -/obj/effect/turf_decal/spline/fancy/wood{ - dir = 8 - }, -/turf/open/floor/wood, -/area/outpost/vacant_rooms) -"iL" = ( -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/structure/closet/crate, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"iQ" = ( -/obj/machinery/light/directional/north, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"iV" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/obj/machinery/camera/autoname{ - dir = 5 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"iY" = ( -/obj/structure/window/reinforced/tinted{ - dir = 1 - }, -/obj/structure/window/reinforced/tinted{ - dir = 4 - }, -/turf/open/floor/grass, -/area/outpost/crew) -"jd" = ( -/obj/effect/turf_decal/corner/opaque/green/three_quarters{ - dir = 8 - }, -/obj/machinery/vending/sovietsoda, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"je" = ( -/obj/effect/turf_decal/siding/wood, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/wood, -/area/outpost/crew) -"jh" = ( -/obj/machinery/light/small/directional/south, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"jk" = ( -/obj/effect/turf_decal/box, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"jl" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/stairs{ - dir = 1 - }, -/area/outpost/hallway/central) -"jn" = ( -/obj/effect/turf_decal/box/corners{ - dir = 8 - }, -/obj/structure/closet/cardboard, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"jp" = ( -/obj/effect/landmark{ - name = "Primary Cargo Shaft" - }, -/turf/open/floor/plasteel/elevatorshaft, -/area/outpost/cargo) -"jx" = ( -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"jC" = ( -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"jD" = ( -/obj/machinery/newscaster/directional/south, -/turf/open/floor/wood, -/area/outpost/crew) -"jF" = ( -/obj/machinery/door/airlock/public/glass, -/obj/effect/turf_decal/siding/thinplating{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/vacant_rooms) -"jH" = ( -/obj/structure/rack, -/obj/effect/turf_decal/box/corners, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"jI" = ( -/obj/machinery/newscaster/directional/east, -/turf/open/floor/wood, -/area/outpost/crew) -"jM" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 6 - }, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"jS" = ( -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - pixel_x = -1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"jU" = ( -/obj/structure/table, -/obj/machinery/door/window{ - dir = 8 - }, -/obj/effect/turf_decal/siding/thinplating{ - dir = 8 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/vacant_rooms) -"kb" = ( -/obj/structure/closet/crate, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"kg" = ( -/obj/machinery/computer/cryopod/directional/west, -/obj/structure/table, -/obj/effect/turf_decal/corner/opaque/bottlegreen/border{ - dir = 9 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/obj/machinery/newscaster/directional/north{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"ki" = ( -/obj/structure/chair/office, -/obj/machinery/light/small/directional/west, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew/dorm) -"ks" = ( -/turf/open/floor/plasteel/elevatorshaft, -/area/outpost/hallway/central) -"kA" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/green/three_quarters{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"kC" = ( -/obj/structure/window/reinforced/fulltile, -/obj/structure/grille, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "outsmall2" - }, -/turf/open/floor/plating, -/area/outpost/crew) -"kF" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/disposalpipe/junction/flip{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"kH" = ( -/obj/effect/turf_decal/siding/thinplating, -/turf/open/floor/plasteel/tech, -/area/outpost/hallway/central) -"kI" = ( -/obj/structure/curtain/cloth/fancy, -/obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/plasteel/mono, -/area/outpost/crew) -"kP" = ( -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 1; - pixel_x = -1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"kQ" = ( -/obj/effect/turf_decal/siding/thinplating{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/airlock/public/glass, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/tech, -/area/outpost/vacant_rooms) -"kR" = ( -/obj/structure/rack, -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/effect/turf_decal/box/corners, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"kW" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew) -"kY" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew) -"li" = ( -/obj/machinery/door/poddoor/preopen, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/effect/turf_decal/siding/thinplating{ - dir = 4 - }, -/obj/machinery/door/airlock/public/glass, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/tech, -/area/outpost/hallway/central) -"lj" = ( -/obj/structure/table/wood, -/obj/structure/sign/poster/contraband/random{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew) -"lk" = ( -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"lp" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/disposalpipe/segment, -/turf/open/floor/wood, -/area/outpost/crew) -"ls" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"lz" = ( -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/structure/railing{ - dir = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"lC" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/cargo) -"lH" = ( -/obj/machinery/door/window/brigdoor/southleft, -/obj/effect/turf_decal/siding/thinplating, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/vacant_rooms) -"lK" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"lP" = ( -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/stand_clear{ - dir = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black/corner{ - dir = 8 - }, -/obj/machinery/camera/autoname{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"lS" = ( -/obj/effect/turf_decal/corner/opaque/bottlegreen{ - dir = 10 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"lW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/machinery/airalarm/directional/north, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 4; - pixel_y = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 8; - pixel_y = 1 - }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"lX" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"mg" = ( -/obj/effect/turf_decal/box, -/obj/structure/closet/crate, -/obj/machinery/light/directional/west, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"ml" = ( -/obj/structure/table/wood, -/turf/open/floor/carpet, -/area/outpost/crew) -"mn" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced, -/obj/structure/table/wood, -/obj/machinery/vending/boozeomat, -/turf/open/floor/carpet, -/area/outpost/crew) -"mp" = ( -/obj/machinery/light/small/directional/south, -/obj/effect/decal/cleanable/confetti, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"ms" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"mt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"mz" = ( -/obj/machinery/firealarm/directional/north, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"mA" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"mB" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"mC" = ( -/turf/open/space/basic, -/area/space) -"mF" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/effect/turf_decal/siding/thinplating{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 4; - pixel_y = 1 - }, -/obj/machinery/newscaster/directional/north{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"mG" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/camera/autoname{ - dir = 9 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"mL" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 9 - }, -/obj/structure/closet/emcloset/wall{ - dir = 4; - pixel_x = -28 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"mO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"mT" = ( -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"nc" = ( -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"nd" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/plasteel/patterned, -/area/outpost/crew/dorm) -"nf" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew) -"ng" = ( -/obj/effect/turf_decal/siding/wood/corner, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew) -"np" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 6 - }, -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"ns" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"nw" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/obj/machinery/light/directional/east, -/turf/open/floor/wood, -/area/outpost/crew) -"nz" = ( -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"nE" = ( -/obj/structure/chair/wood/wings{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/outpost/crew) -"nI" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"nK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"nM" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"nO" = ( -/obj/structure/rack, -/obj/effect/turf_decal/trimline/opaque/green/end{ - dir = 1 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"nT" = ( -/obj/machinery/door/window/brigdoor/westright, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"nU" = ( -/turf/closed/indestructible/reinforced, -/area/outpost/crew/dorm) -"nY" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew/dorm) -"ob" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew) -"oe" = ( -/obj/machinery/firealarm/directional/south, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"oi" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/box, -/obj/structure/disposalpipe/trunk, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"oq" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, -/obj/structure/sign/poster/contraband/random{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew) -"or" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/disposalpipe/junction/flip{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"ov" = ( -/obj/structure/chair/wood/wings, -/turf/open/floor/carpet, -/area/outpost/crew) -"oC" = ( -/obj/item/kirbyplants/random, -/obj/machinery/light/small/directional/west, -/obj/effect/turf_decal/spline/fancy/wood{ - dir = 9 - }, -/turf/open/floor/wood, -/area/outpost/vacant_rooms) -"oF" = ( -/obj/structure/chair/office{ - dir = 4 - }, -/obj/item/radio/intercom/directional/west, -/obj/machinery/camera/autoname{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"oL" = ( -/obj/effect/turf_decal/siding/thinplating{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/airlock/wood, -/turf/open/floor/plasteel/tech, -/area/outpost/vacant_rooms) -"oR" = ( -/obj/structure/toilet{ - pixel_y = 13 - }, -/obj/machinery/newscaster/directional/east, -/obj/machinery/light/small/directional/west, -/turf/open/floor/plasteel, -/area/outpost/cargo) -"oV" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"pe" = ( -/obj/structure/railing{ - dir = 10 - }, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"pg" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"pj" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/components/unary/tank/air{ - volume = 10000000; - piping_layer = 2 - }, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"pl" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 10 - }, -/obj/structure/table, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"pm" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 8; - pixel_y = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 4; - pixel_y = 1 - }, -/obj/structure/sign/poster/contraband/random{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"ps" = ( -/obj/machinery/button/door{ - id = "ob2"; - name = "door lock"; - pixel_x = 10; - pixel_y = 23; - specialfunctions = 4; - normaldoorcontrol = 1 - }, -/obj/machinery/door/airlock{ - id_tag = "ob2"; - name = "Stall 1" - }, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"pt" = ( -/obj/effect/turf_decal/siding/thinplating, -/obj/effect/turf_decal/siding/thinplating{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/airlock/public/glass, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/tech, -/area/outpost/vacant_rooms) -"pw" = ( -/obj/structure/table, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"py" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/railing{ - dir = 4 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 4 - }, -/turf/open/floor/plasteel/stairs{ - dir = 1 - }, -/area/outpost/cargo) -"pA" = ( -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"pF" = ( -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/structure/closet/crate/engineering, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"pG" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"pO" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/wood, -/area/outpost/crew) -"pP" = ( -/obj/machinery/vending/coffee, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel, -/area/outpost/crew) -"pX" = ( -/obj/machinery/door/poddoor/preopen, -/obj/effect/turf_decal/siding/thinplating{ - dir = 8 - }, -/obj/effect/turf_decal/siding/thinplating{ - dir = 4 - }, -/obj/machinery/door/airlock/public/glass, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/hallway/central) -"pY" = ( -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/stand_clear, -/obj/effect/turf_decal/spline/fancy/opaque/black/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"qc" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/cargo) -"qi" = ( -/obj/effect/turf_decal/box/corners, -/obj/structure/closet/crate, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"qs" = ( -/obj/effect/turf_decal/spline/fancy/opaque/grey, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/window, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew/dorm) -"qt" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/stairs{ - dir = 1 - }, -/area/outpost/hallway/central) -"qH" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -13 - }, -/obj/structure/mirror{ - pixel_x = -28 - }, -/turf/open/floor/plasteel/patterned, -/area/outpost/crew/dorm) -"qP" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"qQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"qT" = ( -/obj/machinery/airalarm/directional/south, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"qV" = ( -/obj/machinery/button/door{ - id = "ob1"; - name = "door lock"; - pixel_x = 10; - pixel_y = 23; - specialfunctions = 4; - normaldoorcontrol = 1 - }, -/obj/machinery/door/airlock{ - id_tag = "ob1"; - name = "Stall 1" - }, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"re" = ( -/obj/effect/turf_decal/box/corners{ - dir = 8 - }, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"ri" = ( -/obj/structure/table, -/obj/effect/turf_decal/spline/fancy/opaque/grey, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew/dorm) -"rt" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew) -"ru" = ( -/turf/closed/indestructible/reinforced{ - icon = 'icons/obj/doors/blastdoor.dmi'; - icon_state = "closed"; - name = "hardened blast door" - }, -/area/outpost/hallway/central) -"ry" = ( -/obj/effect/turf_decal/siding/thinplating{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/airlock/public/glass, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/tech, -/area/outpost/vacant_rooms) -"rB" = ( -/obj/structure/railing{ - dir = 4 - }, -/turf/open/floor/grass, -/area/outpost/crew) -"rF" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/railing{ - dir = 4 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 4 - }, -/turf/open/floor/plasteel/stairs, -/area/outpost/cargo) -"rG" = ( -/obj/structure/rack, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"rK" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"rM" = ( -/obj/structure/rack, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/greenglow, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"rS" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/sign/poster/official/random{ - pixel_x = -32 - }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"rV" = ( -/obj/structure/table, -/obj/machinery/newscaster/directional/north{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"rZ" = ( -/obj/effect/turf_decal/corner/opaque/black, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 8; - pixel_y = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{ - dir = 4 - }, -/obj/machinery/newscaster/directional/south, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"sa" = ( -/obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew) -"sd" = ( -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"sk" = ( -/obj/effect/turf_decal/siding/thinplating{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/airlock/public/glass, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/tech, -/area/outpost/vacant_rooms) -"sm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"sn" = ( -/obj/effect/turf_decal/corner/opaque/green/three_quarters, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"sr" = ( -/obj/effect/landmark/outpost/elevator{ - shaft = "main" - }, -/turf/open/floor/plasteel/elevatorshaft, -/area/outpost/hallway/central) -"ss" = ( -/obj/structure/table, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/item/radio/intercom/directional/north{ - pixel_y = 24 - }, -/obj/effect/turf_decal/corner/opaque/green/three_quarters{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"su" = ( -/obj/structure/railing, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"sv" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/disposalpipe/segment, -/turf/open/floor/wood, -/area/outpost/crew) -"sB" = ( -/obj/effect/turf_decal/siding/thinplating, -/obj/effect/turf_decal/siding/thinplating{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/airlock/public/glass, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/tech, -/area/outpost/vacant_rooms) -"sH" = ( -/obj/effect/turf_decal/spline/fancy/wood{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/wood, -/area/outpost/vacant_rooms) -"sI" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"sL" = ( -/obj/structure/rack, -/obj/effect/turf_decal/box/corners{ - dir = 8 - }, -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/structure/sign/poster/contraband/inteq_gec{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"sM" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/obj/structure/sign/poster/random{ - pixel_x = 32 - }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"sO" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"sX" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"tg" = ( -/obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew) -"ti" = ( -/obj/structure/table/wood, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/outpost/crew) -"tr" = ( -/obj/structure/table/wood, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/carpet, -/area/outpost/crew) -"tv" = ( -/obj/structure/chair, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"tB" = ( -/obj/effect/turf_decal/siding/thinplating, -/obj/effect/turf_decal/siding/thinplating{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/airlock/public/glass, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/tech, -/area/outpost/vacant_rooms) -"tK" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/box, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"tL" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood, -/area/outpost/crew) -"tU" = ( -/obj/machinery/light/directional/north, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"tZ" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 1; - pixel_x = -1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"uc" = ( -/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"uv" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/disposalpipe/junction/flip{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"uy" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 6 - }, -/obj/item/kirbyplants/random, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"uF" = ( -/turf/open/floor/wood, -/area/outpost/crew) -"uG" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew) -"uL" = ( -/obj/structure/rack, -/obj/effect/turf_decal/box/corners{ - dir = 8 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"uQ" = ( -/obj/structure/urinal{ - pixel_y = 32 - }, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/plasteel/patterned, -/area/outpost/crew/dorm) -"uW" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 10 - }, -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = -32 - }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"uX" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/structure/closet/firecloset/wall{ - pixel_y = 28 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"ve" = ( -/obj/structure/rack, -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/effect/turf_decal/box/corners{ - dir = 8 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"vf" = ( -/obj/structure/chair/wood/wings{ - dir = 4 - }, -/obj/machinery/newscaster/directional/west, -/obj/machinery/camera/autoname{ - dir = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew) -"vn" = ( -/obj/structure/rack, -/obj/effect/turf_decal/trimline/opaque/green/end{ - dir = 4 - }, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"vr" = ( -/obj/machinery/light/directional/north, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"vu" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/item/paper_bin, -/obj/item/pen, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/cargo) -"vv" = ( -/obj/machinery/firealarm/directional/south, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"vL" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"vT" = ( -/obj/effect/turf_decal/corner/opaque/green/three_quarters, -/obj/structure/chair{ - dir = 8 - }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"vV" = ( -/obj/structure/noticeboard{ - dir = 8; - pixel_x = 28 - }, -/obj/effect/turf_decal/corner/opaque/bottlegreen/border{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"vX" = ( -/obj/structure/rack, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"wa" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"wm" = ( -/obj/effect/turf_decal/corner/opaque/bottlegreen/border{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/caution{ - dir = 4 - }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"wn" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"wr" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_y = 6; - pixel_x = 6 - }, -/obj/item/paper_bin/carbon{ - pixel_y = 1; - pixel_x = -8 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/cargo) -"wy" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 10 - }, -/obj/structure/chair{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"wB" = ( -/obj/effect/turf_decal/siding/thinplating, -/obj/effect/turf_decal/siding/thinplating{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/airlock/public/glass{ - name = "Restroom" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/tech, -/area/outpost/crew/dorm) -"wE" = ( -/obj/structure/table, -/obj/effect/turf_decal/corner/opaque/bottlegreen/three_quarters{ - dir = 4 - }, -/obj/machinery/newscaster/directional/west, -/obj/item/radio/intercom/directional/north{ - pixel_y = 23 - }, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"wF" = ( -/obj/structure/window/reinforced/tinted{ - dir = 8 - }, -/obj/structure/flora/ausbushes/ppflowers, -/turf/open/floor/grass, -/area/outpost/crew) -"wH" = ( -/obj/structure/rack, -/obj/effect/turf_decal/trimline/opaque/green/end{ - dir = 1 - }, -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"wL" = ( -/turf/closed/indestructible/reinforced, -/area/outpost/vacant_rooms) -"wR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"xa" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew) -"xc" = ( -/obj/structure/railing{ - dir = 9 - }, -/obj/effect/turf_decal/industrial/warning/corner, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"xi" = ( -/obj/effect/turf_decal/spline/fancy/opaque/grey, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/glass, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"xm" = ( -/obj/effect/turf_decal/box, -/obj/machinery/light/directional/west, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"xn" = ( -/obj/structure/rack, -/obj/structure/sign/poster/contraband/random{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"xo" = ( -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = 32 - }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"xr" = ( -/obj/machinery/light/directional/west, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"xs" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"xx" = ( -/obj/machinery/door/airlock/public/glass, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/hallway/central) -"xy" = ( -/obj/structure/table, -/obj/machinery/newscaster/directional/north{ - pixel_y = 32 - }, -/obj/effect/turf_decal/corner/opaque/green/three_quarters{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"xA" = ( -/obj/effect/turf_decal/siding/thinplating{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/door/airlock{ - name = "Cryogenics" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/crew/dorm) -"xQ" = ( -/obj/structure/table, -/obj/item/circuitboard/machine/paystand, -/obj/structure/sign/poster/contraband/random{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"xW" = ( -/obj/structure/chair/wood/wings{ - dir = 4 - }, -/obj/machinery/button/door{ - dir = 4; - pixel_y = 7; - pixel_x = -38; - id = "outsmall1"; - name = "window shutters" - }, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/carpet, -/area/outpost/crew) -"xX" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/closed/indestructible/reinforced{ - icon = 'icons/obj/doors/blastdoor.dmi'; - icon_state = "closed"; - name = "hardened blast door" - }, -/area/outpost/hallway/central) -"xZ" = ( -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"ya" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"yh" = ( -/obj/structure/table/wood, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew) -"yj" = ( -/obj/machinery/light/small/directional/east, -/obj/effect/turf_decal/spline/fancy/wood{ - dir = 6 - }, -/turf/open/floor/carpet/royalblack, -/area/outpost/vacant_rooms) -"yl" = ( -/obj/effect/turf_decal/corner/opaque/bottlegreen{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"yp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"ys" = ( -/obj/structure/curtain/cloth/fancy, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/plasteel/mono, -/area/outpost/crew) -"yu" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"yy" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"yI" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/closed/indestructible/reinforced{ - icon = 'icons/obj/doors/airlocks/hatch/centcom.dmi'; - icon_state = "closed"; - name = "airlock" - }, -/area/outpost/crew/dorm) -"yK" = ( -/obj/structure/rack, -/obj/effect/turf_decal/box, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"yM" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"yV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 - }, -/obj/machinery/camera/autoname{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"zn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/wood, -/area/outpost/crew) -"zp" = ( -/obj/effect/turf_decal/box, -/obj/structure/closet/cardboard, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"zv" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"zG" = ( -/obj/effect/turf_decal/corner/opaque/red{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"zL" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 1; - pixel_x = -1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"zS" = ( -/obj/effect/turf_decal/siding/thinplating{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/hallway/central) -"zW" = ( -/obj/machinery/computer/cargo/express{ - dir = 4 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/cargo) -"zX" = ( -/obj/structure/rack, -/obj/effect/turf_decal/trimline/opaque/green/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/green/line{ - dir = 8 - }, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"Ab" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 5 - }, -/obj/structure/sign/poster/random{ - pixel_y = 32 - }, -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Ac" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"Am" = ( -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/structure/closet/crate/science, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"Ao" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Ap" = ( -/obj/machinery/firealarm/directional/north, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Au" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/disposalpipe/segment, -/turf/open/floor/wood, -/area/outpost/crew) -"Aw" = ( -/obj/structure/sign/poster/random{ - pixel_x = -32 - }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"AC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"AI" = ( -/obj/structure/chair/comfy/brown{ - dir = 8 - }, -/obj/machinery/newscaster/directional/south, -/obj/machinery/camera/autoname{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"AK" = ( -/obj/machinery/door/airlock/public/glass, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/tech, -/area/outpost/hallway/central) -"AL" = ( -/obj/structure/chair/comfy/brown{ - dir = 4 - }, -/turf/open/floor/wood, -/area/outpost/vacant_rooms) -"AM" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 10 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"AR" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/machinery/light/directional/north, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"AU" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"AY" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 9 - }, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Bh" = ( -/obj/structure/table, -/obj/structure/window/reinforced, -/obj/item/hand_labeler, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/cargo) -"Bj" = ( -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 8; - pixel_y = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"Bs" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Bu" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/turf/open/floor/wood, -/area/outpost/crew) -"Bx" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"BE" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 1; - pixel_x = -1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - pixel_x = -1 - }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"BF" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/box, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/machinery/camera/autoname{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/outpost/crew) -"BJ" = ( -/obj/structure/rack, -/obj/effect/turf_decal/box/corners{ - dir = 8 - }, -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"BQ" = ( -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"Cc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/siding/wood, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew) -"Cd" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"Cj" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Ck" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 8; - pixel_y = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{ - dir = 4 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey/corner, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"Co" = ( -/obj/machinery/announcement_system, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Cq" = ( -/obj/effect/turf_decal/corner/opaque/bottlegreen/three_quarters, -/obj/machinery/disposal/bin, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"Ct" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"CI" = ( -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"CL" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"CR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/stairs{ - dir = 1 - }, -/area/outpost/hallway/central) -"CT" = ( -/obj/structure/rack, -/obj/effect/turf_decal/box/corners, -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"CU" = ( -/obj/machinery/door/poddoor/preopen, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/effect/turf_decal/siding/thinplating{ - dir = 4 - }, -/obj/machinery/door/airlock/public/glass, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/hallway/central) -"Dd" = ( -/obj/structure/chair/greyscale{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/bottlegreen/three_quarters{ - dir = 1 - }, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/machinery/light/small/directional/west, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"De" = ( -/obj/structure/rack, -/obj/effect/turf_decal/trimline/opaque/green/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/green/line{ - dir = 8 - }, -/obj/machinery/camera/autoname{ - dir = 8 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"Df" = ( -/obj/effect/turf_decal/corner/opaque/bottlegreen{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"Dg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Do" = ( -/obj/structure/table, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/paper_bin, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/cargo) -"Dz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 4; - pixel_y = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"DA" = ( -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/structure/disposalpipe/junction{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"DB" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/wood, -/area/outpost/crew) -"DH" = ( -/obj/machinery/button/door{ - pixel_y = 36; - pixel_x = -9; - id = "outsmall2"; - name = "window shutters" - }, -/obj/item/radio/intercom/directional/north{ - pixel_y = 22; - pixel_x = -5 - }, -/turf/open/floor/wood, -/area/outpost/crew) -"DJ" = ( -/obj/structure/chair/comfy/brown{ - dir = 4 - }, -/obj/effect/turf_decal/spline/fancy/wood{ - dir = 1 - }, -/turf/open/floor/wood, -/area/outpost/vacant_rooms) -"DQ" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 10 - }, -/obj/structure/table, -/obj/machinery/newscaster/directional/south, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"DU" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 5 - }, -/obj/machinery/vending/cola/random, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"DV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"DX" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -13 - }, -/obj/structure/mirror{ - pixel_x = -28 - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plasteel, -/area/outpost/crew) -"DY" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/structure/disposalpipe/junction/yjunction{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Eg" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Eh" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"Eo" = ( -/obj/structure/rack, -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"Ep" = ( -/obj/structure/window/reinforced/tinted{ - dir = 8 - }, -/obj/structure/flora/ausbushes/ppflowers, -/obj/structure/flora/ausbushes/sparsegrass, -/turf/open/floor/grass, -/area/outpost/crew) -"Eq" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"Eu" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/pump/on/layer2, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"Ev" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 8; - pixel_y = 1 - }, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"Ez" = ( -/obj/machinery/airalarm/directional/north, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"EB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 - }, -/turf/open/floor/wood, -/area/outpost/crew) -"ED" = ( -/obj/structure/table/wood, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/microwave{ - pixel_y = 5 - }, -/turf/open/floor/carpet, -/area/outpost/crew) -"EG" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"EH" = ( -/obj/structure/railing/corner, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"EI" = ( -/obj/effect/turf_decal/corner/opaque/green/three_quarters{ - dir = 1 - }, -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"EK" = ( -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"EM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"EU" = ( -/obj/structure/curtain/cloth/fancy, -/obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/mono, -/area/outpost/crew) -"EW" = ( -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"EY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/structure/closet/emcloset/wall{ - pixel_y = 28 - }, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Fa" = ( -/obj/effect/turf_decal/box/corners{ - dir = 8 - }, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"Ff" = ( -/obj/structure/rack, -/obj/effect/turf_decal/trimline/opaque/green/end, -/obj/structure/sign/poster/contraband/random{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"Fu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"FB" = ( -/obj/structure/railing{ - dir = 6 - }, -/turf/open/floor/grass, -/area/outpost/crew) -"FF" = ( -/obj/machinery/vending/games, -/obj/effect/turf_decal/corner/opaque/green/three_quarters{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"FM" = ( -/obj/machinery/power/floodlight, -/obj/structure/cable, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/cargo) -"FQ" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/wood, -/area/outpost/crew) -"FU" = ( -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/obj/structure/sign/poster/contraband/random{ - pixel_x = 32 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/garbage, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"Gc" = ( -/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"Gj" = ( -/obj/machinery/door/airlock/public/glass, -/obj/effect/turf_decal/siding/thinplating{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/structure/barricade/wooden/crude, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/oil/slippery, -/turf/open/floor/plasteel/tech, -/area/outpost/vacant_rooms) -"Gm" = ( -/obj/effect/turf_decal/corner/opaque/bottlegreen{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"Gp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 8; - pixel_y = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 4; - pixel_y = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"Gq" = ( -/obj/effect/turf_decal/corner/opaque/bottlegreen/three_quarters{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"Gu" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"GA" = ( -/obj/item/kirbyplants/random, -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew) -"GB" = ( -/obj/structure/rack, -/obj/structure/sign/poster/contraband/random{ - pixel_y = -32 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/glass, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"GG" = ( -/obj/effect/turf_decal/spline/fancy/opaque/grey, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/greenglow, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"GJ" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/wood, -/area/outpost/crew) -"GK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"GL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/structure/disposalpipe/junction{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"GQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/sign/poster/official/random{ - pixel_y = 32; - pixel_x = -33 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"GS" = ( -/obj/structure/urinal{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/patterned, -/area/outpost/crew/dorm) -"GT" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{ - dir = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{ - dir = 4 - }, -/obj/machinery/firealarm/directional/south, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"GU" = ( -/obj/machinery/light/directional/south, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Hb" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"He" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/obj/effect/turf_decal/spline/fancy/wood, -/turf/open/floor/wood, -/area/outpost/vacant_rooms) -"Hg" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Hi" = ( -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 1; - pixel_x = -1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - pixel_x = -1 - }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"Hl" = ( -/obj/machinery/light/directional/west, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Hm" = ( -/obj/structure/table/wood, -/obj/structure/window/reinforced, -/obj/item/storage/fancy/donut_box{ - pixel_y = -3 - }, -/turf/open/floor/carpet, -/area/outpost/crew) -"Hp" = ( -/obj/structure/rack, -/obj/effect/turf_decal/trimline/opaque/green/end, -/obj/structure/sign/poster/official/random{ - pixel_x = 32 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"Hx" = ( -/obj/effect/turf_decal/box, -/obj/structure/closet/crate, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"HB" = ( -/obj/structure/rack, -/obj/effect/turf_decal/trimline/opaque/green/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/opaque/green/line{ - dir = 4 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"HC" = ( -/obj/effect/turf_decal/corner/opaque/bottlegreen{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"HG" = ( -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 8; - pixel_y = 1 - }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"HH" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/wood, -/area/outpost/crew) -"HL" = ( -/obj/structure/rack, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/opaque/green/end{ - dir = 8 - }, -/obj/effect/turf_decal/siding/thinplating{ - dir = 8 - }, -/obj/machinery/camera/autoname{ - dir = 1 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"HR" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/box, -/obj/structure/disposalpipe/trunk{ - dir = 2 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"HU" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 9 - }, -/obj/machinery/light/directional/west, -/obj/item/kirbyplants/random, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"HZ" = ( -/obj/structure/table/wood, -/obj/structure/displaycase/forsale, -/obj/effect/turf_decal/siding/wood/end, -/turf/open/floor/wood, -/area/outpost/vacant_rooms) -"Ig" = ( -/obj/effect/turf_decal/corner/opaque/green/three_quarters{ - dir = 4 - }, -/obj/machinery/disposal/bin, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Ij" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"It" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Ix" = ( -/obj/structure/sign/directions/command{ - dir = 4; - pixel_y = -24 - }, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 6 - }, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"IB" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"ID" = ( -/obj/structure/railing, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"IP" = ( -/obj/machinery/door/airlock/public/glass, -/obj/effect/turf_decal/siding/thinplating{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/vacant_rooms) -"IU" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"IY" = ( -/obj/structure/chair/greyscale{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/bottlegreen/border{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"IZ" = ( -/obj/structure/window/reinforced/fulltile, -/obj/structure/grille, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "outsmall1" - }, -/turf/open/floor/plating, -/area/outpost/crew) -"Jh" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Jl" = ( -/obj/structure/rack, -/obj/machinery/light/small/broken/directional/south, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/garbage, -/obj/effect/decal/cleanable/glass, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"Jo" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/obj/structure/disposalpipe/junction/yjunction{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"Jp" = ( -/obj/structure/sign/poster/random{ - pixel_y = -32 - }, -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/corner/opaque/green/three_quarters, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Jr" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Ju" = ( -/obj/structure/railing, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"Jz" = ( -/obj/machinery/light/directional/east, -/turf/open/floor/wood, -/area/outpost/crew) -"JB" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"JC" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/turf/open/floor/wood, -/area/outpost/crew) -"JL" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/cargo) -"JM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew) -"JU" = ( -/turf/open/floor/plasteel/patterned, -/area/outpost/crew/dorm) -"JX" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 6 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 - }, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Ka" = ( -/obj/structure/chair/comfy/brown{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/greenglow, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"Kn" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/stand_clear{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"Ko" = ( -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"Kt" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/disposalpipe/junction/flip{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Kw" = ( -/obj/structure/rack, -/obj/effect/turf_decal/trimline/opaque/green/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/opaque/green/line{ - dir = 4 - }, -/obj/machinery/light/small/directional/west, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"Ky" = ( -/obj/effect/turf_decal/spline/fancy/wood{ - dir = 4 - }, -/turf/open/floor/carpet/royalblack, -/area/outpost/vacant_rooms) -"Kz" = ( -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"KA" = ( -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 4; - pixel_y = 1 - }, -/obj/structure/sign/poster/contraband/random{ - pixel_x = -32 - }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"KC" = ( -/obj/effect/turf_decal/siding/thinplating{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/airlock/wood, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/vacant_rooms) -"KD" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/newscaster/directional/east, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"KG" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/box, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"KH" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/box, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"KJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"KK" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/machinery/light/small/directional/west, -/turf/open/floor/wood, -/area/outpost/crew) -"KQ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew) -"KV" = ( -/obj/machinery/light/small/directional/south, -/turf/open/floor/plasteel/patterned, -/area/outpost/crew/dorm) -"KW" = ( -/obj/effect/turf_decal/siding/thinplating{ - dir = 8 - }, -/obj/machinery/elevator_call_button{ - pixel_y = 25 - }, -/obj/effect/landmark/outpost/elevator_machine{ - shaft = "main" - }, -/turf/open/floor/plasteel/tech, -/area/outpost/hallway/central) -"Ld" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew) -"Lr" = ( -/obj/structure/railing/corner, -/obj/effect/turf_decal/spline/fancy/opaque/black/corner, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"Ls" = ( -/obj/machinery/light/small/directional/north, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/plasteel/patterned, -/area/outpost/crew/dorm) -"Lu" = ( -/turf/open/floor/wood, -/area/outpost/vacant_rooms) -"Lx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/patterned, -/area/outpost/crew/dorm) -"Lz" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/cargo) -"LD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"LG" = ( -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"LI" = ( -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"LL" = ( -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"LP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - pixel_x = -1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"LZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/turf/open/floor/wood, -/area/outpost/crew) -"Mk" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Mr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Mt" = ( -/obj/effect/turf_decal/siding/thinplating{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/hallway/central) -"Mz" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 8; - pixel_y = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 4; - pixel_y = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"MA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"MB" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 - }, -/obj/structure/sign/poster/contraband/random{ - pixel_x = -32; - pixel_y = -32 - }, -/turf/open/floor/plasteel/patterned, -/area/outpost/crew/dorm) -"ME" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"MF" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced, -/obj/effect/turf_decal/siding/thinplating{ - dir = 10 - }, -/obj/item/circuitboard/machine/paystand, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/vacant_rooms) -"MN" = ( -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"MO" = ( -/obj/effect/turf_decal/box/corners, -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 2 - }, -/obj/machinery/light/small/directional/north, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"Nc" = ( -/obj/structure/rack, -/obj/effect/turf_decal/trimline/opaque/green/end, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"Ne" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Ni" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel/patterned, -/area/outpost/crew/dorm) -"Nl" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood, -/area/outpost/crew) -"Nv" = ( -/obj/effect/turf_decal/siding/wood, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew) -"Nx" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/turf/open/floor/wood, -/area/outpost/crew) -"NH" = ( -/obj/structure/window/reinforced/tinted{ - dir = 8 - }, -/obj/structure/window/reinforced/tinted, -/turf/open/floor/grass, -/area/outpost/crew) -"NO" = ( -/obj/structure/chair/office{ - dir = 8 - }, -/obj/item/radio/intercom/directional/north{ - pixel_y = 23 - }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/outpost/vacant_rooms) -"NT" = ( -/obj/structure/rack, -/obj/effect/turf_decal/trimline/opaque/green/end{ - dir = 1 - }, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"NX" = ( -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/cargo) -"Oa" = ( -/obj/effect/turf_decal/corner/opaque/bottlegreen{ - dir = 5 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"Ob" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 1 - }, -/obj/machinery/light/small/directional/west, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"Od" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 6 - }, -/obj/machinery/newscaster/directional/east, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Of" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/wood, -/area/outpost/crew) -"Oj" = ( -/obj/effect/turf_decal/box/corners, -/obj/structure/closet/crate/science, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"Om" = ( -/obj/machinery/power/smes/magical, -/obj/structure/cable, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Oq" = ( -/obj/effect/turf_decal/spline/fancy/opaque/grey/corner, -/obj/machinery/light/directional/west, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"Or" = ( -/turf/closed/indestructible/reinforced, -/area/outpost/crew) -"Ou" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew) -"Ov" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/light/directional/west, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew) -"Oz" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood, -/area/outpost/crew) -"OC" = ( -/obj/machinery/light/directional/north, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"OH" = ( -/obj/item/kirbyplants/random, -/obj/machinery/light/small/directional/west, -/obj/effect/turf_decal/spline/fancy/wood{ - dir = 10 - }, -/turf/open/floor/wood, -/area/outpost/vacant_rooms) -"OJ" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/newscaster/directional/south, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"OY" = ( -/obj/machinery/light/directional/south, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Pa" = ( -/obj/machinery/light/directional/south, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Pj" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/cargo) -"Ps" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 8; - pixel_y = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"Pu" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/item/paper_bin{ - pixel_y = 3; - pixel_x = 2 - }, -/obj/structure/noticeboard{ - pixel_y = 28 - }, -/obj/item/pen{ - pixel_y = 4; - pixel_x = 2 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/cargo) -"Pz" = ( -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"PA" = ( -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/glass, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"PE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"PG" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"PH" = ( -/obj/structure/railing{ - dir = 10 - }, -/turf/open/floor/grass, -/area/outpost/crew) -"PI" = ( -/obj/machinery/airalarm/directional/east, -/obj/item/radio/intercom/directional/north{ - pixel_y = 24 - }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"PK" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"PR" = ( -/obj/structure/railing{ - dir = 5 - }, -/turf/open/floor/grass, -/area/outpost/crew) -"PV" = ( -/obj/structure/railing, -/turf/open/floor/grass, -/area/outpost/crew) -"Qc" = ( -/obj/structure/table/wood, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/wood, -/area/outpost/vacant_rooms) -"Qe" = ( -/obj/structure/table, -/obj/item/clipboard, -/obj/item/pen, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/cargo) -"Qf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{ - dir = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 4; - pixel_y = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"Qh" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew) -"Qj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"Qk" = ( -/turf/open/floor/carpet, -/area/outpost/crew) -"Qt" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 8; - pixel_y = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"Qw" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"QA" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 9 - }, -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"QD" = ( -/obj/effect/turf_decal/box/corners, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"QG" = ( -/obj/structure/toilet{ - dir = 8 - }, -/obj/machinery/light/small/directional/east, -/obj/machinery/newscaster/directional/south, -/turf/open/floor/plasteel/patterned, -/area/outpost/crew/dorm) -"QI" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/indestructible/reinforced, -/area/outpost/crew/dorm) -"QK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/sign/poster/official/random{ - pixel_x = 32; - pixel_y = 32 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"QP" = ( -/obj/structure/chair/office{ - dir = 1 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/cargo) -"QT" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 9 - }, -/obj/machinery/light/directional/west, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"QY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"Rb" = ( -/obj/machinery/door/airlock{ - id_tag = "ob4"; - name = "Bathroom" - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"Rd" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew) -"Re" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/turf/open/floor/plasteel/stairs{ - dir = 8 - }, -/area/outpost/cargo) -"Rk" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 5 - }, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew) -"Ry" = ( -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/effect/turf_decal/box/corners{ - dir = 8 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"RC" = ( -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 1; - pixel_x = -1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - pixel_x = -1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"RF" = ( -/obj/effect/turf_decal/industrial/stand_clear{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"RG" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"RN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"RV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"RY" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/box, -/obj/structure/disposalpipe/trunk, -/obj/effect/landmark/observer_start, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/cargo) -"Sa" = ( -/obj/machinery/porta_turret/ship, -/obj/structure/sign/warning/securearea{ - pixel_x = -26; - pixel_y = -5 - }, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Sc" = ( -/obj/structure/sign/poster/contraband/random{ - pixel_x = 32 - }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"Si" = ( -/obj/structure/filingcabinet/double, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew/dorm) -"Sn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/disposalpipe/junction/flip{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Sp" = ( -/obj/machinery/vending/snack/random, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/plasteel, -/area/outpost/crew) -"St" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"SC" = ( -/obj/structure/rack, -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"ST" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/effect/turf_decal/spline/fancy/wood{ - dir = 1 - }, -/turf/open/floor/wood, -/area/outpost/vacant_rooms) -"Td" = ( -/obj/effect/turf_decal/siding/thinplating, -/obj/effect/turf_decal/siding/thinplating{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/airlock/public/glass, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plasteel/tech, -/area/outpost/vacant_rooms) -"Th" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew/dorm) -"Tk" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"Tt" = ( -/obj/machinery/camera/autoname{ - dir = 10 - }, -/obj/structure/filingcabinet/double, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/cargo) -"Ty" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"TA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/wood, -/area/outpost/vacant_rooms) -"TB" = ( -/obj/effect/turf_decal/siding/wood, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/wood, -/area/outpost/crew) -"TW" = ( -/obj/effect/turf_decal/corner/opaque/bottlegreen{ - dir = 10 - }, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"TY" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/filingcabinet/double, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/cargo) -"Ud" = ( -/obj/structure/filingcabinet/chestdrawer, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/cargo) -"Uo" = ( -/obj/structure/rack, -/obj/effect/turf_decal/trimline/opaque/green/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/green/line{ - dir = 8 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"Up" = ( -/obj/structure/table/wood, -/obj/structure/window/reinforced, -/turf/open/floor/carpet, -/area/outpost/crew) -"Uv" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"Uw" = ( -/turf/closed/indestructible/reinforced, -/area/outpost/cargo) -"Uy" = ( -/obj/structure/rack, -/obj/effect/turf_decal/trimline/opaque/green/line, -/obj/effect/turf_decal/trimline/opaque/green/line{ - dir = 1 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"Uz" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/obj/machinery/camera/autoname{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew) -"UE" = ( -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"UM" = ( -/obj/machinery/holopad/emergency/bar, -/obj/effect/landmark/observer_start, -/turf/open/floor/carpet, -/area/outpost/crew) -"UU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"Vg" = ( -/obj/machinery/modular_computer/console/preset/civilian, -/obj/machinery/camera/autoname{ - dir = 6 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/cargo) -"Vh" = ( -/obj/structure/railing, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"Vq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Vy" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew) -"VE" = ( -/obj/structure/railing, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/turf/open/floor/plasteel/stairs{ - dir = 8 - }, -/area/outpost/cargo) -"VH" = ( -/obj/structure/chair/comfy/brown{ - dir = 8 - }, -/obj/machinery/light/small/directional/east, -/obj/effect/turf_decal/spline/fancy/wood{ - dir = 5 - }, -/obj/item/radio/intercom/directional/north{ - pixel_y = 23 - }, -/turf/open/floor/carpet/royalblack, -/area/outpost/vacant_rooms) -"VR" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"VV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"VW" = ( -/obj/structure/chair/wood/wings{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/wood, -/area/outpost/crew) -"VX" = ( -/obj/machinery/button/door{ - id = "ob3"; - name = "door lock"; - pixel_x = -8; - pixel_y = 24; - specialfunctions = 4; - normaldoorcontrol = 1 - }, -/obj/structure/toilet{ - dir = 8 - }, -/obj/machinery/newscaster/directional/south, -/turf/open/floor/plasteel, -/area/outpost/crew) -"Wd" = ( -/obj/machinery/light/small/directional/east, -/turf/open/floor/wood, -/area/outpost/crew) -"Wt" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"Ww" = ( -/turf/open/floor/plasteel, -/area/outpost/crew) -"Wz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/structure/sign/poster/official/random{ - pixel_x = -32; - pixel_y = -32 - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"WI" = ( -/obj/structure/closet/cardboard, -/obj/item/picket_sign, -/obj/item/picket_sign, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"WM" = ( -/obj/structure/chair/greyscale{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/bottlegreen{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/outpost/crew/dorm) -"WN" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew) -"WT" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood, -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew) -"WV" = ( -/obj/structure/sign/poster/contraband/inteq{ - pixel_y = 32 - }, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Xc" = ( -/obj/effect/turf_decal/corner/opaque/black{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Xk" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/patterned, -/area/outpost/cargo) -"Xl" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"Xm" = ( -/obj/effect/turf_decal/industrial/stand_clear{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Xn" = ( -/obj/effect/turf_decal/box/corners, -/obj/structure/closet/cardboard, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"Xp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/confetti, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"Xr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/patterned, -/area/outpost/crew/dorm) -"Xx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"XB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{ - dir = 1 - }, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"XM" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/carpet, -/area/outpost/crew) -"XS" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Yb" = ( -/obj/structure/table, -/obj/effect/turf_decal/spline/fancy/opaque/grey, -/obj/item/paper_bin, -/obj/item/pen, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew/dorm) -"Yd" = ( -/turf/closed/indestructible/reinforced, -/area/outpost/hallway/central) -"Yo" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood, -/area/outpost/crew) -"Yr" = ( -/turf/open/floor/plasteel/stairs{ - dir = 1 - }, -/area/outpost/hallway/central) -"Yv" = ( -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"YB" = ( -/obj/machinery/button/door{ - id = "ob4"; - name = "door lock"; - pixel_x = 25; - pixel_y = -6; - dir = 8; - specialfunctions = 4; - normaldoorcontrol = 1 - }, -/obj/structure/sink{ - dir = 4; - pixel_x = -13 - }, -/obj/structure/mirror{ - pixel_x = -28 - }, -/turf/open/floor/plasteel, -/area/outpost/cargo) -"YC" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"YE" = ( -/obj/item/kirbyplants/random, -/obj/machinery/newscaster/directional/south, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"YK" = ( -/obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/light/directional/west, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew) -"YQ" = ( -/obj/effect/turf_decal/box/corners{ - dir = 8 - }, -/obj/structure/railing/corner, -/obj/effect/turf_decal/spline/fancy/opaque/black/corner, -/turf/open/floor/plasteel/patterned/grid, -/area/outpost/cargo) -"YR" = ( -/obj/effect/turf_decal/siding/thinplating{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/airlock/public/glass, -/turf/open/floor/plasteel/tech, -/area/outpost/vacant_rooms) -"YX" = ( -/obj/machinery/door/window{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/wood, -/turf/open/floor/carpet/royalblack, -/area/outpost/vacant_rooms) -"Za" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/structure/disposalpipe/junction{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew) -"Ze" = ( -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/tech, -/area/outpost/cargo) -"Zi" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/wood, -/area/outpost/crew) -"Zm" = ( -/obj/structure/table/wood, -/obj/effect/turf_decal/siding/wood/end{ - dir = 1 - }, -/turf/open/floor/wood, -/area/outpost/vacant_rooms) -"Zr" = ( -/obj/machinery/porta_turret/ship, -/obj/structure/sign/warning/securearea{ - pixel_x = 26; - pixel_y = -5 - }, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"Zt" = ( -/obj/structure/window/reinforced/tinted{ - dir = 1 - }, -/obj/structure/flora/ausbushes/ppflowers, -/obj/structure/flora/ausbushes/sparsegrass, -/turf/open/floor/grass, -/area/outpost/crew) -"Zu" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/newscaster/directional/west, -/obj/machinery/newscaster/directional/west, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"Zx" = ( -/obj/item/kirbyplants/random, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew/dorm) -"ZE" = ( -/obj/structure/table, -/turf/open/floor/plasteel/tech/techmaint, -/area/outpost/vacant_rooms) -"ZM" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/outpost/crew) -"ZO" = ( -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - pixel_x = -1 - }, -/obj/machinery/light/directional/east, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) -"ZS" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/turf/open/floor/plasteel/grimy, -/area/outpost/crew/dorm) -"ZV" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/disposalpipe/junction{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, -/area/outpost/hallway/central) -"ZY" = ( -/obj/effect/turf_decal/spline/fancy/opaque/grey{ - dir = 1; - pixel_x = -1 - }, -/turf/open/floor/plasteel, -/area/outpost/vacant_rooms) - -(1,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(2,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(3,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(4,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(5,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(6,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -Or -kC -kC -kC -kC -kC -kC -Or -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(7,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -Or -Or -DH -ov -tr -tr -bT -jD -Or -Or -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(8,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -Or -ec -es -Qk -nE -nE -XM -EB -Zi -Or -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(9,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -Or -Or -Or -ys -bo -wF -Ep -NH -af -Or -Or -Or -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(10,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -Or -Or -gK -YK -TB -PR -rB -rB -FB -FQ -Ov -vf -Or -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(11,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -Or -Sp -Ww -sa -GJ -uG -rt -rt -tL -HH -WN -lj -Or -Or -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(12,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -Or -pP -Rd -tg -xa -nf -du -KQ -Ou -Oz -Rk -kY -GA -Or -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(13,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -Or -Or -Or -BF -Rk -kW -ng -Qh -Qh -Qh -Qh -Yo -Nl -Rk -oq -Or -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(14,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -Or -Or -KK -EU -gy -lp -Au -Nv -ml -ml -ml -ml -Hm -FQ -uF -hd -Or -Or -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(15,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -IZ -xW -Qk -bo -PH -dH -ZM -Cc -Qk -Qk -UM -Qk -Up -pO -ob -WT -dh -Or -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(16,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -IZ -ml -Qk -Zt -PV -yh -JM -je -tr -ti -ti -ED -mn -Of -du -Ld -cx -Or -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(17,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -IZ -nE -Qk -iY -FB -VW -Bu -Za -Vy -sv -sv -sv -sv -JC -Uz -Or -Or -Or -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(18,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -IZ -jI -Wd -kI -DB -nw -uF -zn -uF -Jz -cO -gN -jI -LZ -Nx -ez -DX -Or -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(19,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -wL -wL -wL -wL -wL -wL -CU -li -CU -wL -wL -wL -wL -wL -wL -wL -VX -Or -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(20,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -wL -nO -HB -Kw -Ff -wL -ed -RV -vv -wL -oF -hU -nz -Oq -KA -wL -Or -Or -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(21,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -wL -pm -Ck -ga -rZ -wL -xs -RV -sO -wL -xQ -ZE -yK -RC -ve -wL -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(22,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -wL -Ry -Hi -BJ -zL -sk -Mk -ns -Xc -tB -Ev -Ps -Qt -jS -xn -wL -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(23,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -wL -MO -BE -fV -tZ -ry -Hg -uv -wa -Td -iB -wR -gJ -ZO -CT -wL -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(24,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -wL -fI -Qf -Gp -GT -wL -vr -RV -Pa -wL -wL -wL -wL -wL -wL -wL -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(25,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -wL -rV -cs -ZE -ZY -wL -EY -ZV -AM -sB -iw -rS -Zu -rS -KH -wL -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(26,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -wL -PI -ai -Sc -xo -wL -uX -sI -Ne -pt -et -UU -UU -Tk -pG -wL -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(27,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -wL -wL -wL -wL -wL -wL -WV -LD -lk -wL -jU -MF -nT -dq -HL -wL -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(28,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -wL -sL -Ob -uW -YR -gz -LD -fk -wL -NO -lH -nz -LP -ar -wL -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(29,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -nU -nU -nU -nU -nU -wL -wL -wL -wL -wL -wL -rG -Xp -rK -kQ -yM -Hb -sO -wL -mF -fM -Gc -LP -Uy -wL -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(30,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -nU -nU -dC -nU -wE -Dd -wL -Aw -nz -cc -YE -wL -vX -GK -mp -wL -vr -LD -GU -wL -NT -Nc -kP -LP -vn -wL -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(31,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -nU -kg -wm -nU -WM -Df -wL -nz -ZE -cs -ho -wL -kR -nK -qT -wL -HR -or -cg -wL -lW -cy -bI -Dz -Mz -wL -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(32,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -nU -IY -vV -dX -Gm -lS -wL -uc -HG -HG -Bj -wL -eL -XB -AI -wL -Pz -PE -cg -wL -wH -Uo -zX -De -Hp -wL -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(33,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -nU -nU -nU -nU -nU -nU -nU -yl -Df -wL -Ez -SC -uL -Xl -wL -wL -wL -wL -wL -dW -AC -Ix -wL -wL -wL -wL -wL -wL -wL -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(34,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -nU -xZ -jh -nU -Si -ki -Yb -Oa -TW -wL -Qj -vX -vX -Xl -wL -eO -AY -kA -Yd -pX -cA -pX -Yd -ss -QA -EI -Yd -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(35,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -nU -pj -Eu -yI -nY -ZS -ri -HC -Df -wL -mz -Eo -jH -Xl -wL -DU -vL -Fu -Eg -IU -qQ -EG -Eg -dD -Gu -DQ -Yd -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(36,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -nU -nU -nU -nU -Zx -Th -qs -Gq -Cq -wL -sM -zv -mA -bQ -wL -ex -RN -GL -hG -cU -Kt -Ij -hG -Bs -MA -pl -Yd -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(37,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -nU -nU -nU -qH -qH -nU -nU -nU -nU -xA -nU -wL -wL -IP -jF -wL -wL -Yd -xs -OY -Yd -KW -zS -zS -Yd -iQ -jx -vT -Yd -Yd -Yd -Yd -Yd -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(38,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -nU -pg -QI -Ls -MB -KV -nU -Ig -HU -yu -mL -eg -ct -ms -Jh -QT -sX -fD -nI -RV -Yd -ks -ks -sr -kH -RV -dK -Yd -Yd -AR -dS -Sa -Yd -Yd -Yd -Yd -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(39,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -nU -Uv -nU -uQ -Lx -Xr -wB -kF -Mr -fc -aC -CL -Jr -It -wn -Jr -St -AK -Xx -DY -Yd -ks -ks -ks -kH -Ao -Vq -qt -CR -mt -Dg -RF -xX -PK -Om -Yd -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(40,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -nU -dV -nU -GS -nd -KV -nU -im -jM -JB -aH -JX -hY -AU -ls -uy -sX -fD -nI -LD -Yd -ks -ks -ks -kH -DV -jx -Yr -jl -Ty -em -Xm -ru -jx -jx -Yd -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(41,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -nU -nU -nU -GS -Ni -JU -wL -wL -wL -Gj -wL -wL -wL -KC -oL -wL -wL -Yd -Ap -OY -Yd -Mt -Mt -Mt -Yd -tU -Yd -Yd -Yd -OC -zG -Zr -Yd -Yd -Yd -Yd -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(42,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -nU -qV -nU -ps -wL -bg -fv -GG -GB -wL -oC -sH -iI -OH -wL -FF -bs -ac -Hl -cU -Ct -yp -xr -sm -tv -pw -Yd -Yd -Yd -Yd -Yd -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(43,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -nU -QG -nU -QG -wL -bL -CI -xi -Jl -wL -ST -eq -TA -He -wL -Ab -Ty -lX -YC -ls -Sn -nM -Bx -XS -Cj -wy -Yd -cZ -Co -Yd -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(44,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -nU -nU -nU -nU -wL -wL -gF -PA -oe -wL -DJ -AL -Lu -hA -wL -jd -Od -Jp -Yd -xx -by -xx -Yd -xy -np -sn -Yd -Yd -Yd -Yd -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(45,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -wL -rM -nc -IB -wL -Zm -Qc -HZ -YX -wL -Yd -Yd -Yd -Uw -jC -bJ -jC -Uw -Yd -Yd -Yd -Yd -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(46,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -wL -hB -FU -Ka -wL -VH -Ky -Ky -yj -wL -Uw -oR -YB -Rb -jC -Xk -Kz -Uw -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(47,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -wL -wL -wL -wL -wL -wL -wL -wL -wL -wL -Uw -Uw -Uw -Uw -pA -KJ -pA -Uw -Uw -Uw -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(48,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -Uw -pF -Fa -pA -KJ -pA -Yv -jn -Uw -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(49,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -Uw -Uw -UE -LL -pA -KJ -pA -LL -mT -Uw -Uw -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(50,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -Uw -Uw -Uw -iV -LL -LL -pA -KJ -pA -LL -LL -yV -Uw -Uw -Uw -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(51,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -Uw -Uw -gf -mg -GQ -Ko -Xn -pA -gs -pA -Ko -QD -Wz -xm -Hx -Uw -Uw -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(52,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -Uw -Uw -gr -QY -QY -EH -PG -PG -ey -Jo -fj -VR -VR -DA -RG -OJ -KG -Uw -Uw -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(53,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -Uw -Yv -kb -LL -Fa -Ze -iG -iG -mB -RY -Ju -iG -iG -Wt -Yv -kb -LL -Fa -Uw -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(54,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -Uw -Am -LL -LL -QD -Ze -iG -iG -lK -FM -iF -iG -iG -Wt -cW -LL -LL -dt -Uw -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(55,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -Uw -EW -pA -pA -pA -Ze -iG -xc -LG -Kn -EK -pe -iG -Eh -Cd -Cd -Cd -gm -Uw -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(56,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -Uw -Pu -Lz -cC -fZ -Ze -iG -Qw -cz -cz -cz -Vh -iG -hI -vu -lC -cC -lC -Uw -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(57,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -Uw -Vg -QP -cC -Bh -Ze -iG -Qw -cz -jp -cz -Vh -iG -hI -bk -QP -cC -Tt -Uw -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(58,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -Uw -dY -Pj -cC -Do -Ze -iG -Qw -cz -cz -cz -Vh -iG -hI -qc -JL -cC -TY -Uw -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(59,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -Uw -oi -RG -RG -RG -gU -bv -sd -fh -fQ -fh -MN -bv -BQ -QY -QY -QY -mO -Uw -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(60,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -Uw -iL -LL -LL -Fa -ya -Yv -YQ -Lr -Eq -bt -da -Fa -EM -Yv -LL -LL -re -Uw -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(61,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -Uw -Ko -WI -LL -qi -ya -LL -su -VE -zW -Re -an -LL -EM -Ko -kb -kb -QD -Uw -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(62,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -Uw -Uw -qP -Cd -Cd -VV -LL -su -cC -cC -cC -an -LL -gX -Cd -hv -yy -Uw -Uw -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(63,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -Uw -Uw -Hx -jk -QK -Ko -hx -Qe -cC -cC -lz -Oj -EM -jk -zp -Uw -Uw -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(64,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -Uw -Uw -Uw -mG -Ac -ID -wr -cC -Ud -ME -oV -KD -Uw -Uw -Uw -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(65,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -Uw -Uw -LI -lP -py -NX -rF -pY -tK -Uw -Uw -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(66,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -Uw -Uw -Uw -Uw -Uw -Uw -Uw -Uw -Uw -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(67,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(68,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(69,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(70,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(71,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(72,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(73,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(74,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(75,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(76,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(77,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(78,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(79,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(80,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(81,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(82,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(83,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(84,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(85,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(86,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(87,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(88,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(89,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(90,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(91,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(92,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(93,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(94,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(95,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(96,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(97,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(98,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(99,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(100,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(101,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(102,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(103,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(104,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(105,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(106,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(107,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(108,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(109,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(110,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(111,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(112,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(113,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(114,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(115,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(116,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(117,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(118,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(119,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(120,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} -(121,1,1) = {" -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -mC -"} diff --git a/_maps/shuttles/shiptest/independent_beluga.dmm b/_maps/shuttles/independent/independent_beluga.dmm similarity index 99% rename from _maps/shuttles/shiptest/independent_beluga.dmm rename to _maps/shuttles/independent/independent_beluga.dmm index 16a771d5be54..67d686bd4faa 100644 --- a/_maps/shuttles/shiptest/independent_beluga.dmm +++ b/_maps/shuttles/independent/independent_beluga.dmm @@ -647,6 +647,7 @@ /obj/item/clothing/head/hopcap, /obj/item/gun/energy/e_gun/mini, /obj/item/clothing/head/HoS/cowboy, +/obj/item/clothing/suit/jacket/leather/duster/command, /turf/open/floor/plasteel/dark, /area/ship/bridge) "ge" = ( @@ -3504,10 +3505,9 @@ pixel_x = -28 }, /obj/item/clothing/under/rank/command/captain, -/obj/item/clothing/under/rank/command/lieutenant, +/obj/item/clothing/under/rank/command, /obj/item/clothing/shoes/laceup, /obj/item/clothing/shoes/cowboy/black, -/obj/item/clothing/suit/armor/vest/capcarapace/alt, /obj/item/clothing/suit/armor/vest/capcarapace/duster, /obj/item/clothing/head/beret/captain, /obj/item/clothing/head/caphat, @@ -3521,6 +3521,7 @@ /obj/item/areaeditor/shuttle, /obj/effect/turf_decal/spline/fancy/opaque/bottlegreen, /obj/item/clothing/head/caphat/cowboy, +/obj/item/clothing/suit/armor/vest/capcarapace/captunic, /turf/open/floor/wood/walnut, /area/ship/bridge) "Hv" = ( diff --git a/_maps/shuttles/shiptest/independent_box.dmm b/_maps/shuttles/independent/independent_box.dmm similarity index 100% rename from _maps/shuttles/shiptest/independent_box.dmm rename to _maps/shuttles/independent/independent_box.dmm diff --git a/_maps/shuttles/shiptest/independent_boyardee.dmm b/_maps/shuttles/independent/independent_boyardee.dmm similarity index 98% rename from _maps/shuttles/shiptest/independent_boyardee.dmm rename to _maps/shuttles/independent/independent_boyardee.dmm index bd9296d7fa75..aa0360e74c32 100644 --- a/_maps/shuttles/shiptest/independent_boyardee.dmm +++ b/_maps/shuttles/independent/independent_boyardee.dmm @@ -53,7 +53,13 @@ id = "cargoblastdoors" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/fans/tiny, +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + dir = 4; + id = "cargoholofield" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, /turf/open/floor/plating, /area/ship/cargo) "ct" = ( @@ -488,6 +494,9 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 8 }, +/obj/structure/cable{ + icon_state = "1-8" + }, /turf/open/floor/plasteel, /area/ship/cargo) "kr" = ( @@ -669,6 +678,9 @@ /obj/effect/turf_decal/industrial/warning{ dir = 1 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/ship/cargo) "no" = ( @@ -1298,7 +1310,6 @@ /obj/machinery/door/poddoor{ id = "cargoblastdoors" }, -/obj/structure/fans/tiny, /turf/open/floor/plating, /area/ship/cargo) "yn" = ( @@ -1309,6 +1320,19 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/plasteel/mono/dark, /area/ship/crew/canteen) +"ys" = ( +/obj/machinery/door/poddoor{ + id = "cargoblastdoors" + }, +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + dir = 8; + id = "cargoholofield" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/ship/cargo) "yF" = ( /obj/effect/turf_decal/corner/transparent/neutral{ dir = 4 @@ -2318,6 +2342,9 @@ icon_state = "2-8" }, /obj/structure/catwalk/over/plated_catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plating, /area/ship/cargo) "Ro" = ( @@ -2466,6 +2493,20 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, /area/ship/crew/canteen) +"Ty" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/ship/cargo) "TD" = ( /turf/closed/wall/r_wall, /area/ship/crew/hydroponics) @@ -2522,6 +2563,14 @@ pixel_x = 25; pixel_y = 25 }, +/obj/machinery/button/shieldwallgen{ + pixel_y = 24; + pixel_x = 37; + id = "cargoholofield" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/ship/cargo) "Uy" = ( @@ -3274,7 +3323,7 @@ vZ as cp nc -Av +Ty tP FN np @@ -3335,7 +3384,7 @@ vZ "} (25,1,1) = {" yi -yk +ys Uv jN YR diff --git a/_maps/shuttles/shiptest/independent_bubble.dmm b/_maps/shuttles/independent/independent_bubble.dmm similarity index 98% rename from _maps/shuttles/shiptest/independent_bubble.dmm rename to _maps/shuttles/independent/independent_bubble.dmm index 6e37d1b244e8..32efe563c0bb 100644 --- a/_maps/shuttles/shiptest/independent_bubble.dmm +++ b/_maps/shuttles/independent/independent_bubble.dmm @@ -650,13 +650,14 @@ /turf/open/floor/plasteel/mono, /area/ship/hallway/central) "AR" = ( -/obj/machinery/door/airlock/external, -/obj/docking_port/mobile{ - launch_status = 0; - port_direction = 4 +/obj/docking_port/stationary{ + width = 30; + height = 15; + dwidth = 15; + dir = 2 }, -/turf/open/floor/plating, -/area/ship/engineering) +/turf/template_noop, +/area/space) "AU" = ( /obj/machinery/cryopod{ dir = 4 @@ -955,6 +956,18 @@ }, /turf/open/floor/plating/rust, /area/ship/maintenance/aft) +"Nf" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/docking_port/mobile{ + launch_status = 0; + port_direction = 8; + preferred_direction = 4; + dir = 2 + }, +/turf/open/floor/plating, +/area/ship/external) "NN" = ( /obj/structure/frame/computer{ dir = 4 @@ -1278,6 +1291,7 @@ VB VB VB VB +VB "} (2,1,1) = {" VB @@ -1297,6 +1311,7 @@ VB VB VB VB +VB "} (3,1,1) = {" VB @@ -1316,6 +1331,7 @@ VB VB VB VB +VB "} (4,1,1) = {" VB @@ -1335,6 +1351,7 @@ Ob VB VB VB +VB "} (5,1,1) = {" VB @@ -1354,6 +1371,7 @@ Ob VB VB VB +VB "} (6,1,1) = {" VB @@ -1373,6 +1391,7 @@ nH nH VB VB +VB "} (7,1,1) = {" VB @@ -1392,6 +1411,7 @@ KG nH VB VB +VB "} (8,1,1) = {" VB @@ -1411,6 +1431,7 @@ eT nH VB VB +VB "} (9,1,1) = {" VB @@ -1430,6 +1451,7 @@ fs vR xX VB +VB "} (10,1,1) = {" VB @@ -1449,6 +1471,7 @@ kW nH NX VB +VB "} (11,1,1) = {" Xn @@ -1468,9 +1491,10 @@ IL Vt Rk MJ +VB "} (12,1,1) = {" -gl +Nf Gl ec nS @@ -1486,6 +1510,7 @@ cH Ls ZQ cG +ZQ AR "} (13,1,1) = {" @@ -1506,6 +1531,7 @@ UC Vt mY MJ +VB "} (14,1,1) = {" VB @@ -1525,6 +1551,7 @@ MJ MJ VB VB +VB "} (15,1,1) = {" VB @@ -1544,6 +1571,7 @@ zy VB VB VB +VB "} (16,1,1) = {" VB @@ -1563,6 +1591,7 @@ zy VB VB VB +VB "} (17,1,1) = {" VB @@ -1582,6 +1611,7 @@ VB VB VB VB +VB "} (18,1,1) = {" VB @@ -1601,4 +1631,25 @@ VB VB VB VB +VB +"} +(19,1,1) = {" +VB +VB +VB +VB +VB +VB +VB +VB +VB +VB +VB +VB +VB +VB +VB +VB +VB +VB "} diff --git a/_maps/shuttles/shiptest/independent_byo.dmm b/_maps/shuttles/independent/independent_byo.dmm similarity index 100% rename from _maps/shuttles/shiptest/independent_byo.dmm rename to _maps/shuttles/independent/independent_byo.dmm diff --git a/_maps/shuttles/shiptest/independent_caravan.dmm b/_maps/shuttles/independent/independent_caravan.dmm similarity index 100% rename from _maps/shuttles/shiptest/independent_caravan.dmm rename to _maps/shuttles/independent/independent_caravan.dmm diff --git a/_maps/shuttles/shiptest/independent_dwayne.dmm b/_maps/shuttles/independent/independent_dwayne.dmm similarity index 99% rename from _maps/shuttles/shiptest/independent_dwayne.dmm rename to _maps/shuttles/independent/independent_dwayne.dmm index 6f86b626025b..645b3a652960 100644 --- a/_maps/shuttles/shiptest/independent_dwayne.dmm +++ b/_maps/shuttles/independent/independent_dwayne.dmm @@ -1552,8 +1552,9 @@ /obj/effect/turf_decal/corner/opaque/blue/half{ dir = 1 }, -/obj/item/clothing/head/caphat/cowboy, /obj/item/radio/intercom/wideband/directional/east, +/obj/item/clothing/suit/armor/vest/capcarapace/duster, +/obj/item/clothing/head/caphat/cowboy, /turf/open/floor/plasteel/dark, /area/ship/bridge) "Ka" = ( diff --git a/_maps/shuttles/shiptest/independent_halftrack.dmm b/_maps/shuttles/independent/independent_halftrack.dmm similarity index 100% rename from _maps/shuttles/shiptest/independent_halftrack.dmm rename to _maps/shuttles/independent/independent_halftrack.dmm diff --git a/_maps/shuttles/shiptest/independent_junker.dmm b/_maps/shuttles/independent/independent_junker.dmm similarity index 100% rename from _maps/shuttles/shiptest/independent_junker.dmm rename to _maps/shuttles/independent/independent_junker.dmm diff --git a/_maps/shuttles/shiptest/independent_kilo.dmm b/_maps/shuttles/independent/independent_kilo.dmm similarity index 99% rename from _maps/shuttles/shiptest/independent_kilo.dmm rename to _maps/shuttles/independent/independent_kilo.dmm index 48c5487f6ebe..29264dd2958f 100644 --- a/_maps/shuttles/shiptest/independent_kilo.dmm +++ b/_maps/shuttles/independent/independent_kilo.dmm @@ -646,6 +646,7 @@ /obj/item/spacecash/bundle/c1000, /obj/item/spacecash/bundle/c1000, /obj/item/spacecash/bundle/c1000, +/obj/item/clothing/suit/armor/vest/capcarapace/duster, /turf/open/floor/carpet, /area/ship/crew) "da" = ( diff --git a/_maps/shuttles/shiptest/independent_lagoon.dmm b/_maps/shuttles/independent/independent_lagoon.dmm similarity index 100% rename from _maps/shuttles/shiptest/independent_lagoon.dmm rename to _maps/shuttles/independent/independent_lagoon.dmm diff --git a/_maps/shuttles/shiptest/independent_litieguai.dmm b/_maps/shuttles/independent/independent_litieguai.dmm similarity index 100% rename from _maps/shuttles/shiptest/independent_litieguai.dmm rename to _maps/shuttles/independent/independent_litieguai.dmm diff --git a/_maps/shuttles/shiptest/independent_masinyane.dmm b/_maps/shuttles/independent/independent_masinyane.dmm similarity index 100% rename from _maps/shuttles/shiptest/independent_masinyane.dmm rename to _maps/shuttles/independent/independent_masinyane.dmm diff --git a/_maps/shuttles/shiptest/independent_meta.dmm b/_maps/shuttles/independent/independent_meta.dmm similarity index 100% rename from _maps/shuttles/shiptest/independent_meta.dmm rename to _maps/shuttles/independent/independent_meta.dmm diff --git a/_maps/shuttles/shiptest/independent_mudskipper.dmm b/_maps/shuttles/independent/independent_mudskipper.dmm similarity index 100% rename from _maps/shuttles/shiptest/independent_mudskipper.dmm rename to _maps/shuttles/independent/independent_mudskipper.dmm diff --git a/_maps/shuttles/shiptest/independent_nemo.dmm b/_maps/shuttles/independent/independent_nemo.dmm similarity index 100% rename from _maps/shuttles/shiptest/independent_nemo.dmm rename to _maps/shuttles/independent/independent_nemo.dmm diff --git a/_maps/shuttles/shiptest/independent_pillbottle.dmm b/_maps/shuttles/independent/independent_pillbottle.dmm similarity index 100% rename from _maps/shuttles/shiptest/independent_pillbottle.dmm rename to _maps/shuttles/independent/independent_pillbottle.dmm diff --git a/_maps/shuttles/shiptest/independent_rigger.dmm b/_maps/shuttles/independent/independent_rigger.dmm similarity index 100% rename from _maps/shuttles/shiptest/independent_rigger.dmm rename to _maps/shuttles/independent/independent_rigger.dmm diff --git a/_maps/shuttles/shiptest/independent_rube_goldberg.dmm b/_maps/shuttles/independent/independent_rube_goldberg.dmm similarity index 100% rename from _maps/shuttles/shiptest/independent_rube_goldberg.dmm rename to _maps/shuttles/independent/independent_rube_goldberg.dmm diff --git a/_maps/shuttles/shiptest/independent_schmiedeberg.dmm b/_maps/shuttles/independent/independent_schmiedeberg.dmm similarity index 100% rename from _maps/shuttles/shiptest/independent_schmiedeberg.dmm rename to _maps/shuttles/independent/independent_schmiedeberg.dmm diff --git a/_maps/shuttles/shiptest/independent_shepherd.dmm b/_maps/shuttles/independent/independent_shepherd.dmm similarity index 100% rename from _maps/shuttles/shiptest/independent_shepherd.dmm rename to _maps/shuttles/independent/independent_shepherd.dmm diff --git a/_maps/shuttles/shiptest/independent_shetland.dmm b/_maps/shuttles/independent/independent_shetland.dmm similarity index 100% rename from _maps/shuttles/shiptest/independent_shetland.dmm rename to _maps/shuttles/independent/independent_shetland.dmm diff --git a/_maps/shuttles/shiptest/independent_tranquility.dmm b/_maps/shuttles/independent/independent_tranquility.dmm similarity index 99% rename from _maps/shuttles/shiptest/independent_tranquility.dmm rename to _maps/shuttles/independent/independent_tranquility.dmm index e612c7fe57e9..27fd11a9368d 100644 --- a/_maps/shuttles/shiptest/independent_tranquility.dmm +++ b/_maps/shuttles/independent/independent_tranquility.dmm @@ -4729,7 +4729,6 @@ /obj/item/clothing/head/beret/chem, /obj/item/clothing/suit/hooded/wintercoat/science, /obj/item/clothing/suit/jacket/miljacket, -/obj/item/clothing/under/pants/mustangjeans, /obj/item/clothing/under/dress/sundress, /obj/item/clothing/under/color/random, /obj/item/clothing/under/color/jumpskirt/random, diff --git a/_maps/shuttles/shiptest/nanotrasen_heron.dmm b/_maps/shuttles/independent/nanotrasen_heron.dmm similarity index 99% rename from _maps/shuttles/shiptest/nanotrasen_heron.dmm rename to _maps/shuttles/independent/nanotrasen_heron.dmm index 0898de1238af..a7ccdec275fc 100644 --- a/_maps/shuttles/shiptest/nanotrasen_heron.dmm +++ b/_maps/shuttles/independent/nanotrasen_heron.dmm @@ -773,7 +773,7 @@ dir = 5 }, /obj/machinery/computer/atmos_control/tank/air_tank{ - sensors = list("hairon"="Heron Air Mix Tank") + sensors = list("hairon"="Heron Air Mix Tank") }, /obj/machinery/light_switch{ pixel_y = 23 @@ -6617,8 +6617,6 @@ req_access_txt = "20" }, /obj/item/clothing/neck/cloak/cap, -/obj/item/clothing/gloves/color/captain, -/obj/item/clothing/head/caphat, /obj/item/radio/headset/heads/captain/alt, /obj/item/storage/backpack/captain, /obj/item/clothing/under/rank/centcom/officer, @@ -6640,6 +6638,8 @@ /obj/item/clothing/suit/hooded/wintercoat/centcom, /obj/item/clothing/head/beret/centcom_formal, /obj/item/stock_parts/cell/gun/upgraded, +/obj/item/clothing/head/centcom_cap, +/obj/item/clothing/gloves/combat, /turf/open/floor/carpet/green, /area/ship/crew/dorm/dormtwo) "yc" = ( @@ -9267,6 +9267,10 @@ /obj/effect/turf_decal/corner/opaque/white/diagonal, /turf/open/floor/plasteel, /area/ship/crew/canteen/kitchen) +"HR" = ( +/obj/item/clothing/gloves/color/captain/nt, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/law_office) "HT" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, @@ -9707,7 +9711,7 @@ dir = 9 }, /obj/machinery/computer/atmos_control/tank/toxin_tank{ - sensors = list("heron_plasm"="Heron Plasma Tank") + sensors = list("heron_plasm"="Heron Plasma Tank") }, /obj/structure/cable{ icon_state = "0-4" @@ -15962,7 +15966,7 @@ oz Oa QG QG -QG +HR QG QG Ge diff --git a/_maps/shuttles/shiptest/radio_funny.dmm b/_maps/shuttles/independent/radio_funny.dmm similarity index 100% rename from _maps/shuttles/shiptest/radio_funny.dmm rename to _maps/shuttles/independent/radio_funny.dmm diff --git a/_maps/shuttles/shiptest/inteq_colossus.dmm b/_maps/shuttles/inteq/inteq_colossus.dmm similarity index 100% rename from _maps/shuttles/shiptest/inteq_colossus.dmm rename to _maps/shuttles/inteq/inteq_colossus.dmm diff --git a/_maps/shuttles/shiptest/inteq_hound.dmm b/_maps/shuttles/inteq/inteq_hound.dmm similarity index 100% rename from _maps/shuttles/shiptest/inteq_hound.dmm rename to _maps/shuttles/inteq/inteq_hound.dmm diff --git a/_maps/shuttles/shiptest/inteq_talos.dmm b/_maps/shuttles/inteq/inteq_talos.dmm similarity index 100% rename from _maps/shuttles/shiptest/inteq_talos.dmm rename to _maps/shuttles/inteq/inteq_talos.dmm diff --git a/_maps/shuttles/shiptest/inteq_vaquero.dmm b/_maps/shuttles/inteq/inteq_vaquero.dmm similarity index 100% rename from _maps/shuttles/shiptest/inteq_vaquero.dmm rename to _maps/shuttles/inteq/inteq_vaquero.dmm diff --git a/_maps/shuttles/shiptest/minutemen_asclepius.dmm b/_maps/shuttles/minutemen/minutemen_asclepius.dmm similarity index 100% rename from _maps/shuttles/shiptest/minutemen_asclepius.dmm rename to _maps/shuttles/minutemen/minutemen_asclepius.dmm diff --git a/_maps/shuttles/shiptest/minutemen_cepheus.dmm b/_maps/shuttles/minutemen/minutemen_cepheus.dmm similarity index 99% rename from _maps/shuttles/shiptest/minutemen_cepheus.dmm rename to _maps/shuttles/minutemen/minutemen_cepheus.dmm index de6f56531bb5..d14a368faf55 100644 --- a/_maps/shuttles/shiptest/minutemen_cepheus.dmm +++ b/_maps/shuttles/minutemen/minutemen_cepheus.dmm @@ -364,7 +364,10 @@ }, /obj/effect/turf_decal/techfloor/corner, /mob/living/simple_animal/bot/secbot/beepsky/jr, -/obj/machinery/firealarm/directional/west, +/obj/machinery/firealarm/directional/west{ + pixel_y = 1; + pixel_x = -34 + }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/button/door{ dir = 4; @@ -494,6 +497,10 @@ pixel_y = 11 }, /obj/machinery/light/small/directional/south, +/obj/machinery/advanced_airlock_controller{ + pixel_y = 10; + pixel_x = -25 + }, /turf/open/floor/plasteel/tech, /area/ship/engineering/atmospherics) "fJ" = ( @@ -1117,14 +1124,14 @@ dir = 1 }, /obj/structure/rack, -/obj/item/circuitboard/machine/circuit_imprinter{ - pixel_y = -6 - }, /obj/item/circuitboard/machine/rdserver, /obj/item/circuitboard/computer/rdconsole{ pixel_y = 7 }, /obj/effect/decal/cleanable/dirt, +/obj/item/circuitboard/machine/circuit_imprinter/department/basic{ + pixel_y = -10 + }, /turf/open/floor/plasteel/tech/techmaint, /area/ship/science/robotics) "mK" = ( @@ -1456,6 +1463,9 @@ /obj/structure/sign/poster/official/moth/hardhats{ pixel_x = 32 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, /turf/open/floor/plasteel/dark, /area/ship/science/robotics) "qI" = ( @@ -1907,7 +1917,6 @@ /obj/item/gun/ballistic/automatic/pistol/m1911{ pixel_y = 3 }, -/obj/structure/extinguisher_cabinet/directional/north, /obj/machinery/light/directional/west, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, /obj/item/gun/ballistic/automatic/pistol/m1911{ @@ -1916,7 +1925,7 @@ /obj/structure/sign/poster/contraband/twelve_gauge{ pixel_y = 32 }, -/obj/item/gun/ballistic/shotgun/bulldog/minutemen, +/obj/item/gun/ballistic/shotgun/riot, /turf/open/floor/plasteel/tech, /area/ship/security) "tX" = ( @@ -2058,9 +2067,6 @@ }, /obj/machinery/firealarm/directional/south, /obj/item/radio/intercom/directional/south, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, /turf/open/floor/plasteel/dark, /area/ship/science/robotics) "vQ" = ( @@ -2151,14 +2157,13 @@ /turf/open/floor/plasteel/tech/grid, /area/ship/science/robotics) "wC" = ( -/obj/machinery/rnd/production/circuit_imprinter/department/science, /obj/structure/sign/poster/contraband/free_drone{ pixel_y = -32 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, /obj/machinery/airalarm/directional/east, +/obj/structure/frame/machine{ + anchored = 1 + }, /turf/open/floor/plasteel/dark, /area/ship/science/robotics) "wF" = ( @@ -3666,9 +3671,6 @@ /turf/open/floor/plasteel, /area/ship/hallway/central) "Nr" = ( -/obj/machinery/advanced_airlock_controller{ - pixel_y = 26 - }, /obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer4{ dir = 4 }, @@ -4016,9 +4018,6 @@ /obj/machinery/light/directional/west{ light_color = "#e8eaff" }, -/obj/structure/sign/poster/official/obey{ - pixel_x = -31 - }, /obj/structure/sign/departments/security{ pixel_y = -32 }, @@ -4113,11 +4112,11 @@ pixel_x = 3; pixel_y = -3 }, -/obj/item/storage/box/lethalshot{ - pixel_x = 4; - pixel_y = -7 - }, /obj/item/ammo_box/magazine/cm15_mag, +/obj/item/storage/box/rubbershot{ + pixel_x = 3; + pixel_y = -3 + }, /turf/open/floor/plasteel/tech/grid, /area/ship/security) "RN" = ( @@ -4149,10 +4148,10 @@ pixel_y = 28 }, /obj/item/clothing/glasses/meson, -/obj/item/gps/mining, /obj/item/pickaxe, /obj/item/pickaxe, /obj/item/circuitboard/machine/ore_redemption, +/obj/item/gps/mining, /turf/open/floor/plasteel/dark, /area/ship/cargo) "SE" = ( @@ -4211,7 +4210,9 @@ name = "tactical swivel chair" }, /obj/effect/decal/cleanable/vomit/old, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, /turf/open/floor/plasteel/dark, /area/ship/science/robotics) "Tz" = ( @@ -4326,6 +4327,7 @@ /obj/structure/sign/poster/contraband/stechkin{ pixel_y = -32 }, +/obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/plasteel/tech, /area/ship/security) "Up" = ( diff --git a/_maps/shuttles/shiptest/minutemen_corvus.dmm b/_maps/shuttles/minutemen/minutemen_corvus.dmm similarity index 100% rename from _maps/shuttles/shiptest/minutemen_corvus.dmm rename to _maps/shuttles/minutemen/minutemen_corvus.dmm diff --git a/_maps/shuttles/shiptest/minutemen_vela.dmm b/_maps/shuttles/minutemen/minutemen_vela.dmm similarity index 100% rename from _maps/shuttles/shiptest/minutemen_vela.dmm rename to _maps/shuttles/minutemen/minutemen_vela.dmm diff --git a/_maps/shuttles/misc/hunter_bounty.dmm b/_maps/shuttles/misc/hunter_bounty.dmm deleted file mode 100644 index b25215cfbcd8..000000000000 --- a/_maps/shuttles/misc/hunter_bounty.dmm +++ /dev/null @@ -1,479 +0,0 @@ -//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/hunter) -"c" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/airlock/external, -/turf/open/floor/plating, -/area/shuttle/hunter) -"d" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/turf/open/floor/plating, -/area/shuttle/hunter) -"e" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/shuttle/hunter) -"f" = ( -/obj/structure/shuttle/engine/heater{ - icon_state = "heater"; - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/shuttle/hunter) -"g" = ( -/obj/structure/sign/warning/vacuum/external, -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/hunter) -"h" = ( -/turf/open/floor/plating, -/area/shuttle/hunter) -"i" = ( -/obj/structure/grille, -/obj/structure/window/plasma/reinforced/plastitanium, -/turf/open/floor/plating, -/area/shuttle/hunter) -"j" = ( -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plating, -/area/shuttle/hunter) -"k" = ( -/obj/structure/sign/poster/contraband/inteq, -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/hunter) -"l" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/machinery/door/airlock/external, -/turf/open/floor/plating, -/area/shuttle/hunter) -"m" = ( -/obj/structure/chair/office{ - dir = 4 - }, -/turf/open/floor/pod/light, -/area/shuttle/hunter) -"n" = ( -/obj/structure/table, -/turf/open/floor/pod/light, -/area/shuttle/hunter) -"o" = ( -/obj/structure/chair/office{ - dir = 8 - }, -/turf/open/floor/pod/light, -/area/shuttle/hunter) -"p" = ( -/obj/effect/mob_spawn/human/fugitive/bounty/hook, -/turf/open/floor/pod/light, -/area/shuttle/hunter) -"q" = ( -/obj/structure/shuttle/engine/heater{ - icon_state = "heater"; - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/shuttle/hunter) -"r" = ( -/obj/machinery/computer/launchpad{ - dir = 4 - }, -/turf/open/floor/pod/dark, -/area/shuttle/hunter) -"s" = ( -/turf/open/floor/pod/dark, -/area/shuttle/hunter) -"t" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 9 - }, -/turf/open/floor/pod/dark, -/area/shuttle/hunter) -"u" = ( -/obj/structure/curtain/bounty, -/turf/open/floor/pod/dark, -/area/shuttle/hunter) -"v" = ( -/obj/structure/chair/office{ - dir = 4 - }, -/turf/open/floor/pod/dark, -/area/shuttle/hunter) -"w" = ( -/obj/structure/table, -/obj/item/phone, -/turf/open/floor/pod/dark, -/area/shuttle/hunter) -"x" = ( -/obj/structure/table, -/turf/open/floor/pod/dark, -/area/shuttle/hunter) -"y" = ( -/obj/structure/chair/office{ - dir = 8 - }, -/turf/open/floor/pod/dark, -/area/shuttle/hunter) -"z" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 4 - }, -/turf/open/floor/pod/dark, -/area/shuttle/hunter) -"A" = ( -/obj/machinery/computer/helm{ - icon_state = "computer"; - dir = 8 - }, -/turf/open/floor/pod/dark, -/area/shuttle/hunter) -"B" = ( -/obj/machinery/launchpad, -/turf/open/floor/pod/dark, -/area/shuttle/hunter) -"C" = ( -/obj/item/multitool, -/turf/open/floor/pod/dark, -/area/shuttle/hunter) -"D" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/turf/open/floor/pod/dark, -/area/shuttle/hunter) -"E" = ( -/obj/structure/table, -/obj/item/binoculars, -/turf/open/floor/pod/dark, -/area/shuttle/hunter) -"F" = ( -/obj/machinery/power/smes, -/turf/open/floor/pod/dark, -/area/shuttle/hunter) -"G" = ( -/obj/machinery/fugitive_capture, -/turf/open/floor/pod/dark, -/area/shuttle/hunter) -"H" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 10 - }, -/turf/open/floor/pod/dark, -/area/shuttle/hunter) -"I" = ( -/obj/structure/frame/computer{ - anchored = 1; - dir = 8 - }, -/turf/open/floor/pod/dark, -/area/shuttle/hunter) -"J" = ( -/obj/machinery/suit_storage_unit/standard_unit, -/turf/open/floor/pod/light, -/area/shuttle/hunter) -"K" = ( -/obj/machinery/suit_storage_unit/open, -/turf/open/floor/pod/light, -/area/shuttle/hunter) -"M" = ( -/obj/effect/mob_spawn/human/fugitive/bounty/armor{ - icon_state = "sleeper"; - dir = 1 - }, -/turf/open/floor/pod/light, -/area/shuttle/hunter) -"N" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/machinery/door/airlock/external, -/obj/docking_port/mobile{ - dheight = 3; - dwidth = 3; - height = 13; - movement_force = list("KNOCKDOWN" = 0, "THROW" = 0); - name = "hunter shuttle"; - rechargeTime = 1800; - width = 15 - }, -/turf/open/floor/plating, -/area/shuttle/hunter) -"P" = ( -/obj/structure/fluff/empty_sleeper{ - icon_state = "sleeper-open"; - dir = 1 - }, -/turf/open/floor/pod/light, -/area/shuttle/hunter) -"Z" = ( -/obj/effect/mob_spawn/human/fugitive/bounty/synth, -/turf/open/floor/pod/light, -/area/shuttle/hunter) - -(1,1,1) = {" -a -a -a -b -a -a -a -a -a -b -a -a -a -"} -(2,1,1) = {" -a -a -a -b -a -a -a -a -a -b -a -a -a -"} -(3,1,1) = {" -b -a -a -b -a -e -a -e -a -b -a -a -b -"} -(4,1,1) = {" -b -a -e -b -b -q -i -q -b -b -e -a -b -"} -(5,1,1) = {" -b -b -f -b -b -r -B -F -b -b -f -b -b -"} -(6,1,1) = {" -b -b -g -b -b -s -C -G -b -b -g -b -b -"} -(7,1,1) = {" -c -d -h -j -l -t -D -H -c -d -h -j -N -"} -(8,1,1) = {" -b -b -i -b -b -u -u -u -b -b -i -b -b -"} -(9,1,1) = {" -a -b -i -b -m -v -s -s -J -b -i -b -a -"} -(10,1,1) = {" -a -a -i -k -n -w -x -s -J -b -i -a -a -"} -(11,1,1) = {" -a -a -a -b -n -x -E -s -K -b -a -a -a -"} -(12,1,1) = {" -a -a -a -b -o -y -s -s -J -b -a -a -a -"} -(13,1,1) = {" -a -a -a -i -b -u -u -u -b -i -a -a -a -"} -(14,1,1) = {" -a -a -a -i -p -s -s -s -P -i -a -a -a -"} -(15,1,1) = {" -a -a -a -i -Z -z -s -z -M -i -a -a -a -"} -(16,1,1) = {" -a -a -a -b -i -A -n -I -i -b -a -a -a -"} -(17,1,1) = {" -a -a -a -a -i -i -i -i -i -a -a -a -a -"} diff --git a/_maps/shuttles/misc/hunter_russian.dmm b/_maps/shuttles/misc/hunter_russian.dmm deleted file mode 100644 index 6ac6c73929ee..000000000000 --- a/_maps/shuttles/misc/hunter_russian.dmm +++ /dev/null @@ -1,493 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( -/turf/template_noop, -/area/template_noop) -"b" = ( -/turf/closed/wall, -/area/shuttle/hunter) -"c" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/shuttle/hunter) -"d" = ( -/obj/structure/shuttle/engine/heater{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/shuttle/hunter) -"e" = ( -/obj/machinery/portable_atmospherics/scrubber/huge, -/turf/open/floor/plating, -/area/shuttle/hunter) -"f" = ( -/obj/machinery/power/smes, -/turf/open/floor/plating, -/area/shuttle/hunter) -"g" = ( -/turf/open/floor/plating, -/area/shuttle/hunter) -"h" = ( -/obj/machinery/door/airlock/security/glass, -/turf/open/floor/mineral/plastitanium/red, -/area/shuttle/hunter) -"i" = ( -/obj/machinery/door/airlock/security/glass, -/obj/structure/fans/tiny, -/turf/open/floor/mineral/plastitanium/red, -/area/shuttle/hunter) -"j" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/shuttle/hunter) -"k" = ( -/turf/open/floor/mineral/plastitanium/red, -/area/shuttle/hunter) -"m" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/item/weldingtool/largetank, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/hunter) -"n" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/reagent_dispensers/watertank, -/obj/item/reagent_containers/glass/bucket, -/obj/item/mop, -/obj/item/storage/bag/trash{ - pixel_x = 6 - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/hunter) -"o" = ( -/obj/effect/mob_spawn/human/fugitive/russian{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium/red, -/area/shuttle/hunter) -"p" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate{ - icon_state = "crateopen" - }, -/turf/open/floor/plating, -/area/shuttle/hunter) -"q" = ( -/turf/open/floor/mineral/plastitanium, -/area/shuttle/hunter) -"r" = ( -/obj/effect/turf_decal/arrows{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium/red, -/area/shuttle/hunter) -"s" = ( -/obj/structure/table, -/obj/item/storage/fancy/cigarettes/cigars/cohiba{ - pixel_y = 6 - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/hunter) -"t" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate/large{ - icon_state = "crittercrate" - }, -/turf/open/floor/plating, -/area/shuttle/hunter) -"u" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/hunter) -"v" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/shuttle/hunter) -"w" = ( -/obj/machinery/fugitive_capture, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/hunter) -"x" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plating, -/area/shuttle/hunter) -"y" = ( -/turf/template_noop, -/area/shuttle/hunter) -"z" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium/red, -/area/shuttle/hunter) -"A" = ( -/obj/machinery/computer/helm{ - dir = 8 - }, -/turf/open/floor/mineral/plastitanium/red, -/area/shuttle/hunter) -"B" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/closet/crate{ - icon_state = "crateopen" - }, -/turf/open/floor/plating, -/area/shuttle/hunter) -"C" = ( -/obj/machinery/computer/camera_advanced{ - dir = 8 - }, -/turf/open/floor/mineral/plastitanium/red, -/area/shuttle/hunter) -"D" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/mineral/plastitanium/red, -/area/shuttle/hunter) -"E" = ( -/obj/structure/frame/computer{ - anchored = 1; - dir = 8 - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/hunter) -"F" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate/engineering{ - icon_state = "engi_crateopen" - }, -/turf/open/floor/plating, -/area/shuttle/hunter) -"G" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/drinks/bottle/vodka, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/hunter) -"H" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/closet/crate/coffin{ - icon_state = "coffinopen" - }, -/turf/open/floor/plating, -/area/shuttle/hunter) -"I" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/mecha_wreckage/ripley, -/turf/open/floor/plating, -/area/shuttle/hunter) -"J" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/hunter) -"K" = ( -/obj/machinery/door/airlock/security/glass, -/obj/structure/fans/tiny, -/obj/docking_port/mobile{ - dheight = 3; - dwidth = 3; - height = 13; - movement_force = list("KNOCKDOWN" = 0, "THROW" = 0); - name = "hunter shuttle"; - rechargeTime = 1800; - width = 15 - }, -/turf/open/floor/mineral/plastitanium/red, -/area/shuttle/hunter) -"L" = ( -/obj/effect/mob_spawn/human/fugitive/russian{ - dir = 1 - }, -/turf/open/floor/plating, -/area/shuttle/hunter) -"N" = ( -/obj/machinery/suit_storage_unit/standard_unit, -/obj/effect/turf_decal/industrial/warning{ - dir = 2 - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/hunter) -"Q" = ( -/obj/item/book/manual/ripley_build_and_repair, -/turf/open/floor/mineral/plastitanium/red, -/area/shuttle/hunter) -"Y" = ( -/obj/machinery/suit_storage_unit/standard_unit, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/hunter) - -(1,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(2,1,1) = {" -a -a -a -a -a -a -b -c -c -b -a -a -a -a -a -a -"} -(3,1,1) = {" -a -c -c -a -b -b -b -d -d -b -b -b -a -c -c -a -"} -(4,1,1) = {" -b -d -d -b -b -p -t -x -B -B -F -b -b -d -d -b -"} -(5,1,1) = {" -b -e -g -b -j -q -u -q -q -u -u -H -b -g -L -b -"} -(6,1,1) = {" -b -e -g -h -k -k -k -k -k -D -k -k -h -g -L -b -"} -(7,1,1) = {" -b -f -g -b -x -k -Y -Y -Y -Y -Q -I -b -g -L -b -"} -(8,1,1) = {" -b -b -b -b -b -h -b -b -b -b -h -b -b -b -b -b -"} -(9,1,1) = {" -a -b -b -b -m -k -b -y -y -b -k -N -b -b -b -a -"} -(10,1,1) = {" -a -a -a -i -k -k -v -y -y -v -k -k -K -a -a -a -"} -(11,1,1) = {" -a -a -a -b -n -r -b -y -y -b -r -J -b -a -a -a -"} -(12,1,1) = {" -a -a -a -b -b -h -b -b -b -b -h -b -b -a -a -a -"} -(13,1,1) = {" -a -a -a -b -o -k -r -z -z -k -k -o -b -a -a -a -"} -(14,1,1) = {" -a -a -a -b -b -s -w -A -C -E -G -b -b -a -a -a -"} -(15,1,1) = {" -a -a -a -a -b -b -v -v -v -v -b -b -a -a -a -a -"} diff --git a/_maps/shuttles/misc/pirate_default.dmm b/_maps/shuttles/misc/pirate_default.dmm deleted file mode 100644 index e24ae5d92697..000000000000 --- a/_maps/shuttles/misc/pirate_default.dmm +++ /dev/null @@ -1,1521 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aa" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 1 - }, -/obj/machinery/light/small/directional/west, -/obj/machinery/airalarm/directional/west, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/pod/dark, -/area/shuttle/pirate) -"ab" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/recharger, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/red, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/shuttle/pirate) -"ac" = ( -/obj/machinery/computer/helm, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/red, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/shuttle/pirate) -"ad" = ( -/obj/structure/table, -/obj/machinery/button/door{ - id = "piratebridge"; - name = "Bridge Shutters Control"; - pixel_y = -5 - }, -/obj/item/radio/intercom/directional/north{ - pixel_y = 5 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/red, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/shuttle/pirate) -"ae" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/shuttle/pirate) -"af" = ( -/turf/template_noop, -/area/template_noop) -"ag" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/shuttle/pirate) -"ah" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/shuttle/pirate) -"ai" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/south, -/turf/open/floor/pod/dark, -/area/shuttle/pirate) -"aj" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/shuttle/pirate) -"ak" = ( -/obj/machinery/airalarm/directional/west, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/west, -/obj/structure/closet/secure_closet/freezer{ - locked = 0; - name = "fridge" - }, -/obj/item/storage/box/donkpockets{ - pixel_x = 2; - pixel_y = 3 - }, -/obj/item/storage/box/donkpockets, -/obj/item/storage/fancy/donut_box, -/obj/item/reagent_containers/food/snacks/cookie, -/obj/item/reagent_containers/food/snacks/cookie{ - pixel_x = -6; - pixel_y = -6 - }, -/obj/item/reagent_containers/food/snacks/chocolatebar, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/transparent/bar, -/obj/effect/turf_decal/corner/transparent/bar{ - dir = 1 - }, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/milk, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"al" = ( -/obj/machinery/loot_locator, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/shuttle/pirate) -"am" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/shuttle/pirate) -"an" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 4 - }, -/obj/machinery/button/door{ - id = "piratebridgebolt"; - name = "Bridge Bolt Control"; - normaldoorcontrol = 1; - pixel_y = -25; - specialfunctions = 4 - }, -/obj/effect/turf_decal/corner/opaque/red, -/turf/open/floor/plasteel/dark, -/area/shuttle/pirate) -"ao" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 1 - }, -/obj/machinery/light/small/directional/east, -/obj/machinery/airalarm/directional/east, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/pod/dark, -/area/shuttle/pirate) -"ap" = ( -/obj/machinery/door/airlock/hatch{ - name = "Port Gun Battery" - }, -/obj/structure/barricade/wooden/crude, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/pod/dark, -/area/shuttle/pirate) -"aq" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/transparent/bar, -/obj/effect/turf_decal/corner/transparent/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"ar" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/storage/fancy/cigarettes{ - pixel_x = 2; - pixel_y = 6 - }, -/obj/item/storage/fancy/cigarettes/cigpack_carp{ - pixel_x = 10; - pixel_y = 6 - }, -/obj/item/storage/fancy/cigarettes/cigpack_robust{ - pixel_x = 2 - }, -/obj/item/storage/fancy/cigarettes/cigpack_midori{ - pixel_x = 10 - }, -/obj/item/storage/fancy/cigarettes/cigpack_shadyjims{ - pixel_x = 2; - pixel_y = -6 - }, -/obj/item/storage/fancy/cigarettes/cigpack_uplift{ - pixel_x = 10; - pixel_y = -6 - }, -/obj/item/lighter{ - pixel_x = -10; - pixel_y = -2 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/transparent/bar, -/obj/effect/turf_decal/corner/transparent/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"au" = ( -/obj/machinery/door/airlock/hatch{ - id_tag = "piratebridgebolt"; - name = "Bridge" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/plasteel/dark, -/area/shuttle/pirate) -"av" = ( -/obj/machinery/door/airlock/hatch{ - name = "Starboard Gun Battery" - }, -/obj/structure/barricade/wooden/crude, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/pod/dark, -/area/shuttle/pirate) -"aw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/transparent/bar, -/obj/effect/turf_decal/corner/transparent/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"ax" = ( -/obj/machinery/firealarm/directional/north, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/bar, -/obj/effect/turf_decal/corner/transparent/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"ay" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/vomit/old, -/obj/effect/turf_decal/corner/transparent/bar, -/obj/effect/turf_decal/corner/transparent/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"az" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/machinery/chem_dispenser/drinks{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/bar, -/obj/effect/turf_decal/corner/transparent/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"aB" = ( -/obj/machinery/light/small/directional/east, -/obj/machinery/computer/monitor/secret{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm/directional/south, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/red, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/shuttle/pirate) -"aC" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/red, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 4 - }, -/obj/structure/frame/computer{ - anchored = 1; - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/shuttle/pirate) -"aD" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/shuttle/pirate) -"aF" = ( -/obj/machinery/door/airlock/external/glass{ - id_tag = "pirateportexternal" - }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/plating, -/area/shuttle/pirate) -"aG" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/machinery/power/port_gen/pacman{ - anchored = 1 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/shuttle/pirate) -"aH" = ( -/obj/structure/shuttle/engine/propulsion/left, -/turf/open/floor/plating/airless, -/area/shuttle/pirate) -"aI" = ( -/obj/machinery/light/small/directional/west, -/obj/structure/sign/warning/vacuum/external{ - pixel_x = -32 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/shuttle/pirate) -"aJ" = ( -/obj/machinery/door/airlock/external/glass{ - id_tag = "pirateportexternal" - }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/plating, -/area/shuttle/pirate) -"aK" = ( -/obj/structure/shuttle/engine/propulsion, -/turf/open/floor/plating/airless, -/area/shuttle/pirate) -"aL" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/shuttle/pirate) -"aM" = ( -/obj/structure/closet/secure_closet/personal, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/wood, -/area/shuttle/pirate) -"aN" = ( -/obj/machinery/light/small/directional/south, -/obj/machinery/button/door{ - id = "pirateportexternal"; - name = "External Bolt Control"; - normaldoorcontrol = 1; - pixel_x = -4; - pixel_y = -25; - specialfunctions = 4 - }, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/shuttle/pirate) -"aO" = ( -/obj/machinery/light/small/directional/south, -/obj/machinery/button/door{ - id = "piratestarboardexternal"; - name = "External Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 4; - pixel_y = -25; - specialfunctions = 4 - }, -/obj/effect/turf_decal/industrial/warning/corner, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/shuttle/pirate) -"aQ" = ( -/obj/machinery/porta_turret/syndicate/energy{ - dir = 1; - faction = list("pirate") - }, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/shuttle/pirate) -"aR" = ( -/obj/machinery/porta_turret/syndicate/energy{ - faction = list("pirate") - }, -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/pirate) -"aS" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/shuttle/pirate) -"aU" = ( -/obj/structure/sign/departments/engineering, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/shuttle/pirate) -"aV" = ( -/obj/effect/mob_spawn/human/pirate{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/shuttle/pirate) -"aW" = ( -/obj/machinery/light/small/directional/west, -/obj/structure/frame/computer{ - anchored = 1; - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/firealarm/directional/south, -/obj/effect/turf_decal/corner/opaque/red, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/shuttle/pirate) -"be" = ( -/obj/machinery/space_heater, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/oil, -/turf/open/floor/plating, -/area/shuttle/pirate) -"bf" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/turretid{ - icon_state = "control_kill"; - lethal = 1; - locked = 0; - pixel_y = -25; - req_access = null - }, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/shuttle/pirate) -"bg" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/gun/energy/laser{ - pixel_x = -3; - pixel_y = 6 - }, -/obj/item/gun/energy/laser{ - pixel_y = 3 - }, -/obj/machinery/recharger, -/turf/open/floor/pod/light, -/area/shuttle/pirate) -"bk" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/machinery/power/smes/engineering{ - charge = 1e+006 - }, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/shuttle/pirate) -"bl" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 6 - }, -/obj/machinery/light/small/directional/north, -/obj/machinery/airalarm/directional/north, -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/gun/energy/laser{ - pixel_x = -3; - pixel_y = 6 - }, -/obj/item/gun/energy/laser{ - pixel_y = 3 - }, -/turf/open/floor/pod/light, -/area/shuttle/pirate) -"bm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/pod/dark, -/area/shuttle/pirate) -"bo" = ( -/obj/machinery/light/small/directional/east, -/obj/structure/sign/warning/vacuum/external{ - pixel_x = 32 - }, -/turf/open/floor/plating, -/area/shuttle/pirate) -"br" = ( -/obj/structure/table/wood, -/obj/item/storage/box/matches, -/obj/item/reagent_containers/food/drinks/bottle/rum{ - name = "Captain Pete's Private Reserve Cuban Spaced Rum"; - pixel_x = -6; - pixel_y = 8 - }, -/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ - pixel_x = 6; - pixel_y = 12 - }, -/obj/item/clothing/mask/cigarette/cigar, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/wood, -/area/shuttle/pirate) -"bu" = ( -/obj/machinery/firealarm/directional/north, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"bv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"bx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/transparent/bar, -/obj/effect/turf_decal/corner/transparent/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"by" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/piratepad, -/turf/open/floor/pod/dark, -/area/shuttle/pirate) -"bA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/pod/dark, -/area/shuttle/pirate) -"bB" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"bC" = ( -/obj/machinery/airalarm/directional/east, -/obj/machinery/light/small/directional/east, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/transparent/neutral, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"bF" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/machinery/microwave{ - pixel_y = 5 - }, -/obj/item/book/manual/wiki/barman_recipes{ - pixel_x = -8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/transparent/bar, -/obj/effect/turf_decal/corner/transparent/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"bH" = ( -/obj/machinery/vending/boozeomat/all_access{ - all_items_free = 1 - }, -/obj/effect/turf_decal/corner/transparent/bar, -/obj/effect/turf_decal/corner/transparent/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"bI" = ( -/obj/machinery/light/small/directional/south, -/obj/machinery/computer/piratepad_control{ - dir = 1 - }, -/turf/open/floor/pod/dark, -/area/shuttle/pirate) -"bJ" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"bK" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/sink{ - pixel_y = 25 - }, -/obj/structure/toilet{ - dir = 8 - }, -/obj/machinery/light/small/directional/south, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/shuttle/pirate) -"bM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/airlock{ - name = "Crew Cabin" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/plasteel/dark, -/area/shuttle/pirate) -"bO" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/power/apc{ - aidisabled = 1; - dir = 1; - name = "Pirate Corvette APC"; - pixel_y = 25; - req_access = null - }, -/obj/structure/reagent_dispensers/watertank, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/shuttle/pirate) -"bP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/shuttle/pirate) -"bQ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/shuttle/pirate) -"bX" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/power/terminal{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/rack, -/obj/item/storage/toolbox/mechanical{ - pixel_y = 4 - }, -/obj/item/flashlight{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/box/lights/bulbs, -/obj/item/stack/sheet/mineral/plasma{ - amount = 10 - }, -/obj/item/multitool, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/turf/open/floor/plating, -/area/shuttle/pirate) -"bZ" = ( -/obj/machinery/door/airlock/external/glass{ - id_tag = "piratestarboardexternal" - }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/plating, -/area/shuttle/pirate) -"df" = ( -/obj/machinery/porta_turret/syndicate/energy{ - dir = 4; - faction = list("pirate") - }, -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/pirate) -"dy" = ( -/obj/structure/chair/wood, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/machinery/light/small/directional/east, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood, -/area/shuttle/pirate) -"dU" = ( -/obj/machinery/light/small/directional/west, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/shuttle/pirate) -"ek" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/structure/sign/poster/contraband/peacemaker{ - pixel_x = 32 - }, -/obj/item/storage/backpack/duffelbag/syndie/x4{ - pixel_y = 8 - }, -/obj/item/grenade/smokebomb{ - pixel_x = -5 - }, -/obj/item/grenade/smokebomb{ - pixel_x = 5 - }, -/turf/open/floor/pod/light, -/area/shuttle/pirate) -"ep" = ( -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 1 - }, -/obj/structure/shuttle/engine/heater, -/turf/open/floor/plating/airless, -/area/shuttle/pirate) -"er" = ( -/obj/structure/shuttle/engine/propulsion/right, -/turf/open/floor/plating/airless, -/area/shuttle/pirate) -"et" = ( -/obj/structure/grille, -/turf/open/floor/plating/airless, -/area/shuttle/pirate) -"eu" = ( -/obj/structure/girder, -/obj/item/stack/rods{ - amount = 3 - }, -/turf/open/floor/plating/airless, -/area/shuttle/pirate) -"ew" = ( -/obj/structure/girder, -/obj/item/stack/rods{ - amount = 5 - }, -/turf/open/floor/plating/airless, -/area/shuttle/pirate) -"ex" = ( -/obj/structure/window/reinforced, -/obj/structure/frame/machine, -/obj/item/wrench, -/turf/open/floor/plating/airless, -/area/shuttle/pirate) -"ey" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "piratebridge" - }, -/obj/structure/grille, -/obj/structure/window/plasma/reinforced/plastitanium, -/turf/open/floor/plating, -/area/shuttle/pirate) -"ez" = ( -/obj/structure/window/reinforced, -/obj/structure/frame/machine, -/obj/item/stack/cable_coil/cut/red, -/turf/open/floor/plating/airless, -/area/shuttle/pirate) -"eA" = ( -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 1 - }, -/obj/structure/frame/computer{ - anchored = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/pod/dark, -/area/shuttle/pirate) -"eE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"fW" = ( -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/pirate) -"fY" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/pod/dark, -/area/shuttle/pirate) -"gY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/pod/dark, -/area/shuttle/pirate) -"jv" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "piratebridge" - }, -/obj/structure/grille, -/obj/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/plating, -/area/shuttle/pirate) -"km" = ( -/obj/machinery/atmospherics/components/unary/tank/air, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/machinery/firealarm/directional/north, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/shuttle/pirate) -"mD" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/structure/closet/secure_closet/personal, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"mU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/airlock/engineering{ - name = "Engineering" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/pod/dark, -/area/shuttle/pirate) -"np" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/machinery/airalarm/directional/north, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/shuttle/pirate) -"vB" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/storage/box/lethalshot, -/obj/item/gun/ballistic/shotgun/automatic/combat{ - pixel_x = -2; - pixel_y = 2 - }, -/turf/open/floor/pod/light, -/area/shuttle/pirate) -"wf" = ( -/obj/machinery/door/airlock{ - name = "Unisex Restrooms" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/shuttle/pirate) -"wR" = ( -/obj/machinery/porta_turret/syndicate/energy{ - dir = 8; - faction = list("pirate") - }, -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/pirate) -"yi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/hatch{ - name = "Armory Access" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/pod/dark, -/area/shuttle/pirate) -"yv" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "piratebridge" - }, -/obj/structure/grille, -/obj/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/plating, -/area/shuttle/pirate) -"zw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/airlock{ - name = "Captain's Quarters" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/wood, -/area/shuttle/pirate) -"DZ" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "piratebridge" - }, -/obj/structure/grille, -/obj/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/turf/open/floor/plating, -/area/shuttle/pirate) -"Gk" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/machinery/suit_storage_unit/pirate, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/shuttle/pirate) -"IC" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "piratebridge" - }, -/obj/structure/grille, -/obj/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/turf/open/floor/plating, -/area/shuttle/pirate) -"JT" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 5 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate, -/obj/item/storage/bag/money/vault, -/obj/item/stack/sheet/mineral/gold{ - amount = 3; - pixel_x = -2; - pixel_y = 2 - }, -/obj/item/stack/sheet/mineral/silver{ - amount = 8; - pixel_x = 2; - pixel_y = -1 - }, -/turf/open/floor/pod/light, -/area/shuttle/pirate) -"Oe" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/obj/effect/turf_decal/corner/transparent/bar, -/obj/effect/turf_decal/corner/transparent/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"OD" = ( -/obj/machinery/airalarm/directional/north, -/obj/structure/sign/poster/contraband/random{ - pixel_x = 32 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/shuttle/pirate) -"OL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/transparent/bar, -/obj/effect/turf_decal/corner/transparent/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"RY" = ( -/obj/effect/mob_spawn/human/pirate/captain{ - dir = 4 - }, -/obj/machinery/airalarm/directional/north, -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/poster/contraband/random{ - pixel_x = -32 - }, -/turf/open/floor/wood, -/area/shuttle/pirate) -"SE" = ( -/obj/machinery/door/airlock/external/glass{ - id_tag = "piratestarboardexternal" - }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/docking_port/mobile/pirate{ - dwidth = 11; - height = 16; - launch_status = 0; - name = "Pirate Ship"; - port_direction = 2; - width = 17 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/plating, -/area/shuttle/pirate) -"Ur" = ( -/obj/structure/closet/secure_closet/personal, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/shuttle/pirate) -"UL" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 10 - }, -/obj/machinery/light/small/directional/north, -/obj/machinery/firealarm/directional/north, -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/melee/transforming/energy/sword/saber/pirate{ - pixel_x = -1; - pixel_y = 6 - }, -/obj/item/melee/transforming/energy/sword/saber/pirate{ - pixel_x = 6; - pixel_y = 6 - }, -/obj/item/melee/transforming/energy/sword/saber/pirate{ - pixel_x = 13; - pixel_y = 6 - }, -/turf/open/floor/pod/light, -/area/shuttle/pirate) -"Xk" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "piratebridge" - }, -/obj/structure/grille, -/obj/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/plating, -/area/shuttle/pirate) - -(1,1,1) = {" -af -af -af -fW -aj -aj -aj -aj -aj -aj -aj -wR -af -af -af -af -"} -(2,1,1) = {" -af -et -eu -ex -eA -aa -ap -aw -ak -bF -aj -aj -aj -fW -af -af -"} -(3,1,1) = {" -aQ -aj -aj -aj -aj -aj -aj -ax -aq -ar -aj -RY -aM -ep -aH -af -"} -(4,1,1) = {" -af -af -af -af -af -af -jv -ay -Oe -OL -zw -dy -br -ep -er -af -"} -(5,1,1) = {" -af -af -af -af -af -af -aj -az -bx -bH -aj -aj -aj -aj -aj -aR -"} -(6,1,1) = {" -af -af -af -ey -IC -aj -aj -aj -yi -aj -aj -Gk -aS -aF -aI -aJ -"} -(7,1,1) = {" -af -af -ey -DZ -aC -aW -aj -bg -gY -JT -aj -km -aN -aj -aj -aj -"} -(8,1,1) = {" -af -af -jv -ab -ae -bf -aj -bl -fY -ai -aU -be -aD -aG -ep -aH -"} -(9,1,1) = {" -af -af -jv -ac -ag -am -au -bm -by -bm -mU -aL -bP -bX -ep -aK -"} -(10,1,1) = {" -af -af -jv -ad -ah -an -aj -UL -gY -bI -aj -bO -bQ -bk -ep -er -"} -(11,1,1) = {" -af -af -ey -yv -al -aB -aj -ek -bA -vB -aj -np -aO -aj -aj -aj -"} -(12,1,1) = {" -af -af -af -ey -Xk -aj -aj -aj -yi -aj -aj -Gk -aS -bZ -bo -SE -"} -(13,1,1) = {" -af -af -af -af -af -af -aj -mD -bB -Ur -aj -aj -aj -aj -aj -aR -"} -(14,1,1) = {" -af -af -af -af -af -af -jv -eE -bC -bJ -bM -dU -aV -ep -aH -af -"} -(15,1,1) = {" -aQ -aj -aj -aj -aj -aj -aj -bu -aj -wf -aj -OD -aV -ep -er -af -"} -(16,1,1) = {" -af -et -ew -ez -eA -ao -av -bv -aj -bK -aj -aj -aj -fW -af -af -"} -(17,1,1) = {" -af -af -af -fW -aj -aj -aj -aj -aj -aj -aj -df -af -af -af -af -"} diff --git a/_maps/shuttles/shiptest/nanotrasen_delta.dmm b/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm similarity index 99% rename from _maps/shuttles/shiptest/nanotrasen_delta.dmm rename to _maps/shuttles/nanotrasen/nanotrasen_delta.dmm index 67e7dd8f1afc..c91299ae62ba 100644 --- a/_maps/shuttles/shiptest/nanotrasen_delta.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm @@ -1105,6 +1105,8 @@ /obj/item/gun/energy/laser, /obj/item/megaphone/command, /obj/machinery/light/small/directional/east, +/obj/item/clothing/head/caphat/parade, +/obj/item/clothing/suit/armor/vest/capcarapace, /turf/open/floor/plasteel/dark, /area/ship/bridge) "fy" = ( diff --git a/_maps/shuttles/shiptest/nanotrasen_gecko.dmm b/_maps/shuttles/nanotrasen/nanotrasen_gecko.dmm similarity index 99% rename from _maps/shuttles/shiptest/nanotrasen_gecko.dmm rename to _maps/shuttles/nanotrasen/nanotrasen_gecko.dmm index 529647a0cbb9..1f0322ae6a5c 100644 --- a/_maps/shuttles/shiptest/nanotrasen_gecko.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_gecko.dmm @@ -1934,7 +1934,7 @@ /obj/structure/railing, /obj/machinery/computer/atmos_control/incinerator{ dir = 4; - sensors = list("gecko_burn_sensor"="Combustion Chamber") + sensors = list("gecko_burn_sensor"="Combustion Chamber") }, /turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering/engine) @@ -3399,6 +3399,8 @@ /obj/effect/turf_decal/borderfloor{ dir = 1 }, +/obj/item/clothing/head/caphat/parade, +/obj/item/clothing/suit/armor/vest/capcarapace, /turf/open/floor/plasteel/dark, /area/ship/bridge) "Ij" = ( diff --git a/_maps/shuttles/shiptest/nanotrasen_mimir.dmm b/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm similarity index 100% rename from _maps/shuttles/shiptest/nanotrasen_mimir.dmm rename to _maps/shuttles/nanotrasen/nanotrasen_mimir.dmm diff --git a/_maps/shuttles/shiptest/nanotrasen_osprey.dmm b/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm similarity index 99% rename from _maps/shuttles/shiptest/nanotrasen_osprey.dmm rename to _maps/shuttles/nanotrasen/nanotrasen_osprey.dmm index 970e3b2031f0..238992831180 100644 --- a/_maps/shuttles/shiptest/nanotrasen_osprey.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm @@ -1035,7 +1035,6 @@ /obj/item/clothing/under/rank/command/captain/nt/skirt, /obj/item/clothing/under/rank/command/captain/nt, /obj/item/clothing/suit/armor/vest/capcarapace/alt, -/obj/item/clothing/gloves/color/captain, /obj/item/clothing/glasses/sunglasses, /obj/item/clothing/head/caphat/nt, /obj/item/storage/belt/sabre, @@ -1044,6 +1043,9 @@ desc = "An ICW-era self-destruct authorization disk. The codes on this are long past obsolete, but it's still a flagrant violation of company policy."; name = "outdated nuclear authentication disk" }, +/obj/item/clothing/head/caphat/parade, +/obj/item/clothing/suit/armor/vest/capcarapace, +/obj/item/clothing/gloves/color/captain/nt, /turf/open/floor/carpet/royalblue, /area/ship/bridge) "hv" = ( diff --git a/_maps/shuttles/shiptest/nanotrasen_ranger.dmm b/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm similarity index 100% rename from _maps/shuttles/shiptest/nanotrasen_ranger.dmm rename to _maps/shuttles/nanotrasen/nanotrasen_ranger.dmm diff --git a/_maps/shuttles/shiptest/nanotrasen_skipper.dmm b/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm similarity index 99% rename from _maps/shuttles/shiptest/nanotrasen_skipper.dmm rename to _maps/shuttles/nanotrasen/nanotrasen_skipper.dmm index 27eec1aa822e..e763b1fd0765 100644 --- a/_maps/shuttles/shiptest/nanotrasen_skipper.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm @@ -1508,10 +1508,7 @@ /obj/item/storage/backpack/satchel/leather, /obj/item/clothing/shoes/laceup, /obj/item/clothing/suit/armor/vest/hop, -/obj/item/clothing/head/hopcap, /obj/item/clothing/head/hopcap/nt, -/obj/item/clothing/under/rank/command/head_of_personnel, -/obj/item/clothing/under/rank/command/head_of_personnel/skirt, /obj/item/storage/box/ids, /obj/item/storage/box/PDAs, /obj/item/assembly/flash/handheld, @@ -1521,6 +1518,8 @@ pixel_y = 32 }, /obj/effect/turf_decal/siding/wood, +/obj/item/clothing/under/rank/command/head_of_personnel/nt, +/obj/item/clothing/under/rank/command/head_of_personnel/nt/skirt, /turf/open/floor/wood, /area/ship/crew/crewthree) "lg" = ( @@ -1833,7 +1832,7 @@ "nu" = ( /obj/machinery/computer/atmos_control/incinerator{ dir = 4; - sensors = list("nemo_incinerator_sensor"="Incinerator Chamber") + sensors = list("nemo_incinerator_sensor"="Incinerator Chamber") }, /obj/structure/cable/yellow{ icon_state = "4-8" @@ -5527,15 +5526,16 @@ /obj/item/storage/backpack/captain, /obj/item/storage/belt/sabre, /obj/item/clothing/glasses/sunglasses, -/obj/item/clothing/head/caphat, -/obj/item/clothing/head/beret/captain, /obj/item/clothing/suit/armor/vest/capcarapace, -/obj/item/clothing/under/rank/command/captain/skirt, -/obj/item/clothing/under/rank/command/captain/suit, /obj/item/clothing/under/rank/command/captain/parade, /obj/item/clothing/shoes/laceup, /obj/item/door_remote/captain, /obj/item/clothing/suit/armor/vest/capcarapace/alt, +/obj/item/clothing/gloves/color/captain/nt, +/obj/item/clothing/under/rank/command/captain/nt/skirt, +/obj/item/clothing/under/rank/command/captain/nt, +/obj/item/clothing/head/caphat/parade, +/obj/item/clothing/head/caphat/nt, /turf/open/floor/wood, /area/ship/crew/crewtwo) "UN" = ( diff --git a/_maps/shuttles/shiptest/pirate_ember.dmm b/_maps/shuttles/pirate/pirate_ember.dmm similarity index 99% rename from _maps/shuttles/shiptest/pirate_ember.dmm rename to _maps/shuttles/pirate/pirate_ember.dmm index 02cdfcd4d301..0b8fe0c12e10 100644 --- a/_maps/shuttles/shiptest/pirate_ember.dmm +++ b/_maps/shuttles/pirate/pirate_ember.dmm @@ -2247,14 +2247,14 @@ /obj/effect/decal/cleanable/cobweb, /obj/item/clothing/gloves/krav_maga/combatglovesplus, /obj/item/clothing/under/syndicate/camo, -/obj/item/clothing/under/syndicate/soviet, +/obj/item/clothing/under/syndicate/camo, /obj/item/clothing/neck/scarf/black, /obj/item/clothing/neck/cloak/hos, /obj/item/clothing/mask/bandana/black{ pixel_x = 1; pixel_y = -4 }, -/obj/item/clothing/mask/russian_balaclava, +/obj/item/clothing/mask/gas/sechailer/minutemen, /obj/item/clothing/suit/armor/vest/marine/medium, /obj/item/storage/belt/military, /obj/item/clothing/shoes/cowboy/black, @@ -5744,9 +5744,9 @@ pixel_x = 1; pixel_y = -4 }, -/obj/item/clothing/mask/russian_balaclava, -/obj/item/clothing/mask/russian_balaclava, -/obj/item/clothing/mask/russian_balaclava, +/obj/item/clothing/mask/gas/sechailer/minutemen, +/obj/item/clothing/mask/gas/sechailer/minutemen, +/obj/item/clothing/mask/gas/sechailer/minutemen, /obj/item/storage/belt/military, /obj/item/storage/belt/military, /obj/item/storage/belt/military/army, diff --git a/_maps/shuttles/shiptest/pirate_libertatia.dmm b/_maps/shuttles/pirate/pirate_libertatia.dmm similarity index 100% rename from _maps/shuttles/shiptest/pirate_libertatia.dmm rename to _maps/shuttles/pirate/pirate_libertatia.dmm diff --git a/_maps/shuttles/shiptest/pirate_noderider.dmm b/_maps/shuttles/pirate/pirate_noderider.dmm similarity index 100% rename from _maps/shuttles/shiptest/pirate_noderider.dmm rename to _maps/shuttles/pirate/pirate_noderider.dmm diff --git a/_maps/shuttles/shiptest/srm_glaive.dmm b/_maps/shuttles/roumain/srm_glaive.dmm similarity index 99% rename from _maps/shuttles/shiptest/srm_glaive.dmm rename to _maps/shuttles/roumain/srm_glaive.dmm index 6ac9e480222e..8b5cb2a3fdc8 100644 --- a/_maps/shuttles/shiptest/srm_glaive.dmm +++ b/_maps/shuttles/roumain/srm_glaive.dmm @@ -208,9 +208,7 @@ /obj/structure/flora/ausbushes/brflowers, /obj/structure/flora/ausbushes/sparsegrass, /obj/item/book/manual/trickwines_4_brewers, -/turf/open/floor/grass{ - icon_state = "junglegrass" - }, +/turf/open/floor/grass/ship/jungle, /area/ship/roumain) "cJ" = ( /obj/structure/cable/orange{ @@ -255,6 +253,7 @@ "ds" = ( /obj/structure/flora/ausbushes/sparsegrass, /obj/structure/flora/ausbushes/brflowers, +/obj/item/reagent_containers/food/drinks/breakawayflask, /turf/open/floor/grass/ship/jungle, /area/ship/roumain) "dt" = ( @@ -726,15 +725,7 @@ /area/ship/engineering/engine) "jG" = ( /obj/structure/flora/ausbushes/ppflowers, -/obj/structure/flora/tree/jungle{ - icon_state = "churchtree"; - icon = 'icons/obj/flora/chapeltree.dmi'; - randomize_icon = 0; - pixel_x = -16; - pixel_y = 0; - desc = "A sturdy oak tree imported directly from the homeworld of the Montagne who runs the ship it resides on. It is planted in soil from the same place."; - name = "Montagne's Oak" - }, +/obj/structure/flora/tree/srm, /turf/open/floor/grass/ship/jungle, /area/ship/roumain) "ko" = ( @@ -753,6 +744,12 @@ }, /turf/open/floor/wood/maple, /area/ship/construction) +"lb" = ( +/obj/structure/flora/ausbushes/brflowers, +/obj/structure/flora/ausbushes/sparsegrass, +/obj/structure/fermenting_barrel, +/turf/open/floor/grass/ship/jungle, +/area/ship/roumain) "lf" = ( /obj/structure/cable/orange{ icon_state = "2-8" @@ -1680,7 +1677,7 @@ /area/ship/medical) "At" = ( /obj/effect/decal/cleanable/dirt/dust, -/obj/item/reagent_containers/food/drinks/drinkingglass/breakawayflask/vintageash, +/obj/item/reagent_containers/food/drinks/breakawayflask/vintage/ashwine, /turf/open/floor/plating{ icon_state = "greenerdirt" }, @@ -1776,7 +1773,7 @@ /obj/structure/railing{ dir = 1 }, -/obj/item/reagent_containers/food/drinks/drinkingglass/breakawayflask/vintageash, +/obj/item/reagent_containers/food/drinks/breakawayflask/vintage/ashwine, /turf/open/floor/ship/dirt/dark, /area/ship/roumain) "BB" = ( @@ -2106,6 +2103,7 @@ name = "Body Holofield Switch"; id = "glaive_body_holo" }, +/obj/structure/fermenting_barrel, /turf/open/floor/grass/ship/jungle, /area/ship/roumain) "FA" = ( @@ -2889,8 +2887,10 @@ /turf/open/floor/plating, /area/ship/engineering) "Sl" = ( -/obj/structure/fermenting_barrel, -/turf/open/floor/ship/dirt/dark, +/obj/structure/flora/ausbushes/brflowers, +/obj/structure/flora/ausbushes/sparsegrass, +/obj/structure/fermenting_barrel/distiller, +/turf/open/floor/grass/ship/jungle, /area/ship/roumain) "Sx" = ( /obj/structure/window/reinforced/spawner{ @@ -3951,8 +3951,8 @@ Lk cz YP ds -aM -aM +lb +Sl Fu wp wp @@ -4177,7 +4177,7 @@ ZE MZ qN NL -Sl +NL NL NL NL diff --git a/_maps/shuttles/ruin/ruin_caravan_victim.dmm b/_maps/shuttles/ruin/ruin_caravan_victim.dmm deleted file mode 100644 index 4b8d1803616d..000000000000 --- a/_maps/shuttles/ruin/ruin_caravan_victim.dmm +++ /dev/null @@ -1,1793 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"ap" = ( -/obj/structure/table, -/obj/item/storage/toolbox/mechanical, -/obj/item/multitool, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/airless, -/area/ship/cargo) -"ax" = ( -/obj/structure/closet/crate, -/obj/item/stack/sheet/mineral/silver{ - amount = 25 - }, -/obj/item/stack/sheet/mineral/silver{ - amount = 25 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/power/terminal{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/airless, -/area/ship/cargo) -"aP" = ( -/obj/machinery/door/airlock{ - name = "Crew Quarters" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/airless, -/area/ship/crew) -"bg" = ( -/obj/machinery/airalarm/directional/north, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/airless, -/area/ship/crew) -"bu" = ( -/obj/machinery/door/airlock{ - name = "Crew Cabins" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/airless, -/area/ship/crew) -"bI" = ( -/obj/machinery/light/small/directional/south, -/obj/effect/turf_decal/box/white/corners, -/obj/machinery/button/door{ - id = "caravantrade1_cargo"; - name = "Cargo Blast Door Control"; - pixel_y = -25 - }, -/obj/structure/closet/crate, -/obj/item/stack/sheet/mineral/diamond{ - amount = 5 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel/dark/airless, -/area/ship/cargo) -"bR" = ( -/obj/structure/toilet{ - dir = 4 - }, -/obj/structure/sink{ - pixel_y = 25 - }, -/obj/machinery/light/small/directional/south, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/showroomfloor{ - initial_gas_mix = "TEMP=2.7" - }, -/area/ship/crew) -"ct" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel/airless, -/area/ship/cargo) -"cx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 4 - }, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/machinery/power/terminal, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel{ - initial_gas_mix = "TEMP=2.7" - }, -/area/ship/crew) -"cX" = ( -/obj/structure/chair/stool, -/obj/effect/turf_decal/corner/opaque/yellow, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel{ - initial_gas_mix = "TEMP=2.7" - }, -/area/ship/crew) -"ec" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating/airless, -/area/ship/engineering/engine) -"eP" = ( -/obj/machinery/door/poddoor{ - id = "caravantrade1_cargo"; - name = "Cargo Blast Door" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/plating/airless, -/area/ship/cargo) -"fk" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/machinery/meter, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating/airless, -/area/ship/engineering/engine) -"fD" = ( -/turf/template_noop, -/area/ship/cargo) -"gs" = ( -/obj/structure/closet/secure_closet/freezer{ - locked = 0; - name = "fridge" - }, -/obj/item/reagent_containers/food/drinks/beer{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/reagent_containers/food/drinks/beer, -/obj/item/reagent_containers/food/drinks/beer{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/reagent_containers/food/drinks/waterbottle{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/reagent_containers/food/drinks/waterbottle, -/obj/item/reagent_containers/food/drinks/waterbottle{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/reagent_containers/food/snacks/pizzaslice/margherita{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/reagent_containers/food/snacks/pizzaslice/margherita, -/obj/item/reagent_containers/food/snacks/chocolatebar, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/yellow, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel{ - initial_gas_mix = "TEMP=2.7" - }, -/area/ship/crew) -"gw" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mob_spawn/human/corpse/cargo_tech, -/obj/effect/decal/cleanable/blood, -/obj/effect/turf_decal/corner/opaque/blue, -/turf/open/floor/plasteel/dark{ - initial_gas_mix = "TEMP=2.7" - }, -/area/ship/bridge) -"hk" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark/airless, -/area/ship/cargo) -"if" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/mob/living/simple_animal/hostile/syndicate/ranged/smg/space, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/airless, -/area/ship/cargo) -"ig" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/poddoor{ - id = "caravantrade1_bridge" - }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/plating, -/area/ship/bridge) -"jg" = ( -/obj/machinery/door/airlock{ - name = "Restroom" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/plasteel/showroomfloor{ - initial_gas_mix = "TEMP=2.7" - }, -/area/ship/crew) -"jr" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/airless, -/area/ship/cargo) -"lt" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 6 - }, -/obj/machinery/space_heater, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/power/terminal{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/ship/engineering/engine) -"lx" = ( -/obj/effect/turf_decal/box/white/corners{ - dir = 1 - }, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged4" - }, -/area/ship/cargo) -"lC" = ( -/obj/machinery/power/smes, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/ship/engineering/engine) -"lM" = ( -/obj/machinery/light/small/directional/west, -/obj/structure/sign/warning/vacuum{ - pixel_x = 32 - }, -/turf/open/floor/plating, -/area/ship/bridge) -"mo" = ( -/obj/machinery/power/port_gen/pacman{ - anchored = 1 - }, -/obj/item/wrench, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/turf/open/floor/plating/airless, -/area/ship/engineering/engine) -"mu" = ( -/turf/closed/wall/mineral/titanium, -/area/ship/cargo) -"mw" = ( -/obj/machinery/light/small/directional/west, -/obj/machinery/firealarm/directional/east, -/obj/effect/decal/cleanable/dirt, -/obj/structure/rack, -/obj/item/storage/toolbox/emergency, -/obj/item/wrench, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 8 - }, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/machinery/power/terminal, -/obj/structure/cable, -/turf/open/floor/plasteel/dark{ - initial_gas_mix = "TEMP=2.7" - }, -/area/ship/bridge) -"mZ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 8 - }, -/obj/structure/frame/computer{ - dir = 8 - }, -/turf/open/floor/plasteel/dark{ - initial_gas_mix = "TEMP=2.7" - }, -/area/ship/bridge) -"nM" = ( -/obj/machinery/power/smes/shuttle/precharged{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating/airless, -/area/ship/cargo) -"oj" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating/airless, -/area/ship/engineering/engine) -"ot" = ( -/obj/effect/turf_decal/box/white/corners{ - dir = 4 - }, -/turf/open/floor/plasteel/dark/airless, -/area/ship/cargo) -"oS" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark/airless, -/area/ship/cargo) -"pR" = ( -/obj/machinery/light/small/directional/south, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel{ - initial_gas_mix = "TEMP=2.7" - }, -/area/ship/crew) -"pU" = ( -/turf/closed/wall/mineral/titanium, -/area/ship/bridge) -"qp" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/turf_decal/corner/opaque/blue, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel{ - initial_gas_mix = "TEMP=2.7" - }, -/area/ship/bridge) -"qM" = ( -/obj/machinery/airalarm/directional/west, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/dark/airless, -/area/ship/bridge) -"rf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel/airless{ - icon_state = "floorscorched1" - }, -/area/ship/cargo) -"rF" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel/airless, -/area/ship/crew) -"sf" = ( -/obj/machinery/light/directional/north, -/obj/structure/table, -/obj/item/stack/packageWrap, -/obj/item/crowbar, -/obj/item/flashlight{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/machinery/airalarm/directional/north, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/airless, -/area/ship/cargo) -"si" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/external{ - id_tag = "caravantrade1_bolt" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/plating, -/area/ship/bridge) -"ss" = ( -/obj/structure/rack, -/obj/item/storage/belt/utility, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/airless, -/area/ship/cargo) -"tg" = ( -/obj/effect/turf_decal/box/white/corners{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/space_heater, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/power/terminal{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/airless, -/area/ship/cargo) -"tj" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/poddoor{ - id = "caravantrade1_bridge" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ship/bridge) -"ur" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/airless{ - icon_state = "platingdmg3" - }, -/area/ship/cargo) -"uA" = ( -/obj/machinery/light/small/directional/south, -/obj/structure/bed, -/obj/item/bedsheet, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm/directional/east, -/obj/machinery/button/door{ - id = "caravantrade1_cabin1"; - name = "Cabin Bolt Control"; - normaldoorcontrol = 1; - pixel_x = -25; - pixel_y = 6; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/airless, -/area/ship/crew) -"uS" = ( -/mob/living/simple_animal/hostile/syndicate/ranged/smg/space, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/airless, -/area/ship/cargo) -"vt" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/power/shuttle/engine/electric{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating/airless, -/area/ship/engineering/engine) -"vO" = ( -/obj/machinery/door/poddoor{ - id = "caravantrade1_cargo"; - name = "Cargo Blast Door" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/ship/cargo) -"xz" = ( -/obj/effect/turf_decal/box/white/corners{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-9" - }, -/obj/structure/cable{ - icon_state = "1-5" - }, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged5" - }, -/area/ship/cargo) -"yn" = ( -/obj/structure/closet/crate, -/obj/item/stack/sheet/mineral/titanium{ - amount = 20 - }, -/obj/item/stack/sheet/mineral/titanium{ - amount = 20 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/airless, -/area/ship/cargo) -"yC" = ( -/obj/machinery/button/door{ - id = "caravantrade1_bolt"; - name = "External Bolt Control"; - normaldoorcontrol = 1; - pixel_x = -25; - pixel_y = 8; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/corner/opaque/blue, -/turf/open/floor/plasteel{ - initial_gas_mix = "TEMP=2.7" - }, -/area/ship/bridge) -"zd" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/machinery/atmospherics/components/unary/tank/air{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/airless, -/area/ship/engineering/engine) -"zy" = ( -/obj/structure/girder, -/turf/open/floor/plating/airless{ - icon_state = "platingdmg1" - }, -/area/ship/cargo) -"Ax" = ( -/obj/item/stack/sheet/metal/fifty, -/turf/open/floor/plasteel/airless{ - icon_state = "floorscorched2" - }, -/area/ship/cargo) -"AM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/command{ - name = "Bridge" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark/airless, -/area/ship/bridge) -"AX" = ( -/obj/effect/turf_decal/box/white/corners, -/obj/structure/closet/crate, -/obj/item/stack/sheet/glass/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark/airless, -/area/ship/cargo) -"Bu" = ( -/obj/item/stack/sheet/mineral/titanium, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-10" - }, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged1" - }, -/area/ship/cargo) -"Bx" = ( -/obj/structure/table, -/obj/item/storage/box/donkpockets{ - pixel_x = 6; - pixel_y = 6 - }, -/obj/item/trash/plate{ - pixel_x = -5; - pixel_y = -3 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/airless, -/area/ship/crew) -"BN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/engineering{ - name = "Engine Room" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating/airless, -/area/ship/engineering/engine) -"CR" = ( -/obj/effect/turf_decal/industrial/outline, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/airless, -/area/ship/cargo) -"CU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/airless{ - icon_state = "floorscorched1" - }, -/area/ship/cargo) -"Dt" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/effect/decal/cleanable/blood, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel{ - initial_gas_mix = "TEMP=2.7" - }, -/area/ship/crew) -"DQ" = ( -/obj/effect/turf_decal/box/white/corners{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate, -/obj/item/stack/sheet/mineral/gold{ - amount = 25 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark/airless, -/area/ship/cargo) -"El" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/engineering/engine) -"Eo" = ( -/obj/structure/lattice, -/obj/item/stack/sheet/mineral/titanium, -/turf/template_noop, -/area/ship/cargo) -"EI" = ( -/obj/effect/decal/cleanable/blood, -/mob/living/simple_animal/hostile/syndicate/melee/sword/space/stormtrooper, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/dark{ - initial_gas_mix = "TEMP=2.7" - }, -/area/ship/bridge) -"EQ" = ( -/obj/machinery/light/small/directional/east, -/obj/machinery/firealarm/directional/west, -/obj/effect/decal/cleanable/blood, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/mob/living/simple_animal/hostile/syndicate/ranged/smg/space, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel{ - initial_gas_mix = "TEMP=2.7" - }, -/area/ship/crew) -"EW" = ( -/obj/structure/table/reinforced, -/obj/machinery/button/door{ - id = "caravantrade1_bridge"; - name = "Ship Blast Door Control" - }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/blue, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/dark{ - initial_gas_mix = "TEMP=2.7" - }, -/area/ship/bridge) -"EZ" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/airless, -/area/ship/cargo) -"Fv" = ( -/turf/closed/wall/mineral/titanium, -/area/ship/engineering/engine) -"Fx" = ( -/obj/structure/lattice, -/obj/structure/fluff/broken_flooring{ - icon_state = "singular" - }, -/turf/template_noop, -/area/ship/cargo) -"GJ" = ( -/obj/machinery/firealarm/directional/north, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/airless, -/area/ship/crew) -"Hv" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/airless, -/area/ship/crew) -"Ib" = ( -/obj/machinery/light/small/directional/north, -/obj/machinery/airalarm/directional/north, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/airless, -/area/ship/bridge) -"Ja" = ( -/obj/machinery/light/small/directional/west, -/obj/effect/decal/cleanable/dirt, -/obj/structure/rack, -/obj/item/storage/firstaid/regular, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/blue, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/dark{ - initial_gas_mix = "TEMP=2.7" - }, -/area/ship/bridge) -"Jv" = ( -/turf/template_noop, -/area/template_noop) -"Kc" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/poddoor{ - id = "caravantrade1_bridge" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/bridge) -"Ko" = ( -/obj/structure/rack, -/obj/item/tank/internals/oxygen, -/obj/item/radio, -/obj/item/clothing/mask/gas, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 4 - }, -/turf/open/floor/plasteel{ - initial_gas_mix = "TEMP=2.7" - }, -/area/ship/bridge) -"KC" = ( -/obj/machinery/power/smes/shuttle/precharged{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating/airless, -/area/ship/engineering/engine) -"KX" = ( -/turf/open/floor/plating/airless, -/area/ship/engineering/engine) -"Lr" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/poddoor{ - id = "caravantrade1_bridge" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ship/bridge) -"Lt" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/crew) -"LK" = ( -/obj/machinery/suit_storage_unit/standard_unit, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/airless, -/area/ship/bridge) -"LM" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/poddoor{ - id = "caravantrade1_bridge" - }, -/turf/open/floor/plating, -/area/ship/bridge) -"LX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/door_assembly/door_assembly_min{ - anchored = 1; - density = 0; - name = "broken airlock" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/airless, -/area/ship/cargo) -"Mb" = ( -/obj/machinery/light/small/directional/south, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/airless, -/area/ship/crew) -"NL" = ( -/obj/structure/table, -/obj/machinery/microwave{ - pixel_y = 5 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/airless, -/area/ship/crew) -"NY" = ( -/obj/machinery/door/poddoor{ - id = "caravantrade1_cargo"; - name = "Cargo Blast Door" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/plating/airless{ - icon_state = "platingdmg3" - }, -/area/ship/cargo) -"Od" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table/reinforced, -/obj/item/paper_bin{ - pixel_x = 6; - pixel_y = 6 - }, -/obj/item/pen{ - pixel_x = 6; - pixel_y = 6 - }, -/obj/item/folder/yellow{ - pixel_x = -6 - }, -/obj/item/gps{ - gpstag = "Distress Signal" - }, -/obj/effect/turf_decal/corner/opaque/blue, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/dark{ - initial_gas_mix = "TEMP=2.7" - }, -/area/ship/bridge) -"Ov" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/ship/cargo) -"Ow" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/blue, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 8 - }, -/obj/machinery/computer/helm{ - dir = 8 - }, -/turf/open/floor/plasteel/dark{ - initial_gas_mix = "TEMP=2.7" - }, -/area/ship/bridge) -"OK" = ( -/obj/effect/turf_decal/box/white/corners{ - dir = 1 - }, -/obj/structure/closet/crate, -/obj/item/stack/sheet/mineral/uranium{ - amount = 10 - }, -/obj/item/stack/sheet/mineral/uranium{ - amount = 10 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/power/terminal{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/airless, -/area/ship/cargo) -"PM" = ( -/obj/machinery/light/small/directional/south, -/obj/structure/bed, -/obj/item/bedsheet, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm/directional/east, -/obj/machinery/button/door{ - id = "caravantrade1_cabin2"; - name = "Cabin Bolt Control"; - normaldoorcontrol = 1; - pixel_x = -25; - pixel_y = 6; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/airless, -/area/ship/crew) -"Qk" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel/airless, -/area/ship/cargo) -"Qs" = ( -/obj/machinery/light/small/directional/east, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/machinery/power/terminal{ - dir = 4 - }, -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating/airless, -/area/ship/engineering/engine) -"QU" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/poddoor{ - id = "caravantrade1_bridge" - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ship/bridge) -"QY" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/machinery/firealarm/directional/north, -/obj/item/stack/cable_coil/yellow{ - pixel_x = 12; - pixel_y = 4 - }, -/turf/open/floor/plasteel/airless, -/area/ship/cargo) -"Rw" = ( -/obj/machinery/door/airlock{ - id_tag = "caravantrade1_cabin2"; - name = "Cabin 2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/plasteel/dark/airless, -/area/ship/crew) -"RI" = ( -/obj/effect/turf_decal/box/white/corners{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/airless, -/area/ship/cargo) -"RN" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/machinery/power/terminal, -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/turf/open/floor/plating/airless{ - icon_state = "platingdmg3" - }, -/area/ship/engineering/engine) -"Su" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged3" - }, -/area/ship/cargo) -"Td" = ( -/obj/structure/lattice, -/turf/template_noop, -/area/ship/cargo) -"TP" = ( -/obj/structure/closet/crate{ - icon_state = "crateopen" - }, -/obj/item/stack/sheet/metal/fifty, -/turf/open/floor/plasteel/dark/airless, -/area/ship/cargo) -"Ut" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/airless, -/area/ship/cargo) -"UW" = ( -/obj/machinery/airalarm/directional/east, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating/airless{ - icon_state = "platingdmg1" - }, -/area/ship/engineering/engine) -"VD" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/external{ - id_tag = "caravantrade1_bolt" - }, -/obj/docking_port/mobile{ - callTime = 250; - dir = 2; - dwidth = 5; - height = 11; - launch_status = 0; - name = "Small Freighter"; - port_direction = 8; - preferred_direction = 4; - width = 21 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/plating, -/area/ship/bridge) -"VN" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "6-8" - }, -/turf/open/floor/plasteel/airless, -/area/ship/cargo) -"VT" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/airless, -/area/ship/crew) -"Wm" = ( -/obj/machinery/door/airlock{ - id_tag = "caravantrade1_cabin1"; - name = "Cabin 1" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/plasteel/dark/airless, -/area/ship/crew) -"Wr" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/poddoor{ - id = "caravantrade1_bridge" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/plating, -/area/ship/crew) -"WI" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/cargo) -"WU" = ( -/obj/machinery/airalarm/directional/west, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/mob_spawn/human/corpse/cargo_tech, -/obj/effect/decal/cleanable/blood, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/airless, -/area/ship/crew) -"WX" = ( -/obj/effect/turf_decal/box/white/corners{ - dir = 8 - }, -/obj/structure/closet/crate, -/obj/item/stack/sheet/plasteel/twenty, -/obj/item/stack/sheet/plasteel/twenty, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged5" - }, -/area/ship/cargo) -"WZ" = ( -/obj/structure/closet/crate, -/obj/item/stack/sheet/metal/twenty, -/obj/item/stack/sheet/glass{ - amount = 10 - }, -/obj/item/stack/rods/ten, -/obj/item/storage/box/lights/bulbs, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/power/terminal{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/ship/engineering/engine) -"Xh" = ( -/obj/machinery/door/poddoor{ - id = "caravantrade1_cargo"; - name = "Cargo Blast Door" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/plating/airless, -/area/ship/cargo) -"Xt" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/holopad/emergency/command, -/turf/open/floor/plasteel/dark/airless, -/area/ship/bridge) -"XI" = ( -/obj/effect/turf_decal/industrial/outline, -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/airless, -/area/ship/cargo) -"Yk" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/bridge) -"YR" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/poddoor{ - id = "caravantrade1_bridge" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ship/bridge) -"Zk" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel/dark/airless, -/area/ship/cargo) -"ZY" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/power/shuttle/engine/electric{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating/airless, -/area/ship/cargo) -"ZZ" = ( -/obj/effect/turf_decal/box/white/corners{ - dir = 1 - }, -/obj/structure/closet/crate, -/obj/item/stack/sheet/rglass{ - amount = 20 - }, -/obj/item/stack/sheet/rglass{ - amount = 20 - }, -/turf/open/floor/plasteel/dark/airless, -/area/ship/cargo) - -(1,1,1) = {" -El -El -El -vt -vt -El -KX -Jv -Jv -Jv -Jv -"} -(2,1,1) = {" -Fv -mo -El -KC -KC -El -El -ZY -ZY -ZY -mu -"} -(3,1,1) = {" -El -RN -lC -WZ -lt -zd -El -nM -nM -nM -mu -"} -(4,1,1) = {" -El -oj -ec -Qs -UW -fk -El -OK -ax -tg -WI -"} -(5,1,1) = {" -El -BN -El -El -El -BN -El -DQ -oS -bI -WI -"} -(6,1,1) = {" -Lt -GJ -Rw -PM -WI -Qk -ct -Zk -uS -EZ -eP -"} -(7,1,1) = {" -Wr -Mb -Lt -Lt -WI -ss -CU -ZZ -hk -RI -NY -"} -(8,1,1) = {" -Lt -bg -Wm -uA -mu -sf -jr -ot -hk -AX -Xh -"} -(9,1,1) = {" -Lt -bu -Lt -Lt -WI -QY -if -Ax -yn -Su -eP -"} -(10,1,1) = {" -Lt -cx -Lt -bR -WI -ap -VN -lx -TP -WX -vO -"} -(11,1,1) = {" -Wr -pR -Lt -jg -WI -WI -rf -xz -Ov -Td -ur -"} -(12,1,1) = {" -Wr -Dt -WU -Hv -rF -LX -Bu -CR -Fx -fD -Eo -"} -(13,1,1) = {" -Wr -gs -cX -EQ -VT -WI -XI -Ut -Td -fD -fD -"} -(14,1,1) = {" -Lt -NL -Bx -Lt -aP -WI -WI -zy -fD -fD -Jv -"} -(15,1,1) = {" -Yk -Yk -Yk -Yk -Ib -LK -Yk -Jv -Jv -Jv -Jv -"} -(16,1,1) = {" -VD -lM -si -yC -qp -Ko -Lr -Jv -Jv -Jv -Jv -"} -(17,1,1) = {" -pU -Yk -Yk -Yk -AM -Yk -Yk -Jv -Jv -Jv -Jv -"} -(18,1,1) = {" -Jv -Yk -Ja -qM -Xt -mw -Yk -Jv -Jv -Jv -Jv -"} -(19,1,1) = {" -Jv -ig -Od -EI -gw -EW -Lr -Jv -Jv -Jv -Jv -"} -(20,1,1) = {" -Jv -LM -QU -mZ -Ow -tj -LM -Jv -Jv -Jv -Jv -"} -(21,1,1) = {" -Jv -Jv -Kc -YR -YR -Kc -Jv -Jv -Jv -Jv -Jv -"} diff --git a/_maps/shuttles/ruin/ruin_pirate_cutter.dmm b/_maps/shuttles/ruin/ruin_pirate_cutter.dmm deleted file mode 100644 index e71d9c9c7fb6..000000000000 --- a/_maps/shuttles/ruin/ruin_pirate_cutter.dmm +++ /dev/null @@ -1,1613 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"af" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/engineering) -"aE" = ( -/obj/structure/closet{ - name = "pirate outfits" - }, -/obj/item/clothing/head/collectable/pirate, -/obj/item/clothing/suit/pirate, -/obj/item/clothing/under/costume/pirate, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/head/bandana, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/black, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/crew) -"aK" = ( -/obj/machinery/light/small/directional/east, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/medical) -"bd" = ( -/obj/structure/table/reinforced, -/obj/machinery/button/door{ - id = "caravanpirate_bridge"; - name = "Bridge Blast Door Control"; - pixel_x = -16 - }, -/obj/effect/turf_decal/corner/opaque/red, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"bH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/ship/medical) -"cU" = ( -/obj/machinery/sleeper{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"de" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"dE" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"fh" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/ship/engineering) -"fL" = ( -/obj/effect/turf_decal/corner/opaque/red{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 8 - }, -/obj/machinery/computer/helm{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"fU" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/turf_decal/corner/opaque/red, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ship/security) -"gG" = ( -/obj/machinery/light/small/directional/west, -/obj/structure/sign/warning/vacuum{ - pixel_x = -32 - }, -/turf/open/floor/plating, -/area/ship/medical) -"gT" = ( -/obj/structure/table/reinforced, -/obj/machinery/recharger, -/obj/item/melee/classic_baton, -/obj/effect/turf_decal/corner/opaque/red, -/obj/item/radio/intercom/wideband/directional/north, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"hh" = ( -/mob/living/simple_animal/hostile/pirate{ - environment_smash = 0 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/ship/security) -"hI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/ship/engineering) -"hZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"ig" = ( -/obj/structure/table, -/obj/item/circular_saw, -/obj/item/scalpel{ - pixel_y = 12 - }, -/obj/item/cautery{ - pixel_x = 4 - }, -/obj/machinery/light/small/directional/west, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ship/medical) -"iF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"iX" = ( -/obj/structure/table, -/obj/machinery/door/window/southleft{ - base_state = "right"; - icon_state = "right"; - name = "Weapon Storage" - }, -/obj/item/gun/energy/laser, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/security) -"ja" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/red, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 8 - }, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/machinery/power/terminal, -/obj/structure/cable, -/turf/open/floor/plasteel, -/area/ship/security) -"jh" = ( -/obj/machinery/power/port_gen/pacman{ - anchored = 1 - }, -/obj/item/wrench, -/obj/effect/turf_decal/industrial/warning{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow, -/turf/open/floor/plating, -/area/ship/engineering) -"kl" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/medical) -"ku" = ( -/obj/structure/rack, -/obj/item/storage/bag/money/vault, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 4 - }, -/mob/living/simple_animal/parrot{ - faction = list("pirate"); - name = "Pegwing" - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"kY" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/machinery/meter, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/ship/engineering) -"kZ" = ( -/obj/structure/table, -/obj/machinery/airalarm/directional/north, -/obj/item/ammo_box/a40mm, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/security) -"le" = ( -/obj/machinery/porta_turret/syndicate/pod{ - dir = 5; - faction = list("pirate") - }, -/turf/closed/wall/mineral/plastitanium, -/area/ship/bridge) -"lu" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/bridge) -"lG" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"lY" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/ship/medical) -"mr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command{ - name = "Bridge" - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"mF" = ( -/obj/structure/grille, -/obj/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/door/poddoor{ - id = "caravanpirate_bridge" - }, -/turf/open/floor/plating, -/area/ship/security) -"oa" = ( -/obj/machinery/light/small/directional/north, -/obj/structure/bed, -/obj/item/bedsheet/brown, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"oF" = ( -/obj/structure/closet{ - name = "pirate outfits" - }, -/obj/item/clothing/head/collectable/pirate, -/obj/item/clothing/suit/pirate, -/obj/item/clothing/under/costume/pirate, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/head/bandana, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"oL" = ( -/turf/closed/wall/mineral/plastitanium, -/area/ship/medical) -"oO" = ( -/obj/effect/turf_decal/corner/opaque/red{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 4 - }, -/obj/structure/frame/computer, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"oT" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/door/window/southleft{ - name = "Weapon Storage" - }, -/obj/item/grenade/smokebomb{ - pixel_x = -4 - }, -/obj/item/grenade/smokebomb{ - pixel_x = 2 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/security) -"oV" = ( -/obj/machinery/light/small/directional/west, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/ship/security) -"pS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/ship/security) -"qo" = ( -/obj/machinery/porta_turret/syndicate/pod{ - dir = 6; - faction = list("pirate") - }, -/turf/closed/wall/mineral/plastitanium, -/area/ship/bridge) -"qC" = ( -/obj/structure/table, -/obj/item/storage/fancy/donut_box{ - pixel_y = 18 - }, -/obj/item/storage/box/donkpockets{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/storage/box/donkpockets{ - pixel_x = -6 - }, -/obj/item/reagent_containers/food/drinks/bottle/rum{ - pixel_x = 8; - pixel_y = 3 - }, -/obj/structure/sign/poster/contraband/red_rum{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"qX" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/item/reagent_containers/glass/bucket, -/obj/item/mop, -/obj/effect/turf_decal/industrial/warning{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/engineering) -"rI" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/crew) -"su" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/ship/medical) -"th" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering{ - name = "Engineering" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/ship/engineering) -"to" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/drinks/bottle/rum{ - pixel_x = 3; - pixel_y = 6 - }, -/obj/item/reagent_containers/food/drinks/bottle/rum, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"ty" = ( -/obj/structure/closet/crate/secure/loot, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"tM" = ( -/obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/pirate/ranged{ - environment_smash = 0 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/ship/security) -"ul" = ( -/obj/structure/table, -/obj/item/retractor, -/obj/item/hemostat, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"un" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/red, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/ship/security) -"uB" = ( -/obj/machinery/light/small/directional/west, -/obj/structure/sign/warning/vacuum{ - pixel_x = -32 - }, -/turf/open/floor/plating, -/area/ship/security) -"vd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/ship/security) -"wa" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/machinery/firealarm/directional/south, -/obj/machinery/holopad/emergency/command, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"wk" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/medical) -"wL" = ( -/obj/machinery/button/door{ - id = "caravanpirate_bolt_port"; - name = "External Bolt Control"; - normaldoorcontrol = 1; - pixel_x = -4; - pixel_y = 25; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/medical) -"wZ" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"xg" = ( -/obj/structure/table, -/obj/machinery/microwave{ - pixel_y = 5 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"yt" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/engineering) -"yu" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"yW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/machinery/space_heater, -/obj/effect/turf_decal/industrial/warning{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/ship/engineering) -"zB" = ( -/obj/machinery/button/door{ - id = "caravanpirate_bolt_starboard"; - name = "External Bolt Control"; - normaldoorcontrol = 1; - pixel_x = -4; - pixel_y = -25; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/red, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ship/security) -"Ag" = ( -/obj/structure/table/optable, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Ah" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/external{ - id_tag = "caravanpirate_bolt_starboard" - }, -/turf/open/floor/plating, -/area/ship/security) -"Av" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/medical/glass{ - name = "Medbay" - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/ship/medical) -"AP" = ( -/obj/structure/sign/departments/medbay/alt, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/medical) -"Bi" = ( -/obj/structure/grille, -/obj/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/door/poddoor{ - id = "caravanpirate_bridge" - }, -/turf/open/floor/plating, -/area/ship/medical) -"BL" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stack/cable_coil, -/obj/item/stock_parts/cell/high, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plating, -/area/ship/engineering) -"CF" = ( -/obj/structure/table, -/obj/item/storage/firstaid/brute{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/fire, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Ek" = ( -/obj/machinery/atmospherics/components/unary/tank/toxins{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/hatch/yellow, -/turf/open/floor/plating, -/area/ship/engineering) -"EB" = ( -/obj/structure/chair/office{ - dir = 4 - }, -/obj/machinery/turretid{ - icon_state = "control_kill"; - lethal = 1; - locked = 0; - pixel_y = -30; - req_access = null - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/mob/living/simple_animal/hostile/pirate/ranged{ - environment_smash = 0 - }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"EK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/ship/medical) -"FM" = ( -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/closet/crate, -/obj/item/stack/sheet/metal/twenty, -/obj/item/stack/sheet/glass{ - amount = 10 - }, -/obj/item/storage/toolbox/mechanical, -/obj/item/flashlight{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stack/sheet/mineral/plasma{ - amount = 20 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/ship/engineering) -"Gb" = ( -/obj/structure/tank_dispenser/oxygen, -/obj/machinery/firealarm/directional/north, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/security) -"Gh" = ( -/obj/machinery/atmospherics/components/unary/tank/air, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plating, -/area/ship/engineering) -"Gw" = ( -/obj/machinery/suit_storage_unit/open, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/security) -"GO" = ( -/obj/machinery/porta_turret/syndicate/pod{ - dir = 9; - faction = list("pirate") - }, -/turf/closed/wall/mineral/plastitanium, -/area/ship/bridge) -"GR" = ( -/obj/structure/table, -/obj/item/coin/gold, -/obj/item/coin/silver, -/obj/item/coin/silver, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"Hp" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/security) -"Hq" = ( -/obj/structure/bed, -/obj/item/bedsheet/brown, -/obj/machinery/firealarm/directional/east, -/obj/effect/turf_decal/corner/opaque/black, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ship/crew) -"HD" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/shuttle/heater{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/ship/engineering) -"HO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security{ - name = "Armory" - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/ship/security) -"II" = ( -/obj/structure/closet/crate/freezer/surplus_limbs, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"IZ" = ( -/obj/item/stack/sheet/mineral/gold{ - amount = 25 - }, -/obj/item/stack/sheet/mineral/bananium{ - amount = 5 - }, -/obj/item/stack/sheet/mineral/silver{ - amount = 25 - }, -/obj/item/stack/sheet/mineral/uranium{ - amount = 10 - }, -/obj/item/stack/sheet/mineral/diamond{ - amount = 5 - }, -/obj/structure/closet/crate, -/obj/item/coin/silver, -/obj/item/coin/silver, -/obj/item/coin/silver, -/obj/item/coin/gold, -/obj/item/coin/gold, -/obj/effect/turf_decal/corner/opaque/blue, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/machinery/power/terminal{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"Jb" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/external{ - id_tag = "caravanpirate_bolt_port" - }, -/obj/docking_port/mobile{ - callTime = 150; - dir = 2; - name = "Pirate Cutter"; - port_direction = 8; - preferred_direction = 4 - }, -/turf/open/floor/plating, -/area/ship/medical) -"Jv" = ( -/turf/template_noop, -/area/template_noop) -"Ka" = ( -/obj/machinery/light/small/directional/east, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/ship/engineering) -"Kr" = ( -/obj/machinery/light/small/directional/west, -/obj/structure/closet/crate/secure/loot, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"Ku" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/external{ - id_tag = "caravanpirate_bolt_starboard" - }, -/turf/open/floor/plating, -/area/ship/security) -"Ld" = ( -/obj/machinery/suit_storage_unit/open, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/medical) -"LG" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/medical) -"NE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/machinery/power/terminal, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"ON" = ( -/obj/machinery/porta_turret/syndicate/pod{ - dir = 10; - faction = list("pirate") - }, -/turf/closed/wall/mineral/plastitanium, -/area/ship/bridge) -"Pc" = ( -/obj/structure/sign/departments/engineering, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/engineering) -"Pn" = ( -/obj/machinery/power/shuttle/engine/fueled/plasma{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/ship/engineering) -"Pp" = ( -/obj/structure/bed, -/obj/item/bedsheet/brown, -/obj/machinery/airalarm/directional/west, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"PL" = ( -/obj/machinery/light/small/directional/south, -/obj/structure/bed, -/obj/item/bedsheet/brown, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"Qj" = ( -/obj/machinery/light/small/directional/east, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/effect/turf_decal/corner/opaque/red, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ship/security) -"QQ" = ( -/turf/closed/wall/mineral/plastitanium, -/area/ship/security) -"Rq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ship/medical) -"Rz" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/external{ - id_tag = "caravanpirate_bolt_port" - }, -/turf/open/floor/plating, -/area/ship/medical) -"RC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"RK" = ( -/obj/machinery/power/smes{ - charge = 5e+006 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/ship/engineering) -"Sk" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/blue, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"SF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/corner/opaque/black, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/crew) -"Ty" = ( -/obj/machinery/atmospherics/components/unary/tank/toxins, -/obj/effect/turf_decal/industrial/hatch/yellow, -/turf/open/floor/plating, -/area/ship/engineering) -"TK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/airalarm/directional/east, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/ship/engineering) -"UP" = ( -/obj/structure/rack, -/obj/item/storage/toolbox/emergency, -/obj/item/weldingtool, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"Wd" = ( -/turf/closed/wall/mineral/plastitanium, -/area/ship/engineering) -"Yb" = ( -/turf/closed/wall/mineral/plastitanium, -/area/ship/crew) -"Yo" = ( -/obj/structure/table, -/obj/item/storage/box/lethalshot, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/security) -"Yw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"Zo" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/ship/engineering) -"Zp" = ( -/obj/structure/grille, -/obj/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/door/poddoor{ - id = "caravanpirate_bridge" - }, -/turf/open/floor/plating, -/area/ship/bridge) -"ZD" = ( -/obj/structure/table, -/obj/machinery/light/small/directional/west{ - brightness = 3 - }, -/obj/item/spacecash/bundle/c200, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"ZY" = ( -/obj/structure/chair/office{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) - -(1,1,1) = {" -Jv -Jv -Wd -Pn -Pn -Pn -Jv -Pn -Pn -Pn -Wd -Jv -Jv -"} -(2,1,1) = {" -Jv -GO -af -HD -HD -HD -af -HD -HD -HD -af -ON -Jv -"} -(3,1,1) = {" -Jv -af -Ty -qX -yt -yW -af -RK -FM -jh -Ek -af -Jv -"} -(4,1,1) = {" -Jv -af -Gh -kY -Ka -fh -TK -hI -Ka -Zo -BL -af -Jv -"} -(5,1,1) = {" -Jv -af -af -th -Pc -af -af -af -Pc -th -af -af -Jv -"} -(6,1,1) = {" -Jv -LG -Ld -Rq -ig -ul -Hp -Yo -oV -un -Gw -Hp -Jv -"} -(7,1,1) = {" -oL -LG -LG -wk -su -Ag -Hp -kZ -tM -ja -Hp -Hp -QQ -"} -(8,1,1) = {" -Jb -gG -Rz -kl -EK -CF -Hp -Gb -pS -fU -Ku -uB -Ah -"} -(9,1,1) = {" -oL -LG -LG -wL -lY -cU -Hp -oT -hh -zB -Hp -Hp -QQ -"} -(10,1,1) = {" -Jv -Bi -Ld -aK -bH -II -Hp -iX -vd -Qj -Gw -mF -Jv -"} -(11,1,1) = {" -Jv -oL -LG -AP -Av -LG -Hp -Hp -HO -Hp -Hp -QQ -Jv -"} -(12,1,1) = {" -Jv -Jv -rI -aE -SF -Hq -Kr -Pp -RC -oF -rI -Jv -Jv -"} -(13,1,1) = {" -Jv -Jv -rI -oa -yu -hZ -wZ -de -iF -PL -rI -Jv -Jv -"} -(14,1,1) = {" -Jv -Jv -le -rI -xg -qC -IZ -Sk -ku -rI -qo -Jv -Jv -"} -(15,1,1) = {" -Jv -Jv -Jv -Yb -lu -lu -lu -mr -lu -Yb -Jv -Jv -Jv -"} -(16,1,1) = {" -Jv -Jv -Jv -Jv -lu -to -ZD -Yw -lu -Jv -Jv -Jv -Jv -"} -(17,1,1) = {" -Jv -Jv -Jv -Jv -lu -GR -ZY -NE -lu -Jv -Jv -Jv -Jv -"} -(18,1,1) = {" -Jv -Jv -Jv -Jv -lu -ty -lG -wa -lu -Jv -Jv -Jv -Jv -"} -(19,1,1) = {" -Jv -Jv -Jv -Jv -lu -UP -dE -gT -lu -Jv -Jv -Jv -Jv -"} -(20,1,1) = {" -Jv -Jv -Jv -Jv -Zp -oO -EB -bd -Zp -Jv -Jv -Jv -Jv -"} -(21,1,1) = {" -Jv -Jv -Jv -Jv -Zp -Zp -fL -Zp -Zp -Jv -Jv -Jv -Jv -"} -(22,1,1) = {" -Jv -Jv -Jv -Jv -Jv -Zp -Zp -Zp -Jv -Jv -Jv -Jv -Jv -"} diff --git a/_maps/shuttles/ruin/ruin_solgov_exploration_pod.dmm b/_maps/shuttles/ruin/ruin_solgov_exploration_pod.dmm deleted file mode 100644 index 6ab4c6c19195..000000000000 --- a/_maps/shuttles/ruin/ruin_solgov_exploration_pod.dmm +++ /dev/null @@ -1,155 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( -/turf/closed/wall/mineral/titanium, -/area/ship/bridge) -"d" = ( -/obj/structure/window/reinforced/fulltile/shuttle, -/turf/open/floor/plating, -/area/ship/bridge) -"g" = ( -/obj/machinery/power/shuttle/engine/electric{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ship/bridge) -"j" = ( -/obj/machinery/computer/helm{ - dir = 4 - }, -/turf/open/floor/mineral/titanium/blue, -/area/ship/bridge) -"s" = ( -/obj/machinery/power/smes/shuttle{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/door/window/westright, -/turf/open/floor/plating, -/area/ship/bridge) -"w" = ( -/obj/machinery/power/smes/shuttle{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/door/window/westleft, -/turf/open/floor/plating, -/area/ship/bridge) -"y" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 8 - }, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/mineral/titanium/yellow, -/area/ship/bridge) -"z" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/bridge) -"B" = ( -/obj/machinery/power/terminal{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/holopad/emergency/command, -/turf/open/floor/mineral/titanium/yellow, -/area/ship/bridge) -"E" = ( -/obj/structure/frame/computer{ - anchored = 1; - dir = 4 - }, -/turf/open/floor/mineral/titanium/blue, -/area/ship/bridge) -"G" = ( -/obj/machinery/door/airlock/titanium, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/docking_port/mobile{ - height = 6; - name = "SolGov Exploration Pod"; - port_direction = 8; - preferred_direction = 4; - width = 4 - }, -/turf/open/floor/plating, -/area/ship/bridge) -"J" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 8 - }, -/turf/open/floor/mineral/titanium/yellow, -/area/ship/bridge) -"U" = ( -/obj/machinery/power/terminal{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/mineral/titanium/yellow, -/area/ship/bridge) -"Y" = ( -/obj/machinery/door/airlock/titanium, -/turf/open/floor/plating, -/area/ship/bridge) - -(1,1,1) = {" -a -d -d -a -"} -(2,1,1) = {" -d -E -j -d -"} -(3,1,1) = {" -a -y -J -a -"} -(4,1,1) = {" -Y -U -B -G -"} -(5,1,1) = {" -a -s -w -a -"} -(6,1,1) = {" -z -g -g -z -"} diff --git a/_maps/shuttles/ruin/ruin_syndicate_dropship.dmm b/_maps/shuttles/ruin/ruin_syndicate_dropship.dmm deleted file mode 100644 index edec2afb3308..000000000000 --- a/_maps/shuttles/ruin/ruin_syndicate_dropship.dmm +++ /dev/null @@ -1,771 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"al" = ( -/obj/machinery/airalarm/syndicate{ - dir = 4; - pixel_x = -25 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"az" = ( -/obj/machinery/power/apc/syndicate{ - dir = 8; - name = "Syndicate Drop Ship APC"; - pixel_x = -25 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/north, -/obj/structure/cable/yellow{ - icon_state = "0-2" - }, -/obj/structure/table, -/obj/item/storage/toolbox/emergency, -/turf/open/floor/plating, -/area/ship/crew) -"bo" = ( -/obj/machinery/firealarm/directional/east, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"bB" = ( -/obj/machinery/light/small/directional/west, -/obj/machinery/button/door{ - id = "caravansyndicate3_bolt_starboard"; - name = "External Bolt Control"; - normaldoorcontrol = 1; - pixel_x = -25; - pixel_y = -6; - req_access_txt = "150"; - specialfunctions = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"bN" = ( -/obj/machinery/power/smes{ - charge = 5e+006 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 5 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 10 - }, -/obj/structure/cable/yellow, -/turf/open/floor/plating, -/area/ship/crew) -"cB" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"dZ" = ( -/obj/machinery/power/shuttle/engine/fueled/plasma{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/ship/crew) -"gl" = ( -/obj/machinery/door/airlock/hatch{ - id_tag = "caravansyndicate3_bolt_port"; - name = "External Airlock"; - normalspeed = 0; - req_access_txt = "150" - }, -/obj/docking_port/mobile{ - dir = 2; - dwidth = 6; - height = 7; - name = "Syndicate Drop Ship"; - port_direction = 8; - preferred_direction = 4; - width = 15 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plating, -/area/ship/crew) -"ha" = ( -/obj/machinery/power/port_gen/pacman{ - anchored = 1 - }, -/obj/item/wrench, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/obj/effect/turf_decal/industrial/warning{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/ship/crew) -"ka" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 4 - }, -/turf/open/floor/pod/dark, -/area/ship/crew) -"ns" = ( -/obj/structure/table/reinforced, -/obj/machinery/button/door{ - id = "caravansyndicate3_bridge"; - name = "Bridge Blast Door Control"; - pixel_x = -16; - pixel_y = 5; - req_access_txt = "150" - }, -/obj/machinery/button/door{ - id = "caravansyndicate3_bolt_bridge"; - name = "Bridge Bolt Control"; - normaldoorcontrol = 1; - pixel_x = -16; - pixel_y = -5; - req_access_txt = "150"; - specialfunctions = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/red, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"qE" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/syndicate{ - anchored = 1 - }, -/obj/item/clothing/under/syndicate, -/obj/item/clothing/shoes/sneakers/black, -/turf/open/floor/mineral/plastitanium, -/area/ship/crew) -"rz" = ( -/obj/effect/turf_decal/corner/opaque/red{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 8 - }, -/obj/machinery/computer/helm{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"rU" = ( -/obj/structure/grille, -/obj/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/door/poddoor{ - id = "caravansyndicate3_bridge" - }, -/turf/open/floor/plating, -/area/ship/crew) -"rV" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/pod/dark, -/area/ship/crew) -"sb" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/red, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 8 - }, -/obj/structure/frame/computer{ - anchored = 1; - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"sn" = ( -/obj/structure/chair/comfy/shuttle, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/pod/dark, -/area/ship/crew) -"ss" = ( -/obj/effect/turf_decal/corner/opaque/red{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"uy" = ( -/obj/structure/table/reinforced, -/obj/machinery/recharger, -/obj/machinery/light/small/directional/west, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/red, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"vw" = ( -/obj/structure/table/reinforced, -/obj/item/storage/firstaid/regular, -/obj/item/assembly/flash/handheld, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/red, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"wH" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/shuttle/heater{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/ship/crew) -"xC" = ( -/obj/machinery/light/small/directional/west, -/obj/machinery/button/door{ - id = "caravansyndicate3_bolt_port"; - name = "External Bolt Control"; - normaldoorcontrol = 1; - pixel_x = -25; - pixel_y = 6; - req_access_txt = "150"; - specialfunctions = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"Bp" = ( -/obj/effect/turf_decal/corner/opaque/red, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"BQ" = ( -/obj/effect/turf_decal/corner/opaque/red, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"Cm" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 1 - }, -/obj/machinery/firealarm/directional/south, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 9 - }, -/turf/open/floor/pod/dark, -/area/ship/crew) -"Dt" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/syndicate{ - anchored = 1 - }, -/obj/item/storage/box/syndie_kit/chameleon, -/obj/item/crowbar/red, -/obj/machinery/light/small/directional/south, -/turf/open/floor/mineral/plastitanium, -/area/ship/crew) -"Dx" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"EO" = ( -/obj/structure/chair/comfy/shuttle, -/obj/machinery/airalarm/syndicate{ - pixel_y = 25 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/pod/dark, -/area/ship/crew) -"Fa" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 10 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/syndicate{ - anchored = 1 - }, -/obj/item/clothing/under/syndicate/combat, -/obj/item/clothing/shoes/jackboots, -/obj/item/storage/belt/military, -/obj/item/crowbar/red, -/turf/open/floor/mineral/plastitanium, -/area/ship/crew) -"Gx" = ( -/obj/machinery/airalarm/syndicate{ - dir = 4; - pixel_x = -25 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"HJ" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/structure/sign/warning/vacuum{ - pixel_y = -32 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/syndicate{ - anchored = 1 - }, -/obj/item/clothing/under/syndicate/combat, -/obj/item/storage/belt/military, -/turf/open/floor/mineral/plastitanium, -/area/ship/crew) -"HM" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 4 - }, -/mob/living/simple_animal/hostile/syndicate/ranged/smg/pilot{ - environment_smash = 0 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"Ij" = ( -/obj/machinery/turretid{ - ailock = 1; - desc = "A specially designed set of turret controls. Looks to be covered in protective casing to prevent AI interfacing."; - icon_state = "control_kill"; - lethal = 1; - name = "Shuttle turret control"; - pixel_y = 34; - req_access = null; - req_access_txt = "150" - }, -/obj/structure/chair/comfy/shuttle{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"IR" = ( -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/hatch{ - id_tag = "caravansyndicate3_bolt_bridge"; - name = "Bridge"; - req_access_txt = "150" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"IU" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"Jv" = ( -/turf/template_noop, -/area/template_noop) -"KS" = ( -/obj/machinery/door/airlock/hatch{ - id_tag = "caravansyndicate3_bolt_starboard"; - name = "External Airlock"; - normalspeed = 0; - req_access_txt = "150" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ship/crew) -"Lq" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/structure/closet/syndicate{ - anchored = 1 - }, -/obj/structure/sign/warning/vacuum{ - pixel_y = 32 - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/clothing/shoes/sneakers/black, -/turf/open/floor/mineral/plastitanium, -/area/ship/crew) -"NH" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/structure/closet/syndicate{ - anchored = 1 - }, -/obj/item/clothing/under/syndicate, -/obj/item/clothing/glasses/night, -/obj/machinery/light/small/directional/north, -/turf/open/floor/mineral/plastitanium, -/area/ship/crew) -"Pt" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/structure/closet/crate, -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/item/stack/sheet/metal/twenty, -/obj/item/stack/sheet/glass{ - amount = 10 - }, -/obj/item/stack/sheet/mineral/plastitanium{ - amount = 20 - }, -/obj/item/storage/box/lights/bulbs, -/obj/item/storage/toolbox/mechanical, -/obj/item/stack/sheet/mineral/plasma{ - amount = 20 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/atmospherics/pipe/manifold4w/orange/hidden, -/turf/open/floor/plating, -/area/ship/crew) -"PL" = ( -/obj/machinery/porta_turret/syndicate/energy, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/crew) -"PY" = ( -/obj/machinery/atmospherics/components/unary/tank/toxins{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/hatch/yellow{ - dir = 4 - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plating, -/area/ship/crew) -"Rj" = ( -/obj/machinery/porta_turret/syndicate/energy{ - dir = 1 - }, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/crew) -"Sl" = ( -/obj/structure/table/reinforced, -/obj/item/storage/toolbox/emergency, -/obj/item/wrench, -/obj/machinery/light/small/directional/west, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"Tn" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/crew) -"UD" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/red, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"US" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"Vf" = ( -/obj/machinery/door/airlock/hatch{ - name = "Ready Room"; - req_access_txt = "150" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"Wr" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/red, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"YU" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 10 - }, -/obj/structure/closet/syndicate{ - anchored = 1 - }, -/obj/item/clothing/under/syndicate/combat, -/turf/open/floor/mineral/plastitanium, -/area/ship/crew) -"ZB" = ( -/turf/closed/wall/mineral/plastitanium, -/area/ship/crew) -"ZI" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/syndicate{ - anchored = 1 - }, -/obj/item/clothing/shoes/jackboots, -/obj/item/crowbar/red, -/turf/open/floor/mineral/plastitanium, -/area/ship/crew) -"ZJ" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "fuel pump" - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"ZK" = ( -/obj/machinery/computer/crew{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/red{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"ZZ" = ( -/obj/machinery/firealarm/directional/east, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/holopad/emergency/command, -/turf/open/floor/plasteel/dark, -/area/ship/crew) - -(1,1,1) = {" -ZB -Jv -dZ -dZ -dZ -Jv -ZB -"} -(2,1,1) = {" -Tn -Tn -wH -wH -wH -Tn -Tn -"} -(3,1,1) = {" -Tn -az -bN -Pt -ha -PY -Tn -"} -(4,1,1) = {" -Tn -sn -US -ZJ -BQ -ka -Tn -"} -(5,1,1) = {" -Tn -EO -ss -IU -Bp -Cm -Tn -"} -(6,1,1) = {" -Tn -sn -ss -cB -UD -rV -Tn -"} -(7,1,1) = {" -Tn -NH -Fa -cB -qE -Dt -Tn -"} -(8,1,1) = {" -Rj -Tn -Tn -Vf -Tn -Tn -PL -"} -(9,1,1) = {" -gl -xC -al -cB -bo -bB -KS -"} -(10,1,1) = {" -Tn -Lq -YU -Dx -ZI -HJ -Tn -"} -(11,1,1) = {" -Tn -Tn -Tn -IR -Tn -Tn -Tn -"} -(12,1,1) = {" -Tn -uy -Gx -cB -ZZ -Sl -Tn -"} -(13,1,1) = {" -rU -ns -Ij -HM -Wr -vw -rU -"} -(14,1,1) = {" -rU -rU -sb -rz -ZK -rU -rU -"} -(15,1,1) = {" -Jv -rU -rU -rU -rU -rU -Jv -"} diff --git a/_maps/shuttles/ruin/ruin_syndicate_fighter_shiv.dmm b/_maps/shuttles/ruin/ruin_syndicate_fighter_shiv.dmm deleted file mode 100644 index 34f45b2b62da..000000000000 --- a/_maps/shuttles/ruin/ruin_syndicate_fighter_shiv.dmm +++ /dev/null @@ -1,230 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aA" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 4 - }, -/mob/living/simple_animal/hostile/syndicate/ranged/smg/pilot{ - environment_smash = 0 - }, -/turf/open/floor/mineral/plastitanium/red, -/area/ship/security) -"cU" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 1 - }, -/turf/closed/wall/mineral/plastitanium, -/area/ship/security) -"dw" = ( -/obj/machinery/porta_turret/syndicate/energy{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ - dir = 4 - }, -/turf/closed/wall/mineral/plastitanium, -/area/ship/security) -"eC" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/portables_connector{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister/toxins, -/turf/open/floor/mineral/plastitanium/red, -/area/ship/security) -"fh" = ( -/obj/machinery/camera/xray{ - c_tag = "External View"; - dir = 4; - network = list("caravansyndicate1"); - pixel_x = 32 - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 1 - }, -/turf/closed/wall/mineral/plastitanium, -/area/ship/security) -"na" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 4 - }, -/turf/closed/wall/mineral/plastitanium, -/area/ship/security) -"qx" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/turretid{ - ailock = 1; - desc = "A specially designed set of turret controls. Looks to be covered in protective casing to prevent AI interfacing."; - icon_state = "control_kill"; - lethal = 1; - name = "Shuttle turret control"; - pixel_x = 32; - req_access = null; - req_access_txt = "150" - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "engine fuel pump" - }, -/turf/open/floor/mineral/plastitanium/red, -/area/ship/security) -"tH" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 9 - }, -/turf/closed/wall/mineral/plastitanium, -/area/ship/security) -"tU" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/computer/security, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 6 - }, -/turf/open/floor/mineral/plastitanium/red, -/area/ship/security) -"us" = ( -/obj/machinery/power/shuttle/engine/fueled/plasma{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/ship/security) -"uW" = ( -/obj/machinery/button/door{ - id = "caravansyndicate1_bolt"; - name = "External Bolt Control"; - normaldoorcontrol = 1; - pixel_x = -25; - req_access_txt = "150"; - specialfunctions = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/frame/computer{ - anchored = 1; - - }, -/turf/open/floor/mineral/plastitanium/red, -/area/ship/security) -"vD" = ( -/obj/machinery/porta_turret/syndicate/energy{ - dir = 4 - }, -/turf/closed/wall/mineral/plastitanium, -/area/ship/security) -"vK" = ( -/obj/machinery/power/apc/highcap/fifteen_k{ - dir = 8; - name = "Syndicate Fighter APC"; - pixel_x = -25; - req_access_txt = "150" - }, -/obj/machinery/computer/helm{ - dir = 1 - }, -/obj/item/radio/intercom/wideband/directional/north, -/turf/open/floor/mineral/plastitanium/red, -/area/ship/security) -"wV" = ( -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/hatch{ - id_tag = "caravansyndicate1_bolt"; - name = "External Airlock"; - normalspeed = 0; - req_access_txt = "150" - }, -/obj/effect/decal/cleanable/dirt, -/obj/docking_port/mobile{ - callTime = 50; - dir = 4; - dwidth = 4; - height = 5; - ignitionTime = 25; - name = "Syndicate Fighter"; - port_direction = 2; - preferred_direction = 4; - width = 9 - }, -/turf/open/floor/plating, -/area/ship/security) -"zu" = ( -/obj/machinery/porta_turret/syndicate/energy{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 1 - }, -/turf/closed/wall/mineral/plastitanium, -/area/ship/security) -"Fs" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 10 - }, -/turf/closed/wall/mineral/plastitanium, -/area/ship/security) -"Jv" = ( -/turf/template_noop, -/area/template_noop) -"YP" = ( -/obj/machinery/atmospherics/components/unary/shuttle/heater{ - dir = 4 - }, -/turf/closed/wall/mineral/plastitanium, -/area/ship/security) -"YX" = ( -/turf/closed/wall/mineral/plastitanium, -/area/ship/security) - -(1,1,1) = {" -Jv -us -YX -YX -wV -YX -YX -us -Jv -"} -(2,1,1) = {" -Jv -YP -YX -uW -aA -vK -YX -YP -Jv -"} -(3,1,1) = {" -YX -na -YX -tU -qx -eC -YX -na -YX -"} -(4,1,1) = {" -YX -Fs -cU -dw -fh -zu -cU -tH -YX -"} -(5,1,1) = {" -vD -Jv -Jv -Jv -Jv -Jv -Jv -Jv -vD -"} diff --git a/_maps/shuttles/ruin/ruin_syndicate_interceptor.dmm b/_maps/shuttles/ruin/ruin_syndicate_interceptor.dmm deleted file mode 100644 index d08a43ace5fb..000000000000 --- a/_maps/shuttles/ruin/ruin_syndicate_interceptor.dmm +++ /dev/null @@ -1,267 +0,0 @@ -//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/ship/bridge) -"c" = ( -/obj/structure/chair/comfy/shuttle{ - name = "Grav Couch"; - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/ship/bridge) -"h" = ( -/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/door/poddoor/preopen{ - id = "jbs04EM" - }, -/turf/open/floor/plating, -/area/ship/bridge) -"i" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 9 - }, -/turf/open/floor/plating, -/area/ship/bridge) -"n" = ( -/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ship/bridge) -"s" = ( -/obj/machinery/atmospherics/pipe/manifold/orange{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/bridge) -"u" = ( -/obj/machinery/atmospherics/components/unary/tank/toxins{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/bridge) -"v" = ( -/obj/structure/sign/syndicate, -/turf/closed/wall/mineral/plastitanium, -/area/ship/bridge) -"B" = ( -/obj/structure/sign/syndicate, -/obj/docking_port/mobile{ - dir = 4; - port_direction = 4; - preferred_direction = 2 - }, -/turf/closed/wall/mineral/plastitanium, -/area/ship/bridge) -"D" = ( -/obj/machinery/atmospherics/pipe/manifold/orange{ - dir = 8 - }, -/obj/machinery/light/directional/west, -/turf/open/floor/plating, -/area/ship/bridge) -"E" = ( -/obj/machinery/door/airlock/external, -/obj/machinery/door/poddoor/preopen{ - id = "jbs04EM" - }, -/turf/open/floor/plating, -/area/ship/bridge) -"F" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/structure/window/plasma/reinforced{ - dir = 8 - }, -/obj/item/clothing/suit/space/pilot, -/obj/item/clothing/head/helmet/space/pilot, -/obj/item/tank/jetpack/oxygen, -/obj/machinery/door/poddoor/preopen{ - id = "jbs04EM" - }, -/obj/machinery/suit_storage_unit/inherit, -/turf/open/floor/plating, -/area/ship/bridge) -"I" = ( -/obj/machinery/atmospherics/components/unary/shuttle/heater{ - dir = 4 - }, -/obj/structure/window/plasma/reinforced{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ship/bridge) -"L" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/bridge) -"M" = ( -/obj/structure{ - desc = "A devastating strike weapon of times past. The mountings seem broken now."; - dir = 4; - icon = 'icons/mecha/mecha_equipment.dmi'; - icon_state = "mecha_missilerack_six"; - name = "ancient missile rack"; - pixel_x = 7; - pixel_y = 11 - }, -/turf/closed/wall/mineral/plastitanium, -/area/ship/bridge) -"N" = ( -/obj/machinery/power/shuttle/engine/fueled/plasma{ - dir = 4 - }, -/turf/open/floor/engine/hull, -/area/ship/bridge) -"O" = ( -/obj/structure{ - desc = "A formerly deadly laser cannon, now stuck rusting on a fightercraft."; - dir = 4; - icon = 'icons/obj/turrets.dmi'; - icon_state = "syndie_off"; - name = "defunct laser cannon"; - pixel_x = 8 - }, -/turf/closed/wall/mineral/plastitanium, -/area/ship/bridge) -"Q" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 9 - }, -/obj/effect/turf_decal/number/zero{ - pixel_x = -6 - }, -/obj/effect/turf_decal/number/four{ - pixel_x = 6 - }, -/turf/closed/wall/mineral/plastitanium, -/area/ship/bridge) -"V" = ( -/obj/machinery/computer/helm{ - dir = 8 - }, -/turf/open/floor/mineral/plastitanium, -/area/ship/bridge) -"W" = ( -/obj/structure{ - desc = "A devastating strike weapon of times past. The mountings seem broken now."; - dir = 4; - icon = 'icons/mecha/mecha_equipment.dmi'; - icon_state = "mecha_missilerack_six"; - name = "ancient missile rack"; - pixel_x = 7; - pixel_y = -5 - }, -/turf/closed/wall/mineral/plastitanium, -/area/ship/bridge) -"X" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 10 - }, -/turf/closed/wall/mineral/plastitanium, -/area/ship/bridge) -"Y" = ( -/obj/structure/extinguisher_cabinet/directional/north, -/obj/machinery/button/door{ - pixel_y = 26; - pixel_x = 5; - id = "jbs04EM"; - name = "Emergency Lockdown" - }, -/turf/open/floor/mineral/plastitanium, -/area/ship/bridge) - -(1,1,1) = {" -a -a -a -B -a -a -a -"} -(2,1,1) = {" -a -a -N -b -N -a -a -"} -(3,1,1) = {" -O -L -I -b -I -L -O -"} -(4,1,1) = {" -a -n -s -D -i -b -a -"} -(5,1,1) = {" -a -W -L -u -L -M -a -"} -(6,1,1) = {" -a -a -X -F -Q -a -a -"} -(7,1,1) = {" -a -a -b -Y -E -a -a -"} -(8,1,1) = {" -a -a -v -c -v -a -a -"} -(9,1,1) = {" -a -a -h -V -h -a -a -"} -(10,1,1) = {" -a -a -h -h -h -a -a -"} diff --git a/_maps/shuttles/shiptest/solgov_chronicle.dmm b/_maps/shuttles/solgov/solgov_chronicle.dmm similarity index 100% rename from _maps/shuttles/shiptest/solgov_chronicle.dmm rename to _maps/shuttles/solgov/solgov_chronicle.dmm diff --git a/_maps/shuttles/solgov/solgov_inkwell.dmm b/_maps/shuttles/solgov/solgov_inkwell.dmm new file mode 100644 index 000000000000..3c8e75a7ace0 --- /dev/null +++ b/_maps/shuttles/solgov/solgov_inkwell.dmm @@ -0,0 +1,8990 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"af" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/storage) +"am" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/canteen/kitchen) +"ao" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"aq" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/door/airlock/mining/glass{ + dir = 4; + name = "Cargo" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/hallway/starboard) +"ar" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/library) +"aO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"bf" = ( +/obj/effect/turf_decal/corner/opaque/solgovgold/three_quarters, +/obj/effect/turf_decal/techfloor/corner{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor/corner{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"bh" = ( +/obj/structure/bed, +/obj/item/bedsheet/solgov, +/obj/structure/sign/solgov_flag{ + dir = 8; + pixel_x = 28 + }, +/obj/structure/sign/poster/solgov/random{ + pixel_y = 32 + }, +/turf/open/floor/carpet/royalblue, +/area/ship/crew/dorm/dormthree) +"bn" = ( +/obj/structure/fluff/hedge/opaque, +/obj/effect/turf_decal/siding/wood{ + color = "#543c30" + }, +/obj/machinery/button/door{ + dir = 8; + id = "sgi_captainbolt"; + name = "bolt control"; + pixel_x = 20; + pixel_y = 6; + specialfunctions = 4; + normaldoorcontrol = 1 + }, +/turf/open/floor/wood/walnut, +/area/ship/crew/dorm/dormtwo) +"br" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"bs" = ( +/obj/structure/bookcase/random, +/turf/open/floor/wood/walnut, +/area/ship/crew/library) +"bt" = ( +/obj/structure/closet/secure_closet/engineering_personal{ + name = "ship engineer's locker"; + populate = 0 + }, +/obj/item/storage/backpack/industrial, +/obj/item/clothing/head/hardhat/solgov, +/obj/item/folder/solgov, +/obj/item/clipboard, +/obj/item/clothing/under/solgov/formal, +/obj/item/clothing/under/solgov, +/obj/item/clothing/accessory/armband/engine, +/obj/item/storage/toolbox/mechanical, +/obj/item/clothing/glasses/welding, +/obj/item/clothing/head/welding, +/obj/item/pen/solgov, +/obj/item/clothing/suit/hazardvest/solgov, +/obj/item/clothing/shoes/workboots, +/obj/item/clothing/gloves/combat, +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/industrial/outline/orange, +/obj/item/clothing/glasses/meson/prescription, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/white, +/area/ship/engineering) +"bu" = ( +/obj/structure/closet/secure_closet/security{ + populate = 0; + name = "sonnensöldners's locker"; + anchored = 1 + }, +/obj/item/clothing/head/solgov/sonnensoldner, +/obj/item/radio{ + icon_state = "sec_radio" + }, +/obj/item/clothing/under/solgov/formal, +/obj/item/clothing/under/solgov/dress, +/obj/item/clothing/under/solgov, +/obj/item/clothing/shoes/workboots, +/obj/item/storage/belt/sabre/solgov, +/obj/item/clothing/gloves/combat, +/obj/item/radio/headset/solgov/alt, +/obj/item/storage/backpack, +/obj/item/clothing/suit/armor/vest/bulletproof/solgov, +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/industrial/outline/red, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"bB" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"bI" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/canteen/kitchen) +"bS" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 8 + }, +/obj/effect/turf_decal/borderfloorblack{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/mono/dark, +/area/ship/hallway/starboard) +"bU" = ( +/turf/closed/wall/mineral/titanium, +/area/ship/crew/library) +"ce" = ( +/obj/structure/sign/solgov_seal{ + pixel_y = 0; + pixel_x = 28 + }, +/turf/open/floor/engine/hull, +/area/ship/external/dark) +"cn" = ( +/obj/structure/fluff/hedge, +/obj/machinery/light/directional/north, +/turf/open/floor/wood/birch, +/area/ship/hallway/starboard) +"co" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/full, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"ct" = ( +/obj/machinery/modular_computer/console/preset/id{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ship/bridge) +"cz" = ( +/obj/effect/turf_decal/techfloor{ + dir = 10 + }, +/obj/item/kirbyplants{ + icon_state = "plant-22"; + pixel_y = 11; + pixel_x = -6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/white, +/area/ship/cargo/office) +"cG" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 8 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"cH" = ( +/obj/structure/curtain, +/obj/machinery/shower{ + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/ship/crew/toilet) +"cI" = ( +/obj/structure/closet/secure_closet/security{ + populate = 0; + name = "sonnensöldners's locker"; + anchored = 1 + }, +/obj/item/clothing/head/solgov/sonnensoldner, +/obj/item/radio{ + icon_state = "sec_radio" + }, +/obj/item/clothing/under/solgov/formal, +/obj/item/clothing/under/solgov/dress, +/obj/item/clothing/under/solgov, +/obj/item/clothing/shoes/workboots, +/obj/item/storage/belt/sabre/solgov, +/obj/item/clothing/gloves/combat, +/obj/item/radio/headset/solgov/alt, +/obj/item/storage/backpack, +/obj/item/clothing/suit/armor/vest/bulletproof/solgov, +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/industrial/outline/red, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"cL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/holopad/emergency/command, +/turf/open/floor/wood/walnut, +/area/ship/crew/dorm/dormtwo) +"cO" = ( +/obj/effect/turf_decal/solgov/wood/center_right, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/turf/open/floor/wood, +/area/ship/bridge) +"cQ" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech/grid, +/area/ship/storage) +"cX" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/machinery/light/small/directional/north, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech/grid, +/area/ship/storage) +"da" = ( +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/machinery/light/directional/east, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/cargo/office) +"db" = ( +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/arrows{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"df" = ( +/obj/effect/turf_decal/corner/opaque/solgovgold{ + dir = 9 + }, +/obj/effect/turf_decal/techfloor/corner{ + dir = 1 + }, +/obj/effect/turf_decal/techfloor/corner{ + dir = 8 + }, +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/engineering) +"dm" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/library) +"dn" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/door/airlock/solgov{ + dir = 4; + req_one_access = list(20); + name = "Captain's Quarters"; + id_tag = "sgi_captainbolt" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/crew/dorm/dormtwo) +"dp" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light_switch{ + pixel_x = 11; + pixel_y = 21 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"dv" = ( +/obj/machinery/power/shuttle/engine/electric{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/engine/hull, +/area/ship/maintenance/starboard) +"dw" = ( +/turf/closed/wall/mineral/titanium, +/area/ship/crew/dorm/dormtwo) +"dE" = ( +/obj/structure/railing/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/button/door{ + dir = 8; + pixel_x = 22; + pixel_y = 10; + name = "external shutters control"; + id = "sgi_cafeteria" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/canteen/kitchen) +"dH" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"dK" = ( +/obj/effect/turf_decal/techfloor{ + dir = 5 + }, +/obj/structure/closet/crate/bin, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/white, +/area/ship/hallway/starboard) +"dM" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/floor, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"dQ" = ( +/obj/structure/chair/wood, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/ship/crew/canteen/kitchen) +"dR" = ( +/obj/effect/turf_decal/techfloor, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"dT" = ( +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 8 + }, +/obj/machinery/button/door{ + dir = 4; + id = "sgi_cargo1"; + name = "blast door control"; + pixel_x = -20; + pixel_y = -7 + }, +/obj/machinery/button/shieldwallgen{ + dir = 4; + pixel_y = 2; + pixel_x = -18; + id = "sgi_holocargo1" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"dY" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/turf/open/floor/wood/birch, +/area/ship/crew/canteen) +"ea" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/toilet) +"eb" = ( +/obj/effect/turf_decal/box/corners, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"ec" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/birch, +/area/ship/crew/canteen) +"ek" = ( +/obj/effect/turf_decal/techfloor{ + dir = 9 + }, +/obj/machinery/power/port_gen/pacman, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/white, +/area/ship/engineering) +"en" = ( +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"eq" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1; + color = "#543C30" + }, +/obj/structure/railing/corner/wood{ + color = "#543C30" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/turf/open/floor/wood/walnut, +/area/ship/crew/dorm/dormtwo) +"ex" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/wood, +/area/ship/crew/canteen/kitchen) +"ez" = ( +/obj/effect/turf_decal/techfloor, +/obj/structure/table/wood, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"eA" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/full, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/hallway/starboard) +"eB" = ( +/obj/structure/curtain, +/obj/machinery/shower{ + dir = 1 + }, +/obj/machinery/button/door{ + dir = 4; + id = "sgi_bolt"; + name = "bathroom lock"; + pixel_x = -20; + pixel_y = 7; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/ship/crew/toilet) +"eD" = ( +/obj/machinery/autolathe, +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"eM" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/shuttle, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 4; + id = "sgi_captain" + }, +/turf/open/floor/plating, +/area/ship/crew/dorm/dormtwo) +"eQ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/birch, +/area/ship/crew/canteen) +"eX" = ( +/obj/effect/turf_decal/corner/opaque/solgovgold{ + dir = 6 + }, +/obj/effect/turf_decal/techfloor/corner, +/obj/effect/turf_decal/techfloor/corner{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/ship/engineering) +"ff" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 8 + }, +/obj/effect/turf_decal/borderfloorblack{ + dir = 4 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/hallway/starboard) +"fi" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue/corner{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue/corner, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner, +/obj/machinery/light/floor, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"fj" = ( +/obj/structure/chair/wood, +/obj/machinery/light/directional/north, +/obj/machinery/airalarm/directional/east, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/ship/crew/library) +"fk" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor/orange{ + dir = 9 + }, +/obj/effect/turf_decal/corner/opaque/solgovblue, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/machinery/airalarm/directional/north, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/starboard) +"ft" = ( +/turf/closed/wall/mineral/titanium, +/area/ship/crew/dorm) +"fv" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"fB" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"fC" = ( +/obj/effect/turf_decal/techfloor/corner, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ship/storage) +"fE" = ( +/obj/machinery/light/directional/east, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/canteen) +"fG" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/techfloor/orange{ + dir = 5 + }, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 8 + }, +/obj/structure/sign/poster/solgov/random{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/port) +"fI" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/computer/helm/viewscreen/directional/north, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"fO" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"fQ" = ( +/obj/effect/turf_decal/siding/wood/corner, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/hallway/starboard) +"fU" = ( +/obj/structure/chair/office, +/turf/open/floor/wood/maple, +/area/ship/bridge) +"fZ" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/closed/wall/mineral/titanium, +/area/ship/security/armory) +"gf" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ship/hallway/starboard) +"gi" = ( +/obj/effect/turf_decal/techfloor, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/light/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"gm" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/corner/opaque/solgovgold{ + dir = 5 + }, +/obj/effect/turf_decal/techfloor/corner{ + dir = 1 + }, +/obj/effect/turf_decal/techfloor/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ship/storage) +"gn" = ( +/obj/structure/window/reinforced/fulltile/shuttle, +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "sgi_office" + }, +/turf/open/floor/plating, +/area/ship/crew/office) +"gp" = ( +/obj/effect/turf_decal/techfloor, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ship/storage) +"gr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/crew/cryo) +"gu" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue/corner{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"gw" = ( +/obj/effect/turf_decal/siding/yellow, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"gI" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 1 + }, +/obj/machinery/light/floor, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue/corner, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"gP" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 8 + }, +/obj/machinery/airalarm/directional/north, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"gS" = ( +/obj/machinery/suit_storage_unit/solgov, +/turf/open/floor/wood/walnut, +/area/ship/crew/dorm/dormthree) +"gV" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/ship/crew/canteen/kitchen) +"gW" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/full, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/hallway/starboard) +"ha" = ( +/obj/structure/rack, +/obj/item/storage/box/emptysandbags{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/item/storage/box/emptysandbags, +/obj/item/storage/box/emptysandbags{ + pixel_x = 5; + pixel_y = -5 + }, +/obj/structure/rack, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"hg" = ( +/obj/machinery/suit_storage_unit/inherit, +/obj/item/clothing/suit/space/hardsuit/solgov, +/obj/item/tank/jetpack/oxygen, +/turf/open/floor/wood/maple, +/area/ship/crew/dorm/dormtwo) +"hl" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 8 + }, +/obj/structure/closet/emcloset/wall{ + dir = 1; + pixel_y = -28 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"hm" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + pixel_y = 7; + pixel_x = 16 + }, +/obj/item/paper_bin, +/obj/item/pen/solgov, +/obj/machinery/light/directional/north, +/turf/open/floor/carpet/blue, +/area/ship/crew/office) +"hw" = ( +/obj/structure/bed, +/obj/item/bedsheet/solgov, +/obj/structure/curtain/cloth, +/obj/machinery/light/directional/west, +/turf/open/floor/carpet/blue, +/area/ship/crew/dorm) +"hB" = ( +/obj/structure/closet/crate/wooden, +/obj/item/paper_bin/bundlenatural, +/obj/item/paper_bin/bundlenatural, +/obj/item/paper_bin/bundlenatural, +/obj/item/storage/fancy/candle_box, +/obj/item/storage/fancy/candle_box, +/obj/item/storage/fancy/candle_box, +/obj/item/folder/solgov, +/obj/item/folder/solgov, +/obj/item/folder/solgov, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"hE" = ( +/obj/machinery/porta_turret/ship/solgov, +/turf/closed/wall/mineral/titanium, +/area/ship/bridge) +"hF" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/library) +"hJ" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/structure/rack, +/obj/item/stack/sheet/mineral/plasma/twenty, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/white, +/area/ship/engineering) +"hM" = ( +/obj/structure/railing/wood, +/obj/structure/chair/stool/bar, +/obj/effect/turf_decal/siding/wood, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/wood/birch, +/area/ship/crew/canteen) +"hR" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/full, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/cargo/office) +"hS" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/office) +"ia" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor/orange{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/port) +"ib" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/structure/table/wood, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/item/hand_labeler{ + pixel_x = 4; + pixel_y = -4 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/white, +/area/ship/cargo/office) +"ic" = ( +/obj/effect/turf_decal/techfloor{ + dir = 6 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"if" = ( +/obj/effect/turf_decal/techfloor, +/obj/structure/table/wood, +/obj/item/screwdriver{ + pixel_x = -2; + pixel_y = 3 + }, +/obj/item/hand_labeler{ + pixel_x = 4; + pixel_y = -4 + }, +/obj/machinery/newscaster/security_unit/directional/south, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"ij" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/solgovgold{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"iq" = ( +/obj/structure/closet/crate{ + name = "space suits crate" + }, +/obj/item/clothing/suit/space/solgov, +/obj/item/clothing/suit/space/solgov, +/obj/item/clothing/suit/space/solgov, +/obj/item/clothing/head/helmet/space/solgov, +/obj/item/clothing/head/helmet/space/solgov, +/obj/item/clothing/head/helmet/space/solgov, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"iu" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/carpet/royalblue, +/area/ship/crew/dorm/dormtwo) +"iy" = ( +/obj/effect/turf_decal/box/corners, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/arrows{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"iD" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/office) +"iE" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/ship/crew/canteen/kitchen) +"iG" = ( +/turf/template_noop, +/area/template_noop) +"iI" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 9 + }, +/obj/effect/turf_decal/borderfloorblack{ + dir = 4 + }, +/obj/machinery/cryopod{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/ship/crew/cryo) +"iJ" = ( +/obj/item/clothing/neck/stripedsolgovscarf, +/obj/item/clothing/neck/stripedsolgovscarf, +/obj/item/clothing/under/solgov, +/obj/item/clothing/under/solgov, +/obj/item/clothing/under/solgov/dress, +/obj/item/clothing/under/solgov/formal, +/obj/item/clothing/under/solgov/formal, +/obj/item/clothing/shoes/laceup, +/obj/item/clothing/shoes/laceup, +/obj/item/clothing/head/beret/solgov/plain, +/obj/item/clothing/head/beret/solgov/plain, +/obj/item/clothing/suit/solgov, +/obj/item/clothing/suit/solgov/dress, +/obj/item/clothing/suit/solgov/jacket, +/obj/item/clothing/under/solgov/formal/skirt, +/obj/item/clothing/suit/solgov/suit, +/obj/structure/table/wood, +/obj/structure/closet/wall{ + dir = 8; + pixel_x = 28 + }, +/obj/machinery/button/door{ + pixel_y = -21; + pixel_x = -8; + dir = 1; + id = "sgi_dorms"; + name = "dorms shutters control" + }, +/obj/item/clothing/suit/hooded/wintercoat/solgov, +/obj/item/clothing/suit/hooded/wintercoat/solgov, +/turf/open/floor/wood/walnut, +/area/ship/crew/dorm) +"iL" = ( +/obj/machinery/airalarm/directional/north, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/hallway/starboard) +"iM" = ( +/obj/effect/turf_decal/techfloor{ + dir = 9 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/cargo/office) +"iR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"jc" = ( +/obj/structure/chair/wood, +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/turf/open/floor/wood/walnut, +/area/ship/crew/office) +"je" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue/corner{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue/corner{ + dir = 8 + }, +/obj/machinery/light/floor, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"jf" = ( +/obj/structure/table/wood, +/obj/item/table_bell{ + pixel_x = -6; + pixel_y = 9 + }, +/turf/open/floor/wood, +/area/ship/crew/canteen) +"jh" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/floor, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"jo" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/wood, +/area/ship/crew/office) +"jv" = ( +/turf/open/floor/wood, +/area/ship/crew/canteen) +"jw" = ( +/obj/effect/turf_decal/techfloor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/ship/cargo/office) +"jE" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue/corner{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"jM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"jP" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue/corner{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/floor, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"jX" = ( +/obj/structure/chair/sofa/left{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/blue, +/area/ship/crew/canteen/kitchen) +"ka" = ( +/obj/effect/turf_decal/techfloor{ + dir = 9 + }, +/obj/machinery/suit_storage_unit/solgov, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"ke" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"kf" = ( +/obj/effect/turf_decal/techfloor{ + dir = 5 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/closet/cabinet{ + name = "armor cabinet" + }, +/obj/item/clothing/suit/armor/vest/bulletproof/solgov, +/obj/item/clothing/suit/armor/vest/bulletproof/solgov, +/obj/item/clothing/suit/armor/vest/bulletproof/solgov, +/obj/item/clothing/head/solgov/sonnensoldner, +/obj/item/clothing/head/solgov/sonnensoldner, +/obj/item/clothing/head/solgov/sonnensoldner, +/obj/item/clothing/gloves/combat, +/obj/item/clothing/gloves/combat, +/obj/item/clothing/gloves/combat, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"km" = ( +/obj/structure/table/wood, +/obj/item/storage/belt/utility{ + pixel_y = 6 + }, +/obj/item/radio/intercom/directional/north, +/obj/item/multitool{ + pixel_x = 7; + pixel_y = 2 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 2 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"ks" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/sign/poster/solgov/random{ + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/ship/hallway/starboard) +"ku" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 10 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"kx" = ( +/obj/effect/turf_decal/industrial/caution{ + dir = 4 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"kz" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/light/directional/north, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/ship/crew/canteen/kitchen) +"kB" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/door/airlock/engineering{ + dir = 4; + name = "Electrical Room"; + req_one_access = list(10) + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/engineering) +"kK" = ( +/obj/machinery/door/window/brigdoor/westleft, +/obj/structure/rack, +/obj/machinery/light/directional/east, +/turf/open/floor/plasteel/tech/grid, +/area/ship/security/armory) +"kL" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/door/airlock/solgov/glass{ + dir = 4; + name = "Offices" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/hallway/starboard) +"kN" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 9 + }, +/obj/effect/turf_decal/borderfloorblack{ + dir = 4 + }, +/obj/machinery/cryopod{ + dir = 4 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/white, +/area/ship/crew/cryo) +"kR" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/airalarm/directional/north, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/turf/open/floor/wood, +/area/ship/crew/office) +"kZ" = ( +/obj/effect/turf_decal/techfloor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/newscaster/security_unit/directional/south, +/turf/open/floor/plasteel/white, +/area/ship/cargo/office) +"lh" = ( +/obj/item/clothing/neck/stripedsolgovscarf, +/obj/item/clothing/neck/stripedsolgovscarf, +/obj/item/clothing/under/solgov, +/obj/item/clothing/under/solgov, +/obj/item/clothing/under/solgov/dress, +/obj/item/clothing/under/solgov/formal, +/obj/item/clothing/under/solgov/formal, +/obj/item/clothing/shoes/laceup, +/obj/item/clothing/shoes/laceup, +/obj/item/clothing/head/beret/solgov/plain, +/obj/item/clothing/head/beret/solgov/plain, +/obj/item/clothing/suit/solgov, +/obj/item/clothing/suit/solgov/dress, +/obj/item/clothing/suit/solgov/jacket, +/obj/item/clothing/under/solgov/formal/skirt, +/obj/item/clothing/suit/solgov/suit, +/obj/structure/table/wood, +/obj/structure/closet/wall{ + dir = 8; + pixel_x = 28 + }, +/obj/item/clothing/suit/hooded/wintercoat/solgov, +/obj/item/clothing/suit/hooded/wintercoat/solgov, +/turf/open/floor/wood/walnut, +/area/ship/crew/dorm) +"li" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + pixel_y = 7; + pixel_x = 16 + }, +/obj/item/folder/solgov, +/obj/machinery/light/directional/south, +/turf/open/floor/carpet/blue, +/area/ship/crew/office) +"lj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/turretid/lethal{ + pixel_y = 0; + pixel_x = -26 + }, +/turf/open/floor/plasteel/stairs/wood{ + dir = 1 + }, +/area/ship/bridge) +"ln" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/turf/closed/wall/mineral/titanium, +/area/ship/maintenance/starboard) +"lq" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/machinery/airalarm/directional/north, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"lu" = ( +/obj/machinery/photocopier, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/ship/cargo) +"lx" = ( +/obj/effect/turf_decal/techfloor{ + dir = 9 + }, +/obj/structure/rack, +/obj/structure/window/reinforced, +/obj/item/storage/box/handcuffs, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"lB" = ( +/obj/structure/fluff/hedge/opaque, +/obj/effect/turf_decal/siding/wood{ + color = "#D5A66E"; + dir = 1 + }, +/turf/open/floor/wood/birch, +/area/ship/crew/dorm/dormthree) +"lD" = ( +/obj/structure/bed, +/obj/item/bedsheet/solgov, +/obj/structure/curtain/cloth, +/obj/machinery/firealarm/directional/south, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/carpet/blue, +/area/ship/crew/dorm) +"lT" = ( +/obj/structure/railing/corner/wood{ + color = "#543C30"; + dir = 4 + }, +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"lW" = ( +/obj/structure/railing/corner/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/newscaster/security_unit/directional/east, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/birch, +/area/ship/crew/canteen) +"lX" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/canteen/kitchen) +"md" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"mf" = ( +/obj/item/kirbyplants{ + icon_state = "applebush"; + pixel_y = 2; + pixel_x = -5 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/wood/birch, +/area/ship/crew/office) +"my" = ( +/obj/structure/fluff/hedge, +/turf/open/floor/wood/walnut, +/area/ship/crew/canteen/kitchen) +"mz" = ( +/obj/structure/closet/crate, +/obj/item/reagent_containers/food/snacks/store/bread/plain, +/obj/item/reagent_containers/food/snacks/store/bread/plain, +/obj/item/reagent_containers/food/snacks/store/bread/plain, +/obj/item/reagent_containers/food/snacks/store/bread/plain, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"mA" = ( +/obj/structure/fluff/hedge, +/turf/open/floor/wood/birch, +/area/ship/crew/office) +"mB" = ( +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/machinery/atmospherics/components/binary/dp_vent_pump/on/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/item/radio/intercom/directional/south, +/obj/machinery/advanced_airlock_controller{ + pixel_x = -25; + pixel_y = 2 + }, +/turf/open/floor/plasteel/tech, +/area/ship/hallway/starboard) +"mD" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1; + color = "#543C30" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/ship/crew/dorm/dormtwo) +"mQ" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/door/airlock/mining{ + dir = 4; + name = "Field Engineer Locker Room"; + req_one_access = list(10,31) + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/hallway/starboard) +"mY" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 4 + }, +/obj/machinery/firealarm/directional/north, +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/ship/crew/cryo) +"nc" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 8 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"nf" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/office) +"ng" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"nh" = ( +/obj/effect/turf_decal/siding/wood{ + color = "#543c30" + }, +/obj/structure/railing/wood{ + color = "#543C30" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/industrial/stand_clear, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"ni" = ( +/obj/machinery/power/shuttle/engine/electric{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/light/floor, +/turf/open/floor/engine/hull, +/area/ship/maintenance/starboard) +"nk" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light_switch{ + pixel_x = 11; + pixel_y = 21 + }, +/turf/open/floor/wood, +/area/ship/crew/canteen/kitchen) +"no" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ship/crew/canteen/kitchen) +"np" = ( +/obj/effect/turf_decal/industrial/caution{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"nx" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/machinery/airalarm/directional/north, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/turf/open/floor/plasteel/white, +/area/ship/hallway/starboard) +"ny" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/ship/crew/toilet) +"nA" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/item/reagent_containers/food/snacks/meat/slab, +/obj/item/reagent_containers/food/snacks/meat/slab, +/obj/item/reagent_containers/food/snacks/meat/slab, +/obj/item/reagent_containers/food/snacks/meat/slab, +/obj/item/reagent_containers/food/snacks/meat/slab, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/reagent_containers/food/snacks/grown/cocoapod, +/obj/item/reagent_containers/food/snacks/grown/cocoapod, +/obj/item/reagent_containers/food/snacks/grown/citrus/orange, +/obj/item/reagent_containers/food/snacks/grown/citrus/orange, +/obj/item/reagent_containers/food/snacks/grown/apple, +/obj/item/reagent_containers/food/snacks/grown/apple, +/obj/item/reagent_containers/food/snacks/grown/tomato, +/obj/item/reagent_containers/food/snacks/grown/tomato, +/obj/item/reagent_containers/food/snacks/grown/carrot, +/obj/item/reagent_containers/food/snacks/grown/carrot, +/obj/item/reagent_containers/food/snacks/grown/potato, +/obj/item/reagent_containers/food/snacks/grown/potato, +/turf/open/floor/wood/walnut, +/area/ship/crew/canteen/kitchen) +"nB" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"nC" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/office) +"nJ" = ( +/obj/effect/turf_decal/techfloor/orange/corner, +/obj/effect/turf_decal/techfloor/orange/corner{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/components/binary/pump/on/layer2{ + dir = 4; + name = "Air to Distro" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 9 + }, +/obj/effect/turf_decal/corner/opaque/solgovgold{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/starboard) +"nL" = ( +/obj/structure/table/wood, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high/plus, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 1 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"nO" = ( +/obj/machinery/computer/cargo/express/solgov, +/turf/open/floor/wood/maple, +/area/ship/bridge) +"nR" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/shuttle, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "sgi_bridge" + }, +/turf/open/floor/plating, +/area/ship/bridge) +"nV" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1; + color = "#543C30" + }, +/obj/structure/railing/wood{ + color = "#543C30"; + dir = 1 + }, +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 1 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"nY" = ( +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/wood/birch, +/area/ship/crew/office) +"of" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/machinery/light_switch{ + dir = 1; + pixel_x = 11; + pixel_y = -16 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/turf/open/floor/wood, +/area/ship/hallway/starboard) +"og" = ( +/obj/structure/bookcase/random, +/obj/machinery/light/directional/west, +/turf/open/floor/wood/walnut, +/area/ship/crew/library) +"oi" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/ship/cargo) +"op" = ( +/obj/machinery/power/smes/shuttle/precharged{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor/orange{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/door/poddoor{ + id = "sgi_engine"; + dir = 4 + }, +/obj/machinery/door/window/westright{ + dir = 4 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/maintenance/port) +"or" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/door/airlock/solgov{ + name = "Cryogenics" + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/crew/cryo) +"os" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 8 + }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/machinery/light_switch{ + dir = 1; + pixel_x = 11; + pixel_y = -14 + }, +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/crew/cryo) +"oC" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"oG" = ( +/obj/effect/turf_decal/techfloor/orange, +/obj/machinery/atmospherics/pipe/simple/general/visible/layer2{ + dir = 5 + }, +/obj/machinery/light/directional/south, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/starboard) +"oH" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/item/radio/intercom/directional/north, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"oN" = ( +/obj/structure/bookcase/random, +/obj/structure/sign/poster/solgov/random{ + pixel_x = -32 + }, +/turf/open/floor/wood/walnut, +/area/ship/crew/library) +"oR" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood/walnut, +/area/ship/crew/office) +"pc" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = 12 + }, +/obj/structure/mirror{ + pixel_x = 25 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/freezer, +/area/ship/crew/toilet) +"pd" = ( +/obj/machinery/fax, +/obj/structure/table/wood/fancy/purple, +/turf/open/floor/wood/maple, +/area/ship/crew/dorm/dormtwo) +"ph" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 10 + }, +/obj/machinery/newscaster/security_unit/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/crew/cryo) +"pr" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue, +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"ps" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/ship/crew/dorm) +"pu" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8; + color = "#543C30" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/ship/crew/dorm/dormtwo) +"px" = ( +/obj/structure/rack, +/obj/item/shovel, +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"py" = ( +/obj/structure/filingcabinet/double, +/obj/item/documents/solgov, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/wood/maple, +/area/ship/crew/dorm/dormtwo) +"pG" = ( +/obj/effect/turf_decal/siding/wood{ + color = "#D5A66E" + }, +/obj/structure/railing/wood{ + dir = 1; + color = "#D5A66E" + }, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 19; + pixel_y = -12 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/birch, +/area/ship/crew/dorm/dormthree) +"pK" = ( +/obj/effect/turf_decal/siding/yellow, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning, +/obj/machinery/light/floor, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"pL" = ( +/obj/effect/turf_decal/siding/wood{ + color = "#D5A66E"; + dir = 10 + }, +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/birch, +/area/ship/crew/dorm/dormthree) +"pS" = ( +/obj/structure/table/wood, +/turf/open/floor/carpet/blue, +/area/ship/crew/canteen/kitchen) +"qc" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/shuttle, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "sgi_cafeteria" + }, +/turf/open/floor/plating, +/area/ship/crew/canteen/kitchen) +"qe" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/stairs/wood{ + dir = 1 + }, +/area/ship/bridge) +"qh" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/canteen/kitchen) +"qp" = ( +/obj/machinery/door/poddoor{ + dir = 4; + id = "sgi_cargo1" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + dir = 1; + id = "sgi_holocargo1" + }, +/turf/open/floor/plasteel/patterned/ridged, +/area/ship/cargo) +"qs" = ( +/obj/machinery/space_heater, +/obj/effect/turf_decal/techfloor/orange{ + dir = 6 + }, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 1 + }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/obj/machinery/light_switch{ + dir = 1; + pixel_x = 11; + pixel_y = -14 + }, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/port) +"qt" = ( +/obj/structure/closet/crate, +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 1 + }, +/obj/effect/spawner/lootdrop/maintenance/three, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"qw" = ( +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"qx" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 8 + }, +/obj/machinery/suit_storage_unit/solgov, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plasteel/tech, +/area/ship/hallway/starboard) +"qB" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/obj/structure/sign/poster/solgov/random{ + pixel_x = 32 + }, +/turf/open/floor/wood, +/area/ship/crew/canteen) +"qE" = ( +/obj/structure/table/wood, +/obj/item/kitchen/knife/letter_opener{ + pixel_x = -13; + icon_state = "letter_opener_b"; + pixel_y = 4; + name = "boxcutter" + }, +/obj/item/storage/box/shipping, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 2 + }, +/obj/structure/sign/poster/solgov/random{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"qG" = ( +/obj/machinery/light/small/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech/grid, +/area/ship/storage) +"qM" = ( +/obj/machinery/light/floor, +/obj/structure/sign/solgov_seal{ + pixel_y = 0; + pixel_x = 28 + }, +/turf/open/floor/engine/hull, +/area/ship/external/dark) +"qP" = ( +/obj/machinery/computer/crew/solgov{ + dir = 1 + }, +/turf/open/floor/wood/maple, +/area/ship/bridge) +"qS" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 6 + }, +/obj/effect/turf_decal/borderfloorblack{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/structure/closet/wall{ + pixel_y = 28 + }, +/obj/item/radio, +/obj/item/radio, +/obj/item/radio, +/obj/item/radio, +/obj/item/radio, +/obj/item/radio, +/obj/item/radio, +/obj/item/radio, +/obj/item/radio, +/obj/item/radio, +/obj/item/radio, +/obj/item/radio, +/obj/item/radio, +/turf/open/floor/plasteel/white, +/area/ship/crew/cryo) +"rb" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1; + color = "#543C30" + }, +/obj/effect/turf_decal/box/corners, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"rm" = ( +/obj/effect/spawner/lootdrop/crate_spawner, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"rz" = ( +/obj/machinery/holopad/emergency/command, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/bridge) +"rD" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/port) +"rM" = ( +/obj/effect/turf_decal/box/corners, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"rN" = ( +/obj/structure/closet/secure_closet/miner{ + name = "field engineer's locker"; + populate = 0; + anchored = 1 + }, +/obj/item/pickaxe/drill/jackhammer, +/obj/item/storage/toolbox/mechanical, +/obj/item/clothing/head/hardhat/solgov, +/obj/item/radio{ + icon_state = "sec_radio" + }, +/obj/item/clothing/under/solgov/formal, +/obj/item/clothing/under/solgov/dress, +/obj/item/clothing/under/solgov, +/obj/item/clothing/suit/hazardvest/solgov, +/obj/item/clothing/accessory/armband/cargo, +/obj/item/clothing/shoes/workboots, +/obj/item/clothing/gloves/combat, +/obj/item/storage/backpack, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/outline/red, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/clothing/glasses/meson/prescription, +/obj/item/kitchen/knife/letter_opener, +/obj/item/clothing/glasses/meson, +/obj/machinery/light/directional/north, +/obj/item/storage/bag/ore, +/turf/open/floor/plasteel/white, +/area/ship/cargo/office) +"rQ" = ( +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/airalarm/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/engineering) +"rR" = ( +/obj/effect/turf_decal/siding/yellow, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"rS" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/canteen/kitchen) +"rT" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/office) +"rU" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"rZ" = ( +/obj/structure/chair, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 10 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"sb" = ( +/obj/effect/turf_decal/techfloor/corner, +/obj/effect/turf_decal/techfloor/corner{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/solgovgold{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"sd" = ( +/obj/structure/table/wood, +/turf/open/floor/wood/walnut, +/area/ship/crew/canteen/kitchen) +"sg" = ( +/obj/structure/fluff/hedge, +/obj/structure/sign/poster/solgov/random{ + pixel_x = -32 + }, +/turf/open/floor/wood/walnut, +/area/ship/crew/canteen/kitchen) +"sh" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"sk" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/ship/crew/library) +"sm" = ( +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/obj/structure/closet/crate, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/spawner/lootdrop/maintenance/three, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"sn" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/cryo) +"so" = ( +/obj/structure/bed, +/obj/item/bedsheet/solgov, +/obj/structure/curtain/cloth, +/turf/open/floor/carpet/blue, +/area/ship/crew/dorm) +"sr" = ( +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 1 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"su" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/door/airlock/atmos{ + dir = 4; + name = "Engine Room"; + req_one_access = list(10) + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/maintenance/starboard) +"sx" = ( +/obj/structure/rack, +/obj/item/pickaxe, +/obj/item/pickaxe, +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"sz" = ( +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/machinery/light/directional/south, +/obj/structure/ore_box, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"sH" = ( +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"sJ" = ( +/turf/closed/wall/mineral/titanium, +/area/ship/storage) +"sQ" = ( +/obj/structure/bed/double, +/obj/item/bedsheet/double/solgov, +/obj/item/toy/plush/blahaj, +/obj/structure/sign/solgov_flag{ + dir = 8; + pixel_x = 28 + }, +/turf/open/floor/carpet/royalblue, +/area/ship/crew/dorm/dormtwo) +"sT" = ( +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"sV" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4{ + dir = 2; + name = "atmos waste outlet injector" + }, +/turf/open/floor/plating, +/area/ship/external/dark) +"sX" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 8 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue/corner, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"tc" = ( +/obj/machinery/firealarm/directional/south, +/turf/open/floor/carpet/royalblue, +/area/ship/crew/dorm/dormtwo) +"td" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/library) +"tg" = ( +/obj/structure/railing/wood{ + color = "#543C30"; + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"ti" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8; + color = "#543C30" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4; + color = "#543C30" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/obj/machinery/button/door{ + pixel_y = -21; + pixel_x = -8; + dir = 1; + id = "sgi_captain"; + name = "external shutters control" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/ship/crew/dorm/dormtwo) +"tl" = ( +/obj/effect/turf_decal/siding/wood{ + color = "#D5A66E" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/birch, +/area/ship/crew/dorm/dormthree) +"tr" = ( +/obj/structure/closet/secure_closet/miner{ + name = "field engineer's locker"; + populate = 0; + anchored = 1 + }, +/obj/item/pickaxe/drill/jackhammer, +/obj/item/storage/toolbox/mechanical, +/obj/item/clothing/head/hardhat/solgov, +/obj/item/radio{ + icon_state = "sec_radio" + }, +/obj/item/clothing/under/solgov/formal, +/obj/item/clothing/under/solgov/dress, +/obj/item/clothing/under/solgov, +/obj/item/clothing/suit/hazardvest/solgov, +/obj/item/clothing/accessory/armband/cargo, +/obj/item/clothing/shoes/workboots, +/obj/item/clothing/gloves/combat, +/obj/item/storage/backpack, +/obj/item/clothing/glasses/meson/prescription, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/outline/red, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/kitchen/knife/letter_opener, +/obj/item/clothing/glasses/meson, +/obj/structure/sign/poster/solgov/random{ + pixel_y = 32 + }, +/obj/item/storage/bag/ore, +/turf/open/floor/plasteel/white, +/area/ship/cargo/office) +"ts" = ( +/turf/closed/wall/mineral/titanium, +/area/ship/hallway/starboard) +"tx" = ( +/obj/machinery/firealarm/directional/north, +/turf/open/floor/carpet/royalblue, +/area/ship/crew/dorm/dormthree) +"tB" = ( +/obj/effect/turf_decal/techfloor/corner, +/obj/effect/turf_decal/techfloor/corner{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/solgovgold{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/ship/hallway/starboard) +"tD" = ( +/obj/structure/fluff/hedge/opaque, +/obj/effect/turf_decal/siding/wood{ + color = "#543c30" + }, +/turf/open/floor/wood/walnut, +/area/ship/crew/dorm/dormtwo) +"tK" = ( +/obj/structure/table/wood, +/obj/item/radio/intercom/directional/east, +/obj/item/desk_flag/solgov{ + pixel_y = 12; + pixel_x = -8 + }, +/turf/open/floor/wood, +/area/ship/crew/canteen) +"tT" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor/orange{ + dir = 10 + }, +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/port) +"tU" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 1 + }, +/obj/machinery/light/floor, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"tY" = ( +/obj/effect/turf_decal/techfloor{ + dir = 6 + }, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 19; + pixel_y = -12 + }, +/turf/open/floor/plasteel/white, +/area/ship/engineering) +"uc" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/obj/machinery/light/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/maple, +/area/ship/bridge) +"uh" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/cargo) +"up" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical{ + pixel_y = 5 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_y = 5 + }, +/obj/item/analyzer, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/machinery/airalarm/directional/north, +/obj/item/analyzer, +/turf/open/floor/plasteel/white, +/area/ship/cargo/office) +"uq" = ( +/obj/machinery/light/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/canteen) +"ut" = ( +/obj/effect/turf_decal/techfloor/corner{ + dir = 1 + }, +/obj/effect/turf_decal/techfloor/corner{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/solgovgold{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/cargo/office) +"uv" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/structure/rack, +/obj/machinery/door/window/brigdoor/southleft, +/obj/item/ammo_box/magazine/pistol556mm, +/obj/item/ammo_box/magazine/pistol556mm, +/obj/item/ammo_box/magazine/pistol556mm, +/obj/item/ammo_box/magazine/pistol556mm, +/obj/item/ammo_box/magazine/pistol556mm, +/obj/item/ammo_box/magazine/pistol556mm, +/obj/item/gun/ballistic/automatic/pistol/solgov{ + pixel_x = -2 + }, +/obj/item/gun/ballistic/automatic/pistol/solgov{ + pixel_x = 1 + }, +/obj/item/gun/ballistic/automatic/pistol/solgov{ + pixel_x = 4 + }, +/obj/machinery/newscaster/security_unit/directional/north, +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"uw" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/machinery/door/airlock/external, +/obj/machinery/door/poddoor{ + id = "sgi_external" + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/hallway/starboard) +"uy" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/canteen) +"uA" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"uC" = ( +/obj/effect/turf_decal/techfloor{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/storage) +"uE" = ( +/obj/item/paper_bin, +/obj/item/pen/solgov, +/obj/structure/table/wood/fancy/purple, +/obj/item/binoculars{ + pixel_y = 13 + }, +/turf/open/floor/wood/maple, +/area/ship/crew/dorm/dormtwo) +"uK" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"uR" = ( +/obj/effect/turf_decal/industrial/stand_clear, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"uS" = ( +/obj/structure/table/wood, +/obj/item/cutting_board, +/obj/item/kitchen/knife, +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_x = -17 + }, +/obj/item/reagent_containers/food/condiment/peppermill{ + pixel_x = -10; + pixel_y = 6 + }, +/turf/open/floor/wood/walnut, +/area/ship/crew/canteen/kitchen) +"uT" = ( +/obj/effect/turf_decal/siding/yellow, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"uX" = ( +/obj/structure/railing/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/canteen/kitchen) +"vf" = ( +/obj/effect/turf_decal/techfloor{ + dir = 5 + }, +/obj/machinery/power/port_gen/pacman, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/white, +/area/ship/engineering) +"vn" = ( +/obj/item/kirbyplants{ + icon_state = "plant-11"; + pixel_x = -12; + pixel_y = 19; + layer = 2.89 + }, +/obj/item/kirbyplants{ + icon_state = "plant-17"; + pixel_y = 3; + pixel_x = -10 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/wood, +/area/ship/hallway/starboard) +"vo" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/door/airlock/security{ + dir = 4; + name = "Sonnensoldner Locker Room"; + req_one_access = list(1,10) + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/hallway/starboard) +"vz" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1; + color = "#543C30" + }, +/obj/structure/railing/wood{ + color = "#543C30" + }, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 19; + pixel_y = -12 + }, +/turf/open/floor/wood/walnut, +/area/ship/crew/dorm/dormtwo) +"vE" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"vH" = ( +/obj/effect/turf_decal/solgov/wood/top_right, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20; + pixel_y = -11 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/bridge) +"vL" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/library) +"vM" = ( +/obj/structure/fluff/hedge, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/wood/walnut, +/area/ship/crew/library) +"vW" = ( +/obj/effect/turf_decal/solgov/wood/bottom_right, +/obj/effect/turf_decal/siding/wood, +/obj/item/radio/intercom/directional/west, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ship/bridge) +"wb" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/maintenance/starboard) +"wg" = ( +/obj/structure/closet/crate/wooden, +/obj/item/storage/crayons, +/obj/item/storage/crayons, +/obj/item/storage/crayons, +/obj/item/storage/crayons, +/obj/item/toner/extreme, +/obj/item/toner/extreme, +/obj/item/toner/extreme, +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"wh" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/library) +"wj" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"wk" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8; + color = "#543C30" + }, +/obj/effect/turf_decal/siding/wood/corner{ + color = "#543C30" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/ship/crew/dorm/dormtwo) +"wm" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/shuttle, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 4; + id = "sgi_qm" + }, +/turf/open/floor/plating, +/area/ship/crew/dorm/dormthree) +"wo" = ( +/obj/item/clothing/gloves/combat, +/obj/item/folder/solgov, +/obj/item/folder/solgov, +/obj/item/clothing/under/solgov/formal, +/obj/item/pen/solgov, +/obj/item/clothing/under/solgov/dress, +/obj/item/stamp/solgov, +/obj/item/clothing/suit/armor/solgov_trenchcoat, +/obj/item/storage/backpack/satchel, +/obj/item/kitchen/knife/letter_opener, +/obj/structure/closet/secure_closet/quartermaster{ + populate = 0; + anchored = 1; + name = "\proper logistics deck officer's locker" + }, +/obj/item/clothing/suit/solgov/overcoat, +/obj/item/clothing/head/flatcap/solgov, +/obj/item/clothing/glasses/sunglasses, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/ship/crew/dorm/dormthree) +"wq" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/door/airlock/security{ + dir = 1; + name = "Hardsuit Storage"; + req_one_access = list(1) + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/security/armory) +"wt" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"wB" = ( +/obj/structure/closet/secure_closet/security{ + populate = 0; + name = "sonnensöldners's locker"; + anchored = 1 + }, +/obj/item/clothing/head/solgov/sonnensoldner, +/obj/item/radio{ + icon_state = "sec_radio" + }, +/obj/item/clothing/under/solgov/formal, +/obj/item/clothing/under/solgov/dress, +/obj/item/clothing/under/solgov, +/obj/item/clothing/shoes/workboots, +/obj/item/storage/belt/sabre/solgov, +/obj/item/clothing/gloves/combat, +/obj/item/radio/headset/solgov/alt, +/obj/item/storage/backpack, +/obj/item/clothing/suit/armor/vest/bulletproof/solgov, +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/industrial/outline/red, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"wF" = ( +/obj/structure/chair/wood, +/turf/open/floor/wood/walnut, +/area/ship/crew/canteen/kitchen) +"wQ" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/full, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/engineering) +"wW" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ship/crew/canteen) +"xd" = ( +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/turf/open/floor/plasteel/tech, +/area/ship/hallway/starboard) +"xf" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 10 + }, +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/engineering) +"xh" = ( +/obj/structure/chair/wood{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/birch, +/area/ship/hallway/starboard) +"xs" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/techfloor/orange{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 9 + }, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/port) +"xt" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/full, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/turf/open/floor/plasteel/white, +/area/ship/cargo/office) +"xA" = ( +/obj/structure/fluff/hedge, +/obj/structure/sign/poster/solgov/random{ + pixel_y = 30 + }, +/turf/open/floor/wood/walnut, +/area/ship/crew/canteen/kitchen) +"xB" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 5 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"xC" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/stairs/wood{ + dir = 8; + color = "#D5A66E" + }, +/area/ship/crew/dorm/dormthree) +"xF" = ( +/obj/machinery/door/poddoor{ + dir = 4; + id = "sgi_cargo2" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + dir = 1; + id = "sgi_holocargo2" + }, +/turf/open/floor/plasteel/patterned/ridged, +/area/ship/cargo) +"xP" = ( +/obj/structure/chair/sofa/right, +/obj/machinery/airalarm/directional/north, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/blue, +/area/ship/crew/canteen/kitchen) +"xS" = ( +/obj/machinery/space_heater, +/obj/effect/turf_decal/techfloor/orange{ + dir = 5 + }, +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/light_switch{ + pixel_x = 11; + pixel_y = 21 + }, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/starboard) +"xU" = ( +/obj/effect/turf_decal/techfloor, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/ship/cargo/office) +"xY" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/dorm/dormtwo) +"xZ" = ( +/turf/closed/wall/mineral/titanium, +/area/ship/engineering) +"ye" = ( +/obj/machinery/photocopier, +/obj/machinery/light/directional/south, +/turf/open/floor/wood/walnut, +/area/ship/crew/dorm/dormthree) +"yl" = ( +/obj/machinery/computer/helm/solgov{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood, +/obj/structure/railing/wood, +/turf/open/floor/wood, +/area/ship/bridge) +"ym" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/machinery/light/directional/west, +/turf/open/floor/wood/maple, +/area/ship/bridge) +"yn" = ( +/obj/structure/chair/wood{ + dir = 4 + }, +/obj/machinery/light/directional/south, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/ship/crew/library) +"yu" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen/solgov, +/obj/machinery/newscaster/security_unit/directional/south, +/turf/open/floor/carpet/blue, +/area/ship/crew/office) +"yw" = ( +/obj/effect/turf_decal/siding/yellow, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"yz" = ( +/obj/effect/turf_decal/techfloor{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"yB" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/shuttle, +/obj/machinery/door/poddoor/shutters{ + dir = 1; + id = "sgi_bridge" + }, +/turf/open/floor/plating, +/area/ship/bridge) +"yD" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9; + color = "#543C30" + }, +/obj/structure/chair/comfy/beige{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/ship/crew/dorm/dormtwo) +"yE" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/food/condiment/rice, +/obj/item/reagent_containers/food/condiment/sugar, +/obj/item/reagent_containers/food/condiment/milk, +/obj/item/reagent_containers/food/condiment/milk, +/obj/item/reagent_containers/food/condiment/soymilk, +/obj/item/reagent_containers/food/condiment/soymilk, +/obj/item/storage/fancy/egg_box, +/obj/item/reagent_containers/food/condiment/enzyme, +/turf/open/floor/wood/walnut, +/area/ship/crew/canteen/kitchen) +"yG" = ( +/obj/structure/closet/crate/bin, +/obj/machinery/light/directional/north, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/maple, +/area/ship/crew/dorm/dormtwo) +"yH" = ( +/obj/structure/table/wood, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/wood, +/area/ship/crew/canteen) +"yI" = ( +/obj/structure/railing/wood{ + color = "#543C30"; + dir = 4 + }, +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"yV" = ( +/obj/effect/turf_decal/techfloor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/plasteel/white, +/area/ship/cargo/office) +"za" = ( +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/wood, +/area/ship/crew/office) +"zc" = ( +/turf/closed/wall/mineral/titanium, +/area/ship/crew/dorm/dormthree) +"zd" = ( +/turf/closed/wall/mineral/titanium, +/area/ship/crew/canteen) +"ze" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/holopad/emergency/command, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/birch, +/area/ship/crew/dorm/dormthree) +"zf" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/door/airlock/solgov{ + name = "Dormitories" + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/crew/dorm) +"zp" = ( +/obj/effect/turf_decal/techfloor/orange, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/light/directional/south, +/obj/machinery/telecomms/relay{ + network = "SolNet"; + autolinkers = list("SolHub") + }, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/port) +"zs" = ( +/obj/machinery/vending/boozeomat, +/turf/open/floor/wood, +/area/ship/crew/canteen) +"zu" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"zv" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/door/airlock/mining{ + dir = 4; + name = "Field Engineer Locker Room"; + req_one_access = list(10,31) + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/crew/canteen) +"zA" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/ship/crew/canteen/kitchen) +"zC" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks/beer{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ship/crew/canteen) +"zE" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/library) +"zH" = ( +/obj/docking_port/stationary{ + dir = 2 + }, +/turf/template_noop, +/area/template_noop) +"zI" = ( +/obj/machinery/power/shuttle/engine/electric{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/light/floor, +/turf/open/floor/engine/hull, +/area/ship/maintenance/port) +"zK" = ( +/obj/effect/turf_decal/siding/yellow, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/floor, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"zP" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/door/airlock/solgov{ + dir = 4; + name = "Bridge"; + req_one_access = list(20,41) + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/crew/library) +"Aa" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 5 + }, +/obj/structure/sign/poster/solgov/random{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/white, +/area/ship/crew/cryo) +"Ap" = ( +/obj/structure/closet/crate, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"Au" = ( +/obj/effect/turf_decal/techfloor{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/storage) +"AA" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/canteen/kitchen) +"AC" = ( +/obj/effect/turf_decal/techfloor{ + dir = 10 + }, +/obj/machinery/light/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"AM" = ( +/obj/machinery/light/floor, +/turf/open/floor/engine/hull, +/area/ship/external/dark) +"AN" = ( +/obj/structure/fluff/hedge, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/wood/birch, +/area/ship/hallway/starboard) +"AQ" = ( +/obj/structure/toilet, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20; + pixel_y = -11 + }, +/obj/machinery/airalarm/directional/north, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/newscaster/security_unit/directional/east, +/turf/open/floor/plasteel/freezer, +/area/ship/crew/toilet) +"AU" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/desk_flag/solgov{ + pixel_y = 12; + pixel_x = -8 + }, +/obj/item/pen/solgov, +/turf/open/floor/carpet/blue, +/area/ship/crew/canteen/kitchen) +"AZ" = ( +/obj/effect/turf_decal/techfloor{ + dir = 9 + }, +/obj/item/kirbyplants{ + icon_state = "plant-17"; + pixel_y = 3; + pixel_x = -10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/sign/poster/solgov/random{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/white, +/area/ship/hallway/starboard) +"Ba" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/door/airlock/solgov{ + dir = 4; + name = "Logistics Deck Officer's Quarters"; + req_one_access = list(41); + id_tag = "sgi_quartermaster" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/crew/dorm/dormthree) +"Bb" = ( +/obj/effect/turf_decal/siding/yellow, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"Bm" = ( +/obj/effect/turf_decal/techfloor{ + dir = 10 + }, +/obj/item/kirbyplants{ + icon_state = "plant-22"; + pixel_y = 11; + pixel_x = -6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"Bp" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/port) +"Br" = ( +/obj/structure/noticeboard{ + pixel_y = 32 + }, +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/crew/cryo) +"Bt" = ( +/obj/machinery/door/poddoor{ + dir = 4; + id = "sgi_cargo2" + }, +/turf/open/floor/plasteel/patterned/ridged, +/area/ship/cargo) +"BB" = ( +/obj/machinery/airalarm/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/ship/crew/dorm/dormthree) +"BD" = ( +/obj/effect/turf_decal/siding/wood{ + color = "#543c30" + }, +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"BF" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/ship/crew/office) +"BG" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"BM" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/full, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/engineering) +"BO" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/door/airlock/solgov/glass{ + name = "Library" + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/crew/library) +"BP" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ship/storage) +"BQ" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/starboard) +"BT" = ( +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/machinery/light/small/directional/east, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/plasteel/tech, +/area/ship/hallway/starboard) +"BW" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/hallway/starboard) +"BY" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8; + color = "#543C30" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/ship/crew/dorm) +"Ci" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 9 + }, +/obj/effect/turf_decal/borderfloorblack{ + dir = 4 + }, +/obj/machinery/cryopod{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/plasteel/white, +/area/ship/crew/cryo) +"Ck" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ship/bridge) +"Cq" = ( +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/light/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech/grid, +/area/ship/engineering) +"Ct" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/metal/twenty, +/obj/item/stack/sheet/glass/twenty, +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 1 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"CC" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"CJ" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/door/airlock/solgov/glass{ + dir = 4; + name = "Cafeteria" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/crew/canteen) +"CM" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/machinery/reagentgrinder, +/turf/open/floor/wood/walnut, +/area/ship/crew/canteen/kitchen) +"CN" = ( +/obj/structure/table/wood/fancy/blue, +/obj/machinery/computer/secure_data/laptop{ + dir = 4 + }, +/turf/open/floor/wood/walnut, +/area/ship/crew/dorm/dormthree) +"CS" = ( +/obj/structure/table/wood/fancy/blue, +/obj/item/clipboard{ + pixel_x = 5; + pixel_y = 4 + }, +/obj/item/stamp/solgov{ + pixel_y = 11; + pixel_x = -6 + }, +/obj/item/paper_bin{ + pixel_x = -5; + pixel_y = -1 + }, +/obj/item/pen/solgov{ + pixel_x = -5 + }, +/turf/open/floor/wood/maple, +/area/ship/bridge) +"CX" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue/corner{ + dir = 8 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"Dc" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/full, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/white, +/area/ship/cargo/office) +"Dn" = ( +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 8 + }, +/obj/machinery/button/door{ + dir = 4; + id = "sgi_cargo2"; + name = "blast door control"; + pixel_x = -20; + pixel_y = -7 + }, +/obj/machinery/button/shieldwallgen{ + dir = 4; + pixel_y = 2; + pixel_x = -18; + id = "sgi_holocargo2" + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"Dt" = ( +/obj/structure/chair/sofa{ + dir = 8 + }, +/turf/open/floor/carpet/blue, +/area/ship/crew/canteen/kitchen) +"Du" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 1 + }, +/obj/machinery/light/floor, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"Dw" = ( +/obj/effect/turf_decal/solgov/all/top_right, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"Dy" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/library) +"DB" = ( +/obj/effect/turf_decal/techfloor{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech/grid, +/area/ship/storage) +"DD" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/shuttle, +/obj/machinery/door/poddoor/shutters{ + dir = 1; + id = "sgi_dorms" + }, +/turf/open/floor/plating, +/area/ship/crew/dorm) +"DE" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/structure/sign/poster/solgov/random{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/engineering) +"DF" = ( +/obj/effect/turf_decal/techfloor/corner{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"DH" = ( +/turf/closed/wall/mineral/titanium, +/area/ship/maintenance/starboard) +"DK" = ( +/obj/effect/turf_decal/siding/yellow, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"DP" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 10 + }, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/plasteel/white, +/area/ship/crew/cryo) +"DS" = ( +/turf/closed/wall/mineral/titanium, +/area/ship/crew/toilet) +"Ed" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"Ee" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/light/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"Ef" = ( +/obj/structure/closet/crate, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ship/storage) +"Ek" = ( +/obj/structure/railing/wood, +/obj/structure/chair/stool/bar, +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/birch, +/area/ship/crew/canteen) +"El" = ( +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"Ep" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"Et" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/light_switch{ + pixel_x = 11; + pixel_y = 21 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"Ex" = ( +/obj/machinery/power/smes/engineering, +/obj/effect/turf_decal/techfloor{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/white, +/area/ship/engineering) +"ED" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"EF" = ( +/obj/structure/chair/sofa, +/obj/machinery/light/directional/north, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/blue, +/area/ship/crew/canteen/kitchen) +"EH" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"EQ" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/canteen/kitchen) +"ET" = ( +/obj/structure/bookcase/random, +/obj/structure/noticeboard{ + dir = 4; + pixel_x = -32 + }, +/turf/open/floor/wood/walnut, +/area/ship/crew/library) +"Fa" = ( +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"Fc" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/door/airlock/mining/glass{ + dir = 4; + name = "Cargo" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/crew/canteen) +"Fd" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/wood, +/area/ship/crew/library) +"Fo" = ( +/obj/machinery/bookbinder, +/turf/open/floor/wood/walnut, +/area/ship/crew/library) +"Fp" = ( +/obj/effect/turf_decal/siding/wood{ + color = "#543c30" + }, +/obj/structure/fluff/hedge/opaque, +/turf/open/floor/wood/walnut, +/area/ship/crew/dorm/dormtwo) +"Fq" = ( +/obj/effect/turf_decal/siding/wood{ + color = "#D5A66E"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/birch, +/area/ship/crew/dorm/dormthree) +"Fs" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue/corner{ + dir = 8 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"FC" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/mug/coco{ + pixel_x = -6; + pixel_y = 2 + }, +/turf/open/floor/carpet/blue, +/area/ship/crew/canteen/kitchen) +"FE" = ( +/turf/closed/wall/mineral/titanium, +/area/ship/crew/canteen/kitchen) +"FG" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor/orange{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/starboard) +"FH" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor/orange{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/starboard) +"FJ" = ( +/obj/effect/turf_decal/techfloor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/computer/helm/viewscreen/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/cargo/office) +"FN" = ( +/obj/effect/turf_decal/techfloor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/structure/sign/warning/vacuum/external{ + pixel_y = -24 + }, +/turf/open/floor/plasteel/white, +/area/ship/hallway/starboard) +"Ga" = ( +/obj/structure/fluff/hedge, +/turf/open/floor/wood/walnut, +/area/ship/crew/library) +"Gd" = ( +/obj/effect/turf_decal/corner/opaque/solgovgold{ + dir = 5 + }, +/obj/effect/turf_decal/techfloor/corner{ + dir = 1 + }, +/obj/effect/turf_decal/techfloor/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"Gn" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/birch, +/area/ship/crew/canteen) +"Gp" = ( +/obj/effect/turf_decal/siding/yellow, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"Gq" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/library) +"GD" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 10 + }, +/obj/machinery/suit_storage_unit/solgov, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"GF" = ( +/obj/structure/bookcase/random, +/obj/structure/sign/poster/solgov/random{ + pixel_x = 32 + }, +/turf/open/floor/wood/walnut, +/area/ship/crew/library) +"GH" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 8 + }, +/obj/machinery/light/floor, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"GJ" = ( +/obj/structure/closet/crate, +/obj/effect/turf_decal/techfloor, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/spawner/lootdrop/maintenance/three, +/turf/open/floor/plasteel/tech/grid, +/area/ship/storage) +"GN" = ( +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"GO" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/solgovgold{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"GP" = ( +/obj/structure/fluff/hedge/opaque, +/turf/open/floor/wood/walnut, +/area/ship/crew/dorm/dormthree) +"GV" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/full, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"Hi" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 9 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"Ho" = ( +/obj/structure/chair/comfy/black, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/ship/crew/dorm) +"Hp" = ( +/obj/machinery/power/shuttle/engine/electric{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/engine/hull, +/area/ship/maintenance/port) +"Hv" = ( +/obj/machinery/light/floor, +/obj/effect/turf_decal/siding/yellow, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"HB" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 1 + }, +/obj/machinery/newscaster/security_unit/directional/south, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"HG" = ( +/obj/structure/rack, +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"HM" = ( +/obj/structure/railing/corner/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/canteen/kitchen) +"HT" = ( +/obj/structure/table/wood/fancy/blue, +/obj/machinery/fax, +/turf/open/floor/wood/maple, +/area/ship/bridge) +"HV" = ( +/obj/effect/turf_decal/techfloor/corner{ + dir = 1 + }, +/obj/effect/turf_decal/techfloor/corner{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/solgovgold{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"HW" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/canteen/kitchen) +"Ik" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/hallway/starboard) +"Il" = ( +/obj/effect/turf_decal/siding/yellow, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"It" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/birch, +/area/ship/hallway/starboard) +"Iu" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 4 + }, +/obj/structure/chair/office{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/ship/crew/cryo) +"Iw" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/techfloor/orange{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/machinery/light/directional/north, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/starboard) +"IB" = ( +/obj/structure/table/wood, +/obj/item/radio/intercom/directional/south, +/obj/item/stack/tape, +/obj/item/hand_labeler{ + pixel_x = 15; + pixel_y = 7 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 1 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"IC" = ( +/obj/effect/spawner/lootdrop/crate_spawner, +/obj/machinery/light/small/directional/east, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech/grid, +/area/ship/storage) +"IX" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/structure/rack, +/obj/structure/window/reinforced, +/obj/item/kitchen/knife/letter_opener{ + pixel_x = -2 + }, +/obj/item/kitchen/knife/letter_opener{ + pixel_x = 1 + }, +/obj/item/kitchen/knife/letter_opener{ + pixel_x = 4 + }, +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 10 + }, +/obj/structure/sign/poster/solgov/random{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"IY" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/library) +"Jc" = ( +/obj/structure/table/wood, +/obj/item/clipboard, +/obj/machinery/button/door{ + pixel_y = 23; + id = "sgi_office"; + name = "external shutters control" + }, +/turf/open/floor/carpet/blue, +/area/ship/crew/office) +"Jh" = ( +/obj/effect/turf_decal/siding/yellow, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 1 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"Jq" = ( +/obj/effect/turf_decal/techfloor, +/obj/item/radio/intercom/directional/south, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"Jr" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 6 + }, +/obj/effect/turf_decal/borderfloorblack{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen/solgov, +/turf/open/floor/plasteel/white, +/area/ship/crew/cryo) +"Js" = ( +/obj/structure/table/wood, +/obj/machinery/newscaster/security_unit/directional/east, +/turf/open/floor/wood/walnut, +/area/ship/crew/library) +"Jt" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"Jz" = ( +/obj/effect/turf_decal/techfloor/corner{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor/corner, +/obj/effect/turf_decal/corner/opaque/solgovgold{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/hallway/starboard) +"JD" = ( +/obj/structure/closet/cardboard{ + desc = "Contains a lifetime supply of Solarian Marine Society Shark plushies!"; + name = "plushie transport box" + }, +/obj/item/toy/plush/blahaj, +/obj/item/toy/plush/blahaj, +/obj/item/toy/plush/blahaj, +/obj/item/toy/plush/blahaj, +/obj/item/toy/plush/blahaj, +/obj/item/toy/plush/blahaj, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"JG" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/hallway/starboard) +"JL" = ( +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance/three, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"JN" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/office) +"JS" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/machinery/door/airlock/external, +/obj/machinery/door/poddoor{ + id = "sgi_external" + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/hallway/starboard) +"JT" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/full, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"JV" = ( +/obj/structure/table/wood, +/obj/machinery/microwave{ + pixel_y = 5 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/wood/walnut, +/area/ship/crew/canteen/kitchen) +"JX" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/sign/poster/solgov/random{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"JZ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/office) +"Kc" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/turf/open/floor/wood/birch, +/area/ship/crew/dorm/dormthree) +"Kd" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/full, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/cargo/office) +"Kg" = ( +/obj/machinery/computer/secure_data/laptop{ + dir = 4 + }, +/obj/structure/table/wood/fancy/purple, +/turf/open/floor/wood/maple, +/area/ship/crew/dorm/dormtwo) +"Kt" = ( +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"Kv" = ( +/obj/structure/closet/crate/internals, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/clothing/suit/hazardvest/solgov, +/obj/item/clothing/suit/hazardvest/solgov, +/obj/item/clothing/suit/hazardvest/solgov, +/obj/item/clothing/suit/hazardvest/solgov, +/obj/item/clothing/head/hardhat/solgov, +/obj/item/clothing/head/hardhat/solgov, +/obj/item/clothing/head/hardhat/solgov, +/obj/item/clothing/head/hardhat/solgov, +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 1 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"Kz" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"KD" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/holopad, +/turf/open/floor/wood, +/area/ship/crew/canteen/kitchen) +"KK" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"KL" = ( +/obj/effect/turf_decal/siding/yellow, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"KN" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/ship/crew/canteen) +"KS" = ( +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/ship/hallway/starboard) +"KU" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue/corner, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"KX" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8; + color = "#543C30" + }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/machinery/light_switch{ + dir = 1; + pixel_x = 11; + pixel_y = -14 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/ship/crew/dorm) +"Lb" = ( +/obj/effect/turf_decal/techfloor/corner{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor/corner, +/obj/effect/turf_decal/corner/opaque/solgovgold{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/engineering) +"Lg" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue/corner, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 1 + }, +/obj/machinery/light/floor, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"Lk" = ( +/obj/effect/turf_decal/techfloor/corner{ + dir = 1 + }, +/obj/effect/turf_decal/techfloor/corner, +/obj/effect/turf_decal/corner/opaque/solgovgold/three_quarters{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/obj/machinery/firealarm/directional/north, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light_switch{ + pixel_x = 10; + pixel_y = 23 + }, +/turf/open/floor/plasteel/white, +/area/ship/cargo/office) +"Ln" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"Lw" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"Lz" = ( +/obj/effect/turf_decal/box/corners, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"LB" = ( +/obj/item/clothing/head/solgov/captain, +/obj/item/clothing/suit/armor/vest/bulletproof/solgov/captain, +/obj/item/clothing/under/solgov/formal/captain, +/obj/item/clothing/shoes/laceup, +/obj/item/clothing/gloves/combat, +/obj/item/door_remote/captain, +/obj/item/storage/belt/sabre/solgov, +/obj/item/clothing/under/solgov, +/obj/item/clothing/under/solgov/dress, +/obj/item/clothing/under/solgov/formal, +/obj/item/folder/solgov, +/obj/item/folder/solgov, +/obj/item/folder/solgov/red, +/obj/item/folder/solgov/red, +/obj/structure/closet/secure_closet{ + icon_state = "cap"; + name = "\proper captain's locker"; + req_access_txt = "20" + }, +/obj/item/fish_feed, +/obj/item/pen/fountain/solgov, +/obj/item/gun/ballistic/automatic/powered/gauss/modelh, +/obj/item/ammo_box/magazine/modelh, +/obj/item/ammo_box/magazine/modelh, +/obj/item/clothing/neck/cloak/solgovcap, +/turf/open/floor/wood/maple, +/area/ship/crew/dorm/dormtwo) +"LJ" = ( +/turf/closed/wall/mineral/titanium, +/area/ship/security/armory) +"LS" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/door/airlock/security{ + dir = 1; + name = "Armory"; + req_one_access = list(1,3) + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/security/armory) +"LZ" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/structure/closet/firecloset/wall{ + pixel_y = 28 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/hallway/starboard) +"Me" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"Mh" = ( +/obj/machinery/light/directional/north, +/turf/open/floor/carpet/royalblue, +/area/ship/crew/dorm/dormthree) +"Mr" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 5 + }, +/obj/machinery/computer/cryopod/directional/north{ + pixel_y = 25 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/crew/cryo) +"Mt" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue/corner{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue/corner, +/obj/machinery/light/floor, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"Mv" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/hallway/starboard) +"My" = ( +/obj/structure/chair/sofa/corner, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/carpet/blue, +/area/ship/crew/canteen/kitchen) +"Mz" = ( +/obj/effect/turf_decal/siding/wood{ + color = "#D5A66E"; + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + color = "#D5A66E"; + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/machinery/button/door{ + pixel_y = 23; + id = "sgi_qm"; + name = "logistics deck officer shutters control"; + pixel_x = -7 + }, +/turf/open/floor/wood/birch, +/area/ship/crew/dorm/dormthree) +"MI" = ( +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/computer/helm/viewscreen/directional/east, +/turf/open/floor/plasteel/white, +/area/ship/engineering) +"MQ" = ( +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/structure/cable/yellow, +/obj/machinery/power/terminal, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/plasteel/white, +/area/ship/engineering) +"MT" = ( +/obj/effect/turf_decal/techfloor{ + dir = 6 + }, +/obj/item/kirbyplants{ + icon_state = "plant-21"; + pixel_x = 7; + pixel_y = 18 + }, +/obj/item/kirbyplants{ + icon_state = "plant-22"; + pixel_x = 8; + pixel_y = 2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/ship/cargo/office) +"MW" = ( +/turf/closed/wall/mineral/titanium, +/area/ship/cargo/office) +"MZ" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/plasteel/white, +/area/ship/cargo/office) +"Nb" = ( +/obj/structure/closet/crate, +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"Nd" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 9 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"Nf" = ( +/obj/machinery/vending/coffee, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/wood/walnut, +/area/ship/crew/canteen/kitchen) +"Nj" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance/three, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"Np" = ( +/obj/effect/turf_decal/techfloor/corner, +/obj/effect/turf_decal/techfloor/corner{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/solgovgold/three_quarters{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/hallway/starboard) +"Ny" = ( +/obj/structure/fluff/hedge, +/obj/machinery/light/directional/north, +/turf/open/floor/wood/walnut, +/area/ship/crew/canteen/kitchen) +"NA" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"NB" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/machinery/firealarm/directional/north, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/birch, +/area/ship/crew/canteen) +"NP" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/library) +"NV" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/full, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/engineering) +"NY" = ( +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/structure/cable/yellow, +/obj/machinery/power/terminal, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/engineering) +"Od" = ( +/turf/closed/wall/mineral/titanium, +/area/ship/maintenance/port) +"Ol" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"Oo" = ( +/obj/effect/turf_decal/techfloor, +/obj/machinery/light/small/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ship/storage) +"Oq" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/office) +"Or" = ( +/obj/machinery/atmospherics/pipe/layer_manifold, +/obj/structure/sign/solgov_seal{ + pixel_y = 0; + pixel_x = -1 + }, +/turf/closed/wall/mineral/titanium, +/area/ship/hallway/starboard) +"OC" = ( +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 1 + }, +/obj/machinery/button/door{ + dir = 4; + id = "sgi_cargo1"; + name = "blast door control"; + pixel_x = -20; + pixel_y = 7 + }, +/obj/machinery/button/shieldwallgen{ + dir = 4; + pixel_y = -2; + pixel_x = -18; + id = "sgi_holocargo1" + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"OF" = ( +/obj/structure/table/wood/fancy/blue, +/obj/item/spacecash/bundle/loadsamoney{ + pixel_x = 5; + pixel_y = 8 + }, +/obj/item/spacecash/bundle/loadsamoney{ + pixel_x = 5; + pixel_y = 8 + }, +/obj/item/desk_flag/solgov{ + pixel_y = 12; + pixel_x = -8 + }, +/obj/item/reagent_containers/food/drinks/mug/coco{ + pixel_x = -7; + pixel_y = -2 + }, +/obj/machinery/button/door{ + pixel_y = 23; + id = "sgi_bridge"; + name = "external shutters control" + }, +/turf/open/floor/wood/maple, +/area/ship/bridge) +"ON" = ( +/obj/structure/closet/crate/medical, +/obj/item/storage/box/masks, +/obj/item/storage/box/rxglasses, +/obj/item/storage/firstaid/regular, +/obj/item/storage/firstaid/medical, +/obj/item/storage/pill_bottle/charcoal, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"OS" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue/corner, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"OW" = ( +/obj/structure/table/wood/fancy/blue, +/obj/item/paper_bin, +/obj/item/pen/solgov, +/turf/open/floor/wood/walnut, +/area/ship/crew/dorm/dormthree) +"OX" = ( +/turf/closed/wall/mineral/titanium, +/area/ship/cargo) +"Pd" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/corner/opaque/solgovgold{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning, +/turf/open/floor/plasteel/white, +/area/ship/crew/cryo) +"Pf" = ( +/obj/structure/closet/cardboard, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"Pq" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 4 + }, +/obj/machinery/light/floor, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"Pu" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/full, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/cargo/office) +"Pv" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/chair/comfy/beige{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/railing/corner/wood, +/turf/open/floor/wood, +/area/ship/bridge) +"Py" = ( +/obj/machinery/atmospherics/components/binary/dp_vent_pump/on/layer2, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/closet/emcloset/wall{ + dir = 8; + pixel_x = 28 + }, +/turf/open/floor/plasteel/tech, +/area/ship/hallway/starboard) +"PB" = ( +/obj/structure/fluff/hedge/opaque, +/turf/open/floor/wood/maple, +/area/ship/crew/dorm/dormtwo) +"PN" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/full, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"PR" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"PV" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/storage) +"Qb" = ( +/turf/closed/wall/mineral/titanium, +/area/ship/crew/cryo) +"Qh" = ( +/obj/effect/turf_decal/industrial/stand_clear, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"Ql" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/railing/wood{ + dir = 4 + }, +/turf/open/floor/plasteel/stairs/wood, +/area/ship/bridge) +"Qt" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor/orange{ + dir = 10 + }, +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 4 + }, +/obj/machinery/button/door{ + pixel_y = -23; + pixel_x = -4; + dir = 1; + id = "sgi_engine"; + name = "engine blast door control" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/starboard) +"Qx" = ( +/obj/structure/table/wood/fancy/purple, +/obj/item/radio/intercom/wideband/table{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ship/bridge) +"Qz" = ( +/obj/structure/chair, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 6 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"QA" = ( +/obj/effect/turf_decal/techfloor{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/suit_storage_unit/solgov, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"QB" = ( +/obj/structure/fluff/hedge, +/obj/machinery/light/directional/west, +/turf/open/floor/wood/walnut, +/area/ship/crew/canteen/kitchen) +"QH" = ( +/obj/effect/turf_decal/siding/wood{ + color = "#D5A66E"; + dir = 8 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4; + color = "#D5A66E" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/birch, +/area/ship/crew/dorm/dormthree) +"QN" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/ship/engineering) +"QO" = ( +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/arrows{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"QP" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 8 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 8 + }, +/obj/structure/closet/firecloset/wall{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"QT" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/starboard) +"QX" = ( +/obj/structure/table/wood/fancy/blue, +/obj/item/clipboard, +/obj/item/folder/solgov, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/wood/walnut, +/area/ship/crew/dorm/dormthree) +"QZ" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/ship/crew/dorm) +"Rc" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light_switch{ + dir = 1; + pixel_x = 11; + pixel_y = -14 + }, +/turf/open/floor/wood, +/area/ship/crew/office) +"Rd" = ( +/obj/structure/railing/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/turf/open/floor/wood, +/area/ship/crew/canteen/kitchen) +"Re" = ( +/obj/machinery/airalarm/directional/west, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/stairs/wood, +/area/ship/bridge) +"Rh" = ( +/obj/effect/turf_decal/techfloor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/light/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/cargo/office) +"Rk" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"Rq" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light_switch{ + pixel_x = 11; + pixel_y = 21 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/storage) +"Rr" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"Rt" = ( +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/item/kirbyplants{ + icon_state = "plant-21"; + pixel_x = 7; + pixel_y = 18 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"Ru" = ( +/obj/structure/table/wood/fancy/blue, +/obj/item/desk_flag/solgov{ + pixel_y = 12; + pixel_x = -8 + }, +/obj/item/binoculars, +/turf/open/floor/wood/walnut, +/area/ship/crew/dorm/dormthree) +"Rw" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"Rx" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/library) +"RB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/ship/crew/cryo) +"RF" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/turf/open/floor/wood/walnut, +/area/ship/crew/canteen/kitchen) +"RH" = ( +/obj/effect/turf_decal/corner/opaque/solgovgold{ + dir = 10 + }, +/obj/effect/turf_decal/techfloor/corner{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor/corner, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"RI" = ( +/obj/structure/closet/secure_closet/engineering_personal{ + name = "ship engineer's locker"; + populate = 0 + }, +/obj/item/storage/backpack/industrial, +/obj/item/clothing/head/hardhat/solgov, +/obj/item/folder/solgov, +/obj/item/clipboard, +/obj/item/clothing/under/solgov/formal, +/obj/item/clothing/under/solgov, +/obj/item/clothing/accessory/armband/engine, +/obj/item/storage/toolbox/mechanical, +/obj/item/clothing/glasses/welding, +/obj/item/clothing/head/welding, +/obj/item/pen/solgov, +/obj/item/clothing/suit/hazardvest/solgov, +/obj/item/clothing/shoes/workboots, +/obj/item/clothing/gloves/combat, +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/industrial/outline/orange, +/obj/item/clothing/glasses/meson/prescription, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/plasteel/white, +/area/ship/engineering) +"RL" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/hallway/starboard) +"RN" = ( +/turf/closed/wall/mineral/titanium, +/area/ship/bridge) +"RS" = ( +/obj/structure/closet/cardboard, +/obj/effect/spawner/lootdrop/maintenance/three, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"RX" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/turf/open/floor/wood/birch, +/area/ship/crew/canteen) +"Sf" = ( +/obj/effect/turf_decal/siding/yellow, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"So" = ( +/obj/structure/falsewall/titanium, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/storage) +"Sr" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 6 + }, +/obj/effect/turf_decal/borderfloorblack{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/machinery/light/directional/east, +/obj/item/radio/intercom/table{ + dir = 4; + pixel_x = 4 + }, +/turf/open/floor/plasteel/white, +/area/ship/crew/cryo) +"St" = ( +/obj/structure/railing/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ship/crew/canteen/kitchen) +"Sw" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"Sx" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 8 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue/corner{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"Sy" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/maintenance/port) +"SA" = ( +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/structure/ore_box, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"SB" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 8; + piping_layer = 2 + }, +/obj/effect/turf_decal/techfloor/orange{ + dir = 6 + }, +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/starboard) +"SC" = ( +/obj/machinery/light/floor, +/obj/effect/turf_decal/siding/yellow, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"SI" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/security/armory) +"SU" = ( +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"Ta" = ( +/obj/machinery/door/poddoor{ + dir = 4; + id = "sgi_cargo2" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + dir = 2; + id = "sgi_holocargo2" + }, +/turf/open/floor/plasteel/patterned/ridged, +/area/ship/cargo) +"Td" = ( +/obj/structure/closet/secure_closet/miner{ + name = "field engineer's locker"; + populate = 0; + anchored = 1 + }, +/obj/item/pickaxe/drill/jackhammer, +/obj/item/storage/toolbox/mechanical, +/obj/item/clothing/head/hardhat/solgov, +/obj/item/radio{ + icon_state = "sec_radio" + }, +/obj/item/clothing/under/solgov/formal, +/obj/item/clothing/under/solgov/dress, +/obj/item/clothing/under/solgov, +/obj/item/clothing/suit/hazardvest/solgov, +/obj/item/clothing/accessory/armband/cargo, +/obj/item/clothing/shoes/workboots, +/obj/item/clothing/gloves/combat, +/obj/item/storage/backpack, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/outline/red, +/obj/item/clothing/glasses/meson/prescription, +/obj/item/kitchen/knife/letter_opener, +/obj/item/clothing/glasses/meson, +/obj/item/storage/bag/ore, +/turf/open/floor/plasteel/white, +/area/ship/cargo/office) +"Tf" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"Tk" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/ship/crew/canteen/kitchen) +"Tt" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ship/crew/canteen/kitchen) +"Tv" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/turf/open/floor/engine/hull, +/area/ship/external/dark) +"Ty" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/ship/crew/canteen/kitchen) +"Tz" = ( +/obj/effect/turf_decal/techfloor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/cargo/office) +"TG" = ( +/obj/machinery/power/smes/engineering, +/obj/effect/turf_decal/techfloor{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/white, +/area/ship/engineering) +"TM" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/stairs/wood{ + dir = 8; + color = "#543C30" + }, +/area/ship/crew/dorm/dormtwo) +"TV" = ( +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"TY" = ( +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 4 + }, +/turf/open/floor/engine/hull, +/area/ship/external/dark) +"Ud" = ( +/obj/effect/turf_decal/techfloor/orange{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/light/directional/north, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/port) +"Ul" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 19; + pixel_y = -12 + }, +/turf/open/floor/wood, +/area/ship/crew/canteen) +"UC" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/full, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"UD" = ( +/obj/structure/chair/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/ship/crew/office) +"UE" = ( +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"UF" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/turf/open/floor/wood/walnut, +/area/ship/crew/canteen/kitchen) +"UM" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/canteen/kitchen) +"Ve" = ( +/obj/structure/fluff/hedge, +/turf/open/floor/wood/maple, +/area/ship/bridge) +"Vk" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8; + color = "#543C30" + }, +/obj/structure/dresser, +/obj/item/desk_flag/trans{ + pixel_y = 8; + pixel_x = -7 + }, +/turf/open/floor/wood/walnut, +/area/ship/crew/dorm) +"Vl" = ( +/obj/structure/table/wood/fancy/blue, +/obj/item/paper_bin{ + pixel_x = -5; + pixel_y = -1 + }, +/obj/item/paper_bin/carbon{ + pixel_x = 7; + pixel_y = 8 + }, +/obj/item/folder/solgov{ + pixel_x = 4 + }, +/obj/item/pen/solgov{ + pixel_x = 2 + }, +/turf/open/floor/wood/maple, +/area/ship/bridge) +"Vo" = ( +/obj/structure/railing/wood{ + dir = 10 + }, +/obj/structure/fluff/hedge, +/turf/open/floor/wood/maple, +/area/ship/bridge) +"Vp" = ( +/obj/structure/chair/wood{ + dir = 4 + }, +/obj/machinery/airalarm/directional/north, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/canteen) +"Vt" = ( +/obj/structure/table/wood, +/obj/item/radio/intercom/table{ + dir = 8 + }, +/turf/open/floor/wood/walnut, +/area/ship/cargo) +"VA" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/dorm) +"VI" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/dorm/dormthree) +"VM" = ( +/obj/effect/turf_decal/techfloor{ + dir = 10 + }, +/obj/machinery/newscaster/security_unit/directional/west, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/engineering) +"VO" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/item/export_scanner, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"VT" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_y = 18 + }, +/obj/item/clipboard, +/obj/item/folder/solgov, +/obj/item/stamp/denied{ + pixel_x = 4 + }, +/obj/item/stamp{ + pixel_x = -5; + pixel_y = 9 + }, +/obj/item/pen/solgov{ + pixel_y = 18 + }, +/turf/open/floor/wood/walnut, +/area/ship/cargo) +"VY" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/door/airlock{ + dir = 4; + name = "Bathroom"; + id_tag = "sgi_bolt" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/crew/dorm) +"Wc" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/full, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"We" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/wood/walnut, +/area/ship/crew/library) +"Wh" = ( +/obj/structure/railing/corner/wood{ + color = "#543C30" + }, +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"Wj" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light_switch{ + pixel_x = 11; + pixel_y = 21 + }, +/turf/open/floor/wood, +/area/ship/crew/library) +"Wk" = ( +/obj/item/radio/intercom/table{ + dir = 1 + }, +/obj/structure/table/wood/fancy/purple, +/obj/structure/sign/poster/solgov/random{ + pixel_y = 32 + }, +/turf/open/floor/wood/maple, +/area/ship/crew/dorm/dormtwo) +"Wn" = ( +/obj/effect/turf_decal/siding/wood{ + color = "#D5A66E" + }, +/obj/structure/railing/corner/wood{ + dir = 4; + color = "#D5A66E" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/birch, +/area/ship/crew/dorm/dormthree) +"Wq" = ( +/obj/effect/turf_decal/industrial/warning/corner, +/turf/open/floor/engine/hull, +/area/ship/external/dark) +"Wv" = ( +/obj/item/reagent_containers/food/snacks/grown/cabbage, +/obj/item/reagent_containers/food/snacks/grown/cabbage, +/obj/item/reagent_containers/food/snacks/grown/cabbage, +/obj/item/reagent_containers/food/snacks/grown/cabbage, +/obj/item/reagent_containers/food/snacks/grown/cabbage, +/obj/item/reagent_containers/food/snacks/grown/cabbage, +/obj/item/reagent_containers/food/snacks/grown/cabbage, +/obj/item/reagent_containers/food/snacks/grown/cabbage, +/obj/item/reagent_containers/food/condiment/saltshaker, +/obj/item/reagent_containers/food/condiment/saltshaker, +/obj/item/reagent_containers/food/condiment/saltshaker, +/obj/item/reagent_containers/food/condiment/saltshaker, +/obj/structure/closet/crate/secure/gear{ + populate = 0; + name = "emergency sauerkraut supplies"; + desc = "For emergency use only"; + req_access = list(19) + }, +/obj/item/reagent_containers/food/snacks/grown/cabbage, +/obj/item/reagent_containers/food/snacks/grown/cabbage, +/obj/item/reagent_containers/food/snacks/grown/cabbage, +/obj/item/reagent_containers/food/snacks/grown/cabbage, +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"WF" = ( +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"WG" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"WI" = ( +/obj/structure/table/wood, +/obj/structure/reagent_dispensers/beerkeg, +/turf/open/floor/wood, +/area/ship/crew/canteen) +"WK" = ( +/obj/effect/turf_decal/solgov/all/bottom_right, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"WO" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/crew/cryo) +"WR" = ( +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 1 + }, +/obj/machinery/button/door{ + dir = 4; + id = "sgi_cargo2"; + name = "blast door control"; + pixel_x = -20; + pixel_y = 7 + }, +/obj/machinery/button/shieldwallgen{ + dir = 4; + pixel_y = -2; + pixel_x = -18; + id = "sgi_holocargo2" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"WX" = ( +/obj/machinery/door/poddoor{ + dir = 4; + id = "sgi_cargo1" + }, +/turf/open/floor/plasteel/patterned/ridged, +/area/ship/cargo) +"Xi" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ship/crew/canteen/kitchen) +"Xl" = ( +/obj/structure/closet/crate/wooden, +/obj/item/mop, +/obj/item/reagent_containers/glass/bucket, +/obj/item/soap, +/obj/item/soap, +/obj/effect/turf_decal/box/corners, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"Xp" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/wood/walnut, +/area/ship/crew/dorm) +"Xu" = ( +/obj/effect/turf_decal/techfloor/orange/corner, +/obj/effect/turf_decal/techfloor/orange/corner{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/corner/opaque/solgovgold{ + dir = 6 + }, +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/port) +"Xz" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ship/crew/library) +"XH" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/ship/crew/canteen/kitchen) +"XQ" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor/orange{ + dir = 9 + }, +/obj/effect/turf_decal/corner/opaque/solgovblue, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/button/door{ + pixel_y = 24; + pixel_x = -4; + id = "sgi_engine"; + name = "engine blast door control" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/port) +"XV" = ( +/obj/effect/turf_decal/techfloor{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"XY" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/engineering) +"XZ" = ( +/obj/docking_port/mobile{ + can_move_docking_ports = 1; + preferred_direction = 4; + port_direction = 4 + }, +/turf/closed/wall/mineral/titanium, +/area/ship/security/armory) +"Yb" = ( +/obj/effect/turf_decal/techfloor{ + dir = 10 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/obj/item/radio/intercom/directional/south, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"Yc" = ( +/obj/structure/table/wood, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/wood/walnut, +/area/ship/crew/library) +"Yj" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/wood/walnut, +/area/ship/cargo) +"Yt" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"Yx" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning, +/obj/machinery/light/directional/east, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"YB" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"YC" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 4 + }, +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"YE" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 8; + piping_layer = 2 + }, +/obj/effect/turf_decal/techfloor/orange{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 9 + }, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/structure/sign/poster/solgov/random{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/starboard) +"YF" = ( +/obj/effect/turf_decal/techfloor{ + dir = 6 + }, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 19; + pixel_y = -12 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/button/door{ + pixel_y = -23; + pixel_x = -8; + dir = 1; + id = "sgi_external"; + name = "blast door control" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ship/hallway/starboard) +"YP" = ( +/obj/effect/turf_decal/spline/fancy/transparent/solgovblue, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"YS" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/walnut, +/area/ship/crew/dorm/dormtwo) +"YY" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/jukebox, +/obj/machinery/light/directional/north, +/turf/open/floor/wood/birch, +/area/ship/crew/canteen) +"YZ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/shuttle, +/obj/machinery/door/poddoor/shutters{ + dir = 1; + id = "sgi_cafeteria" + }, +/turf/open/floor/plating, +/area/ship/crew/canteen/kitchen) +"Zb" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/maple, +/area/ship/bridge) +"Zj" = ( +/obj/machinery/power/smes/shuttle/precharged{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor/orange{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/door/poddoor{ + id = "sgi_engine"; + dir = 4 + }, +/obj/machinery/door/window/westright{ + dir = 4 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/maintenance/starboard) +"Zo" = ( +/obj/structure/railing/wood{ + color = "#543C30"; + dir = 4 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"Zr" = ( +/obj/machinery/door/poddoor{ + dir = 4; + id = "sgi_cargo1" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + dir = 2; + id = "sgi_holocargo1" + }, +/turf/open/floor/plasteel/patterned/ridged, +/area/ship/cargo) +"Zw" = ( +/obj/effect/turf_decal/corner/opaque/solgovgold{ + dir = 5 + }, +/obj/effect/turf_decal/techfloor/corner{ + dir = 1 + }, +/obj/effect/turf_decal/techfloor/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/effect/turf_decal/trimline/opaque/solgovblue/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/ship/security/armory) +"Zz" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"ZA" = ( +/obj/structure/chair/wood{ + dir = 4 + }, +/obj/item/radio/intercom/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/birch, +/area/ship/hallway/starboard) +"ZB" = ( +/obj/item/kirbyplants{ + icon_state = "plant-17"; + pixel_y = 3; + pixel_x = -10 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/wood/birch, +/area/ship/crew/canteen) +"ZK" = ( +/obj/structure/rack, +/obj/item/mining_scanner{ + pixel_x = -5; + pixel_y = -5 + }, +/obj/item/mining_scanner, +/obj/item/mining_scanner{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/pickaxe, +/obj/item/pickaxe, +/obj/item/pickaxe, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/white, +/area/ship/cargo/office) +"ZR" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/engineering{ + dir = 4; + name = "Engine Room"; + req_one_access = list(10) + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/maintenance/port) +"ZS" = ( +/obj/structure/fluff/hedge/opaque, +/obj/effect/turf_decal/siding/wood{ + color = "#D5A66E"; + dir = 1 + }, +/obj/machinery/button/door{ + dir = 8; + id = "sgi_quartermaster"; + name = "bolt control"; + pixel_x = 20; + pixel_y = -6; + specialfunctions = 4; + normaldoorcontrol = 1 + }, +/turf/open/floor/wood/birch, +/area/ship/crew/dorm/dormthree) +"ZV" = ( +/obj/effect/turf_decal/solgov/all/center_right, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"ZY" = ( +/obj/machinery/vending/coffee, +/obj/structure/noticeboard{ + pixel_y = 32 + }, +/turf/open/floor/wood/birch, +/area/ship/crew/office) + +(1,1,1) = {" +iG +hE +zI +Hp +Hp +zI +hE +iG +iG +iG +iG +iG +iG +iG +iG +iG +iG +iG +iG +iG +iG +iG +iG +iG +hE +ni +dv +dv +ni +hE +iG +iG +"} +(2,1,1) = {" +iG +Od +op +op +op +op +Od +iG +iG +iG +iG +iG +iG +iG +iG +iG +iG +iG +iG +iG +iG +iG +iG +iG +DH +Zj +Zj +Zj +Zj +DH +iG +iG +"} +(3,1,1) = {" +iG +Od +XQ +ia +ia +tT +Od +iG +iG +iG +iG +iG +iG +iG +iG +iG +iG +iG +iG +iG +iG +iG +iG +sV +ln +fk +FG +FH +Qt +DH +iG +iG +"} +(4,1,1) = {" +iG +Od +Ud +rD +Bp +zp +Sy +Od +AM +ce +Wq +Tv +Tv +Tv +TY +qM +Wq +Tv +Tv +Tv +TY +ce +AM +DH +wb +Iw +BQ +QT +oG +DH +iG +iG +"} +(5,1,1) = {" +iG +Od +fG +xs +Xu +qs +Sy +Sy +uh +OX +OX +Zr +WX +qp +OX +OX +OX +Ta +Bt +xF +OX +OX +uh +wb +wb +xS +nJ +YE +SB +DH +iG +iG +"} +(6,1,1) = {" +iG +Od +Od +Od +ZR +Od +Sy +Sy +HG +BG +dT +Dw +ZV +WK +OC +pr +Dn +Dw +ZV +WK +WR +Gp +sx +wb +wb +DH +su +DH +DH +DH +iG +iG +"} +(7,1,1) = {" +hE +XY +DE +Cq +df +rQ +VM +xZ +ha +vE +Tf +db +kx +iy +Nd +CX +ku +QO +np +iy +Nd +yw +sz +ts +AZ +KS +Np +ts +qx +ts +hE +iG +"} +(8,1,1) = {" +xZ +ek +NY +Ex +QN +wQ +RI +xZ +px +gI +fv +sh +YC +NA +jE +Mt +Fs +sh +fB +NA +md +Hv +SA +ts +LZ +gW +FN +ts +xd +mB +Or +iG +"} +(9,1,1) = {" +xZ +hJ +NV +Lb +xf +BM +bt +xZ +QP +ng +JL +Kt +Wv +Kt +SU +dH +Nb +Kt +qw +Rr +sH +Sf +hl +ts +nx +eA +Jz +uw +bS +ff +JS +zH +"} +(10,1,1) = {" +xZ +vf +MQ +TG +MI +eX +tY +xZ +br +EH +Qh +hB +Rk +Kt +Kv +dH +uR +iq +Ep +Kt +qt +gw +HB +ts +dK +tB +YF +ts +BT +Py +Or +iG +"} +(11,1,1) = {" +xZ +xZ +xZ +xZ +xZ +kB +xZ +xZ +rZ +Me +mz +Kt +TV +Rr +eb +dH +Fa +Rr +GN +Pf +Lz +Bb +Hi +ts +ts +mQ +ts +ts +ts +ts +ts +iG +"} +(12,1,1) = {" +LJ +ka +Yb +LJ +XV +HV +Bm +LJ +km +tU +Sw +Sw +dM +Sw +Sw +jP +Sw +Sw +GH +Sw +Lw +pK +IB +MW +iM +ut +cz +sJ +DB +Au +sJ +iG +"} +(13,1,1) = {" +LJ +GD +RH +wq +Zw +JT +dR +LJ +qE +Lg +Yt +Yt +jh +wj +Yt +fi +wj +Yt +Pq +Yt +Yt +zK +nL +MW +ib +Dc +jw +So +gm +qG +sJ +iG +"} +(14,1,1) = {" +LJ +QA +ic +LJ +JX +GV +cI +LJ +Qz +Me +sT +Nj +WF +RS +SU +YB +El +ON +WF +Kt +sH +rR +xB +MW +tr +hR +xU +sJ +Rq +GJ +sJ +iG +"} +(15,1,1) = {" +LJ +LJ +LJ +LJ +lq +PN +if +LJ +gP +ng +Qh +Rr +Ep +Kt +Ct +dH +Qh +JD +Ap +Rr +sr +KL +WG +MW +up +Kd +kZ +sJ +af +BP +sJ +iG +"} +(16,1,1) = {" +LJ +lx +AC +LJ +Et +co +wB +LJ +dp +CC +sm +jM +wg +aO +rM +ED +UE +rm +en +iR +Xl +uT +zu +MW +Td +Kd +Rh +sJ +cQ +gp +sJ +iG +"} +(17,1,1) = {" +LJ +uv +Jq +fZ +fI +PN +ez +LJ +ao +Du +ke +uA +sX +nc +gu +je +wt +cG +Sx +Ed +Jt +SC +Rw +MW +ZK +Pu +FJ +sJ +BP +Ef +sJ +iG +"} +(18,1,1) = {" +LJ +IX +sb +LS +Gd +UC +bu +LJ +nB +bB +uK +Ln +YP +Wh +Zo +yI +tg +lT +KK +uK +uK +DK +PR +MW +rN +xt +yV +sJ +cX +Oo +sJ +iG +"} +(19,1,1) = {" +XZ +kf +DF +LJ +oH +Wc +gi +LJ +Ol +OS +wj +Yt +fO +nh +lu +Vt +VT +nV +KU +wj +wj +Il +Ee +MW +MZ +Kd +Tz +sJ +fC +uC +sJ +iG +"} +(20,1,1) = {" +hE +SI +kK +LJ +yz +Rt +bf +LJ +ij +Yx +eD +VO +rU +BD +oi +Yj +oi +rb +oC +Zz +Kz +Jh +GO +MW +Lk +da +MT +sJ +IC +PV +hE +iG +"} +(21,1,1) = {" +iG +Qb +Qb +Qb +Qb +sn +vo +Mv +aq +VI +wm +wm +wm +wm +wm +zc +eM +eM +eM +eM +eM +dw +Fc +zd +zv +zd +zd +zd +zd +zd +iG +iG +"} +(22,1,1) = {" +iG +Qb +iI +kN +Ci +Qb +ks +vn +Ik +zc +GP +wo +OW +CN +Ru +zc +pd +Kg +uE +LB +PB +dw +NB +ZB +dY +hM +yH +uq +zC +zd +iG +iG +"} +(23,1,1) = {" +iG +Qb +Mr +WO +os +Qb +iL +fQ +of +zc +Mz +QH +Fq +pL +QX +zc +Wk +yD +pu +wk +ti +dw +YY +ec +RX +Ek +jf +jv +wW +zd +iG +iG +"} +(24,1,1) = {" +iG +Qb +Aa +gr +Pd +or +JG +RL +ZA +zc +Mh +lB +ze +tl +ye +zc +yG +mD +cL +Fp +iu +dw +Vp +jv +eQ +Ek +KN +uy +WI +zd +iG +iG +"} +(25,1,1) = {" +iG +Qb +Br +RB +DP +Qb +cn +gf +It +zc +tx +lB +Kc +Wn +BB +zc +py +eq +YS +tD +tc +dw +tK +Ul +Gn +lW +qB +fE +zs +zd +iG +iG +"} +(26,1,1) = {" +iG +Qb +mY +Iu +ph +Qb +AN +BW +xh +zc +bh +ZS +xC +pG +gS +zc +hg +vz +TM +bn +sQ +dw +zd +zd +CJ +zd +zd +zd +zd +zd +iG +iG +"} +(27,1,1) = {" +iG +Qb +qS +Sr +Jr +Qb +Mv +kL +Mv +zc +zc +zc +Ba +zc +zc +zc +dw +dw +dn +dw +dw +xY +xA +lX +Xi +Nf +QB +sg +my +FE +iG +iG +"} +(28,1,1) = {" +iG +Qb +Qb +Qb +Qb +Qb +mA +nf +mf +nY +Rx +Fo +vL +Ga +oN +og +ET +Ga +vL +yn +bU +Ny +my +am +Xi +wF +sd +sd +RF +YZ +iG +iG +"} +(29,1,1) = {" +iG +DD +so +hw +lD +ft +ZY +rT +JN +hS +BO +Fd +NP +Fd +Fd +wh +Dy +Fd +hF +Yc +bU +nk +no +qh +EQ +wF +sd +sd +Ty +YZ +iG +iG +"} +(30,1,1) = {" +iG +DD +Vk +BY +KX +VA +kR +Oq +za +jo +Rx +Wj +IY +dm +sk +zE +ar +ar +Gq +td +BO +rS +UM +KD +bI +dQ +sd +sd +gV +YZ +iG +iG +"} +(31,1,1) = {" +iG +DD +Ho +QZ +Xp +zf +iD +JZ +nC +Rc +bU +fj +Js +We +Ga +Xz +vM +GF +bs +bs +bU +xP +pS +ex +HW +HM +Tt +uX +Rd +YZ +iG +iG +"} +(32,1,1) = {" +iG +DD +lh +ps +iJ +VA +hm +oR +UD +li +bU +bU +bU +bU +bU +zP +bU +bU +bU +bU +bU +EF +FC +AU +pS +St +UF +Tk +CM +YZ +iG +iG +"} +(33,1,1) = {" +iG +ft +ft +VY +ft +ft +Jc +BF +jc +yu +RN +nO +ym +lj +vH +cO +vW +Re +uc +qP +RN +My +Dt +Dt +jX +dE +XH +iE +uS +YZ +iG +iG +"} +(34,1,1) = {" +iG +DS +AQ +ny +eB +DS +gn +gn +gn +gn +RN +OF +Zb +qe +Ck +rz +Pv +Ql +fU +CS +RN +qc +qc +qc +qc +AA +kz +zA +JV +FE +iG +iG +"} +(35,1,1) = {" +iG +hE +ea +pc +cH +DS +iG +iG +iG +iG +nR +yB +Vl +Vo +ct +Qx +yl +Ve +HT +yB +nR +iG +iG +iG +iG +FE +nA +yE +AA +hE +iG +iG +"} +(36,1,1) = {" +iG +iG +DS +DS +DS +hE +iG +iG +iG +iG +iG +nR +nR +nR +nR +nR +nR +nR +nR +nR +iG +iG +iG +iG +iG +hE +qc +qc +FE +iG +iG +iG +"} diff --git a/_maps/shuttles/shiptest/solgov_paracelsus.dmm b/_maps/shuttles/solgov/solgov_paracelsus.dmm similarity index 100% rename from _maps/shuttles/shiptest/solgov_paracelsus.dmm rename to _maps/shuttles/solgov/solgov_paracelsus.dmm diff --git a/_maps/shuttles/subshuttles/Subshuttle Catalog.txt b/_maps/shuttles/subshuttles/Subshuttle Catalog.txt index aa1064f70691..1d48dbc85f03 100644 --- a/_maps/shuttles/subshuttles/Subshuttle Catalog.txt +++ b/_maps/shuttles/subshuttles/Subshuttle Catalog.txt @@ -3,6 +3,11 @@ Size = "1x3" Purpose = "Showing people how to fill this document in" File Path = "_maps\shuttles\subshuttles\example.dmm" +Name = "Gut Combat Freighter" +Size = "7x15" +Purpose = "Transporting goods, while fending for itself" +File Path = "_maps\shuttles\subshuttles\frontiersmen_gut" + Name = "Kunai Dropship" Size = "12x7" Purpose = "A multi-role dropship used by almost every group faring space. Its ease of manufacture and high mobility makes it ideal for transport." diff --git a/_maps/shuttles/subshuttles/frontiersmen_gut.dmm b/_maps/shuttles/subshuttles/frontiersmen_gut.dmm new file mode 100644 index 000000000000..cf1571f9d7d4 --- /dev/null +++ b/_maps/shuttles/subshuttles/frontiersmen_gut.dmm @@ -0,0 +1,810 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ab" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/directional/east, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/storage) +"aF" = ( +/obj/effect/turf_decal/techfloor, +/obj/structure/closet/crate, +/obj/item/clothing/suit/space/nasavoid/old, +/obj/item/clothing/head/helmet/space/nasavoid/old, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/clothing/mask/gas, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"bD" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/storage) +"bY" = ( +/obj/structure/railing{ + dir = 8; + layer = 4.1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-5" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"ci" = ( +/obj/machinery/door/window/brigdoor/southright{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor{ + dir = 6 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"cA" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/storage) +"dJ" = ( +/obj/machinery/porta_turret/ship/ballistic{ + dir = 5 + }, +/turf/closed/wall/r_wall/syndicate/nodiagonal, +/area/ship/storage) +"eo" = ( +/obj/structure/railing{ + dir = 8; + layer = 4.1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"fh" = ( +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + id = "gut_holo"; + dir = 1 + }, +/obj/machinery/button/shieldwallgen{ + dir = 1; + id = "gut_holo"; + pixel_x = 8; + pixel_y = -21 + }, +/obj/machinery/button/door{ + id = "gut_cargo"; + name = "Cargo Door Control"; + pixel_y = -22; + dir = 1 + }, +/obj/machinery/door/poddoor/shutters{ + id = "gut_cargo"; + name = "Blast Shutters"; + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-5" + }, +/turf/open/floor/engine/hull/interior, +/area/ship/storage) +"gz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-10" + }, +/obj/structure/cable{ + icon_state = "4-9" + }, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"gH" = ( +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/spline/fancy/opaque/black, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"hl" = ( +/obj/machinery/power/shuttle/engine/electric{ + dir = 1 + }, +/obj/machinery/door/poddoor{ + id = "gut_engines"; + name = "Thruster Blast Door" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/ship/storage) +"hu" = ( +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/effect/decal/cleanable/dirt, +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack, +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/carbine, +/obj/structure/closet/crate/secure/weapon, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/storage) +"ii" = ( +/turf/closed/wall/mineral/plastitanium, +/area/ship/storage) +"ju" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/smes/shuttle/precharged{ + dir = 1 + }, +/obj/structure/window/plasma/reinforced/spawner, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/storage) +"li" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/wrapping, +/obj/structure/cable{ + icon_state = "6-8" + }, +/obj/machinery/power/terminal, +/obj/machinery/door/firedoor/border_only, +/obj/effect/turf_decal/industrial/warning, +/obj/item/storage/toolbox/syndicate{ + pixel_y = 5; + pixel_x = 11 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/storage) +"mj" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/storage) +"nj" = ( +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/secure/gear, +/obj/item/gun/ballistic/automatic/smg/aks74u{ + pixel_y = -6 + }, +/obj/item/gun/ballistic/automatic/zip_pistol, +/obj/item/gun/ballistic/automatic/zip_pistol, +/obj/item/gun/ballistic/automatic/zip_pistol, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/storage) +"nA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"ov" = ( +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + id = "gut_holo" + }, +/obj/machinery/door/poddoor/shutters{ + id = "gut_cargo"; + name = "Blast Shutters"; + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-6" + }, +/turf/open/floor/engine/hull/interior, +/area/ship/storage) +"oX" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8; + name = "tactical chair" + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8; + color = "#808080" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"qh" = ( +/obj/structure/window/reinforced/spawner/east, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"qu" = ( +/obj/effect/decal/cleanable/glass, +/turf/open/floor/engine/hull/reinforced/interior, +/area/ship/storage) +"qE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "2-10" + }, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"qI" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/yellow{ + icon_state = "4-9" + }, +/obj/structure/cable{ + icon_state = "5-10" + }, +/obj/machinery/power/terminal, +/obj/machinery/door/firedoor/border_only, +/obj/effect/turf_decal/industrial/warning, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/item/stack/cable_coil/red{ + pixel_x = 8; + pixel_y = 5 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/storage) +"rn" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"rv" = ( +/turf/template_noop, +/area/template_noop) +"sj" = ( +/obj/effect/turf_decal/techfloor{ + dir = 9 + }, +/obj/machinery/computer/helm, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/storage) +"sk" = ( +/turf/open/floor/plasteel/stairs{ + dir = 1 + }, +/area/ship/storage) +"sP" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-5" + }, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"tj" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8; + name = "tactical chair" + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8; + color = "#808080" + }, +/obj/effect/decal/cleanable/vomit/old{ + pixel_y = 6 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/light/directional/east, +/obj/machinery/power/apc/auto_name/directional/north, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"ue" = ( +/obj/effect/turf_decal/techfloor{ + dir = 5 + }, +/obj/machinery/computer/crew, +/obj/machinery/light_switch{ + pixel_y = 21; + pixel_x = -10 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/storage) +"uh" = ( +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/storage) +"uA" = ( +/obj/machinery/power/port_gen/pacman/super, +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/button/door{ + id = "gut_engines"; + name = "Engine Shutters"; + pixel_y = -22; + dir = 1 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/storage) +"vg" = ( +/obj/structure/window/reinforced/spawner/east, +/obj/effect/turf_decal/techfloor{ + dir = 5 + }, +/obj/structure/closet/crate/secure/weapon, +/obj/item/grenade/chem_grenade/metalfoam{ + pixel_x = 2 + }, +/obj/item/grenade/chem_grenade/metalfoam{ + pixel_x = 6 + }, +/obj/item/grenade/empgrenade{ + pixel_x = -4 + }, +/obj/item/grenade/frag, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"vJ" = ( +/obj/machinery/porta_turret/ship/ballistic{ + dir = 9 + }, +/turf/closed/wall/r_wall/syndicate/nodiagonal, +/area/ship/storage) +"xU" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/effect/turf_decal/industrial/radiation{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/storage) +"yz" = ( +/obj/machinery/door/poddoor/shutters{ + id = "gut_cargo"; + name = "Blast Shutters"; + dir = 4 + }, +/turf/open/floor/engine/hull/interior, +/area/ship/storage) +"Bl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-10" + }, +/obj/structure/cable{ + icon_state = "2-10" + }, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"Dr" = ( +/turf/open/floor/plasteel/stairs{ + icon = 'icons/obj/stairs.dmi'; + dir = 1 + }, +/area/ship/storage) +"Ds" = ( +/obj/structure/fans/tiny, +/obj/machinery/door/poddoor{ + id = "gut_launchdoor" + }, +/turf/open/floor/engine/hull/reinforced/interior, +/area/ship/storage) +"Dz" = ( +/obj/structure/cable/yellow{ + icon_state = "6-8" + }, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"EP" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"GH" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/button/massdriver{ + id = "gut_launchdoor"; + name = "Cannon Button"; + pixel_x = 21; + pixel_y = 8; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/storage) +"GQ" = ( +/obj/machinery/porta_turret/ship/ballistic{ + dir = 5 + }, +/turf/closed/wall/mineral/plastitanium, +/area/ship/storage) +"HT" = ( +/obj/machinery/mass_driver{ + dir = 1; + id = "gut_launchdoor" + }, +/turf/open/floor/engine/hull/reinforced/interior, +/area/ship/storage) +"Ih" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-10" + }, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"IE" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/storage) +"JX" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/effect/decal/cleanable/oil{ + pixel_x = 8; + pixel_y = 12 + }, +/obj/machinery/power/smes/shuttle/precharged{ + dir = 1 + }, +/obj/structure/window/plasma/reinforced/spawner, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/storage) +"Ls" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/storage) +"MF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"MG" = ( +/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, +/turf/open/floor/plating, +/area/ship/storage) +"Ny" = ( +/turf/open/floor/engine/hull/reinforced/interior, +/area/ship/storage) +"QL" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning, +/obj/machinery/power/smes/shuttle/precharged{ + dir = 1 + }, +/obj/structure/window/plasma/reinforced/spawner, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/storage) +"Rx" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8; + name = "tactical chair" + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8; + color = "#808080" + }, +/obj/machinery/light/directional/east, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"RY" = ( +/obj/machinery/porta_turret/ship/ballistic{ + dir = 9 + }, +/turf/closed/wall/mineral/plastitanium, +/area/ship/storage) +"SO" = ( +/obj/machinery/power/terminal, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"Tq" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/machinery/light/directional/north, +/obj/docking_port/mobile{ + dir = 4; + launch_status = 0; + port_direction = 8 + }, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"Uc" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 5 + }, +/obj/effect/decal/cleanable/plastic, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/power/terminal, +/obj/machinery/door/firedoor/border_only, +/obj/effect/turf_decal/industrial/warning, +/obj/structure/cable{ + icon_state = "0-1" + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/storage) +"Ui" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8; + name = "tactical chair" + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8; + color = "#808080" + }, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"UA" = ( +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/industrial/loading{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"UB" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"Xf" = ( +/turf/closed/wall/r_wall/syndicate/nodiagonal, +/area/ship/storage) +"Xr" = ( +/obj/structure/railing{ + dir = 8; + layer = 4.1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/tech, +/area/ship/storage) +"XD" = ( +/obj/machinery/power/shuttle/engine/electric{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/door/poddoor{ + id = "gut_engines"; + name = "Thruster Blast Door" + }, +/turf/open/floor/plating, +/area/ship/storage) +"Yn" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/stairs{ + dir = 1 + }, +/area/ship/storage) +"ZR" = ( +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/structure/chair/comfy/shuttle{ + dir = 1; + name = "tactical chair" + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/storage) + +(1,1,1) = {" +vJ +ov +yz +fh +Xf +rv +rv +RY +MG +MG +MG +Xf +Xf +ii +rv +"} +(2,1,1) = {" +Xf +Tq +gz +aF +Xf +Xf +Xf +Xf +sj +ZR +Dr +SO +xU +Xf +Xf +"} +(3,1,1) = {" +Xf +EP +nA +UA +Ls +nj +hu +Xf +ue +uh +Dr +Dz +li +ju +hl +"} +(4,1,1) = {" +Xf +rn +MF +gH +mj +IE +cA +Yn +Xr +eo +bY +sP +qI +JX +XD +"} +(5,1,1) = {" +Xf +vg +qh +ci +GH +ab +bD +sk +UB +Ih +qE +Bl +Uc +QL +XD +"} +(6,1,1) = {" +Ds +qu +Ny +HT +Xf +Xf +Xf +Xf +tj +oX +Ui +Rx +uA +Xf +Xf +"} +(7,1,1) = {" +dJ +Xf +Xf +Xf +Xf +rv +rv +GQ +Xf +Xf +Xf +Xf +Xf +ii +rv +"} diff --git a/_maps/shuttles/shiptest/syndicate_aegis.dmm b/_maps/shuttles/syndicate/syndicate_aegis.dmm similarity index 100% rename from _maps/shuttles/shiptest/syndicate_aegis.dmm rename to _maps/shuttles/syndicate/syndicate_aegis.dmm diff --git a/_maps/shuttles/shiptest/syndicate_cybersun_kansatsu.dmm b/_maps/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm similarity index 98% rename from _maps/shuttles/shiptest/syndicate_cybersun_kansatsu.dmm rename to _maps/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm index d6b4fcd4a79a..a1b9eb028e72 100644 --- a/_maps/shuttles/shiptest/syndicate_cybersun_kansatsu.dmm +++ b/_maps/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm @@ -892,12 +892,25 @@ /obj/effect/landmark/observer_start, /turf/open/floor/plasteel/white, /area/ship/hallway/central) +"tV" = ( +/obj/machinery/porta_turret/ship/syndicate/weak{ + dir = 4; + pixel_x = 8 + }, +/turf/closed/wall/mineral/plastitanium, +/area/ship/bridge) "uq" = ( /obj/effect/turf_decal/spline/fancy/opaque/syndiered{ dir = 10 }, /turf/open/floor/plasteel/dark, /area/ship/bridge) +"uR" = ( +/obj/machinery/porta_turret/ship/syndicate/weak{ + dir = 9 + }, +/turf/closed/wall/mineral/plastitanium, +/area/ship/bridge) "vk" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 @@ -1125,6 +1138,12 @@ }, /turf/open/floor/plasteel/tech/techmaint, /area/ship/cargo) +"Ah" = ( +/obj/machinery/porta_turret/ship/syndicate/weak{ + dir = 6 + }, +/turf/closed/wall/mineral/plastitanium, +/area/ship/bridge) "AM" = ( /obj/effect/turf_decal/trimline/opaque/syndiered/filled/warning, /obj/effect/turf_decal/trimline/opaque/syndiered/filled/warning{ @@ -1176,7 +1195,9 @@ /turf/open/floor/plasteel/tech/grid, /area/ship/crew/dorm) "CR" = ( -/obj/machinery/porta_turret/ship, +/obj/machinery/porta_turret/ship/syndicate/weak{ + dir = 10 + }, /turf/closed/wall/mineral/plastitanium, /area/ship/bridge) "CU" = ( @@ -1293,7 +1314,11 @@ /turf/open/floor/plasteel/tech/grid, /area/ship/bridge) "GV" = ( -/obj/machinery/porta_turret/ship/weak, +/obj/machinery/porta_turret/ship/syndicate/weak{ + dir = 4; + pixel_x = 8; + pixel_y = 4 + }, /turf/closed/wall/mineral/plastitanium, /area/ship/bridge) "Hd" = ( @@ -1396,6 +1421,12 @@ }, /turf/open/floor/plasteel/dark, /area/ship/bridge) +"KA" = ( +/obj/machinery/porta_turret/ship/syndicate/weak{ + dir = 5 + }, +/turf/closed/wall/mineral/plastitanium, +/area/ship/bridge) "KP" = ( /obj/structure/closet/wall{ name = "emergency rum cabinet"; @@ -1966,7 +1997,7 @@ /area/ship/engineering) (1,1,1) = {" -CR +uR YQ YQ ru @@ -2069,7 +2100,7 @@ nO "} (7,1,1) = {" YQ -CR +KA kM kM kM @@ -2081,7 +2112,7 @@ cZ jj jj jj -CR +Ah YQ "} (8,1,1) = {" @@ -2276,7 +2307,7 @@ YQ YQ YQ YQ -GV +tV bO bO dA diff --git a/_maps/shuttles/shiptest/syndicate_gec_lugol.dmm b/_maps/shuttles/syndicate/syndicate_gec_lugol.dmm similarity index 100% rename from _maps/shuttles/shiptest/syndicate_gec_lugol.dmm rename to _maps/shuttles/syndicate/syndicate_gec_lugol.dmm diff --git a/_maps/shuttles/shiptest/syndicate_gorlex_hyena.dmm b/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm similarity index 99% rename from _maps/shuttles/shiptest/syndicate_gorlex_hyena.dmm rename to _maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm index 5d1d70d59fec..3dce772a1d1f 100644 --- a/_maps/shuttles/shiptest/syndicate_gorlex_hyena.dmm +++ b/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm @@ -1693,6 +1693,12 @@ /obj/machinery/porta_turret/ship/ballistic, /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/bridge) +"BR" = ( +/obj/machinery/porta_turret/ship/syndicate{ + dir = 1 + }, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/ship/bridge) "BZ" = ( /obj/structure/window/reinforced/tinted/frosted, /obj/machinery/suit_storage_unit/inherit{ @@ -2336,6 +2342,10 @@ }, /turf/open/floor/carpet/red_gold, /area/ship/bridge) +"NA" = ( +/obj/machinery/porta_turret/ship/syndicate, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/ship/bridge) "NF" = ( /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/cargo) @@ -2500,7 +2510,9 @@ /turf/open/floor/plasteel/mono/dark, /area/ship/cargo) "Qz" = ( -/obj/machinery/porta_turret/ship/ballistic, +/obj/machinery/porta_turret/ship/syndicate{ + dir = 6 + }, /turf/closed/wall/mineral/plastitanium, /area/ship/bridge) "QW" = ( @@ -2876,6 +2888,12 @@ }, /turf/open/floor/carpet/red_gold, /area/ship/bridge) +"Up" = ( +/obj/machinery/porta_turret/ship/syndicate/heavy{ + dir = 4 + }, +/turf/closed/wall/mineral/plastitanium, +/area/ship/bridge) "UI" = ( /obj/structure/cable{ icon_state = "4-8" @@ -2886,6 +2904,12 @@ }, /turf/open/floor/plasteel/dark, /area/ship/crew) +"UN" = ( +/obj/machinery/porta_turret/ship/syndicate{ + dir = 1 + }, +/turf/closed/wall/mineral/plastitanium, +/area/ship/bridge) "UX" = ( /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/crew) @@ -3311,7 +3335,7 @@ sE "} (2,1,1) = {" nn -BG +BR ir PL SP @@ -3328,7 +3352,7 @@ sE nX dU pi -BG +NA "} (3,1,1) = {" nn @@ -3578,13 +3602,13 @@ UX GV GV GV -BG +NA nn Zb "} (15,1,1) = {" nn -Qz +UN cs cs XU @@ -3836,13 +3860,13 @@ mL "} (27,1,1) = {" nn -Qz +Up Ap Jv oQ VC Ap -Qz +Up nn nn nn diff --git a/_maps/shuttles/shiptest/syndicate_gorlex_komodo.dmm b/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm similarity index 99% rename from _maps/shuttles/shiptest/syndicate_gorlex_komodo.dmm rename to _maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm index 10558626c75d..9859de87adf7 100644 --- a/_maps/shuttles/shiptest/syndicate_gorlex_komodo.dmm +++ b/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm @@ -460,6 +460,12 @@ }, /turf/open/floor/plasteel/dark, /area/ship/bridge) +"ea" = ( +/obj/machinery/porta_turret/ship/syndicate/heavy{ + dir = 6 + }, +/turf/closed/wall/mineral/plastitanium, +/area/ship/bridge) "em" = ( /obj/machinery/light/directional/north, /obj/effect/turf_decal/industrial/warning{ @@ -1771,6 +1777,12 @@ }, /turf/open/floor/plasteel/tech, /area/ship/engineering) +"rh" = ( +/obj/machinery/porta_turret/ship/syndicate/heavy{ + dir = 10 + }, +/turf/closed/wall/mineral/plastitanium, +/area/ship/bridge) "rj" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/industrial/fire{ @@ -1858,7 +1870,7 @@ /turf/open/floor/mineral/plastitanium/red, /area/ship/hallway/central) "rS" = ( -/obj/machinery/porta_turret/ship/ballistic{ +/obj/machinery/porta_turret/ship/syndicate/heavy{ dir = 5 }, /turf/closed/wall/mineral/plastitanium, @@ -1965,7 +1977,7 @@ /turf/open/floor/plasteel/dark, /area/ship/bridge) "td" = ( -/obj/machinery/porta_turret/ship/ballistic{ +/obj/machinery/porta_turret/ship/syndicate/heavy{ dir = 9 }, /turf/closed/wall/mineral/plastitanium, @@ -2483,6 +2495,12 @@ }, /turf/open/floor/mineral/plastitanium/red, /area/ship/hallway/central) +"yw" = ( +/obj/machinery/porta_turret/ship/syndicate{ + dir = 8 + }, +/turf/closed/wall/mineral/plastitanium, +/area/ship/bridge) "yJ" = ( /obj/structure/frame/machine, /obj/structure/grille/broken, @@ -3321,7 +3339,7 @@ /turf/open/floor/plating, /area/ship/maintenance/port) "FY" = ( -/obj/machinery/porta_turret/ship/ballistic{ +/obj/machinery/porta_turret/ship/syndicate{ dir = 4 }, /turf/closed/wall/mineral/plastitanium, @@ -3649,7 +3667,7 @@ /obj/effect/turf_decal/techfloor{ dir = 10 }, -/obj/item/clothing/mask/russian_balaclava, +/obj/item/clothing/mask/gas/sechailer/minutemen, /obj/item/clothing/under/syndicate/skirt, /obj/structure/closet/syndicate{ desc = "It's a basic storage unit."; @@ -4231,7 +4249,7 @@ /turf/open/floor/mineral/plastitanium/red, /area/ship/hallway/central) "OP" = ( -/obj/machinery/porta_turret/ship/ballistic{ +/obj/machinery/porta_turret/ship/syndicate{ dir = 10 }, /turf/closed/wall/mineral/plastitanium, @@ -4440,7 +4458,7 @@ /turf/open/floor/pod/dark, /area/ship/medical) "Rp" = ( -/obj/machinery/porta_turret/ship/ballistic{ +/obj/machinery/porta_turret/ship/syndicate{ dir = 6 }, /turf/closed/wall/mineral/plastitanium, @@ -5174,7 +5192,7 @@ /turf/open/floor/mineral/plastitanium, /area/ship/medical) "XE" = ( -/obj/machinery/porta_turret/ship/ballistic{ +/obj/machinery/porta_turret/ship/syndicate/heavy{ dir = 8 }, /turf/closed/wall/mineral/plastitanium, @@ -5431,7 +5449,7 @@ gN gN gN gN -OP +rh CM CM CM @@ -5484,7 +5502,7 @@ Aj Aj ti ti -XE +yw lu lu Ep @@ -6135,7 +6153,7 @@ OQ OQ OQ OQ -Rp +ea CM CM CM diff --git a/_maps/shuttles/shiptest/syndicate_luxembourg.dmm b/_maps/shuttles/syndicate/syndicate_luxembourg.dmm similarity index 100% rename from _maps/shuttles/shiptest/syndicate_luxembourg.dmm rename to _maps/shuttles/syndicate/syndicate_luxembourg.dmm diff --git a/_maps/shuttles/shiptest/syndicate_twinkleshine.dmm b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm similarity index 99% rename from _maps/shuttles/shiptest/syndicate_twinkleshine.dmm rename to _maps/shuttles/syndicate/syndicate_twinkleshine.dmm index 6390f43501cd..9200c091f618 100644 --- a/_maps/shuttles/shiptest/syndicate_twinkleshine.dmm +++ b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm @@ -2033,9 +2033,8 @@ /turf/open/floor/engine, /area/ship/engineering/engine) "ms" = ( -/obj/machinery/porta_turret/syndicate/energy{ - dir = 9; - faction = list("PlayerSyndicate") +/obj/machinery/porta_turret/ship/syndicate/heavy{ + dir = 9 }, /turf/closed/wall/r_wall/syndicate/nodiagonal{ rad_insulation = 0 @@ -3434,9 +3433,8 @@ /turf/open/floor/plating, /area/ship/engineering/atmospherics) "vd" = ( -/obj/machinery/porta_turret/syndicate/energy{ - dir = 5; - faction = list("PlayerSyndicate") +/obj/machinery/porta_turret/ship/syndicate/heavy{ + dir = 5 }, /turf/closed/wall/r_wall/syndicate/nodiagonal{ rad_insulation = 0 @@ -6469,9 +6467,8 @@ /turf/open/floor/engine, /area/ship/engineering/engine) "Mr" = ( -/obj/machinery/porta_turret/syndicate/energy{ - dir = 6; - faction = list("PlayerSyndicate") +/obj/machinery/porta_turret/ship/syndicate/heavy{ + dir = 6 }, /turf/closed/wall/r_wall/syndicate/nodiagonal{ rad_insulation = 0 @@ -8074,9 +8071,8 @@ }, /area/ship/crew/cryo) "We" = ( -/obj/machinery/porta_turret/syndicate/energy{ - dir = 10; - faction = list("PlayerSyndicate") +/obj/machinery/porta_turret/ship/syndicate/heavy{ + dir = 10 }, /turf/closed/wall/r_wall/syndicate/nodiagonal{ rad_insulation = 0 diff --git a/auxmos.dll b/auxmos.dll index 499c125baa87..9db02bf27e26 100644 Binary files a/auxmos.dll and b/auxmos.dll differ diff --git a/check_regex.yaml b/check_regex.yaml index 9f7232c04d0b..df266ee19e55 100644 --- a/check_regex.yaml +++ b/check_regex.yaml @@ -29,7 +29,7 @@ standards: - exactly: [1, "/area text paths", '"/area'] - exactly: [17, "/datum text paths", '"/datum'] - exactly: [4, "/mob text paths", '"/mob'] - - exactly: [51, "/obj text paths", '"/obj'] + - exactly: [49, "/obj text paths", '"/obj'] - exactly: [0, "/turf text paths", '"/turf'] - exactly: [117, "text2path uses", "text2path"] @@ -38,14 +38,22 @@ standards: - exactly: [ - 298, + 295, "non-bitwise << uses", '(? current ? MC_AVERAGE_SLOW(average, current) : MC_AVERAGE_FAST(average, current)) #define MC_AVG_SLOW_UP_FAST_DOWN(average, current) (average < current ? MC_AVERAGE_SLOW(average, current) : MC_AVERAGE_FAST(average, current)) +///creates a running average of "things elapsed" per time period when you need to count via a smaller time period. +///eg you want an average number of things happening per second but you measure the event every tick (50 milliseconds). +///make sure both time intervals are in the same units. doesnt work if current_duration > total_duration or if total_duration == 0 +#define MC_AVG_OVER_TIME(average, current, total_duration, current_duration) ((((total_duration) - (current_duration)) / (total_duration)) * (average) + (current)) + +#define MC_AVG_MINUTES(average, current, current_duration) (MC_AVG_OVER_TIME(average, current, 1 MINUTES, current_duration)) + +#define MC_AVG_SECONDS(average, current, current_duration) (MC_AVG_OVER_TIME(average, current, 1 SECONDS, current_duration)) + #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} @@ -99,3 +108,12 @@ ss_id="processing_[#X]";\ }\ /datum/controller/subsystem/processing/##X + +#define VERB_MANAGER_SUBSYSTEM_DEF(X) GLOBAL_REAL(SS##X, /datum/controller/subsystem/verb_manager/##X);\ +/datum/controller/subsystem/verb_manager/##X/New(){\ + NEW_SS_GLOBAL(SS##X);\ + PreInit();\ + ss_id="verb_manager_[#X]";\ +}\ +/datum/controller/subsystem/verb_manager/##X/fire() {..() /*just so it shows up on the profiler*/} \ +/datum/controller/subsystem/verb_manager/##X diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm index fc720d2c96fd..4600cb626da0 100644 --- a/code/__DEFINES/atmospherics.dm +++ b/code/__DEFINES/atmospherics.dm @@ -292,16 +292,6 @@ #define INCINERATOR_ATMOS_AIRLOCK_INTERIOR "atmos_incinerator_airlock_interior" #define INCINERATOR_ATMOS_AIRLOCK_EXTERIOR "atmos_incinerator_airlock_exterior" -//Syndicate lavaland base incinerator (lavaland_surface_syndicate_base1.dmm) -#define INCINERATOR_SYNDICATELAVA_IGNITER "syndicatelava_igniter" -#define INCINERATOR_SYNDICATELAVA_MAINVENT "syndicatelava_mainvent" -#define INCINERATOR_SYNDICATELAVA_AUXVENT "syndicatelava_auxvent" -#define INCINERATOR_SYNDICATELAVA_DP_VENTPUMP "syndicatelava_airlock_pump" -#define INCINERATOR_SYNDICATELAVA_AIRLOCK_SENSOR "syndicatelava_airlock_sensor" -#define INCINERATOR_SYNDICATELAVA_AIRLOCK_CONTROLLER "syndicatelava_airlock_controller" -#define INCINERATOR_SYNDICATELAVA_AIRLOCK_INTERIOR "syndicatelava_airlock_interior" -#define INCINERATOR_SYNDICATELAVA_AIRLOCK_EXTERIOR "syndicatelava_airlock_exterior" - //MULTIPIPES //IF YOU EVER CHANGE THESE CHANGE SPRITES TO MATCH. #define PIPING_LAYER_MIN 1 @@ -359,17 +349,6 @@ T.pixel_x = (PipingLayer - PIPING_LAYER_DEFAULT) * PIPING_LAYER_P_X; \ T.pixel_y = (PipingLayer - PIPING_LAYER_DEFAULT) * PIPING_LAYER_P_Y; -GLOBAL_VAR(atmos_extools_initialized) // this must be an uninitialized (null) one or init_monstermos will be called twice because reasons -#define ATMOS_EXTOOLS_CHECK if(!GLOB.atmos_extools_initialized){ \ - GLOB.atmos_extools_initialized=TRUE; \ - if(fexists(world.system_type == MS_WINDOWS ? "./byond-extools.dll" : "./libbyond-extools.so")){ \ - var/result = call((world.system_type == MS_WINDOWS ? "./byond-extools.dll" : "./libbyond-extools.so"),"init_monstermos")(); \ - if(result != "ok") {CRASH(result);} \ - } else { \ - CRASH("byond-extools.dll does not exist!"); \ - } \ -} - GLOBAL_LIST_INIT(pipe_paint_colors, sortList(list( "amethyst" = rgb(130,43,255), //supplymain "blue" = rgb(0,0,255), diff --git a/code/__DEFINES/callbacks.dm b/code/__DEFINES/callbacks.dm index 6d23e5090542..25f3717011a9 100644 --- a/code/__DEFINES/callbacks.dm +++ b/code/__DEFINES/callbacks.dm @@ -2,4 +2,6 @@ /// A shorthand for the callback datum, [documented here](datum/callback.html) #define CALLBACK new /datum/callback #define INVOKE_ASYNC world.ImmediateInvokeAsync -#define CALLBACK_NEW(typepath, args) CALLBACK(GLOBAL_PROC, /proc/___callbacknew, typepath, args) +/// like CALLBACK but specifically for verb callbacks +#define VERB_CALLBACK new /datum/callback/verb_callback +#define CALLBACK_NEW(typepath, args) CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(___callbacknew), typepath, args) diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm index 36da2cc3ae7d..7df3a453acfb 100644 --- a/code/__DEFINES/combat.dm +++ b/code/__DEFINES/combat.dm @@ -134,8 +134,11 @@ GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list(/obj/item/gun))) #define EMBED_POINTY_SUPERIOR list("embed_chance" = 100, "ignore_throwspeed_threshold" = TRUE) //Gun weapon weight +/// Allows you to dual wield this gun and your offhand gun #define WEAPON_LIGHT 1 +/// Does not allow you to dual wield with this gun and your offhand gun #define WEAPON_MEDIUM 2 +/// You must wield the gun to fire this gun #define WEAPON_HEAVY 3 //Gun trigger guards #define TRIGGER_GUARD_ALLOW_ALL -1 diff --git a/code/__DEFINES/cooldowns.dm b/code/__DEFINES/cooldowns.dm index 8f1f667a79f7..861bb843d793 100644 --- a/code/__DEFINES/cooldowns.dm +++ b/code/__DEFINES/cooldowns.dm @@ -35,7 +35,7 @@ #define COMSIG_CD_STOP(cd_index) "cooldown_[cd_index]" #define COMSIG_CD_RESET(cd_index) "cd_reset_[cd_index]" -#define TIMER_COOLDOWN_START(cd_source, cd_index, cd_time) LAZYSET(cd_source.cooldowns, cd_index, addtimer(CALLBACK(GLOBAL_PROC, /proc/end_cooldown, cd_source, cd_index), cd_time)) +#define TIMER_COOLDOWN_START(cd_source, cd_index, cd_time) LAZYSET(cd_source.cooldowns, cd_index, addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(end_cooldown), cd_source, cd_index), cd_time)) #define TIMER_COOLDOWN_CHECK(cd_source, cd_index) LAZYACCESS(cd_source.cooldowns, cd_index) @@ -48,7 +48,7 @@ * A bit more expensive than the regular timers, but can be reset before they end and the time left can be checked. */ -#define S_TIMER_COOLDOWN_START(cd_source, cd_index, cd_time) LAZYSET(cd_source.cooldowns, cd_index, addtimer(CALLBACK(GLOBAL_PROC, /proc/end_cooldown, cd_source, cd_index), cd_time, TIMER_STOPPABLE)) +#define S_TIMER_COOLDOWN_START(cd_source, cd_index, cd_time) LAZYSET(cd_source.cooldowns, cd_index, addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(end_cooldown), cd_source, cd_index), cd_time, TIMER_STOPPABLE)) #define S_TIMER_COOLDOWN_RESET(cd_source, cd_index) reset_cooldown(cd_source, cd_index) diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index 4328e6da90aa..bbdbe022a9df 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -7,6 +7,8 @@ // start global signals with "!", this used to be necessary but now it's just a formatting choice /// from base of datum/controller/subsystem/mapping/proc/add_new_zlevel(): (list/args) #define COMSIG_GLOB_NEW_Z "!new_z" +/// sent after world.maxx and/or world.maxy are expanded: (has_exapnded_world_maxx, has_expanded_world_maxy) +#define COMSIG_GLOB_EXPANDED_WORLD_BOUNDS "!expanded_world_bounds" /// called after a successful var edit somewhere in the world: (list/args) #define COMSIG_GLOB_VAR_EDIT "!var_edit" /// called after an explosion happened : (epicenter, devastation_range, heavy_impact_range, light_impact_range, took, orig_dev_range, orig_heavy_range, orig_light_range) diff --git a/code/__DEFINES/factions.dm b/code/__DEFINES/factions.dm new file mode 100644 index 000000000000..a6fbc5c87546 --- /dev/null +++ b/code/__DEFINES/factions.dm @@ -0,0 +1,6 @@ +//"Antag" factions +// anything with these factions should be hostile to the average player. +#define FACTION_ANTAG_SYNDICATE "Syndicate" + +//Player Factions +#define FACTION_PLAYER_SYNDICATE "playerSyndicate" diff --git a/code/__DEFINES/input.dm b/code/__DEFINES/input.dm new file mode 100644 index 000000000000..7ec645990d78 --- /dev/null +++ b/code/__DEFINES/input.dm @@ -0,0 +1,2 @@ +///if the running average click latency is above this amount then clicks will never queue and will execute immediately +#define MAXIMUM_CLICK_LATENCY (0.5 DECISECONDS) diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index 4dc29d360b82..b824bd2a17b1 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -4,6 +4,8 @@ #define isatom(A) (isloc(A)) +#define isdatum(thing) (istype(thing, /datum)) + #define isweakref(D) (istype(D, /datum/weakref)) //Turfs diff --git a/code/__DEFINES/keybinding.dm b/code/__DEFINES/keybinding.dm index a1494018d434..97b9c9d82aad 100644 --- a/code/__DEFINES/keybinding.dm +++ b/code/__DEFINES/keybinding.dm @@ -42,6 +42,7 @@ //Human #define COMSIG_KB_HUMAN_QUICKEQUIP_DOWN "keybinding_human_quickequip_down" #define COMSIG_KB_HUMAN_QUICKEQUIPBELT_DOWN "keybinding_human_quickequipbelt_down" +#define COMSIG_KB_HUMAN_UNIQUEACTION "keybinding_uniqueaction" #define COMSIG_KB_HUMAN_BAGEQUIP_DOWN "keybinding_human_bagequip_down" #define COMSIG_KB_HUMAN_EQUIPMENTSWAP_DOWN "keybinding_human_equipmentswap_down" #define COMSIG_KB_HUMAN_SUITEQUIP_DOWN "keybinding_human_suitequip_down" diff --git a/code/__DEFINES/maths.dm b/code/__DEFINES/maths.dm index b6b75cc8d8c8..77c32e0ff653 100644 --- a/code/__DEFINES/maths.dm +++ b/code/__DEFINES/maths.dm @@ -29,6 +29,8 @@ #define CEILING(x, y) (-round(-(x) / (y)) * (y)) +#define ROUND_UP(x) (-round(-(x))) + // round() acts like floor(x, 1) by default but can't handle other values #define FLOOR(x, y) (round((x) / (y)) * (y)) diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 03796c87e897..e8975a1a6653 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -149,6 +149,13 @@ GLOBAL_LIST_EMPTY(bloody_footprints_cache) //subtypesof(), typesof() without the parent path #define subtypesof(typepath) (typesof(typepath) - typepath) +/// Takes a datum as input, returns its ref string, or a cached version of it +/// This allows us to cache \ref creation, which ensures it'll only ever happen once per datum, saving string tree time +/// It is slightly less optimal then a []'d datum, but the cost is massively outweighed by the potential savings +/// It will only work for datums mind, for datum reasons +/// : because of the embedded typecheck +#define text_ref(datum) (isdatum(datum) ? (datum:cached_ref ||= "\ref[datum]") : ("\ref[datum]")) + //Gets the turf this atom inhabits #define get_turf(A) (get_step(A, 0)) diff --git a/code/__DEFINES/obj_flags.dm b/code/__DEFINES/obj_flags.dm index 570edb76d8c4..865470774039 100644 --- a/code/__DEFINES/obj_flags.dm +++ b/code/__DEFINES/obj_flags.dm @@ -64,3 +64,13 @@ /// Flags for the pod_flags var on /obj/structure/closet/supplypod #define FIRST_SOUNDS (1<<0) // If it shouldn't play sounds the first time it lands, used for reverse mode + + +// Bullet hit sounds +#define PROJECTILE_HITSOUND_FLESH (1<<0) +#define PROJECTILE_HITSOUND_NON_LIVING (1<<1) +#define PROJECTILE_HITSOUND_GLASS (1<<2) +#define PROJECTILE_HITSOUND_STONE (1<<3) +#define PROJECTILE_HITSOUND_METAL (1<<4) +#define PROJECTILE_HITSOUND_WOOD (1<<5) +#define PROJECTILE_HITSOUND_SNOW (1<<6) diff --git a/code/__DEFINES/qdel.dm b/code/__DEFINES/qdel.dm index 86c3ad465250..dca885b37b95 100644 --- a/code/__DEFINES/qdel.dm +++ b/code/__DEFINES/qdel.dm @@ -54,10 +54,10 @@ #define QDELETED(X) (!X || QDELING(X)) #define QDESTROYING(X) (!X || X.gc_destroyed == GC_CURRENTLY_BEING_QDELETED) -#define QDEL_IN(item, time) addtimer(CALLBACK(GLOBAL_PROC, .proc/qdel, (time) > GC_FILTER_QUEUE ? WEAKREF(item) : item), time, TIMER_STOPPABLE) -#define QDEL_IN_CLIENT_TIME(item, time) addtimer(CALLBACK(GLOBAL_PROC, .proc/qdel, item), time, TIMER_STOPPABLE | TIMER_CLIENT_TIME) +#define QDEL_IN(item, time) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), (time) > GC_FILTER_QUEUE ? WEAKREF(item) : item), time, TIMER_STOPPABLE) +#define QDEL_IN_CLIENT_TIME(item, time) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), item), time, TIMER_STOPPABLE | TIMER_CLIENT_TIME) #define QDEL_NULL(item) qdel(item); item = null #define QDEL_LIST(L) if(L) { for(var/I in L) qdel(I); L.Cut(); } -#define QDEL_LIST_IN(L, time) addtimer(CALLBACK(GLOBAL_PROC, .proc/______qdel_list_wrapper, L), time, TIMER_STOPPABLE) +#define QDEL_LIST_IN(L, time) addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(______qdel_list_wrapper), L), time, TIMER_STOPPABLE) #define QDEL_LIST_ASSOC(L) if(L) { for(var/I in L) { qdel(L[I]); qdel(I); } L.Cut(); } #define QDEL_LIST_ASSOC_VAL(L) if(L) { for(var/I in L) qdel(L[I]); L.Cut(); } diff --git a/code/__DEFINES/reagents.dm b/code/__DEFINES/reagents.dm index 8e2f1e52758d..c66d3f34c1ad 100644 --- a/code/__DEFINES/reagents.dm +++ b/code/__DEFINES/reagents.dm @@ -22,7 +22,7 @@ #define VAPOR 3 // foam, spray, blob attack #define PATCH 4 // patches #define INJECT 5 // injection - +#define SMOKE 6 //smoking //defines passed through to the on_reagent_change proc #define DEL_REAGENT 1 // reagent deleted (fully cleared) diff --git a/code/__DEFINES/rust_g.dm b/code/__DEFINES/rust_g.dm index cab4430a88df..76e5fa22d474 100644 --- a/code/__DEFINES/rust_g.dm +++ b/code/__DEFINES/rust_g.dm @@ -110,6 +110,12 @@ #define rustg_dmi_strip_metadata(fname) RUSTG_CALL(RUST_G, "dmi_strip_metadata")(fname) #define rustg_dmi_create_png(path, width, height, data) RUSTG_CALL(RUST_G, "dmi_create_png")(path, width, height, data) #define rustg_dmi_resize_png(path, width, height, resizetype) RUSTG_CALL(RUST_G, "dmi_resize_png")(path, width, height, resizetype) +/** + * input: must be a path, not an /icon; you have to do your own handling if it is one, as icon objects can't be directly passed to rustg. + * + * output: json_encode'd list. json_decode to get a flat list with icon states in the order they're in inside the .dmi + */ +#define rustg_dmi_icon_states(fname) RUSTG_CALL(RUST_G, "dmi_icon_states")(fname) #define rustg_file_read(fname) RUSTG_CALL(RUST_G, "file_read")(fname) #define rustg_file_exists(fname) RUSTG_CALL(RUST_G, "file_exists")(fname) @@ -158,8 +164,9 @@ #define rustg_time_milliseconds(id) text2num(RUSTG_CALL(RUST_G, "time_milliseconds")(id)) #define rustg_time_reset(id) RUSTG_CALL(RUST_G, "time_reset")(id) +/// Returns the timestamp as a string /proc/rustg_unix_timestamp() - return text2num(RUSTG_CALL(RUST_G, "unix_timestamp")()) + return RUSTG_CALL(RUST_G, "unix_timestamp")() #define rustg_raw_read_toml_file(path) json_decode(RUSTG_CALL(RUST_G, "toml_file_to_json")(path) || "null") diff --git a/code/__DEFINES/say.dm b/code/__DEFINES/say.dm index b349387832ea..a470b9087b2e 100644 --- a/code/__DEFINES/say.dm +++ b/code/__DEFINES/say.dm @@ -71,10 +71,7 @@ #define SPAN_COMMAND "command_headset" #define SPAN_CLOWN "clown" #define SPAN_SINGING "singing" - -//WS Spans - Begin #define SPAN_SGA "sga" -//WS Spans - End //bitflag #defines for return value of the radio() proc. #define ITALICS (1<<0) diff --git a/code/__DEFINES/spaceman_dmm.dm b/code/__DEFINES/spaceman_dmm.dm index 6d87700f3d24..b62bbee4259a 100644 --- a/code/__DEFINES/spaceman_dmm.dm +++ b/code/__DEFINES/spaceman_dmm.dm @@ -40,5 +40,5 @@ /world/Del() var/debug_server = world.GetConfig("env", "AUXTOOLS_DEBUG_DLL") if (debug_server) - call(debug_server, "auxtools_shutdown")() + LIBCALL(debug_server, "auxtools_shutdown")() . = ..() diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index 5fd64af432cf..7f5569e3e609 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -187,6 +187,7 @@ #define FIRE_PRIORITY_SOUND_LOOPS 800 #define FIRE_PRIORITY_OVERMAP_MOVEMENT 850 #define FIRE_PRIORITY_SPEECH_CONTROLLER 900 +#define FIRE_PRIORITY_DELAYED_VERBS 950 #define FIRE_PRIORITY_INPUT 1000 // This must always always be the max highest priority. Player input must never be lost. //Pipeline rebuild helper defines, these suck but it'll do for now diff --git a/code/__DEFINES/tgs.dm b/code/__DEFINES/tgs.dm index 6187a67825a4..0cc106ec9cf2 100644 --- a/code/__DEFINES/tgs.dm +++ b/code/__DEFINES/tgs.dm @@ -1,6 +1,6 @@ // tgstation-server DMAPI -#define TGS_DMAPI_VERSION "6.5.3" +#define TGS_DMAPI_VERSION "6.6.2" // All functions and datums outside this document are subject to change with any version and should not be relied on. @@ -129,6 +129,13 @@ /// DreamDaemon Ultrasafe security level. #define TGS_SECURITY_ULTRASAFE 2 +/// DreamDaemon public visibility level. +#define TGS_VISIBILITY_PUBLIC 0 +/// DreamDaemon private visibility level. +#define TGS_VISIBILITY_PRIVATE 1 +/// DreamDaemon invisible visibility level. +#define TGS_VISIBILITY_INVISIBLE 2 + //REQUIRED HOOKS /** @@ -458,6 +465,10 @@ /world/proc/TgsSecurityLevel() return +/// Returns the current BYOND visibility level as a TGS_VISIBILITY_ define if TGS is present, null otherwise. Requires TGS to be using interop API version 5 or higher otherwise the string "___unimplemented" wil be returned. This function may sleep if the call to [/world/proc/TgsNew] is sleeping! +/world/proc/TgsVisibility() + return + /// Returns a list of active [/datum/tgs_revision_information/test_merge]s if TGS is present, null otherwise. This function may sleep if the call to [/world/proc/TgsNew] is sleeping! /world/proc/TgsTestMerges() return diff --git a/code/__DEFINES/time.dm b/code/__DEFINES/time.dm index 9600b2f5c2e6..fda27f56d1a3 100644 --- a/code/__DEFINES/time.dm +++ b/code/__DEFINES/time.dm @@ -46,6 +46,10 @@ When using time2text(), please use "DDD" to find the weekday. Refrain from using #define SATURDAY "Sat" #define SUNDAY "Sun" +#define MILLISECONDS *0.01 + +#define DECISECONDS *1 //the base unit all of these defines are scaled by, because byond uses that as a unit of measurement for some fucking reason + #define SECONDS *10 #define MINUTES SECONDS*60 @@ -54,8 +58,6 @@ When using time2text(), please use "DDD" to find the weekday. Refrain from using #define TICKS *world.tick_lag -#define MILLISECONDS * 0.01 - #define DS2TICKS(DS) ((DS)/world.tick_lag) #define TICKS2DS(T) ((T) TICKS) diff --git a/code/__DEFINES/typeids.dm b/code/__DEFINES/typeids.dm index 3cf1b16e000b..5329164229d0 100644 --- a/code/__DEFINES/typeids.dm +++ b/code/__DEFINES/typeids.dm @@ -3,6 +3,6 @@ #define TYPEID_NORMAL_LIST "f" //helper macros #define GET_TYPEID(ref) (((length(ref) <= 10) ? "TYPEID_NULL" : copytext(ref, 4, -7))) -#define IS_NORMAL_LIST(L) (GET_TYPEID("\ref[L]") == TYPEID_NORMAL_LIST) +#define IS_NORMAL_LIST(L) (GET_TYPEID(text_ref(L)) == TYPEID_NORMAL_LIST) diff --git a/code/__DEFINES/verb_manager.dm b/code/__DEFINES/verb_manager.dm new file mode 100644 index 000000000000..11ea6ada4d83 --- /dev/null +++ b/code/__DEFINES/verb_manager.dm @@ -0,0 +1,36 @@ +/** + * verb queuing thresholds. remember that since verbs execute after SendMaps the player wont see the effects of the verbs on the game world + * until SendMaps executes next tick, and then when that later update reaches them. thus most player input has a minimum latency of world.tick_lag + player ping. + * however thats only for the visual effect of player input, when a verb processes the actual latency of game state changes or semantic latency is effectively 1/2 player ping, + * unless that verb is queued for the next tick in which case its some number probably smaller than world.tick_lag. + * so some verbs that represent player input are important enough that we only introduce semantic latency if we absolutely need to. + * its for this reason why player clicks are handled in SSinput before even movement - semantic latency could cause someone to move out of range + * when the verb finally processes but it was in range if the verb had processed immediately and overtimed. + */ + +///queuing tick_usage threshold for verbs that are high enough priority that they only queue if the server is overtiming. +///ONLY use for critical verbs +#define VERB_OVERTIME_QUEUE_THRESHOLD 100 +///queuing tick_usage threshold for verbs that need lower latency more than most verbs. +#define VERB_HIGH_PRIORITY_QUEUE_THRESHOLD 95 +///default queuing tick_usage threshold for most verbs which can allow a small amount of latency to be processed in the next tick +#define VERB_DEFAULT_QUEUE_THRESHOLD 85 + +///attempt to queue this verb process if the server is overloaded. evaluates to FALSE if queuing isnt necessary or if it failed. +///_verification_args... are only necessary if the verb_manager subsystem youre using checks them in can_queue_verb() +///if you put anything in _verification_args that ISNT explicitely put in the can_queue_verb() override of the subsystem youre using, +///it will runtime. +#define TRY_QUEUE_VERB(_verb_callback, _tick_check, _subsystem_to_use, _verification_args...) (_queue_verb(_verb_callback, _tick_check, _subsystem_to_use, _verification_args)) +///queue wrapper for TRY_QUEUE_VERB() when you want to call the proc if the server isnt overloaded enough to queue +#define QUEUE_OR_CALL_VERB(_verb_callback, _tick_check, _subsystem_to_use, _verification_args...) \ + if(!TRY_QUEUE_VERB(_verb_callback, _tick_check, _subsystem_to_use, _verification_args)) {\ + _verb_callback:InvokeAsync() \ + }; + +//goes straight to SSverb_manager with default tick threshold +#define DEFAULT_TRY_QUEUE_VERB(_verb_callback, _verification_args...) (TRY_QUEUE_VERB(_verb_callback, VERB_DEFAULT_QUEUE_THRESHOLD, null, _verification_args)) +#define DEFAULT_QUEUE_OR_CALL_VERB(_verb_callback, _verification_args...) QUEUE_OR_CALL_VERB(_verb_callback, VERB_DEFAULT_QUEUE_THRESHOLD, null, _verification_args) + +//default tick threshold but nondefault subsystem +#define TRY_QUEUE_VERB_FOR(_verb_callback, _subsystem_to_use, _verification_args...) (TRY_QUEUE_VERB(_verb_callback, VERB_DEFAULT_QUEUE_THRESHOLD, _subsystem_to_use, _verification_args)) +#define QUEUE_OR_CALL_VERB_FOR(_verb_callback, _subsystem_to_use, _verification_args...) QUEUE_OR_CALL_VERB(_verb_callback, VERB_DEFAULT_QUEUE_THRESHOLD, _subsystem_to_use, _verification_args) diff --git a/code/__HELPERS/_extools_api.dm b/code/__HELPERS/_extools_api.dm index d1961907e1e8..16c70f7d2dc5 100644 --- a/code/__HELPERS/_extools_api.dm +++ b/code/__HELPERS/_extools_api.dm @@ -8,7 +8,7 @@ GLOBAL_LIST_EMPTY(auxtools_initialized) #define AUXTOOLS_CHECK(LIB)\ if (!GLOB.auxtools_initialized[LIB] && fexists(LIB)) {\ - var/string = call(LIB,"auxtools_init")();\ + var/string = LIBCALL(LIB,"auxtools_init")();\ if(findtext(string, "SUCCESS")) {\ GLOB.auxtools_initialized[LIB] = TRUE;\ } else {\ @@ -18,6 +18,6 @@ GLOBAL_LIST_EMPTY(auxtools_initialized) #define AUXTOOLS_SHUTDOWN(LIB)\ if (GLOB.auxtools_initialized[LIB] && fexists(LIB)){\ - call(LIB,"auxtools_shutdown")();\ + LIBCALL(LIB,"auxtools_shutdown")();\ GLOB.auxtools_initialized[LIB] = FALSE;\ }\ diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index 39dccd4e64d7..376e023940de 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -250,6 +250,49 @@ return null +/// Takes a weighted list (see above) and expands it into raw entries +/// This eats more memory, but saves time when actually picking from it +/proc/expand_weights(list/list_to_pick) + var/list/values = list() + for(var/item in list_to_pick) + var/value = list_to_pick[item] + if(!value) + continue + values += value + + var/gcf = greatest_common_factor(values) + + var/list/output = list() + for(var/item in list_to_pick) + var/value = list_to_pick[item] + if(!value) + continue + for(var/i in 1 to value / gcf) + output += item + return output + +/// Takes a list of numbers as input, returns the highest value that is cleanly divides them all +/// Note: this implementation is expensive as heck for large numbers, I only use it because most of my usecase +/// Is < 10 ints +/proc/greatest_common_factor(list/values) + var/smallest = min(arglist(values)) + for(var/i in smallest to 1 step -1) + var/safe = TRUE + for(var/entry in values) + if(entry % i != 0) + safe = FALSE + break + if(safe) + return i + +/// Pick a random element from the list and remove it from the list. +/proc/pick_n_take(list/list_to_pick) + RETURN_TYPE(list_to_pick[_].type) + if(list_to_pick.len) + var/picked = rand(1,list_to_pick.len) + . = list_to_pick[picked] + list_to_pick.Cut(picked,picked+1) //Cut is far more efficient that Remove() + // Allows picks with non-integer weights and also 0 // precision 1000 means it works up to 3 decimal points /proc/pickweight_float(list/L, default=1, precision=1000) @@ -268,14 +311,6 @@ return null -//Pick a random element from the list and remove it from the list. -/proc/pick_n_take(list/L) - RETURN_TYPE(L[_].type) - if(L.len) - var/picked = rand(1,L.len) - . = L[picked] - L.Cut(picked,picked+1) //Cut is far more efficient that Remove() - //Returns the top(last) element from the list and removes it from the list (typical stack function) /proc/pop(list/L) if(L.len) diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 2b3f3e41e444..6dc31eea2fdb 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -353,7 +353,7 @@ block( \ /proc/flick_overlay(image/I, list/show_to, duration) for(var/client/C in show_to) C.images += I - addtimer(CALLBACK(GLOBAL_PROC, /proc/remove_images_from_clients, I, show_to), duration, TIMER_CLIENT_TIME) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(remove_images_from_clients), I, show_to), duration, TIMER_CLIENT_TIME) /proc/flick_overlay_view(image/I, atom/target, duration) //wrapper for the above, flicks to everyone who can see the target atom var/list/viewing = list() diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index 56f75905b7c4..1048aaa5c861 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -39,7 +39,6 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/moth_markings, GLOB.moth_markings_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/spider_legs, GLOB.spider_legs_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/spider_spinneret, GLOB.spider_spinneret_list) - init_sprite_accessory_subtypes(/datum/sprite_accessory/spider_mandibles, GLOB.spider_mandibles_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/kepori_feathers, GLOB.kepori_feathers_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/kepori_body_feathers, GLOB.kepori_body_feathers_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/kepori_tail_feathers, GLOB.kepori_tail_feathers_list) diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm index 126d93fe352a..38e540e996b9 100644 --- a/code/__HELPERS/icons.dm +++ b/code/__HELPERS/icons.dm @@ -1198,7 +1198,7 @@ GLOBAL_DATUM_INIT(dummySave, /savefile, new("tmp/dummySave.sav")) //Cache of ico if(isicon(icon) && isfile(icon)) //icons compiled in from 'icons/path/to/dmi_file.dmi' at compile time are weird and arent really /icon objects, ///but they pass both isicon() and isfile() checks. theyre the easiest case since stringifying them gives us the path we want - var/icon_ref = "\ref[icon]" + var/icon_ref = text_ref(icon) var/locate_icon_string = "[locate(icon_ref)]" icon_path = locate_icon_string @@ -1209,7 +1209,7 @@ GLOBAL_DATUM_INIT(dummySave, /savefile, new("tmp/dummySave.sav")) //Cache of ico // the rsc reference returned by fcopy_rsc() will be stringifiable to "icons/path/to/dmi_file.dmi" var/rsc_ref = fcopy_rsc(icon) - var/icon_ref = "\ref[rsc_ref]" + var/icon_ref = text_ref(rsc_ref) var/icon_path_string = "[locate(icon_ref)]" @@ -1219,7 +1219,7 @@ GLOBAL_DATUM_INIT(dummySave, /savefile, new("tmp/dummySave.sav")) //Cache of ico var/rsc_ref = fcopy_rsc(icon) //if its the text path of an existing dmi file, the rsc reference returned by fcopy_rsc() will be stringifiable to a dmi path - var/rsc_ref_ref = "\ref[rsc_ref]" + var/rsc_ref_ref = text_ref(rsc_ref) var/rsc_ref_string = "[locate(rsc_ref_ref)]" icon_path = rsc_ref_string diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index e824b3d82273..8838ba324530 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -78,8 +78,6 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/spider_legs, GLOB.spider_legs_list) if(!GLOB.spider_spinneret_list.len) init_sprite_accessory_subtypes(/datum/sprite_accessory/spider_spinneret, GLOB.spider_spinneret_list) - if(!GLOB.spider_mandibles_list.len) - init_sprite_accessory_subtypes(/datum/sprite_accessory/spider_mandibles, GLOB.spider_mandibles_list) if(!GLOB.kepori_feathers_list.len) init_sprite_accessory_subtypes(/datum/sprite_accessory/kepori_feathers, GLOB.kepori_feathers_list) if(!GLOB.kepori_tail_feathers_list.len) @@ -118,7 +116,6 @@ "moth_wings" = pick(GLOB.moth_wings_list), "face_markings" = pick(GLOB.face_markings_list), "spider_legs" = pick(GLOB.spider_legs_list), - "spider_mandibles" = pick(GLOB.spider_mandibles_list), "spider_spinneret" = pick(GLOB.spider_spinneret_list), "spines" = pick(GLOB.spines_list), "squid_face" = pick(GLOB.squid_face_list), @@ -244,7 +241,7 @@ GLOBAL_LIST_EMPTY(species_list) return "unknown" ///Timed action involving two mobs, the user and the target. -/proc/do_mob(mob/user , mob/target, time = 3 SECONDS, uninterruptible = FALSE, progress = TRUE, datum/callback/extra_checks = null) +/proc/do_mob(mob/user , mob/target, time = 3 SECONDS, uninterruptible = FALSE, progress = TRUE, datum/callback/extra_checks = null, ignore_loc_change = FALSE) if(!user || !target) return FALSE @@ -284,7 +281,12 @@ GLOBAL_LIST_EMPTY(species_list) drifting = FALSE user_loc = user.loc - if((!drifting && user.loc != user_loc) || target.loc != target_loc || user.get_active_held_item() != holding || user.incapacitated() || (extra_checks && !extra_checks.Invoke())) + + if(!ignore_loc_change && ((!drifting && user.loc != user_loc) || target.loc != target_loc)) + . = FALSE + break + + if(user.get_active_held_item() != holding || user.incapacitated() || (extra_checks && !extra_checks.Invoke())) . = FALSE break if(!QDELETED(progbar)) diff --git a/code/__HELPERS/nameof.dm b/code/__HELPERS/nameof.dm new file mode 100644 index 000000000000..7cd5777f4652 --- /dev/null +++ b/code/__HELPERS/nameof.dm @@ -0,0 +1,15 @@ +/** + * NAMEOF: Compile time checked variable name to string conversion + * evaluates to a string equal to "X", but compile errors if X isn't a var on datum. + * datum may be null, but it does need to be a typed var. + **/ +#define NAMEOF(datum, X) (#X || ##datum.##X) + +/** + * NAMEOF that actually works in static definitions because src::type requires src to be defined + */ +#if DM_VERSION >= 515 +#define NAMEOF_STATIC(datum, X) (nameof(type::##X)) +#else +#define NAMEOF_STATIC(datum, X) (#X || ##datum.##X) +#endif diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm index 87e4beb62c8d..f89cfea14edb 100644 --- a/code/__HELPERS/text.dm +++ b/code/__HELPERS/text.dm @@ -236,6 +236,24 @@ return copytext(text, 1, i + 1) return "" +//Returns a string with reserved characters and spaces after the first and last letters removed +//Like trim(), but very slightly faster. worth it for niche usecases +/proc/trim_reduced(text) + var/starting_coord = 1 + var/text_len = length(text) + for (var/i in 1 to text_len) + if (text2ascii(text, i) > 32) + starting_coord = i + break + + for (var/i = text_len, i >= starting_coord, i--) + if (text2ascii(text, i) > 32) + return copytext(text, starting_coord, i + 1) + + if(starting_coord > 1) + return copytext(text, starting_coord) + return "" + /** * Truncate a string to the given length * @@ -255,7 +273,7 @@ /proc/trim(text, max_length) if(max_length) text = copytext_char(text, 1, max_length) - return trim_left(trim_right(text)) + return trim_reduced(text) //Returns a string with the first element of the string capitalized. /proc/capitalize(t) @@ -735,6 +753,9 @@ GLOBAL_LIST_INIT(binary, list("0","1")) base = text("[]\herself", rest) if("hers") base = text("[]\hers", rest) + else // Someone fucked up, if you're not a macro just go home yeah? + // This does technically break parsing, but at least it's better then what it used to do + return base . = base if(rest) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index ea9ceee0f417..94039f138721 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -32,6 +32,27 @@ else if(dx<0) .+=360 + +////Tile coordinates (x, y) to absolute coordinates (in number of pixels). Center of a tile is generally assumed to be (16,16), but can be offset. +#define ABS_COOR(c) (((c - 1) * 32) + 16) +#define ABS_COOR_OFFSET(c, o) (((c - 1) * 32) + o) + +/proc/get_angle_with_scatter(atom/start, atom/end, scatter, x_offset = 16, y_offset = 16) + var/end_apx + var/end_apy + if(isliving(end)) //Center mass. + end_apx = ABS_COOR(end.x) + end_apy = ABS_COOR(end.y) + else //Exact pixel. + end_apx = ABS_COOR_OFFSET(end.x, x_offset) + end_apy = ABS_COOR_OFFSET(end.y, y_offset) + scatter = ((rand(0, min(scatter, 45))) * (prob(50) ? 1 : -1)) //Up to 45 degrees deviation to either side. + . = round((90 - ATAN2(end_apx - ABS_COOR(start.x), end_apy - ABS_COOR(start.y))), 1) + scatter + if(. < 0) + . += 360 + else if(. >= 360) + . -= 360 + /proc/Get_Pixel_Angle(y, x)//for getting the angle when animating something's pixel_x and pixel_y if(!y) return (x>=0)?90:270 @@ -660,6 +681,11 @@ will handle it, but: if(!istype(AM)) return + //Find coordinates + var/turf/T = get_turf(AM) //use checked_atom's turfs, as it's coords are the same as checked_atom's AND checked_atom's coords are lost if it is inside another atom + if(!T) + return null + //Find AM's matrix so we can use it's X/Y pixel shifts var/matrix/M = matrix(AM.transform) @@ -678,10 +704,6 @@ will handle it, but: var/rough_x = round(round(pixel_x_offset,world.icon_size)/world.icon_size) var/rough_y = round(round(pixel_y_offset,world.icon_size)/world.icon_size) - //Find coordinates - var/turf/T = get_turf(AM) //use AM's turfs, as it's coords are the same as AM's AND AM's coords are lost if it is inside another atom - if(!T) - return null var/final_x = T.x + rough_x var/final_y = T.y + rough_y @@ -1363,11 +1385,13 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) return "{[time_high]-[time_mid]-[GUID_VERSION][time_low]-[GUID_VARIANT][time_clock]-[node_id]}" -// \ref behaviour got changed in 512 so this is necesary to replicate old behaviour. -// If it ever becomes necesary to get a more performant REF(), this lies here in wait -// #define REF(thing) (thing && istype(thing, /datum) && (thing:datum_flags & DF_USE_TAG) && thing:tag ? "[thing:tag]" : "\ref[thing]") +/** + * \ref behaviour got changed in 512 so this is necesary to replicate old behaviour. + * If it ever becomes necesary to get a more performant REF(), this lies here in wait + * #define REF(thing) (thing && isdatum(thing) && (thing:datum_flags & DF_USE_TAG) && thing:tag ? "[thing:tag]" : text_ref(thing)) +**/ /proc/REF(input) - if(istype(input, /datum)) + if(isdatum(input)) var/datum/thing = input if(thing.datum_flags & DF_USE_TAG) if(!thing.tag) @@ -1375,11 +1399,11 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) thing.datum_flags &= ~DF_USE_TAG else return "\[[url_encode(thing.tag)]\]" - return "\ref[input]" + return text_ref(input) // Makes a call in the context of a different usr // Use sparingly -/world/proc/PushUsr(mob/M, datum/callback/CB, ...) +/world/proc/push_usr(mob/M, datum/callback/CB, ...) var/temp = usr usr = M if (length(args) > 2) @@ -1388,12 +1412,9 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) . = CB.Invoke() usr = temp -//datum may be null, but it does need to be a typed var -#define NAMEOF(datum, X) (#X || ##datum.##X) - -#define VARSET_LIST_CALLBACK(target, var_name, var_value) CALLBACK(GLOBAL_PROC, /proc/___callbackvarset, ##target, ##var_name, ##var_value) +#define VARSET_LIST_CALLBACK(target, var_name, var_value) CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(___callbackvarset), ##target, ##var_name, ##var_value) //dupe code because dm can't handle 3 level deep macros -#define VARSET_CALLBACK(datum, var, var_value) CALLBACK(GLOBAL_PROC, /proc/___callbackvarset, ##datum, NAMEOF(##datum, ##var), ##var_value) +#define VARSET_CALLBACK(datum, var, var_value) CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(___callbackvarset), ##datum, NAMEOF(##datum, ##var), ##var_value) /proc/___callbackvarset(list_or_datum, var_name, var_value) if(length(list_or_datum)) @@ -1405,8 +1426,8 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) else D.vars[var_name] = var_value -#define TRAIT_CALLBACK_ADD(target, trait, source) CALLBACK(GLOBAL_PROC, /proc/___TraitAdd, ##target, ##trait, ##source) -#define TRAIT_CALLBACK_REMOVE(target, trait, source) CALLBACK(GLOBAL_PROC, /proc/___TraitRemove, ##target, ##trait, ##source) +#define TRAIT_CALLBACK_ADD(target, trait, source) CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(___TraitAdd), ##target, ##trait, ##source) +#define TRAIT_CALLBACK_REMOVE(target, trait, source) CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(___TraitRemove), ##target, ##trait, ##source) ///DO NOT USE ___TraitAdd OR ___TraitRemove as a replacement for ADD_TRAIT / REMOVE_TRAIT defines. To be used explicitly for callback. /proc/___TraitAdd(target,trait,source) diff --git a/code/__byond_version_compat.dm b/code/__byond_version_compat.dm index d711276efc27..08ca94db6c6a 100644 --- a/code/__byond_version_compat.dm +++ b/code/__byond_version_compat.dm @@ -1,7 +1,7 @@ // This file contains defines allowing targeting byond versions newer than the supported //Update this whenever you need to take advantage of more recent byond features -/*#define MIN_COMPILER_VERSION 514 +#define MIN_COMPILER_VERSION 514 #define MIN_COMPILER_BUILD 1556 #if (DM_VERSION < MIN_COMPILER_VERSION || DM_BUILD < MIN_COMPILER_BUILD) && !defined(SPACEMAN_DMM) //Don't forget to update this part @@ -12,8 +12,13 @@ #if (DM_VERSION == 514 && DM_BUILD > 1575 && DM_BUILD <= 1577) #error Your version of BYOND currently has a crashing issue that will prevent you from running Dream Daemon test servers. #error We require developers to test their content, so an inability to test means we cannot allow the compile. -#error Please consider downgrading to 514.1575 or lower. -#endif*/ +#error Please consider upgrading to 514.1577 or above. +#endif + +#if (DM_VERSION == 514 && DM_BUILD == 1589) +#warn Warning! Byond 514.1589 has been known to be unstable. Use at your own risk. +#warn Please consider using 514.1588. +#endif // Keep savefile compatibilty at minimum supported level #if DM_VERSION >= 515 @@ -43,3 +48,16 @@ /// Call by name proc reference, checks if the proc is existing global proc #define GLOBAL_PROC_REF(X) (/proc/##X) #endif + +// I heard that this was fixed in 1609 (not public currently), but that could be wrong, so keep an eye on this +#if (DM_VERSION == 515 && DM_BUILD < 1609) +/// fcopy will crash on 515 linux if given a non-existant file, instead of returning 0 like on 514 linux or 515 windows +/// var case matches documentation for fcopy. +/world/proc/__fcopy(Src, Dst) + if (!fexists(Src)) + return 0 + return fcopy(Src, Dst) + +#define fcopy(Src, Dst) world.__fcopy(Src, Dst) + +#endif diff --git a/code/_compile_options.dm b/code/_compile_options.dm index 0b73aa7172c3..4f96217abd2c 100644 --- a/code/_compile_options.dm +++ b/code/_compile_options.dm @@ -52,23 +52,6 @@ /// Prefer the autowiki build target instead. // #define AUTOWIKI -//Update this whenever you need to take advantage of more recent byond features -#define MIN_COMPILER_VERSION 513 -#define MIN_COMPILER_BUILD 1514 -#if DM_VERSION < MIN_COMPILER_VERSION || DM_BUILD < MIN_COMPILER_BUILD -//Don't forget to update this part -#error Your version of BYOND is too out-of-date to compile this project. Go to https://secure.byond.com/download and update. -#error You need version 513.1514 or higher -#endif - -//Update this whenever the byond version is stable so people stop updating to hilariously broken versions -//#define MAX_COMPILER_VERSION 514 -//#define MAX_COMPILER_BUILD 1571 -#ifdef MAX_COMPILER_VERSION -#if DM_VERSION > MAX_COMPILER_VERSION || DM_BUILD > MAX_COMPILER_BUILD -#warn WARNING: Your BYOND version is over the recommended version (514.1571)! Stability is not guaranteed. -#endif -#endif //Log the full sendmaps profile on 514.1556+, any earlier and we get bugs or it not existing #if DM_VERSION >= 514 && DM_BUILD >= 1556 #define SENDMAPS_PROFILE diff --git a/code/_debugger.dm b/code/_debugger.dm index dafc759ec563..1518908fa9a0 100644 --- a/code/_debugger.dm +++ b/code/_debugger.dm @@ -9,5 +9,5 @@ /datum/debugger/proc/enable_debugger() var/dll = world.GetConfig("env", "AUXTOOLS_DEBUG_DLL") if (dll) - call(dll, "auxtools_init")() + LIBCALL(dll, "auxtools_init")() enable_debugging() diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index 66196b1a6dd6..aca090086487 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -43,7 +43,6 @@ GLOBAL_LIST_EMPTY(ipc_chassis_list) GLOBAL_LIST_INIT(ipc_brain_list, list("Posibrain", "Man-Machine Interface")) GLOBAL_LIST_EMPTY(spider_legs_list) GLOBAL_LIST_EMPTY(spider_spinneret_list) -GLOBAL_LIST_EMPTY(spider_mandibles_list) GLOBAL_LIST_EMPTY(kepori_feathers_list) GLOBAL_LIST_EMPTY(kepori_body_feathers_list) GLOBAL_LIST_EMPTY(kepori_tail_feathers_list) @@ -128,7 +127,7 @@ GLOBAL_LIST_INIT(ai_core_display_screens, sortList(list( "Helios", "House", "Inverted", - "Lamp", //WS edit, moff ai display + "Lamp", "Matrix", "Monochrome", "Murica", diff --git a/code/_globalvars/lists/mobs.dm b/code/_globalvars/lists/mobs.dm index 0c28353395d4..fb00d8bdf283 100644 --- a/code/_globalvars/lists/mobs.dm +++ b/code/_globalvars/lists/mobs.dm @@ -35,6 +35,8 @@ GLOBAL_LIST_EMPTY(aiEyes) ///underages who have been reported to security for trying to buy things they shouldn't, so they can't spam GLOBAL_LIST_EMPTY(narcd_underages) +GLOBAL_LIST_EMPTY(real_names_joined) + GLOBAL_LIST_EMPTY(language_datum_instances) GLOBAL_LIST_EMPTY(all_languages) diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index c81f8addfcb5..f8c60ecd97fa 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -38,9 +38,10 @@ * * Note that this proc can be overridden, and is in the case of screen objects. */ -/atom/Click(location,control,params) +/atom/Click(location, control, params) if(flags_1 & INITIALIZED_1) SEND_SIGNAL(src, COMSIG_CLICK, location, control, params, usr) + usr.ClickOn(src, params) /atom/DblClick(location,control,params) diff --git a/code/_onclick/drag_drop.dm b/code/_onclick/drag_drop.dm index 00a16eefda33..ac401489f40a 100644 --- a/code/_onclick/drag_drop.dm +++ b/code/_onclick/drag_drop.dm @@ -108,7 +108,7 @@ UnregisterSignal(mouseObject, COMSIG_PARENT_QDELETING) mouseObject = over_object // register signal to new mouseObject - RegisterSignal(mouseObject, COMSIG_PARENT_QDELETING, .proc/clear_mouseObject) + RegisterSignal(mouseObject, COMSIG_PARENT_QDELETING, PROC_REF(clear_mouseObject)) mouseControlObject = over_control if(selected_target[1] && over_object && over_object.IsAutoclickable()) selected_target[1] = over_object diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index e8e6daccf45b..8a61e094fa1d 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -65,7 +65,7 @@ Override makes it so the alert is not replaced until cleared by a clear_alert wi animate(thealert, transform = matrix(), time = 2.5, easing = CUBIC_EASING) if(thealert.timeout) - addtimer(CALLBACK(src, .proc/alert_timeout, thealert, category), thealert.timeout) + addtimer(CALLBACK(src, PROC_REF(alert_timeout), thealert, category), thealert.timeout) thealert.timeout = world.time + thealert.timeout - world.tick_lag return thealert @@ -313,7 +313,7 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." add_overlay(receiving) src.receiving = receiving src.offerer = offerer - RegisterSignal(taker, COMSIG_MOVABLE_MOVED, .proc/check_in_range, override = TRUE) //Override to prevent runtimes when people offer a item multiple times + RegisterSignal(taker, COMSIG_MOVABLE_MOVED, PROC_REF(check_in_range), override = TRUE) //Override to prevent runtimes when people offer a item multiple times /atom/movable/screen/alert/give/proc/removeAlert() to_chat(owner, "You moved out of range of [offerer]!") @@ -341,7 +341,7 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." . = ..() name = "[offerer] is offering a high-five!" desc = "[offerer] is offering a high-five! Click this alert to slap it." - RegisterSignal(offerer, COMSIG_PARENT_EXAMINE_MORE, .proc/check_fake_out) + RegisterSignal(offerer, COMSIG_PARENT_EXAMINE_MORE, PROC_REF(check_fake_out)) /atom/movable/screen/alert/give/highfive/handle_transfer() var/mob/living/carbon/taker = owner @@ -359,7 +359,7 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." offerer.visible_message(span_notice("[rube] rushes in to high-five [offerer], but-"), span_nicegreen("[rube] falls for your trick just as planned, lunging for a high-five that no longer exists! Classic!"), ignored_mobs=rube) to_chat(rube, span_nicegreen("You go in for [offerer]'s high-five, but-")) - addtimer(CALLBACK(src, .proc/too_slow_p2, offerer, rube), 0.5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(too_slow_p2), offerer, rube), 0.5 SECONDS) /// Part two of the ultimate prank /atom/movable/screen/alert/give/highfive/proc/too_slow_p2() diff --git a/code/_onclick/hud/credits.dm b/code/_onclick/hud/credits.dm index 01e4cd1de1f4..0ee063593a8b 100644 --- a/code/_onclick/hud/credits.dm +++ b/code/_onclick/hud/credits.dm @@ -36,7 +36,7 @@ GLOBAL_LIST_INIT(patrons, world.file2list("[global.config.directory]/patrons.txt if(!C) continue - addtimer(CALLBACK(GLOBAL_PROC, .proc/create_credit, C), CREDIT_SPAWN_SPEED * i + (3 * CREDIT_SPAWN_SPEED), TIMER_CLIENT_TIME) + addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(create_credit), C), CREDIT_SPAWN_SPEED * i + (3 * CREDIT_SPAWN_SPEED), TIMER_CLIENT_TIME) /proc/create_credit(credit) new /atom/movable/screen/credit(null, credit) @@ -59,7 +59,7 @@ GLOBAL_LIST_INIT(patrons, world.file2list("[global.config.directory]/patrons.txt animate(src, transform = M, time = CREDIT_ROLL_SPEED) target = M animate(src, alpha = 255, time = CREDIT_EASE_DURATION, flags = ANIMATION_PARALLEL) - INVOKE_ASYNC(src, .proc/add_to_clients) + INVOKE_ASYNC(src, PROC_REF(add_to_clients)) QDEL_IN(src, CREDIT_ROLL_SPEED) /atom/movable/screen/credit/proc/add_to_clients() diff --git a/code/_onclick/hud/fullscreen.dm b/code/_onclick/hud/fullscreen.dm index 14b95e421c3d..b286ff28f4c5 100644 --- a/code/_onclick/hud/fullscreen.dm +++ b/code/_onclick/hud/fullscreen.dm @@ -25,7 +25,7 @@ if(animated) animate(screen, alpha = 0, time = animated) - addtimer(CALLBACK(src, .proc/clear_fullscreen_after_animate, screen), animated, TIMER_CLIENT_TIME) + addtimer(CALLBACK(src, PROC_REF(clear_fullscreen_after_animate), screen), animated, TIMER_CLIENT_TIME) else if(client) client.screen -= screen diff --git a/code/_onclick/hud/parallax.dm b/code/_onclick/hud/parallax.dm index 36d278adac0d..0bf17de075bf 100644 --- a/code/_onclick/hud/parallax.dm +++ b/code/_onclick/hud/parallax.dm @@ -133,7 +133,7 @@ C.parallax_movedir = new_parallax_movedir if (C.parallax_animate_timer) deltimer(C.parallax_animate_timer) - var/datum/callback/CB = CALLBACK(src, .proc/update_parallax_motionblur, C, animatedir, new_parallax_movedir, newtransform) + var/datum/callback/CB = CALLBACK(src, PROC_REF(update_parallax_motionblur), C, animatedir, new_parallax_movedir, newtransform) if(skip_windups) CB.Invoke() else diff --git a/code/_onclick/hud/radial.dm b/code/_onclick/hud/radial.dm index b672b901d086..6bc47aa6bcb8 100644 --- a/code/_onclick/hud/radial.dm +++ b/code/_onclick/hud/radial.dm @@ -14,7 +14,7 @@ GLOBAL_LIST_EMPTY(radial_menus) UnregisterSignal(parent, COMSIG_PARENT_QDELETING) parent = new_value if(parent) - RegisterSignal(parent, COMSIG_PARENT_QDELETING, .proc/handle_parent_del) + RegisterSignal(parent, COMSIG_PARENT_QDELETING, PROC_REF(handle_parent_del)) /atom/movable/screen/radial/proc/handle_parent_del() SIGNAL_HANDLER @@ -62,9 +62,18 @@ GLOBAL_LIST_EMPTY(radial_menus) parent.finished = TRUE /datum/radial_menu - var/list/choices = list() //List of choice id's - var/list/choices_icons = list() //choice_id -> icon - var/list/choices_values = list() //choice_id -> choice + /// List of choice IDs + var/list/choices = list() + + /// choice_id -> icon + var/list/choices_icons = list() + + /// choice_id -> choice + var/list/choices_values = list() + + /// choice_id -> /datum/radial_menu_choice + var/list/choice_datums = list() + var/list/page_data = list() //list of choices per page @@ -199,6 +208,7 @@ GLOBAL_LIST_EMPTY(radial_menus) E.alpha = 255 E.mouse_opacity = MOUSE_OPACITY_ICON E.cut_overlays() + E.vis_contents.Cut() if(choice_id == NEXT_PAGE_ID) E.name = "Next Page" E.next_page = TRUE @@ -245,11 +255,17 @@ GLOBAL_LIST_EMPTY(radial_menus) var/I = extract_image(new_choices[E]) if(I) choices_icons[id] = I + if (istype(new_choices[E], /datum/radial_menu_choice)) + choice_datums[id] = new_choices[E] setup_menu(use_tooltips) -/datum/radial_menu/proc/extract_image(E) - var/mutable_appearance/MA = new /mutable_appearance(E) +/datum/radial_menu/proc/extract_image(to_extract_from) + if (istype(to_extract_from, /datum/radial_menu_choice)) + var/datum/radial_menu_choice/choice = to_extract_from + to_extract_from = choice.image + + var/mutable_appearance/MA = new /mutable_appearance(to_extract_from) if(MA) MA.layer = ABOVE_HUD_LAYER MA.appearance_flags |= RESET_TRANSFORM @@ -332,3 +348,15 @@ GLOBAL_LIST_EMPTY(radial_menus) if(!custom_check.Invoke()) return return answer + +/// Can be provided to choices in radial menus if you want to provide more information +/datum/radial_menu_choice + /// Required -- what to display for this button + var/image + + /// If provided, will display an info button that will put this text in your chat + var/info + +/datum/radial_menu_choice/Destroy(force, ...) + . = ..() + QDEL_NULL(image) diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 557096d83c82..8615b9a9aa6d 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -749,7 +749,7 @@ deltimer(timerid) if(!streak) return ..() - timerid = addtimer(CALLBACK(src, .proc/clear_streak), 20, TIMER_UNIQUE | TIMER_STOPPABLE) + timerid = addtimer(CALLBACK(src, PROC_REF(clear_streak)), 20, TIMER_UNIQUE | TIMER_STOPPABLE) icon_state = "combo" for(var/i = 1; i <= length(streak); ++i) var/intent_text = copytext(streak, i, i + 1) diff --git a/code/controllers/configuration/config_entry.dm b/code/controllers/configuration/config_entry.dm index 22c19f7cf627..8a25babbb010 100644 --- a/code/controllers/configuration/config_entry.dm +++ b/code/controllers/configuration/config_entry.dm @@ -42,7 +42,7 @@ . &= !(protection & CONFIG_ENTRY_HIDDEN) /datum/config_entry/vv_edit_var(var_name, var_value) - var/static/list/banned_edits = list(NAMEOF(src, name), NAMEOF(src, vv_VAS), NAMEOF(src, default), NAMEOF(src, resident_file), NAMEOF(src, protection), NAMEOF(src, abstract_type), NAMEOF(src, modified), NAMEOF(src, dupes_allowed)) + var/static/list/banned_edits = list(NAMEOF_STATIC(src, name), NAMEOF_STATIC(src, vv_VAS), NAMEOF_STATIC(src, default), NAMEOF_STATIC(src, resident_file), NAMEOF_STATIC(src, protection), NAMEOF_STATIC(src, abstract_type), NAMEOF_STATIC(src, modified), NAMEOF_STATIC(src, dupes_allowed)) if(var_name == NAMEOF(src, config_entry_value)) if(protection & CONFIG_ENTRY_LOCKED) return FALSE @@ -105,7 +105,7 @@ return FALSE /datum/config_entry/number/vv_edit_var(var_name, var_value) - var/static/list/banned_edits = list(NAMEOF(src, max_val), NAMEOF(src, min_val), NAMEOF(src, integer)) + var/static/list/banned_edits = list(NAMEOF_STATIC(src, max_val), NAMEOF_STATIC(src, min_val), NAMEOF_STATIC(src, integer)) return !(var_name in banned_edits) && ..() /datum/config_entry/flag diff --git a/code/controllers/configuration/configuration.dm b/code/controllers/configuration/configuration.dm index 70fb5d107f3f..c806ec40837a 100644 --- a/code/controllers/configuration/configuration.dm +++ b/code/controllers/configuration/configuration.dm @@ -352,4 +352,4 @@ Example config: //Message admins when you can. /datum/controller/configuration/proc/DelayedMessageAdmins(text) - addtimer(CALLBACK(GLOBAL_PROC, /proc/message_admins, text), 0) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(message_admins), text), 0) diff --git a/code/controllers/master.dm b/code/controllers/master.dm index a7cf982a8865..302c0de4a427 100644 --- a/code/controllers/master.dm +++ b/code/controllers/master.dm @@ -343,9 +343,9 @@ GLOBAL_REAL(Master, /datum/controller/master) = new queue_tail = null //these sort by lower priorities first to reduce the number of loops needed to add subsequent SS's to the queue //(higher subsystems will be sooner in the queue, adding them later in the loop means we don't have to loop thru them next queue add) - sortTim(tickersubsystems, /proc/cmp_subsystem_priority) + sortTim(tickersubsystems, GLOBAL_PROC_REF(cmp_subsystem_priority)) for(var/I in runlevel_sorted_subsystems) - sortTim(runlevel_sorted_subsystems, /proc/cmp_subsystem_priority) + sortTim(I, GLOBAL_PROC_REF(cmp_subsystem_priority)) I += tickersubsystems var/cached_runlevel = current_runlevel @@ -367,6 +367,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new while (1) tickdrift = max(0, MC_AVERAGE_FAST(tickdrift, (((REALTIMEOFDAY - init_timeofday) - (world.time - init_time)) / world.tick_lag))) var/starting_tick_usage = TICK_USAGE + if (init_stage != init_stage_completed) return MC_LOOP_RTN_NEWSTAGES if (processing <= 0) diff --git a/code/controllers/subsystem/dbcore.dm b/code/controllers/subsystem/dbcore.dm index e5584df31e5e..0fd7090ff17d 100644 --- a/code/controllers/subsystem/dbcore.dm +++ b/code/controllers/subsystem/dbcore.dm @@ -192,9 +192,9 @@ SUBSYSTEM_DEF(dbcore) for (var/thing in querys) var/datum/DBQuery/query = thing if (warn) - INVOKE_ASYNC(query, /datum/DBQuery.proc/warn_execute) + INVOKE_ASYNC(query, TYPE_PROC_REF(/datum/DBQuery, warn_execute)) else - INVOKE_ASYNC(query, /datum/DBQuery.proc/Execute) + INVOKE_ASYNC(query, TYPE_PROC_REF(/datum/DBQuery, Execute)) for (var/thing in querys) var/datum/DBQuery/query = thing diff --git a/code/controllers/subsystem/explosions.dm b/code/controllers/subsystem/explosions.dm index 4e8a23b5ba3c..14f8e8b8fa19 100644 --- a/code/controllers/subsystem/explosions.dm +++ b/code/controllers/subsystem/explosions.dm @@ -140,7 +140,7 @@ SUBSYSTEM_DEF(explosions) else continue - addtimer(CALLBACK(GLOBAL_PROC, .proc/wipe_color_and_text, wipe_colours), 100) + addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(wipe_color_and_text), wipe_colours), 100) /proc/wipe_color_and_text(list/atom/wiping) for(var/i in wiping) @@ -278,7 +278,7 @@ SUBSYSTEM_DEF(explosions) M.playsound_local(epicenter, null, echo_volume, 1, frequency, S = explosion_echo_sound, distance_multiplier = 0) if(creaking_explosion) // 5 seconds after the bang, the station begins to creak - addtimer(CALLBACK(M, /mob/proc/playsound_local, epicenter, null, rand(FREQ_LOWER, FREQ_UPPER), 1, frequency, null, null, FALSE, hull_creaking_sound, 0), CREAK_DELAY) + addtimer(CALLBACK(M, TYPE_PROC_REF(/mob, playsound_local), epicenter, null, rand(FREQ_LOWER, FREQ_UPPER), 1, frequency, null, null, FALSE, hull_creaking_sound, 0), CREAK_DELAY) if(heavy_impact_range > 1) var/datum/effect_system/explosion/E diff --git a/code/controllers/subsystem/garbage.dm b/code/controllers/subsystem/garbage.dm index 895a8c1685fc..da58d4764516 100644 --- a/code/controllers/subsystem/garbage.dm +++ b/code/controllers/subsystem/garbage.dm @@ -209,11 +209,11 @@ SUBSYSTEM_DEF(garbage) if (GC_QUEUE_CHECK) #ifdef REFERENCE_TRACKING if(reference_find_on_fail[refID]) - INVOKE_ASYNC(D, /datum/proc/find_references) + INVOKE_ASYNC(D, TYPE_PROC_REF(/datum, find_references)) ref_searching = TRUE #ifdef GC_FAILURE_HARD_LOOKUP else - INVOKE_ASYNC(D, /datum/proc/find_references) + INVOKE_ASYNC(D, TYPE_PROC_REF(/datum, find_references)) ref_searching = TRUE #endif reference_find_on_fail -= refID @@ -221,7 +221,7 @@ SUBSYSTEM_DEF(garbage) var/type = D.type var/datum/qdel_item/I = items[type] - log_world("## TESTING: GC: -- \ref[D] | [type] was unable to be GC'd --") + log_world("## TESTING: GC: -- [text_ref(D)] | [type] was unable to be GC'd --") #ifdef TESTING for(var/c in GLOB.admins) //Using testing() here would fill the logs with ADMIN_VV garbage var/client/admin = c @@ -258,7 +258,7 @@ SUBSYSTEM_DEF(garbage) return var/queue_time = world.time - var/refid = "\ref[D]" + var/refid = text_ref(D) if (D.gc_destroyed <= 0) D.gc_destroyed = queue_time @@ -271,7 +271,7 @@ SUBSYSTEM_DEF(garbage) ++delslasttick ++totaldels var/type = D.type - var/refID = "\ref[D]" + var/refID = text_ref(D) var/datum/qdel_item/I = items[type] if (!force && I.qdel_flags & QDEL_ITEM_SUSPENDED_FOR_LAG) @@ -389,7 +389,7 @@ SUBSYSTEM_DEF(garbage) D.find_references() if (QDEL_HINT_IFFAIL_FINDREFERENCE) //qdel will, if REFERENCE_TRACKING is enabled and the object fails to collect, display all references to this object. SSgarbage.Queue(D) - SSgarbage.reference_find_on_fail["\ref[D]"] = TRUE + SSgarbage.reference_find_on_fail[text_ref(D)] = TRUE #endif else #ifdef TESTING diff --git a/code/controllers/subsystem/input.dm b/code/controllers/subsystem/input.dm index 8bdc53089e12..f3edbabbc6a1 100644 --- a/code/controllers/subsystem/input.dm +++ b/code/controllers/subsystem/input.dm @@ -1,15 +1,28 @@ -SUBSYSTEM_DEF(input) +VERB_MANAGER_SUBSYSTEM_DEF(input) name = "Input" - wait = 1 //SS_TICKER means this runs every tick init_order = INIT_ORDER_INPUT init_stage = INITSTAGE_EARLY flags = SS_TICKER priority = FIRE_PRIORITY_INPUT runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY + use_default_stats = FALSE + var/list/macro_sets -/datum/controller/subsystem/input/Initialize() + ///running average of how many clicks inputted by a player the server processes every second. used for the subsystem stat entry + var/clicks_per_second = 0 + ///count of how many clicks onto atoms have elapsed before being cleared by fire(). used to average with clicks_per_second. + var/current_clicks = 0 + ///acts like clicks_per_second but only counts the clicks actually processed by SSinput itself while clicks_per_second counts all clicks + var/delayed_clicks_per_second = 0 + ///running average of how many movement iterations from player input the server processes every second. used for the subsystem stat entry + var/movements_per_second = 0 + ///running average of the amount of real time clicks take to truly execute after the command is originally sent to the server. + ///if a click isnt delayed at all then it counts as 0 deciseconds. + var/average_click_delay = 0 + +/datum/controller/subsystem/verb_manager/input/Initialize() setup_default_macro_sets() initialized = TRUE @@ -19,7 +32,7 @@ SUBSYSTEM_DEF(input) return ..() // This is for when macro sets are eventualy datumized -/datum/controller/subsystem/input/proc/setup_default_macro_sets() +/datum/controller/subsystem/verb_manager/input/proc/setup_default_macro_sets() var/list/static/default_macro_sets if(default_macro_sets) @@ -86,12 +99,59 @@ SUBSYSTEM_DEF(input) macro_sets = default_macro_sets // Badmins just wanna have fun ♪ -/datum/controller/subsystem/input/proc/refresh_client_macro_sets() +/datum/controller/subsystem/verb_manager/input/proc/refresh_client_macro_sets() var/list/clients = GLOB.clients for(var/i in 1 to clients.len) var/client/user = clients[i] user.set_macros() -/datum/controller/subsystem/input/fire() +/datum/controller/subsystem/verb_manager/input/can_queue_verb(datum/callback/verb_callback/incoming_callback, control) + //make sure the incoming verb is actually something we specifically want to handle + if(control != "mapwindow.map") + return FALSE + + if(average_click_delay > MAXIMUM_CLICK_LATENCY || !..()) + current_clicks++ + average_click_delay = MC_AVG_FAST_UP_SLOW_DOWN(average_click_delay, 0) + return FALSE + + return TRUE + +///stupid workaround for byond not recognizing the /atom/Click typepath for the queued click callbacks +/atom/proc/_Click(location, control, params) + if(usr) + Click(location, control, params) + +/datum/controller/subsystem/verb_manager/input/fire() + ..() + + var/moves_this_run = 0 for(var/mob/user as anything in GLOB.keyloop_list) - user.focus?.keyLoop(user.client) + moves_this_run += user.focus?.keyLoop(user.client)//only increments if a player moves due to their own input + + movements_per_second = MC_AVG_SECONDS(movements_per_second, moves_this_run, wait TICKS) + +/datum/controller/subsystem/verb_manager/input/run_verb_queue() + var/deferred_clicks_this_run = 0 //acts like current_clicks but doesnt count clicks that dont get processed by SSinput + + for(var/datum/callback/verb_callback/queued_click as anything in verb_queue) + if(!istype(queued_click)) + stack_trace("non /datum/callback/verb_callback instance inside SSinput's verb_queue!") + continue + + average_click_delay = MC_AVG_FAST_UP_SLOW_DOWN(average_click_delay, TICKS2DS((DS2TICKS(world.time) - queued_click.creation_time)) SECONDS) + queued_click.InvokeAsync() + + current_clicks++ + deferred_clicks_this_run++ + + verb_queue.Cut() //is ran all the way through every run, no exceptions + + clicks_per_second = MC_AVG_SECONDS(clicks_per_second, current_clicks, wait SECONDS) + delayed_clicks_per_second = MC_AVG_SECONDS(delayed_clicks_per_second, deferred_clicks_this_run, wait SECONDS) + current_clicks = 0 + +/datum/controller/subsystem/verb_manager/input/stat_entry(msg) + . = ..() + . += "M/S:[round(movements_per_second,0.01)] | C/S:[round(clicks_per_second,0.01)] ([round(delayed_clicks_per_second,0.01)] | CD: [round(average_click_delay / (1 SECONDS),0.01)])" + diff --git a/code/controllers/subsystem/lag_switch.dm b/code/controllers/subsystem/lag_switch.dm index eadf8d219324..631685fe2910 100644 --- a/code/controllers/subsystem/lag_switch.dm +++ b/code/controllers/subsystem/lag_switch.dm @@ -23,7 +23,7 @@ SUBSYSTEM_DEF(lag_switch) if(auto_switch_pop) auto_switch = TRUE trigger_pop = auto_switch_pop - RegisterSignal(SSdcs, COMSIG_GLOB_CLIENT_CONNECT, .proc/client_connected) + RegisterSignal(SSdcs, COMSIG_GLOB_CLIENT_CONNECT, PROC_REF(client_connected)) return ..() /datum/controller/subsystem/lag_switch/proc/client_connected(datum/source, client/connected) @@ -33,7 +33,7 @@ SUBSYSTEM_DEF(lag_switch) auto_switch = FALSE UnregisterSignal(SSdcs, COMSIG_GLOB_CLIENT_CONNECT) - veto_timer_id = addtimer(CALLBACK(src, .proc/set_all_measures, TRUE, TRUE), 20 SECONDS, TIMER_STOPPABLE) + veto_timer_id = addtimer(CALLBACK(src, PROC_REF(set_all_measures), TRUE, TRUE), 20 SECONDS, TIMER_STOPPABLE) message_admins("Lag Switch population threshold reached. Automatic activation of lag mitigation measures occuring in 20 seconds. (CANCEL)") log_admin("Lag Switch population threshold reached. Automatic activation of lag mitigation measures occuring in 20 seconds.") @@ -41,7 +41,7 @@ SUBSYSTEM_DEF(lag_switch) /datum/controller/subsystem/lag_switch/proc/toggle_auto_enable() auto_switch = !auto_switch if(auto_switch) - RegisterSignal(SSdcs, COMSIG_GLOB_CLIENT_CONNECT, .proc/client_connected) + RegisterSignal(SSdcs, COMSIG_GLOB_CLIENT_CONNECT, PROC_REF(client_connected)) else UnregisterSignal(SSdcs, COMSIG_GLOB_CLIENT_CONNECT) diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index 28ab56d05211..f9c5c9c86399 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -134,17 +134,6 @@ SUBSYSTEM_DEF(mapping) for(var/datum/planet_type/type as anything in subtypesof(/datum/planet_type)) planet_types[initial(type.planet)] = new type - // Still supporting bans by filename - // I hate this so much. I want to kill it because I don't think ANYONE uses this - // Couldn't you just remove it on a fork or something??? come onnnnnnnnnnnn stop EXISTING already - var/list/banned = generateMapList("[global.config.directory]/lavaruinblacklist.txt") - banned += generateMapList("[global.config.directory]/spaceruinblacklist.txt") - banned += generateMapList("[global.config.directory]/iceruinblacklist.txt") - banned += generateMapList("[global.config.directory]/sandruinblacklist.txt") - banned += generateMapList("[global.config.directory]/jungleruinblacklist.txt") - banned += generateMapList("[global.config.directory]/rockruinblacklist.txt") - banned += generateMapList("[global.config.directory]/wasteruinblacklist.txt") - for(var/item in sortList(subtypesof(/datum/map_template/ruin), /proc/cmp_ruincost_priority)) var/datum/map_template/ruin/ruin_type = item // screen out the abstract subtypes @@ -152,9 +141,6 @@ SUBSYSTEM_DEF(mapping) continue var/datum/map_template/ruin/R = new ruin_type() - if(R.mappath in banned) - continue - map_templates[R.name] = R ruins_templates[R.name] = R ruin_types_list[R.ruin_type] += list(R.name = R) diff --git a/code/controllers/subsystem/overmap.dm b/code/controllers/subsystem/overmap.dm index eb6ccfa3c7b4..de03f6a5a03e 100644 --- a/code/controllers/subsystem/overmap.dm +++ b/code/controllers/subsystem/overmap.dm @@ -262,7 +262,7 @@ SUBSYSTEM_DEF(overmap) var/datum/map_template/ruin/used_ruin = ispath(ruin_type) ? (new ruin_type) : ruin_type // name is random but PROBABLY unique - var/encounter_name = dynamic_datum.planet_name || "Dynamic Overmap Encounter #[rand(1111,9999)]-[rand(1111,9999)]" + var/encounter_name = dynamic_datum.planet_name || "\improper Uncharted Space [dynamic_datum.x]/[dynamic_datum.y]-[rand(1111, 9999)]" var/datum/map_zone/mapzone = SSmapping.create_map_zone(encounter_name) var/datum/virtual_level/vlevel = SSmapping.create_virtual_level( encounter_name, @@ -318,7 +318,7 @@ SUBSYSTEM_DEF(overmap) var/obj/docking_port/stationary/primary_dock = new(primary_docking_turf) primary_dock.dir = NORTH - primary_dock.name = "\improper Uncharted Space" + primary_dock.name = "[encounter_name] docking location #1" primary_dock.height = RESERVE_DOCK_MAX_SIZE_SHORT primary_dock.width = RESERVE_DOCK_MAX_SIZE_LONG primary_dock.dheight = 0 @@ -327,7 +327,7 @@ SUBSYSTEM_DEF(overmap) var/obj/docking_port/stationary/secondary_dock = new(secondary_docking_turf) secondary_dock.dir = NORTH - secondary_dock.name = "\improper Uncharted Space" + secondary_dock.name = "[encounter_name] docking location #2" secondary_dock.height = RESERVE_DOCK_MAX_SIZE_SHORT secondary_dock.width = RESERVE_DOCK_MAX_SIZE_LONG secondary_dock.dheight = 0 @@ -350,7 +350,7 @@ SUBSYSTEM_DEF(overmap) var/obj/docking_port/stationary/tertiary_dock = new(tertiary_docking_turf) tertiary_dock.dir = NORTH - tertiary_dock.name = "\improper Uncharted Space" + tertiary_dock.name = "[encounter_name] docking location #3" tertiary_dock.height = RESERVE_DOCK_MAX_SIZE_SHORT tertiary_dock.width = RESERVE_DOCK_MAX_SIZE_LONG tertiary_dock.dheight = 0 @@ -359,7 +359,7 @@ SUBSYSTEM_DEF(overmap) var/obj/docking_port/stationary/quaternary_dock = new(quaternary_docking_turf) quaternary_dock.dir = NORTH - quaternary_dock.name = "\improper Uncharted Space" + quaternary_dock.name = "[encounter_name] docking location #4" quaternary_dock.height = RESERVE_DOCK_MAX_SIZE_SHORT quaternary_dock.width = RESERVE_DOCK_MAX_SIZE_LONG quaternary_dock.dheight = 0 diff --git a/code/controllers/subsystem/pai.dm b/code/controllers/subsystem/pai.dm index ae8ca728e9ef..7c2bf71cad6a 100644 --- a/code/controllers/subsystem/pai.dm +++ b/code/controllers/subsystem/pai.dm @@ -147,7 +147,7 @@ SUBSYSTEM_DEF(pai) if(!(ROLE_PAI in G.client.prefs.be_special)) continue to_chat(G, "[user] is requesting a pAI personality! Use the pAI button to submit yourself as one.") - addtimer(CALLBACK(src, .proc/spam_again), spam_delay) + addtimer(CALLBACK(src, PROC_REF(spam_again)), spam_delay) var/list/available = list() for(var/datum/paiCandidate/c in SSpai.candidates) available.Add(check_ready(c)) diff --git a/code/controllers/subsystem/pathfinder.dm b/code/controllers/subsystem/pathfinder.dm index ccbea7930663..21ee7ea60b3c 100644 --- a/code/controllers/subsystem/pathfinder.dm +++ b/code/controllers/subsystem/pathfinder.dm @@ -31,7 +31,7 @@ SUBSYSTEM_DEF(pathfinder) while(flow[free]) CHECK_TICK free = (free % lcount) + 1 - var/t = addtimer(CALLBACK(src, /datum/flowcache.proc/toolong, free), 150, TIMER_STOPPABLE) + var/t = addtimer(CALLBACK(src, TYPE_PROC_REF(/datum/flowcache, toolong), free), 150, TIMER_STOPPABLE) flow[free] = t flow[t] = M return free diff --git a/code/controllers/subsystem/shuttle.dm b/code/controllers/subsystem/shuttle.dm index 9ec1ce5125b2..90e3f3a73cae 100644 --- a/code/controllers/subsystem/shuttle.dm +++ b/code/controllers/subsystem/shuttle.dm @@ -71,7 +71,7 @@ SUBSYSTEM_DEF(shuttle) /// Requests a bluespace jump, which, after jump_request_time deciseconds, will initiate a bluespace jump. /datum/controller/subsystem/shuttle/proc/request_jump(modifier = 1) jump_mode = BS_JUMP_CALLED - jump_timer = addtimer(CALLBACK(src, .proc/initiate_jump), jump_request_time * modifier, TIMER_STOPPABLE) + jump_timer = addtimer(CALLBACK(src, PROC_REF(initiate_jump)), jump_request_time * modifier, TIMER_STOPPABLE) priority_announce("Preparing for jump. ETD: [jump_request_time * modifier / (1 MINUTES)] minutes.", null, null, "Priority") /// Cancels a currently requested bluespace jump. Can only be done after the jump has been requested but before the jump has actually begun. diff --git a/code/controllers/subsystem/speech_controller.dm b/code/controllers/subsystem/speech_controller.dm index 96476127f410..e293c89a9bb6 100644 --- a/code/controllers/subsystem/speech_controller.dm +++ b/code/controllers/subsystem/speech_controller.dm @@ -1,54 +1,5 @@ -SUBSYSTEM_DEF(speech_controller) +/// verb_manager subsystem just for handling say's +VERB_MANAGER_SUBSYSTEM_DEF(speech_controller) name = "Speech Controller" wait = 1 - flags = SS_TICKER priority = FIRE_PRIORITY_SPEECH_CONTROLLER//has to be high priority, second in priority ONLY to SSinput - init_order = INIT_ORDER_SPEECH_CONTROLLER - runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY - - ///used so that an admin can force all speech verbs to execute immediately instead of queueing - var/FOR_ADMINS_IF_BROKE_immediately_execute_all_speech = FALSE - - ///list of the form: list(client mob, message that mob is queued to say, other say arguments (if any)). - ///this is our process queue, processed every tick. - var/list/queued_says_to_execute = list() - -///queues mob_to_queue into our process list so they say(message) near the start of the next tick -/datum/controller/subsystem/speech_controller/proc/queue_say_for_mob(mob/mob_to_queue, message, message_type) - - if(!TICK_CHECK || FOR_ADMINS_IF_BROKE_immediately_execute_all_speech) - process_single_say(mob_to_queue, message, message_type) - return TRUE - - queued_says_to_execute += list(list(mob_to_queue, message, message_type)) - - return TRUE - -/datum/controller/subsystem/speech_controller/fire(resumed) - - /// cache for sanic speed (lists are references anyways) - var/list/says_to_process = queued_says_to_execute.Copy() - queued_says_to_execute.Cut()//we should be going through the entire list every single iteration - - for(var/list/say_to_process as anything in says_to_process) - - var/mob/mob_to_speak = say_to_process[MOB_INDEX]//index 1 is the mob, 2 is the message, 3 is the message category - var/message = say_to_process[MESSAGE_INDEX] - var/message_category = say_to_process[CATEGORY_INDEX] - - process_single_say(mob_to_speak, message, message_category) - -///used in fire() to process a single mobs message through the relevant proc. -///only exists so that sleeps in the message pipeline dont cause the whole queue to wait -/datum/controller/subsystem/speech_controller/proc/process_single_say(mob/mob_to_speak, message, message_category) - set waitfor = FALSE - - switch(message_category) - if(SPEECH_CONTROLLER_QUEUE_SAY_VERB) - mob_to_speak.say(message) - - if(SPEECH_CONTROLLER_QUEUE_WHISPER_VERB) - mob_to_speak.whisper(message) - - if(SPEECH_CONTROLLER_QUEUE_EMOTE_VERB) - mob_to_speak.emote("me",1,message,TRUE) diff --git a/code/controllers/subsystem/statpanel.dm b/code/controllers/subsystem/statpanel.dm index ad13009760a0..ac505107d726 100644 --- a/code/controllers/subsystem/statpanel.dm +++ b/code/controllers/subsystem/statpanel.dm @@ -133,7 +133,7 @@ SUBSYSTEM_DEF(statpanels) if(length(turfitems) < 30) // only create images for the first 30 items on the turf, for performance reasons if(!(REF(turf_content) in cached_images)) cached_images += REF(turf_content) - turf_content.RegisterSignal(turf_content, COMSIG_PARENT_QDELETING, /atom/.proc/remove_from_cache) // we reset cache if anything in it gets deleted + turf_content.RegisterSignal(turf_content, COMSIG_PARENT_QDELETING, TYPE_PROC_REF(/atom, remove_from_cache)) // we reset cache if anything in it gets deleted if(ismob(turf_content) || length(turf_content.overlays) > 2) turfitems[++turfitems.len] = list("[turf_content.name]", REF(turf_content), costly_icon2html(turf_content, target, sourceonly=TRUE)) else @@ -153,17 +153,16 @@ SUBSYSTEM_DEF(statpanels) list("CPU:", world.cpu), list("Instances:", "[num2text(world.contents.len, 10)]"), list("World Time:", "[world.time]"), - list("Globals:", GLOB.stat_entry(), "\ref[GLOB]"), - list("[config]:", config.stat_entry(), "\ref[config]"), + list("Globals:", GLOB.stat_entry(), text_ref(GLOB)), + list("[config]:", config.stat_entry(), text_ref(config)), list("Byond:", "(FPS:[world.fps]) (TickCount:[world.time/world.tick_lag]) (TickDrift:[round(Master.tickdrift,1)]([round((Master.tickdrift/(world.time/world.tick_lag))*100,0.1)]%)) (Internal Tick Usage: [round(MAPTICK_LAST_INTERNAL_TICK_USAGE,0.1)]%)"), - list("Master Controller:", Master.stat_entry(), "\ref[Master]"), - list("Failsafe Controller:", Failsafe.stat_entry(), "\ref[Failsafe]"), + list("Master Controller:", Master.stat_entry(), text_ref(Master)), + list("Failsafe Controller:", Failsafe.stat_entry(), text_ref(Failsafe)), list("","") ) - for(var/ss in Master.subsystems) - var/datum/controller/subsystem/sub_system = ss - mc_data[++mc_data.len] = list("\[[sub_system.state_letter()]][sub_system.name]", sub_system.stat_entry(), "\ref[sub_system]") - mc_data[++mc_data.len] = list("Camera Net", "Cameras: [GLOB.cameranet.cameras.len] | Chunks: [GLOB.cameranet.chunks.len]", "\ref[GLOB.cameranet]") + for(var/datum/controller/subsystem/sub_system as anything in Master.subsystems) + mc_data[++mc_data.len] = list("\[[sub_system.state_letter()]][sub_system.name]", sub_system.stat_entry(), text_ref(sub_system)) + mc_data[++mc_data.len] = list("Camera Net", "Cameras: [GLOB.cameranet.cameras.len] | Chunks: [GLOB.cameranet.chunks.len]", text_ref(GLOB.cameranet)) mc_data_encoded = url_encode(json_encode(mc_data)) /atom/proc/remove_from_cache() diff --git a/code/controllers/subsystem/throwing.dm b/code/controllers/subsystem/throwing.dm index 78565227e014..0260e952d10d 100644 --- a/code/controllers/subsystem/throwing.dm +++ b/code/controllers/subsystem/throwing.dm @@ -74,7 +74,7 @@ SUBSYSTEM_DEF(throwing) /datum/thrownthing/New(thrownthing, target, target_turf, init_dir, maxrange, speed, thrower, diagonals_first, force, gentle, callback, target_zone) . = ..() src.thrownthing = thrownthing - RegisterSignal(thrownthing, COMSIG_PARENT_QDELETING, .proc/on_thrownthing_qdel) + RegisterSignal(thrownthing, COMSIG_PARENT_QDELETING, PROC_REF(on_thrownthing_qdel)) src.target = target src.target_turf = target_turf src.init_dir = init_dir diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index fabb64505899..1a5d2367c85a 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -508,7 +508,7 @@ SUBSYSTEM_DEF(ticker) var/mob/dead/new_player/player = i if(player.ready == PLAYER_READY_TO_OBSERVE && player.mind) //Break chain since this has a sleep input in it - addtimer(CALLBACK(player, /mob/dead/new_player.proc/make_me_an_observer), 1) + addtimer(CALLBACK(player, TYPE_PROC_REF(/mob/dead/new_player, make_me_an_observer)), 1) /datum/controller/subsystem/ticker/proc/load_mode() var/mode = trim(file2text("data/mode.txt")) diff --git a/code/controllers/subsystem/timer.dm b/code/controllers/subsystem/timer.dm index a37f7e1c0896..68092077d784 100644 --- a/code/controllers/subsystem/timer.dm +++ b/code/controllers/subsystem/timer.dm @@ -283,7 +283,7 @@ SUBSYSTEM_DEF(timer) return // Sort all timers by time to run - sortTim(alltimers, .proc/cmp_timer) + sortTim(alltimers, PROC_REF(cmp_timer)) // Get the earliest timer, and if the TTR is earlier than the current world.time, // then set the head offset appropriately to be the earliest time tracked by the @@ -511,8 +511,8 @@ SUBSYSTEM_DEF(timer) /datum/timedevent/proc/bucketJoin() // Generate debug-friendly name for timer var/static/list/bitfield_flags = list("TIMER_UNIQUE", "TIMER_OVERRIDE", "TIMER_CLIENT_TIME", "TIMER_STOPPABLE", "TIMER_NO_HASH_WAIT", "TIMER_LOOP") - name = "Timer: [id] (\ref[src]), TTR: [timeToRun], wait:[wait] Flags: [jointext(bitfield_to_list(flags, bitfield_flags), ", ")], \ - callBack: \ref[callBack], callBack.object: [callBack.object]\ref[callBack.object]([getcallingtype()]), \ + name = "Timer: [id] ([text_ref(src)]), TTR: [timeToRun], wait:[wait] Flags: [jointext(bitfield_to_list(flags, bitfield_flags), ", ")], \ + callBack: [text_ref(callBack)], callBack.object: [callBack.object][text_ref(callBack.object)]([getcallingtype()]), \ callBack.delegate:[callBack.delegate]([callBack.arguments ? callBack.arguments.Join(", ") : ""]), source: [source]" if (bucket_joined) diff --git a/code/controllers/subsystem/verb_manager.dm b/code/controllers/subsystem/verb_manager.dm new file mode 100644 index 000000000000..438916b5ae85 --- /dev/null +++ b/code/controllers/subsystem/verb_manager.dm @@ -0,0 +1,165 @@ +/** + * SSverb_manager, a subsystem that runs every tick and runs through its entire queue without yielding like SSinput. + * this exists because of how the byond tick works and where user inputted verbs are put within it. + * + * see TICK_ORDER.md for more info on how the byond tick is structured. + * + * The way the MC allots its time is via TICK_LIMIT_RUNNING, it simply subtracts the cost of SendMaps (MAPTICK_LAST_INTERNAL_TICK_USAGE) + * plus TICK_BYOND_RESERVE from the tick and uses up to that amount of time (minus the percentage of the tick used by the time it executes subsystems) + * on subsystems running cool things like atmospherics or Life or SSInput or whatever. + * + * Without this subsystem, verbs are likely to cause overtime if the MC uses all of the time it has alloted for itself in the tick, and SendMaps + * uses as much as its expected to, and an expensive verb ends up executing that tick. This is because the MC is completely blind to the cost of + * verbs, it can't account for it at all. The only chance for verbs to not cause overtime in a tick where the MC used as much of the tick + * as it alloted itself and where SendMaps costed as much as it was expected to is if the verb(s) take less than TICK_BYOND_RESERVE percent of + * the tick, which isnt much. Not to mention if SendMaps takes more than 30% of the tick and the MC forces itself to take at least 70% of the + * normal tick duration which causes ticks to naturally overrun even in the absence of verbs. + * + * With this subsystem, the MC can account for the cost of verbs and thus stop major overruns of ticks. This means that the most important subsystems + * like SSinput can start at the same time they were supposed to, leading to a smoother experience for the player since ticks arent riddled with + * minor hangs over and over again. + */ +SUBSYSTEM_DEF(verb_manager) + name = "Verb Manager" + wait = 1 + flags = SS_TICKER | SS_NO_INIT + priority = FIRE_PRIORITY_DELAYED_VERBS + runlevels = RUNLEVEL_INIT | RUNLEVELS_DEFAULT + + ///list of callbacks to procs called from verbs or verblike procs that were executed when the server was overloaded and had to delay to the next tick. + ///this list is ran through every tick, and the subsystem does not yield until this queue is finished. + var/list/datum/callback/verb_callback/verb_queue = list() + + ///running average of how many verb callbacks are executed every second. used for the stat entry + var/verbs_executed_per_second = 0 + + ///if TRUE we treat usr's with holders just like usr's without holders. otherwise they always execute immediately + var/can_queue_admin_verbs = FALSE + + ///if this is true all verbs immediately execute and dont queue. in case the mc is fucked or something + var/FOR_ADMINS_IF_VERBS_FUCKED_immediately_execute_all_verbs = FALSE + + ///used for subtypes to determine if they use their own stats for the stat entry + var/use_default_stats = TRUE + + ///if TRUE this will... message admins every time a verb is queued to this subsystem for the next tick with stats. + ///for obvious reasons dont make this be TRUE on the code level this is for admins to turn on + var/message_admins_on_queue = FALSE + + ///always queue if possible. overides can_queue_admin_verbs but not FOR_ADMINS_IF_VERBS_FUCKED_immediately_execute_all_verbs + var/always_queue = FALSE + +/** + * queue a callback for the given verb/verblike proc and any given arguments to the specified verb subsystem, so that they process in the next tick. + * intended to only work with verbs or verblike procs called directly from client input, use as part of TRY_QUEUE_VERB() and co. + * + * returns TRUE if the queuing was successful, FALSE otherwise. + */ +/proc/_queue_verb(datum/callback/verb_callback/incoming_callback, tick_check, datum/controller/subsystem/verb_manager/subsystem_to_use = SSverb_manager, ...) + if(QDELETED(incoming_callback)) + var/destroyed_string + if(!incoming_callback) + destroyed_string = "callback is null." + else + destroyed_string = "callback was deleted [DS2TICKS(world.time - incoming_callback.gc_destroyed)] ticks ago. callback was created [DS2TICKS(world.time) - incoming_callback.creation_time] ticks ago." + + stack_trace("_queue_verb() returned false because it was given a deleted callback! [destroyed_string]") + return FALSE + + if(!istext(incoming_callback.object) && QDELETED(incoming_callback.object)) //just in case the object is GLOBAL_PROC + var/destroyed_string + if(!incoming_callback.object) + destroyed_string = "callback.object is null." + else + destroyed_string = "callback.object was deleted [DS2TICKS(world.time - incoming_callback.object.gc_destroyed)] ticks ago. callback was created [DS2TICKS(world.time) - incoming_callback.creation_time] ticks ago." + + stack_trace("_queue_verb() returned false because it was given a callback acting on a qdeleted object! [destroyed_string]") + return FALSE + + //we want unit tests to be able to directly call verbs that attempt to queue, and since unit tests should test internal behavior, we want the queue + //to happen as if it was actually from player input if its called on a mob. +#ifdef UNIT_TESTS + if(QDELETED(usr) && ismob(incoming_callback.object)) + incoming_callback.user = WEAKREF(incoming_callback.object) + var/datum/callback/new_us = CALLBACK(arglist(list(GLOBAL_PROC, /proc/_queue_verb) + args.Copy())) + return world.push_usr(incoming_callback.object, new_us) +#endif + + //debatable whether this is needed, this is just to try and ensure that you dont use this to queue stuff that isnt from player input. + if(QDELETED(usr)) + stack_trace("_queue_verb() returned false because it wasnt called from player input!") + return FALSE + + if(!istype(subsystem_to_use)) + stack_trace("_queue_verb() returned false because it was given an invalid subsystem to queue for!") + return FALSE + + if((TICK_USAGE < tick_check) && !subsystem_to_use.always_queue) + return FALSE + + var/list/args_to_check = args.Copy() + args_to_check.Cut(2, 4)//cut out tick_check and subsystem_to_use + + //any subsystem can use the additional arguments to refuse queuing + if(!subsystem_to_use.can_queue_verb(arglist(args_to_check))) + return FALSE + + return subsystem_to_use.queue_verb(incoming_callback) + +/** + * subsystem-specific check for whether a callback can be queued. + * intended so that subsystem subtypes can verify whether + * + * subtypes may include additional arguments here if they need them! you just need to include them properly + * in TRY_QUEUE_VERB() and co. + */ +/datum/controller/subsystem/verb_manager/proc/can_queue_verb(datum/callback/verb_callback/incoming_callback) + if(always_queue && !FOR_ADMINS_IF_VERBS_FUCKED_immediately_execute_all_verbs) + return TRUE + + if((usr.client?.holder && !can_queue_admin_verbs) \ + || (!initialized && !(flags & SS_NO_INIT)) \ + || FOR_ADMINS_IF_VERBS_FUCKED_immediately_execute_all_verbs \ + || !(runlevels & Master.current_runlevel)) + return FALSE + + return TRUE + +/** + * queue a callback for the given proc, so that it is invoked in the next tick. + * intended to only work with verbs or verblike procs called directly from client input, use as part of TRY_QUEUE_VERB() + * + * returns TRUE if the queuing was successful, FALSE otherwise. + */ +/datum/controller/subsystem/verb_manager/proc/queue_verb(datum/callback/verb_callback/incoming_callback) + . = FALSE //errored + if(message_admins_on_queue) + message_admins("[name] verb queuing: tick usage: [TICK_USAGE]%, proc: [incoming_callback.delegate], object: [incoming_callback.object], usr: [usr]") + verb_queue += incoming_callback + return TRUE + +/datum/controller/subsystem/verb_manager/fire(resumed) + run_verb_queue() + +/// runs through all of this subsystems queue of verb callbacks. +/// goes through the entire verb queue without yielding. +/// used so you can flush the queue outside of fire() without interfering with anything else subtype subsystems might do in fire(). +/datum/controller/subsystem/verb_manager/proc/run_verb_queue() + var/executed_verbs = 0 + + for(var/datum/callback/verb_callback/verb_callback as anything in verb_queue) + if(!istype(verb_callback)) + stack_trace("non /datum/callback/verb_callback inside [name]'s verb_queue!") + continue + + verb_callback.InvokeAsync() + executed_verbs++ + + verb_queue.Cut() + verbs_executed_per_second = MC_AVG_SECONDS(verbs_executed_per_second, executed_verbs, wait SECONDS) + //note that wait SECONDS is incorrect if this is called outside of fire() but because byond is garbage i need to add a timer to rustg to find a valid solution + +/datum/controller/subsystem/verb_manager/stat_entry(msg) + . = ..() + if(use_default_stats) + . += "V/S: [round(verbs_executed_per_second, 0.01)]" diff --git a/code/controllers/subsystem/vis_overlays.dm b/code/controllers/subsystem/vis_overlays.dm index a4b0fccae437..6d134610f9f3 100644 --- a/code/controllers/subsystem/vis_overlays.dm +++ b/code/controllers/subsystem/vis_overlays.dm @@ -42,7 +42,7 @@ SUBSYSTEM_DEF(vis_overlays) else overlay = _create_new_vis_overlay(icon, iconstate, layer, plane, dir, alpha, add_appearance_flags) overlay.cache_expiration = -1 - var/cache_id = "\ref[overlay]@{[world.time]}" + var/cache_id = "[text_ref(overlay)]@{[world.time]}" vis_overlay_cache[cache_id] = overlay . = overlay if(overlay == null) diff --git a/code/datums/action.dm b/code/datums/action.dm index d96e43c08be2..ff03b689085d 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -31,7 +31,7 @@ /datum/action/proc/link_to(Target) target = Target - RegisterSignal(Target, COMSIG_ATOM_UPDATED_ICON, .proc/OnUpdatedIcon) + RegisterSignal(Target, COMSIG_ATOM_UPDATED_ICON, PROC_REF(OnUpdatedIcon)) /datum/action/Destroy() if(owner) @@ -47,7 +47,7 @@ return Remove(owner) owner = M - RegisterSignal(owner, COMSIG_PARENT_QDELETING, .proc/owner_deleted) + RegisterSignal(owner, COMSIG_PARENT_QDELETING, PROC_REF(owner_deleted)) //button id generation var/counter = 0 diff --git a/code/datums/aquarium.dm b/code/datums/aquarium.dm index 2bca6af8c26d..86551b9d25ce 100644 --- a/code/datums/aquarium.dm +++ b/code/datums/aquarium.dm @@ -68,7 +68,7 @@ src.animation_getter = animation_getter src.animation_update_signals = animation_update_signals if(animation_update_signals) - RegisterSignal(parent, animation_update_signals, .proc/generate_animation) + RegisterSignal(parent, animation_update_signals, PROC_REF(generate_animation)) if(istype(parent,/obj/item/fish)) InitializeFromFish() @@ -78,7 +78,7 @@ InitializeOther() ADD_TRAIT(parent, TRAIT_FISH_CASE_COMPATIBILE, src) - RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/enter_aquarium) + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(enter_aquarium)) //If component is added to something already in aquarium at the time initialize it properly. var/atom/movable/movable_parent = parent @@ -160,9 +160,9 @@ /datum/component/aquarium_content/proc/on_inserted(atom/aquarium) current_aquarium = aquarium - RegisterSignal(current_aquarium, COMSIG_ATOM_EXITED, .proc/on_removed) - RegisterSignal(current_aquarium, COMSIG_AQUARIUM_SURFACE_CHANGED, .proc/on_surface_changed) - RegisterSignal(current_aquarium, COMSIG_AQUARIUM_FLUID_CHANGED,.proc/on_fluid_changed) + RegisterSignal(current_aquarium, COMSIG_ATOM_EXITED, PROC_REF(on_removed)) + RegisterSignal(current_aquarium, COMSIG_AQUARIUM_SURFACE_CHANGED, PROC_REF(on_surface_changed)) + RegisterSignal(current_aquarium, COMSIG_AQUARIUM_FLUID_CHANGED, PROC_REF(on_fluid_changed)) if(processing) START_PROCESSING(SSobj, src) diff --git a/code/datums/beam.dm b/code/datums/beam.dm index 6e3ce4bb48ae..3044aacddfe7 100644 --- a/code/datums/beam.dm +++ b/code/datums/beam.dm @@ -69,8 +69,8 @@ visuals.emissive = emissive visuals.update_appearance() Draw() - RegisterSignal(origin, COMSIG_MOVABLE_MOVED, .proc/redrawing) - RegisterSignal(target, COMSIG_MOVABLE_MOVED, .proc/redrawing) + RegisterSignal(origin, COMSIG_MOVABLE_MOVED, PROC_REF(redrawing)) + RegisterSignal(target, COMSIG_MOVABLE_MOVED, PROC_REF(redrawing)) /** * Triggered by signals set up when the beam is set up. If it's still sane to create a beam, it removes the old beam, creates a new one. Otherwise it kills the beam. @@ -84,7 +84,7 @@ SIGNAL_HANDLER if(origin && target && get_dist(origin,target)[pick("You have a coughing fit!", "You can't stop coughing!")]") owner.Immobilize(20) owner.emote("cough") - addtimer(CALLBACK(owner, /mob/.proc/emote, "cough"), 6) - addtimer(CALLBACK(owner, /mob/.proc/emote, "cough"), 12) + addtimer(CALLBACK(owner, TYPE_PROC_REF(/mob, emote), "cough"), 6) + addtimer(CALLBACK(owner, TYPE_PROC_REF(/mob, emote), "cough"), 12) owner.emote("cough") ..() diff --git a/code/datums/brain_damage/phobia.dm b/code/datums/brain_damage/phobia.dm index c2446f882b60..00ecd3a49c48 100644 --- a/code/datums/brain_damage/phobia.dm +++ b/code/datums/brain_damage/phobia.dm @@ -83,7 +83,7 @@ if(HAS_TRAIT(owner, TRAIT_FEARLESS)) return if(trigger_regex.Find(hearing_args[HEARING_RAW_MESSAGE]) != 0) - addtimer(CALLBACK(src, .proc/freak_out, null, trigger_regex.group[2]), 10) //to react AFTER the chat message + addtimer(CALLBACK(src, PROC_REF(freak_out), null, trigger_regex.group[2]), 10) //to react AFTER the chat message hearing_args[HEARING_RAW_MESSAGE] = trigger_regex.Replace(hearing_args[HEARING_RAW_MESSAGE], "$2$3") /datum/brain_trauma/mild/phobia/handle_speech(datum/source, list/speech_args) diff --git a/code/datums/brain_damage/severe.dm b/code/datums/brain_damage/severe.dm index 4e7563c5fb81..979c43e8e13e 100644 --- a/code/datums/brain_damage/severe.dm +++ b/code/datums/brain_damage/severe.dm @@ -185,7 +185,7 @@ to_chat(owner, "You feel sick...") else to_chat(owner, "You feel really sick at the thought of being alone!") - addtimer(CALLBACK(owner, /mob/living/carbon.proc/vomit, high_stress), 50) //blood vomit if high stress + addtimer(CALLBACK(owner, TYPE_PROC_REF(/mob/living/carbon, vomit), high_stress), 50) //blood vomit if high stress if(2) if(!high_stress) to_chat(owner, "You can't stop shaking...") @@ -292,7 +292,7 @@ var/regex/reg = new("(\\b[REGEX_QUOTE(trigger_phrase)]\\b)","ig") if(findtext(hearing_args[HEARING_RAW_MESSAGE], reg)) - addtimer(CALLBACK(src, .proc/hypnotrigger), 10) //to react AFTER the chat message + addtimer(CALLBACK(src, PROC_REF(hypnotrigger)), 10) //to react AFTER the chat message hearing_args[HEARING_RAW_MESSAGE] = reg.Replace(hearing_args[HEARING_RAW_MESSAGE], "*********") /datum/brain_trauma/severe/hypnotic_trigger/proc/hypnotrigger() diff --git a/code/datums/brain_damage/special.dm b/code/datums/brain_damage/special.dm index 68dae74b1f8c..9c447f4ab10a 100644 --- a/code/datums/brain_damage/special.dm +++ b/code/datums/brain_damage/special.dm @@ -186,7 +186,7 @@ to_chat(owner, "Your connection to [linked_target] suddenly feels extremely strong... you can feel it pulling you!") owner.playsound_local(owner, 'sound/magic/lightning_chargeup.ogg', 75, FALSE) returning = TRUE - addtimer(CALLBACK(src, .proc/snapback), 100) + addtimer(CALLBACK(src, PROC_REF(snapback)), 100) /datum/brain_trauma/special/quantum_alignment/proc/snapback() returning = FALSE @@ -262,7 +262,7 @@ /datum/brain_trauma/special/death_whispers/proc/whispering() ADD_TRAIT(owner, TRAIT_SIXTHSENSE, TRAUMA_TRAIT) active = TRUE - addtimer(CALLBACK(src, .proc/cease_whispering), rand(50, 300)) + addtimer(CALLBACK(src, PROC_REF(cease_whispering)), rand(50, 300)) /datum/brain_trauma/special/death_whispers/proc/cease_whispering() REMOVE_TRAIT(owner, TRAIT_SIXTHSENSE, TRAUMA_TRAIT) @@ -306,7 +306,7 @@ var/atom/movable/AM = thing SEND_SIGNAL(AM, COMSIG_MOVABLE_SECLUDED_LOCATION) next_crisis = world.time + 600 - addtimer(CALLBACK(src, .proc/fade_in), duration) + addtimer(CALLBACK(src, PROC_REF(fade_in)), duration) /datum/brain_trauma/special/existential_crisis/proc/fade_in() QDEL_NULL(veil) diff --git a/code/datums/brain_damage/split_personality.dm b/code/datums/brain_damage/split_personality.dm index 78eb23a85b0b..ab391202a9d3 100644 --- a/code/datums/brain_damage/split_personality.dm +++ b/code/datums/brain_damage/split_personality.dm @@ -198,7 +198,7 @@ var/message = hearing_args[HEARING_RAW_MESSAGE] if(findtext(message, codeword)) hearing_args[HEARING_RAW_MESSAGE] = replacetext(message, codeword, "[codeword]") - addtimer(CALLBACK(src, /datum/brain_trauma/severe/split_personality.proc/switch_personalities), 10) + addtimer(CALLBACK(src, TYPE_PROC_REF(/datum/brain_trauma/severe/split_personality, switch_personalities)), 10) /datum/brain_trauma/severe/split_personality/brainwashing/handle_speech(datum/source, list/speech_args) if(findtext(speech_args[SPEECH_MESSAGE], codeword)) diff --git a/code/datums/browser.dm b/code/datums/browser.dm index c6d98adb0c0d..c1ce6f43e99b 100644 --- a/code/datums/browser.dm +++ b/code/datums/browser.dm @@ -17,7 +17,7 @@ /datum/browser/New(nuser, nwindow_id, ntitle = 0, nwidth = 0, nheight = 0, atom/nref = null) user = nuser - RegisterSignal(user, COMSIG_PARENT_QDELETING, .proc/user_deleted) + RegisterSignal(user, COMSIG_PARENT_QDELETING, PROC_REF(user_deleted)) window_id = nwindow_id if (ntitle) title = format_text(ntitle) @@ -236,7 +236,7 @@ winset(user, "mapwindow", "focus=true") break if (timeout) - addtimer(CALLBACK(src, .proc/close), timeout) + addtimer(CALLBACK(src, PROC_REF(close)), timeout) /datum/browser/modal/proc/wait() while (opentime && selectedbutton <= 0 && (!timeout || opentime+timeout > world.time)) diff --git a/code/datums/callback.dm b/code/datums/callback.dm index b5baea28f1f1..4fa2078f152b 100644 --- a/code/datums/callback.dm +++ b/code/datums/callback.dm @@ -37,14 +37,14 @@ * `CALLBACK(src, .some_proc_here)` * * ### when the above doesn't apply: - *.proc/procname + * PROC_REF(procname) * - * `CALLBACK(src, .proc/some_proc_here)` + * `CALLBACK(src, PROC_REF(some_proc_here))` * * * proc defined on a parent of a some type * - * `/some/type/.proc/some_proc_here` + * `TYPE_PROC_REF(/some/type, some_proc_here)` * * Otherwise you must always provide the full typepath of the proc (/type/of/thing/proc/procname) */ @@ -111,12 +111,18 @@ var/mob/M = W.resolve() if(M) if (length(args)) - return world.PushUsr(arglist(list(M, src) + args)) - return world.PushUsr(M, src) + return world.push_usr(arglist(list(M, src) + args)) + return world.push_usr(M, src) if (!object) return +#if DM_VERSION <= 514 + if(istext(object) && object != GLOBAL_PROC) + to_chat(usr, "[object] may be an external library. Calling external libraries is disallowed.", confidential = TRUE) + return +#endif + var/list/calling_arguments = arguments if (length(args)) if (length(arguments)) @@ -146,12 +152,18 @@ var/mob/M = W.resolve() if(M) if (length(args)) - return world.PushUsr(arglist(list(M, src) + args)) - return world.PushUsr(M, src) + return world.push_usr(arglist(list(M, src) + args)) + return world.push_usr(M, src) if (!object) return +#if DM_VERSION <= 514 + if(istext(object) && object != GLOBAL_PROC) + to_chat(usr, "[object] may be an external library. Calling external libraries is disallowed.", confidential = TRUE) + return +#endif + var/list/calling_arguments = arguments if (length(args)) if (length(arguments)) diff --git a/code/datums/chatmessage.dm b/code/datums/chatmessage.dm index 0b4b33ce5942..c27e0bd1b7ae 100644 --- a/code/datums/chatmessage.dm +++ b/code/datums/chatmessage.dm @@ -65,7 +65,7 @@ stack_trace("/datum/chatmessage created with [isnull(owner) ? "null" : "invalid"] mob owner") qdel(src) return - INVOKE_ASYNC(src, .proc/generate_image, text, target, owner, extra_classes, lifespan) + INVOKE_ASYNC(src, PROC_REF(generate_image), text, target, owner, extra_classes, lifespan) /datum/chatmessage/Destroy() if (owned_by) @@ -99,7 +99,7 @@ /datum/chatmessage/proc/generate_image(text, atom/target, mob/owner, list/extra_classes, lifespan) // Register client who owns this message owned_by = owner.client - RegisterSignal(owned_by, COMSIG_PARENT_QDELETING, .proc/on_parent_qdel) + RegisterSignal(owned_by, COMSIG_PARENT_QDELETING, PROC_REF(on_parent_qdel)) // Clip message var/maxlen = owned_by.prefs.max_chat_length diff --git a/code/datums/cinematic.dm b/code/datums/cinematic.dm index 883e9fb99dee..c36fb3961664 100644 --- a/code/datums/cinematic.dm +++ b/code/datums/cinematic.dm @@ -66,7 +66,7 @@ //We are now playing this cinematic //Handle what happens when a different cinematic tries to play over us - RegisterSignal(SSdcs, COMSIG_GLOB_PLAY_CINEMATIC, .proc/replacement_cinematic) + RegisterSignal(SSdcs, COMSIG_GLOB_PLAY_CINEMATIC, PROC_REF(replacement_cinematic)) //Pause OOC var/ooc_toggled = FALSE @@ -78,7 +78,7 @@ for(var/MM in watchers) var/mob/M = MM show_to(M, M.client) - RegisterSignal(M, COMSIG_MOB_CLIENT_LOGIN, .proc/show_to) + RegisterSignal(M, COMSIG_MOB_CLIENT_LOGIN, PROC_REF(show_to)) //Close watcher ui's SStgui.close_user_uis(M) diff --git a/code/datums/components/admin_popup.dm b/code/datums/components/admin_popup.dm index 65b97e09b1a2..88ef0d97fabf 100644 --- a/code/datums/components/admin_popup.dm +++ b/code/datums/components/admin_popup.dm @@ -23,7 +23,7 @@ COMSIG_ADMIN_HELP_REPLIED, COMSIG_PARENT_QDELETING, ), - .proc/delete_self, + PROC_REF(delete_self), ) /datum/component/admin_popup/Destroy(force, silent) diff --git a/code/datums/components/anti_magic.dm b/code/datums/components/anti_magic.dm index eede283e8b81..7cdb1db8f152 100644 --- a/code/datums/components/anti_magic.dm +++ b/code/datums/components/anti_magic.dm @@ -10,10 +10,10 @@ /datum/component/anti_magic/Initialize(_magic = FALSE, _holy = FALSE, _psychic = FALSE, _allowed_slots, _charges, _blocks_self = TRUE, datum/callback/_reaction, datum/callback/_expire) if(isitem(parent)) - RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/on_equip) - RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/on_drop) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equip)) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_drop)) else if(ismob(parent)) - RegisterSignal(parent, COMSIG_MOB_RECEIVE_MAGIC, .proc/protect) + RegisterSignal(parent, COMSIG_MOB_RECEIVE_MAGIC, PROC_REF(protect)) else return COMPONENT_INCOMPATIBLE @@ -34,7 +34,7 @@ if(!(allowed_slots & slot)) //Check that the slot is valid for antimagic UnregisterSignal(equipper, COMSIG_MOB_RECEIVE_MAGIC) return - RegisterSignal(equipper, COMSIG_MOB_RECEIVE_MAGIC, .proc/protect, TRUE) + RegisterSignal(equipper, COMSIG_MOB_RECEIVE_MAGIC, PROC_REF(protect), TRUE) /datum/component/anti_magic/proc/on_drop(datum/source, mob/user) SIGNAL_HANDLER diff --git a/code/datums/components/aquarium.dm b/code/datums/components/aquarium.dm index 2bca6af8c26d..86551b9d25ce 100644 --- a/code/datums/components/aquarium.dm +++ b/code/datums/components/aquarium.dm @@ -68,7 +68,7 @@ src.animation_getter = animation_getter src.animation_update_signals = animation_update_signals if(animation_update_signals) - RegisterSignal(parent, animation_update_signals, .proc/generate_animation) + RegisterSignal(parent, animation_update_signals, PROC_REF(generate_animation)) if(istype(parent,/obj/item/fish)) InitializeFromFish() @@ -78,7 +78,7 @@ InitializeOther() ADD_TRAIT(parent, TRAIT_FISH_CASE_COMPATIBILE, src) - RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/enter_aquarium) + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(enter_aquarium)) //If component is added to something already in aquarium at the time initialize it properly. var/atom/movable/movable_parent = parent @@ -160,9 +160,9 @@ /datum/component/aquarium_content/proc/on_inserted(atom/aquarium) current_aquarium = aquarium - RegisterSignal(current_aquarium, COMSIG_ATOM_EXITED, .proc/on_removed) - RegisterSignal(current_aquarium, COMSIG_AQUARIUM_SURFACE_CHANGED, .proc/on_surface_changed) - RegisterSignal(current_aquarium, COMSIG_AQUARIUM_FLUID_CHANGED,.proc/on_fluid_changed) + RegisterSignal(current_aquarium, COMSIG_ATOM_EXITED, PROC_REF(on_removed)) + RegisterSignal(current_aquarium, COMSIG_AQUARIUM_SURFACE_CHANGED, PROC_REF(on_surface_changed)) + RegisterSignal(current_aquarium, COMSIG_AQUARIUM_FLUID_CHANGED, PROC_REF(on_fluid_changed)) if(processing) START_PROCESSING(SSobj, src) diff --git a/code/datums/components/archaeology.dm b/code/datums/components/archaeology.dm index 3be37b94db69..c4f0d7dc3d59 100644 --- a/code/datums/components/archaeology.dm +++ b/code/datums/components/archaeology.dm @@ -15,9 +15,9 @@ archdrops[i][ARCH_PROB] = 100 stack_trace("ARCHAEOLOGY WARNING: [parent] contained a null probability value in [i].") callback = _callback - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY,.proc/Dig) - RegisterSignal(parent, COMSIG_ATOM_EX_ACT, .proc/BombDig) - RegisterSignal(parent, COMSIG_ATOM_SING_PULL, .proc/SingDig) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(Dig)) + RegisterSignal(parent, COMSIG_ATOM_EX_ACT, PROC_REF(BombDig)) + RegisterSignal(parent, COMSIG_ATOM_SING_PULL, PROC_REF(SingDig)) /datum/component/archaeology/InheritComponent(datum/component/archaeology/A, i_am_original) var/list/other_archdrops = A.archdrops diff --git a/code/datums/components/armor_plate.dm b/code/datums/components/armor_plate.dm index 49f79930352c..d90da9ee24a3 100644 --- a/code/datums/components/armor_plate.dm +++ b/code/datums/components/armor_plate.dm @@ -9,11 +9,11 @@ if(!isobj(parent)) return COMPONENT_INCOMPATIBLE - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/examine) - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/applyplate) - RegisterSignal(parent, COMSIG_PARENT_PREQDELETED, .proc/dropplates) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(examine)) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(applyplate)) + RegisterSignal(parent, COMSIG_PARENT_PREQDELETED, PROC_REF(dropplates)) if(istype(parent, /obj/mecha/working/ripley)) - RegisterSignal(parent, COMSIG_ATOM_UPDATE_OVERLAYS, .proc/apply_mech_overlays) + RegisterSignal(parent, COMSIG_ATOM_UPDATE_OVERLAYS, PROC_REF(apply_mech_overlays)) if(_maxamount) maxamount = _maxamount diff --git a/code/datums/components/art.dm b/code/datums/components/art.dm index 13249a19e736..3ed27f8297f9 100644 --- a/code/datums/components/art.dm +++ b/code/datums/components/art.dm @@ -4,13 +4,13 @@ /datum/component/art/Initialize(impress) impressiveness = impress if(isobj(parent)) - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/on_obj_examine) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(on_obj_examine)) else - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/on_other_examine) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(on_other_examine)) if(isstructure(parent)) - RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND, .proc/on_attack_hand) + RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND, PROC_REF(on_attack_hand)) if(isitem(parent)) - RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, .proc/apply_moodlet) + RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, PROC_REF(apply_moodlet)) /datum/component/art/proc/apply_moodlet(mob/M, impress) SIGNAL_HANDLER @@ -43,7 +43,7 @@ /datum/component/art/proc/on_attack_hand(datum/source, mob/M) SIGNAL_HANDLER - INVOKE_ASYNC(src, .proc/examine, source, M) + INVOKE_ASYNC(src, PROC_REF(examine), source, M) /datum/component/art/proc/examine(datum/source, mob/M) diff --git a/code/datums/components/bane.dm b/code/datums/components/bane.dm index 4ac2c77525a6..8d7c7a08a65f 100644 --- a/code/datums/components/bane.dm +++ b/code/datums/components/bane.dm @@ -20,9 +20,9 @@ /datum/component/bane/RegisterWithParent() if(speciestype) - RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, .proc/speciesCheck) + RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, PROC_REF(speciesCheck)) else - RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, .proc/mobCheck) + RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, PROC_REF(mobCheck)) /datum/component/bane/UnregisterFromParent() UnregisterSignal(parent, COMSIG_ITEM_AFTERATTACK) diff --git a/code/datums/components/beauty.dm b/code/datums/components/beauty.dm index 9b3398b4ce96..fe3c06e3ad5a 100644 --- a/code/datums/components/beauty.dm +++ b/code/datums/components/beauty.dm @@ -8,8 +8,8 @@ beauty = beautyamount if(ismovable(parent)) - RegisterSignal(parent, COMSIG_ENTER_AREA, .proc/enter_area) - RegisterSignal(parent, COMSIG_EXIT_AREA, .proc/exit_area) + RegisterSignal(parent, COMSIG_ENTER_AREA, PROC_REF(enter_area)) + RegisterSignal(parent, COMSIG_EXIT_AREA, PROC_REF(exit_area)) var/area/A = get_area(parent) if(A) diff --git a/code/datums/components/beetlejuice.dm b/code/datums/components/beetlejuice.dm index c8b4b53c26ba..1b7bc8b3afc9 100644 --- a/code/datums/components/beetlejuice.dm +++ b/code/datums/components/beetlejuice.dm @@ -23,7 +23,7 @@ keyword = M.real_name update_regex() - RegisterSignal(SSdcs, COMSIG_GLOB_LIVING_SAY_SPECIAL, .proc/say_react) + RegisterSignal(SSdcs, COMSIG_GLOB_LIVING_SAY_SPECIAL, PROC_REF(say_react)) /datum/component/beetlejuice/proc/update_regex() R = regex("[REGEX_QUOTE(keyword)]","g[case_sensitive ? "" : "i"]") diff --git a/code/datums/components/bloodysoles.dm b/code/datums/components/bloodysoles.dm index 5f16085b7927..03afc96182dc 100644 --- a/code/datums/components/bloodysoles.dm +++ b/code/datums/components/bloodysoles.dm @@ -26,9 +26,9 @@ return COMPONENT_INCOMPATIBLE parent_atom = parent - RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/on_equip) - RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/on_drop) - RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, .proc/on_clean) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equip)) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_drop)) + RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(on_clean)) //Unregisters from the wielder if necessary @@ -96,8 +96,8 @@ Used to register our wielder equipped_slot = slot wielder = equipper - RegisterSignal(wielder, COMSIG_MOVABLE_MOVED, .proc/on_moved) - RegisterSignal(wielder, COMSIG_STEP_ON_BLOOD, .proc/on_step_blood) + RegisterSignal(wielder, COMSIG_MOVABLE_MOVED, PROC_REF(on_moved)) + RegisterSignal(wielder, COMSIG_STEP_ON_BLOOD, PROC_REF(on_step_blood)) /* Called when the parent item has been dropped @@ -224,11 +224,11 @@ Like its parent but can be applied to carbon mobs instead of clothing items if(!bloody_feet) bloody_feet = mutable_appearance('icons/effects/blood.dmi', "shoeblood", SHOES_LAYER) - RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, .proc/on_clean) - RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/on_moved) - RegisterSignal(parent, COMSIG_STEP_ON_BLOOD, .proc/on_step_blood) - RegisterSignal(parent, COMSIG_CARBON_UNEQUIP_SHOECOVER, .proc/unequip_shoecover) - RegisterSignal(parent, COMSIG_CARBON_EQUIP_SHOECOVER, .proc/equip_shoecover) + RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(on_clean)) + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(on_moved)) + RegisterSignal(parent, COMSIG_STEP_ON_BLOOD, PROC_REF(on_step_blood)) + RegisterSignal(parent, COMSIG_CARBON_UNEQUIP_SHOECOVER, PROC_REF(unequip_shoecover)) + RegisterSignal(parent, COMSIG_CARBON_EQUIP_SHOECOVER, PROC_REF(equip_shoecover)) /datum/component/bloodysoles/feet/update_icon() . = list() diff --git a/code/datums/components/butchering.dm b/code/datums/components/butchering.dm index 9195d425b342..6923760a7705 100644 --- a/code/datums/components/butchering.dm +++ b/code/datums/components/butchering.dm @@ -26,7 +26,7 @@ if(_can_be_blunt) can_be_blunt = _can_be_blunt if(isitem(parent)) - RegisterSignal(parent, COMSIG_ITEM_ATTACK, .proc/onItemAttack) + RegisterSignal(parent, COMSIG_ITEM_ATTACK, PROC_REF(onItemAttack)) /datum/component/butchering/proc/onItemAttack(obj/item/source, mob/living/M, mob/living/user) SIGNAL_HANDLER @@ -35,7 +35,7 @@ return if(M.stat == DEAD && (M.butcher_results || M.guaranteed_butcher_results)) //can we butcher it? if(butchering_enabled && (can_be_blunt || source.get_sharpness())) - INVOKE_ASYNC(src, .proc/startButcher, source, M, user) + INVOKE_ASYNC(src, PROC_REF(startButcher), source, M, user) return COMPONENT_ITEM_NO_ATTACK if(ishuman(M) && source.force && source.get_sharpness()) @@ -45,7 +45,7 @@ user.show_message("[H]'s neck has already been already cut, you can't make the bleeding any worse!", MSG_VISUAL, \ "Their neck has already been already cut, you can't make the bleeding any worse!") return COMPONENT_ITEM_NO_ATTACK - INVOKE_ASYNC(src, .proc/startNeckSlice, source, H, user) + INVOKE_ASYNC(src, PROC_REF(startNeckSlice), source, H, user) return COMPONENT_ITEM_NO_ATTACK /datum/component/butchering/proc/startButcher(obj/item/source, mob/living/M, mob/living/user) @@ -122,7 +122,7 @@ return var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddComponent(/datum/component/connect_loc_behalf, parent, loc_connections) diff --git a/code/datums/components/caltrop.dm b/code/datums/components/caltrop.dm index aac5f65a3956..33706c7c6d68 100644 --- a/code/datums/components/caltrop.dm +++ b/code/datums/components/caltrop.dm @@ -8,7 +8,7 @@ ///given to connect_loc to listen for something moving over target var/static/list/crossed_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) /datum/component/caltrop/Initialize(_min_damage = 0, _max_damage = 0, _probability = 100, _flags = NONE) @@ -24,7 +24,7 @@ if(ismovable(parent)) AddComponent(/datum/component/connect_loc_behalf, parent, crossed_connections) else - RegisterSignal(get_turf(parent), COMSIG_ATOM_ENTERED, .proc/on_entered) + RegisterSignal(get_turf(parent), COMSIG_ATOM_ENTERED, PROC_REF(on_entered)) // Inherit the new values passed to the component /datum/component/caltrop/InheritComponent(datum/component/caltrop/new_comp, original, min_damage, max_damage, probability, flags, soundfile) diff --git a/code/datums/components/chasm.dm b/code/datums/components/chasm.dm index dfb3bafbfb0e..f18002a05bd3 100644 --- a/code/datums/components/chasm.dm +++ b/code/datums/components/chasm.dm @@ -27,7 +27,7 @@ )) /datum/component/chasm/Initialize(turf/target) - RegisterSignal(parent, COMSIG_ATOM_ENTERED, .proc/Entered) + RegisterSignal(parent, COMSIG_ATOM_ENTERED, PROC_REF(Entered)) target_turf = target START_PROCESSING(SSobj, src) // process on create, in case stuff is still there @@ -61,7 +61,7 @@ for (var/thing in to_check) if (droppable(thing)) . = TRUE - INVOKE_ASYNC(src, .proc/drop, thing) + INVOKE_ASYNC(src, PROC_REF(drop), thing) /datum/component/chasm/proc/droppable(atom/movable/AM) var/datum/weakref/falling_ref = WEAKREF(AM) diff --git a/code/datums/components/connect_containers.dm b/code/datums/components/connect_containers.dm index d8a3ac8fbd3e..fe957e3b94a3 100644 --- a/code/datums/components/connect_containers.dm +++ b/code/datums/components/connect_containers.dm @@ -37,8 +37,8 @@ tracked = new_tracked if(!tracked) return - RegisterSignal(tracked, COMSIG_MOVABLE_MOVED, .proc/on_moved) - RegisterSignal(tracked, COMSIG_PARENT_QDELETING, .proc/handle_tracked_qdel) + RegisterSignal(tracked, COMSIG_MOVABLE_MOVED, PROC_REF(on_moved)) + RegisterSignal(tracked, COMSIG_PARENT_QDELETING, PROC_REF(handle_tracked_qdel)) update_signals(tracked) /datum/component/connect_containers/proc/handle_tracked_qdel() @@ -50,7 +50,7 @@ return for(var/atom/movable/container as anything in get_nested_locs(listener)) - RegisterSignal(container, COMSIG_MOVABLE_MOVED, .proc/on_moved) + RegisterSignal(container, COMSIG_MOVABLE_MOVED, PROC_REF(on_moved)) for(var/signal in connections) parent.RegisterSignal(container, signal, connections[signal]) diff --git a/code/datums/components/connect_loc_behalf.dm b/code/datums/components/connect_loc_behalf.dm index b758b6ad5f32..297227e2aedd 100644 --- a/code/datums/components/connect_loc_behalf.dm +++ b/code/datums/components/connect_loc_behalf.dm @@ -20,8 +20,8 @@ src.tracked = tracked /datum/component/connect_loc_behalf/RegisterWithParent() - RegisterSignal(tracked, COMSIG_MOVABLE_MOVED, .proc/on_moved) - RegisterSignal(tracked, COMSIG_PARENT_QDELETING, .proc/handle_tracked_qdel) + RegisterSignal(tracked, COMSIG_MOVABLE_MOVED, PROC_REF(on_moved)) + RegisterSignal(tracked, COMSIG_PARENT_QDELETING, PROC_REF(handle_tracked_qdel)) update_signals() /datum/component/connect_loc_behalf/UnregisterFromParent() diff --git a/code/datums/components/connect_range.dm b/code/datums/components/connect_range.dm index 5642b2ed4e2d..093841833d8c 100644 --- a/code/datums/components/connect_range.dm +++ b/code/datums/components/connect_range.dm @@ -58,8 +58,8 @@ if(!tracked) return //Register signals on the new tracked atom and its surroundings. - RegisterSignal(tracked, COMSIG_MOVABLE_MOVED, .proc/on_moved) - RegisterSignal(tracked, COMSIG_PARENT_QDELETING, .proc/handle_tracked_qdel) + RegisterSignal(tracked, COMSIG_MOVABLE_MOVED, PROC_REF(on_moved)) + RegisterSignal(tracked, COMSIG_PARENT_QDELETING, PROC_REF(handle_tracked_qdel)) update_signals(tracked) /datum/component/connect_range/proc/handle_tracked_qdel() @@ -79,7 +79,7 @@ return //Keep track of possible movement of all movables the target is in. for(var/atom/movable/container as anything in get_nested_locs(target)) - RegisterSignal(container, COMSIG_MOVABLE_MOVED, .proc/on_moved) + RegisterSignal(container, COMSIG_MOVABLE_MOVED, PROC_REF(on_moved)) if(on_same_turf && !forced) return diff --git a/code/datums/components/construction.dm b/code/datums/components/construction.dm index ad1392c116d5..640aea796518 100644 --- a/code/datums/components/construction.dm +++ b/code/datums/components/construction.dm @@ -15,8 +15,8 @@ if(!isatom(parent)) return COMPONENT_INCOMPATIBLE - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/examine) - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY,.proc/action) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(examine)) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(action)) update_parent(index) /datum/component/construction/proc/examine(datum/source, mob/user, list/examine_list) @@ -34,7 +34,7 @@ /datum/component/construction/proc/action(datum/source, obj/item/I, mob/living/user) SIGNAL_HANDLER - INVOKE_ASYNC(src, .proc/check_step, I, user) + INVOKE_ASYNC(src, PROC_REF(check_step), I, user) /datum/component/construction/proc/update_index(diff) index += diff diff --git a/code/datums/components/crafting/crafting.dm b/code/datums/components/crafting/crafting.dm index a804ec657526..df5ae1319c2e 100644 --- a/code/datums/components/crafting/crafting.dm +++ b/code/datums/components/crafting/crafting.dm @@ -1,6 +1,6 @@ /datum/component/personal_crafting/Initialize() if(ismob(parent)) - RegisterSignal(parent, COMSIG_MOB_CLIENT_LOGIN, .proc/create_mob_button) + RegisterSignal(parent, COMSIG_MOB_CLIENT_LOGIN, PROC_REF(create_mob_button)) /datum/component/personal_crafting/proc/create_mob_button(mob/user, client/CL) SIGNAL_HANDLER @@ -10,7 +10,7 @@ C.icon = H.ui_style H.static_inventory += C CL.screen += C - RegisterSignal(C, COMSIG_CLICK, .proc/component_ui_interact) + RegisterSignal(C, COMSIG_CLICK, PROC_REF(component_ui_interact)) /datum/component/personal_crafting var/busy @@ -318,7 +318,7 @@ SIGNAL_HANDLER if(user == parent) - INVOKE_ASYNC(src, .proc/ui_interact, user) + INVOKE_ASYNC(src, PROC_REF(ui_interact), user) /datum/component/personal_crafting/ui_state(mob/user) return GLOB.not_incapacitated_turf_state diff --git a/code/datums/components/crafting/recipes.dm b/code/datums/components/crafting/recipes.dm index 96a013df406a..fed83f681242 100644 --- a/code/datums/components/crafting/recipes.dm +++ b/code/datums/components/crafting/recipes.dm @@ -1164,9 +1164,23 @@ /datum/crafting_recipe/breakawayflask name = "Breakaway Flask" - result = /obj/item/reagent_containers/food/drinks/drinkingglass/breakawayflask + result = /obj/item/reagent_containers/food/drinks/breakawayflask time = 5 SECONDS reqs = list(/obj/item/stack/sheet/glass = 5, /obj/item/stack/sheet/mineral/plasma = 1) tools = list(TOOL_WELDER) category = CAT_MISC + +/datum/crafting_recipe/fermenting_barrel + name = "Wooden Barrel" + result = /obj/structure/fermenting_barrel + reqs = list(/obj/item/stack/sheet/mineral/wood = 8) + time = 50 + category = CAT_PRIMAL + +/datum/crafting_recipe/distiller + name = "Distiller" + result = /obj/structure/fermenting_barrel/distiller + reqs = list(/obj/item/stack/sheet/mineral/wood = 8, /obj/item/stack/sheet/metal = 5, /datum/reagent/srm_bacteria = 30) + time = 50 + category = CAT_PRIMAL diff --git a/code/datums/components/creamed.dm b/code/datums/components/creamed.dm index fcd1f1b8cc74..019bb7362bd2 100644 --- a/code/datums/components/creamed.dm +++ b/code/datums/components/creamed.dm @@ -51,7 +51,7 @@ GLOBAL_LIST_INIT(creamable, typecacheof(list( RegisterSignal(parent, list( COMSIG_COMPONENT_CLEAN_ACT, COMSIG_COMPONENT_CLEAN_FACE_ACT), - .proc/clean_up) + PROC_REF(clean_up)) /datum/component/creamed/UnregisterFromParent() UnregisterSignal(parent, list( diff --git a/code/datums/components/deadchat_control.dm b/code/datums/components/deadchat_control.dm index e48651ea7d86..f34960db1072 100644 --- a/code/datums/components/deadchat_control.dm +++ b/code/datums/components/deadchat_control.dm @@ -14,13 +14,13 @@ /datum/component/deadchat_control/Initialize(_deadchat_mode, _inputs, _input_cooldown = 12 SECONDS) if(!isatom(parent)) return COMPONENT_INCOMPATIBLE - RegisterSignal(parent, COMSIG_ATOM_ORBIT_BEGIN, .proc/orbit_begin) - RegisterSignal(parent, COMSIG_ATOM_ORBIT_STOP, .proc/orbit_stop) + RegisterSignal(parent, COMSIG_ATOM_ORBIT_BEGIN, PROC_REF(orbit_begin)) + RegisterSignal(parent, COMSIG_ATOM_ORBIT_STOP, PROC_REF(orbit_stop)) deadchat_mode = _deadchat_mode inputs = _inputs input_cooldown = _input_cooldown if(deadchat_mode == DEMOCRACY_MODE) - timerid = addtimer(CALLBACK(src, .proc/democracy_loop), input_cooldown, TIMER_STOPPABLE | TIMER_LOOP) + timerid = addtimer(CALLBACK(src, PROC_REF(democracy_loop)), input_cooldown, TIMER_STOPPABLE | TIMER_LOOP) notify_ghosts("[parent] is now deadchat controllable!", source = parent, action = NOTIFY_ORBIT, header="Something Interesting!") @@ -42,7 +42,7 @@ return MOB_DEADSAY_SIGNAL_INTERCEPT inputs[message].Invoke() ckey_to_cooldown[source.ckey] = TRUE - addtimer(CALLBACK(src, .proc/remove_cooldown, source.ckey), input_cooldown) + addtimer(CALLBACK(src, PROC_REF(remove_cooldown), source.ckey), input_cooldown) else if(deadchat_mode == DEMOCRACY_MODE) ckey_to_cooldown[source.ckey] = message return MOB_DEADSAY_SIGNAL_INTERCEPT @@ -94,14 +94,14 @@ return ckey_to_cooldown = list() if(var_value == DEMOCRACY_MODE) - timerid = addtimer(CALLBACK(src, .proc/democracy_loop), input_cooldown, TIMER_STOPPABLE | TIMER_LOOP) + timerid = addtimer(CALLBACK(src, PROC_REF(democracy_loop)), input_cooldown, TIMER_STOPPABLE | TIMER_LOOP) else deltimer(timerid) /datum/component/deadchat_control/proc/orbit_begin(atom/source, atom/orbiter) SIGNAL_HANDLER - RegisterSignal(orbiter, COMSIG_MOB_DEADSAY, .proc/deadchat_react) + RegisterSignal(orbiter, COMSIG_MOB_DEADSAY, PROC_REF(deadchat_react)) orbiters |= orbiter /datum/component/deadchat_control/proc/orbit_stop(atom/source, atom/orbiter) diff --git a/code/datums/components/dejavu.dm b/code/datums/components/dejavu.dm index 19e41148d3bd..b2a2cddf9c9b 100644 --- a/code/datums/components/dejavu.dm +++ b/code/datums/components/dejavu.dm @@ -42,22 +42,22 @@ tox_loss = L.getToxLoss() oxy_loss = L.getOxyLoss() brain_loss = L.getOrganLoss(ORGAN_SLOT_BRAIN) - rewind_type = .proc/rewind_living + rewind_type = PROC_REF(rewind_living) if(iscarbon(parent)) var/mob/living/carbon/C = parent saved_bodyparts = C.save_bodyparts() - rewind_type = .proc/rewind_carbon + rewind_type = PROC_REF(rewind_carbon) else if(isanimal(parent)) var/mob/living/simple_animal/M = parent brute_loss = M.bruteloss - rewind_type = .proc/rewind_animal + rewind_type = PROC_REF(rewind_animal) else if(isobj(parent)) var/obj/O = parent integrity = O.obj_integrity - rewind_type = .proc/rewind_obj + rewind_type = PROC_REF(rewind_obj) addtimer(CALLBACK(src, rewind_type), rewind_interval) diff --git a/code/datums/components/deployable.dm b/code/datums/components/deployable.dm index efb19f9246af..0e38fa84e236 100644 --- a/code/datums/components/deployable.dm +++ b/code/datums/components/deployable.dm @@ -27,8 +27,8 @@ src.thing_to_be_deployed = thing_to_be_deployed src.delete_on_use = delete_on_use - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/examine) - RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, .proc/on_attack_hand) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(examine)) + RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, PROC_REF(on_attack_hand)) var/obj/item/typecast = thing_to_be_deployed deployed_name = initial(typecast.name) @@ -40,7 +40,7 @@ /datum/component/deployable/proc/on_attack_hand(datum/source, mob/user, location, direction) SIGNAL_HANDLER - INVOKE_ASYNC(src, .proc/deploy, source, user, location, direction) + INVOKE_ASYNC(src, PROC_REF(deploy), source, user, location, direction) /datum/component/deployable/proc/deploy(obj/source, mob/user, location, direction) //If there's no user, location and direction are used var/obj/deployed_object //Used for spawning the deployed object diff --git a/code/datums/components/dooropendeathproc.dm b/code/datums/components/dooropendeathproc.dm index cda6a31f270d..0f90bf623aac 100644 --- a/code/datums/components/dooropendeathproc.dm +++ b/code/datums/components/dooropendeathproc.dm @@ -11,7 +11,7 @@ src.door_id = door_id /datum/component/poddoor_on_death/RegisterWithParent() - RegisterSignal(parent, COMSIG_MOB_DEATH, .proc/open_doors) + RegisterSignal(parent, COMSIG_MOB_DEATH, PROC_REF(open_doors)) /datum/component/poddoor_on_death/proc/open_doors() for(var/obj/machinery/door/poddoor/D in GLOB.machines) diff --git a/code/datums/components/earprotection.dm b/code/datums/components/earprotection.dm index 9256c4310a70..6439e49b831f 100644 --- a/code/datums/components/earprotection.dm +++ b/code/datums/components/earprotection.dm @@ -1,7 +1,7 @@ /datum/component/wearertargeting/earprotection signals = list(COMSIG_CARBON_SOUNDBANG) mobtype = /mob/living/carbon - proctype = .proc/reducebang + proctype = PROC_REF(reducebang) /datum/component/wearertargeting/earprotection/Initialize(_valid_slots) . = ..() diff --git a/code/datums/components/edible.dm b/code/datums/components/edible.dm index b9a89ad9de90..3a047d082868 100644 --- a/code/datums/components/edible.dm +++ b/code/datums/components/edible.dm @@ -38,12 +38,12 @@ Behavior that's still missing from this component that original food items had t if(!isatom(parent)) return COMPONENT_INCOMPATIBLE - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/examine) - RegisterSignal(parent, COMSIG_ATOM_ATTACK_ANIMAL, .proc/UseByAnimal) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(examine)) + RegisterSignal(parent, COMSIG_ATOM_ATTACK_ANIMAL, PROC_REF(UseByAnimal)) if(isitem(parent)) - RegisterSignal(parent, COMSIG_ITEM_ATTACK, .proc/UseFromHand) + RegisterSignal(parent, COMSIG_ITEM_ATTACK, PROC_REF(UseFromHand)) else if(isturf(parent)) - RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND, .proc/TryToEatTurf) + RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND, PROC_REF(TryToEatTurf)) src.bite_consumption = bite_consumption src.food_flags = food_flags diff --git a/code/datums/components/edit_complainer.dm b/code/datums/components/edit_complainer.dm index da801bc9e0bb..fb69b67a5e9d 100644 --- a/code/datums/components/edit_complainer.dm +++ b/code/datums/components/edit_complainer.dm @@ -16,10 +16,10 @@ ) say_lines = text || default_lines - RegisterSignal(SSdcs, COMSIG_GLOB_VAR_EDIT, .proc/var_edit_react) + RegisterSignal(SSdcs, COMSIG_GLOB_VAR_EDIT, PROC_REF(var_edit_react)) /datum/component/edit_complainer/proc/var_edit_react(datum/source, list/arguments) SIGNAL_HANDLER var/atom/movable/master = parent - master.say(pick(say_lines)) + master.visible_message(pick(say_lines)) diff --git a/code/datums/components/embedded.dm b/code/datums/components/embedded.dm index dcb4aff50bdf..ee789d3f9829 100644 --- a/code/datums/components/embedded.dm +++ b/code/datums/components/embedded.dm @@ -99,12 +99,12 @@ /datum/component/embedded/RegisterWithParent() if(iscarbon(parent)) - RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/jostleCheck) - RegisterSignal(parent, COMSIG_CARBON_EMBED_RIP, .proc/ripOutCarbon) - RegisterSignal(parent, COMSIG_CARBON_EMBED_REMOVAL, .proc/safeRemoveCarbon) + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(jostleCheck)) + RegisterSignal(parent, COMSIG_CARBON_EMBED_RIP, PROC_REF(ripOutCarbon)) + RegisterSignal(parent, COMSIG_CARBON_EMBED_REMOVAL, PROC_REF(safeRemoveCarbon)) else if(isclosedturf(parent)) - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/examineTurf) - RegisterSignal(parent, COMSIG_PARENT_QDELETING, .proc/itemMoved) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(examineTurf)) + RegisterSignal(parent, COMSIG_PARENT_QDELETING, PROC_REF(itemMoved)) /datum/component/embedded/UnregisterFromParent() UnregisterSignal(parent, list(COMSIG_MOVABLE_MOVED, COMSIG_CARBON_EMBED_RIP, COMSIG_CARBON_EMBED_REMOVAL, COMSIG_PARENT_EXAMINE)) @@ -136,7 +136,7 @@ limb.embedded_objects |= weapon // on the inside... on the inside... weapon.forceMove(victim) - RegisterSignal(weapon, list(COMSIG_MOVABLE_MOVED, COMSIG_PARENT_QDELETING), .proc/byeItemCarbon) + RegisterSignal(weapon, list(COMSIG_MOVABLE_MOVED, COMSIG_PARENT_QDELETING), PROC_REF(byeItemCarbon)) if(harmful) victim.visible_message("[weapon] embeds itself in [victim]'s [limb.name]!",ignored_mobs=victim) @@ -192,7 +192,7 @@ var/mob/living/carbon/victim = parent var/time_taken = rip_time * weapon.w_class - INVOKE_ASYNC(src, .proc/complete_rip_out, victim, I, limb, time_taken) + INVOKE_ASYNC(src, PROC_REF(complete_rip_out), victim, I, limb, time_taken) /// everything async that ripOut used to do /datum/component/embedded/proc/complete_rip_out(mob/living/carbon/victim, obj/item/I, obj/item/bodypart/limb, time_taken) @@ -239,7 +239,7 @@ return if(to_hands) - INVOKE_ASYNC(victim, /mob.proc/put_in_hands, weapon) + INVOKE_ASYNC(victim, TYPE_PROC_REF(/mob, put_in_hands), weapon) else weapon.forceMove(get_turf(victim)) @@ -305,7 +305,7 @@ // we can't store the item IN the turf (cause turfs are just kinda... there), so we fake it by making the item invisible and bailing if it moves due to a blast weapon.forceMove(hit) weapon.invisibility = INVISIBILITY_ABSTRACT - RegisterSignal(weapon, COMSIG_MOVABLE_MOVED, .proc/itemMoved) + RegisterSignal(weapon, COMSIG_MOVABLE_MOVED, PROC_REF(itemMoved)) var/pixelX = rand(-2, 2) var/pixelY = rand(-1, 3) // bias this upwards since in-hands are usually on the lower end of the sprite @@ -328,7 +328,7 @@ var/matrix/M = matrix() M.Translate(pixelX, pixelY) overlay.transform = M - RegisterSignal(hit,COMSIG_ATOM_UPDATE_OVERLAYS,.proc/apply_overlay) + RegisterSignal(hit,COMSIG_ATOM_UPDATE_OVERLAYS, PROC_REF(apply_overlay)) hit.update_appearance() if(harmful) diff --git a/code/datums/components/empprotection.dm b/code/datums/components/empprotection.dm index 513370f3d5fa..bb94b08e55a9 100644 --- a/code/datums/components/empprotection.dm +++ b/code/datums/components/empprotection.dm @@ -5,7 +5,7 @@ if(!istype(parent, /atom)) return COMPONENT_INCOMPATIBLE flags = _flags - RegisterSignal(parent, list(COMSIG_ATOM_EMP_ACT), .proc/getEmpFlags) + RegisterSignal(parent, list(COMSIG_ATOM_EMP_ACT), PROC_REF(getEmpFlags)) /datum/component/empprotection/proc/getEmpFlags(datum/source, severity) SIGNAL_HANDLER diff --git a/code/datums/components/explodable.dm b/code/datums/components/explodable.dm index 360ab1dca847..abf16ecd4be5 100644 --- a/code/datums/components/explodable.dm +++ b/code/datums/components/explodable.dm @@ -12,16 +12,16 @@ 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) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(explodable_attack)) + RegisterSignal(parent, COMSIG_TRY_STORAGE_INSERT, PROC_REF(explodable_insert_item)) + RegisterSignal(parent, COMSIG_ATOM_EX_ACT, PROC_REF(detonate)) if(ismovable(parent)) - RegisterSignal(parent, COMSIG_MOVABLE_IMPACT, .proc/explodable_impact) - RegisterSignal(parent, COMSIG_MOVABLE_BUMP, .proc/explodable_bump) + RegisterSignal(parent, COMSIG_MOVABLE_IMPACT, PROC_REF(explodable_impact)) + RegisterSignal(parent, COMSIG_MOVABLE_BUMP, PROC_REF(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) + RegisterSignal(parent, list(COMSIG_ITEM_ATTACK, COMSIG_ITEM_ATTACK_OBJ, COMSIG_ITEM_HIT_REACT), PROC_REF(explodable_attack)) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equip)) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_drop)) @@ -71,7 +71,7 @@ /datum/component/explodable/proc/on_equip(datum/source, mob/equipper, slot) SIGNAL_HANDLER - RegisterSignal(equipper, COMSIG_MOB_APPLY_DAMGE, .proc/explodable_attack_zone, TRUE) + RegisterSignal(equipper, COMSIG_MOB_APPLY_DAMGE, PROC_REF(explodable_attack_zone), TRUE) /datum/component/explodable/proc/on_drop(datum/source, mob/user) SIGNAL_HANDLER diff --git a/code/datums/components/fishing_spot.dm b/code/datums/components/fishing_spot.dm index 78b9d64cbd20..585c98c59171 100644 --- a/code/datums/components/fishing_spot.dm +++ b/code/datums/components/fishing_spot.dm @@ -17,8 +17,8 @@ stack_trace("Invalid fishing spot configuration \"[configuration]\" passed down to fishing spot component.") return COMPONENT_INCOMPATIBLE fish_source = preset_configuration - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/handle_attackby) - RegisterSignal(parent, COMSIG_FISHING_ROD_CAST, .proc/handle_cast) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(handle_attackby)) + RegisterSignal(parent, COMSIG_FISHING_ROD_CAST, PROC_REF(handle_cast)) /datum/component/fishing_spot/proc/handle_cast(datum/source, obj/item/fishing_rod/rod, mob/user) @@ -54,7 +54,7 @@ var/datum/fishing_challenge/challenge = new(parent, result, rod, user) challenge.background = fish_source.background challenge.difficulty = fish_source.calculate_difficulty(result, rod, user) - RegisterSignal(challenge, COMSIG_FISHING_CHALLENGE_COMPLETED, .proc/fishing_completed) + RegisterSignal(challenge, COMSIG_FISHING_CHALLENGE_COMPLETED, PROC_REF(fishing_completed)) challenge.start(user) /datum/component/fishing_spot/proc/fishing_completed(datum/fishing_challenge/source, mob/user, success, perfect) diff --git a/code/datums/components/footstep.dm b/code/datums/components/footstep.dm index 95099164eec2..2e5533023ac8 100644 --- a/code/datums/components/footstep.dm +++ b/code/datums/components/footstep.dm @@ -23,7 +23,7 @@ if(FOOTSTEP_MOB_HUMAN) if(!ishuman(parent)) return COMPONENT_INCOMPATIBLE - RegisterSignal(parent, list(COMSIG_MOVABLE_MOVED), .proc/play_humanstep) + RegisterSignal(parent, list(COMSIG_MOVABLE_MOVED), PROC_REF(play_humanstep)) return if(FOOTSTEP_MOB_CLAW) footstep_sounds = GLOB.clawfootstep @@ -35,7 +35,7 @@ footstep_sounds = GLOB.footstep if(FOOTSTEP_MOB_SLIME) footstep_sounds = 'sound/effects/footstep/slime1.ogg' - RegisterSignal(parent, list(COMSIG_MOVABLE_MOVED), .proc/play_simplestep) //Note that this doesn't get called for humans. + RegisterSignal(parent, list(COMSIG_MOVABLE_MOVED), PROC_REF(play_simplestep)) //Note that this doesn't get called for humans. ///Prepares a footstep. Determines if it should get played. Returns the turf it should get played on. Note that it is always a /turf/open /datum/component/footstep/proc/prepare_step() diff --git a/code/datums/components/forensics.dm b/code/datums/components/forensics.dm index cac8fb8eb42b..3c006073304c 100644 --- a/code/datums/components/forensics.dm +++ b/code/datums/components/forensics.dm @@ -25,7 +25,7 @@ /datum/component/forensics/RegisterWithParent() check_blood() - RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, .proc/clean_act) + RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(clean_act)) /datum/component/forensics/UnregisterFromParent() UnregisterSignal(parent, list(COMSIG_COMPONENT_CLEAN_ACT)) @@ -190,4 +190,6 @@ return if(!length(blood_DNA)) return - parent.AddElement(/datum/element/decal/blood, _color = get_blood_dna_color(blood_DNA)) + if(isitem(parent)) + var/obj/item/I = parent + I.AddElement(/datum/element/decal/blood, initial(I.icon) || I.icon, initial(I.icon_state) || I.icon_state, _color = get_blood_dna_color(blood_DNA)) diff --git a/code/datums/components/fullauto.dm b/code/datums/components/fullauto.dm index bc55b9b76fc9..cedb3fe1614b 100644 --- a/code/datums/components/fullauto.dm +++ b/code/datums/components/fullauto.dm @@ -18,7 +18,7 @@ if(!isgun(parent)) return COMPONENT_INCOMPATIBLE var/obj/item/gun = parent - RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/wake_up) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(wake_up)) if(_autofire_shot_delay) autofire_shot_delay = _autofire_shot_delay if(autofire_stat == AUTOFIRE_STAT_IDLE && ismob(gun.loc)) @@ -61,13 +61,13 @@ if(!QDELETED(usercli)) clicker = usercli shooter = clicker.mob - RegisterSignal(clicker, COMSIG_CLIENT_MOUSEDOWN, .proc/on_mouse_down) + RegisterSignal(clicker, COMSIG_CLIENT_MOUSEDOWN, PROC_REF(on_mouse_down)) if(!QDELETED(shooter)) - RegisterSignal(shooter, COMSIG_MOB_LOGOUT, .proc/autofire_off) + RegisterSignal(shooter, COMSIG_MOB_LOGOUT, PROC_REF(autofire_off)) UnregisterSignal(shooter, COMSIG_MOB_LOGIN) - RegisterSignal(parent, list(COMSIG_PARENT_QDELETING, COMSIG_ITEM_DROPPED), .proc/autofire_off) - parent.RegisterSignal(src, COMSIG_AUTOFIRE_ONMOUSEDOWN, /obj/item/gun/.proc/autofire_bypass_check) - parent.RegisterSignal(parent, COMSIG_AUTOFIRE_SHOT, /obj/item/gun/.proc/do_autofire) + RegisterSignal(parent, list(COMSIG_PARENT_QDELETING, COMSIG_ITEM_DROPPED), PROC_REF(autofire_off)) + parent.RegisterSignal(src, COMSIG_AUTOFIRE_ONMOUSEDOWN, TYPE_PROC_REF(/obj/item/gun, autofire_bypass_check)) + parent.RegisterSignal(parent, COMSIG_AUTOFIRE_SHOT, TYPE_PROC_REF(/obj/item/gun, do_autofire)) /datum/component/automatic_fire/proc/autofire_off(datum/source) SIGNAL_HANDLER @@ -83,7 +83,7 @@ mouse_status = AUTOFIRE_MOUSEUP //In regards to the component there's no click anymore to care about. clicker = null if(!QDELETED(shooter)) - RegisterSignal(shooter, COMSIG_MOB_LOGIN, .proc/on_client_login) + RegisterSignal(shooter, COMSIG_MOB_LOGIN, PROC_REF(on_client_login)) UnregisterSignal(shooter, COMSIG_MOB_LOGOUT) UnregisterSignal(parent, list(COMSIG_PARENT_QDELETING, COMSIG_ITEM_DROPPED)) shooter = null @@ -136,7 +136,7 @@ target = _target target_loc = get_turf(target) mouse_parameters = params - INVOKE_ASYNC(src, .proc/start_autofiring) + INVOKE_ASYNC(src, PROC_REF(start_autofiring)) //Dakka-dakka @@ -149,10 +149,10 @@ clicker.mouse_pointer_icon = clicker.mouse_override_icon if(mouse_status == AUTOFIRE_MOUSEUP) //See mouse_status definition for the reason for this. - RegisterSignal(clicker, COMSIG_CLIENT_MOUSEUP, .proc/on_mouse_up) + RegisterSignal(clicker, COMSIG_CLIENT_MOUSEUP, PROC_REF(on_mouse_up)) mouse_status = AUTOFIRE_MOUSEDOWN - RegisterSignal(shooter, COMSIG_MOB_SWAP_HANDS, .proc/stop_autofiring) + RegisterSignal(shooter, COMSIG_MOB_SWAP_HANDS, PROC_REF(stop_autofiring)) if(isgun(parent)) var/obj/item/gun/shoota = parent @@ -166,7 +166,7 @@ return //If it fails, such as when the gun is empty, then there's no need to schedule a second shot. START_PROCESSING(SSprojectiles, src) - RegisterSignal(clicker, COMSIG_CLIENT_MOUSEDRAG, .proc/on_mouse_drag) + RegisterSignal(clicker, COMSIG_CLIENT_MOUSEDRAG, PROC_REF(on_mouse_drag)) /datum/component/automatic_fire/proc/on_mouse_up(datum/source, atom/object, turf/location, control, params) @@ -243,9 +243,8 @@ if(!can_shoot()) shoot_with_empty_chamber(shooter) return FALSE - var/obj/item/bodypart/other_hand = shooter.has_hand_for_held_index(shooter.get_inactive_hand_index()) - if(weapon_weight == WEAPON_HEAVY && (shooter.get_inactive_held_item() || !other_hand)) - to_chat(shooter, "You need two hands to fire [src]!") + if(weapon_weight == WEAPON_HEAVY && (!wielded)) + to_chat(shooter, "You need a more secure grip to fire [src]!") return FALSE return TRUE @@ -260,10 +259,13 @@ SIGNAL_HANDLER if(semicd || shooter.incapacitated()) return NONE + if(weapon_weight == WEAPON_HEAVY && (!wielded)) + to_chat(shooter, "You need a more secure grip to fire [src]!") + return NONE if(!can_shoot()) shoot_with_empty_chamber(shooter) return NONE - INVOKE_ASYNC(src, .proc/do_autofire_shot, source, target, shooter, params) + INVOKE_ASYNC(src, PROC_REF(do_autofire_shot), source, target, shooter, params) return COMPONENT_AUTOFIRE_SHOT_SUCCESS //All is well, we can continue shooting. @@ -273,7 +275,7 @@ if(istype(akimbo_gun) && weapon_weight < WEAPON_MEDIUM) if(akimbo_gun.weapon_weight < WEAPON_MEDIUM && akimbo_gun.can_trigger_gun(shooter)) bonus_spread = dual_wield_spread - addtimer(CALLBACK(akimbo_gun, /obj/item/gun.proc/process_fire, target, shooter, TRUE, params, null, bonus_spread), 1) + addtimer(CALLBACK(akimbo_gun, TYPE_PROC_REF(/obj/item/gun, process_fire), target, shooter, TRUE, params, null, bonus_spread), 1) process_fire(target, shooter, TRUE, params, null, bonus_spread) #undef AUTOFIRE_MOUSEUP diff --git a/code/datums/components/gps.dm b/code/datums/components/gps.dm index 97d1962fe1bc..5fc6eb9d88ed 100644 --- a/code/datums/components/gps.dm +++ b/code/datums/components/gps.dm @@ -28,18 +28,18 @@ GLOBAL_LIST_EMPTY(GPS_list) var/atom/A = parent A.add_overlay("working") A.name = "[initial(A.name)] ([gpstag])" - RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, .proc/interact) + RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, PROC_REF(interact)) if(!emp_proof) - RegisterSignal(parent, COMSIG_ATOM_EMP_ACT, .proc/on_emp_act) - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/on_examine) - RegisterSignal(parent, COMSIG_CLICK_ALT, .proc/on_AltClick) + RegisterSignal(parent, COMSIG_ATOM_EMP_ACT, PROC_REF(on_emp_act)) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine)) + RegisterSignal(parent, COMSIG_CLICK_ALT, PROC_REF(on_AltClick)) ///Called on COMSIG_ITEM_ATTACK_SELF /datum/component/gps/item/proc/interact(datum/source, mob/user) SIGNAL_HANDLER if(user) - INVOKE_ASYNC(src, .proc/ui_interact, user) + INVOKE_ASYNC(src, PROC_REF(ui_interact), user) ///Called on COMSIG_PARENT_EXAMINE /datum/component/gps/item/proc/on_examine(datum/source, mob/user, list/examine_list) @@ -55,7 +55,7 @@ GLOBAL_LIST_EMPTY(GPS_list) var/atom/A = parent A.cut_overlay("working") A.add_overlay("emp") - addtimer(CALLBACK(src, .proc/reboot), 300, TIMER_UNIQUE|TIMER_OVERRIDE) //if a new EMP happens, remove the old timer so it doesn't reactivate early + addtimer(CALLBACK(src, PROC_REF(reboot)), 300, TIMER_UNIQUE|TIMER_OVERRIDE) //if a new EMP happens, remove the old timer so it doesn't reactivate early SStgui.close_uis(src) //Close the UI control if it is open. ///Restarts the GPS after getting turned off by an EMP. diff --git a/code/datums/components/gunpoint.dm b/code/datums/components/gunpoint.dm index 19dc09464134..2865865c98ab 100644 --- a/code/datums/components/gunpoint.dm +++ b/code/datums/components/gunpoint.dm @@ -25,9 +25,9 @@ var/mob/living/shooter = parent target = targ weapon = wep - RegisterSignal(targ, list(COMSIG_MOB_ATTACK_HAND, COMSIG_MOB_ITEM_ATTACK, COMSIG_MOVABLE_MOVED, COMSIG_MOB_FIRED_GUN), .proc/trigger_reaction) + RegisterSignal(targ, list(COMSIG_MOB_ATTACK_HAND, COMSIG_MOB_ITEM_ATTACK, COMSIG_MOVABLE_MOVED, COMSIG_MOB_FIRED_GUN), PROC_REF(trigger_reaction)) - RegisterSignal(weapon, list(COMSIG_ITEM_DROPPED, COMSIG_ITEM_EQUIPPED), .proc/cancel) + RegisterSignal(weapon, list(COMSIG_ITEM_DROPPED, COMSIG_ITEM_EQUIPPED), PROC_REF(cancel)) shooter.visible_message("[shooter] aims [weapon] point blank at [target]!", \ "You aim [weapon] point blank at [target]!", target) @@ -44,7 +44,7 @@ target.playsound_local(target.loc, 'sound/machines/chime.ogg', 50, TRUE) SEND_SIGNAL(target, COMSIG_ADD_MOOD_EVENT, "gunpoint", /datum/mood_event/gunpoint) - addtimer(CALLBACK(src, .proc/update_stage, 2), GUNPOINT_DELAY_STAGE_2) + addtimer(CALLBACK(src, PROC_REF(update_stage), 2), GUNPOINT_DELAY_STAGE_2) /datum/component/gunpoint/Destroy(force, silent) var/mob/living/shooter = parent @@ -53,10 +53,10 @@ return ..() /datum/component/gunpoint/RegisterWithParent() - RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/check_deescalate) - RegisterSignal(parent, COMSIG_MOB_APPLY_DAMGE, .proc/flinch) - RegisterSignal(parent, COMSIG_MOB_ATTACK_HAND, .proc/check_shove) - RegisterSignal(parent, list(COMSIG_LIVING_START_PULL, COMSIG_MOVABLE_BUMP), .proc/check_bump) + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(check_deescalate)) + RegisterSignal(parent, COMSIG_MOB_APPLY_DAMGE, PROC_REF(flinch)) + RegisterSignal(parent, COMSIG_MOB_ATTACK_HAND, PROC_REF(check_shove)) + RegisterSignal(parent, list(COMSIG_LIVING_START_PULL, COMSIG_MOVABLE_BUMP), PROC_REF(check_bump)) /datum/component/gunpoint/UnregisterFromParent() UnregisterSignal(parent, COMSIG_MOVABLE_MOVED) @@ -91,7 +91,7 @@ to_chat(parent, "You steady [weapon] on [target].") to_chat(target, "[parent] has steadied [weapon] on you!") damage_mult = GUNPOINT_MULT_STAGE_2 - addtimer(CALLBACK(src, .proc/update_stage, 3), GUNPOINT_DELAY_STAGE_3) + addtimer(CALLBACK(src, PROC_REF(update_stage), 3), GUNPOINT_DELAY_STAGE_3) else if(stage == 3) to_chat(parent, "You have fully steadied [weapon] on [target].") to_chat(target, "[parent] has fully steadied [weapon] on you!") @@ -105,7 +105,7 @@ /datum/component/gunpoint/proc/trigger_reaction() SIGNAL_HANDLER - INVOKE_ASYNC(src, .proc/async_trigger_reaction) + INVOKE_ASYNC(src, PROC_REF(async_trigger_reaction)) /datum/component/gunpoint/proc/async_trigger_reaction() diff --git a/code/datums/components/heirloom.dm b/code/datums/components/heirloom.dm index d1a9bc753ef9..fc9983934ca6 100644 --- a/code/datums/components/heirloom.dm +++ b/code/datums/components/heirloom.dm @@ -9,7 +9,7 @@ owner = new_owner family_name = new_family_name - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/examine) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(examine)) /datum/component/heirloom/proc/examine(datum/source, mob/user, list/examine_list) SIGNAL_HANDLER diff --git a/code/datums/components/honkspam.dm b/code/datums/components/honkspam.dm index 73b5e3335aad..ee457b4d967e 100644 --- a/code/datums/components/honkspam.dm +++ b/code/datums/components/honkspam.dm @@ -9,7 +9,7 @@ /datum/component/honkspam/Initialize() if(!isitem(parent)) return COMPONENT_INCOMPATIBLE - RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, .proc/interact) + RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, PROC_REF(interact)) /datum/component/honkspam/proc/reset_spamflag() spam_flag = FALSE @@ -19,4 +19,4 @@ spam_flag = TRUE var/obj/item/parent_item = parent playsound(parent_item.loc, 'sound/items/bikehorn.ogg', 50, TRUE) - addtimer(CALLBACK(src, .proc/reset_spamflag), 2 SECONDS) + addtimer(CALLBACK(src, PROC_REF(reset_spamflag)), 2 SECONDS) diff --git a/code/datums/components/hot_ice.dm b/code/datums/components/hot_ice.dm index 018dfe800d1d..6192dc3256f8 100644 --- a/code/datums/components/hot_ice.dm +++ b/code/datums/components/hot_ice.dm @@ -9,8 +9,8 @@ src.gas_amount = gas_amount src.temp_amount = temp_amount - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/attackby_react) - RegisterSignal(parent, COMSIG_ATOM_FIRE_ACT, .proc/flame_react) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(attackby_react)) + RegisterSignal(parent, COMSIG_ATOM_FIRE_ACT, PROC_REF(flame_react)) /datum/component/hot_ice/UnregisterFromParent() UnregisterSignal(parent, COMSIG_PARENT_ATTACKBY) diff --git a/code/datums/components/igniter.dm b/code/datums/components/igniter.dm index 152a325e92ee..270ff8b09857 100644 --- a/code/datums/components/igniter.dm +++ b/code/datums/components/igniter.dm @@ -9,11 +9,11 @@ /datum/component/igniter/RegisterWithParent() if(ismachinery(parent) || isstructure(parent) || isgun(parent)) // turrets, etc - RegisterSignal(parent, COMSIG_PROJECTILE_ON_HIT, .proc/projectile_hit) + RegisterSignal(parent, COMSIG_PROJECTILE_ON_HIT, PROC_REF(projectile_hit)) else if(isitem(parent)) - RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, .proc/item_afterattack) + RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, PROC_REF(item_afterattack)) else if(ishostile(parent)) - RegisterSignal(parent, COMSIG_HOSTILE_ATTACKINGTARGET, .proc/hostile_attackingtarget) + RegisterSignal(parent, COMSIG_HOSTILE_ATTACKINGTARGET, PROC_REF(hostile_attackingtarget)) /datum/component/igniter/UnregisterFromParent() UnregisterSignal(parent, list(COMSIG_ITEM_AFTERATTACK, COMSIG_HOSTILE_ATTACKINGTARGET, COMSIG_PROJECTILE_ON_HIT)) diff --git a/code/datums/components/infective.dm b/code/datums/components/infective.dm index 3e2c8aab80c6..ceea1b3087a5 100644 --- a/code/datums/components/infective.dm +++ b/code/datums/components/infective.dm @@ -17,22 +17,22 @@ return COMPONENT_INCOMPATIBLE var/static/list/disease_connections = list( - COMSIG_ATOM_ENTERED = .proc/try_infect_crossed, + COMSIG_ATOM_ENTERED = PROC_REF(try_infect_crossed), ) AddComponent(/datum/component/connect_loc_behalf, parent, disease_connections) - RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, .proc/clean) - RegisterSignal(parent, COMSIG_MOVABLE_BUCKLE, .proc/try_infect_buckle) - RegisterSignal(parent, COMSIG_MOVABLE_BUMP, .proc/try_infect_collide) - RegisterSignal(parent, COMSIG_MOVABLE_IMPACT_ZONE, .proc/try_infect_impact_zone) + RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(clean)) + RegisterSignal(parent, COMSIG_MOVABLE_BUCKLE, PROC_REF(try_infect_buckle)) + RegisterSignal(parent, COMSIG_MOVABLE_BUMP, PROC_REF(try_infect_collide)) + RegisterSignal(parent, COMSIG_MOVABLE_IMPACT_ZONE, PROC_REF(try_infect_impact_zone)) if(isitem(parent)) - RegisterSignal(parent, COMSIG_ITEM_ATTACK_ZONE, .proc/try_infect_attack_zone) - RegisterSignal(parent, COMSIG_ITEM_ATTACK, .proc/try_infect_attack) - RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/try_infect_equipped) + RegisterSignal(parent, COMSIG_ITEM_ATTACK_ZONE, PROC_REF(try_infect_attack_zone)) + RegisterSignal(parent, COMSIG_ITEM_ATTACK, PROC_REF(try_infect_attack)) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(try_infect_equipped)) if(istype(parent, /obj/item/reagent_containers/food/snacks)) - RegisterSignal(parent, COMSIG_FOOD_EATEN, .proc/try_infect_eat) + RegisterSignal(parent, COMSIG_FOOD_EATEN, PROC_REF(try_infect_eat)) else if(istype(parent, /obj/effect/decal/cleanable/blood/gibs)) - RegisterSignal(parent, COMSIG_GIBS_STREAK, .proc/try_infect_streak) + RegisterSignal(parent, COMSIG_GIBS_STREAK, PROC_REF(try_infect_streak)) /datum/component/infective/proc/try_infect_eat(datum/source, mob/living/eater, mob/living/feeder) SIGNAL_HANDLER diff --git a/code/datums/components/jousting.dm b/code/datums/components/jousting.dm index fcecf89f1d0c..034c37efd826 100644 --- a/code/datums/components/jousting.dm +++ b/code/datums/components/jousting.dm @@ -18,14 +18,14 @@ /datum/component/jousting/Initialize() if(!isitem(parent)) return COMPONENT_INCOMPATIBLE - RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/on_equip) - RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/on_drop) - RegisterSignal(parent, COMSIG_ITEM_ATTACK, .proc/on_attack) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equip)) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_drop)) + RegisterSignal(parent, COMSIG_ITEM_ATTACK, PROC_REF(on_attack)) /datum/component/jousting/proc/on_equip(datum/source, mob/user, slot) SIGNAL_HANDLER - RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/mob_move, TRUE) + RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(mob_move), TRUE) current_holder = user /datum/component/jousting/proc/on_drop(datum/source, mob/user) @@ -76,7 +76,7 @@ current_tile_charge++ if(current_timerid) deltimer(current_timerid) - current_timerid = addtimer(CALLBACK(src, .proc/reset_charge), movement_reset_tolerance, TIMER_STOPPABLE) + current_timerid = addtimer(CALLBACK(src, PROC_REF(reset_charge)), movement_reset_tolerance, TIMER_STOPPABLE) /datum/component/jousting/proc/reset_charge() current_tile_charge = 0 diff --git a/code/datums/components/knockback.dm b/code/datums/components/knockback.dm index 1c572573ff7c..d07b2a8028dc 100644 --- a/code/datums/components/knockback.dm +++ b/code/datums/components/knockback.dm @@ -11,11 +11,11 @@ /datum/component/knockback/RegisterWithParent() if(ismachinery(parent) || isstructure(parent) || isgun(parent)) // turrets, etc - RegisterSignal(parent, COMSIG_PROJECTILE_ON_HIT, .proc/projectile_hit) + RegisterSignal(parent, COMSIG_PROJECTILE_ON_HIT, PROC_REF(projectile_hit)) else if(isitem(parent)) - RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, .proc/item_afterattack) + RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, PROC_REF(item_afterattack)) else if(ishostile(parent)) - RegisterSignal(parent, COMSIG_HOSTILE_ATTACKINGTARGET, .proc/hostile_attackingtarget) + RegisterSignal(parent, COMSIG_HOSTILE_ATTACKINGTARGET, PROC_REF(hostile_attackingtarget)) /datum/component/knockback/UnregisterFromParent() UnregisterSignal(parent, list(COMSIG_ITEM_AFTERATTACK, COMSIG_HOSTILE_ATTACKINGTARGET, COMSIG_PROJECTILE_ON_HIT)) diff --git a/code/datums/components/knockoff.dm b/code/datums/components/knockoff.dm index 770f72cfea5b..f7809baf3d1e 100644 --- a/code/datums/components/knockoff.dm +++ b/code/datums/components/knockoff.dm @@ -7,8 +7,8 @@ /datum/component/knockoff/Initialize(knockoff_chance,zone_override,slots_knockoffable) if(!isitem(parent)) return COMPONENT_INCOMPATIBLE - RegisterSignal(parent, COMSIG_ITEM_EQUIPPED,.proc/OnEquipped) - RegisterSignal(parent, COMSIG_ITEM_DROPPED,.proc/OnDropped) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(OnEquipped)) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(OnDropped)) src.knockoff_chance = knockoff_chance @@ -42,7 +42,7 @@ if(slots_knockoffable && !(slot in slots_knockoffable)) UnregisterSignal(H, COMSIG_HUMAN_DISARM_HIT) return - RegisterSignal(H, COMSIG_HUMAN_DISARM_HIT, .proc/Knockoff, TRUE) + RegisterSignal(H, COMSIG_HUMAN_DISARM_HIT, PROC_REF(Knockoff), TRUE) /datum/component/knockoff/proc/OnDropped(datum/source, mob/living/M) SIGNAL_HANDLER diff --git a/code/datums/components/label.dm b/code/datums/components/label.dm index f93e2d931470..4f3128ca6cd6 100644 --- a/code/datums/components/label.dm +++ b/code/datums/components/label.dm @@ -22,8 +22,8 @@ apply_label() /datum/component/label/RegisterWithParent() - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/OnAttackby) - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/Examine) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(OnAttackby)) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(Examine)) /datum/component/label/UnregisterFromParent() UnregisterSignal(parent, list(COMSIG_PARENT_ATTACKBY, COMSIG_PARENT_EXAMINE)) diff --git a/code/datums/components/largeobjecttransparency.dm b/code/datums/components/largeobjecttransparency.dm index 55819d4eef9a..cccb05b39ad9 100644 --- a/code/datums/components/largeobjecttransparency.dm +++ b/code/datums/components/largeobjecttransparency.dm @@ -36,7 +36,7 @@ return ..() /datum/component/largetransparency/RegisterWithParent() - RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/on_move) + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(on_move)) register_with_turfs() /datum/component/largetransparency/UnregisterFromParent() @@ -54,9 +54,9 @@ for(var/regist_tu in registered_turfs) if(!regist_tu) continue - RegisterSignal(regist_tu, list(COMSIG_ATOM_ENTERED, COMSIG_ATOM_CREATED), .proc/object_enter) - RegisterSignal(regist_tu, COMSIG_ATOM_EXITED, .proc/object_leave) - RegisterSignal(regist_tu, COMSIG_TURF_CHANGE, .proc/on_turf_change) + RegisterSignal(regist_tu, list(COMSIG_ATOM_ENTERED, COMSIG_ATOM_CREATED), PROC_REF(object_enter)) + RegisterSignal(regist_tu, COMSIG_ATOM_EXITED, PROC_REF(object_leave)) + RegisterSignal(regist_tu, COMSIG_TURF_CHANGE, PROC_REF(on_turf_change)) for(var/thing in regist_tu) var/atom/check_atom = thing if(!(check_atom.flags_1 & SHOW_BEHIND_LARGE_ICONS_1)) @@ -80,7 +80,7 @@ /datum/component/largetransparency/proc/on_turf_change() SIGNAL_HANDLER - addtimer(CALLBACK(src, .proc/on_move), 1, TIMER_UNIQUE|TIMER_OVERRIDE) //*pain + addtimer(CALLBACK(src, PROC_REF(on_move)), 1, TIMER_UNIQUE|TIMER_OVERRIDE) //*pain /datum/component/largetransparency/proc/object_enter(datum/source, atom/enterer) SIGNAL_HANDLER diff --git a/code/datums/components/lifesteal.dm b/code/datums/components/lifesteal.dm index 6bbb1f4b7fbe..ed847477e076 100644 --- a/code/datums/components/lifesteal.dm +++ b/code/datums/components/lifesteal.dm @@ -10,11 +10,11 @@ /datum/component/lifesteal/RegisterWithParent() if(isgun(parent)) - RegisterSignal(parent, COMSIG_PROJECTILE_ON_HIT, .proc/projectile_hit) + RegisterSignal(parent, COMSIG_PROJECTILE_ON_HIT, PROC_REF(projectile_hit)) else if(isitem(parent)) - RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, .proc/item_afterattack) + RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, PROC_REF(item_afterattack)) else if(ishostile(parent)) - RegisterSignal(parent, COMSIG_HOSTILE_ATTACKINGTARGET, .proc/hostile_attackingtarget) + RegisterSignal(parent, COMSIG_HOSTILE_ATTACKINGTARGET, PROC_REF(hostile_attackingtarget)) /datum/component/lifesteal/UnregisterFromParent() UnregisterSignal(parent, list(COMSIG_ITEM_AFTERATTACK, COMSIG_HOSTILE_ATTACKINGTARGET, COMSIG_PROJECTILE_ON_HIT)) diff --git a/code/datums/components/lockon_aiming.dm b/code/datums/components/lockon_aiming.dm index af15ffe992a8..c9a5345db12c 100644 --- a/code/datums/components/lockon_aiming.dm +++ b/code/datums/components/lockon_aiming.dm @@ -26,7 +26,7 @@ if(target_callback) can_target_callback = target_callback else - can_target_callback = CALLBACK(src, .proc/can_target) + can_target_callback = CALLBACK(src, PROC_REF(can_target)) if(range) lock_cursor_range = range if(typecache) diff --git a/code/datums/components/manual_blinking.dm b/code/datums/components/manual_blinking.dm index aa986672189b..d97e88ca8fe9 100644 --- a/code/datums/components/manual_blinking.dm +++ b/code/datums/components/manual_blinking.dm @@ -29,11 +29,11 @@ return ..() /datum/component/manual_blinking/RegisterWithParent() - RegisterSignal(parent, COMSIG_MOB_EMOTE, .proc/check_emote) - RegisterSignal(parent, COMSIG_CARBON_GAIN_ORGAN, .proc/check_added_organ) - RegisterSignal(parent, COMSIG_CARBON_LOSE_ORGAN, .proc/check_removed_organ) - RegisterSignal(parent, COMSIG_LIVING_REVIVE, .proc/restart) - RegisterSignal(parent, COMSIG_MOB_DEATH, .proc/pause) + RegisterSignal(parent, COMSIG_MOB_EMOTE, PROC_REF(check_emote)) + RegisterSignal(parent, COMSIG_CARBON_GAIN_ORGAN, PROC_REF(check_added_organ)) + RegisterSignal(parent, COMSIG_CARBON_LOSE_ORGAN, PROC_REF(check_removed_organ)) + RegisterSignal(parent, COMSIG_LIVING_REVIVE, PROC_REF(restart)) + RegisterSignal(parent, COMSIG_MOB_DEATH, PROC_REF(pause)) /datum/component/manual_blinking/UnregisterFromParent() UnregisterSignal(parent, COMSIG_MOB_EMOTE) diff --git a/code/datums/components/manual_breathing.dm b/code/datums/components/manual_breathing.dm index 9fba5b46b83a..bcae15536ca7 100644 --- a/code/datums/components/manual_breathing.dm +++ b/code/datums/components/manual_breathing.dm @@ -29,11 +29,11 @@ return ..() /datum/component/manual_breathing/RegisterWithParent() - RegisterSignal(parent, COMSIG_MOB_EMOTE, .proc/check_emote) - RegisterSignal(parent, COMSIG_CARBON_GAIN_ORGAN, .proc/check_added_organ) - RegisterSignal(parent, COMSIG_CARBON_LOSE_ORGAN, .proc/check_removed_organ) - RegisterSignal(parent, COMSIG_LIVING_REVIVE, .proc/restart) - RegisterSignal(parent, COMSIG_MOB_DEATH, .proc/pause) + RegisterSignal(parent, COMSIG_MOB_EMOTE, PROC_REF(check_emote)) + RegisterSignal(parent, COMSIG_CARBON_GAIN_ORGAN, PROC_REF(check_added_organ)) + RegisterSignal(parent, COMSIG_CARBON_LOSE_ORGAN, PROC_REF(check_removed_organ)) + RegisterSignal(parent, COMSIG_LIVING_REVIVE, PROC_REF(restart)) + RegisterSignal(parent, COMSIG_MOB_DEATH, PROC_REF(pause)) /datum/component/manual_breathing/UnregisterFromParent() UnregisterSignal(parent, COMSIG_MOB_EMOTE) diff --git a/code/datums/components/material_container.dm b/code/datums/components/material_container.dm index 5b43b0f78a33..a1cc816fc5f0 100644 --- a/code/datums/components/material_container.dm +++ b/code/datums/components/material_container.dm @@ -38,8 +38,8 @@ precondition = _precondition after_insert = _after_insert - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/OnAttackBy) - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/OnExamine) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(OnAttackBy)) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(OnExamine)) for(var/mat in mat_list) //Make the assoc list ref | amount var/datum/material/M = SSmaterials.GetMaterialRef(mat) diff --git a/code/datums/components/mirv.dm b/code/datums/components/mirv.dm index b30ce2c05b7e..260c12f49da9 100644 --- a/code/datums/components/mirv.dm +++ b/code/datums/components/mirv.dm @@ -16,7 +16,7 @@ /datum/component/mirv/RegisterWithParent() if(ismachinery(parent) || isstructure(parent) || isgun(parent)) // turrets, etc - RegisterSignal(parent, COMSIG_PROJECTILE_ON_HIT, .proc/projectile_hit) + RegisterSignal(parent, COMSIG_PROJECTILE_ON_HIT, PROC_REF(projectile_hit)) /datum/component/mirv/UnregisterFromParent() UnregisterSignal(parent, list(COMSIG_PROJECTILE_ON_HIT)) @@ -24,7 +24,7 @@ /datum/component/mirv/proc/projectile_hit(atom/fired_from, atom/movable/firer, atom/target, Angle) SIGNAL_HANDLER - INVOKE_ASYNC(src, .proc/do_shrapnel, firer, target) + INVOKE_ASYNC(src, PROC_REF(do_shrapnel), firer, target) /datum/component/mirv/proc/do_shrapnel(mob/firer, atom/target) if(radius < 1) diff --git a/code/datums/components/mood.dm b/code/datums/components/mood.dm index d3a4ec9c30b2..4c8b2a72cfa6 100644 --- a/code/datums/components/mood.dm +++ b/code/datums/components/mood.dm @@ -18,13 +18,13 @@ START_PROCESSING(SSmood, src) - RegisterSignal(parent, COMSIG_ADD_MOOD_EVENT, .proc/add_event) - RegisterSignal(parent, COMSIG_CLEAR_MOOD_EVENT, .proc/clear_event) - RegisterSignal(parent, COMSIG_ENTER_AREA, .proc/check_area_mood) - RegisterSignal(parent, COMSIG_LIVING_REVIVE, .proc/on_revive) + RegisterSignal(parent, COMSIG_ADD_MOOD_EVENT, PROC_REF(add_event)) + RegisterSignal(parent, COMSIG_CLEAR_MOOD_EVENT, PROC_REF(clear_event)) + RegisterSignal(parent, COMSIG_ENTER_AREA, PROC_REF(check_area_mood)) + RegisterSignal(parent, COMSIG_LIVING_REVIVE, PROC_REF(on_revive)) - RegisterSignal(parent, COMSIG_MOB_HUD_CREATED, .proc/modify_hud) - RegisterSignal(parent, COMSIG_JOB_RECEIVED, .proc/register_job_signals) + RegisterSignal(parent, COMSIG_MOB_HUD_CREATED, PROC_REF(modify_hud)) + RegisterSignal(parent, COMSIG_JOB_RECEIVED, PROC_REF(register_job_signals)) var/mob/living/owner = parent if(owner.hud_used) @@ -41,7 +41,7 @@ SIGNAL_HANDLER if(job in list("Research Director", "Scientist", "Roboticist")) - RegisterSignal(parent, COMSIG_ADD_MOOD_EVENT_RND, .proc/add_event) //Mood events that are only for RnD members + RegisterSignal(parent, COMSIG_ADD_MOOD_EVENT_RND, PROC_REF(add_event)) //Mood events that are only for RnD members /datum/component/mood/proc/print_mood(mob/user) var/msg = "[span_info("My current mental status:")]\n" @@ -250,7 +250,7 @@ clear_event(null, category) else if(the_event.timeout) - addtimer(CALLBACK(src, .proc/clear_event, null, category), the_event.timeout, TIMER_UNIQUE|TIMER_OVERRIDE) + addtimer(CALLBACK(src, PROC_REF(clear_event), null, category), the_event.timeout, TIMER_UNIQUE|TIMER_OVERRIDE) return 0 //Don't have to update the event. var/list/params = args.Copy(4) params.Insert(1, parent) @@ -261,7 +261,7 @@ update_mood() if(the_event.timeout) - addtimer(CALLBACK(src, .proc/clear_event, null, category), the_event.timeout, TIMER_UNIQUE|TIMER_OVERRIDE) + addtimer(CALLBACK(src, PROC_REF(clear_event), null, category), the_event.timeout, TIMER_UNIQUE|TIMER_OVERRIDE) /datum/component/mood/proc/clear_event(datum/source, category) SIGNAL_HANDLER @@ -294,8 +294,8 @@ screen_obj = new screen_obj.color = "#4b96c4" hud.infodisplay += screen_obj - RegisterSignal(hud, COMSIG_PARENT_QDELETING, .proc/unmodify_hud) - RegisterSignal(screen_obj, COMSIG_CLICK, .proc/hud_click) + RegisterSignal(hud, COMSIG_PARENT_QDELETING, PROC_REF(unmodify_hud)) + RegisterSignal(screen_obj, COMSIG_CLICK, PROC_REF(hud_click)) /datum/component/mood/proc/unmodify_hud(datum/source) SIGNAL_HANDLER diff --git a/code/datums/components/nanites.dm b/code/datums/components/nanites.dm index e8f9befd9fee..93fc561bb677 100644 --- a/code/datums/components/nanites.dm +++ b/code/datums/components/nanites.dm @@ -42,31 +42,31 @@ 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_HAS_NANITES, PROC_REF(confirm_nanites)) + RegisterSignal(parent, COMSIG_NANITE_IS_STEALTHY, PROC_REF(check_stealth)) + RegisterSignal(parent, COMSIG_NANITE_DELETE, PROC_REF(delete_nanites)) + RegisterSignal(parent, COMSIG_NANITE_UI_DATA, PROC_REF(nanite_ui_data)) + RegisterSignal(parent, COMSIG_NANITE_GET_PROGRAMS, PROC_REF(get_programs)) + RegisterSignal(parent, COMSIG_NANITE_SET_VOLUME, PROC_REF(set_volume)) + RegisterSignal(parent, COMSIG_NANITE_ADJUST_VOLUME, PROC_REF(adjust_nanites)) + RegisterSignal(parent, COMSIG_NANITE_SET_MAX_VOLUME, PROC_REF(set_max_volume)) + RegisterSignal(parent, COMSIG_NANITE_SET_CLOUD, PROC_REF(set_cloud)) + RegisterSignal(parent, COMSIG_NANITE_SET_CLOUD_SYNC, PROC_REF(set_cloud_sync)) + RegisterSignal(parent, COMSIG_NANITE_SET_SAFETY, PROC_REF(set_safety)) + RegisterSignal(parent, COMSIG_NANITE_SET_REGEN, PROC_REF(set_regen)) + RegisterSignal(parent, COMSIG_NANITE_ADD_PROGRAM, PROC_REF(add_program)) + RegisterSignal(parent, COMSIG_NANITE_SCAN, PROC_REF(nanite_scan)) + RegisterSignal(parent, COMSIG_NANITE_SYNC, PROC_REF(sync)) 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) - RegisterSignal(parent, COMSIG_LIVING_MINOR_SHOCK, .proc/on_minor_shock) - RegisterSignal(parent, COMSIG_SPECIES_GAIN, .proc/check_viable_biotype) - RegisterSignal(parent, COMSIG_NANITE_SIGNAL, .proc/receive_signal) - RegisterSignal(parent, COMSIG_NANITE_COMM_SIGNAL, .proc/receive_comm_signal) + RegisterSignal(parent, COMSIG_ATOM_EMP_ACT, PROC_REF(on_emp)) + RegisterSignal(parent, COMSIG_MOB_DEATH, PROC_REF(on_death)) + RegisterSignal(parent, COMSIG_MOB_ALLOWED, PROC_REF(check_access)) + RegisterSignal(parent, COMSIG_LIVING_ELECTROCUTE_ACT, PROC_REF(on_shock)) + RegisterSignal(parent, COMSIG_LIVING_MINOR_SHOCK, PROC_REF(on_minor_shock)) + RegisterSignal(parent, COMSIG_SPECIES_GAIN, PROC_REF(check_viable_biotype)) + RegisterSignal(parent, COMSIG_NANITE_SIGNAL, PROC_REF(receive_signal)) + RegisterSignal(parent, COMSIG_NANITE_COMM_SIGNAL, PROC_REF(receive_comm_signal)) /datum/component/nanites/UnregisterFromParent() UnregisterSignal(parent, list(COMSIG_HAS_NANITES, diff --git a/code/datums/components/orbiter.dm b/code/datums/components/orbiter.dm index 2c2d0acf71af..faf61f803fa2 100644 --- a/code/datums/components/orbiter.dm +++ b/code/datums/components/orbiter.dm @@ -22,9 +22,9 @@ target.orbiters = src if(ismovable(target)) - tracker = new(target, CALLBACK(src, .proc/move_react)) + tracker = new(target, CALLBACK(src, PROC_REF(move_react))) - RegisterSignal(parent, COMSIG_MOVABLE_UPDATE_GLIDE_SIZE, .proc/orbiter_glide_size_update) + RegisterSignal(parent, COMSIG_MOVABLE_UPDATE_GLIDE_SIZE, PROC_REF(orbiter_glide_size_update)) /datum/component/orbiter/UnregisterFromParent() var/atom/target = parent @@ -59,7 +59,7 @@ orbiter.orbiting.end_orbit(orbiter) orbiters[orbiter] = TRUE orbiter.orbiting = src - RegisterSignal(orbiter, COMSIG_MOVABLE_MOVED, .proc/orbiter_move_react) + RegisterSignal(orbiter, COMSIG_MOVABLE_MOVED, PROC_REF(orbiter_move_react)) SEND_SIGNAL(parent, COMSIG_ATOM_ORBIT_BEGIN, orbiter) diff --git a/code/datums/components/outline.dm b/code/datums/components/outline.dm index 7aa719d38a61..9bf766239bcc 100644 --- a/code/datums/components/outline.dm +++ b/code/datums/components/outline.dm @@ -7,9 +7,9 @@ if(!isatom(parent)) return COMPONENT_INCOMPATIBLE src.permanent = perm - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/OnExamine) - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/OnAttackBy) - RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, .proc/OnClean) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(OnExamine)) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(OnAttackBy)) + RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(OnClean)) var/atom/movable/A = parent A.add_filter("sprite-bane", 2, list("type"="outline", "color"="#000000", "size"=1)) diff --git a/code/datums/components/overlay_lighting.dm b/code/datums/components/overlay_lighting.dm index 4e36391d3914..d4b40bdb7187 100644 --- a/code/datums/components/overlay_lighting.dm +++ b/code/datums/components/overlay_lighting.dm @@ -105,14 +105,14 @@ /datum/component/overlay_lighting/RegisterWithParent() . = ..() if(directional) - RegisterSignal(parent, COMSIG_ATOM_DIR_CHANGE, .proc/on_parent_dir_change) - RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/on_parent_moved) - RegisterSignal(parent, COMSIG_ATOM_SET_LIGHT_RANGE, .proc/set_range) - RegisterSignal(parent, COMSIG_ATOM_SET_LIGHT_POWER, .proc/set_power) - RegisterSignal(parent, COMSIG_ATOM_SET_LIGHT_COLOR, .proc/set_color) - RegisterSignal(parent, COMSIG_ATOM_SET_LIGHT_ON, .proc/on_toggle) - RegisterSignal(parent, COMSIG_ATOM_SET_LIGHT_FLAGS, .proc/on_light_flags_change) - RegisterSignal(parent, COMSIG_ATOM_USED_IN_CRAFT, .proc/on_parent_crafted) + RegisterSignal(parent, COMSIG_ATOM_DIR_CHANGE, PROC_REF(on_parent_dir_change)) + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(on_parent_moved)) + RegisterSignal(parent, COMSIG_ATOM_SET_LIGHT_RANGE, PROC_REF(set_range)) + RegisterSignal(parent, COMSIG_ATOM_SET_LIGHT_POWER, PROC_REF(set_power)) + RegisterSignal(parent, COMSIG_ATOM_SET_LIGHT_COLOR, PROC_REF(set_color)) + RegisterSignal(parent, COMSIG_ATOM_SET_LIGHT_ON, PROC_REF(on_toggle)) + RegisterSignal(parent, COMSIG_ATOM_SET_LIGHT_FLAGS, PROC_REF(on_light_flags_change)) + RegisterSignal(parent, COMSIG_ATOM_USED_IN_CRAFT, PROC_REF(on_parent_crafted)) var/atom/movable/movable_parent = parent if(movable_parent.light_flags & LIGHT_ATTACHED) overlay_lighting_flags |= LIGHTING_ATTACHED @@ -215,13 +215,13 @@ var/atom/movable/old_parent_attached_to = . UnregisterSignal(old_parent_attached_to, list(COMSIG_PARENT_QDELETING, COMSIG_MOVABLE_MOVED)) if(old_parent_attached_to == current_holder) - RegisterSignal(old_parent_attached_to, COMSIG_PARENT_QDELETING, .proc/on_holder_qdel) - RegisterSignal(old_parent_attached_to, COMSIG_MOVABLE_MOVED, .proc/on_holder_moved) + RegisterSignal(old_parent_attached_to, COMSIG_PARENT_QDELETING, PROC_REF(on_holder_qdel)) + RegisterSignal(old_parent_attached_to, COMSIG_MOVABLE_MOVED, PROC_REF(on_holder_moved)) if(parent_attached_to) if(parent_attached_to == current_holder) UnregisterSignal(current_holder, list(COMSIG_PARENT_QDELETING, COMSIG_MOVABLE_MOVED)) - RegisterSignal(parent_attached_to, COMSIG_PARENT_QDELETING, .proc/on_parent_attached_to_qdel) - RegisterSignal(parent_attached_to, COMSIG_MOVABLE_MOVED, .proc/on_parent_attached_to_moved) + RegisterSignal(parent_attached_to, COMSIG_PARENT_QDELETING, PROC_REF(on_parent_attached_to_qdel)) + RegisterSignal(parent_attached_to, COMSIG_MOVABLE_MOVED, PROC_REF(on_parent_attached_to_moved)) check_holder() @@ -241,10 +241,10 @@ clean_old_turfs() return if(new_holder != parent && new_holder != parent_attached_to) - RegisterSignal(new_holder, COMSIG_PARENT_QDELETING, .proc/on_holder_qdel) - RegisterSignal(new_holder, COMSIG_MOVABLE_MOVED, .proc/on_holder_moved) + RegisterSignal(new_holder, COMSIG_PARENT_QDELETING, PROC_REF(on_holder_qdel)) + RegisterSignal(new_holder, COMSIG_MOVABLE_MOVED, PROC_REF(on_holder_moved)) if(directional) - RegisterSignal(new_holder, COMSIG_ATOM_DIR_CHANGE, .proc/on_holder_dir_change) + RegisterSignal(new_holder, COMSIG_ATOM_DIR_CHANGE, PROC_REF(on_holder_dir_change)) if(overlay_lighting_flags & LIGHTING_ON) make_luminosity_update() add_dynamic_lumi() @@ -461,7 +461,7 @@ return UnregisterSignal(parent, COMSIG_ATOM_USED_IN_CRAFT) - RegisterSignal(new_craft, COMSIG_ATOM_USED_IN_CRAFT, .proc/on_parent_crafted) + RegisterSignal(new_craft, COMSIG_ATOM_USED_IN_CRAFT, PROC_REF(on_parent_crafted)) set_parent_attached_to(new_craft) #undef LIGHTING_ON diff --git a/code/datums/components/paintable.dm b/code/datums/components/paintable.dm index a0ed2873c90a..72472d41686d 100644 --- a/code/datums/components/paintable.dm +++ b/code/datums/components/paintable.dm @@ -2,7 +2,7 @@ var/current_paint /datum/component/spraycan_paintable/Initialize() - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/Repaint) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(Repaint)) /datum/component/spraycan_paintable/Destroy() RemoveCurrentCoat() diff --git a/code/datums/components/pellet_cloud.dm b/code/datums/components/pellet_cloud.dm index fc2ae4c058dc..ae90dae17c55 100644 --- a/code/datums/components/pellet_cloud.dm +++ b/code/datums/components/pellet_cloud.dm @@ -69,16 +69,16 @@ return ..() /datum/component/pellet_cloud/RegisterWithParent() - RegisterSignal(parent, COMSIG_PARENT_PREQDELETED, .proc/nullspace_parent) + RegisterSignal(parent, COMSIG_PARENT_PREQDELETED, PROC_REF(nullspace_parent)) if(isammocasing(parent)) - RegisterSignal(parent, COMSIG_PELLET_CLOUD_INIT, .proc/create_casing_pellets) + RegisterSignal(parent, COMSIG_PELLET_CLOUD_INIT, PROC_REF(create_casing_pellets)) else if(isgrenade(parent)) - RegisterSignal(parent, COMSIG_GRENADE_ARMED, .proc/grenade_armed) - RegisterSignal(parent, COMSIG_GRENADE_PRIME, .proc/create_blast_pellets) + RegisterSignal(parent, COMSIG_GRENADE_ARMED, PROC_REF(grenade_armed)) + RegisterSignal(parent, COMSIG_GRENADE_PRIME, PROC_REF(create_blast_pellets)) else if(islandmine(parent)) - RegisterSignal(parent, COMSIG_MINE_TRIGGERED, .proc/create_blast_pellets) + RegisterSignal(parent, COMSIG_MINE_TRIGGERED, PROC_REF(create_blast_pellets)) else if(issupplypod(parent)) - RegisterSignal(parent, COMSIG_SUPPLYPOD_LANDED, .proc/create_blast_pellets) + RegisterSignal(parent, COMSIG_SUPPLYPOD_LANDED, PROC_REF(create_blast_pellets)) /datum/component/pellet_cloud/UnregisterFromParent() UnregisterSignal(parent, list(COMSIG_PARENT_PREQDELETED, COMSIG_PELLET_CLOUD_INIT, COMSIG_GRENADE_PRIME, COMSIG_GRENADE_ARMED, COMSIG_MOVABLE_MOVED, COMSIG_MINE_TRIGGERED, COMSIG_ITEM_DROPPED)) @@ -103,8 +103,8 @@ else //Smart spread spread = round((i / num_pellets - 0.5) * distro) - RegisterSignal(shell.BB, COMSIG_PROJECTILE_SELF_ON_HIT, .proc/pellet_hit) - RegisterSignal(shell.BB, list(COMSIG_PROJECTILE_RANGE_OUT, COMSIG_PARENT_QDELETING), .proc/pellet_range) + RegisterSignal(shell.BB, COMSIG_PROJECTILE_SELF_ON_HIT, PROC_REF(pellet_hit)) + RegisterSignal(shell.BB, list(COMSIG_PROJECTILE_RANGE_OUT, COMSIG_PARENT_QDELETING), PROC_REF(pellet_range)) pellets += shell.BB if(!shell.throw_proj(target, targloc, shooter, params, spread)) return @@ -180,7 +180,7 @@ if(martyr.stat != DEAD && martyr.client) LAZYADD(purple_hearts, martyr) - RegisterSignal(martyr, COMSIG_PARENT_QDELETING, .proc/on_target_qdel, override=TRUE) + RegisterSignal(martyr, COMSIG_PARENT_QDELETING, PROC_REF(on_target_qdel), override=TRUE) for(var/i in 1 to round(pellets_absorbed * 0.5)) pew(martyr) @@ -195,7 +195,7 @@ hits++ targets_hit[target]++ if(targets_hit[target] == 1) - RegisterSignal(target, COMSIG_PARENT_QDELETING, .proc/on_target_qdel, override=TRUE) + RegisterSignal(target, COMSIG_PARENT_QDELETING, PROC_REF(on_target_qdel), override=TRUE) UnregisterSignal(P, list(COMSIG_PARENT_QDELETING, COMSIG_PROJECTILE_RANGE_OUT, COMSIG_PROJECTILE_SELF_ON_HIT)) if(terminated == num_pellets) finalize() @@ -220,8 +220,8 @@ LAZYSET(P.impacted, parent, TRUE) // don't hit the target we hit already with the flak P.suppressed = SUPPRESSED_VERY // set the projectiles to make no message so we can do our own aggregate message P.preparePixelProjectile(target, parent) - RegisterSignal(P, COMSIG_PROJECTILE_SELF_ON_HIT, .proc/pellet_hit) - RegisterSignal(P, list(COMSIG_PROJECTILE_RANGE_OUT, COMSIG_PARENT_QDELETING), .proc/pellet_range) + RegisterSignal(P, COMSIG_PROJECTILE_SELF_ON_HIT, PROC_REF(pellet_hit)) + RegisterSignal(P, list(COMSIG_PROJECTILE_RANGE_OUT, COMSIG_PARENT_QDELETING), PROC_REF(pellet_range)) pellets += P P.fire() @@ -254,10 +254,10 @@ if(ismob(nade.loc)) shooter = nade.loc LAZYINITLIST(bodies) - RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/grenade_dropped) - RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/grenade_moved) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(grenade_dropped)) + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(grenade_moved)) var/static/list/loc_connections = list( - COMSIG_ATOM_EXITED =.proc/grenade_uncrossed, + COMSIG_ATOM_EXITED = PROC_REF(grenade_uncrossed), ) AddComponent(/datum/component/connect_loc_behalf, parent, loc_connections) @@ -270,7 +270,7 @@ /datum/component/pellet_cloud/proc/grenade_moved() LAZYCLEARLIST(bodies) for(var/mob/living/new_mob in get_turf(parent)) - RegisterSignal(new_mob, COMSIG_PARENT_QDELETING, .proc/on_target_qdel, override=TRUE) + RegisterSignal(new_mob, COMSIG_PARENT_QDELETING, PROC_REF(on_target_qdel), override=TRUE) LAZYADD(bodies, new_mob) /// Someone who was originally "under" the grenade has moved off the tile and is now eligible for being a martyr and "covering" it diff --git a/code/datums/components/plumbing/_plumbing.dm b/code/datums/components/plumbing/_plumbing.dm index 8512e46c361d..80c956a0031b 100644 --- a/code/datums/components/plumbing/_plumbing.dm +++ b/code/datums/components/plumbing/_plumbing.dm @@ -26,16 +26,16 @@ reagents = AM.reagents turn_connects = _turn_connects - RegisterSignal(parent, list(COMSIG_MOVABLE_MOVED), .proc/on_parent_moved) - RegisterSignal(parent, list(COMSIG_PARENT_PREQDELETED), .proc/disable) - RegisterSignal(parent, list(COMSIG_OBJ_DEFAULT_UNFASTEN_WRENCH), .proc/toggle_active) - RegisterSignal(parent, list(COMSIG_OBJ_HIDE), .proc/hide) - RegisterSignal(parent, list(COMSIG_ATOM_UPDATE_OVERLAYS), .proc/create_overlays) //called by lateinit on startup + RegisterSignal(parent, list(COMSIG_MOVABLE_MOVED), PROC_REF(on_parent_moved)) + RegisterSignal(parent, list(COMSIG_PARENT_PREQDELETED), PROC_REF(disable)) + RegisterSignal(parent, list(COMSIG_OBJ_DEFAULT_UNFASTEN_WRENCH), PROC_REF(toggle_active)) + RegisterSignal(parent, list(COMSIG_OBJ_HIDE), PROC_REF(hide)) + RegisterSignal(parent, list(COMSIG_ATOM_UPDATE_OVERLAYS), PROC_REF(create_overlays)) //called by lateinit on startup if(start) //timer 0 so it can finish returning initialize, after which we're added to the parent. //Only then can we tell the duct next to us they can connect, because only then is the component really added. this was a fun one - addtimer(CALLBACK(src, .proc/enable), 0) + addtimer(CALLBACK(src, PROC_REF(enable)), 0) /datum/component/plumbing/process() if(!demand_connects || !reagents) diff --git a/code/datums/components/pricetag.dm b/code/datums/components/pricetag.dm index 9cf6a6e4f16a..bf81a595c2be 100644 --- a/code/datums/components/pricetag.dm +++ b/code/datums/components/pricetag.dm @@ -8,9 +8,9 @@ owner = _owner if(_profit_ratio) profit_ratio = _profit_ratio - RegisterSignal(parent, list(COMSIG_ITEM_SOLD), .proc/split_profit) - RegisterSignal(parent, list(COMSIG_STRUCTURE_UNWRAPPED, COMSIG_ITEM_UNWRAPPED), .proc/Unwrapped) - RegisterSignal(parent, list(COMSIG_ITEM_SPLIT_PROFIT, COMSIG_ITEM_SPLIT_PROFIT_DRY), .proc/return_ratio) + RegisterSignal(parent, list(COMSIG_ITEM_SOLD), PROC_REF(split_profit)) + RegisterSignal(parent, list(COMSIG_STRUCTURE_UNWRAPPED, COMSIG_ITEM_UNWRAPPED), PROC_REF(Unwrapped)) + RegisterSignal(parent, list(COMSIG_ITEM_SPLIT_PROFIT, COMSIG_ITEM_SPLIT_PROFIT_DRY), PROC_REF(return_ratio)) /datum/component/pricetag/proc/Unwrapped() SIGNAL_HANDLER diff --git a/code/datums/components/punchcooldown.dm b/code/datums/components/punchcooldown.dm index 5aacf49fd2d2..19aa8c8cd20d 100644 --- a/code/datums/components/punchcooldown.dm +++ b/code/datums/components/punchcooldown.dm @@ -2,7 +2,7 @@ /datum/component/wearertargeting/punchcooldown signals = list(COMSIG_HUMAN_MELEE_UNARMED_ATTACK) mobtype = /mob/living/carbon - proctype = .proc/reducecooldown + proctype = PROC_REF(reducecooldown) valid_slots = list(ITEM_SLOT_GLOVES) ///The warcry this generates var/warcry = "AT" @@ -11,7 +11,7 @@ . = ..() if(. == COMPONENT_INCOMPATIBLE) return - RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, .proc/changewarcry) + RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, PROC_REF(changewarcry)) ///Called on COMSIG_HUMAN_MELEE_UNARMED_ATTACK. Yells the warcry and and reduces punch cooldown. /datum/component/wearertargeting/punchcooldown/proc/reducecooldown(mob/living/carbon/M, atom/target) @@ -24,7 +24,7 @@ /datum/component/wearertargeting/punchcooldown/proc/changewarcry(datum/source, mob/user) SIGNAL_HANDLER - INVOKE_ASYNC(src, .proc/changewarcry_async, user) + INVOKE_ASYNC(src, PROC_REF(changewarcry_async), user) /datum/component/wearertargeting/punchcooldown/proc/changewarcry_async(mob/user) var/input = stripped_input(user,"What do you want your battlecry to be? Max length of 6 characters.", ,"", 7) diff --git a/code/datums/components/rad_insulation.dm b/code/datums/components/rad_insulation.dm index d06cb1e18799..6ee306b28215 100644 --- a/code/datums/components/rad_insulation.dm +++ b/code/datums/components/rad_insulation.dm @@ -6,11 +6,11 @@ return COMPONENT_INCOMPATIBLE if(protects) // Does this protect things in its contents from being affected? - RegisterSignal(parent, COMSIG_ATOM_RAD_PROBE, .proc/rad_probe_react) + RegisterSignal(parent, COMSIG_ATOM_RAD_PROBE, PROC_REF(rad_probe_react)) if(contamination_proof) // Can this object be contaminated? - RegisterSignal(parent, COMSIG_ATOM_RAD_CONTAMINATING, .proc/rad_contaminating) + RegisterSignal(parent, COMSIG_ATOM_RAD_CONTAMINATING, PROC_REF(rad_contaminating)) if(_amount != 1) // If it's 1 it wont have any impact on radiation passing through anyway - RegisterSignal(parent, COMSIG_ATOM_RAD_WAVE_PASSING, .proc/rad_pass) + RegisterSignal(parent, COMSIG_ATOM_RAD_WAVE_PASSING, PROC_REF(rad_pass)) amount = _amount diff --git a/code/datums/components/radioactive.dm b/code/datums/components/radioactive.dm index a1d0553f3b1d..a6c67af2d3cd 100644 --- a/code/datums/components/radioactive.dm +++ b/code/datums/components/radioactive.dm @@ -18,11 +18,11 @@ hl3_release_date = _half_life can_contaminate = _can_contaminate if(istype(parent, /atom)) - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/rad_examine) - RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, .proc/rad_clean) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(rad_examine)) + RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(rad_clean)) if(istype(parent, /obj/item)) - RegisterSignal(parent, COMSIG_ITEM_ATTACK, .proc/rad_attack) - RegisterSignal(parent, COMSIG_ITEM_ATTACK_OBJ, .proc/rad_attack) + RegisterSignal(parent, COMSIG_ITEM_ATTACK, PROC_REF(rad_attack)) + RegisterSignal(parent, COMSIG_ITEM_ATTACK_OBJ, PROC_REF(rad_attack)) else return COMPONENT_INCOMPATIBLE if(strength > RAD_MINIMUM_CONTAMINATION) @@ -31,7 +31,7 @@ //This relies on parent not being a turf or something. IF YOU CHANGE THAT, CHANGE THIS var/atom/movable/master = parent master.add_filter("rad_glow", 2, list("type" = "outline", "color" = "#39ff1430", "size" = 2)) - addtimer(CALLBACK(src, .proc/glow_loop, master), rand(1,19))//Things should look uneven + addtimer(CALLBACK(src, PROC_REF(glow_loop), master), rand(1,19))//Things should look uneven START_PROCESSING(SSradiation, src) /datum/component/radioactive/Destroy() diff --git a/code/datums/components/remote_materials.dm b/code/datums/components/remote_materials.dm index 4bd3d1b82e43..de61c13ae295 100644 --- a/code/datums/components/remote_materials.dm +++ b/code/datums/components/remote_materials.dm @@ -23,8 +23,8 @@ handles linking back and forth. src.category = category src.allow_standalone = allow_standalone - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/OnAttackBy) - RegisterSignal(parent, COMSIG_ATOM_MULTITOOL_ACT, .proc/OnMultitool) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(OnAttackBy)) + RegisterSignal(parent, COMSIG_ATOM_MULTITOOL_ACT, PROC_REF(OnMultitool)) if (allow_standalone) _MakeLocal() diff --git a/code/datums/components/riding.dm b/code/datums/components/riding.dm index 3f56735a493c..7d3bf028d796 100644 --- a/code/datums/components/riding.dm +++ b/code/datums/components/riding.dm @@ -28,10 +28,10 @@ /datum/component/riding/Initialize() if(!ismovable(parent)) return COMPONENT_INCOMPATIBLE - RegisterSignal(parent, COMSIG_ATOM_DIR_CHANGE, .proc/vehicle_turned) - RegisterSignal(parent, COMSIG_MOVABLE_BUCKLE, .proc/vehicle_mob_buckle) - RegisterSignal(parent, COMSIG_MOVABLE_UNBUCKLE, .proc/vehicle_mob_unbuckle) - RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/vehicle_moved) + RegisterSignal(parent, COMSIG_ATOM_DIR_CHANGE, PROC_REF(vehicle_turned)) + RegisterSignal(parent, COMSIG_MOVABLE_BUCKLE, PROC_REF(vehicle_mob_buckle)) + RegisterSignal(parent, COMSIG_MOVABLE_UNBUCKLE, PROC_REF(vehicle_mob_unbuckle)) + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(vehicle_moved)) /datum/component/riding/proc/vehicle_mob_unbuckle(datum/source, mob/living/M, force = FALSE) SIGNAL_HANDLER @@ -217,7 +217,7 @@ to_chat(user, "You'll need a special item in one of your hands to [drive_verb] [AM].") /datum/component/riding/proc/Unbuckle(atom/movable/M) - addtimer(CALLBACK(parent, /atom/movable/.proc/unbuckle_mob, M), 0, TIMER_UNIQUE) + addtimer(CALLBACK(parent, TYPE_PROC_REF(/atom/movable, unbuckle_mob), M), 0, TIMER_UNIQUE) /datum/component/riding/proc/Process_Spacemove(direction) var/atom/movable/AM = parent @@ -237,7 +237,7 @@ /datum/component/riding/human/Initialize() . = ..() - RegisterSignal(parent, COMSIG_HUMAN_MELEE_UNARMED_ATTACK, .proc/on_host_unarmed_melee) + RegisterSignal(parent, COMSIG_HUMAN_MELEE_UNARMED_ATTACK, PROC_REF(on_host_unarmed_melee)) /datum/component/riding/human/vehicle_mob_unbuckle(datum/source, mob/living/M, force = FALSE) unequip_buckle_inhands(parent) diff --git a/code/datums/components/rotation.dm b/code/datums/components/rotation.dm index 7f0e230845f8..506d744d6c8c 100644 --- a/code/datums/components/rotation.dm +++ b/code/datums/components/rotation.dm @@ -26,17 +26,17 @@ if(can_user_rotate) src.can_user_rotate = can_user_rotate else - src.can_user_rotate = CALLBACK(src,.proc/default_can_user_rotate) + src.can_user_rotate = CALLBACK(src, PROC_REF(default_can_user_rotate)) if(can_be_rotated) src.can_be_rotated = can_be_rotated else - src.can_be_rotated = CALLBACK(src,.proc/default_can_be_rotated) + src.can_be_rotated = CALLBACK(src, PROC_REF(default_can_be_rotated)) if(after_rotation) src.after_rotation = after_rotation else - src.after_rotation = CALLBACK(src,.proc/default_after_rotation) + src.after_rotation = CALLBACK(src, PROC_REF(default_after_rotation)) //Try Clockwise,counter,flip in order if(src.rotation_flags & ROTATION_FLIP) @@ -52,10 +52,10 @@ /datum/component/simple_rotation/proc/add_signals() if(rotation_flags & ROTATION_ALTCLICK) - RegisterSignal(parent, COMSIG_CLICK_ALT, .proc/HandRot) - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/ExamineMessage) + RegisterSignal(parent, COMSIG_CLICK_ALT, PROC_REF(HandRot)) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(ExamineMessage)) if(rotation_flags & ROTATION_WRENCH) - RegisterSignal(parent, COMSIG_ATOM_WRENCH_ACT, .proc/WrenchRot) + RegisterSignal(parent, COMSIG_ATOM_WRENCH_ACT, PROC_REF(WrenchRot)) /datum/component/simple_rotation/proc/add_verbs() if(rotation_flags & ROTATION_VERBS) diff --git a/code/datums/components/sitcomlaughter.dm b/code/datums/components/sitcomlaughter.dm index 7a31c812749b..8dfef21b749d 100644 --- a/code/datums/components/sitcomlaughter.dm +++ b/code/datums/components/sitcomlaughter.dm @@ -1,7 +1,7 @@ /datum/component/wearertargeting/sitcomlaughter valid_slots = list(ITEM_SLOT_HANDS, ITEM_SLOT_BELT, ITEM_SLOT_ID, ITEM_SLOT_LPOCKET, ITEM_SLOT_RPOCKET, ITEM_SLOT_SUITSTORE, ITEM_SLOT_DEX_STORAGE) signals = list(COMSIG_MOB_CREAMED, COMSIG_ON_CARBON_SLIP, COMSIG_ON_VENDOR_CRUSH, COMSIG_MOB_CLUMSY_SHOOT_FOOT) - proctype = .proc/EngageInComedy + proctype = PROC_REF(EngageInComedy) mobtype = /mob/living ///Sounds used for when user has a sitcom action occur var/list/comedysounds = list('sound/items/SitcomLaugh1.ogg', 'sound/items/SitcomLaugh2.ogg', 'sound/items/SitcomLaugh3.ogg') @@ -28,6 +28,6 @@ SIGNAL_HANDLER if(!COOLDOWN_FINISHED(src, laugh_cooldown)) return - addtimer(CALLBACK(GLOBAL_PROC, .proc/playsound, parent, pick(comedysounds), 100, FALSE, SHORT_RANGE_SOUND_EXTRARANGE), laugh_delay) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), parent, pick(comedysounds), 100, FALSE, SHORT_RANGE_SOUND_EXTRARANGE), laugh_delay) post_comedy_callback?.Invoke(source) COOLDOWN_START(src, laugh_cooldown, cooldown_time) diff --git a/code/datums/components/slippery.dm b/code/datums/components/slippery.dm index 64dd511956ce..5c2c88ccfee7 100644 --- a/code/datums/components/slippery.dm +++ b/code/datums/components/slippery.dm @@ -11,12 +11,12 @@ ///what we give to connect_loc by default, makes slippable mobs moving over us slip var/static/list/default_connections = list( - COMSIG_ATOM_ENTERED = .proc/Slip, + COMSIG_ATOM_ENTERED = PROC_REF(Slip), ) ///what we give to connect_loc if we're an item and get equipped by a mob. makes slippable mobs moving over our holder slip var/static/list/holder_connections = list( - COMSIG_ATOM_ENTERED = .proc/Slip_on_wearer, + COMSIG_ATOM_ENTERED = PROC_REF(Slip_on_wearer), ) /// The connect_loc_behalf component for the holder_connections list. @@ -32,10 +32,10 @@ if(ismovable(parent)) if(isitem(parent)) - RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/on_equip) - RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/on_drop) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equip)) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_drop)) else - RegisterSignal(parent, COMSIG_ATOM_ENTERED, .proc/Slip) + RegisterSignal(parent, COMSIG_ATOM_ENTERED, PROC_REF(Slip)) /datum/component/slippery/proc/add_connect_loc_behalf_to_parent() if(ismovable(parent)) @@ -73,7 +73,7 @@ holder = equipper qdel(GetComponent(/datum/component/connect_loc_behalf)) AddComponent(/datum/component/connect_loc_behalf, holder, holder_connections) - RegisterSignal(holder, COMSIG_PARENT_PREQDELETED, .proc/holder_deleted) + RegisterSignal(holder, COMSIG_PARENT_PREQDELETED, PROC_REF(holder_deleted)) /datum/component/slippery/proc/holder_deleted(datum/source, datum/possible_holder) SIGNAL_HANDLER diff --git a/code/datums/components/soulstoned.dm b/code/datums/components/soulstoned.dm index 584f76cbc255..04e514062879 100644 --- a/code/datums/components/soulstoned.dm +++ b/code/datums/components/soulstoned.dm @@ -17,7 +17,7 @@ S.health = S.maxHealth S.bruteloss = 0 - RegisterSignal(S, COMSIG_MOVABLE_MOVED, .proc/free_prisoner) + RegisterSignal(S, COMSIG_MOVABLE_MOVED, PROC_REF(free_prisoner)) /datum/component/soulstoned/proc/free_prisoner() SIGNAL_HANDLER diff --git a/code/datums/components/spawner.dm b/code/datums/components/spawner.dm index 0b2794898e13..42456ccf88e9 100644 --- a/code/datums/components/spawner.dm +++ b/code/datums/components/spawner.dm @@ -23,7 +23,7 @@ if(_spawn_sound) spawn_sound=_spawn_sound - RegisterSignal(parent, list(COMSIG_PARENT_QDELETING), .proc/stop_spawning) + RegisterSignal(parent, list(COMSIG_PARENT_QDELETING), PROC_REF(stop_spawning)) START_PROCESSING(SSprocessing, src) /datum/component/spawner/process() diff --git a/code/datums/components/spill.dm b/code/datums/components/spill.dm index 343cdab3f081..1aa652e5106a 100644 --- a/code/datums/components/spill.dm +++ b/code/datums/components/spill.dm @@ -27,8 +27,8 @@ return COMPONENT_INCOMPATIBLE /datum/component/spill/RegisterWithParent() - RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/equip_react) - RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/drop_react) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(equip_react)) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(drop_react)) var/obj/item/master = parent preexisting_item_flags = master.item_flags master.item_flags |= ITEM_SLOT_POCKETS @@ -43,7 +43,7 @@ SIGNAL_HANDLER if(slot == ITEM_SLOT_LPOCKET || slot == ITEM_SLOT_RPOCKET) - RegisterSignal(equipper, COMSIG_LIVING_STATUS_KNOCKDOWN, .proc/knockdown_react, TRUE) + RegisterSignal(equipper, COMSIG_LIVING_STATUS_KNOCKDOWN, PROC_REF(knockdown_react), TRUE) else UnregisterSignal(equipper, COMSIG_LIVING_STATUS_KNOCKDOWN) diff --git a/code/datums/components/spooky.dm b/code/datums/components/spooky.dm index 9e5032ec70f7..2cdefc057f85 100644 --- a/code/datums/components/spooky.dm +++ b/code/datums/components/spooky.dm @@ -2,12 +2,12 @@ var/too_spooky = TRUE //will it spawn a new instrument? /datum/component/spooky/Initialize() - RegisterSignal(parent, COMSIG_ITEM_ATTACK, .proc/spectral_attack) + RegisterSignal(parent, COMSIG_ITEM_ATTACK, PROC_REF(spectral_attack)) /datum/component/spooky/proc/spectral_attack(datum/source, mob/living/carbon/C, mob/user) SIGNAL_HANDLER - INVOKE_ASYNC(src, .proc/spectral_attack_async, source, C, user) + INVOKE_ASYNC(src, PROC_REF(spectral_attack_async), source, C, user) /datum/component/spooky/proc/spectral_attack_async(datum/source, mob/living/carbon/C, mob/user) diff --git a/code/datums/components/squeak.dm b/code/datums/components/squeak.dm index fdb95e249f2b..368b70b64c0c 100644 --- a/code/datums/components/squeak.dm +++ b/code/datums/components/squeak.dm @@ -22,25 +22,25 @@ ///what we set connect_loc to if parent is an item var/static/list/item_connections = list( - COMSIG_ATOM_ENTERED = .proc/play_squeak_crossed, + COMSIG_ATOM_ENTERED = PROC_REF(play_squeak_crossed), ) /datum/component/squeak/Initialize(custom_sounds, volume_override, chance_override, step_delay_override, use_delay_override, extrarange, falloff_exponent, fallof_distance) if(!isatom(parent)) return COMPONENT_INCOMPATIBLE - RegisterSignal(parent, list(COMSIG_ATOM_ENTERED, COMSIG_ATOM_BLOB_ACT, COMSIG_ATOM_HULK_ATTACK, COMSIG_PARENT_ATTACKBY), .proc/play_squeak) + RegisterSignal(parent, list(COMSIG_ATOM_ENTERED, COMSIG_ATOM_BLOB_ACT, COMSIG_ATOM_HULK_ATTACK, COMSIG_PARENT_ATTACKBY), PROC_REF(play_squeak)) if(ismovable(parent)) - RegisterSignal(parent, list(COMSIG_MOVABLE_BUMP, COMSIG_MOVABLE_IMPACT), .proc/play_squeak) + RegisterSignal(parent, list(COMSIG_MOVABLE_BUMP, COMSIG_MOVABLE_IMPACT), PROC_REF(play_squeak)) AddComponent(/datum/component/connect_loc_behalf, parent, item_connections) - RegisterSignal(parent, COMSIG_ITEM_WEARERCROSSED, .proc/play_squeak_crossed) - RegisterSignal(parent, COMSIG_MOVABLE_DISPOSING, .proc/disposing_react) + RegisterSignal(parent, COMSIG_ITEM_WEARERCROSSED, PROC_REF(play_squeak_crossed)) + RegisterSignal(parent, COMSIG_MOVABLE_DISPOSING, PROC_REF(disposing_react)) if(isitem(parent)) - RegisterSignal(parent, list(COMSIG_ITEM_ATTACK, COMSIG_ITEM_ATTACK_OBJ, COMSIG_ITEM_HIT_REACT), .proc/play_squeak) - RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, .proc/use_squeak) - RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/on_equip) - RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/on_drop) + RegisterSignal(parent, list(COMSIG_ITEM_ATTACK, COMSIG_ITEM_ATTACK_OBJ, COMSIG_ITEM_HIT_REACT), PROC_REF(play_squeak)) + RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, PROC_REF(use_squeak)) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equip)) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_drop)) if(istype(parent, /obj/item/clothing/shoes)) - RegisterSignal(parent, COMSIG_SHOES_STEP_ACTION, .proc/step_squeak) + RegisterSignal(parent, COMSIG_SHOES_STEP_ACTION, PROC_REF(step_squeak)) override_squeak_sounds = custom_sounds if(chance_override) @@ -103,7 +103,7 @@ /datum/component/squeak/proc/on_equip(datum/source, mob/equipper, slot) SIGNAL_HANDLER - RegisterSignal(equipper, COMSIG_MOVABLE_DISPOSING, .proc/disposing_react, TRUE) + RegisterSignal(equipper, COMSIG_MOVABLE_DISPOSING, PROC_REF(disposing_react), TRUE) /datum/component/squeak/proc/on_drop(datum/source, mob/user) SIGNAL_HANDLER @@ -115,7 +115,7 @@ SIGNAL_HANDLER //We don't need to worry about unregistering this signal as it will happen for us automaticaly when the holder is qdeleted - RegisterSignal(holder, COMSIG_ATOM_DIR_CHANGE, .proc/holder_dir_change) + RegisterSignal(holder, COMSIG_ATOM_DIR_CHANGE, PROC_REF(holder_dir_change)) /datum/component/squeak/proc/holder_dir_change(datum/source, old_dir, new_dir) SIGNAL_HANDLER diff --git a/code/datums/components/stationstuck.dm b/code/datums/components/stationstuck.dm index 98f12cdc09c1..2f01af2ee6e7 100644 --- a/code/datums/components/stationstuck.dm +++ b/code/datums/components/stationstuck.dm @@ -9,7 +9,7 @@ if(!isliving(parent)) return COMPONENT_INCOMPATIBLE var/mob/living/L = parent - RegisterSignal(L, list(COMSIG_MOVABLE_Z_CHANGED), .proc/punish) + RegisterSignal(L, list(COMSIG_MOVABLE_Z_CHANGED), PROC_REF(punish)) murder = _murder message = _message diff --git a/code/datums/components/storage/concrete/_concrete.dm b/code/datums/components/storage/concrete/_concrete.dm index 4198ba5b974d..c0a9bd162209 100644 --- a/code/datums/components/storage/concrete/_concrete.dm +++ b/code/datums/components/storage/concrete/_concrete.dm @@ -15,8 +15,8 @@ /datum/component/storage/concrete/Initialize() . = ..() - RegisterSignal(parent, COMSIG_ATOM_CONTENTS_DEL, .proc/on_contents_del) - RegisterSignal(parent, COMSIG_OBJ_DECONSTRUCT, .proc/on_deconstruct) + RegisterSignal(parent, COMSIG_ATOM_CONTENTS_DEL, PROC_REF(on_contents_del)) + RegisterSignal(parent, COMSIG_OBJ_DECONSTRUCT, PROC_REF(on_deconstruct)) /datum/component/storage/concrete/Destroy() var/atom/real_location = real_location() diff --git a/code/datums/components/storage/concrete/bag_of_holding.dm b/code/datums/components/storage/concrete/bag_of_holding.dm index 7b734d8836cc..9c534ae2fa4d 100644 --- a/code/datums/components/storage/concrete/bag_of_holding.dm +++ b/code/datums/components/storage/concrete/bag_of_holding.dm @@ -5,7 +5,7 @@ var/list/obj/item/storage/backpack/holding/matching = typecache_filter_list(W.GetAllContents(), typecacheof(/obj/item/storage/backpack/holding)) matching -= A if(istype(W, /obj/item/storage/backpack/holding) || matching.len) - INVOKE_ASYNC(src, .proc/recursive_insertion, W, user) + INVOKE_ASYNC(src, PROC_REF(recursive_insertion), W, user) return . = ..() diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index f10332a3129a..ced0b0e79ff7 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -72,42 +72,42 @@ closer = new(null, src) orient2hud() - RegisterSignal(parent, COMSIG_CONTAINS_STORAGE, .proc/on_check) - RegisterSignal(parent, COMSIG_IS_STORAGE_LOCKED, .proc/check_locked) - RegisterSignal(parent, COMSIG_TRY_STORAGE_SHOW, .proc/signal_show_attempt) - RegisterSignal(parent, COMSIG_TRY_STORAGE_INSERT, .proc/signal_insertion_attempt) - RegisterSignal(parent, COMSIG_TRY_STORAGE_CAN_INSERT, .proc/signal_can_insert) - RegisterSignal(parent, COMSIG_TRY_STORAGE_TAKE_TYPE, .proc/signal_take_type) - RegisterSignal(parent, COMSIG_TRY_STORAGE_FILL_TYPE, .proc/signal_fill_type) - RegisterSignal(parent, COMSIG_TRY_STORAGE_SET_LOCKSTATE, .proc/set_locked) - RegisterSignal(parent, COMSIG_TRY_STORAGE_TAKE, .proc/signal_take_obj) - RegisterSignal(parent, COMSIG_TRY_STORAGE_QUICK_EMPTY, .proc/signal_quick_empty) - RegisterSignal(parent, COMSIG_TRY_STORAGE_HIDE_FROM, .proc/signal_hide_attempt) - RegisterSignal(parent, COMSIG_TRY_STORAGE_HIDE_ALL, .proc/close_all) - RegisterSignal(parent, COMSIG_TRY_STORAGE_RETURN_INVENTORY, .proc/signal_return_inv) - - RegisterSignal(parent, COMSIG_TOPIC, .proc/topic_handle) - - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/attackby) - - RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND, .proc/on_attack_hand) - RegisterSignal(parent, COMSIG_ATOM_ATTACK_PAW, .proc/on_attack_hand) - RegisterSignal(parent, COMSIG_ATOM_EMP_ACT, .proc/emp_act) - RegisterSignal(parent, COMSIG_ATOM_ATTACK_GHOST, .proc/show_to_ghost) - RegisterSignal(parent, COMSIG_ATOM_ENTERED, .proc/refresh_mob_views) - RegisterSignal(parent, COMSIG_ATOM_EXITED, .proc/_remove_and_refresh) - RegisterSignal(parent, COMSIG_ATOM_CANREACH, .proc/canreach_react) - - RegisterSignal(parent, COMSIG_ITEM_PRE_ATTACK, .proc/preattack_intercept) - RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, .proc/attack_self) - RegisterSignal(parent, COMSIG_ITEM_PICKUP, .proc/signal_on_pickup) - - RegisterSignal(parent, COMSIG_MOVABLE_POST_THROW, .proc/close_all) - RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/on_move) - - RegisterSignal(parent, COMSIG_CLICK_ALT, .proc/on_alt_click) - RegisterSignal(parent, COMSIG_MOUSEDROP_ONTO, .proc/mousedrop_onto) - RegisterSignal(parent, COMSIG_MOUSEDROPPED_ONTO, .proc/mousedrop_receive) + RegisterSignal(parent, COMSIG_CONTAINS_STORAGE, PROC_REF(on_check)) + RegisterSignal(parent, COMSIG_IS_STORAGE_LOCKED, PROC_REF(check_locked)) + RegisterSignal(parent, COMSIG_TRY_STORAGE_SHOW, PROC_REF(signal_show_attempt)) + RegisterSignal(parent, COMSIG_TRY_STORAGE_INSERT, PROC_REF(signal_insertion_attempt)) + RegisterSignal(parent, COMSIG_TRY_STORAGE_CAN_INSERT, PROC_REF(signal_can_insert)) + RegisterSignal(parent, COMSIG_TRY_STORAGE_TAKE_TYPE, PROC_REF(signal_take_type)) + RegisterSignal(parent, COMSIG_TRY_STORAGE_FILL_TYPE, PROC_REF(signal_fill_type)) + RegisterSignal(parent, COMSIG_TRY_STORAGE_SET_LOCKSTATE, PROC_REF(set_locked)) + RegisterSignal(parent, COMSIG_TRY_STORAGE_TAKE, PROC_REF(signal_take_obj)) + RegisterSignal(parent, COMSIG_TRY_STORAGE_QUICK_EMPTY, PROC_REF(signal_quick_empty)) + RegisterSignal(parent, COMSIG_TRY_STORAGE_HIDE_FROM, PROC_REF(signal_hide_attempt)) + RegisterSignal(parent, COMSIG_TRY_STORAGE_HIDE_ALL, PROC_REF(close_all)) + RegisterSignal(parent, COMSIG_TRY_STORAGE_RETURN_INVENTORY, PROC_REF(signal_return_inv)) + + RegisterSignal(parent, COMSIG_TOPIC, PROC_REF(topic_handle)) + + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(attackby)) + + RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND, PROC_REF(on_attack_hand)) + RegisterSignal(parent, COMSIG_ATOM_ATTACK_PAW, PROC_REF(on_attack_hand)) + RegisterSignal(parent, COMSIG_ATOM_EMP_ACT, PROC_REF(emp_act)) + RegisterSignal(parent, COMSIG_ATOM_ATTACK_GHOST, PROC_REF(show_to_ghost)) + RegisterSignal(parent, COMSIG_ATOM_ENTERED, PROC_REF(refresh_mob_views)) + RegisterSignal(parent, COMSIG_ATOM_EXITED, PROC_REF(_remove_and_refresh)) + RegisterSignal(parent, COMSIG_ATOM_CANREACH, PROC_REF(canreach_react)) + + RegisterSignal(parent, COMSIG_ITEM_PRE_ATTACK, PROC_REF(preattack_intercept)) + RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, PROC_REF(attack_self)) + RegisterSignal(parent, COMSIG_ITEM_PICKUP, PROC_REF(signal_on_pickup)) + + RegisterSignal(parent, COMSIG_MOVABLE_POST_THROW, PROC_REF(close_all)) + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(on_move)) + + RegisterSignal(parent, COMSIG_CLICK_ALT, PROC_REF(on_alt_click)) + RegisterSignal(parent, COMSIG_MOUSEDROP_ONTO, PROC_REF(mousedrop_onto)) + RegisterSignal(parent, COMSIG_MOUSEDROPPED_ONTO, PROC_REF(mousedrop_receive)) update_actions() @@ -145,7 +145,7 @@ return var/obj/item/I = parent modeswitch_action = new(I) - RegisterSignal(modeswitch_action, COMSIG_ACTION_TRIGGER, .proc/action_trigger) + RegisterSignal(modeswitch_action, COMSIG_ACTION_TRIGGER, PROC_REF(action_trigger)) if(I.obj_flags & IN_INVENTORY) var/mob/M = I.loc if(!istype(M)) @@ -198,7 +198,7 @@ to_chat(M, "[parent] seems to be [locked_flavor]!") return FALSE if((M.get_active_held_item() == parent) && allow_quick_empty) - INVOKE_ASYNC(src, .proc/quick_empty, M) + INVOKE_ASYNC(src, PROC_REF(quick_empty), M) /datum/component/storage/proc/preattack_intercept(datum/source, obj/O, mob/M, params) SIGNAL_HANDLER @@ -216,7 +216,7 @@ return if(!isturf(I.loc)) return - INVOKE_ASYNC(src, .proc/async_preattack_intercept, I, M) + INVOKE_ASYNC(src, PROC_REF(async_preattack_intercept), I, M) ///async functionality from preattack_intercept /datum/component/storage/proc/async_preattack_intercept(obj/item/I, mob/M) @@ -229,7 +229,7 @@ return var/datum/progressbar/progress = new(M, len, I.loc) var/list/rejections = list() - while(do_after(M, 10, TRUE, parent, FALSE, CALLBACK(src, .proc/handle_mass_pickup, things, I.loc, rejections, progress))) + while(do_after(M, 10, TRUE, parent, FALSE, CALLBACK(src, PROC_REF(handle_mass_pickup), things, I.loc, rejections, progress))) stoplag(1) progress.end_progress() to_chat(M, "You put everything you could [insert_preposition] [parent].") @@ -287,7 +287,7 @@ var/turf/T = get_turf(A) var/list/things = contents() var/datum/progressbar/progress = new(M, length(things), T) - while (do_after(M, 10, TRUE, T, FALSE, CALLBACK(src, .proc/mass_remove_from_storage, T, things, progress))) + while (do_after(M, 10, TRUE, T, FALSE, CALLBACK(src, PROC_REF(mass_remove_from_storage), T, things, progress))) stoplag(1) progress.end_progress() @@ -408,7 +408,7 @@ M.client.screen |= real_location.contents M.set_active_storage(src) LAZYOR(is_using, M) - RegisterSignal(M, COMSIG_PARENT_QDELETING, .proc/mob_deleted) + RegisterSignal(M, COMSIG_PARENT_QDELETING, PROC_REF(mob_deleted)) return TRUE /datum/component/storage/proc/mob_deleted(datum/source) @@ -592,10 +592,8 @@ // this must come before the screen objects only block, dunno why it wasn't before if(over_object == M) user_show_to_mob(M) - if(use_sound) - playsound(A, use_sound, 50, TRUE, -5) if(!istype(over_object, /atom/movable/screen)) - INVOKE_ASYNC(src, .proc/dump_content_at, over_object, M) + INVOKE_ASYNC(src, PROC_REF(dump_content_at), over_object, M) return if(A.loc != M) return @@ -606,7 +604,7 @@ 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, silent = FALSE) var/atom/A = parent if(!istype(M)) return FALSE @@ -615,6 +613,8 @@ to_chat(M, "[parent] seems to be [locked_flavor]!") return FALSE if(force || M.CanReach(parent, view_only = TRUE)) + if(use_sound && !silent) + playsound(A, use_sound, 50, TRUE, -5) show_to(M) /datum/component/storage/proc/mousedrop_receive(datum/source, atom/movable/O, mob/M) @@ -739,7 +739,7 @@ /datum/component/storage/proc/show_to_ghost(datum/source, mob/dead/observer/M) SIGNAL_HANDLER - 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) SIGNAL_HANDLER @@ -808,12 +808,12 @@ var/mob/living/carbon/human/H = user if(H.l_store == A && !H.get_active_held_item()) //Prevents opening if it's in a pocket. . = COMPONENT_NO_ATTACK_HAND - INVOKE_ASYNC(H, /mob.proc/put_in_hands, A) + INVOKE_ASYNC(H, TYPE_PROC_REF(/mob, put_in_hands), A) H.l_store = null return if(H.r_store == A && !H.get_active_held_item()) . = COMPONENT_NO_ATTACK_HAND - INVOKE_ASYNC(H, /mob.proc/put_in_hands, A) + INVOKE_ASYNC(H, TYPE_PROC_REF(/mob, put_in_hands), A) H.r_store = null return @@ -853,7 +853,7 @@ /datum/component/storage/proc/on_alt_click(datum/source, mob/user) SIGNAL_HANDLER - INVOKE_ASYNC(src, .proc/on_alt_click_async, source, user) + INVOKE_ASYNC(src, PROC_REF(on_alt_click_async), source, user) /datum/component/storage/proc/on_alt_click_async(datum/source, mob/user) if(!isliving(user) || !user.CanReach(parent) || user.incapacitated()) @@ -866,8 +866,6 @@ if(!quickdraw) A.add_fingerprint(user) user_show_to_mob(user) - if(use_sound) - playsound(A, use_sound, 50, TRUE, -5) return var/obj/item/I = locate() in real_location() diff --git a/code/datums/components/summoning.dm b/code/datums/components/summoning.dm index 9109e26b3003..bd335cbcbaad 100644 --- a/code/datums/components/summoning.dm +++ b/code/datums/components/summoning.dm @@ -24,11 +24,11 @@ /datum/component/summoning/RegisterWithParent() if(ismachinery(parent) || isstructure(parent) || isgun(parent)) // turrets, etc - RegisterSignal(parent, COMSIG_PROJECTILE_ON_HIT, .proc/projectile_hit) + RegisterSignal(parent, COMSIG_PROJECTILE_ON_HIT, PROC_REF(projectile_hit)) else if(isitem(parent)) - RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, .proc/item_afterattack) + RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, PROC_REF(item_afterattack)) else if(ishostile(parent)) - RegisterSignal(parent, COMSIG_HOSTILE_ATTACKINGTARGET, .proc/hostile_attackingtarget) + RegisterSignal(parent, COMSIG_HOSTILE_ATTACKINGTARGET, PROC_REF(hostile_attackingtarget)) /datum/component/summoning/UnregisterFromParent() UnregisterSignal(parent, list(COMSIG_ITEM_AFTERATTACK, COMSIG_HOSTILE_ATTACKINGTARGET, COMSIG_PROJECTILE_ON_HIT)) @@ -66,7 +66,7 @@ spawned_mobs += L if(faction != null) L.faction = faction - RegisterSignal(L, COMSIG_MOB_DEATH, .proc/on_spawned_death) // so we can remove them from the list, etc (for mobs with corpses) + RegisterSignal(L, COMSIG_MOB_DEATH, PROC_REF(on_spawned_death)) // so we can remove them from the list, etc (for mobs with corpses) playsound(spawn_location,spawn_sound, 50, TRUE) spawn_location.visible_message("[L] [spawn_text].") diff --git a/code/datums/components/swarming.dm b/code/datums/components/swarming.dm index e45c792f433e..1fa269b56f6f 100644 --- a/code/datums/components/swarming.dm +++ b/code/datums/components/swarming.dm @@ -4,8 +4,8 @@ var/is_swarming = FALSE var/list/swarm_members = list() var/static/list/swarming_loc_connections = list( - COMSIG_ATOM_EXITED =.proc/leave_swarm, \ - COMSIG_ATOM_ENTERED = .proc/join_swarm \ + COMSIG_ATOM_EXITED = PROC_REF(leave_swarm), \ + COMSIG_ATOM_ENTERED = PROC_REF(join_swarm) \ ) /datum/component/swarming/Initialize(max_x = 24, max_y = 24) diff --git a/code/datums/components/tackle.dm b/code/datums/components/tackle.dm index 9edf16e0b634..5c99377230c0 100644 --- a/code/datums/components/tackle.dm +++ b/code/datums/components/tackle.dm @@ -46,7 +46,7 @@ var/mob/P = parent to_chat(P, "You are now able to launch tackles! You can do so by activating throw intent, and clicking on your target with an empty hand.") - addtimer(CALLBACK(src, .proc/resetTackle), base_knockdown, TIMER_STOPPABLE) + addtimer(CALLBACK(src, PROC_REF(resetTackle)), base_knockdown, TIMER_STOPPABLE) /datum/component/tackler/Destroy() var/mob/P = parent @@ -54,9 +54,9 @@ return ..() /datum/component/tackler/RegisterWithParent() - RegisterSignal(parent, COMSIG_MOB_CLICKON, .proc/checkTackle) - RegisterSignal(parent, COMSIG_MOVABLE_IMPACT, .proc/sack) - RegisterSignal(parent, COMSIG_MOVABLE_POST_THROW, .proc/registerTackle) + RegisterSignal(parent, COMSIG_MOB_CLICKON, PROC_REF(checkTackle)) + RegisterSignal(parent, COMSIG_MOVABLE_IMPACT, PROC_REF(sack)) + RegisterSignal(parent, COMSIG_MOVABLE_POST_THROW, PROC_REF(registerTackle)) /datum/component/tackler/UnregisterFromParent() UnregisterSignal(parent, list(COMSIG_MOB_CLICKON, COMSIG_MOVABLE_IMPACT, COMSIG_MOVABLE_MOVED, COMSIG_MOVABLE_POST_THROW)) @@ -106,7 +106,7 @@ tackling = TRUE user.throw_mode_off(THROW_MODE_TOGGLE) - RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/checkObstacle) + RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(checkObstacle)) playsound(user, 'sound/weapons/thudswoosh.ogg', 40, TRUE, -1) if(can_see(user, A, 7)) @@ -120,7 +120,7 @@ user.Knockdown(base_knockdown, ignore_canstun = TRUE) user.adjustStaminaLoss(stamina_cost) user.throw_at(A, range, speed, user, FALSE) - addtimer(CALLBACK(src, .proc/resetTackle), base_knockdown, TIMER_STOPPABLE) + addtimer(CALLBACK(src, PROC_REF(resetTackle)), base_knockdown, TIMER_STOPPABLE) return(COMSIG_MOB_CANCEL_CLICKON) /** @@ -153,7 +153,7 @@ if(!iscarbon(hit)) if(hit.density) - INVOKE_ASYNC(src, .proc/splat, user, hit) + INVOKE_ASYNC(src, PROC_REF(splat), user, hit) return var/mob/living/carbon/target = hit @@ -183,7 +183,7 @@ user.Knockdown(30) if(ishuman(target) && !T.has_movespeed_modifier(/datum/movespeed_modifier/shove)) T.add_movespeed_modifier(/datum/movespeed_modifier/shove) // maybe define a slightly more severe/longer slowdown for this - addtimer(CALLBACK(T, /mob/living/carbon/proc/clear_shove_slowdown), SHOVE_SLOWDOWN_LENGTH) + addtimer(CALLBACK(T, TYPE_PROC_REF(/mob/living/carbon, clear_shove_slowdown)), SHOVE_SLOWDOWN_LENGTH) if(-1 to 0) // decent hit, both parties are about equally inconvenienced user.visible_message("[user] lands a passable tackle on [target], sending them both tumbling!", "You land a passable tackle on [target], sending you both tumbling!", target) @@ -213,7 +213,7 @@ target.Paralyze(5) target.Knockdown(30) if(ishuman(target) && ishuman(user)) - INVOKE_ASYNC(S.dna.species, /datum/species.proc/grab, S, T) + INVOKE_ASYNC(S.dna.species, TYPE_PROC_REF(/datum/species, grab), S, T) S.setGrabState(GRAB_PASSIVE) if(5 to INFINITY) // absolutely BODIED @@ -226,7 +226,7 @@ target.Paralyze(5) target.Knockdown(30) if(ishuman(target) && ishuman(user)) - INVOKE_ASYNC(S.dna.species, /datum/species.proc/grab, S, T) + INVOKE_ASYNC(S.dna.species, TYPE_PROC_REF(/datum/species, grab), S, T) S.setGrabState(GRAB_AGGRESSIVE) diff --git a/code/datums/components/tactical.dm b/code/datums/components/tactical.dm index d1941f8a72fd..f673abcf7bb0 100644 --- a/code/datums/components/tactical.dm +++ b/code/datums/components/tactical.dm @@ -8,8 +8,8 @@ src.allowed_slot = allowed_slot /datum/component/tactical/RegisterWithParent() - RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/modify) - RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/unmodify) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(modify)) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(unmodify)) /datum/component/tactical/UnregisterFromParent() UnregisterSignal(parent, list(COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED)) diff --git a/code/datums/components/taped.dm b/code/datums/components/taped.dm index 32d5120c72e0..fc18ec5fd876 100644 --- a/code/datums/components/taped.dm +++ b/code/datums/components/taped.dm @@ -29,8 +29,8 @@ set_tape(added_integrity) /datum/component/taped/RegisterWithParent() - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/tape_rip) - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/examine_tape) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(tape_rip)) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(examine_tape)) /datum/component/taped/UnregisterFromParent() UnregisterSignal(parent, list(COMSIG_PARENT_ATTACKBY, COMSIG_PARENT_EXAMINE)) diff --git a/code/datums/components/tether.dm b/code/datums/components/tether.dm index a458db2f2571..c6d9ac02947c 100644 --- a/code/datums/components/tether.dm +++ b/code/datums/components/tether.dm @@ -14,7 +14,7 @@ src.tether_name = initial(tmp.name) else src.tether_name = tether_name - RegisterSignal(parent, list(COMSIG_MOVABLE_PRE_MOVE), .proc/checkTether) + RegisterSignal(parent, list(COMSIG_MOVABLE_PRE_MOVE), PROC_REF(checkTether)) /datum/component/tether/proc/checkTether(mob/mover, newloc) SIGNAL_HANDLER diff --git a/code/datums/components/thermite.dm b/code/datums/components/thermite.dm index 23f020adb7f0..ac9e468b10ae 100644 --- a/code/datums/components/thermite.dm +++ b/code/datums/components/thermite.dm @@ -38,9 +38,9 @@ overlay = mutable_appearance('icons/effects/effects.dmi', "thermite") master.add_overlay(overlay) - RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, .proc/clean_react) - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/attackby_react) - RegisterSignal(parent, COMSIG_ATOM_FIRE_ACT, .proc/flame_react) + RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(clean_react)) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(attackby_react)) + RegisterSignal(parent, COMSIG_ATOM_FIRE_ACT, PROC_REF(flame_react)) /datum/component/thermite/UnregisterFromParent() UnregisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT) @@ -65,7 +65,7 @@ master.cut_overlay(overlay) playsound(master, 'sound/items/welder.ogg', 100, TRUE) var/obj/effect/overlay/thermite/fakefire = new(master) - addtimer(CALLBACK(src, .proc/burn_parent, fakefire, user), min(amount * 0.35 SECONDS, 20 SECONDS)) + addtimer(CALLBACK(src, PROC_REF(burn_parent), fakefire, user), min(amount * 0.35 SECONDS, 20 SECONDS)) UnregisterFromParent() /datum/component/thermite/proc/burn_parent(datum/fakefire, mob/user) diff --git a/code/datums/components/twohanded.dm b/code/datums/components/twohanded.dm index 88cc0d190014..51c9268d13ab 100644 --- a/code/datums/components/twohanded.dm +++ b/code/datums/components/twohanded.dm @@ -69,13 +69,13 @@ // register signals withthe parent item /datum/component/two_handed/RegisterWithParent() - RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/on_equip) - RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/on_drop) - RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, .proc/on_attack_self) - RegisterSignal(parent, COMSIG_ITEM_ATTACK, .proc/on_attack) - RegisterSignal(parent, COMSIG_ATOM_UPDATE_ICON, .proc/on_update_icon) - RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/on_moved) - RegisterSignal(parent, COMSIG_ITEM_SHARPEN_ACT, .proc/on_sharpen) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equip)) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_drop)) + RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, PROC_REF(on_attack_self)) + RegisterSignal(parent, COMSIG_ITEM_ATTACK, PROC_REF(on_attack)) + RegisterSignal(parent, COMSIG_ATOM_UPDATE_ICON, PROC_REF(on_update_icon)) + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(on_moved)) + RegisterSignal(parent, COMSIG_ITEM_SHARPEN_ACT, PROC_REF(on_sharpen)) // Remove all siginals registered to the parent item /datum/component/two_handed/UnregisterFromParent() @@ -145,7 +145,7 @@ if(SEND_SIGNAL(parent, COMSIG_TWOHANDED_WIELD, user) & COMPONENT_TWOHANDED_BLOCK_WIELD) return // blocked wield from item wielded = TRUE - RegisterSignal(user, COMSIG_MOB_SWAP_HANDS, .proc/on_swap_hands) + RegisterSignal(user, COMSIG_MOB_SWAP_HANDS, PROC_REF(on_swap_hands)) // update item stats and name var/obj/item/parent_item = parent @@ -172,7 +172,7 @@ offhand_item.name = "[parent_item.name] - offhand" offhand_item.desc = "Your second grip on [parent_item]." offhand_item.wielded = TRUE - RegisterSignal(offhand_item, COMSIG_ITEM_DROPPED, .proc/on_drop) + RegisterSignal(offhand_item, COMSIG_ITEM_DROPPED, PROC_REF(on_drop)) user.put_in_inactive_hand(offhand_item) /** diff --git a/code/datums/components/udder.dm b/code/datums/components/udder.dm index f954559d9df2..3b47efa3fcd0 100644 --- a/code/datums/components/udder.dm +++ b/code/datums/components/udder.dm @@ -17,8 +17,8 @@ src.on_milk_callback = on_milk_callback /datum/component/udder/RegisterWithParent() - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/on_examine) - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/on_attackby) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine)) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(on_attackby)) /datum/component/udder/UnregisterFromParent() QDEL_NULL(udder) @@ -138,7 +138,7 @@ /obj/item/udder/gutlunch/initial_conditions() if(udder_mob.gender == FEMALE) START_PROCESSING(SSobj, src) - RegisterSignal(udder_mob, COMSIG_HOSTILE_ATTACKINGTARGET, .proc/on_mob_attacking) + RegisterSignal(udder_mob, COMSIG_HOSTILE_ATTACKINGTARGET, PROC_REF(on_mob_attacking)) /obj/item/udder/gutlunch/Destroy() if(udder_mob) diff --git a/code/datums/components/uplink.dm b/code/datums/components/uplink.dm index 8b3e6eb16868..31a9e851a0a1 100644 --- a/code/datums/components/uplink.dm +++ b/code/datums/components/uplink.dm @@ -34,20 +34,20 @@ return COMPONENT_INCOMPATIBLE - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/OnAttackBy) - RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, .proc/interact) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(OnAttackBy)) + RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, PROC_REF(interact)) if(istype(parent, /obj/item/implant)) - RegisterSignal(parent, COMSIG_IMPLANT_ACTIVATED, .proc/implant_activation) - RegisterSignal(parent, COMSIG_IMPLANT_IMPLANTING, .proc/implanting) - RegisterSignal(parent, COMSIG_IMPLANT_OTHER, .proc/old_implant) - RegisterSignal(parent, COMSIG_IMPLANT_EXISTING_UPLINK, .proc/new_implant) + RegisterSignal(parent, COMSIG_IMPLANT_ACTIVATED, PROC_REF(implant_activation)) + RegisterSignal(parent, COMSIG_IMPLANT_IMPLANTING, PROC_REF(implanting)) + RegisterSignal(parent, COMSIG_IMPLANT_OTHER, PROC_REF(old_implant)) + RegisterSignal(parent, COMSIG_IMPLANT_EXISTING_UPLINK, PROC_REF(new_implant)) else if(istype(parent, /obj/item/pda)) - RegisterSignal(parent, COMSIG_PDA_CHANGE_RINGTONE, .proc/new_ringtone) - RegisterSignal(parent, COMSIG_PDA_CHECK_DETONATE, .proc/check_detonate) + RegisterSignal(parent, COMSIG_PDA_CHANGE_RINGTONE, PROC_REF(new_ringtone)) + RegisterSignal(parent, COMSIG_PDA_CHECK_DETONATE, PROC_REF(check_detonate)) else if(istype(parent, /obj/item/radio)) - RegisterSignal(parent, COMSIG_RADIO_NEW_FREQUENCY, .proc/new_frequency) + RegisterSignal(parent, COMSIG_RADIO_NEW_FREQUENCY, PROC_REF(new_frequency)) else if(istype(parent, /obj/item/pen)) - RegisterSignal(parent, COMSIG_PEN_ROTATED, .proc/pen_rotation) + RegisterSignal(parent, COMSIG_PEN_ROTATED, PROC_REF(pen_rotation)) uplink_items = get_uplink_items(_gamemode, TRUE, allow_restricted) @@ -120,7 +120,7 @@ return active = TRUE if(user) - INVOKE_ASYNC(src, .proc/ui_interact, user) + INVOKE_ASYNC(src, PROC_REF(ui_interact), user) // an unlocked uplink blocks also opening the PDA or headset menu return COMPONENT_NO_INTERACT diff --git a/code/datums/components/wearertargeting.dm b/code/datums/components/wearertargeting.dm index cbfec78d11f2..0d94e33c3d76 100644 --- a/code/datums/components/wearertargeting.dm +++ b/code/datums/components/wearertargeting.dm @@ -3,14 +3,14 @@ /datum/component/wearertargeting var/list/valid_slots = list() var/list/signals = list() - var/proctype = .proc/pass + var/proctype = PROC_REF(pass) var/mobtype = /mob/living /datum/component/wearertargeting/Initialize() if(!isitem(parent)) return COMPONENT_INCOMPATIBLE - RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/on_equip) - RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/on_drop) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equip)) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_drop)) /datum/component/wearertargeting/proc/on_equip(datum/source, mob/equipper, slot) SIGNAL_HANDLER diff --git a/code/datums/components/wet_floor.dm b/code/datums/components/wet_floor.dm index 9f723b9c07f6..f2c2b0b303ee 100644 --- a/code/datums/components/wet_floor.dm +++ b/code/datums/components/wet_floor.dm @@ -29,12 +29,12 @@ permanent = _permanent if(!permanent) START_PROCESSING(SSwet_floors, src) - addtimer(CALLBACK(src, .proc/gc, TRUE), 1) //GC after initialization. + addtimer(CALLBACK(src, PROC_REF(gc), TRUE), 1) //GC after initialization. last_process = world.time /datum/component/wet_floor/RegisterWithParent() - RegisterSignal(parent, COMSIG_TURF_IS_WET, .proc/is_wet) - RegisterSignal(parent, COMSIG_TURF_MAKE_DRY, .proc/dry) + RegisterSignal(parent, COMSIG_TURF_IS_WET, PROC_REF(is_wet)) + RegisterSignal(parent, COMSIG_TURF_MAKE_DRY, PROC_REF(dry)) /datum/component/wet_floor/UnregisterFromParent() UnregisterSignal(parent, list(COMSIG_TURF_IS_WET, COMSIG_TURF_MAKE_DRY)) @@ -94,7 +94,7 @@ qdel(parent.GetComponent(/datum/component/slippery)) return - parent.LoadComponent(/datum/component/slippery, intensity, lube_flags, CALLBACK(src, .proc/AfterSlip)) + parent.LoadComponent(/datum/component/slippery, intensity, lube_flags, CALLBACK(src, PROC_REF(AfterSlip))) /datum/component/wet_floor/proc/dry(datum/source, strength = TURF_WET_WATER, immediate = FALSE, duration_decrease = INFINITY) SIGNAL_HANDLER diff --git a/code/datums/dash_weapon.dm b/code/datums/dash_weapon.dm index 3f519fc49155..5ba239c26d7a 100644 --- a/code/datums/dash_weapon.dm +++ b/code/datums/dash_weapon.dm @@ -42,7 +42,7 @@ spot1.Beam(spot2,beam_effect,time=20) current_charges-- owner.update_action_buttons_icon() - addtimer(CALLBACK(src, .proc/charge), charge_rate) + addtimer(CALLBACK(src, PROC_REF(charge)), charge_rate) /datum/action/innate/dash/proc/charge() current_charges = clamp(current_charges + 1, 0, max_charges) diff --git a/code/datums/datum.dm b/code/datums/datum.dm index e2f478ba7834..73aab2fb8ca8 100644 --- a/code/datums/datum.dm +++ b/code/datums/datum.dm @@ -40,6 +40,11 @@ /// Datum level flags var/datum_flags = NONE + /// A cached version of our \ref + /// The brunt of \ref costs are in creating entries in the string tree (a tree of immutable strings) + /// This avoids doing that more then once per datum by ensuring ref strings always have a reference to them after they're first pulled + var/cached_ref + /// A weak reference to another datum var/datum/weakref/weak_reference diff --git a/code/datums/diseases/advance/symptoms/cough.dm b/code/datums/diseases/advance/symptoms/cough.dm index 1ee6f7d2eb55..547e66855bf6 100644 --- a/code/datums/diseases/advance/symptoms/cough.dm +++ b/code/datums/diseases/advance/symptoms/cough.dm @@ -73,6 +73,6 @@ BONUS if(power >= 2 && prob(30)) to_chat(M, "[pick("You have a coughing fit!", "You can't stop coughing!")]") M.Immobilize(20) - addtimer(CALLBACK(M, /mob/.proc/emote, "cough"), 6) - addtimer(CALLBACK(M, /mob/.proc/emote, "cough"), 12) - addtimer(CALLBACK(M, /mob/.proc/emote, "cough"), 18) + addtimer(CALLBACK(M, TYPE_PROC_REF(/mob, emote), "cough"), 6) + addtimer(CALLBACK(M, TYPE_PROC_REF(/mob, emote), "cough"), 12) + addtimer(CALLBACK(M, TYPE_PROC_REF(/mob, emote), "cough"), 18) diff --git a/code/datums/diseases/advance/symptoms/heal.dm b/code/datums/diseases/advance/symptoms/heal.dm index bdc47a32c3a0..c7e5b5c064ac 100644 --- a/code/datums/diseases/advance/symptoms/heal.dm +++ b/code/datums/diseases/advance/symptoms/heal.dm @@ -277,12 +277,12 @@ if(M.getBruteLoss() + M.getFireLoss() >= 70 && !active_coma) to_chat(M, "You feel yourself slip into a regenerative coma...") active_coma = TRUE - addtimer(CALLBACK(src, .proc/coma, M), 60) + addtimer(CALLBACK(src, PROC_REF(coma), M), 60) /datum/symptom/heal/coma/proc/coma(mob/living/M) M.fakedeath("regenerative_coma", !deathgasp) - addtimer(CALLBACK(src, .proc/uncoma, M), 300) + addtimer(CALLBACK(src, PROC_REF(uncoma), M), 300) /datum/symptom/heal/coma/proc/uncoma(mob/living/M) diff --git a/code/datums/diseases/advance/symptoms/shedding.dm b/code/datums/diseases/advance/symptoms/shedding.dm index d1b59edbc1c8..2423208cb072 100644 --- a/code/datums/diseases/advance/symptoms/shedding.dm +++ b/code/datums/diseases/advance/symptoms/shedding.dm @@ -40,11 +40,11 @@ BONUS if(3, 4) if(!(H.hairstyle == "Bald") && !(H.hairstyle == "Balding Hair")) to_chat(H, "Your hair starts to fall out in clumps...") - addtimer(CALLBACK(src, .proc/Shed, H, FALSE), 50) + addtimer(CALLBACK(src, PROC_REF(Shed), H, FALSE), 50) if(5) if(!(H.facial_hairstyle == "Shaved") || !(H.hairstyle == "Bald")) to_chat(H, "Your hair starts to fall out in clumps...") - addtimer(CALLBACK(src, .proc/Shed, H, TRUE), 50) + addtimer(CALLBACK(src, PROC_REF(Shed), H, TRUE), 50) /datum/symptom/shedding/proc/Shed(mob/living/carbon/human/H, fullbald) if(fullbald) diff --git a/code/datums/diseases/pierrot_throat.dm b/code/datums/diseases/pierrot_throat.dm index 56261688fc2a..21a780b93665 100644 --- a/code/datums/diseases/pierrot_throat.dm +++ b/code/datums/diseases/pierrot_throat.dm @@ -28,7 +28,7 @@ affected_mob.say( pick( list("HONK!", "Honk!", "Honk.", "Honk?", "Honk!!", "Honk?!", "Honk...") ) , forced = "pierrot's throat") /datum/disease/pierrot_throat/after_add() - RegisterSignal(affected_mob, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(affected_mob, COMSIG_MOB_SAY, PROC_REF(handle_speech)) /datum/disease/pierrot_throat/proc/handle_speech(datum/source, list/speech_args) diff --git a/code/datums/dna.dm b/code/datums/dna.dm index 5a1c2b3783d4..dde90dd5dbe8 100644 --- a/code/datums/dna.dm +++ b/code/datums/dna.dm @@ -688,12 +688,12 @@ spawn_gibs() set_species(/datum/species/skeleton) if(prob(90)) - addtimer(CALLBACK(src, .proc/death), 30) + addtimer(CALLBACK(src, PROC_REF(death)), 30) if(mind) mind.hasSoul = FALSE if(5) to_chat(src, "LOOK UP!") - addtimer(CALLBACK(src, .proc/something_horrible_mindmelt), 30) + addtimer(CALLBACK(src, PROC_REF(something_horrible_mindmelt)), 30) /mob/living/carbon/human/proc/something_horrible_mindmelt() @@ -704,4 +704,4 @@ eyes.Remove(src) qdel(eyes) visible_message("[src] looks up and their eyes melt away!", "='userdanger'>I understand now.") - addtimer(CALLBACK(src, .proc/adjustOrganLoss, ORGAN_SLOT_BRAIN, 200), 20) + addtimer(CALLBACK(src, PROC_REF(adjustOrganLoss), ORGAN_SLOT_BRAIN, 200), 20) diff --git a/code/datums/ductnet.dm b/code/datums/ductnet.dm index 14a74a67c490..3c109564815e 100644 --- a/code/datums/ductnet.dm +++ b/code/datums/ductnet.dm @@ -15,8 +15,8 @@ /datum/ductnet/proc/remove_duct(obj/machinery/duct/ducting) destroy_network(FALSE) for(var/obj/machinery/duct/D in ducting.neighbours) - addtimer(CALLBACK(D, /obj/machinery/duct/proc/reconnect), 0) //all needs to happen after the original duct that was destroyed finishes destroying itself - addtimer(CALLBACK(D, /obj/machinery/duct/proc/generate_connects), 0) + addtimer(CALLBACK(D, TYPE_PROC_REF(/obj/machinery/duct, reconnect)), 0) //all needs to happen after the original duct that was destroyed finishes destroying itself + addtimer(CALLBACK(D, TYPE_PROC_REF(/obj/machinery/duct, generate_connects)), 0) qdel(src) ///add a plumbing object to either demanders or suppliers /datum/ductnet/proc/add_plumber(datum/component/plumbing/P, dir) diff --git a/code/datums/elements/_element.dm b/code/datums/elements/_element.dm index 55abf0a85de1..e9779644c211 100644 --- a/code/datums/elements/_element.dm +++ b/code/datums/elements/_element.dm @@ -23,7 +23,7 @@ return ELEMENT_INCOMPATIBLE SEND_SIGNAL(target, COMSIG_ELEMENT_ATTACH, src) if(element_flags & ELEMENT_DETACH) - RegisterSignal(target, COMSIG_PARENT_QDELETING, .proc/Detach, override = TRUE) + RegisterSignal(target, COMSIG_PARENT_QDELETING, PROC_REF(Detach), override = TRUE) /* The override = TRUE here is to suppress runtimes happening because of the blood decal element diff --git a/code/datums/elements/bed_tucking.dm b/code/datums/elements/bed_tucking.dm index 10135871a7ad..c094e5a5b108 100644 --- a/code/datums/elements/bed_tucking.dm +++ b/code/datums/elements/bed_tucking.dm @@ -17,7 +17,7 @@ x_offset = x y_offset = y rotation_degree = rotation - RegisterSignal(target, COMSIG_ITEM_ATTACK_OBJ, .proc/tuck_into_bed) + RegisterSignal(target, COMSIG_ITEM_ATTACK_OBJ, PROC_REF(tuck_into_bed)) /datum/element/bed_tuckable/Detach(obj/target) . = ..() @@ -44,7 +44,7 @@ tucked.pixel_y = y_offset if(rotation_degree) tucked.transform = turn(tucked.transform, rotation_degree) - RegisterSignal(tucked, COMSIG_ITEM_PICKUP, .proc/untuck) + RegisterSignal(tucked, COMSIG_ITEM_PICKUP, PROC_REF(untuck)) return COMPONENT_NO_AFTERATTACK diff --git a/code/datums/elements/bsa_blocker.dm b/code/datums/elements/bsa_blocker.dm index 5bdf4fa90912..96606a553096 100644 --- a/code/datums/elements/bsa_blocker.dm +++ b/code/datums/elements/bsa_blocker.dm @@ -3,7 +3,7 @@ /datum/element/bsa_blocker/Attach(datum/target) if(!isatom(target)) return ELEMENT_INCOMPATIBLE - RegisterSignal(target, COMSIG_ATOM_BSA_BEAM, .proc/block_bsa) + RegisterSignal(target, COMSIG_ATOM_BSA_BEAM, PROC_REF(block_bsa)) return ..() /datum/element/bsa_blocker/proc/block_bsa() diff --git a/code/datums/elements/cleaning.dm b/code/datums/elements/cleaning.dm index 1f9eb15ea1c8..c43c36902af5 100644 --- a/code/datums/elements/cleaning.dm +++ b/code/datums/elements/cleaning.dm @@ -2,7 +2,7 @@ . = ..() if(!ismovable(target)) return ELEMENT_INCOMPATIBLE - RegisterSignal(target, COMSIG_MOVABLE_MOVED, .proc/Clean) + RegisterSignal(target, COMSIG_MOVABLE_MOVED, PROC_REF(Clean)) /datum/element/cleaning/Detach(datum/target) . = ..() diff --git a/code/datums/elements/connect_loc.dm b/code/datums/elements/connect_loc.dm index cfadedd5980d..a0614dd12e0d 100644 --- a/code/datums/elements/connect_loc.dm +++ b/code/datums/elements/connect_loc.dm @@ -14,7 +14,7 @@ src.connections = connections - RegisterSignal(listener, COMSIG_MOVABLE_MOVED, .proc/on_moved, override = TRUE) + RegisterSignal(listener, COMSIG_MOVABLE_MOVED, PROC_REF(on_moved), override = TRUE) update_signals(listener) /datum/element/connect_loc/Detach(atom/movable/listener) diff --git a/code/datums/elements/decals/_decals.dm b/code/datums/elements/decals/_decals.dm index 17ba311bc5a3..96c5d6a5fab3 100644 --- a/code/datums/elements/decals/_decals.dm +++ b/code/datums/elements/decals/_decals.dm @@ -24,21 +24,21 @@ cleanable = _cleanable rotated = _rotated - RegisterSignal(target,COMSIG_ATOM_UPDATE_OVERLAYS,.proc/apply_overlay, TRUE) + RegisterSignal(target,COMSIG_ATOM_UPDATE_OVERLAYS, PROC_REF(apply_overlay), TRUE) if(isturf(target)) - RegisterSignal(target,COMSIG_TURF_AFTER_SHUTTLE_MOVE,.proc/shuttlemove_react, TRUE) + RegisterSignal(target,COMSIG_TURF_AFTER_SHUTTLE_MOVE, PROC_REF(shuttlemove_react), TRUE) if(target.flags_1 & INITIALIZED_1) target.update_appearance() //could use some queuing here now maybe. else - RegisterSignal(target,COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZE,.proc/late_update_icon, TRUE) + RegisterSignal(target,COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZE, PROC_REF(late_update_icon), TRUE) if(isitem(target)) - INVOKE_ASYNC(target, /obj/item/.proc/update_slot_icon, TRUE) + INVOKE_ASYNC(target, TYPE_PROC_REF(/obj/item, update_slot_icon), TRUE) if(_dir) - RegisterSignal(target, COMSIG_ATOM_DIR_CHANGE, .proc/rotate_react,TRUE) + RegisterSignal(target, COMSIG_ATOM_DIR_CHANGE, PROC_REF(rotate_react),TRUE) if(_cleanable) - RegisterSignal(target, COMSIG_COMPONENT_CLEAN_ACT, .proc/clean_react,TRUE) + RegisterSignal(target, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(clean_react),TRUE) if(_description) - RegisterSignal(target, COMSIG_PARENT_EXAMINE, .proc/examine,TRUE) + RegisterSignal(target, COMSIG_PARENT_EXAMINE, PROC_REF(examine),TRUE) /** * ## generate_appearance @@ -63,7 +63,7 @@ UnregisterSignal(source, list(COMSIG_ATOM_DIR_CHANGE, COMSIG_COMPONENT_CLEAN_ACT, COMSIG_PARENT_EXAMINE, COMSIG_ATOM_UPDATE_OVERLAYS, COMSIG_TURF_AFTER_SHUTTLE_MOVE)) source.update_appearance() if(isitem(source)) - INVOKE_ASYNC(source, /obj/item/.proc/update_slot_icon) + INVOKE_ASYNC(source, TYPE_PROC_REF(/obj/item, update_slot_icon)) return ..() /datum/element/decal/proc/late_update_icon(atom/source) diff --git a/code/datums/elements/decals/blood.dm b/code/datums/elements/decals/blood.dm index d5f30c4d0c57..85f75bef2416 100644 --- a/code/datums/elements/decals/blood.dm +++ b/code/datums/elements/decals/blood.dm @@ -5,34 +5,22 @@ return ELEMENT_INCOMPATIBLE . = ..() - RegisterSignal(target, COMSIG_ATOM_GET_EXAMINE_NAME, .proc/get_examine_name, TRUE) + RegisterSignal(target, COMSIG_ATOM_GET_EXAMINE_NAME, PROC_REF(get_examine_name), TRUE) /datum/element/decal/blood/Detach(atom/source, force) UnregisterSignal(source, COMSIG_ATOM_GET_EXAMINE_NAME) return ..() /datum/element/decal/blood/generate_appearance(_icon, _icon_state, _dir, _layer, _color, _alpha, source) - var/obj/item/I = source - if(!_icon) - _icon = 'icons/effects/blood.dmi' - if(!_icon_state) - _icon_state = "itemblood" + if(!_icon || !_icon_state) + return FALSE if(!_color) _color = COLOR_BLOOD - var/item_icon = I.icon - var/item_icon_state = I.icon_state - var/static/list/blood_splatter_appearances = list() - //try to find a pre-processed blood-splatter. otherwise, make a new one - var/index = "[REF(item_icon)]-[item_icon_state]" - pic = blood_splatter_appearances[index] - - if(!pic) - var/icon/blood_splatter_icon = icon(I.icon, I.icon_state, null, 1) //we only want to apply blood-splatters to the initial icon_state for each object - blood_splatter_icon.Blend("#fff", ICON_ADD) //fills the icon_state with white (except where it's transparent) - blood_splatter_icon.Blend(icon(_icon, _icon_state), ICON_MULTIPLY) //adds blood and the remaining white areas become transparant - pic = mutable_appearance(blood_splatter_icon, initial(I.icon_state)) - pic.color = _color - blood_splatter_appearances[index] = pic + var/icon/blood_splatter_icon = icon(_icon, _icon_state, , 1) //we only want to apply blood-splatters to the initial icon_state for each object + blood_splatter_icon.Blend("#fff", ICON_ADD) //fills the icon_state with white (except where it's transparent) + blood_splatter_icon.Blend(icon('icons/effects/blood.dmi', "itemblood"), ICON_MULTIPLY) //adds blood and the remaining white areas become transparant + pic = mutable_appearance(blood_splatter_icon) + pic.color = _color return TRUE /datum/element/decal/blood/proc/get_examine_name(datum/source, mob/user, list/override) diff --git a/code/datums/elements/digitalcamo.dm b/code/datums/elements/digitalcamo.dm index 8c9b5e88a5a9..de0520b5bbab 100644 --- a/code/datums/elements/digitalcamo.dm +++ b/code/datums/elements/digitalcamo.dm @@ -10,8 +10,8 @@ . = ..() if(!isliving(target) || (target in attached_mobs)) return ELEMENT_INCOMPATIBLE - RegisterSignal(target, COMSIG_PARENT_EXAMINE, .proc/on_examine) - RegisterSignal(target, COMSIG_LIVING_CAN_TRACK, .proc/can_track) + RegisterSignal(target, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine)) + RegisterSignal(target, COMSIG_LIVING_CAN_TRACK, PROC_REF(can_track)) var/image/img = image(loc = target) img.override = TRUE attached_mobs[target] = img diff --git a/code/datums/elements/dunkable.dm b/code/datums/elements/dunkable.dm index 8ba38a515dad..1eaee1d8cbbc 100644 --- a/code/datums/elements/dunkable.dm +++ b/code/datums/elements/dunkable.dm @@ -10,7 +10,7 @@ if(!isitem(target)) return ELEMENT_INCOMPATIBLE dunk_amount = amount_per_dunk - RegisterSignal(target, COMSIG_ITEM_AFTERATTACK, .proc/get_dunked) + RegisterSignal(target, COMSIG_ITEM_AFTERATTACK, PROC_REF(get_dunked)) /datum/element/dunkable/Detach(datum/target) . = ..() diff --git a/code/datums/elements/earhealing.dm b/code/datums/elements/earhealing.dm index d62a6fb9101a..8fc916c99c14 100644 --- a/code/datums/elements/earhealing.dm +++ b/code/datums/elements/earhealing.dm @@ -10,7 +10,7 @@ if(!isitem(target)) return ELEMENT_INCOMPATIBLE - RegisterSignal(target, list(COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED), .proc/equippedChanged) + RegisterSignal(target, list(COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED), PROC_REF(equippedChanged)) /datum/element/earhealing/Detach(datum/target) . = ..() diff --git a/code/datums/elements/embed.dm b/code/datums/elements/embed.dm index 40b7d38d65a4..9b427b6b80c5 100644 --- a/code/datums/elements/embed.dm +++ b/code/datums/elements/embed.dm @@ -38,12 +38,12 @@ return ELEMENT_INCOMPATIBLE if(isitem(target)) - RegisterSignal(target, COMSIG_MOVABLE_IMPACT_ZONE, .proc/checkEmbedMob) - RegisterSignal(target, COMSIG_MOVABLE_IMPACT, .proc/checkEmbedOther) - RegisterSignal(target, COMSIG_ELEMENT_ATTACH, .proc/severancePackage) - RegisterSignal(target, COMSIG_PARENT_EXAMINE, .proc/examined) - RegisterSignal(target, COMSIG_EMBED_TRY_FORCE, .proc/tryForceEmbed) - RegisterSignal(target, COMSIG_ITEM_DISABLE_EMBED, .proc/detachFromWeapon) + RegisterSignal(target, COMSIG_MOVABLE_IMPACT_ZONE, PROC_REF(checkEmbedMob)) + RegisterSignal(target, COMSIG_MOVABLE_IMPACT, PROC_REF(checkEmbedOther)) + RegisterSignal(target, COMSIG_ELEMENT_ATTACH, PROC_REF(severancePackage)) + RegisterSignal(target, COMSIG_PARENT_EXAMINE, PROC_REF(examined)) + RegisterSignal(target, COMSIG_EMBED_TRY_FORCE, PROC_REF(tryForceEmbed)) + RegisterSignal(target, COMSIG_ITEM_DISABLE_EMBED, PROC_REF(detachFromWeapon)) if(!initialized) src.embed_chance = embed_chance src.fall_chance = fall_chance @@ -60,7 +60,7 @@ initialized = TRUE else payload_type = projectile_payload - RegisterSignal(target, COMSIG_PROJECTILE_SELF_ON_HIT, .proc/checkEmbedProjectile) + RegisterSignal(target, COMSIG_PROJECTILE_SELF_ON_HIT, PROC_REF(checkEmbedProjectile)) /datum/element/embed/Detach(obj/target) diff --git a/code/datums/elements/firestacker.dm b/code/datums/elements/firestacker.dm index de829098637a..9646579a83ca 100644 --- a/code/datums/elements/firestacker.dm +++ b/code/datums/elements/firestacker.dm @@ -15,10 +15,10 @@ src.amount = amount - RegisterSignal(target, COMSIG_MOVABLE_IMPACT, .proc/impact, override = TRUE) + RegisterSignal(target, COMSIG_MOVABLE_IMPACT, PROC_REF(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) + RegisterSignal(target, COMSIG_ITEM_ATTACK, PROC_REF(item_attack), override = TRUE) + RegisterSignal(target, COMSIG_ITEM_ATTACK_SELF, PROC_REF(item_attack_self), override = TRUE) /datum/element/firestacker/Detach(datum/source, force) . = ..() diff --git a/code/datums/elements/forced_gravity.dm b/code/datums/elements/forced_gravity.dm index c567ff7b0961..b7bccea7ff02 100644 --- a/code/datums/elements/forced_gravity.dm +++ b/code/datums/elements/forced_gravity.dm @@ -16,9 +16,9 @@ src.gravity = gravity src.ignore_space = ignore_space - RegisterSignal(target, COMSIG_ATOM_HAS_GRAVITY, .proc/gravity_check) + RegisterSignal(target, COMSIG_ATOM_HAS_GRAVITY, PROC_REF(gravity_check)) if(isturf(target)) - RegisterSignal(target, COMSIG_TURF_HAS_GRAVITY, .proc/turf_gravity_check) + RegisterSignal(target, COMSIG_TURF_HAS_GRAVITY, PROC_REF(turf_gravity_check)) ADD_TRAIT(target, TRAIT_FORCED_GRAVITY, our_ref) diff --git a/code/datums/elements/lazy_fishing_spot.dm b/code/datums/elements/lazy_fishing_spot.dm index 603cd56e22fb..f8c4cfa80134 100644 --- a/code/datums/elements/lazy_fishing_spot.dm +++ b/code/datums/elements/lazy_fishing_spot.dm @@ -12,7 +12,7 @@ CRASH("Lazy fishing spot had no configuration passed in.") src.configuration = configuration - RegisterSignal(target, COMSIG_PRE_FISHING, .proc/create_fishing_spot) + RegisterSignal(target, COMSIG_PRE_FISHING, PROC_REF(create_fishing_spot)) /datum/element/lazy_fishing_spot/Detach(datum/target) UnregisterSignal(target, COMSIG_PRE_FISHING) diff --git a/code/datums/elements/light_blocking.dm b/code/datums/elements/light_blocking.dm index 69b6beffe6a1..2c73a082625a 100644 --- a/code/datums/elements/light_blocking.dm +++ b/code/datums/elements/light_blocking.dm @@ -9,7 +9,7 @@ . = ..() if(!ismovable(target)) return ELEMENT_INCOMPATIBLE - RegisterSignal(target, COMSIG_MOVABLE_MOVED, .proc/on_target_move) + RegisterSignal(target, COMSIG_MOVABLE_MOVED, PROC_REF(on_target_move)) var/atom/movable/movable_target = target if(isturf(movable_target.loc)) var/turf/turf_loc = movable_target.loc diff --git a/code/datums/elements/mobappearance.dm b/code/datums/elements/mobappearance.dm index 41b94755389f..4d8cc6eb2877 100644 --- a/code/datums/elements/mobappearance.dm +++ b/code/datums/elements/mobappearance.dm @@ -23,11 +23,11 @@ mob_appearance(target) target.RemoveElement(/datum/element/appearance_on_login) else - RegisterSignal(target, COMSIG_MOB_LOGIN, .proc/on_mob_login) + RegisterSignal(target, COMSIG_MOB_LOGIN, PROC_REF(on_mob_login)) /datum/element/appearance_on_login/proc/on_mob_login(mob/source) SIGNAL_HANDLER - INVOKE_ASYNC(src, .proc/mob_appearance, source) + INVOKE_ASYNC(src, PROC_REF(mob_appearance), source) UnregisterSignal(source, COMSIG_MOB_LOGIN) source.RemoveElement(/datum/element/appearance_on_login) @@ -40,7 +40,7 @@ /datum/element/appearance_on_login/proc/mob_appearance(mob/living/simple_animal/target) - var/picked_icon = show_radial_menu(target, target, icon_list, custom_check = CALLBACK(src, .proc/check_menu, target), radius = 38, require_near = TRUE) + var/picked_icon = show_radial_menu(target, target, icon_list, custom_check = CALLBACK(src, PROC_REF(check_menu), target), radius = 38, require_near = TRUE) if(picked_icon) target.icon_state = "[picked_icon]" target.icon_living = "[picked_icon]" diff --git a/code/datums/elements/renamemob.dm b/code/datums/elements/renamemob.dm index bbc1fb99a7c2..909f55adc3e9 100644 --- a/code/datums/elements/renamemob.dm +++ b/code/datums/elements/renamemob.dm @@ -8,11 +8,11 @@ rename_mob(target) target.RemoveElement(/datum/element/rename_on_login) else - RegisterSignal(target, COMSIG_MOB_LOGIN, .proc/on_mob_login) + RegisterSignal(target, COMSIG_MOB_LOGIN, PROC_REF(on_mob_login)) /datum/element/rename_on_login/proc/on_mob_login(mob/source) SIGNAL_HANDLER - INVOKE_ASYNC(src, .proc/rename_mob, source) + INVOKE_ASYNC(src, PROC_REF(rename_mob), source) UnregisterSignal(source, COMSIG_MOB_LOGIN) source.RemoveElement(/datum/element/rename_on_login) diff --git a/code/datums/elements/selfknockback.dm b/code/datums/elements/selfknockback.dm index c99f8ab4cc26..fe53db1d4207 100644 --- a/code/datums/elements/selfknockback.dm +++ b/code/datums/elements/selfknockback.dm @@ -11,9 +11,9 @@ clamping the Knockback_Force value below. */ /datum/element/selfknockback/Attach(datum/target, throw_amount, speed_amount) . = ..() if(isitem(target)) - RegisterSignal(target, COMSIG_ITEM_AFTERATTACK, .proc/Item_SelfKnockback) + RegisterSignal(target, COMSIG_ITEM_AFTERATTACK, PROC_REF(Item_SelfKnockback)) else if(isprojectile(target)) - RegisterSignal(target, COMSIG_PROJECTILE_FIRE, .proc/Projectile_SelfKnockback) + RegisterSignal(target, COMSIG_PROJECTILE_FIRE, PROC_REF(Projectile_SelfKnockback)) else return ELEMENT_INCOMPATIBLE diff --git a/code/datums/elements/snail_crawl.dm b/code/datums/elements/snail_crawl.dm index 2bca125f4c25..49b3e5ccf0e8 100644 --- a/code/datums/elements/snail_crawl.dm +++ b/code/datums/elements/snail_crawl.dm @@ -7,9 +7,9 @@ return ELEMENT_INCOMPATIBLE var/P if(iscarbon(target)) - P = .proc/snail_crawl + P = PROC_REF(snail_crawl) else - P = .proc/lubricate + P = PROC_REF(lubricate) RegisterSignal(target, COMSIG_MOVABLE_MOVED, P) /datum/element/snailcrawl/Detach(mob/living/carbon/target) diff --git a/code/datums/elements/squish.dm b/code/datums/elements/squish.dm index 3439d590669f..5a6c226b3142 100644 --- a/code/datums/elements/squish.dm +++ b/code/datums/elements/squish.dm @@ -18,7 +18,7 @@ var/mob/living/carbon/C = target var/was_lying = C.body_position == LYING_DOWN - addtimer(CALLBACK(src, .proc/Detach, C, was_lying, reverse), duration) + addtimer(CALLBACK(src, PROC_REF(Detach), C, was_lying, reverse), duration) if(reverse) C.transform = C.transform.Scale(SHORT, TALL) diff --git a/code/datums/elements/tool_flash.dm b/code/datums/elements/tool_flash.dm index cf03bdb502e5..53b94159e9b8 100644 --- a/code/datums/elements/tool_flash.dm +++ b/code/datums/elements/tool_flash.dm @@ -16,8 +16,8 @@ src.flash_strength = flash_strength - RegisterSignal(target, COMSIG_TOOL_IN_USE, .proc/prob_flash) - RegisterSignal(target, COMSIG_TOOL_START_USE, .proc/flash) + RegisterSignal(target, COMSIG_TOOL_IN_USE, PROC_REF(prob_flash)) + RegisterSignal(target, COMSIG_TOOL_START_USE, PROC_REF(flash)) /datum/element/tool_flash/Detach(datum/source, force) . = ..() diff --git a/code/datums/elements/turf_transparency.dm b/code/datums/elements/turf_transparency.dm index 8a2ebca136cf..715c6ab4ecbd 100644 --- a/code/datums/elements/turf_transparency.dm +++ b/code/datums/elements/turf_transparency.dm @@ -15,8 +15,8 @@ our_turf.plane = OPENSPACE_PLANE our_turf.layer = OPENSPACE_LAYER - RegisterSignal(target, COMSIG_TURF_MULTIZ_DEL, .proc/on_multiz_turf_del, TRUE) - RegisterSignal(target, COMSIG_TURF_MULTIZ_NEW, .proc/on_multiz_turf_new, TRUE) + RegisterSignal(target, COMSIG_TURF_MULTIZ_DEL, PROC_REF(on_multiz_turf_del), TRUE) + RegisterSignal(target, COMSIG_TURF_MULTIZ_NEW, PROC_REF(on_multiz_turf_new), TRUE) ADD_TRAIT(our_turf, TURF_Z_TRANSPARENT_TRAIT, TURF_TRAIT) diff --git a/code/datums/elements/undertile.dm b/code/datums/elements/undertile.dm index 3957f4632559..65301e8bdc0d 100644 --- a/code/datums/elements/undertile.dm +++ b/code/datums/elements/undertile.dm @@ -19,7 +19,7 @@ if(!ismovable(target)) return ELEMENT_INCOMPATIBLE - RegisterSignal(target, COMSIG_OBJ_HIDE, .proc/hide) + RegisterSignal(target, COMSIG_OBJ_HIDE, PROC_REF(hide)) src.invisibility_trait = invisibility_trait src.invisibility_level = invisibility_level diff --git a/code/datums/elements/update_icon_blocker.dm b/code/datums/elements/update_icon_blocker.dm index 5c84ed9886aa..674b314ec9c1 100644 --- a/code/datums/elements/update_icon_blocker.dm +++ b/code/datums/elements/update_icon_blocker.dm @@ -4,7 +4,7 @@ . = ..() if(!istype(target, /atom)) return ELEMENT_INCOMPATIBLE - RegisterSignal(target, COMSIG_ATOM_UPDATE_ICON, .proc/block_update_icon) + RegisterSignal(target, COMSIG_ATOM_UPDATE_ICON, PROC_REF(block_update_icon)) /datum/element/update_icon_blocker/proc/block_update_icon() SIGNAL_HANDLER diff --git a/code/datums/elements/update_icon_updates_onmob.dm b/code/datums/elements/update_icon_updates_onmob.dm index 7d1cb8d287d1..0ec9a472e64f 100644 --- a/code/datums/elements/update_icon_updates_onmob.dm +++ b/code/datums/elements/update_icon_updates_onmob.dm @@ -5,7 +5,7 @@ . = ..() if(!istype(target, /obj/item)) return ELEMENT_INCOMPATIBLE - RegisterSignal(target, COMSIG_ATOM_UPDATED_ICON, .proc/update_onmob) + RegisterSignal(target, COMSIG_ATOM_UPDATED_ICON, PROC_REF(update_onmob)) /datum/element/update_icon_updates_onmob/proc/update_onmob(obj/item/target) SIGNAL_HANDLER diff --git a/code/datums/elements/waddling.dm b/code/datums/elements/waddling.dm index 04a44d85f267..059546116461 100644 --- a/code/datums/elements/waddling.dm +++ b/code/datums/elements/waddling.dm @@ -5,9 +5,9 @@ if(!ismovable(target)) return ELEMENT_INCOMPATIBLE if(isliving(target)) - RegisterSignal(target, COMSIG_MOVABLE_MOVED, .proc/LivingWaddle) + RegisterSignal(target, COMSIG_MOVABLE_MOVED, PROC_REF(LivingWaddle)) else - RegisterSignal(target, COMSIG_MOVABLE_MOVED, .proc/Waddle) + RegisterSignal(target, COMSIG_MOVABLE_MOVED, PROC_REF(Waddle)) /datum/element/waddling/Detach(datum/source, force) . = ..() diff --git a/code/datums/holocall.dm b/code/datums/holocall.dm index 445d795d0024..6fd41b9df929 100644 --- a/code/datums/holocall.dm +++ b/code/datums/holocall.dm @@ -241,7 +241,7 @@ /obj/item/disk/holodisk/Initialize(mapload) . = ..() if(preset_record_text) - INVOKE_ASYNC(src, .proc/build_record) + INVOKE_ASYNC(src, PROC_REF(build_record)) /obj/item/disk/holodisk/Destroy() QDEL_NULL(record) diff --git a/code/datums/hud.dm b/code/datums/hud.dm index abc82ea6806e..24865387794a 100644 --- a/code/datums/hud.dm +++ b/code/datums/hud.dm @@ -89,7 +89,7 @@ GLOBAL_LIST_INIT(huds, list( RegisterSignal(M, COMSIG_PARENT_QDELETING, PROC_REF(unregister_mob)) if(next_time_allowed[M] > world.time) if(!queued_to_see[M]) - addtimer(CALLBACK(src, .proc/show_hud_images_after_cooldown, M), next_time_allowed[M] - world.time) + addtimer(CALLBACK(src, PROC_REF(show_hud_images_after_cooldown), M), next_time_allowed[M] - world.time) queued_to_see[M] = TRUE else next_time_allowed[M] = world.time + ADD_HUD_TO_COOLDOWN diff --git a/code/datums/keybinding/carbon.dm b/code/datums/keybinding/carbon.dm index 29e53039fa86..568a56e368df 100644 --- a/code/datums/keybinding/carbon.dm +++ b/code/datums/keybinding/carbon.dm @@ -22,7 +22,7 @@ return TRUE /datum/keybinding/carbon/hold_throw_mode - hotkey_keys = list("Space") +// hotkey_keys = list("Space") name = "hold_throw_mode" full_name = "Hold throw mode" description = "Hold this to turn on throw mode, and release it to turn off throw mode" diff --git a/code/datums/keybinding/human.dm b/code/datums/keybinding/human.dm index 41b698059bb4..e4ce3478e73a 100644 --- a/code/datums/keybinding/human.dm +++ b/code/datums/keybinding/human.dm @@ -20,6 +20,22 @@ H.quick_equip() return TRUE +/datum/keybinding/human/unique_action + hotkey_keys = list("Space") + name = "unique_action" + full_name = "Perform unique action" + description = "" + keybind_signal = COMSIG_KB_HUMAN_UNIQUEACTION + + +/datum/keybinding/human/unique_action/down(client/user) + . = ..() + if(.) + return + var/mob/living/carbon/human/current_human = user.mob + current_human.do_unique_action() + return TRUE + /datum/keybinding/human/quick_equip_belt hotkey_keys = list("ShiftE") name = "quick_equip_belt" diff --git a/code/datums/looping_sounds/_looping_sound.dm b/code/datums/looping_sounds/_looping_sound.dm index c1fb10f75436..bb7a33846a34 100644 --- a/code/datums/looping_sounds/_looping_sound.dm +++ b/code/datums/looping_sounds/_looping_sound.dm @@ -82,7 +82,7 @@ if(!chance || prob(chance)) play(get_sound(starttime)) if(!timerid) - timerid = addtimer(CALLBACK(src, .proc/sound_loop, world.time), mid_length, TIMER_CLIENT_TIME | TIMER_STOPPABLE | TIMER_LOOP, SSsound_loops) + timerid = addtimer(CALLBACK(src, PROC_REF(sound_loop), world.time), mid_length, TIMER_CLIENT_TIME | TIMER_STOPPABLE | TIMER_LOOP, SSsound_loops) /datum/looping_sound/proc/play(soundfile, volume_override) var/list/atoms_cache = output_atoms @@ -107,7 +107,7 @@ if(start_sound) play(start_sound, start_volume) start_wait = start_length - addtimer(CALLBACK(src, .proc/sound_loop), start_wait, TIMER_CLIENT_TIME, SSsound_loops) + addtimer(CALLBACK(src, PROC_REF(sound_loop)), start_wait, TIMER_CLIENT_TIME, SSsound_loops) /datum/looping_sound/proc/on_stop() if(end_sound) diff --git a/code/datums/mapgen/_biome.dm b/code/datums/mapgen/_biome.dm index b5a35d953d3a..02c527b41042 100644 --- a/code/datums/mapgen/_biome.dm +++ b/code/datums/mapgen/_biome.dm @@ -1,17 +1,26 @@ /datum/biome /// WEIGHTED list of open turfs that this biome can place - var/open_turf_types = list(/turf/open/floor/plating/asteroid = 1) + var/list/open_turf_types = list(/turf/open/floor/plating/asteroid = 1) + /// EXPANDED (no values) list of open turfs that this biome can place + var/list/open_turf_types_expanded /// WEIGHTED list of flora that this biome can spawn. /// Flora do not have any local keep-away logic; all spawns are independent. var/list/flora_spawn_list + /// EXPANDED (no values) list of flora that this biome can spawn. + var/list/flora_spawn_list_expanded /// WEIGHTED list of features that this biome can spawn. /// Features will not spawn within 7 tiles of other features of the same type. var/list/feature_spawn_list + /// EXPANDED (no values) list of features that this biome can spawn. + var/list/feature_spawn_list_expanded /// WEIGHTED list of mobs that this biome can spawn. /// Mobs have multi-layered logic for determining if they can be spawned on a given tile. /// Necropolis spawners etc. should go HERE, not in features, despite them not being mobs. var/list/mob_spawn_list + /// EXPANDED (no values) list of mobs that this biome can spawn. + var/list/mob_spawn_list_expanded + /// Percentage chance that an open turf will attempt a flora spawn. var/flora_spawn_chance = 2 @@ -20,6 +29,15 @@ /// Base percentage chance that an open turf will attempt a flora spawn. var/mob_spawn_chance = 6 +/datum/biome/New() + open_turf_types_expanded = expand_weights(open_turf_types) + if(length(flora_spawn_list)) + flora_spawn_list_expanded = expand_weights(flora_spawn_list) + if(length(feature_spawn_list)) + feature_spawn_list_expanded = expand_weights(feature_spawn_list) + if(length(mob_spawn_list)) + mob_spawn_list_expanded = expand_weights(mob_spawn_list) + /// Changes the passed turf according to the biome's internal logic, optionally using string_gen, /// and adds it to the passed area. /// The call to ChangeTurf respects changeturf_flags. @@ -41,7 +59,7 @@ return TRUE /datum/biome/proc/get_turf_type(turf/gen_turf, string_gen) - return pickweight(open_turf_types) + return pick(open_turf_types_expanded) /// Fills a turf with flora, features, and creatures based on the biome's variables. /// The features and creatures compare against and add to the lists passed to determine @@ -63,14 +81,14 @@ var/atom/spawned_mob //FLORA SPAWNING HERE - if(length(flora_spawn_list) && prob(flora_spawn_chance) && (a_flags & FLORA_ALLOWED)) - spawned_flora = pickweight(flora_spawn_list) + if(length(flora_spawn_list_expanded) && prob(flora_spawn_chance) && (a_flags & FLORA_ALLOWED)) + spawned_flora = pick(flora_spawn_list_expanded) spawned_flora = new spawned_flora(open_turf) open_turf.flags_1 |= NO_LAVA_GEN_1 //FEATURE SPAWNING HERE - if(length(feature_spawn_list) && prob(feature_spawn_chance) && (a_flags & FLORA_ALLOWED)) //checks the same flag because lol dunno - var/atom/feature_type = pickweight(feature_spawn_list) + if(length(feature_spawn_list_expanded) && prob(feature_spawn_chance) && (a_flags & FLORA_ALLOWED)) //checks the same flag because lol dunno + var/atom/feature_type = pick(feature_spawn_list_expanded) var/can_spawn = TRUE for(var/other_feature in feature_list) @@ -85,8 +103,8 @@ open_turf.flags_1 |= NO_LAVA_GEN_1 //MOB SPAWNING HERE - if(length(mob_spawn_list) && !spawned_flora && !spawned_feature && prob(mob_spawn_chance) && (a_flags & MOB_SPAWN_ALLOWED)) - var/atom/picked_mob = pickweight(mob_spawn_list) + if(length(mob_spawn_list_expanded) && !spawned_flora && !spawned_feature && prob(mob_spawn_chance) && (a_flags & MOB_SPAWN_ALLOWED)) + var/atom/picked_mob = pick(mob_spawn_list_expanded) var/can_spawn = TRUE for(var/thing in mob_list) @@ -109,9 +127,15 @@ /datum/biome/cave /// WEIGHTED list of closed turfs that this biome can place - var/closed_turf_types = list(/turf/closed/mineral/random/volcanic = 1) + var/list/closed_turf_types = list(/turf/closed/mineral/random/volcanic = 1) + /// EXPANDED (no values) list of closed turfs that this biome can place + var/list/closed_turf_types_expanded + +/datum/biome/cave/New() + closed_turf_types_expanded = expand_weights(closed_turf_types) + return ..() /datum/biome/cave/get_turf_type(turf/gen_turf, string_gen) // gets the character in string_gen corresponding to gen_turf's coords. if it is nonzero, // place a closed turf; otherwise place an open turf - return pickweight(text2num(string_gen[world.maxx * (gen_turf.y - 1) + gen_turf.x]) ? closed_turf_types : open_turf_types) + return pick(text2num(string_gen[world.maxx * (gen_turf.y - 1) + gen_turf.x]) ? closed_turf_types_expanded : open_turf_types_expanded) diff --git a/code/datums/mapgen/planetary/WasteGenerator.dm b/code/datums/mapgen/planetary/WasteGenerator.dm index 8fdada12822e..d0243740bc3b 100644 --- a/code/datums/mapgen/planetary/WasteGenerator.dm +++ b/code/datums/mapgen/planetary/WasteGenerator.dm @@ -213,7 +213,7 @@ /datum/biome/waste/tar_bed/total open_turf_types = list( - /turf/open/water/tar/waste/lit + /turf/open/water/tar/waste/lit = 1 ) flora_spawn_chance = 0 @@ -340,7 +340,7 @@ /datum/biome/cave/waste/tar_bed/full open_turf_types = list( - /turf/open/water/tar/waste + /turf/open/water/tar/waste = 1 ) flora_spawn_chance = 0 diff --git a/code/datums/martial/plasma_fist.dm b/code/datums/martial/plasma_fist.dm index f07a9f8bd47a..320bb4022222 100644 --- a/code/datums/martial/plasma_fist.dm +++ b/code/datums/martial/plasma_fist.dm @@ -36,7 +36,7 @@ /datum/martial_art/plasma_fist/proc/Tornado(mob/living/carbon/human/A, mob/living/carbon/human/D) A.say("TORNADO SWEEP!", forced="plasma fist") - dance_rotate(A, CALLBACK(GLOBAL_PROC, .proc/playsound, A.loc, 'sound/weapons/punch1.ogg', 15, TRUE, -1)) + dance_rotate(A, CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), A.loc, 'sound/weapons/punch1.ogg', 15, TRUE, -1)) var/obj/effect/proc_holder/spell/aoe_turf/repulse/R = new(null) var/list/turfs = list() for(var/turf/T in range(1,A)) @@ -107,7 +107,7 @@ A.apply_damage(rand(50,70), BRUTE) - addtimer(CALLBACK(src,.proc/Apotheosis_end, A), 6 SECONDS) + addtimer(CALLBACK(src, PROC_REF(Apotheosis_end), A), 6 SECONDS) playsound(boomspot, 'sound/weapons/punch1.ogg', 50, TRUE, -1) explosion(boomspot,plasma_power,plasma_power*2,plasma_power*4,ignorecap = TRUE) plasma_power = 1 //just in case there is any clever way to cause it to happen again diff --git a/code/datums/martial/sleeping_carp.dm b/code/datums/martial/sleeping_carp.dm index 01c7e93ba516..72d26cf74367 100644 --- a/code/datums/martial/sleeping_carp.dm +++ b/code/datums/martial/sleeping_carp.dm @@ -189,8 +189,8 @@ /obj/item/staff/bostaff/Initialize() . = ..() - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) /obj/item/staff/bostaff/ComponentInitialize() . = ..() diff --git a/code/datums/martial/wrestling.dm b/code/datums/martial/wrestling.dm index b002de0abc61..e9d71398bda3 100644 --- a/code/datums/martial/wrestling.dm +++ b/code/datums/martial/wrestling.dm @@ -197,7 +197,7 @@ if (T && isturf(T)) if (!D.stat) D.emote("scream") - D.throw_at(T, 10, 4, A, TRUE, TRUE, callback = CALLBACK(D, /mob/living/carbon/human.proc/Paralyze, 20)) + D.throw_at(T, 10, 4, A, TRUE, TRUE, callback = CALLBACK(D, TYPE_PROC_REF(/mob/living/carbon/human, Paralyze), 20)) log_combat(A, D, "has thrown with wrestling") return 0 @@ -334,7 +334,7 @@ A.setDir(turn(A.dir, 90)) A.forceMove(D.loc) - addtimer(CALLBACK(src, .proc/CheckStrikeTurf, A, T), 4) + addtimer(CALLBACK(src, PROC_REF(CheckStrikeTurf), A, T), 4) D.visible_message("[A] headbutts [D]!", \ "You're headbutted by [A]!", "You hear a sickening sound of flesh hitting flesh!", COMBAT_MESSAGE_RANGE, A) diff --git a/code/datums/materials/_material.dm b/code/datums/materials/_material.dm index 6d5c597c1ef4..79d3a5e68a89 100644 --- a/code/datums/materials/_material.dm +++ b/code/datums/materials/_material.dm @@ -65,7 +65,7 @@ Simple datum which is instanced once per type and is used for every object of sa source.name = "[name] [source.name]" if(beauty_modifier) - addtimer(CALLBACK(source, /datum.proc/_AddComponent, list(/datum/component/beauty, beauty_modifier * amount)), 0) + addtimer(CALLBACK(source, TYPE_PROC_REF(/datum, _AddComponent), list(/datum/component/beauty, beauty_modifier * amount)), 0) if(istype(source, /obj)) //objs on_applied_obj(source, amount, material_flags) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 1ef0c1d50f60..f6d61833814e 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -113,7 +113,7 @@ UnregisterSignal(src, COMSIG_PARENT_QDELETING) current = new_current if(current) - RegisterSignal(src, COMSIG_PARENT_QDELETING, .proc/clear_current) + RegisterSignal(src, COMSIG_PARENT_QDELETING, PROC_REF(clear_current)) /datum/mind/proc/clear_current(datum/source) SIGNAL_HANDLER @@ -155,7 +155,7 @@ transfer_antag_huds(hud_to_transfer) //inherit the antag HUD transfer_actions(new_character) transfer_martial_arts(new_character) - RegisterSignal(new_character, COMSIG_MOB_DEATH, .proc/set_death_time) + RegisterSignal(new_character, COMSIG_MOB_DEATH, PROC_REF(set_death_time)) if(active || force_key_move) new_character.key = key //now transfer the key to link the client to our new body if(new_character.client) @@ -284,7 +284,7 @@ var/datum/team/antag_team = A.get_team() if(antag_team) antag_team.add_member(src) - INVOKE_ASYNC(A, /datum/antagonist.proc/on_gain) + INVOKE_ASYNC(A, TYPE_PROC_REF(/datum/antagonist, on_gain)) log_game("[key_name(src)] has gained antag datum [A.name]([A.type])") return A @@ -762,7 +762,7 @@ continue S.charge_counter = delay S.updateButtonIcon() - INVOKE_ASYNC(S, /obj/effect/proc_holder/spell.proc/start_recharge) + INVOKE_ASYNC(S, TYPE_PROC_REF(/obj/effect/proc_holder/spell, start_recharge)) /datum/mind/proc/get_ghost(even_if_they_cant_reenter, ghosts_with_clients) for(var/mob/dead/observer/G in (ghosts_with_clients ? GLOB.player_list : GLOB.dead_mob_list)) diff --git a/code/datums/movement_detector.dm b/code/datums/movement_detector.dm index 109290a8a953..be36d62e6606 100644 --- a/code/datums/movement_detector.dm +++ b/code/datums/movement_detector.dm @@ -20,7 +20,7 @@ src.listener = listener while(ismovable(target)) - RegisterSignal(target, COMSIG_MOVABLE_MOVED, .proc/move_react) + RegisterSignal(target, COMSIG_MOVABLE_MOVED, PROC_REF(move_react)) target = target.loc /// Stops tracking @@ -49,7 +49,7 @@ if(tracked.loc != newturf) var/atom/target = mover.loc while(ismovable(target)) - RegisterSignal(target, COMSIG_MOVABLE_MOVED, .proc/move_react, TRUE) + RegisterSignal(target, COMSIG_MOVABLE_MOVED, PROC_REF(move_react), TRUE) target = target.loc listener.Invoke(tracked, mover, oldloc, direction) diff --git a/code/datums/mutations/_mutations.dm b/code/datums/mutations/_mutations.dm index 22cc860b2cb6..032e3ab8cc8d 100644 --- a/code/datums/mutations/_mutations.dm +++ b/code/datums/mutations/_mutations.dm @@ -50,7 +50,7 @@ . = ..() class = class_ if(timer) - addtimer(CALLBACK(src, .proc/remove), timer) + addtimer(CALLBACK(src, PROC_REF(remove)), timer) timed = TRUE if(copymut && istype(copymut, /datum/mutation/human)) copy_mutation(copymut) @@ -86,7 +86,7 @@ owner.apply_overlay(layer_used) grant_spell() //we do checks here so nothing about hulk getting magic if(!modified) - addtimer(CALLBACK(src, .proc/modify, 5)) //gonna want children calling ..() to run first + addtimer(CALLBACK(src, PROC_REF(modify), 5)) //gonna want children calling ..() to run first /datum/mutation/human/proc/get_visual_indicator() return diff --git a/code/datums/mutations/actions.dm b/code/datums/mutations/actions.dm index 29abd2f0d10c..f2ffe7c25fd2 100644 --- a/code/datums/mutations/actions.dm +++ b/code/datums/mutations/actions.dm @@ -282,7 +282,7 @@ /obj/item/hardened_spike/Initialize(mapload, firedby) . = ..() fired_by = firedby - addtimer(CALLBACK(src, .proc/checkembedded), 5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(checkembedded)), 5 SECONDS) /obj/item/hardened_spike/proc/checkembedded() if(ishuman(loc)) diff --git a/code/datums/mutations/body.dm b/code/datums/mutations/body.dm index 08e8d59b0502..4b885412165a 100644 --- a/code/datums/mutations/body.dm +++ b/code/datums/mutations/body.dm @@ -15,7 +15,7 @@ owner.Unconscious(200 * GET_MUTATION_POWER(src)) owner.Jitter(1000 * GET_MUTATION_POWER(src)) SEND_SIGNAL(owner, COMSIG_ADD_MOOD_EVENT, "epilepsy", /datum/mood_event/epilepsy) - addtimer(CALLBACK(src, .proc/jitter_less), 90) + addtimer(CALLBACK(src, PROC_REF(jitter_less)), 90) /datum/mutation/human/epilepsy/proc/jitter_less() if(owner) @@ -395,7 +395,7 @@ . = ..() if(.) return - RegisterSignal(owner, COMSIG_MOVABLE_MOVED, .proc/on_move) + RegisterSignal(owner, COMSIG_MOVABLE_MOVED, PROC_REF(on_move)) /datum/mutation/human/extrastun/on_losing() . = ..() @@ -426,7 +426,7 @@ . = ..() if(.) return TRUE - RegisterSignal(owner, COMSIG_MOB_STATCHANGE, .proc/bloody_shower) + RegisterSignal(owner, COMSIG_MOB_STATCHANGE, PROC_REF(bloody_shower)) /datum/mutation/human/martyrdom/on_losing() . = ..() @@ -484,7 +484,7 @@ head.drop_organs() qdel(head) owner.regenerate_icons() - RegisterSignal(owner, COMSIG_LIVING_ATTACH_LIMB, .proc/abortattachment) + RegisterSignal(owner, COMSIG_LIVING_ATTACH_LIMB, PROC_REF(abortattachment)) /datum/mutation/human/headless/on_losing() . = ..() diff --git a/code/datums/mutations/chameleon.dm b/code/datums/mutations/chameleon.dm index ab609b54cf2a..37da2f30b232 100644 --- a/code/datums/mutations/chameleon.dm +++ b/code/datums/mutations/chameleon.dm @@ -13,8 +13,8 @@ if(..()) return owner.alpha = CHAMELEON_MUTATION_DEFAULT_TRANSPARENCY - RegisterSignal(owner, COMSIG_MOVABLE_MOVED, .proc/on_move) - RegisterSignal(owner, COMSIG_HUMAN_EARLY_UNARMED_ATTACK, .proc/on_attack_hand) + RegisterSignal(owner, COMSIG_MOVABLE_MOVED, PROC_REF(on_move)) + RegisterSignal(owner, COMSIG_HUMAN_EARLY_UNARMED_ATTACK, PROC_REF(on_attack_hand)) /datum/mutation/human/chameleon/on_life() owner.alpha = max(0, owner.alpha - 25) diff --git a/code/datums/mutations/hulk.dm b/code/datums/mutations/hulk.dm index 4526682c5eaa..707327f658be 100644 --- a/code/datums/mutations/hulk.dm +++ b/code/datums/mutations/hulk.dm @@ -23,8 +23,8 @@ ADD_TRAIT(owner, TRAIT_HULK, GENETIC_MUTATION) owner.update_body_parts() SEND_SIGNAL(owner, COMSIG_ADD_MOOD_EVENT, "hulk", /datum/mood_event/hulk) - RegisterSignal(owner, COMSIG_HUMAN_EARLY_UNARMED_ATTACK, .proc/on_attack_hand) - RegisterSignal(owner, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(owner, COMSIG_HUMAN_EARLY_UNARMED_ATTACK, PROC_REF(on_attack_hand)) + RegisterSignal(owner, COMSIG_MOB_SAY, PROC_REF(handle_speech)) /datum/mutation/human/hulk/proc/on_attack_hand(mob/living/carbon/human/source, atom/target, proximity) SIGNAL_HANDLER @@ -36,7 +36,7 @@ if(target.attack_hulk(owner)) if(world.time > (last_scream + scream_delay)) last_scream = world.time - INVOKE_ASYNC(src, .proc/scream_attack, source) + INVOKE_ASYNC(src, PROC_REF(scream_attack), source) log_combat(source, target, "punched", "hulk powers") source.do_attack_animation(target, ATTACK_EFFECT_SMASH) source.changeNext_move(CLICK_CD_MELEE) diff --git a/code/datums/mutations/sight.dm b/code/datums/mutations/sight.dm index d9b8cb18e13e..8fe2893f4de4 100644 --- a/code/datums/mutations/sight.dm +++ b/code/datums/mutations/sight.dm @@ -86,7 +86,7 @@ . = ..() if(.) return - RegisterSignal(H, COMSIG_MOB_ATTACK_RANGED, .proc/on_ranged_attack) + RegisterSignal(H, COMSIG_MOB_ATTACK_RANGED, PROC_REF(on_ranged_attack)) /datum/mutation/human/laser_eyes/on_losing(mob/living/carbon/human/H) . = ..() @@ -110,7 +110,7 @@ LE.firer = source LE.def_zone = ran_zone(source.zone_selected) LE.preparePixelProjectile(target, source, mouseparams) - INVOKE_ASYNC(LE, /obj/projectile.proc/fire) + INVOKE_ASYNC(LE, TYPE_PROC_REF(/obj/projectile, fire)) playsound(source, 'sound/weapons/taser2.ogg', 75, TRUE) ///Projectile type used by laser eyes diff --git a/code/datums/mutations/speech.dm b/code/datums/mutations/speech.dm index 17014b91530f..5545c4efde53 100644 --- a/code/datums/mutations/speech.dm +++ b/code/datums/mutations/speech.dm @@ -22,7 +22,7 @@ /datum/mutation/human/wacky/on_acquiring(mob/living/carbon/human/owner) if(..()) return - RegisterSignal(owner, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(owner, COMSIG_MOB_SAY, PROC_REF(handle_speech)) /datum/mutation/human/wacky/on_losing(mob/living/carbon/human/owner) if(..()) @@ -78,7 +78,7 @@ /datum/mutation/human/swedish/on_acquiring(mob/living/carbon/human/owner) if(..()) return - RegisterSignal(owner, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(owner, COMSIG_MOB_SAY, PROC_REF(handle_speech)) /datum/mutation/human/swedish/on_losing(mob/living/carbon/human/owner) if(..()) @@ -109,7 +109,7 @@ /datum/mutation/human/chav/on_acquiring(mob/living/carbon/human/owner) if(..()) return - RegisterSignal(owner, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(owner, COMSIG_MOB_SAY, PROC_REF(handle_speech)) /datum/mutation/human/chav/on_losing(mob/living/carbon/human/owner) if(..()) @@ -166,7 +166,7 @@ /datum/mutation/human/elvis/on_acquiring(mob/living/carbon/human/owner) if(..()) return - RegisterSignal(owner, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(owner, COMSIG_MOB_SAY, PROC_REF(handle_speech)) /datum/mutation/human/elvis/on_losing(mob/living/carbon/human/owner) if(..()) diff --git a/code/datums/mutations/telekinesis.dm b/code/datums/mutations/telekinesis.dm index beee7f3537ef..0ba690c8c0c9 100644 --- a/code/datums/mutations/telekinesis.dm +++ b/code/datums/mutations/telekinesis.dm @@ -17,7 +17,7 @@ . = ..() if(.) return - RegisterSignal(H, COMSIG_MOB_ATTACK_RANGED, .proc/on_ranged_attack) + RegisterSignal(H, COMSIG_MOB_ATTACK_RANGED, PROC_REF(on_ranged_attack)) /datum/mutation/human/telekinesis/on_losing(mob/living/carbon/human/H) . = ..() @@ -32,4 +32,4 @@ /datum/mutation/human/telekinesis/proc/on_ranged_attack(datum/source, atom/target) SIGNAL_HANDLER - INVOKE_ASYNC(target, /atom.proc/attack_tk, owner) + INVOKE_ASYNC(target, TYPE_PROC_REF(/atom, attack_tk), owner) diff --git a/code/datums/position_point_vector.dm b/code/datums/position_point_vector.dm index 07fe0ed7652f..9675c337fcc8 100644 --- a/code/datums/position_point_vector.dm +++ b/code/datums/position_point_vector.dm @@ -22,7 +22,8 @@ /proc/angle_between_points(datum/point/a, datum/point/b) return ATAN2((b.y - a.y), (b.x - a.x)) -/datum/position //For positions with map x/y/z and pixel x/y so you don't have to return lists. Could use addition/subtraction in the future I guess. +/// For positions with map x/y/z and pixel x/y so you don't have to return lists. Could use addition/subtraction in the future I guess. +/datum/position var/x = 0 var/y = 0 var/z = 0 @@ -66,7 +67,8 @@ /datum/position/proc/return_point() return new /datum/point(src) -/datum/point //A precise point on the map in absolute pixel locations based on world.icon_size. Pixels are FROM THE EDGE OF THE MAP! +/// A precise point on the map in absolute pixel locations based on world.icon_size. Pixels are FROM THE EDGE OF THE MAP! +/datum/point var/x = 0 var/y = 0 var/z = 0 @@ -80,7 +82,8 @@ p.z = z return p -/datum/point/New(_x, _y, _z, _pixel_x = 0, _pixel_y = 0) //first argument can also be a /datum/position or /atom. +/// First argument can also be a /datum/position or /atom. +/datum/point/New(_x, _y, _z, _pixel_x = 0, _pixel_y = 0) if(istype(_x, /datum/position)) var/datum/position/P = _x _x = P.x @@ -107,7 +110,7 @@ /datum/point/proc/debug_out() var/turf/T = return_turf() - return "\ref[src] aX [x] aY [y] aZ [z] pX [return_px()] pY [return_py()] mX [T.x] mY [T.y] mZ [T.z]" + return "[text_ref(src)] aX [x] aY [y] aZ [z] pX [return_px()] pY [return_py()] mX [T.x] mY [T.y] mZ [T.z]" /datum/point/proc/move_atom_to_src(atom/movable/AM) AM.forceMove(return_turf()) @@ -130,10 +133,13 @@ return MODULUS(y, world.icon_size) - 16 - 1 /datum/point/vector - var/speed = 32 //pixels per iteration + /// Pixels per iteration + var/speed = 32 var/iteration = 0 var/angle = 0 - var/mpx = 0 //calculated x/y movement amounts to prevent having to do trig every step. + /// Calculated x movement amounts to prevent having to do trig every step. + var/mpx = 0 + /// Calculated y movement amounts to prevent having to do trig every step. var/mpy = 0 var/starting_x = 0 //just like before, pixels from EDGE of map! This is set in initialize_location(). var/starting_y = 0 @@ -151,6 +157,15 @@ starting_y = y starting_z = z +/// Same effect as initiliaze_location, but without setting the starting_x/y/z +/datum/point/vector/proc/set_location(tile_x, tile_y, tile_z, p_x = 0, p_y = 0) + if(!isnull(tile_x)) + x = ((tile_x - 1) * world.icon_size) + world.icon_size * 0.5 + p_x + 1 + if(!isnull(tile_y)) + y = ((tile_y - 1) * world.icon_size) + world.icon_size * 0.5 + p_y + 1 + if(!isnull(tile_z)) + z = tile_z + /datum/point/vector/copy_to(datum/point/vector/v = new) ..(v) v.speed = speed diff --git a/code/datums/progressbar.dm b/code/datums/progressbar.dm index 67051686b7d2..5ffa3778edc6 100644 --- a/code/datums/progressbar.dm +++ b/code/datums/progressbar.dm @@ -45,9 +45,9 @@ user_client = user.client add_prog_bar_image_to_client() - RegisterSignal(user, COMSIG_PARENT_QDELETING, .proc/on_user_delete) - RegisterSignal(user, COMSIG_MOB_LOGOUT, .proc/clean_user_client) - RegisterSignal(user, COMSIG_MOB_LOGIN, .proc/on_user_login) + RegisterSignal(user, COMSIG_PARENT_QDELETING, PROC_REF(on_user_delete)) + RegisterSignal(user, COMSIG_MOB_LOGOUT, PROC_REF(clean_user_client)) + RegisterSignal(user, COMSIG_MOB_LOGIN, PROC_REF(on_user_login)) /datum/progressbar/Destroy() diff --git a/code/datums/proximity_monitor/fields/timestop.dm b/code/datums/proximity_monitor/fields/timestop.dm index 06ed1f113311..40a8c1cc947b 100644 --- a/code/datums/proximity_monitor/fields/timestop.dm +++ b/code/datums/proximity_monitor/fields/timestop.dm @@ -33,7 +33,7 @@ if(G.summoner && locate(/obj/effect/proc_holder/spell/aoe_turf/timestop) in G.summoner.mind.spell_list) //It would only make sense that a person's stand would also be immune. immune[G] = TRUE if(start) - INVOKE_ASYNC(src, .proc/timestop) + INVOKE_ASYNC(src, PROC_REF(timestop)) /obj/effect/timestop/Destroy() QDEL_NULL(chronofield) @@ -105,8 +105,8 @@ A.move_resist = INFINITY global_frozen_atoms[A] = src into_the_negative_zone(A) - RegisterSignal(A, COMSIG_MOVABLE_PRE_MOVE, .proc/unfreeze_atom) - RegisterSignal(A, COMSIG_ITEM_PICKUP, .proc/unfreeze_atom) + RegisterSignal(A, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(unfreeze_atom)) + RegisterSignal(A, COMSIG_ITEM_PICKUP, PROC_REF(unfreeze_atom)) return TRUE diff --git a/code/datums/proximity_monitor/proximity_monitor.dm b/code/datums/proximity_monitor/proximity_monitor.dm index 6bc78a39c835..7ab65204b751 100644 --- a/code/datums/proximity_monitor/proximity_monitor.dm +++ b/code/datums/proximity_monitor/proximity_monitor.dm @@ -9,8 +9,8 @@ var/ignore_if_not_on_turf ///The signals of the connect range component, needed to monitor the turfs in range. var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, - COMSIG_ATOM_EXITED =.proc/on_uncrossed, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), + COMSIG_ATOM_EXITED = PROC_REF(on_uncrossed), ) /datum/proximity_monitor/New(atom/_host, range, _ignore_if_not_on_turf = TRUE) @@ -28,14 +28,14 @@ if(new_receiver) hasprox_receiver = new_receiver if(new_receiver != new_host) - RegisterSignal(new_receiver, COMSIG_PARENT_QDELETING, .proc/on_host_or_receiver_del) + RegisterSignal(new_receiver, COMSIG_PARENT_QDELETING, PROC_REF(on_host_or_receiver_del)) else if(hasprox_receiver == host) //Default case hasprox_receiver = new_host host = new_host - RegisterSignal(new_host, COMSIG_PARENT_QDELETING, .proc/on_host_or_receiver_del) - var/static/list/containers_connections = list(COMSIG_MOVABLE_MOVED = .proc/on_moved) + RegisterSignal(new_host, COMSIG_PARENT_QDELETING, PROC_REF(on_host_or_receiver_del)) + var/static/list/containers_connections = list(COMSIG_MOVABLE_MOVED = PROC_REF(on_moved)) AddComponent(/datum/component/connect_containers, host, containers_connections) - RegisterSignal(host, COMSIG_MOVABLE_MOVED, .proc/on_moved) + RegisterSignal(host, COMSIG_MOVABLE_MOVED, PROC_REF(on_moved)) set_range(current_range, TRUE) /datum/proximity_monitor/proc/on_host_or_receiver_del(datum/source) diff --git a/code/datums/quixotejump.dm b/code/datums/quixotejump.dm index 98827a2a2df6..edc2b0c2192e 100644 --- a/code/datums/quixotejump.dm +++ b/code/datums/quixotejump.dm @@ -49,4 +49,4 @@ playsound(T, dash_sound, 25, TRUE) charges-- holder.update_action_buttons_icon() - addtimer(CALLBACK(src, .proc/charge), charge_rate) + addtimer(CALLBACK(src, PROC_REF(charge)), charge_rate) diff --git a/code/datums/ruins/beachplanet.dm b/code/datums/ruins/beachplanet.dm index b23a7524f6b5..dae334aefae1 100644 --- a/code/datums/ruins/beachplanet.dm +++ b/code/datums/ruins/beachplanet.dm @@ -1,4 +1,4 @@ -// Hey! Listen! Update \config\beachruinblacklist.txt with your new ruins! +// Hey! Listen! Update _maps\map_catalogue.txt with your new ruins! /datum/map_template/ruin/beachplanet prefix = "_maps/RandomRuins/BeachRuins/" @@ -59,3 +59,9 @@ id = "beach_crashed_engineer" description = "An abandoned camp built by a crashed engineer" suffix = "beach_crashed_engineer.dmm" + +/datum/map_template/ruin/beachplanet/floatresort + name = "Floating Beach Resort" + id = "beach_float_resort" + description = "A hidden paradise on the beach" + suffix = "beach_float_resort.dmm" diff --git a/code/datums/ruins/icemoon.dm b/code/datums/ruins/icemoon.dm index afd841ff802e..a38ad6a1f86b 100644 --- a/code/datums/ruins/icemoon.dm +++ b/code/datums/ruins/icemoon.dm @@ -1,4 +1,4 @@ -// Hey! Listen! Update \config\iceruinblacklist.txt with your new ruins! +// Hey! Listen! Update _maps\map_catalogue.txt with your new ruins! /datum/map_template/ruin/icemoon prefix = "_maps/RandomRuins/IceRuins/" diff --git a/code/datums/ruins/jungle.dm b/code/datums/ruins/jungle.dm index 4c80d0618f50..1f58dc96da67 100644 --- a/code/datums/ruins/jungle.dm +++ b/code/datums/ruins/jungle.dm @@ -1,4 +1,4 @@ -// Hey! Listen! Update \config\jungleruinblacklist.txt with your new ruins! +// Hey! Listen! Update _maps\map_catalogue.txt with your new ruins! /datum/map_template/ruin/jungle prefix = "_maps/RandomRuins/JungleRuins/" @@ -66,12 +66,6 @@ description = "An abandoned hangar containing exosuits." suffix = "jungle_hangar.dmm" -/datum/map_template/ruin/jungle/spider - name = "Jungle Spiders" - id = "spiderjungle" - description = "A genetic experiment gone wrong." - suffix = "jungle_spider.dmm" - /datum/map_template/ruin/jungle/pirate name = "Jungle Pirates" id = "piratejungle" @@ -132,6 +126,12 @@ description = "A MedTech pharmaceutical manufacturing plant where something went terribly wrong." suffix = "jungle_medtech_outbreak.dmm" +/datum/map_template/ruin/jungle/cavecrew + name = "Frontiersmen Cave" + id = "cavecrew" + description = "A frontiersmen base, hidden within a cave. They don't seem friendly" + suffix = "jungle_cavecrew.dmm" + /datum/map_template/ruin/jungle/library name = "Abandoned Library" id = "abandoned-library" diff --git a/code/datums/ruins/lavaland.dm b/code/datums/ruins/lavaland.dm index 13d884187ad9..0c46f33ccacb 100644 --- a/code/datums/ruins/lavaland.dm +++ b/code/datums/ruins/lavaland.dm @@ -1,4 +1,4 @@ -// Hey! Listen! Update \config\lavaruinblacklist.txt with your new ruins! +// Hey! Listen! Update _maps\map_catalogue.txt with your new ruins! /datum/map_template/ruin/lavaland prefix = "_maps/RandomRuins/LavaRuins/" diff --git a/code/datums/ruins/rockplanet.dm b/code/datums/ruins/rockplanet.dm index 5d8e74000564..b3d9276b827e 100644 --- a/code/datums/ruins/rockplanet.dm +++ b/code/datums/ruins/rockplanet.dm @@ -1,4 +1,4 @@ -// Hey! Listen! Update \config\rockruinblacklist.txt with your new ruins! +// Hey! Listen! Update _maps\map_catalogue.txt with your new ruins! /datum/map_template/ruin/rockplanet prefix = "_maps/RandomRuins/RockRuins/" @@ -12,12 +12,6 @@ description = "something dangerous" suffix = "rockplanet_heirophant.dmm" -/datum/map_template/ruin/rockplanet/clock - name = "Clockcult base" - id = "clockcultrock" - description = "the last remnants of a clockcult base on rockplanet." - suffix = "rockplanet_clock.dmm" - /datum/map_template/ruin/rockplanet/cult name = "Cult base" id = "rockcult" @@ -83,7 +77,7 @@ suffix = "rockplanet_saloon.dmm" /datum/map_template/ruin/rockplanet/harmfactory - name = "Harm factory" + name = "Harm Factory" description = "A factory made for HARM and AGONY." id = "rockplanet_harmfactory" suffix = "rockplanet_harmfactory.dmm" @@ -93,3 +87,9 @@ description = "Nanotrasen's gotta lay off some personnel, and this facility hasn't been worth the effort so far" id = "rockplanet_budgetcuts" suffix = "rockplanet_budgetcuts.dmm" + +/datum/map_template/ruin/rockplanet/nomadcrash + name = "Nomad Crash" + description = "A Crashed Arrow & Axe Interceptor. A long forgotten Crew. They tried their best to survive..." + id = "rockplanet_nomadcrash" + suffix = "rockplanet_nomadcrash.dmm" diff --git a/code/datums/ruins/space.dm b/code/datums/ruins/space.dm index 5aba2df7d5ce..ea5a6d0aa775 100644 --- a/code/datums/ruins/space.dm +++ b/code/datums/ruins/space.dm @@ -1,4 +1,4 @@ -// Hey! Listen! Update \config\spaceruinblacklist.txt with your new ruins! +// Hey! Listen! Update _maps\map_catalogue.txt with your new ruins! /datum/map_template/ruin/space prefix = "_maps/RandomRuins/SpaceRuins/" @@ -25,12 +25,6 @@ description = "A once-bustling tradestation that handled imports and exports from nearby stations now lays eerily dormant. \ The last received message was a distress call from one of the on-board officers, but we had no success in making contact again." -/datum/map_template/ruin/space/mech_transport - id = "mech-transport" - suffix = "mechtransport.dmm" - name = "CF Corsair" - description = "Well, when is it getting here? I have bills to pay; very well-armed clients who want their shipments as soon as possible! I don't care, just find it!" - /datum/map_template/ruin/space/onehalf id = "onehalf" suffix = "onehalf.dmm" @@ -66,12 +60,6 @@ description = "Pause and remember-- You are unique.You are special. Every mistake, trial, and hardship has helped to sculpt your real beauty. \ Stop hating yourself and start appreciating and loving yourself!" -/datum/map_template/ruin/space/gondoland - id = "gondolaasteroid" - suffix = "gondolaasteroid.dmm" - name = "Gondoland" - description = "Just an ordinary rock- wait, what's that thing?" - /datum/map_template/ruin/space/clericden id = "clericden" suffix = "clericden.dmm" @@ -139,12 +127,6 @@ name = "Fuel Depot" description = "An orbital refueling station with the remains of a ship lodged among the debris." -/datum/map_template/ruin/space/nuclear_dump - id = "radioactivedump" - suffix = "nuclear_dump.dmm" - name = "Nuclear Waste Dump" - description = "An abandoned nuclear waste disposal zone, a relic of old-age spaceflight and a death sentence to any who dare enter..." - /datum/map_template/ruin/space/ntfacility id = "ntfacility" suffix = "ntfacility.dmm" diff --git a/code/datums/ruins/wasteplanet.dm b/code/datums/ruins/wasteplanet.dm index 38c07d74cdfc..80bf701526be 100644 --- a/code/datums/ruins/wasteplanet.dm +++ b/code/datums/ruins/wasteplanet.dm @@ -1,4 +1,4 @@ -// Hey! Listen! Update \config\wasteruinblacklist.txt with your new ruins! +// Hey! Listen! Update _maps\map_catalogue.txt with your new ruins! /datum/map_template/ruin/wasteplanet prefix = "_maps/RandomRuins/WasteRuins/" diff --git a/code/datums/ruins/whitesands.dm b/code/datums/ruins/whitesands.dm index 062a64db559a..5615d5d72366 100644 --- a/code/datums/ruins/whitesands.dm +++ b/code/datums/ruins/whitesands.dm @@ -1,4 +1,4 @@ -// Hey! Listen! Update \config\sandruinblacklist.txt with your new ruins! +// Hey! Listen! Update _maps\map_catalogue.txt with your new ruins! /datum/map_template/ruin/whitesands prefix = "_maps/RandomRuins/SandRuins/" @@ -18,24 +18,12 @@ suffix = "whitesands_surface_starfurycrash.dmm" allow_duplicates = FALSE -/datum/map_template/ruin/whitesands/golem_hijack - name = "Crashed Golem Ship" - id = "golemcrash" - description = "The remains of a mysterious ship, inhabited by strange lizardpeople and golems of some sort. Who knows what happened here." - suffix = "whitesands_surface_golemhijack.dmm" - /datum/map_template/ruin/whitesands/medipen_plant name = "Abandoned Medipen Factory" id = "medipenplant" description = "A once prosperous autoinjector manufacturing plant." suffix = "whitesands_surface_medipen_plant.dmm" -/datum/map_template/ruin/whitesands/youreinsane - name = "Lost Engine" - id = "ws-youreinsane" - description = "Nanotrasen would like to remind all employees that the Pi\[REDACTED\]er is not real." - suffix = "whitesands_surface_youreinsane.dmm" - /datum/map_template/ruin/whitesands/assaultpodcrash name = "Crashed Syndicate Assault Drop Pod" id = "ws-assaultpodcrash" @@ -71,6 +59,7 @@ name = "Hermit Saloon" id = "ws-saloon" description = "A western style saloon, most popular spot for the hermits to gather planetside" + suffix = "whitesands_surface_camp_saloon.dmm" /datum/map_template/ruin/whitesands/survivors/combination //combined extra large ruin of several other whitesands survivor ruins (excludes the drugstore) name = "Wasteland Survivor Village" diff --git a/code/datums/shuttles.dm b/code/datums/shuttles.dm index 525ed09c33c9..c294d25dee10 100644 --- a/code/datums/shuttles.dm +++ b/code/datums/shuttles.dm @@ -66,7 +66,7 @@ // Finding the dir of the mobile port var/dpos = cached_map.find_next_delimiter_position(model_text, start_pos, ",","{","}") - var/cache_text = cached_map.trim_text(copytext(model_text, start_pos, dpos)) + var/cache_text = trim_reduced(copytext(model_text, start_pos, dpos)) var/variables_start = findtext(cache_text, "{") port_dir = NORTH // Incase something went wrong with variables from the cache if(variables_start) @@ -315,64 +315,23 @@ /datum/map_template/shuttle/shiptest category = "shiptest" -/// Pirate ship templates -/datum/map_template/shuttle/pirate - category = "misc" - -/datum/map_template/shuttle/pirate/default - file_name = "pirate_default" - name = "pirate ship (Default)" - -/// Fugitive hunter ship templates -/datum/map_template/shuttle/hunter - category = "misc" - -/datum/map_template/shuttle/hunter/russian - file_name = "hunter_russian" - name = "Russian Cargo Ship" - -/datum/map_template/shuttle/hunter/bounty - file_name = "hunter_bounty" - name = "Bounty Hunter Ship" - /// Shuttles to be loaded in ruins /datum/map_template/shuttle/ruin category = "ruin" starting_funds = 0 -/datum/map_template/shuttle/ruin/caravan_victim - file_name = "ruin_caravan_victim" - name = "Small Freighter" - -/datum/map_template/shuttle/ruin/pirate_cutter - file_name = "ruin_pirate_cutter" - name = "Pirate Cutter" - -/datum/map_template/shuttle/ruin/syndicate_dropship - file_name = "ruin_syndicate_dropship" - name = "Syndicate Dropship" - -/datum/map_template/shuttle/ruin/syndicate_fighter_shiv - file_name = "ruin_syndicate_fighter_shiv" - name = "Syndicate Fighter" - -/datum/map_template/shuttle/ruin/solgov_exploration_pod - file_name = "ruin_solgov_exploration_pod" - name = "SolGov Exploration Pod" - -/datum/map_template/shuttle/ruin/syndicate_interceptor - file_name = "ruin_syndicate_interceptor" - name = "Syndicate Interceptor" - prefix = "SSV" - name_categories = list("WEAPONS") - short_name = "Dartbird" - //Subshuttles /datum/map_template/shuttle/subshuttles category = "subshuttles" starting_funds = 0 + +/datum/map_template/shuttle/subshuttles/frontiersmen_gut //i need to give this a better name at some point + file_name = "frontiersmen_gut" + name = "Gut Combat Freighter" + prefix = "ISV" + /datum/map_template/shuttle/subshuttles/pill file_name = "independent_pill" name = "Pill-Class Torture Device" @@ -390,7 +349,6 @@ name = "Superpill-Class Experimental Engineering Platform" prefix = "Pill" name_categories = list("PILLS") -//your subshuttle here /datum/map_template/shuttle/subshuttles/kunai file_name = "independent_kunai" @@ -402,7 +360,9 @@ name = "Sugarcube Transport" prefix = "ISV" +//your subshuttle here /datum/map_template/shuttle/subshuttles/heron file_name = "nanotrasen_falcon" name = "Falcon Dropship" prefix = "NTSV" + diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm index becead47da9d..43c7bd3ab2ec 100644 --- a/code/datums/status_effects/buffs.dm +++ b/code/datums/status_effects/buffs.dm @@ -254,7 +254,7 @@ owner.add_stun_absorption("bloody bastard sword", duration, 2, "doesn't even flinch as the sword's power courses through them!", "You shrug off the stun!", " glowing with a blazing red aura!") owner.spin(duration,1) animate(owner, color = oldcolor, time = duration, easing = EASE_IN) - addtimer(CALLBACK(owner, /atom/proc/update_atom_colour), duration) + addtimer(CALLBACK(owner, TYPE_PROC_REF(/atom, update_atom_colour)), duration) playsound(owner, 'sound/weapons/fwoosh.ogg', 75, FALSE) return ..() diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index fdc1710c9ea7..5932ee024359 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -508,7 +508,7 @@ /datum/status_effect/trance/on_apply() if(!iscarbon(owner)) return FALSE - RegisterSignal(owner, COMSIG_MOVABLE_HEAR, .proc/hypnotize) + RegisterSignal(owner, COMSIG_MOVABLE_HEAR, PROC_REF(hypnotize)) ADD_TRAIT(owner, TRAIT_MUTE, "trance") owner.add_client_colour(/datum/client_colour/monochrome) owner.visible_message("[stun ? "[owner] stands still as [owner.p_their()] eyes seem to focus on a distant point." : ""]", \ @@ -536,8 +536,8 @@ return var/mob/living/carbon/C = owner C.cure_trauma_type(/datum/brain_trauma/hypnosis, TRAUMA_RESILIENCE_SURGERY) //clear previous hypnosis - addtimer(CALLBACK(C, /mob/living/carbon.proc/gain_trauma, /datum/brain_trauma/hypnosis, TRAUMA_RESILIENCE_SURGERY, hearing_args[HEARING_RAW_MESSAGE]), 10) - addtimer(CALLBACK(C, /mob/living.proc/Stun, 60, TRUE, TRUE), 15) //Take some time to think about it + addtimer(CALLBACK(C, TYPE_PROC_REF(/mob/living/carbon, gain_trauma), /datum/brain_trauma/hypnosis, TRAUMA_RESILIENCE_SURGERY, hearing_args[HEARING_RAW_MESSAGE]), 10) + addtimer(CALLBACK(C, TYPE_PROC_REF(/mob/living, Stun), 60, TRUE, TRUE), 15) //Take some time to think about it qdel(src) /datum/status_effect/spasms diff --git a/code/datums/status_effects/gas.dm b/code/datums/status_effects/gas.dm index c52e3c731a4d..11037374b9b3 100644 --- a/code/datums/status_effects/gas.dm +++ b/code/datums/status_effects/gas.dm @@ -22,7 +22,7 @@ icon_state = "frozen" /datum/status_effect/freon/on_apply() - RegisterSignal(owner, COMSIG_LIVING_RESIST, .proc/owner_resist) + RegisterSignal(owner, COMSIG_LIVING_RESIST, PROC_REF(owner_resist)) if(!owner.stat) to_chat(owner, "You become frozen in a cube!") cube = icon('icons/effects/freeze.dmi', "ice_cube") @@ -34,7 +34,7 @@ /datum/status_effect/freon/proc/owner_resist() SIGNAL_HANDLER - INVOKE_ASYNC(src, .proc/do_resist) + INVOKE_ASYNC(src, PROC_REF(do_resist)) /datum/status_effect/freon/proc/do_resist() to_chat(owner, "You start breaking out of the ice cube...") diff --git a/code/datums/status_effects/neutral.dm b/code/datums/status_effects/neutral.dm index 4952479fa635..76a33319631f 100644 --- a/code/datums/status_effects/neutral.dm +++ b/code/datums/status_effects/neutral.dm @@ -132,7 +132,7 @@ /datum/status_effect/bugged/on_apply(mob/living/new_owner, mob/living/tracker) . = ..() if (.) - RegisterSignal(new_owner, COMSIG_MOVABLE_HEAR, .proc/handle_hearing) + RegisterSignal(new_owner, COMSIG_MOVABLE_HEAR, PROC_REF(handle_hearing)) /datum/status_effect/bugged/on_remove() . = ..() @@ -210,9 +210,9 @@ qdel(src) return - RegisterSignal(owner, COMSIG_MOVABLE_MOVED, .proc/check_owner_in_range) - RegisterSignal(offered_item, list(COMSIG_PARENT_QDELETING, COMSIG_ITEM_DROPPED), .proc/dropped_item) - //RegisterSignal(owner, COMSIG_PARENT_EXAMINE_MORE, .proc/check_fake_out) + RegisterSignal(owner, COMSIG_MOVABLE_MOVED, PROC_REF(check_owner_in_range)) + RegisterSignal(offered_item, list(COMSIG_PARENT_QDELETING, COMSIG_ITEM_DROPPED), PROC_REF(dropped_item)) + //RegisterSignal(owner, COMSIG_PARENT_EXAMINE_MORE, PROC_REF(check_fake_out)) /datum/status_effect/offering/Destroy() for(var/i in possible_takers) @@ -227,7 +227,7 @@ if(!G) return LAZYADD(possible_takers, possible_candidate) - RegisterSignal(possible_candidate, COMSIG_MOVABLE_MOVED, .proc/check_taker_in_range) + RegisterSignal(possible_candidate, COMSIG_MOVABLE_MOVED, PROC_REF(check_taker_in_range)) G.setup(possible_candidate, owner, offered_item) /// Remove the alert and signals for the specified carbon mob. Automatically removes the status effect when we lost the last taker diff --git a/code/datums/tgs_event_handler.dm b/code/datums/tgs_event_handler.dm index 434450b9bec5..55c7c6427749 100644 --- a/code/datums/tgs_event_handler.dm +++ b/code/datums/tgs_event_handler.dm @@ -23,7 +23,7 @@ to_chat(world, "Server updated, changes will be applied on the next round...") if(TGS_EVENT_WATCHDOG_DETACH) message_admins("TGS restarting...") - reattach_timer = addtimer(CALLBACK(src, .proc/LateOnReattach), 1 MINUTES) + reattach_timer = addtimer(CALLBACK(src, PROC_REF(LateOnReattach)), 1 MINUTES) if(TGS_EVENT_WATCHDOG_REATTACH) var/datum/tgs_version/old_version = world.TgsVersion() var/datum/tgs_version/new_version = args[2] diff --git a/code/datums/traits/_quirk.dm b/code/datums/traits/_quirk.dm index bd4f5982901d..47e45a42aa67 100644 --- a/code/datums/traits/_quirk.dm +++ b/code/datums/traits/_quirk.dm @@ -31,7 +31,7 @@ if(quirk_holder.client) post_add() else - RegisterSignal(quirk_holder, COMSIG_MOB_LOGIN, .proc/on_quirk_holder_first_login) + RegisterSignal(quirk_holder, COMSIG_MOB_LOGIN, PROC_REF(on_quirk_holder_first_login)) /** diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index c8e3b582511d..dccd4e87877d 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -447,8 +447,8 @@ var/dumb_thing = TRUE /datum/quirk/social_anxiety/add() - RegisterSignal(quirk_holder, COMSIG_MOB_EYECONTACT, .proc/eye_contact) - RegisterSignal(quirk_holder, COMSIG_MOB_EXAMINATE, .proc/looks_at_floor) + RegisterSignal(quirk_holder, COMSIG_MOB_EYECONTACT, PROC_REF(eye_contact)) + RegisterSignal(quirk_holder, COMSIG_MOB_EXAMINATE, PROC_REF(looks_at_floor)) /datum/quirk/social_anxiety/remove() if(quirk_holder) @@ -479,7 +479,7 @@ if(prob(85) || (istype(mind_check) && mind_check.mind)) return - addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, quirk_holder, "You make eye contact with [A]."), 3) + addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(to_chat), quirk_holder, "You make eye contact with [A]."), 3) /datum/quirk/social_anxiety/proc/eye_contact(datum/source, mob/living/other_mob, triggering_examiner) SIGNAL_HANDLER @@ -504,7 +504,7 @@ msg += "causing you to freeze up!" SEND_SIGNAL(quirk_holder, COMSIG_ADD_MOOD_EVENT, "anxiety_eyecontact", /datum/mood_event/anxiety_eyecontact) - addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, quirk_holder, "[msg]"), 3) // so the examine signal has time to fire and this will print after + addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(to_chat), quirk_holder, "[msg]"), 3) // so the examine signal has time to fire and this will print after return COMSIG_BLOCK_EYECONTACT /datum/mood_event/anxiety_eyecontact @@ -634,7 +634,7 @@ mood_quirk = TRUE /datum/quirk/bad_touch/add() - RegisterSignal(quirk_holder, list(COMSIG_LIVING_GET_PULLED, COMSIG_CARBON_HUGGED, COMSIG_CARBON_HEADPAT), .proc/uncomfortable_touch) + RegisterSignal(quirk_holder, list(COMSIG_LIVING_GET_PULLED, COMSIG_CARBON_HUGGED, COMSIG_CARBON_HEADPAT), PROC_REF(uncomfortable_touch)) /datum/quirk/bad_touch/remove() if(quirk_holder) diff --git a/code/datums/traits/neutral.dm b/code/datums/traits/neutral.dm index 0705a2837b6e..b92a3d137dc9 100644 --- a/code/datums/traits/neutral.dm +++ b/code/datums/traits/neutral.dm @@ -185,8 +185,8 @@ old_hair = H.hairstyle H.hairstyle = "Bald" H.update_hair() - RegisterSignal(H, COMSIG_CARBON_EQUIP_HAT, .proc/equip_hat) - RegisterSignal(H, COMSIG_CARBON_UNEQUIP_HAT, .proc/unequip_hat) + RegisterSignal(H, COMSIG_CARBON_EQUIP_HAT, PROC_REF(equip_hat)) + RegisterSignal(H, COMSIG_CARBON_UNEQUIP_HAT, PROC_REF(unequip_hat)) /datum/quirk/bald/remove() if(quirk_holder) diff --git a/code/datums/verb_callbacks.dm b/code/datums/verb_callbacks.dm new file mode 100644 index 000000000000..6468974260f7 --- /dev/null +++ b/code/datums/verb_callbacks.dm @@ -0,0 +1,8 @@ +///like normal callbacks but they also record their creation time for measurement purposes +/datum/callback/verb_callback + ///the tick this callback datum was created in. used for testing latency + var/creation_time = 0 + +/datum/callback/verb_callback/New(thingtocall, proctocall, ...) + creation_time = DS2TICKS(world.time) + . = ..() diff --git a/code/datums/weather/weather.dm b/code/datums/weather/weather.dm index 142bda8a9572..e3b6f98329f5 100644 --- a/code/datums/weather/weather.dm +++ b/code/datums/weather/weather.dm @@ -164,7 +164,7 @@ to_chat(M, telegraph_message) if(telegraph_sound) SEND_SOUND(M, sound(telegraph_sound)) - addtimer(CALLBACK(src, .proc/start), telegraph_duration) + addtimer(CALLBACK(src, PROC_REF(start)), telegraph_duration) if(sound_active_outside) sound_active_outside.output_atoms = outside_areas @@ -196,7 +196,7 @@ to_chat(M, weather_message) if(weather_sound) SEND_SOUND(M, sound(weather_sound)) - addtimer(CALLBACK(src, .proc/wind_down), weather_duration) + addtimer(CALLBACK(src, PROC_REF(wind_down)), weather_duration) if(sound_weak_outside) sound_weak_outside.stop() @@ -226,7 +226,7 @@ to_chat(M, end_message) if(end_sound) SEND_SOUND(M, sound(end_sound)) - addtimer(CALLBACK(src, .proc/end), end_duration) + addtimer(CALLBACK(src, PROC_REF(end)), end_duration) if(sound_active_outside) sound_active_outside.stop() diff --git a/code/datums/wires/_wires.dm b/code/datums/wires/_wires.dm index 3562dc5d6dbb..e6db7790fd67 100644 --- a/code/datums/wires/_wires.dm +++ b/code/datums/wires/_wires.dm @@ -37,7 +37,7 @@ CRASH("Wire holder is not of the expected type!") src.holder = holder - RegisterSignal(holder, COMSIG_PARENT_QDELETING, .proc/on_holder_qdel) + RegisterSignal(holder, COMSIG_PARENT_QDELETING, PROC_REF(on_holder_qdel)) if(randomize) randomize() else diff --git a/code/datums/wires/airalarm.dm b/code/datums/wires/airalarm.dm index 6afccd547660..8297c2ab233c 100644 --- a/code/datums/wires/airalarm.dm +++ b/code/datums/wires/airalarm.dm @@ -31,13 +31,13 @@ if(!A.shorted) A.shorted = TRUE A.update_appearance() - addtimer(CALLBACK(A, /obj/machinery/airalarm.proc/reset, wire), 1200) + addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/airalarm, reset), wire), 1200) if(WIRE_IDSCAN) // Toggle lock. A.locked = !A.locked if(WIRE_AI) // Disable AI control for a while. if(!A.aidisabled) A.aidisabled = TRUE - addtimer(CALLBACK(A, /obj/machinery/airalarm.proc/reset, wire), 100) + addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/airalarm, reset), wire), 100) if(WIRE_PANIC) // Toggle panic siphon. if(!A.shorted) if(A.mode == 1) // AALARM_MODE_SCRUB diff --git a/code/datums/wires/airlock.dm b/code/datums/wires/airlock.dm index c9e969a8ebd0..14e2d4f2ba1f 100644 --- a/code/datums/wires/airlock.dm +++ b/code/datums/wires/airlock.dm @@ -63,9 +63,9 @@ return if(!A.requiresID() || A.check_access(null)) if(A.density) - INVOKE_ASYNC(A, /obj/machinery/door/airlock.proc/open) + INVOKE_ASYNC(A, TYPE_PROC_REF(/obj/machinery/door/airlock, open)) else - INVOKE_ASYNC(A, /obj/machinery/door/airlock.proc/close) + INVOKE_ASYNC(A, TYPE_PROC_REF(/obj/machinery/door/airlock, close)) if(WIRE_BOLTS) // Pulse to toggle bolts (but only raise if power is on). if(!A.locked) A.bolt() @@ -84,7 +84,7 @@ A.aiControlDisabled = AI_WIRE_DISABLED else if(A.aiControlDisabled == AI_WIRE_DISABLED_HACKED) A.aiControlDisabled = AI_WIRE_HACKED - addtimer(CALLBACK(A, /obj/machinery/door/airlock.proc/reset_ai_wire), 1 SECONDS) + addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/door/airlock, reset_ai_wire)), 1 SECONDS) if(WIRE_SHOCK) // Pulse to shock the door for 10 ticks. if(!A.secondsElectrified) A.set_electrified(MACHINE_DEFAULT_ELECTRIFY_TIME, usr) diff --git a/code/datums/wires/airlock_cycle.dm b/code/datums/wires/airlock_cycle.dm index a1f942dab2e9..318eaa6e0231 100644 --- a/code/datums/wires/airlock_cycle.dm +++ b/code/datums/wires/airlock_cycle.dm @@ -30,13 +30,13 @@ if(!A.shorted) A.shorted = TRUE A.update_appearance() - addtimer(CALLBACK(A, /obj/machinery/advanced_airlock_controller.proc/reset, wire), 1200) + addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/advanced_airlock_controller, reset), wire), 1200) if(WIRE_IDSCAN) // Toggle lock. A.locked = !A.locked if(WIRE_AI) // Disable AI control for a while. if(!A.aidisabled) A.aidisabled = TRUE - addtimer(CALLBACK(A, /obj/machinery/advanced_airlock_controller.proc/reset, wire), 100) + addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/advanced_airlock_controller, reset), wire), 100) /datum/wires/advanced_airlock_controller/on_cut(wire, mend) var/obj/machinery/advanced_airlock_controller/A = holder diff --git a/code/datums/wires/apc.dm b/code/datums/wires/apc.dm index 933b9aae0222..a6a18c6d8d1c 100644 --- a/code/datums/wires/apc.dm +++ b/code/datums/wires/apc.dm @@ -29,14 +29,14 @@ if(WIRE_POWER1, WIRE_POWER2) // Short for a long while. if(!A.shorted) A.shorted = TRUE - addtimer(CALLBACK(A, /obj/machinery/power/apc.proc/reset, wire), 1200) + addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/power/apc, reset), wire), 1200) if(WIRE_IDSCAN) // Unlock for a little while. A.locked = FALSE - addtimer(CALLBACK(A, /obj/machinery/power/apc.proc/reset, wire), 300) + addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/power/apc, reset), wire), 300) if(WIRE_AI) // Disable AI control for a very short time. if(!A.aidisabled) A.aidisabled = TRUE - addtimer(CALLBACK(A, /obj/machinery/power/apc.proc/reset, wire), 10) + addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/power/apc, reset), wire), 10) /datum/wires/apc/on_cut(index, mend) var/obj/machinery/power/apc/A = holder diff --git a/code/datums/wires/autolathe.dm b/code/datums/wires/autolathe.dm index c14c18887a82..8f9fbc16033a 100644 --- a/code/datums/wires/autolathe.dm +++ b/code/datums/wires/autolathe.dm @@ -27,13 +27,13 @@ switch(wire) if(WIRE_HACK) A.adjust_hacked(!A.hacked) - addtimer(CALLBACK(A, /obj/machinery/autolathe.proc/reset, wire), 60) + addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/autolathe, reset), wire), 60) if(WIRE_SHOCK) A.shocked = !A.shocked - addtimer(CALLBACK(A, /obj/machinery/autolathe.proc/reset, wire), 60) + addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/autolathe, reset), wire), 60) if(WIRE_DISABLE) A.disabled = !A.disabled - addtimer(CALLBACK(A, /obj/machinery/autolathe.proc/reset, wire), 60) + addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/autolathe, reset), wire), 60) /datum/wires/autolathe/on_cut(wire, mend) var/obj/machinery/autolathe/A = holder diff --git a/code/datums/wires/shieldwallgen.dm b/code/datums/wires/shieldwallgen.dm index 58c52970c8e5..618e9871c031 100644 --- a/code/datums/wires/shieldwallgen.dm +++ b/code/datums/wires/shieldwallgen.dm @@ -28,7 +28,7 @@ switch(wire) if(WIRE_SHOCK) generator.shocked = !generator.shocked - addtimer(CALLBACK(generator, /obj/machinery/autolathe.proc/reset, wire), 60) + addtimer(CALLBACK(generator, TYPE_PROC_REF(/obj/machinery/autolathe, reset), wire), 60) if(WIRE_ACTIVATE) generator.toggle() if(WIRE_DISABLE) diff --git a/code/game/MapData/shuttles/srm_glaive.dm b/code/game/MapData/shuttles/srm_glaive.dm index 738bebeda36b..a40e9bd426c1 100644 --- a/code/game/MapData/shuttles/srm_glaive.dm +++ b/code/game/MapData/shuttles/srm_glaive.dm @@ -91,10 +91,6 @@ ) generate_items_inside(items_inside, src) -/obj/structure/flora/tree/chapel/srm - name = "Montagne's Oak" - desc = "A sturdy oak tree imported directly from the homeworld of the Montagne who runs the ship it resides on. It is planted in soil from the same place." - /obj/item/book/manual/srmlore name = "Notes on the SRM" icon_state = "book5" diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index b7d13f80d70e..35712cb768ae 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -318,7 +318,7 @@ GLOBAL_LIST_EMPTY(teleportlocs) if(D.operating) D.nextstate = opening ? FIREDOOR_OPEN : FIREDOOR_CLOSED else if(!(D.density ^ opening) && !D.is_holding_pressure()) - INVOKE_ASYNC(D, (opening ? /obj/machinery/door/firedoor.proc/open : /obj/machinery/door/firedoor.proc/close)) + INVOKE_ASYNC(D, (opening ? TYPE_PROC_REF(/obj/machinery/door/firedoor, open) : TYPE_PROC_REF(/obj/machinery/door/firedoor, close))) /** * Generate an firealarm alert for this area @@ -435,7 +435,7 @@ GLOBAL_LIST_EMPTY(teleportlocs) var/mob/living/silicon/SILICON = i if(SILICON.triggerAlarm("Burglar", src, cameras, trigger)) //Cancel silicon alert after 1 minute - addtimer(CALLBACK(SILICON, /mob/living/silicon.proc/cancelAlarm,"Burglar",src,trigger), 600) + addtimer(CALLBACK(SILICON, TYPE_PROC_REF(/mob/living/silicon, cancelAlarm),"Burglar",src,trigger), 600) /** * Trigger the fire alarm visual affects in an area diff --git a/code/game/area/areas/outpost.dm b/code/game/area/areas/outpost.dm index fec76061fb37..31d9f39c7e30 100644 --- a/code/game/area/areas/outpost.dm +++ b/code/game/area/areas/outpost.dm @@ -156,6 +156,7 @@ name = "Operations" icon_state = "bridge" sound_environment = SOUND_AREA_LARGE_ENCLOSED + area_flags = NOTELEPORT // medbay values lighting_colour_tube = "#e7f8ff" lighting_colour_bulb = "#d5f2ff" diff --git a/code/game/area/areas/ruins/beachplanet.dm b/code/game/area/areas/ruins/beachplanet.dm index 3de8f16dc86b..919d2602a3d3 100644 --- a/code/game/area/areas/ruins/beachplanet.dm +++ b/code/game/area/areas/ruins/beachplanet.dm @@ -69,3 +69,14 @@ /area/ruin/beach/treasure_cove name = "Pirate Cavern" icon_state = "purple" + +//beach_float_resort --> keeping resort open for a land based ruin + +/area/ruin/beach/float_resort + name = "Beach Resort" + icon_state = "yellow" + always_unpowered = FALSE + +/area/ruin/beach/float_resort/villa + name = "Resort Villa" + icon_state = "green" diff --git a/code/game/area/areas/ruins/jungle.dm b/code/game/area/areas/ruins/jungle.dm index c25339acaf58..09d0e95f2f36 100644 --- a/code/game/area/areas/ruins/jungle.dm +++ b/code/game/area/areas/ruins/jungle.dm @@ -115,3 +115,33 @@ /area/ruin/jungle/syndifort/jerry name = "Syndicate Fort Tower" icon_state = "bridge" + +// Cave Crew + +/area/ruin/jungle/cavecrew + name = "Cave" + icon_state = "red" + +/area/ruin/jungle/cavecrew/cargo + name = "Cave Cargo" + icon_state = "dk_yellow" + +/area/ruin/jungle/cavecrew/bridge + name = "Cave Bridge" + icon_state = "bridge" + +/area/ruin/jungle/cavecrew/hallway + name = "Cave Base Hallway" + icon_state = "hallP" + +/area/ruin/jungle/cavecrew/engineering + name = "Cave Base Engineering" + icon_state = "dk_yellow" + +/area/ruin/jungle/cavecrew/security + name = "Cave Base Security" + icon_state = "red" + +/area/ruin/jungle/cavecrew/dormitories + name = "Cave Base dormitories" + icon_state = "crew_quarters" diff --git a/code/game/area/areas/ruins/lavaland.dm b/code/game/area/areas/ruins/lavaland.dm index 645d98fc8f58..e9dc0b9fda0a 100644 --- a/code/game/area/areas/ruins/lavaland.dm +++ b/code/game/area/areas/ruins/lavaland.dm @@ -60,42 +60,6 @@ name = "Cult Altar" ambientsounds = SPOOKY -//Syndicate lavaland base - -/area/ruin/unpowered/syndicate_lava_base/engineering - name = "Syndicate Lavaland Engineering" - -/area/ruin/unpowered/syndicate_lava_base/medbay - name = "Syndicate Lavaland Medbay" - -/area/ruin/unpowered/syndicate_lava_base/arrivals - name = "Syndicate Lavaland Arrivals" - -/area/ruin/unpowered/syndicate_lava_base/bar - name = "Syndicate Lavaland Bar" - -/area/ruin/unpowered/syndicate_lava_base/main - name = "Syndicate Lavaland Primary Hallway" - area_flags = HIDDEN_AREA | BLOBS_ALLOWED | UNIQUE_AREA // WS edit - Fix various startup runtimes - -/area/ruin/unpowered/syndicate_lava_base/cargo - name = "Syndicate Lavaland Cargo Bay" - -/area/ruin/unpowered/syndicate_lava_base/chemistry - name = "Syndicate Lavaland Chemistry" - -/area/ruin/unpowered/syndicate_lava_base/virology - name = "Syndicate Lavaland Virology" - -/area/ruin/unpowered/syndicate_lava_base/testlab - name = "Syndicate Lavaland Experimentation Lab" - -/area/ruin/unpowered/syndicate_lava_base/dormitories - name = "Syndicate Lavaland Dormitories" - -/area/ruin/unpowered/syndicate_lava_base/telecomms - name = "Syndicate Lavaland Telecommunications" - //Xeno Nest /area/ruin/unpowered/xenonest diff --git a/code/game/area/areas/ruins/rockplanet.dm b/code/game/area/areas/ruins/rockplanet.dm index cabadd3f252d..a869f0c53816 100644 --- a/code/game/area/areas/ruins/rockplanet.dm +++ b/code/game/area/areas/ruins/rockplanet.dm @@ -1,7 +1,17 @@ /**********************Rock Planet Areas**************************/ -/area/mine/rockplanet +//syndicate +/area/ruin/rockplanet/syndicate name = "Abandoned Syndicate Mining Facility" + icon_state = "green" -/area/mine/rockplanet_nanotrasen +//budgetcuts +/area/ruin/rockplanet/nanotrasen name = "Abandoned Mining Facility" + icon_state = "green" + +//nomad +/area/ruin/rockplanet/nomad + name = "Abandoned Crash Site" + always_unpowered = FALSE + icon_state = "red" diff --git a/code/game/area/areas/ruins/space.dm b/code/game/area/areas/ruins/space.dm index 769c509734bd..6bda9781b500 100644 --- a/code/game/area/areas/ruins/space.dm +++ b/code/game/area/areas/ruins/space.dm @@ -56,19 +56,6 @@ name = "Derelict Outpost Docked Ship" icon_state = "red" -//Ruin of mech transport - -/area/ruin/space/has_grav/powered/mechtransport - name = "Mech Transport" - icon_state = "green" - - -//Ruin of gas the lizard - -/area/ruin/space/has_grav/gasthelizard - name = "Gas the lizard" - - //Ruin of Deep Storage /area/ruin/space/has_grav/deepstorage @@ -366,16 +353,6 @@ name = "Mac Space Restaurant" icon_state = "yellow" -//NUCLEAR DUMP -- this ruin uses an area from power puzzle, for whatever reason. added new areas, for now. - -/area/ruin/space/has_grav/nucleardump - name = "Hallway" - icon_state = "hallC" - -/area/ruin/space/has_grav/nucleardump/supermatter - name = "Supermatter Chamber" - icon_state = "red" - //POWER PUZZLE /area/ruin/space/has_grav/powerpuzzle diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 4628bb22f92f..350b80907f70 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -156,6 +156,10 @@ ///Default Y pixel offset var/base_pixel_y + ///Wanted sound when hit by a projectile + var/hitsound_type = PROJECTILE_HITSOUND_NON_LIVING + ///volume wanted for being hit + var/hitsound_volume = 50 /** * Called when an atom is created in byond (built in engine proc) * @@ -168,7 +172,7 @@ */ /atom/New(loc, ...) //atom creation method that preloads variables at creation - if(GLOB.use_preloader && (src.type == GLOB._preloader.target_path))//in case the instanciated atom is creating other atoms in New() + if(GLOB.use_preloader && src.type == GLOB._preloader_path)//in case the instanciated atom is creating other atoms in New() world.preloader_load(src) if(datum_flags & DF_USE_TAG) @@ -587,6 +591,33 @@ SEND_SIGNAL(src, COMSIG_ATOM_BULLET_ACT, P, def_zone) . = P.on_hit(src, 0, def_zone, piercing_hit) +/atom/proc/bullet_hit_sfx(obj/projectile/hitting_projectile) + var/selected_sound = "" + + if(!hitsound_volume) + return FALSE + if(!hitsound_volume) + return FALSE + + switch(hitsound_type) + if(PROJECTILE_HITSOUND_FLESH) + selected_sound = hitting_projectile.hitsound + if(PROJECTILE_HITSOUND_NON_LIVING) + selected_sound = hitting_projectile.hitsound_non_living + if(PROJECTILE_HITSOUND_GLASS) + selected_sound = hitting_projectile.hitsound_glass + if(PROJECTILE_HITSOUND_STONE) + selected_sound = hitting_projectile.hitsound_stone + if(PROJECTILE_HITSOUND_METAL) + selected_sound = hitting_projectile.hitsound_metal + if(PROJECTILE_HITSOUND_WOOD) + selected_sound = hitting_projectile.hitsound_wood + if(PROJECTILE_HITSOUND_SNOW) + selected_sound = hitting_projectile.hitsound_snow + + playsound(src, selected_sound, hitsound_volume, TRUE) + return TRUE + ///Return true if we're inside the passed in atom /atom/proc/in_contents_of(container)//can take class or object instance as argument if(ispath(container)) @@ -780,7 +811,7 @@ */ /atom/proc/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) if(density && !has_gravity(AM)) //thrown stuff bounces off dense stuff in no grav, unless the thrown stuff ends up inside what it hit(embedding, bola, etc...). - addtimer(CALLBACK(src, .proc/hitby_react, AM), 2) + addtimer(CALLBACK(src, PROC_REF(hitby_react), AM), 2) /** * We have have actually hit the passed in atom @@ -944,7 +975,7 @@ var/list/things = src_object.contents() var/datum/progressbar/progress = new(user, things.len, src) var/datum/component/storage/STR = GetComponent(/datum/component/storage) - while (do_after(user, 10, TRUE, src, FALSE, CALLBACK(STR, /datum/component/storage.proc/handle_mass_item_insertion, things, src_object, user, progress))) + while (do_after(user, 10, TRUE, src, FALSE, CALLBACK(STR, TYPE_PROC_REF(/datum/component/storage, handle_mass_item_insertion), things, src_object, user, progress))) stoplag(1) progress.end_progress() to_chat(user, "You dump as much of [src_object.parent]'s contents [STR.insert_preposition]to [src] as you can.") diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 7471c3514881..54ac77bb0a8c 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -167,7 +167,7 @@ if(isobj(A) || ismob(A)) if(A.layer > highest.layer) highest = A - INVOKE_ASYNC(src, .proc/SpinAnimation, 5, 2) + INVOKE_ASYNC(src, PROC_REF(SpinAnimation), 5, 2) throw_impact(highest) return TRUE diff --git a/code/game/gamemodes/clown_ops/clown_weapons.dm b/code/game/gamemodes/clown_ops/clown_weapons.dm index a690a9317670..fe95ea3c5988 100644 --- a/code/game/gamemodes/clown_ops/clown_weapons.dm +++ b/code/game/gamemodes/clown_ops/clown_weapons.dm @@ -157,7 +157,7 @@ slipper.Slip(src, hit_atom) var/mob/thrown_by = thrownby?.resolve() if(thrown_by && !caught) - addtimer(CALLBACK(src, /atom/movable.proc/throw_at, thrown_by, throw_range+2, throw_speed, null, TRUE), 1) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/movable, throw_at), thrown_by, throw_range+2, throw_speed, null, TRUE), 1) else return ..() @@ -217,7 +217,7 @@ /obj/item/clothing/mask/fakemoustache/sticky/Initialize() . = ..() ADD_TRAIT(src, TRAIT_NODROP, STICKY_MOUSTACHE_TRAIT) - addtimer(CALLBACK(src, .proc/unstick), unstick_time) + addtimer(CALLBACK(src, PROC_REF(unstick)), unstick_time) /obj/item/clothing/mask/fakemoustache/sticky/proc/unstick() REMOVE_TRAIT(src, TRAIT_NODROP, STICKY_MOUSTACHE_TRAIT) diff --git a/code/game/gamemodes/dynamic/dynamic.dm b/code/game/gamemodes/dynamic/dynamic.dm index 3b139bba78e9..78f19dbf1a89 100644 --- a/code/game/gamemodes/dynamic/dynamic.dm +++ b/code/game/gamemodes/dynamic/dynamic.dm @@ -111,22 +111,22 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1) /datum/game_mode/dynamic/admin_panel() var/list/dat = list("Game Mode Panel

Game Mode Panel

") - dat += "Dynamic Mode \[VV\]\[Refresh\]
" + dat += "Dynamic Mode \[VV\]\[Refresh\]
" dat += "Threat Level: [threat_level]
" - dat += "Threat to Spend: [threat] \[Adjust\] \[View Log\]
" + dat += "Threat to Spend: [threat] \[Adjust\] \[View Log\]
" dat += "
" dat += "Parameters: centre = [GLOB.dynamic_curve_centre] ; width = [GLOB.dynamic_curve_width].
" dat += "On average, [peaceful_percentage]% of the rounds are more peaceful.
" - dat += "Forced extended: [GLOB.dynamic_forced_extended ? "On" : "Off"]
" - dat += "Classic secret (only autotraitor): [GLOB.dynamic_classic_secret ? "On" : "Off"]
" - dat += "No stacking (only one round-ender): [GLOB.dynamic_no_stacking ? "On" : "Off"]
" - dat += "Stacking limit: [GLOB.dynamic_stacking_limit] \[Adjust\]" + dat += "Forced extended: [GLOB.dynamic_forced_extended ? "On" : "Off"]
" + dat += "Classic secret (only autotraitor): [GLOB.dynamic_classic_secret ? "On" : "Off"]
" + dat += "No stacking (only one round-ender): [GLOB.dynamic_no_stacking ? "On" : "Off"]
" + dat += "Stacking limit: [GLOB.dynamic_stacking_limit] \[Adjust\]" dat += "
" - dat += "\[Force Next Latejoin Ruleset\]
" + dat += "\[Force Next Latejoin Ruleset\]
" if (forced_latejoin_rule) - dat += {"-> [forced_latejoin_rule.name] <-
"} - dat += "\[Execute Midround Ruleset\]
" + dat += {"-> [forced_latejoin_rule.name] <-
"} + dat += "\[Execute Midround Ruleset\]
" dat += "
" dat += "Executed rulesets: " if (executed_rules.len > 0) @@ -136,8 +136,8 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1) else dat += "none.
" dat += "
Injection Timers: ([get_injection_chance(TRUE)]% chance)
" - dat += "Latejoin: [(latejoin_injection_cooldown-world.time)>60*10 ? "[round((latejoin_injection_cooldown-world.time)/60/10,0.1)] minutes" : "[(latejoin_injection_cooldown-world.time)] seconds"] \[Now!\]
" - dat += "Midround: [(midround_injection_cooldown-world.time)>60*10 ? "[round((midround_injection_cooldown-world.time)/60/10,0.1)] minutes" : "[(midround_injection_cooldown-world.time)] seconds"] \[Now!\]
" + dat += "Latejoin: [(latejoin_injection_cooldown-world.time)>60*10 ? "[round((latejoin_injection_cooldown-world.time)/60/10,0.1)] minutes" : "[(latejoin_injection_cooldown-world.time)] seconds"] \[Now!\]
" + dat += "Midround: [(midround_injection_cooldown-world.time)>60*10 ? "[round((midround_injection_cooldown-world.time)/60/10,0.1)] minutes" : "[(midround_injection_cooldown-world.time)] seconds"] \[Now!\]
" usr << browse(dat.Join(), "window=gamemode_panel;size=500x500") /datum/game_mode/dynamic/Topic(href, href_list) @@ -367,7 +367,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1) /datum/game_mode/dynamic/post_setup(report) for(var/datum/dynamic_ruleset/roundstart/rule in executed_rules) rule.candidates.Cut() // The rule should not use candidates at this point as they all are null. - addtimer(CALLBACK(src, /datum/game_mode/dynamic/.proc/execute_roundstart_rule, rule), rule.delay) + addtimer(CALLBACK(src, TYPE_PROC_REF(/datum/game_mode/dynamic, execute_roundstart_rule), rule), rule.delay) ..() /// A simple roundstart proc used when dynamic_forced_roundstart_ruleset has rules in it. @@ -540,7 +540,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1) else if(rule.ruletype == "Midround") midround_rules = remove_from_list(midround_rules, rule.type) - addtimer(CALLBACK(src, /datum/game_mode/dynamic/.proc/execute_midround_latejoin_rule, rule), rule.delay) + addtimer(CALLBACK(src, TYPE_PROC_REF(/datum/game_mode/dynamic, execute_midround_latejoin_rule), rule), rule.delay) return TRUE /// An experimental proc to allow admins to call rules on the fly or have rules call other rules. diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 53f6f85f71b5..391ad852664f 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -110,7 +110,7 @@ query_round_game_mode.Execute() qdel(query_round_game_mode) if(report) - addtimer(CALLBACK(src, .proc/send_intercept, 0), rand(waittime_l, waittime_h)) + addtimer(CALLBACK(src, PROC_REF(send_intercept), 0), rand(waittime_l, waittime_h)) generate_station_goals() gamemode_ready = TRUE return 1 diff --git a/code/game/gamemodes/sandbox/airlock_maker.dm b/code/game/gamemodes/sandbox/airlock_maker.dm index da1db44bb251..17f6f474e5ea 100644 --- a/code/game/gamemodes/sandbox/airlock_maker.dm +++ b/code/game/gamemodes/sandbox/airlock_maker.dm @@ -16,7 +16,7 @@ /obj/structure/door_assembly/ComponentInitialize() . = ..() - AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS, null, CALLBACK(src, .proc/can_be_rotated)) + AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS, null, CALLBACK(src, PROC_REF(can_be_rotated))) /obj/structure/door_assembly/proc/can_be_rotated(mob/user, rotation_type) return !anchored diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index b46449a43748..1aaf853fc000 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -90,7 +90,7 @@ /datum/game_mode/traitor/post_setup() for(var/datum/mind/traitor in pre_traitors) var/datum/antagonist/traitor/new_antag = new antag_datum() - addtimer(CALLBACK(traitor, /datum/mind.proc/add_antag_datum, new_antag), rand(10,100)) + addtimer(CALLBACK(traitor, TYPE_PROC_REF(/datum/mind, add_antag_datum), new_antag), rand(10,100)) GLOB.pre_setup_antags -= traitor if(!exchange_blue) exchange_blue = -1 //Block latejoiners from getting exchange objectives diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm index bc793eb60d82..c81a58ad73b9 100644 --- a/code/game/machinery/_machinery.dm +++ b/code/game/machinery/_machinery.dm @@ -95,6 +95,8 @@ Class Procs: anchored = TRUE interaction_flags_atom = INTERACT_ATOM_ATTACK_HAND | INTERACT_ATOM_UI_INTERACT + hitsound_type = PROJECTILE_HITSOUND_METAL + var/machine_stat = NONE var/use_power = IDLE_POWER_USE //0 = dont run the auto @@ -138,7 +140,7 @@ Class Procs: armor = list("melee" = 25, "bullet" = 10, "laser" = 10, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 70) . = ..() GLOB.machines += src - RegisterSignal(src, COMSIG_MOVABLE_Z_CHANGED, .proc/power_change) + RegisterSignal(src, COMSIG_MOVABLE_Z_CHANGED, PROC_REF(power_change)) if(ispath(circuit, /obj/item/circuitboard)) circuit = new circuit if(mapload || apply_default_parts) @@ -165,7 +167,7 @@ Class Procs: /obj/machinery/LateInitialize() . = ..() power_change() - RegisterSignal(src, COMSIG_ENTER_AREA, .proc/power_change) + RegisterSignal(src, COMSIG_ENTER_AREA, PROC_REF(power_change)) /obj/machinery/Destroy() GLOB.machines.Remove(src) @@ -519,7 +521,7 @@ Class Procs: I.play_tool_sound(src, 50) var/prev_anchored = anchored //as long as we're the same anchored state and we're either on a floor or are anchored, toggle our anchored state - if(I.use_tool(src, user, time, extra_checks = CALLBACK(src, .proc/unfasten_wrench_check, prev_anchored, user))) + if(I.use_tool(src, user, time, extra_checks = CALLBACK(src, PROC_REF(unfasten_wrench_check), prev_anchored, user))) if(!anchored && ground.is_blocked_turf(exclude_mobs = TRUE, source_atom = src)) to_chat(user, "You fail to secure [src].") return CANT_UNFASTEN diff --git a/code/game/machinery/ai_slipper.dm b/code/game/machinery/ai_slipper.dm index eb46da7f568b..0423794a560d 100644 --- a/code/game/machinery/ai_slipper.dm +++ b/code/game/machinery/ai_slipper.dm @@ -42,4 +42,4 @@ to_chat(user, "You activate [src]. It now has [uses] uses of foam remaining.") cooldown = world.time + cooldown_time power_change() - addtimer(CALLBACK(src, .proc/power_change), cooldown_time) + addtimer(CALLBACK(src, PROC_REF(power_change)), cooldown_time) diff --git a/code/game/machinery/airlock_control.dm b/code/game/machinery/airlock_control.dm index 9a3f470fe99d..67d1e1f4a07f 100644 --- a/code/game/machinery/airlock_control.dm +++ b/code/game/machinery/airlock_control.dm @@ -110,10 +110,6 @@ id_tag = INCINERATOR_ATMOS_AIRLOCK_SENSOR master_tag = INCINERATOR_ATMOS_AIRLOCK_CONTROLLER -/obj/machinery/airlock_sensor/incinerator_syndicatelava - id_tag = INCINERATOR_SYNDICATELAVA_AIRLOCK_SENSOR - master_tag = INCINERATOR_SYNDICATELAVA_AIRLOCK_CONTROLLER - /obj/machinery/airlock_sensor/update_icon_state() if(!on) icon_state = "[base_icon_state]_off" diff --git a/code/game/machinery/airlock_cycle_control.dm b/code/game/machinery/airlock_cycle_control.dm index 0b35bedebd05..76094e803cd3 100644 --- a/code/game/machinery/airlock_cycle_control.dm +++ b/code/game/machinery/airlock_cycle_control.dm @@ -167,7 +167,7 @@ var/maxpressure = (exterior_pressure && (cyclestate == AIRLOCK_CYCLESTATE_OUTCLOSING || cyclestate == AIRLOCK_CYCLESTATE_OUTOPENING || cyclestate == AIRLOCK_CYCLESTATE_OUTOPEN)) ? exterior_pressure : interior_pressure var/pressure_bars = round(pressure / maxpressure * 5 + 0.01) - var/new_overlays_hash = "[pressure_bars]-[cyclestate]-[buildstage]-[panel_open]-[machine_stat]-[shorted]-[locked]-\ref[vis_target]" + var/new_overlays_hash = "[pressure_bars]-[cyclestate]-[buildstage]-[panel_open]-[machine_stat]-[shorted]-[locked]-[text_ref(vis_target)]" if(use_hash && new_overlays_hash == overlays_hash) return ..() overlays_hash = new_overlays_hash @@ -645,7 +645,7 @@ "airlocks" = list(), "skip_timer" = (world.time - skip_timer), "skip_delay" = skip_delay, - "vis_target" = "\ref[vis_target]" + "vis_target" = "[text_ref(vis_target)]" ) if((locked && !user.has_unlimited_silicon_privilege) || (user.has_unlimited_silicon_privilege && aidisabled)) @@ -661,7 +661,7 @@ var/obj/machinery/atmospherics/components/unary/vent_pump/vent = V data["vents"] += list(list( "role" = vents[vent], - "vent_id" = "\ref[vent]", + "vent_id" = "[text_ref(vent)]", "name" = vent.name )) for(var/A in airlocks) @@ -683,7 +683,7 @@ data["airlocks"] += list(list( "role" = airlocks[airlock], - "airlock_id" = "\ref[airlock]", + "airlock_id" = "[text_ref(airlock)]", "name" = airlock.name, "access" = access_str )) diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index b6fb1f27f5a1..5f8412ff25a3 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -49,7 +49,7 @@ ) /obj/machinery/autolathe/Initialize() - AddComponent(/datum/component/material_container,list(/datum/material/iron, /datum/material/glass, /datum/material/plastic, /datum/material/silver, /datum/material/gold, /datum/material/plasma, /datum/material/uranium, /datum/material/titanium), 0, TRUE, null, null, CALLBACK(src, .proc/AfterMaterialInsert)) + AddComponent(/datum/component/material_container,list(/datum/material/iron, /datum/material/glass, /datum/material/plastic, /datum/material/silver, /datum/material/gold, /datum/material/plasma, /datum/material/uranium, /datum/material/titanium), 0, TRUE, null, null, CALLBACK(src, PROC_REF(AfterMaterialInsert))) . = ..() wires = new /datum/wires/autolathe(src) @@ -251,7 +251,7 @@ use_power(power) icon_state = "autolathe_n" var/time = is_stack ? 32 : (32 * coeff * multiplier) ** 0.8 - addtimer(CALLBACK(src, .proc/make_item, power, materials_used, custom_materials, multiplier, coeff, is_stack, usr), time) + addtimer(CALLBACK(src, PROC_REF(make_item), power, materials_used, custom_materials, multiplier, coeff, is_stack, usr), time) . = TRUE else to_chat(usr, "Not enough materials for this operation.") diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index 3e04893bf8a9..1a89a2b011cc 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -181,7 +181,7 @@ device.pulsed() SEND_GLOBAL_SIGNAL(COMSIG_GLOB_BUTTON_PRESSED,src) - addtimer(CALLBACK(src, /atom/.proc/update_appearance), 15) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_appearance)), 15) /obj/machinery/button/door name = "door button" @@ -220,15 +220,6 @@ id = INCINERATOR_ATMOS_AUXVENT req_one_access = list(ACCESS_ATMOSPHERICS, ACCESS_MAINT_TUNNELS) -/obj/machinery/button/door/incinerator_vent_syndicatelava_main - name = "turbine vent control" - id = INCINERATOR_SYNDICATELAVA_MAINVENT - req_access = list(ACCESS_SYNDICATE) - -/obj/machinery/button/door/incinerator_vent_syndicatelava_aux - name = "Combustion Chamber Vent control" - id = INCINERATOR_SYNDICATELAVA_AUXVENT - req_access = list(ACCESS_SYNDICATE) /obj/machinery/button/massdriver name = "mass driver button" @@ -260,9 +251,6 @@ /obj/machinery/button/ignition/incinerator/atmos id = INCINERATOR_ATMOS_IGNITER -/obj/machinery/button/ignition/incinerator/syndicatelava - id = INCINERATOR_SYNDICATELAVA_IGNITER - /obj/machinery/button/flasher name = "flasher button" desc = "A remote control switch for a mounted flasher." diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index faccb82395fd..c1cca432efd4 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -158,7 +158,7 @@ set_light(0) emped = emped+1 //Increase the number of consecutive EMP's update_appearance() - addtimer(CALLBACK(src, .proc/post_emp_reset, emped, network), 90 SECONDS) + addtimer(CALLBACK(src, PROC_REF(post_emp_reset), emped, network), 90 SECONDS) for(var/i in GLOB.player_list) var/mob/M = i if (M.client.eye == src) @@ -178,7 +178,7 @@ if(can_use()) GLOB.cameranet.addCamera(src) emped = 0 //Resets the consecutive EMP count - addtimer(CALLBACK(src, .proc/cancelCameraAlarm), 100) + addtimer(CALLBACK(src, PROC_REF(cancelCameraAlarm)), 100) /obj/machinery/camera/ex_act(severity, target) if(invuln) @@ -437,7 +437,7 @@ change_msg = "reactivates" triggerCameraAlarm() if(!QDELETED(src)) //We'll be doing it anyway in destroy - addtimer(CALLBACK(src, .proc/cancelCameraAlarm), 100) + addtimer(CALLBACK(src, PROC_REF(cancelCameraAlarm)), 100) if(displaymessage) if(user) visible_message("[user] [change_msg] [src]!") diff --git a/code/game/machinery/camera/tracking.dm b/code/game/machinery/camera/tracking.dm index fd876b2987f2..cdfb48edc2e9 100644 --- a/code/game/machinery/camera/tracking.dm +++ b/code/game/machinery/camera/tracking.dm @@ -86,7 +86,7 @@ to_chat(U, "Now tracking [target.get_visible_name()] on camera.") - INVOKE_ASYNC(src, .proc/do_track, target, U) + INVOKE_ASYNC(src, PROC_REF(do_track), target, U) /mob/living/silicon/ai/proc/do_track(mob/living/target, mob/living/silicon/ai/U) var/cameraticks = 0 diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 60c41eeeb921..c71e94a0948a 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -206,7 +206,7 @@ if(!G) return NONE if(clonemind.damnation_type) //Can't clone the damned. - INVOKE_ASYNC(src, .proc/horrifyingsound) + INVOKE_ASYNC(src, PROC_REF(horrifyingsound)) mess = TRUE icon_state = "pod_g" update_appearance() diff --git a/code/game/machinery/computer/_computer.dm b/code/game/machinery/computer/_computer.dm index 49b13bb0c2c9..bdbadf79a943 100644 --- a/code/game/machinery/computer/_computer.dm +++ b/code/game/machinery/computer/_computer.dm @@ -21,6 +21,8 @@ ///Does this computer have a unique icon_state? Prevents the changing of icons from alternative computer construction var/unique_icon = FALSE + hitsound_type = PROJECTILE_HITSOUND_GLASS + /obj/machinery/computer/Initialize(mapload, obj/item/circuitboard/C) . = ..() power_change() diff --git a/code/game/machinery/computer/apc_control.dm b/code/game/machinery/computer/apc_control.dm index eb43515d6e47..1ca0c97d5223 100644 --- a/code/game/machinery/computer/apc_control.dm +++ b/code/game/machinery/computer/apc_control.dm @@ -114,7 +114,7 @@ log_game("[key_name(operator)] set the logs of [src] in [AREACOORD(src)] [should_log ? "On" : "Off"]") if("restore-console") restoring = TRUE - addtimer(CALLBACK(src, .proc/restore_comp), rand(3,5) * 9) + addtimer(CALLBACK(src, PROC_REF(restore_comp)), rand(3,5) * 9) if("access-apc") var/ref = params["ref"] playsound(src, "terminal_type", 50, FALSE) diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 94b57a2d9f57..571d5b090da9 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -773,7 +773,7 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list( var/mob/living/L = usr L.Stun(200, ignore_canstun = TRUE) //you can't run :^) var/S = new /obj/singularity/academy(usr.loc) - addtimer(CALLBACK(src, /atom/movable/proc/say, "[S] winks out, just as suddenly as it appeared."), 50) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/movable, say), "[S] winks out, just as suddenly as it appeared."), 50) QDEL_IN(S, 50) else event = null diff --git a/code/game/machinery/computer/arena.dm b/code/game/machinery/computer/arena.dm index 5c4a62abe683..428d553ee068 100644 --- a/code/game/machinery/computer/arena.dm +++ b/code/game/machinery/computer/arena.dm @@ -88,7 +88,7 @@ var/list/default_arenas = flist(arena_dir) for(var/arena_file in default_arenas) var/simple_name = replacetext(replacetext(arena_file,arena_dir,""),".dmm","") - INVOKE_ASYNC(src, .proc/add_new_arena_template, null, arena_dir + arena_file, simple_name) + INVOKE_ASYNC(src, PROC_REF(add_new_arena_template), null, arena_dir + arena_file, simple_name) /obj/machinery/computer/arena/proc/get_landmark_turf(landmark_tag) for(var/obj/effect/landmark/arena/L in GLOB.landmarks_list) @@ -234,7 +234,7 @@ for(var/mob/M in all_contestants()) to_chat(M,"The gates will open in [timetext]!") start_time = world.time + start_delay - addtimer(CALLBACK(src,.proc/begin),start_delay) + addtimer(CALLBACK(src, PROC_REF(begin)),start_delay) for(var/team in teams) var/obj/machinery/arena_spawn/team_spawn = get_spawn(team) var/obj/effect/countdown/arena/A = new(team_spawn) @@ -261,9 +261,9 @@ if(D.id != arena_id) continue if(closed) - INVOKE_ASYNC(D, /obj/machinery/door/poddoor.proc/close) + INVOKE_ASYNC(D, TYPE_PROC_REF(/obj/machinery/door/poddoor, close)) else - INVOKE_ASYNC(D, /obj/machinery/door/poddoor.proc/open) + INVOKE_ASYNC(D, TYPE_PROC_REF(/obj/machinery/door/poddoor, open)) /obj/machinery/computer/arena/Topic(href, href_list) if(..()) diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index 3275bb33f272..50ed20ae619e 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -270,13 +270,13 @@ /obj/machinery/computer/security/telescreen/entertainment/Initialize() . = ..() - RegisterSignal(src, COMSIG_CLICK, .proc/BigClick) + RegisterSignal(src, COMSIG_CLICK, PROC_REF(BigClick)) // Bypass clickchain to allow humans to use the telescreen from a distance /obj/machinery/computer/security/telescreen/entertainment/proc/BigClick() SIGNAL_HANDLER - INVOKE_ASYNC(src, /atom.proc/interact, usr) + INVOKE_ASYNC(src, TYPE_PROC_REF(/atom, interact), usr) /obj/machinery/computer/security/telescreen/entertainment/proc/notify(on) if(on && icon_state == icon_state_off) diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index 426e393e5bb8..0fe059653d5c 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -356,7 +356,7 @@ playsound(src, 'sound/machines/terminal_prompt.ogg', 50, FALSE) say("Initiating scan...") - addtimer(CALLBACK(src, .proc/do_scan, usr, body_only), 2 SECONDS) + addtimer(CALLBACK(src, PROC_REF(do_scan), usr, body_only), 2 SECONDS) //No locking an open scanner. else if ((href_list["lock"]) && !isnull(scanner) && scanner.is_operational) diff --git a/code/game/machinery/computer/dna_console.dm b/code/game/machinery/computer/dna_console.dm index 437a19136453..ffeabbdc4e0a 100644 --- a/code/game/machinery/computer/dna_console.dm +++ b/code/game/machinery/computer/dna_console.dm @@ -1997,7 +1997,7 @@ connected_scanner.set_linked_console(null) connected_scanner = new_scanner if(connected_scanner) - RegisterSignal(connected_scanner, COMSIG_PARENT_QDELETING, .proc/react_to_scanner_del) + RegisterSignal(connected_scanner, COMSIG_PARENT_QDELETING, PROC_REF(react_to_scanner_del)) connected_scanner.set_linked_console(src) /obj/machinery/computer/scan_consolenew/proc/react_to_scanner_del(datum/source) diff --git a/code/game/machinery/computer/prisoner/gulag_teleporter.dm b/code/game/machinery/computer/prisoner/gulag_teleporter.dm index 9eba87108291..f05ab6b8dea9 100644 --- a/code/game/machinery/computer/prisoner/gulag_teleporter.dm +++ b/code/game/machinery/computer/prisoner/gulag_teleporter.dm @@ -112,7 +112,7 @@ if("teleport") if(!teleporter || !beacon) return - addtimer(CALLBACK(src, .proc/teleport, usr), 5) + addtimer(CALLBACK(src, PROC_REF(teleport), usr), 5) return TRUE /obj/machinery/computer/prisoner/gulag_teleporter_computer/proc/scan_machinery() diff --git a/code/game/machinery/computer/teleporter.dm b/code/game/machinery/computer/teleporter.dm index 6c83c0389487..fe1d87c2c89a 100644 --- a/code/game/machinery/computer/teleporter.dm +++ b/code/game/machinery/computer/teleporter.dm @@ -90,7 +90,7 @@ say("Processing hub calibration to target...") calibrating = TRUE power_station.update_appearance() - addtimer(CALLBACK(src, .proc/finish_calibration), 50 * (3 - power_station.teleporter_hub.accuracy)) //Better parts mean faster calibration + addtimer(CALLBACK(src, PROC_REF(finish_calibration)), 50 * (3 - power_station.teleporter_hub.accuracy)) //Better parts mean faster calibration . = TRUE /obj/machinery/computer/teleporter/proc/finish_calibration() diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 985a61efe01d..48a1cedc2afa 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -213,7 +213,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/cryopod/retro, 17) var/mob/living/mob_occupant = occupant if(mob_occupant && mob_occupant.stat != DEAD) to_chat(occupant, "You feel cool air surround you. You go numb as your senses turn inward.") - addtimer(CALLBACK(src, .proc/try_despawn_occupant, mob_occupant), mob_occupant.client ? time_till_despawn * 0.1 : time_till_despawn) // If they're logged in, reduce the timer + addtimer(CALLBACK(src, PROC_REF(try_despawn_occupant), mob_occupant), mob_occupant.client ? time_till_despawn * 0.1 : time_till_despawn) // If they're logged in, reduce the timer icon_state = close_state if(close_sound) playsound(src, close_sound, 40) @@ -254,7 +254,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/cryopod/retro, 17) despawn_occupant() else - addtimer(CALLBACK(src, .proc/try_despawn_occupant, mob_occupant), time_till_despawn) //try again with normal delay + addtimer(CALLBACK(src, PROC_REF(try_despawn_occupant), mob_occupant), time_till_despawn) //try again with normal delay /obj/machinery/cryopod/proc/handle_objectives() var/mob/living/mob_occupant = occupant diff --git a/code/game/machinery/dance_machine.dm b/code/game/machinery/dance_machine.dm index 3fd9d90db45e..20c3d66e8585 100644 --- a/code/game/machinery/dance_machine.dm +++ b/code/game/machinery/dance_machine.dm @@ -54,7 +54,7 @@ return ..() /obj/machinery/jukebox/update_icon_state() - icon_state = "[initial(icon_state)]-[active ? "active" : null]" + icon_state = "[initial(icon_state)][active ? "active" : null]" return ..() /obj/machinery/jukebox/ui_status(mob/user) @@ -294,7 +294,7 @@ glow.set_light_color(COLOR_SOFT_RED) glow.even_cycle = !glow.even_cycle if(prob(2)) // Unique effects for the dance floor that show up randomly to mix things up - INVOKE_ASYNC(src, .proc/hierofunk) + INVOKE_ASYNC(src, PROC_REF(hierofunk)) sleep(selection.song_beat) if(QDELETED(src)) return diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index 3f62292736da..589393479ff5 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -128,7 +128,7 @@ /obj/structure/barricade/security/Initialize() . = ..() - addtimer(CALLBACK(src, .proc/deploy), deploy_time) + addtimer(CALLBACK(src, PROC_REF(deploy)), deploy_time) /obj/structure/barricade/security/proc/deploy() icon_state = "barrier1" diff --git a/code/game/machinery/dna_scanner.dm b/code/game/machinery/dna_scanner.dm index 7fd0f3262273..7f61dde6ef79 100644 --- a/code/game/machinery/dna_scanner.dm +++ b/code/game/machinery/dna_scanner.dm @@ -152,7 +152,7 @@ UnregisterSignal(linked_console, COMSIG_PARENT_QDELETING) linked_console = new_console if(linked_console) - RegisterSignal(linked_console, COMSIG_PARENT_QDELETING, .proc/react_to_console_del) + RegisterSignal(linked_console, COMSIG_PARENT_QDELETING, PROC_REF(react_to_console_del)) /obj/machinery/dna_scannernew/proc/react_to_console_del(datum/source) SIGNAL_HANDLER diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 525811b23ffc..6bb5a4bab561 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -129,7 +129,7 @@ set_frequency(frequency) if(closeOtherId != null) - addtimer(CALLBACK(.proc/update_other_id), 5) + addtimer(CALLBACK(PROC_REF(update_other_id)), 5) if(glass) airlock_material = "glass" if(security_level > AIRLOCK_SECURITY_METAL) @@ -145,13 +145,13 @@ diag_hud.add_to_hud(src) diag_hud_set_electrified() - RegisterSignal(src, COMSIG_MACHINERY_BROKEN, .proc/on_break) + RegisterSignal(src, COMSIG_MACHINERY_BROKEN, PROC_REF(on_break)) update_appearance() var/static/list/connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, - COMSIG_ATOM_EXITED = .proc/on_exited + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), + COMSIG_ATOM_EXITED = PROC_REF(on_exited) ) AddElement(/datum/element/connect_loc, connections) @@ -322,9 +322,9 @@ return if(density) - INVOKE_ASYNC(src, .proc/open) + INVOKE_ASYNC(src, PROC_REF(open)) else - INVOKE_ASYNC(src, .proc/close) + INVOKE_ASYNC(src, PROC_REF(close)) if("bolt") if(command_value == "on" && locked) @@ -439,7 +439,7 @@ if(cyclelinkedairlock.operating) cyclelinkedairlock.delayed_close_requested = TRUE else - addtimer(CALLBACK(cyclelinkedairlock, .proc/close), 2) + addtimer(CALLBACK(cyclelinkedairlock, PROC_REF(close)), 2) if(locked && allowed(user) && aac) aac.request_from_door(src) return @@ -499,7 +499,7 @@ secondsBackupPowerLost = 10 if(!spawnPowerRestoreRunning) spawnPowerRestoreRunning = TRUE - INVOKE_ASYNC(src, .proc/handlePowerRestore) + INVOKE_ASYNC(src, PROC_REF(handlePowerRestore)) update_appearance() /obj/machinery/door/airlock/proc/loseBackupPower() @@ -507,7 +507,7 @@ secondsBackupPowerLost = 60 if(!spawnPowerRestoreRunning) spawnPowerRestoreRunning = TRUE - INVOKE_ASYNC(src, .proc/handlePowerRestore) + INVOKE_ASYNC(src, PROC_REF(handlePowerRestore)) update_appearance() /obj/machinery/door/airlock/proc/regainBackupPower() @@ -1139,7 +1139,7 @@ user.visible_message("[user] begins [welded ? "unwelding":"welding"] the airlock.", \ "You begin [welded ? "unwelding":"welding"] the airlock...", \ "You hear welding.") - if(W.use_tool(src, user, 40, volume=50, extra_checks = CALLBACK(src, .proc/weld_checks, W, user))) + if(W.use_tool(src, user, 40, volume=50, extra_checks = CALLBACK(src, PROC_REF(weld_checks), W, user))) welded = !welded user.visible_message("[user] [welded? "welds shut":"unwelds"] [src].", \ "You [welded ? "weld the airlock shut":"unweld the airlock"].") @@ -1151,7 +1151,7 @@ user.visible_message("[user] begins welding the airlock.", \ "You begin repairing the airlock...", \ "You hear welding.") - if(W.use_tool(src, user, 40, volume=50, extra_checks = CALLBACK(src, .proc/weld_checks, W, user))) + if(W.use_tool(src, user, 40, volume=50, extra_checks = CALLBACK(src, PROC_REF(weld_checks), W, user))) obj_integrity = max_integrity set_machine_stat(machine_stat & ~BROKEN) user.visible_message("[user] finishes welding [src].", \ @@ -1241,7 +1241,7 @@ if(axe && !axe.wielded) to_chat(user, "You need to be wielding \the [axe] to do that!") return - INVOKE_ASYNC(src, (density ? .proc/open : .proc/close), 2) + INVOKE_ASYNC(src, (density ? PROC_REF(open) : PROC_REF(close)), 2) /obj/machinery/door/airlock/open(forced=0) @@ -1280,7 +1280,7 @@ operating = FALSE if(delayed_close_requested) delayed_close_requested = FALSE - addtimer(CALLBACK(src, .proc/close), 1) + addtimer(CALLBACK(src, PROC_REF(close)), 1) return TRUE @@ -1450,7 +1450,7 @@ secondsElectrified = seconds diag_hud_set_electrified() if(secondsElectrified > MACHINE_NOT_ELECTRIFIED) - INVOKE_ASYNC(src, .proc/electrified_loop) + INVOKE_ASYNC(src, PROC_REF(electrified_loop)) if(user) var/message diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm index 1d9525cf014f..8e0ed982b501 100644 --- a/code/game/machinery/doors/airlock_types.dm +++ b/code/game/machinery/doors/airlock_types.dm @@ -83,14 +83,6 @@ req_access = list(ACCESS_SYNDICATE) has_hatch = FALSE -/obj/machinery/door/airlock/glass/incinerator/syndicatelava_interior - name = "Turbine Interior Airlock" - id_tag = INCINERATOR_SYNDICATELAVA_AIRLOCK_INTERIOR - -/obj/machinery/door/airlock/glass/incinerator/syndicatelava_exterior - name = "Turbine Exterior Airlock" - id_tag = INCINERATOR_SYNDICATELAVA_AIRLOCK_EXTERIOR - /obj/machinery/door/airlock/command/glass opacity = FALSE glass = TRUE @@ -605,3 +597,23 @@ /obj/machinery/door/airlock/glass_large/narsie_act() return + +////////////////////////////////// +/* + Outpost Airlocks +*/ + +/obj/machinery/door/airlock/outpost //secure anti-tiding airlock + icon = 'icons/obj/doors/airlocks/centcom/centcom.dmi' + overlays_file = 'icons/obj/doors/airlocks/centcom/overlays.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_centcom //all of the above needs to be changed if editing the icon + desc = "It opens and closes. Effectively impervious to conventional methods of destruction." + normal_integrity = INFINITY + explosion_block = INFINITY + has_hatch = FALSE + req_one_access_txt = "101" //109 for command areas + +/obj/machinery/door/airlock/outpost/attackby(obj/item/C, mob/user, params) //maintenance panel cannot be opened + if(C.tool_behaviour == TOOL_SCREWDRIVER) + return + ..() diff --git a/code/game/machinery/doors/alarmlock.dm b/code/game/machinery/doors/alarmlock.dm index 3fc9a30033ce..3972998da809 100644 --- a/code/game/machinery/doors/alarmlock.dm +++ b/code/game/machinery/doors/alarmlock.dm @@ -23,7 +23,7 @@ . = ..() SSradio.remove_object(src, air_frequency) air_connection = SSradio.add_object(src, air_frequency, RADIO_TO_AIRALARM) - INVOKE_ASYNC(src, .proc/open) + INVOKE_ASYNC(src, PROC_REF(open)) /obj/machinery/door/airlock/alarmlock/receive_signal(datum/signal/signal) ..() diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm index 7013d3f68a7a..213b15c00ced 100644 --- a/code/game/machinery/doors/brigdoors.dm +++ b/code/game/machinery/doors/brigdoors.dm @@ -92,12 +92,12 @@ for(var/obj/machinery/door/window/brigdoor/door in targets) if(door.density) continue - INVOKE_ASYNC(door, /obj/machinery/door/window/brigdoor.proc/close) + INVOKE_ASYNC(door, TYPE_PROC_REF(/obj/machinery/door/window/brigdoor, close)) for(var/obj/machinery/door/airlock/security/brig/airlock in targets) if(airlock.density) continue - INVOKE_ASYNC(airlock, /obj/machinery/door/airlock/security/brig.proc/close) + INVOKE_ASYNC(airlock, TYPE_PROC_REF(/obj/machinery/door/airlock/security/brig, close)) for(var/obj/structure/closet/secure_closet/brig/C in targets) if(C.broken) @@ -126,12 +126,12 @@ for(var/obj/machinery/door/window/brigdoor/door in targets) if(!door.density) continue - INVOKE_ASYNC(door, /obj/machinery/door/window/brigdoor.proc/open) + INVOKE_ASYNC(door, TYPE_PROC_REF(/obj/machinery/door/window/brigdoor, open)) for(var/obj/machinery/door/airlock/security/brig/airlock in targets) if(!airlock.density) continue - INVOKE_ASYNC(airlock, /obj/machinery/door/airlock/security/brig.proc/open) + INVOKE_ASYNC(airlock, TYPE_PROC_REF(/obj/machinery/door/airlock/security/brig, open)) for(var/obj/structure/closet/secure_closet/brig/C in targets) if(C.broken) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 44b7c827daa1..8dbc880f740a 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -291,12 +291,12 @@ if (. & EMP_PROTECT_SELF) return if(prob(20/severity) && (istype(src, /obj/machinery/door/airlock) || istype(src, /obj/machinery/door/window))) - INVOKE_ASYNC(src, .proc/open) + INVOKE_ASYNC(src, PROC_REF(open)) if(prob(severity*10 - 20)) if(secondsElectrified == MACHINE_NOT_ELECTRIFIED) secondsElectrified = MACHINE_ELECTRIFIED_PERMANENT LAZYADD(shockedby, "\[[time_stamp()]\]EM Pulse") - addtimer(CALLBACK(src, .proc/unelectrify), 300) + addtimer(CALLBACK(src, PROC_REF(unelectrify)), 300) /obj/machinery/door/proc/unelectrify() secondsElectrified = MACHINE_NOT_ELECTRIFIED @@ -341,7 +341,7 @@ air_update_turf(1) update_freelook_sight() if(autoclose) - addtimer(CALLBACK(src, .proc/close), autoclose) + addtimer(CALLBACK(src, PROC_REF(close)), autoclose) return 1 /obj/machinery/door/proc/close() @@ -415,7 +415,7 @@ close() /obj/machinery/door/proc/autoclose_in(wait) - addtimer(CALLBACK(src, .proc/autoclose), wait, TIMER_UNIQUE | TIMER_NO_HASH_WAIT | TIMER_OVERRIDE) + addtimer(CALLBACK(src, PROC_REF(autoclose)), wait, TIMER_UNIQUE | TIMER_NO_HASH_WAIT | TIMER_OVERRIDE) /obj/machinery/door/proc/requiresID() return 1 diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index c5deb7b29750..a18550033d04 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -95,7 +95,7 @@ /obj/machinery/door/firedoor/power_change() . = ..() - INVOKE_ASYNC(src, .proc/latetoggle) + INVOKE_ASYNC(src, PROC_REF(latetoggle)) /obj/machinery/door/firedoor/attack_hand(mob/user) . = ..() @@ -332,7 +332,7 @@ . = ..() var/static/list/loc_connections = list( - COMSIG_ATOM_EXIT = .proc/on_exit, + COMSIG_ATOM_EXIT = PROC_REF(on_exit), ) AddElement(/datum/element/connect_loc, loc_connections) @@ -435,7 +435,7 @@ update_freelook_sight() if(!(flags_1 & ON_BORDER_1)) crush() - addtimer(CALLBACK(src, /atom/.proc/update_icon), 5) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_icon)), 5) /obj/machinery/door/firedoor/border_only/emergency_pressure_close() if(density) @@ -450,14 +450,14 @@ if(!istype(M2) || !M2.buckled || !M2.buckled.buckle_prevents_pull) to_chat(M, "You pull [M.pulling] through [src] right as it closes.") M.pulling.forceMove(T1) - INVOKE_ASYNC(M, /atom/movable/.proc/start_pulling) + INVOKE_ASYNC(M, TYPE_PROC_REF(/atom/movable, start_pulling)) for(var/mob/living/M in T2) if(M.stat == CONSCIOUS && M.pulling && M.pulling.loc == T1 && !M.pulling.anchored && M.pulling.move_resist <= M.move_force) var/mob/living/M2 = M.pulling if(!istype(M2) || !M2.buckled || !M2.buckled.buckle_prevents_pull) to_chat(M, "You pull [M.pulling] through [src] right as it closes.") M.pulling.forceMove(T2) - INVOKE_ASYNC(M, /atom/movable/.proc/start_pulling) + INVOKE_ASYNC(M, TYPE_PROC_REF(/atom/movable, start_pulling)) return ..() /obj/machinery/door/firedoor/heavy @@ -495,7 +495,7 @@ density = TRUE var/constructionStep = CONSTRUCTION_NOCIRCUIT var/reinforced = 0 - var/firelock_type + var/firelock_type = /obj/machinery/door/firedoor/closed /obj/structure/firelock_frame/examine(mob/user) . = ..() @@ -736,14 +736,14 @@ . = ..() var/static/list/loc_connections = list( - COMSIG_ATOM_EXIT = .proc/on_exit, + COMSIG_ATOM_EXIT = PROC_REF(on_exit), ) AddElement(/datum/element/connect_loc, loc_connections) /obj/structure/firelock_frame/border/ComponentInitialize() . = ..() - AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS, null, CALLBACK(src, .proc/can_be_rotated)) + AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS, null, CALLBACK(src, PROC_REF(can_be_rotated))) /obj/structure/firelock_frame/border/proc/can_be_rotated(mob/user, rotation_type) if (anchored) diff --git a/code/game/machinery/doors/poddoor.dm b/code/game/machinery/doors/poddoor.dm index 56418d523b1d..4e846c26f14a 100644 --- a/code/game/machinery/doors/poddoor.dm +++ b/code/game/machinery/doors/poddoor.dm @@ -90,9 +90,9 @@ /obj/machinery/door/poddoor/shuttledock/proc/check() var/turf/T = get_step(src, checkdir) if(!istype(T, turftype)) - INVOKE_ASYNC(src, .proc/open) + INVOKE_ASYNC(src, PROC_REF(open)) else - INVOKE_ASYNC(src, .proc/close) + INVOKE_ASYNC(src, PROC_REF(close)) /obj/machinery/door/poddoor/incinerator_toxmix name = "Combustion Chamber Vent" @@ -106,13 +106,6 @@ name = "Combustion Chamber Vent" id = INCINERATOR_ATMOS_AUXVENT -/obj/machinery/door/poddoor/incinerator_syndicatelava_main - name = "turbine vent" - id = INCINERATOR_SYNDICATELAVA_MAINVENT - -/obj/machinery/door/poddoor/incinerator_syndicatelava_aux - name = "Combustion Chamber Vent" - id = INCINERATOR_SYNDICATELAVA_AUXVENT /obj/machinery/door/poddoor/Bumped(atom/movable/AM) if(density) diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index e10f0786489c..fa2ddefb7279 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -24,6 +24,8 @@ var/cable = 1 var/list/debris = list() + hitsound_type = PROJECTILE_HITSOUND_GLASS + /obj/machinery/door/window/Initialize(mapload, set_dir) . = ..() flags_1 &= ~PREVENT_CLICK_UNDER_1 @@ -40,7 +42,7 @@ debris += new /obj/item/stack/cable_coil(src, cable) var/static/list/loc_connections = list( - COMSIG_ATOM_EXIT = .proc/on_exit, + COMSIG_ATOM_EXIT = PROC_REF(on_exit), ) AddElement(/datum/element/connect_loc, loc_connections) @@ -341,11 +343,11 @@ return if(density) - INVOKE_ASYNC(src, .proc/open) + INVOKE_ASYNC(src, PROC_REF(open)) else - INVOKE_ASYNC(src, .proc/close) + INVOKE_ASYNC(src, PROC_REF(close)) if("touch") - INVOKE_ASYNC(src, .proc/open_and_close) + INVOKE_ASYNC(src, PROC_REF(open_and_close)) /obj/machinery/door/window/brigdoor name = "secure door" diff --git a/code/game/machinery/doppler_array.dm b/code/game/machinery/doppler_array.dm index 8af3908ec531..0b538d1ce109 100644 --- a/code/game/machinery/doppler_array.dm +++ b/code/game/machinery/doppler_array.dm @@ -19,13 +19,13 @@ /obj/machinery/doppler_array/Initialize() . = ..() - RegisterSignal(SSdcs, COMSIG_GLOB_EXPLOSION, .proc/sense_explosion) - RegisterSignal(src, COMSIG_MOVABLE_SET_ANCHORED, .proc/power_change) + RegisterSignal(SSdcs, COMSIG_GLOB_EXPLOSION, PROC_REF(sense_explosion)) + RegisterSignal(src, COMSIG_MOVABLE_SET_ANCHORED, PROC_REF(power_change)) printer_ready = world.time + PRINTER_TIMEOUT /obj/machinery/doppler_array/ComponentInitialize() . = ..() - AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE,null,null,CALLBACK(src,.proc/rot_message)) + AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE,null,null,CALLBACK(src, PROC_REF(rot_message))) /datum/data/tachyon_record name = "Log Recording" diff --git a/code/game/machinery/droneDispenser.dm b/code/game/machinery/droneDispenser.dm index 34ffe2c9d6ea..d54bc3c476af 100644 --- a/code/game/machinery/droneDispenser.dm +++ b/code/game/machinery/droneDispenser.dm @@ -85,17 +85,6 @@ power_used = 2000 starting_amount = 10000 -// If the derelict gets lonely, make more friends. -/obj/machinery/droneDispenser/derelict - name = "derelict drone shell dispenser" - desc = "A rusty machine that, when supplied with metal and glass, will periodically create a derelict drone shell. Does not need to be manually operated." - dispense_type = /obj/effect/mob_spawn/drone/derelict - end_create_message = "dispenses a derelict drone shell." - metal_cost = 10000 - glass_cost = 5000 - starting_amount = 0 - cooldownTime = 600 - // An example of a custom drone dispenser. // This one requires no materials and creates basic hivebots /obj/machinery/droneDispenser/hivebot diff --git a/code/game/machinery/embedded_controller/access_controller.dm b/code/game/machinery/embedded_controller/access_controller.dm index 3b1bfbd4b351..9d190b2e1369 100644 --- a/code/game/machinery/embedded_controller/access_controller.dm +++ b/code/game/machinery/embedded_controller/access_controller.dm @@ -79,7 +79,7 @@ controller.cycleClose(door) else controller.onlyClose(door) - addtimer(CALLBACK(src, .proc/not_busy), 2 SECONDS) + addtimer(CALLBACK(src, PROC_REF(not_busy)), 2 SECONDS) /obj/machinery/doorButtons/access_button/proc/not_busy() busy = FALSE @@ -207,7 +207,7 @@ goIdle(TRUE) return A.unbolt() - INVOKE_ASYNC(src, .proc/do_openDoor, A) + INVOKE_ASYNC(src, PROC_REF(do_openDoor), A) /obj/machinery/doorButtons/airlock_controller/proc/do_openDoor(obj/machinery/door/airlock/A) if(A && A.open()) diff --git a/code/game/machinery/embedded_controller/airlock_controller.dm b/code/game/machinery/embedded_controller/airlock_controller.dm index a4de8908abfe..c0938bc2bdb9 100644 --- a/code/game/machinery/embedded_controller/airlock_controller.dm +++ b/code/game/machinery/embedded_controller/airlock_controller.dm @@ -230,15 +230,6 @@ sanitize_external = TRUE sensor_tag = INCINERATOR_ATMOS_AIRLOCK_SENSOR -/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_syndicatelava - name = "Incinerator Access Console" - airpump_tag = INCINERATOR_SYNDICATELAVA_DP_VENTPUMP - exterior_door_tag = INCINERATOR_SYNDICATELAVA_AIRLOCK_EXTERIOR - id_tag = INCINERATOR_SYNDICATELAVA_AIRLOCK_CONTROLLER - interior_door_tag = INCINERATOR_SYNDICATELAVA_AIRLOCK_INTERIOR - sanitize_external = TRUE - sensor_tag = INCINERATOR_SYNDICATELAVA_AIRLOCK_SENSOR - /obj/machinery/embedded_controller/radio/airlock_controller/Initialize(mapload) . = ..() if(!mapload) diff --git a/code/game/machinery/embedded_controller/embedded_controller_base.dm b/code/game/machinery/embedded_controller/embedded_controller_base.dm index 315f2e128303..602b239bf020 100644 --- a/code/game/machinery/embedded_controller/embedded_controller_base.dm +++ b/code/game/machinery/embedded_controller/embedded_controller_base.dm @@ -56,10 +56,10 @@ if(program) program.receive_user_command(href_list["command"]) - addtimer(CALLBACK(program, /datum/computer/file/embedded_program.proc/process), 5) + addtimer(CALLBACK(program, TYPE_PROC_REF(/datum/computer/file/embedded_program, process)), 5) usr.set_machine(src) - addtimer(CALLBACK(src, .proc/updateDialog), 5) + addtimer(CALLBACK(src, PROC_REF(updateDialog)), 5) /obj/machinery/embedded_controller/process() if(program) diff --git a/code/game/machinery/exp_cloner.dm b/code/game/machinery/exp_cloner.dm index 3b2b414b0bf2..01f9b00e9785 100644 --- a/code/game/machinery/exp_cloner.dm +++ b/code/game/machinery/exp_cloner.dm @@ -232,7 +232,7 @@ playsound(src, 'sound/machines/terminal_prompt.ogg', 50, FALSE) say("Initiating scan...") - addtimer(CALLBACK(src, .proc/do_clone), 2 SECONDS) + addtimer(CALLBACK(src, PROC_REF(do_clone)), 2 SECONDS) //No locking an open scanner. else if ((href_list["lock"]) && !isnull(scanner) && scanner.is_operational) diff --git a/code/game/machinery/fat_sucker.dm b/code/game/machinery/fat_sucker.dm index 28c6d3d3ee2a..9d556bf422ed 100644 --- a/code/game/machinery/fat_sucker.dm +++ b/code/game/machinery/fat_sucker.dm @@ -62,7 +62,7 @@ occupant = null return to_chat(occupant, "You enter [src].") - addtimer(CALLBACK(src, .proc/start_extracting), 20, TIMER_OVERRIDE|TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(start_extracting)), 20, TIMER_OVERRIDE|TIMER_UNIQUE) update_appearance() /obj/machinery/fat_sucker/open_machine(mob/user) diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm index 4bacfbbb5651..d4a59cb27c31 100644 --- a/code/game/machinery/flasher.dm +++ b/code/game/machinery/flasher.dm @@ -109,7 +109,7 @@ playsound(src.loc, 'sound/weapons/flash.ogg', 100, TRUE) flick("[base_icon_state]_flash", src) set_light_on(TRUE) - addtimer(CALLBACK(src, .proc/flash_end), FLASH_LIGHT_DURATION, TIMER_OVERRIDE|TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(flash_end)), FLASH_LIGHT_DURATION, TIMER_OVERRIDE|TIMER_UNIQUE) last_flash = world.time use_power(1000) diff --git a/code/game/machinery/harvester.dm b/code/game/machinery/harvester.dm index 82ef63c3d738..9cf4470cab5c 100644 --- a/code/game/machinery/harvester.dm +++ b/code/game/machinery/harvester.dm @@ -94,7 +94,7 @@ visible_message("The [name] begins warming up!") say("Initializing harvest protocol.") update_appearance() - addtimer(CALLBACK(src, .proc/harvest), interval) + addtimer(CALLBACK(src, PROC_REF(harvest)), interval) /obj/machinery/harvester/proc/harvest() warming_up = FALSE @@ -129,7 +129,7 @@ operation_order.Remove(BP) break use_power(5000) - addtimer(CALLBACK(src, .proc/harvest), interval) + addtimer(CALLBACK(src, PROC_REF(harvest)), interval) /obj/machinery/harvester/proc/end_harvesting() warming_up = FALSE diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index 98014077d4b0..4a31d650f9a1 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -653,7 +653,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ if(HOLORECORD_SOUND) playsound(src,entry[2],50,TRUE) if(HOLORECORD_DELAY) - addtimer(CALLBACK(src,.proc/replay_entry,entry_number+1),entry[2]) + addtimer(CALLBACK(src, PROC_REF(replay_entry),entry_number+1),entry[2]) return if(HOLORECORD_LANGUAGE) var/datum/language_holder/holder = replay_holo.get_language_holder() diff --git a/code/game/machinery/hypnochair.dm b/code/game/machinery/hypnochair.dm index 8e86447f6060..b31dd9925375 100644 --- a/code/game/machinery/hypnochair.dm +++ b/code/game/machinery/hypnochair.dm @@ -98,7 +98,7 @@ START_PROCESSING(SSobj, src) start_time = world.time update_appearance() - timerid = addtimer(CALLBACK(src, .proc/finish_interrogation), 450, TIMER_STOPPABLE) + timerid = addtimer(CALLBACK(src, PROC_REF(finish_interrogation)), 450, TIMER_STOPPABLE) /obj/machinery/hypnochair/process() var/mob/living/carbon/C = occupant diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm index a610ec5d11b8..8117ad2c251a 100644 --- a/code/game/machinery/igniter.dm +++ b/code/game/machinery/igniter.dm @@ -20,9 +20,6 @@ /obj/machinery/igniter/incinerator_atmos id = INCINERATOR_ATMOS_IGNITER -/obj/machinery/igniter/incinerator_syndicatelava - id = INCINERATOR_SYNDICATELAVA_IGNITER - /obj/machinery/igniter/on on = TRUE icon_state = "igniter1" diff --git a/code/game/machinery/limbgrower.dm b/code/game/machinery/limbgrower.dm index 5861b88dd173..dc5b41ee3821 100644 --- a/code/game/machinery/limbgrower.dm +++ b/code/game/machinery/limbgrower.dm @@ -196,7 +196,7 @@ flick("limbgrower_fill",src) icon_state = "limbgrower_idleon" selected_category = params["active_tab"] - addtimer(CALLBACK(src, .proc/build_item, consumed_reagents_list), production_speed * production_coefficient) + addtimer(CALLBACK(src, PROC_REF(build_item), consumed_reagents_list), production_speed * production_coefficient) . = TRUE return @@ -251,16 +251,16 @@ ///Returns a valid limb typepath based on the selected option /obj/machinery/limbgrower/proc/create_buildpath() - var/part_type = being_built.id //their ids match bodypart typepaths var/species = selected_category var/path if(species == SPECIES_HUMAN) //Humans use the parent type. - path = "/obj/item/bodypart/[part_type]" + path = being_built.build_path + return path else if(istype(being_built,/datum/design/digitigrade)) path = being_built.build_path return path else - path = "/obj/item/bodypart/[part_type]/[species]" + path = "[being_built.build_path]/[species]" return text2path(path) /obj/machinery/limbgrower/RefreshParts() diff --git a/code/game/machinery/medipen_refiller.dm b/code/game/machinery/medipen_refiller.dm index d6acc545da03..4dac48d6cfd4 100644 --- a/code/game/machinery/medipen_refiller.dm +++ b/code/game/machinery/medipen_refiller.dm @@ -60,7 +60,7 @@ if(reagents.has_reagent(allowed[P.type], 10)) busy = TRUE add_overlay("active") - addtimer(CALLBACK(src, .proc/refill, P, user), 20) + addtimer(CALLBACK(src, PROC_REF(refill), P, user), 20) qdel(P) return to_chat(user, "There aren't enough reagents to finish this operation.") diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index 2711ee9ee61a..c53b256b04de 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -855,7 +855,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/newscaster/security_unit, 30) say("Breaking news from [channel]!") alert = TRUE update_appearance() - addtimer(CALLBACK(src,.proc/remove_alert),alert_delay,TIMER_UNIQUE|TIMER_OVERRIDE) + addtimer(CALLBACK(src, PROC_REF(remove_alert)),alert_delay,TIMER_UNIQUE|TIMER_OVERRIDE) playsound(loc, 'sound/machines/twobeep_high.ogg', 75, TRUE) else say("Attention! Wanted issue distributed!") diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index 64b7fb47edd0..75498600b007 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -120,7 +120,7 @@ DEFINE_BITFIELD(turret_flags, list( base.layer = NOT_HIGH_OBJ_LAYER underlays += base if(!has_cover) - INVOKE_ASYNC(src, .proc/popUp) + INVOKE_ASYNC(src, PROC_REF(popUp)) /obj/machinery/porta_turret/proc/toggle_on(set_to) var/current = on @@ -369,7 +369,7 @@ DEFINE_BITFIELD(turret_flags, list( toggle_on(FALSE) //turns off the turret temporarily update_appearance() //6 seconds for the traitor to gtfo of the area before the turret decides to ruin his shit - addtimer(CALLBACK(src, .proc/toggle_on, TRUE), 6 SECONDS) + addtimer(CALLBACK(src, PROC_REF(toggle_on), TRUE), 6 SECONDS) //turns it back on. The cover popUp() popDown() are automatically called in process(), no need to define it here /obj/machinery/porta_turret/emp_act(severity) @@ -389,7 +389,7 @@ DEFINE_BITFIELD(turret_flags, list( toggle_on(FALSE) remove_control() - addtimer(CALLBACK(src, .proc/toggle_on, TRUE), rand(60,600)) + addtimer(CALLBACK(src, PROC_REF(toggle_on), TRUE), rand(60,600)) /obj/machinery/porta_turret/take_damage(damage, damage_type = BRUTE, damage_flag = 0, sound_effect = 1) . = ..() @@ -398,7 +398,7 @@ DEFINE_BITFIELD(turret_flags, list( spark_system.start() if(on && !(turret_flags & TURRET_FLAG_SHOOT_ALL_REACT) && !(obj_flags & EMAGGED)) turret_flags |= TURRET_FLAG_SHOOT_ALL_REACT - addtimer(CALLBACK(src, .proc/reset_attacked), 60) + addtimer(CALLBACK(src, PROC_REF(reset_attacked)), 60) /obj/machinery/porta_turret/proc/reset_attacked() turret_flags &= ~TURRET_FLAG_SHOOT_ALL_REACT @@ -778,9 +778,9 @@ DEFINE_BITFIELD(turret_flags, list( if(target) setDir(get_dir(base, target))//even if you can't shoot, follow the target shootAt(target) - addtimer(CALLBACK(src, .proc/shootAt, target), 5) - addtimer(CALLBACK(src, .proc/shootAt, target), 10) - addtimer(CALLBACK(src, .proc/shootAt, target), 15) + addtimer(CALLBACK(src, PROC_REF(shootAt), target), 5) + addtimer(CALLBACK(src, PROC_REF(shootAt), target), 10) + addtimer(CALLBACK(src, PROC_REF(shootAt), target), 15) return TRUE /obj/machinery/porta_turret/ai @@ -839,6 +839,27 @@ DEFINE_BITFIELD(turret_flags, list( /obj/machinery/porta_turret/ship/solgov faction = list("playerSolgov", "turret") +/obj/machinery/porta_turret/ship/syndicate + faction = list(FACTION_PLAYER_SYNDICATE, "turret") + icon_state = "standard_lethal" + base_icon_state = "standard" + +/obj/machinery/porta_turret/ship/syndicate/weak + name = "Light Laser Turret" + desc = "A low powered turret designed by the Gorlex Maurauders during the ICW. Effectively weaponizes mining equipment." + stun_projectile = /obj/projectile/beam/disabler/weak + lethal_projectile = /obj/projectile/beam/weak/penetrator + icon_state = "syndie_off" + base_icon_state = "syndie" + +/obj/machinery/porta_turret/ship/syndicate/heavy + name = "Heavy Laser Turret" + desc = "Produced by Cybersun, this turret is a duel mount of a propietary heavy laser, and crowd control taser system." + stun_projectile = /obj/projectile/energy/electrode + stun_projectile_sound = 'sound/weapons/taser.ogg' + lethal_projectile = /obj/projectile/beam/laser/heavylaser + lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg' + //////////////////////// //Turret Control Panel// //////////////////////// diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm index 37def4d5a9da..b548ecf73125 100644 --- a/code/game/machinery/recycler.dm +++ b/code/game/machinery/recycler.dm @@ -25,7 +25,7 @@ req_one_access = get_all_accesses() + get_all_centcom_access() var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) @@ -92,7 +92,7 @@ /obj/machinery/recycler/proc/on_entered(datum/source, atom/movable/AM) SIGNAL_HANDLER - INVOKE_ASYNC(src, .proc/eat, AM) + INVOKE_ASYNC(src, PROC_REF(eat), AM) /obj/machinery/recycler/proc/eat(atom/movable/AM0, sound=TRUE) if(machine_stat & (BROKEN|NOPOWER)) @@ -166,7 +166,7 @@ playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE) safety_mode = TRUE update_appearance() - addtimer(CALLBACK(src, .proc/reboot), SAFETY_COOLDOWN) + addtimer(CALLBACK(src, PROC_REF(reboot)), SAFETY_COOLDOWN) /obj/machinery/recycler/proc/reboot() playsound(src, 'sound/machines/ping.ogg', 50, FALSE) diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm index 3a03453a2ce3..ed3a35c1e228 100644 --- a/code/game/machinery/requests_console.dm +++ b/code/game/machinery/requests_console.dm @@ -298,7 +298,7 @@ GLOBAL_LIST_EMPTY(req_console_ckey_departments) Radio.set_frequency(radio_freq) Radio.talk_into(src,"[emergency] emergency in [department]!!",radio_freq) update_appearance() - addtimer(CALLBACK(src, .proc/clear_emergency), 5 MINUTES) + addtimer(CALLBACK(src, PROC_REF(clear_emergency)), 5 MINUTES) if(href_list["send"] && message && to_department && priority) diff --git a/code/game/machinery/roulette_machine.dm b/code/game/machinery/roulette_machine.dm index 8e056d198ea6..c9e1d108c1e5 100644 --- a/code/game/machinery/roulette_machine.dm +++ b/code/game/machinery/roulette_machine.dm @@ -164,7 +164,7 @@ playsound(src, 'sound/machines/piston_raise.ogg', 70) playsound(src, 'sound/machines/chime.ogg', 50) - addtimer(CALLBACK(src, .proc/play, user, player_card, chosen_bet_type, chosen_bet_amount, potential_payout), 4) //Animation first + addtimer(CALLBACK(src, PROC_REF(play), user, player_card, chosen_bet_type, chosen_bet_amount, potential_payout), 4) //Animation first return TRUE else var/obj/item/card/id/new_card = W @@ -194,8 +194,8 @@ var/rolled_number = rand(0, 36) playsound(src, 'sound/machines/roulettewheel.ogg', 50) - addtimer(CALLBACK(src, .proc/finish_play, player_id, bet_type, bet_amount, payout, rolled_number), 34) //4 deciseconds more so the animation can play - addtimer(CALLBACK(src, .proc/finish_play_animation), 30) + addtimer(CALLBACK(src, PROC_REF(finish_play), player_id, bet_type, bet_amount, payout, rolled_number), 34) //4 deciseconds more so the animation can play + addtimer(CALLBACK(src, PROC_REF(finish_play_animation)), 30) /obj/machinery/roulette/proc/finish_play_animation() icon_state = "idle" @@ -269,7 +269,7 @@ var/obj/item/cash = new bundle_to_drop(drop_loc) playsound(cash, pick(list('sound/machines/coindrop.ogg', 'sound/machines/coindrop2.ogg')), 40, TRUE) - addtimer(CALLBACK(src, .proc/drop_cash), 3) //Recursion time + addtimer(CALLBACK(src, PROC_REF(drop_cash)), 3) //Recursion time ///Fills a list of bundles that should be dropped. @@ -413,7 +413,7 @@ return loc.visible_message("\The [src] begins to beep loudly!") used = TRUE - addtimer(CALLBACK(src, .proc/launch_payload), 40) + addtimer(CALLBACK(src, PROC_REF(launch_payload)), 40) /obj/item/roulette_wheel_beacon/proc/launch_payload() var/obj/structure/closet/supplypod/centcompod/toLaunch = new() diff --git a/code/game/machinery/scan_gate.dm b/code/game/machinery/scan_gate.dm index 1b0736a2951f..bc7ffd566340 100644 --- a/code/game/machinery/scan_gate.dm +++ b/code/game/machinery/scan_gate.dm @@ -45,7 +45,7 @@ . = ..() set_scanline("passive") var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) @@ -59,7 +59,7 @@ /obj/machinery/scanner_gate/proc/on_entered(datum/source, atom/movable/AM) SIGNAL_HANDLER - INVOKE_ASYNC(src, .proc/auto_scan, AM) + INVOKE_ASYNC(src, PROC_REF(auto_scan), AM) /obj/machinery/scanner_gate/proc/auto_scan(atom/movable/AM) if(!(machine_stat & (BROKEN|NOPOWER)) && isliving(AM)) @@ -70,7 +70,7 @@ deltimer(scanline_timer) add_overlay(type) if(duration) - scanline_timer = addtimer(CALLBACK(src, .proc/set_scanline, "passive"), duration, TIMER_STOPPABLE) + scanline_timer = addtimer(CALLBACK(src, PROC_REF(set_scanline), "passive"), duration, TIMER_STOPPABLE) /obj/machinery/scanner_gate/attackby(obj/item/W, mob/user, params) var/obj/item/card/id/card = W.GetID() diff --git a/code/game/machinery/sheetifier.dm b/code/game/machinery/sheetifier.dm index b80cca3864ff..569bfa4b6f9e 100644 --- a/code/game/machinery/sheetifier.dm +++ b/code/game/machinery/sheetifier.dm @@ -13,7 +13,7 @@ /obj/machinery/sheetifier/Initialize() . = ..() - AddComponent(/datum/component/material_container, list(/datum/material/meat), MINERAL_MATERIAL_AMOUNT * MAX_STACK_SIZE * 2, TRUE, /obj/item/reagent_containers/food/snacks/meat/slab, CALLBACK(src, .proc/CanInsertMaterials), CALLBACK(src, .proc/AfterInsertMaterials)) + AddComponent(/datum/component/material_container, list(/datum/material/meat), MINERAL_MATERIAL_AMOUNT * MAX_STACK_SIZE * 2, TRUE, /obj/item/reagent_containers/food/snacks/meat/slab, CALLBACK(src, PROC_REF(CanInsertMaterials)), CALLBACK(src, PROC_REF(AfterInsertMaterials))) /obj/machinery/sheetifier/update_overlays() . = ..() @@ -36,7 +36,7 @@ var/mutable_appearance/processing_overlay = mutable_appearance(icon, "processing") processing_overlay.color = last_inserted_material.color flick_overlay_static(processing_overlay, src, 64) - addtimer(CALLBACK(src, .proc/finish_processing), 64) + addtimer(CALLBACK(src, PROC_REF(finish_processing)), 64) /obj/machinery/sheetifier/proc/finish_processing() busy_processing = FALSE diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 2d735deb1969..bc578a856300 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -507,7 +507,7 @@ /obj/machinery/power/shieldwallgen/atmos/ComponentInitialize() . = ..() - AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS, null, CALLBACK(src, .proc/can_be_rotated)) + AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS, null, CALLBACK(src, PROC_REF(can_be_rotated))) /obj/machinery/power/shieldwallgen/atmos/proc/can_be_rotated(mob/user, rotation_type) if (anchored) diff --git a/code/game/machinery/slotmachine.dm b/code/game/machinery/slotmachine.dm index b05b0a2c2a18..0ae88638d5b3 100644 --- a/code/game/machinery/slotmachine.dm +++ b/code/game/machinery/slotmachine.dm @@ -43,13 +43,13 @@ jackpots = rand(1, 4) //false hope plays = rand(75, 200) - INVOKE_ASYNC(src, .proc/toggle_reel_spin, TRUE)//The reels won't spin unless we activate them + INVOKE_ASYNC(src, PROC_REF(toggle_reel_spin), TRUE)//The reels won't spin unless we activate them var/list/reel = reels[1] for(var/i = 0, i < reel.len, i++) //Populate the reels. randomize_reels() - INVOKE_ASYNC(src, .proc/toggle_reel_spin, FALSE) + INVOKE_ASYNC(src, PROC_REF(toggle_reel_spin), FALSE) for(cointype in typesof(/obj/item/coin)) var/obj/item/coin/C = cointype @@ -211,9 +211,9 @@ update_appearance() updateDialog() - var/spin_loop = addtimer(CALLBACK(src, .proc/do_spin), 2, TIMER_LOOP|TIMER_STOPPABLE) + var/spin_loop = addtimer(CALLBACK(src, PROC_REF(do_spin)), 2, TIMER_LOOP|TIMER_STOPPABLE) - addtimer(CALLBACK(src, .proc/finish_spinning, spin_loop, user, the_name), SPIN_TIME - (REEL_DEACTIVATE_DELAY * reels.len)) + addtimer(CALLBACK(src, PROC_REF(finish_spinning), spin_loop, user, the_name), SPIN_TIME - (REEL_DEACTIVATE_DELAY * reels.len)) //WARNING: no sanity checking for user since it's not needed and would complicate things (machine should still spin even if user is gone), be wary of this if you're changing this code. /obj/machinery/computer/slot_machine/proc/do_spin() diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index 231e36282bdc..e86d4ae9f0f9 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -294,7 +294,7 @@ user, src, choices, - custom_check = CALLBACK(src, .proc/check_interactable, user), + custom_check = CALLBACK(src, PROC_REF(check_interactable), user), require_near = !issilicon(user), ) @@ -409,7 +409,7 @@ else mob_occupant.adjustFireLoss(rand(10, 16)) mob_occupant.emote("scream") - addtimer(CALLBACK(src, .proc/cook), 50) + addtimer(CALLBACK(src, PROC_REF(cook)), 50) else uv_cycles = initial(uv_cycles) uv = FALSE @@ -496,7 +496,7 @@ if(locked) visible_message("You see [user] kicking against the doors of [src]!", \ "You start kicking against the doors...") - addtimer(CALLBACK(src, .proc/resist_open, user), 300) + addtimer(CALLBACK(src, PROC_REF(resist_open), user), 300) else open_machine() dump_contents() diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm index 83182bedb942..b3bd14af5a07 100644 --- a/code/game/machinery/syndicatebomb.dm +++ b/code/game/machinery/syndicatebomb.dm @@ -401,7 +401,7 @@ chem_splash(get_turf(src), spread_range, list(reactants), temp_boost) // Detonate it again in one second, until it's out of juice. - addtimer(CALLBACK(src, .proc/detonate), 10) + addtimer(CALLBACK(src, PROC_REF(detonate)), 10) // If it's not a time release bomb, do normal explosion diff --git a/code/game/machinery/teambuilder.dm b/code/game/machinery/teambuilder.dm index 66a384036c35..153035a39374 100644 --- a/code/game/machinery/teambuilder.dm +++ b/code/game/machinery/teambuilder.dm @@ -17,7 +17,7 @@ /obj/machinery/teambuilder/Initialize(mapload, apply_default_parts) . = ..() var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) diff --git a/code/game/machinery/telecomms/computers/message.dm b/code/game/machinery/telecomms/computers/message.dm index d3bf1657273f..96c0af2b7787 100644 --- a/code/game/machinery/telecomms/computers/message.dm +++ b/code/game/machinery/telecomms/computers/message.dm @@ -59,7 +59,7 @@ // Will help make emagging the console not so easy to get away with. monitor_key_paper.add_raw_text("

£%@%(*$%&(£&?*(%&£/{}") var/time = 100 * length(linkedServer.decryptkey) - addtimer(CALLBACK(src, .proc/UnmagConsole), time) + addtimer(CALLBACK(src, PROC_REF(UnmagConsole)), time) message = rebootmsg else to_chat(user, "A no server error appears on the screen.") @@ -347,7 +347,7 @@ hacking = TRUE screen = MSG_MON_SCREEN_HACKED //Time it takes to bruteforce is dependant on the password length. - addtimer(CALLBACK(src, .proc/finish_bruteforce, usr), 100*length(linkedServer.decryptkey)) + addtimer(CALLBACK(src, PROC_REF(finish_bruteforce), usr), 100*length(linkedServer.decryptkey)) //Delete the log. if (href_list["delete_logs"]) diff --git a/code/game/machinery/telecomms/machines/broadcaster.dm b/code/game/machinery/telecomms/machines/broadcaster.dm index 1d29e99b27f4..ce44158cdcc8 100644 --- a/code/game/machinery/telecomms/machines/broadcaster.dm +++ b/code/game/machinery/telecomms/machines/broadcaster.dm @@ -49,7 +49,7 @@ GLOBAL_VAR_INIT(message_delay, 0) // To make sure restarting the recentmessages if(!GLOB.message_delay) GLOB.message_delay = TRUE - addtimer(CALLBACK(GLOBAL_PROC, .proc/end_message_delay), 1 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(end_message_delay)), 1 SECONDS) /* --- Do a snazzy animation! --- */ flick("broadcaster_send", src) diff --git a/code/game/machinery/telecomms/telecomunications.dm b/code/game/machinery/telecomms/telecomunications.dm index dec15ed3013b..11f3d7b34f58 100644 --- a/code/game/machinery/telecomms/telecomunications.dm +++ b/code/game/machinery/telecomms/telecomunications.dm @@ -140,7 +140,7 @@ GLOBAL_LIST_EMPTY(telecomms_list) if(prob(100/severity) && !(machine_stat & EMPED)) set_machine_stat(machine_stat | EMPED) var/duration = (300 * 10)/severity - addtimer(CALLBACK(src, .proc/de_emp), rand(duration - 20, duration + 20)) + addtimer(CALLBACK(src, PROC_REF(de_emp)), rand(duration - 20, duration + 20)) /obj/machinery/telecomms/proc/de_emp() set_machine_stat(machine_stat & ~EMPED) diff --git a/code/game/machinery/transformer.dm b/code/game/machinery/transformer.dm index 8d449ef1c98b..da5a006de0b5 100644 --- a/code/game/machinery/transformer.dm +++ b/code/game/machinery/transformer.dm @@ -101,7 +101,7 @@ R.set_connected_ai(masterAI) R.lawsync() R.lawupdate = 1 - addtimer(CALLBACK(src, .proc/unlock_new_robot, R), 50) + addtimer(CALLBACK(src, PROC_REF(unlock_new_robot), R), 50) /obj/machinery/transformer/proc/unlock_new_robot(mob/living/silicon/robot/R) playsound(src.loc, 'sound/machines/ping.ogg', 50, FALSE) diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm index a437c59c9352..1d6a9e3845b8 100644 --- a/code/game/machinery/washing_machine.dm +++ b/code/game/machinery/washing_machine.dm @@ -160,7 +160,7 @@ GLOBAL_LIST_INIT(dye_registry, list( return busy = TRUE update_appearance() - addtimer(CALLBACK(src, .proc/wash_cycle), 200) + addtimer(CALLBACK(src, PROC_REF(wash_cycle)), 200) START_PROCESSING(SSfastprocess, src) diff --git a/code/game/mecha/combat/durand.dm b/code/game/mecha/combat/durand.dm index ac8920367620..728bacdb671d 100644 --- a/code/game/mecha/combat/durand.dm +++ b/code/game/mecha/combat/durand.dm @@ -26,8 +26,8 @@ /obj/mecha/combat/durand/Initialize() . = ..() shield = new /obj/durand_shield(loc, src, layer, dir) - RegisterSignal(src, COMSIG_MECHA_ACTION_ACTIVATE, .proc/relay) - RegisterSignal(src, COMSIG_PROJECTILE_PREHIT, .proc/prehit) + RegisterSignal(src, COMSIG_MECHA_ACTION_ACTIVATE, PROC_REF(relay)) + RegisterSignal(src, COMSIG_PROJECTILE_PREHIT, PROC_REF(prehit)) /obj/mecha/combat/durand/Destroy() @@ -165,7 +165,7 @@ own integrity back to max. Shield is automatically dropped if we run out of powe chassis = _chassis layer = _layer setDir(_dir) - RegisterSignal(src, COMSIG_MECHA_ACTION_ACTIVATE, .proc/activate) + RegisterSignal(src, COMSIG_MECHA_ACTION_ACTIVATE, PROC_REF(activate)) /obj/durand_shield/Destroy() @@ -204,11 +204,11 @@ the shield is disabled by means other than the action button (like running out o invisibility = 0 flick("shield_raise", src) playsound(src, 'sound/mecha/mech_shield_raise.ogg', 50, FALSE) - addtimer(CALLBACK(src, .proc/shield_icon_enable), 3) + addtimer(CALLBACK(src, PROC_REF(shield_icon_enable)), 3) else flick("shield_drop", src) playsound(src, 'sound/mecha/mech_shield_drop.ogg', 50, FALSE) - addtimer(CALLBACK(src, .proc/shield_icon_reset), 5) + addtimer(CALLBACK(src, PROC_REF(shield_icon_reset)), 5) switching = FALSE /obj/durand_shield/proc/shield_icon_enable() diff --git a/code/game/mecha/equipment/mecha_equipment.dm b/code/game/mecha/equipment/mecha_equipment.dm index e9e3b335ffcc..63d308f69558 100644 --- a/code/game/mecha/equipment/mecha_equipment.dm +++ b/code/game/mecha/equipment/mecha_equipment.dm @@ -99,7 +99,7 @@ /obj/item/mecha_parts/mecha_equipment/proc/start_cooldown() set_ready_state(0) chassis.use_power(energy_drain) - addtimer(CALLBACK(src, .proc/set_ready_state, 1), equip_cooldown) + addtimer(CALLBACK(src, PROC_REF(set_ready_state), 1), equip_cooldown) /obj/item/mecha_parts/mecha_equipment/proc/do_after_cooldown(atom/target) if(!chassis) @@ -134,7 +134,7 @@ /obj/item/mecha_parts/mecha_equipment/proc/detach(atom/moveto=null) moveto = moveto || get_turf(chassis) - if(src.Move(moveto)) + if(src.forceMove(moveto)) chassis.equipment -= src if(chassis.selected == src) chassis.selected = null diff --git a/code/game/mecha/equipment/tools/other_tools.dm b/code/game/mecha/equipment/tools/other_tools.dm index 2beaf9129ff6..1b33de31b54e 100644 --- a/code/game/mecha/equipment/tools/other_tools.dm +++ b/code/game/mecha/equipment/tools/other_tools.dm @@ -122,7 +122,7 @@ var/mob/M = A if(M.mob_negates_gravity()) continue - INVOKE_ASYNC(src, .proc/do_scatter, A, target) + INVOKE_ASYNC(src, PROC_REF(do_scatter), A, target) var/turf/T = get_turf(target) log_game("[key_name(chassis.occupant)] used a Gravitational Catapult repulse wave on [AREACOORD(T)]") diff --git a/code/game/mecha/equipment/tools/work_tools.dm b/code/game/mecha/equipment/tools/work_tools.dm index fe48f4ead497..b1f8d126705c 100644 --- a/code/game/mecha/equipment/tools/work_tools.dm +++ b/code/game/mecha/equipment/tools/work_tools.dm @@ -377,7 +377,7 @@ /obj/item/mecha_parts/mecha_equipment/cable_layer/attach() ..() - event = chassis.events.addEvent("onMove", CALLBACK(src, .proc/layCable)) + event = chassis.events.addEvent("onMove", CALLBACK(src, PROC_REF(layCable))) return /obj/item/mecha_parts/mecha_equipment/cable_layer/detach() diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm index e342defadf1b..4a16a6f9b249 100644 --- a/code/game/mecha/equipment/weapons/weapons.dm +++ b/code/game/mecha/equipment/weapons/weapons.dm @@ -72,7 +72,7 @@ /obj/item/mecha_parts/mecha_equipment/weapon/energy/start_cooldown() set_ready_state(0) chassis.use_power(energy_drain*get_shot_amount()) - addtimer(CALLBACK(src, .proc/set_ready_state, 1), equip_cooldown) + addtimer(CALLBACK(src, PROC_REF(set_ready_state), 1), equip_cooldown) /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser equip_cooldown = 8 @@ -439,7 +439,7 @@ var/turf/T = get_turf(src) message_admins("[ADMIN_LOOKUPFLW(chassis.occupant)] fired a [src] in [ADMIN_VERBOSEJMP(T)]") log_game("[key_name(chassis.occupant)] fired a [src] in [AREACOORD(T)]") - addtimer(CALLBACK(F, /obj/item/grenade/flashbang.proc/prime), det_time) + addtimer(CALLBACK(F, TYPE_PROC_REF(/obj/item/grenade/flashbang, prime)), det_time) /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/flashbang/clusterbang //Because I am a heartless bastard -Sieve //Heartless? for making the poor man's honkblast? - Kaze name = "\improper SOB-3 grenade launcher" diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index 160b6a27ab3d..6814f0cc2e7f 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -386,7 +386,7 @@ add_part_set_to_queue(href_list["partset_to_queue"]) return update_queue_on_page() if(href_list["process_queue"]) - INVOKE_ASYNC(src, .proc/do_process_queue) + INVOKE_ASYNC(src, PROC_REF(do_process_queue)) if(href_list["clear_temp"]) temp = null if(href_list["screen"]) @@ -448,7 +448,7 @@ /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) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, cut_overlay), "fab-load-[M.name]"), 10) updateUsrDialog() /obj/machinery/mecha_part_fabricator/attackby(obj/item/W, mob/user, params) diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index fe1ca47ad4b3..d2c712d32ea8 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -458,7 +458,7 @@ for(var/mob/M in get_hearers_in_view(7,src)) if(M.client) speech_bubble_recipients.Add(M.client) - INVOKE_ASYNC(GLOBAL_PROC, /proc/flick_overlay, image('icons/mob/talk.dmi', src, "machine[say_test(raw_message)]",MOB_LAYER+1), speech_bubble_recipients, 30) + INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(flick_overlay), image('icons/mob/talk.dmi', src, "machine[say_test(raw_message)]",MOB_LAYER+1), speech_bubble_recipients, 30) //////////////////////////// ///// Action processing //// diff --git a/code/game/mecha/mecha_construction_paths.dm b/code/game/mecha/mecha_construction_paths.dm index 83f44f536b56..5172619ba022 100644 --- a/code/game/mecha/mecha_construction_paths.dm +++ b/code/game/mecha/mecha_construction_paths.dm @@ -421,7 +421,7 @@ outer_plating_amount=1 /datum/component/construction/mecha/gygax/action(datum/source, atom/used_atom, mob/user) - return INVOKE_ASYNC(src, .proc/check_step, used_atom, user) + return INVOKE_ASYNC(src, PROC_REF(check_step), used_atom, user) /datum/component/construction/mecha/gygax/custom_action(obj/item/I, mob/living/user, diff) if(!..()) diff --git a/code/game/mecha/mecha_control_console.dm b/code/game/mecha/mecha_control_console.dm index 3aac1d0468ae..de051d5b355e 100644 --- a/code/game/mecha/mecha_control_console.dm +++ b/code/game/mecha/mecha_control_console.dm @@ -133,7 +133,7 @@ return if(chassis) chassis.emp_act(EMP_HEAVY) - addtimer(CALLBACK(src, /obj/item/mecha_parts/mecha_tracking/proc/recharge), 5 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) + addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/item/mecha_parts/mecha_tracking, recharge)), 5 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) recharging = TRUE /** diff --git a/code/game/mecha/mecha_defense.dm b/code/game/mecha/mecha_defense.dm index d10b2e878a61..50652434c6f6 100644 --- a/code/game/mecha/mecha_defense.dm +++ b/code/game/mecha/mecha_defense.dm @@ -167,7 +167,7 @@ occupant?.update_mouse_pointer() if(!equipment_disabled && occupant) //prevent spamming this message with back-to-back EMPs to_chat(occupant, "Error -- Connection to equipment control unit has been lost.") - addtimer(CALLBACK(src, /obj/mecha/proc/restore_equipment), 3 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) + addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/mecha, restore_equipment)), 3 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) equipment_disabled = 1 /obj/mecha/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) diff --git a/code/game/mecha/mecha_topic.dm b/code/game/mecha/mecha_topic.dm index 9b7a5e65c9e5..f2028def7b45 100644 --- a/code/game/mecha/mecha_topic.dm +++ b/code/game/mecha/mecha_topic.dm @@ -408,7 +408,7 @@ if(href_list["repair_int_control_lost"]) occupant_message("Recalibrating coordination system...") log_message("Recalibration of coordination system started.", LOG_MECHA) - addtimer(CALLBACK(src, .proc/stationary_repair, loc), 100, TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(stationary_repair), loc), 100, TIMER_UNIQUE) ///Repairs internal damage if the mech hasn't moved. /obj/mecha/proc/stationary_repair(location) diff --git a/code/game/mecha/mecha_wreckage.dm b/code/game/mecha/mecha_wreckage.dm index ef47a3fa0fed..bf11c24b0d88 100644 --- a/code/game/mecha/mecha_wreckage.dm +++ b/code/game/mecha/mecha_wreckage.dm @@ -32,7 +32,7 @@ return AI = AI_pilot AI.apply_damage(150, BURN) //Give the AI a bit of damage from the "shock" of being suddenly shut down - INVOKE_ASYNC(AI, /mob/living/silicon.proc/death) //The damage is not enough to kill the AI, but to be 'corrupted files' in need of repair. + INVOKE_ASYNC(AI, TYPE_PROC_REF(/mob/living/silicon, death)) //The damage is not enough to kill the AI, but to be 'corrupted files' in need of repair. AI.forceMove(src) //Put the dead AI inside the wreckage for recovery add_overlay(mutable_appearance('icons/obj/projectiles.dmi', "green_laser")) //Overlay for the recovery beacon AI.controlled_mech = null diff --git a/code/game/objects/effects/alien_acid.dm b/code/game/objects/effects/alien_acid.dm index e9b6487d9480..52a69d47cb5e 100644 --- a/code/game/objects/effects/alien_acid.dm +++ b/code/game/objects/effects/alien_acid.dm @@ -26,7 +26,7 @@ START_PROCESSING(SSobj, src) var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) diff --git a/code/game/objects/effects/anomalies/anomalies_gravity.dm b/code/game/objects/effects/anomalies/anomalies_gravity.dm index e8bdd61dd3fc..1dea7049fc97 100644 --- a/code/game/objects/effects/anomalies/anomalies_gravity.dm +++ b/code/game/objects/effects/anomalies/anomalies_gravity.dm @@ -21,7 +21,7 @@ /obj/effect/anomaly/grav/Initialize(mapload, new_lifespan, drops_core) . = ..() var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) @@ -88,7 +88,7 @@ /obj/effect/anomaly/grav/high/Initialize(mapload, new_lifespan) . = ..() - INVOKE_ASYNC(src, .proc/setup_grav_field) + INVOKE_ASYNC(src, PROC_REF(setup_grav_field)) /obj/effect/anomaly/grav/high/proc/setup_grav_field() grav_field = new(src, effectrange, TRUE, 2) diff --git a/code/game/objects/effects/anomalies/anomalies_plasmasoul.dm b/code/game/objects/effects/anomalies/anomalies_plasmasoul.dm index 1a81cecabc79..aead14f26e25 100644 --- a/code/game/objects/effects/anomalies/anomalies_plasmasoul.dm +++ b/code/game/objects/effects/anomalies/anomalies_plasmasoul.dm @@ -22,15 +22,6 @@ to_chat(mob, span_warning("Your blood feels thick..")) playsound(mob, 'sound/effects/bubbles.ogg', 50) - - if(!COOLDOWN_FINISHED(src, pulse_secondary_cooldown)) - return - - COOLDOWN_START(src, pulse_secondary_cooldown, pulse_delay*5) - var/turf/open/tile = get_turf(src) - if(istype(tile)) - tile.atmos_spawn_air("plasma=750;TEMP=200") //free lag! - /obj/effect/anomaly/plasmasoul/Bumped(atom/movable/AM) var/turf/open/spot = locate(rand(src.x-effectrange, src.x+effectrange), rand(src.y-effectrange, src.y+effectrange), src.z) for(var/mob/living/mob in range(effectrange,src)) diff --git a/code/game/objects/effects/anomalies/anomalies_static.dm b/code/game/objects/effects/anomalies/anomalies_static.dm index 07107cd5a332..205a8778d394 100644 --- a/code/game/objects/effects/anomalies/anomalies_static.dm +++ b/code/game/objects/effects/anomalies/anomalies_static.dm @@ -6,6 +6,12 @@ aSignal = /obj/item/assembly/signaler/anomaly/tvstatic effectrange = 4 pulse_delay = 4 SECONDS + verb_say = "pleads" + verb_ask = "begs" + verb_exclaim = "screams" + verb_whisper = "whimpers" + verb_yell = "screams" + speech_span = SPAN_ITALICS var/mob/living/carbon/stored_mob = null /obj/effect/anomaly/tvstatic/examine(mob/user) @@ -13,9 +19,9 @@ if(!iscarbon(user)) return if(iscarbon(user) && !user.research_scanner) //this'll probably cause some weirdness when I start using research scanner in more places / on more items. Oh well. - var/mob/living/carbon/bah = user - to_chat(bah, span_userdanger("Your head aches as you stare into the [src]!")) - bah.adjustOrganLoss(ORGAN_SLOT_BRAIN, 5, 100) + var/mob/living/carbon/victim = user + to_chat(victim, span_userdanger("Your head aches as you stare into [src]!")) + victim.adjustOrganLoss(ORGAN_SLOT_BRAIN, 5, 100) /obj/effect/anomaly/tvstatic/anomalyEffect() ..() @@ -29,11 +35,13 @@ COOLDOWN_START(src, pulse_cooldown, pulse_delay) - for(var/mob/living/carbon/looking in range(effectrange, src)) - playsound(src, 'sound/effects/walkietalkie.ogg', 100) - if (!HAS_TRAIT(looking, TRAIT_MINDSHIELD) && looking.stat != DEAD || !looking.research_scanner && looking.stat != DEAD) + for(var/mob/living/carbon/human/looking in range(effectrange, src)) + playsound(src, 'sound/effects/walkietalkie.ogg', 75) + if(stored_mob && looking.stat != DEAD && prob(25)) + say_fucky_things() + if (!HAS_TRAIT(looking, TRAIT_MINDSHIELD) && looking.stat != DEAD || !looking.research_scanner && looking.stat != DEAD || !HAS_TRAIT(looking, TRAIT_DEAF)) looking.adjustOrganLoss(ORGAN_SLOT_BRAIN, 10, 200) - playsound(src, 'sound/effects/stall.ogg', 100) + playsound(src, 'sound/effects/stall.ogg', 50) if(looking.getOrganLoss(ORGAN_SLOT_BRAIN) >= 150 && looking.stat != DEAD) if(prob(20)) var/mob/living/carbon/victim = looking @@ -49,15 +57,55 @@ /obj/effect/anomaly/tvstatic/Bumped(atom/movable/AM) anomalyEffect() +/obj/effect/anomaly/tvstatic/proc/say_fucky_things() + switch(rand(1, 13)) + if(1) + say("... Help me...") + if(2) + say("... I need to get out ...") + if(3) + say("...No hope....") + if(4) + say("....Let me loose...") + if(5) + say("...stay with me...") + if(6) + say("...I hope I live...") + if(7) + say("...please don't go...") + if(8) + say("...don't forget me...") + if(9) + say("...Are you there...?") + if(10) + say("...it hurts...") + if(11) + say("...the eyes...") + if(12) + say("...need to run...") + if(13) + say("...don't become like me...") + return + /obj/effect/anomaly/tvstatic/detonate() - for(var/mob/living/carbon/looking in range(effectrange, src)) + for(var/mob/living/carbon/human/looking in range(effectrange, src)) visible_message(" The static lashes out, agony filling your mind as its tendrils scrape your thoughts!") if (!HAS_TRAIT(looking, TRAIT_MINDSHIELD) && looking.stat != DEAD) looking.adjustOrganLoss(ORGAN_SLOT_BRAIN, 100, 200) playsound(src, 'sound/effects/stall.ogg', 100) + if(stored_mob) + mangle_corpse() + visible_message("The static sputters out [stored_mob], their body coming out in a burst of blood and gore!") + new /obj/effect/gibspawner/human(loc) + stored_mob.forceMove(get_turf(src)) + stored_mob = null anomalyEffect() . = ..() +/obj/effect/anomaly/tvstatic/proc/mangle_corpse() + if(!stored_mob) + return + stored_mob.adjustBruteLoss(400) /obj/effect/anomaly/tvstatic/anomalyNeutralize() var/turf/T = get_turf(src) @@ -73,6 +121,11 @@ immortal = TRUE immobile = TRUE +/obj/effect/anomaly/tvstatic/planetary/Initialize(mapload) + if(prob(25)) + stored_mob = /obj/effect/mob_spawn/human/corpse/damaged + . = ..() + /obj/effect/particle_effect/staticball name = "static blob" desc = "An unsettling mass of free floating static" diff --git a/code/game/objects/effects/blessing.dm b/code/game/objects/effects/blessing.dm index 2bb45924dfdd..be2d89707882 100644 --- a/code/game/objects/effects/blessing.dm +++ b/code/game/objects/effects/blessing.dm @@ -16,7 +16,7 @@ I.alpha = 64 I.appearance_flags = RESET_ALPHA add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/blessedAware, "blessing", I) - RegisterSignal(loc, COMSIG_ATOM_INTERCEPT_TELEPORT, .proc/block_cult_teleport) + RegisterSignal(loc, COMSIG_ATOM_INTERCEPT_TELEPORT, PROC_REF(block_cult_teleport)) /obj/effect/blessing/Destroy() UnregisterSignal(loc, COMSIG_ATOM_INTERCEPT_TELEPORT) diff --git a/code/game/objects/effects/contraband.dm b/code/game/objects/effects/contraband.dm index 60bdcb7c1546..4c5553c4bfbc 100644 --- a/code/game/objects/effects/contraband.dm +++ b/code/game/objects/effects/contraband.dm @@ -92,7 +92,7 @@ name = "poster - [name]" desc = "A large piece of space-resistant printed paper. [desc]" - addtimer(CALLBACK(src, /datum.proc/_AddComponent, list(/datum/component/beauty, 300)), 0) + addtimer(CALLBACK(src, TYPE_PROC_REF(/datum, _AddComponent), list(/datum/component/beauty, 300)), 0) /obj/structure/sign/poster/proc/randomise() var/obj/structure/sign/poster/selected diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm index d00f3eb256a6..a0909bb0b994 100644 --- a/code/game/objects/effects/decals/cleanable.dm +++ b/code/game/objects/effects/decals/cleanable.dm @@ -27,11 +27,11 @@ AddComponent(/datum/component/infective, diseases_to_add) var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) - addtimer(CALLBACK(src, /datum.proc/_AddComponent, list(/datum/component/beauty, beauty)), 0) + addtimer(CALLBACK(src, TYPE_PROC_REF(/datum, _AddComponent), list(/datum/component/beauty, beauty)), 0) SSblackbox.record_feedback("tally", "station_mess_created", 1, name) diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index d1f65a592091..5610e6a19efa 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -268,7 +268,7 @@ /obj/effect/decal/cleanable/squid_ink/ComponentInitialize() . = ..() - AddComponent(/datum/component/slippery, 5SECONDS, NO_SLIP_WHEN_WALKING, CALLBACK(src, .proc/AfterSlip), 3SECONDS) + AddComponent(/datum/component/slippery, 5SECONDS, NO_SLIP_WHEN_WALKING, CALLBACK(src, PROC_REF(AfterSlip)), 3SECONDS) /obj/effect/decal/cleanable/squid_ink/proc/AfterSlip(mob/living/M) M.AddComponent(/datum/component/outline) diff --git a/code/game/objects/effects/decals/decal.dm b/code/game/objects/effects/decals/decal.dm index e375cfd1117e..a3ad1f1af13d 100644 --- a/code/game/objects/effects/decals/decal.dm +++ b/code/game/objects/effects/decals/decal.dm @@ -46,15 +46,24 @@ var/detail_overlay var/detail_color -/obj/effect/turf_decal/Initialize() - ..() - return INITIALIZE_HINT_QDEL +// This is with the intent of optimizing mapload +// See spawners for more details since we use the same pattern +// Basically rather then creating and deleting ourselves, why not just do the bare minimum? +/obj/effect/turf_decal/Initialize(mapload) + SHOULD_CALL_PARENT(FALSE) + if(flags_1 & INITIALIZED_1) + stack_trace("Warning: [src]([type]) initialized multiple times!") + flags_1 |= INITIALIZED_1 -/obj/effect/turf_decal/ComponentInitialize() - . = ..() var/turf/T = loc if(!istype(T)) //you know this will happen somehow CRASH("Turf decal initialized in an object/nullspace") T.AddElement(/datum/element/decal, icon, icon_state, dir, FALSE, color, null, null, alpha, FALSE) if(detail_overlay) T.AddElement(/datum/element/decal, icon, detail_overlay, dir, FALSE, detail_color, null, null, alpha, appearance_flags) + return INITIALIZE_HINT_QDEL + +/obj/effect/turf_decal/Destroy(force) + SHOULD_CALL_PARENT(FALSE) + moveToNullspace() + return QDEL_HINT_QUEUE diff --git a/code/game/objects/effects/decals/turfdecal/flooring_decals.dm b/code/game/objects/effects/decals/turfdecal/flooring_decals.dm index cfbc81a631a1..b5c6f9fe0eec 100644 --- a/code/game/objects/effects/decals/turfdecal/flooring_decals.dm +++ b/code/game/objects/effects/decals/turfdecal/flooring_decals.dm @@ -1092,3 +1092,17 @@ TURF_DECAL_COLOR_HELPER(transparent/inteqbrown, "#4b2a18", 140) /obj/effect/turf_decal/hardline_big/seven icon_state = "hardline_big-7" + +//ARROW & AXE DOCKYARDS + +/obj/effect/turf_decal/arrowaxe_small + name = "small arrow & axe logo" + +/obj/effect/turf_decal/arrowaxe_small/left + icon_state = "arrowaxe-left" + +/obj/effect/turf_decal/arrowaxe_small/center + icon_state = "arrowaxe-center" + +/obj/effect/turf_decal/arrowaxe_small/right + icon_state = "arrowaxe-right" diff --git a/code/game/objects/effects/decals/turfdecal/weather.dm b/code/game/objects/effects/decals/turfdecal/weather.dm index d73af55ef7e9..04dcf807314a 100644 --- a/code/game/objects/effects/decals/turfdecal/weather.dm +++ b/code/game/objects/effects/decals/turfdecal/weather.dm @@ -2,14 +2,14 @@ name = "sandy floor" icon_state = "sandyfloor" -/obj/effect/turf_decal/weather/snow - name = "snowy floor" - icon_state = "snowyfloor" - -/obj/effect/turf_decal/weather/snow/corner - name = "snow corner piece" +/obj/effect/turf_decal/weather/snow //add a corner decal if you resprite this to look like the other sidings + name = "snow siding" icon = 'icons/turf/snow.dmi' - icon_state = "snow_corner" + icon_state = "snow_side" + +/obj/effect/turf_decal/weather/snow/surround + name = "surround" + icon_state = "snow_surround" /obj/effect/turf_decal/weather/dirt name = "dirt siding" diff --git a/code/game/objects/effects/effect_system/effect_system.dm b/code/game/objects/effects/effect_system/effect_system.dm index 1093f078966d..8e2db3706ca3 100644 --- a/code/game/objects/effects/effect_system/effect_system.dm +++ b/code/game/objects/effects/effect_system/effect_system.dm @@ -56,7 +56,7 @@ would spawn and follow the beaker, even if it is carried or thrown. for(var/i in 1 to number) if(total_effects > 20) return - INVOKE_ASYNC(src, .proc/generate_effect) + INVOKE_ASYNC(src, PROC_REF(generate_effect)) /datum/effect_system/proc/generate_effect() if(holder) @@ -73,7 +73,7 @@ would spawn and follow the beaker, even if it is carried or thrown. sleep(5) step(E,direction) if(!QDELETED(src)) - addtimer(CALLBACK(src, .proc/decrement_total_effect), 20) + addtimer(CALLBACK(src, PROC_REF(decrement_total_effect)), 20) /datum/effect_system/proc/decrement_total_effect() total_effects-- diff --git a/code/game/objects/effects/effect_system/effects_explosion.dm b/code/game/objects/effects/effect_system/effects_explosion.dm index f12ee1e2df72..f8ed47a9b273 100644 --- a/code/game/objects/effects/effect_system/effects_explosion.dm +++ b/code/game/objects/effects/effect_system/effects_explosion.dm @@ -61,4 +61,4 @@ S.start() /datum/effect_system/explosion/smoke/start() ..() - addtimer(CALLBACK(src, .proc/create_smoke), 5) + addtimer(CALLBACK(src, PROC_REF(create_smoke)), 5) diff --git a/code/game/objects/effects/effect_system/effects_smoke.dm b/code/game/objects/effects/effect_system/effects_smoke.dm index a19ab7781269..7fc59d075356 100644 --- a/code/game/objects/effects/effect_system/effects_smoke.dm +++ b/code/game/objects/effects/effect_system/effects_smoke.dm @@ -42,7 +42,7 @@ /obj/effect/particle_effect/smoke/proc/kill_smoke() STOP_PROCESSING(SSobj, src) - INVOKE_ASYNC(src, .proc/fade_out) + INVOKE_ASYNC(src, PROC_REF(fade_out)) QDEL_IN(src, 10) /obj/effect/particle_effect/smoke/process() @@ -64,7 +64,7 @@ if(C.smoke_delay) return 0 C.smoke_delay++ - addtimer(CALLBACK(src, .proc/remove_smoke_delay, C), 10) + addtimer(CALLBACK(src, PROC_REF(remove_smoke_delay), C), 10) return 1 /obj/effect/particle_effect/smoke/proc/remove_smoke_delay(mob/living/carbon/C) @@ -95,7 +95,7 @@ //the smoke spreads rapidly but not instantly for(var/obj/effect/particle_effect/smoke/SM in newsmokes) - addtimer(CALLBACK(SM, /obj/effect/particle_effect/smoke.proc/spread_smoke), 1) + addtimer(CALLBACK(SM, TYPE_PROC_REF(/obj/effect/particle_effect/smoke, spread_smoke)), 1) /datum/effect_system/smoke_spread @@ -223,9 +223,9 @@ for(var/atom/movable/AM in T) if(AM.type == src.type) continue - reagents.expose(AM, TOUCH, fraction) + reagents.expose(AM, SMOKE, fraction) - reagents.expose(T, TOUCH, fraction) + reagents.expose(T, SMOKE, fraction) return 1 /obj/effect/particle_effect/smoke/chem/smoke_mob(mob/living/carbon/M) diff --git a/code/game/objects/effects/forcefields.dm b/code/game/objects/effects/forcefields.dm index 751025e7b49c..e46d8d92e82a 100644 --- a/code/game/objects/effects/forcefields.dm +++ b/code/game/objects/effects/forcefields.dm @@ -8,8 +8,11 @@ CanAtmosPass = ATMOS_PASS_DENSITY var/timeleft = 300 //Set to 0 for permanent forcefields (ugh) -/obj/effect/forcefield/Initialize() +/obj/effect/forcefield/Initialize(mapload, new_timeleft) . = ..() + //used to change the time for forcewine + if(new_timeleft) + timeleft = new_timeleft if(timeleft) QDEL_IN(src, timeleft) @@ -36,3 +39,10 @@ name = "invisible blockade" desc = "You're gonna be here awhile." timeleft = 600 + +/obj/effect/forcefield/resin + desc = "It's rapidly decaying!" + name = "resin" + icon_state = "atmos_resin" + CanAtmosPass = ATMOS_PASS_NO + timeleft = 1 diff --git a/code/game/objects/effects/glowshroom.dm b/code/game/objects/effects/glowshroom.dm index 327f77545d8b..f880b95497c4 100644 --- a/code/game/objects/effects/glowshroom.dm +++ b/code/game/objects/effects/glowshroom.dm @@ -80,7 +80,7 @@ else //if on the floor, glowshroom on-floor sprite icon_state = base_icon_state - addtimer(CALLBACK(src, .proc/Spread), delay) + addtimer(CALLBACK(src, PROC_REF(Spread)), delay) /obj/structure/glowshroom/proc/Spread() var/turf/ownturf = get_turf(src) @@ -127,7 +127,7 @@ shrooms_planted++ //if we failed due to generation, don't try to plant one later if(shrooms_planted < myseed.yield) //if we didn't get all possible shrooms planted, try again later myseed.yield -= shrooms_planted - addtimer(CALLBACK(src, .proc/Spread), delay) + addtimer(CALLBACK(src, PROC_REF(Spread)), delay) /obj/structure/glowshroom/proc/CalcDir(turf/location = loc) var/direction = 16 diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm index 4af986b79cbe..0ca73652857c 100644 --- a/code/game/objects/effects/mines.dm +++ b/code/game/objects/effects/mines.dm @@ -11,7 +11,7 @@ /obj/effect/mine/Initialize() . = ..() var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) @@ -24,9 +24,9 @@ if(ismob(AM)) var/mob/MM = AM if(!(MM.movement_type & FLYING)) - INVOKE_ASYNC(src, .proc/triggermine, AM) + INVOKE_ASYNC(src, PROC_REF(triggermine), AM) else - INVOKE_ASYNC(src, .proc/triggermine, AM) + INVOKE_ASYNC(src, PROC_REF(triggermine), AM) /obj/effect/mine/proc/triggermine(mob/victim) if(triggered) @@ -161,7 +161,7 @@ return to_chat(victim, "RIP AND TEAR") - INVOKE_ASYNC(src, .proc/blood_delusion, victim) + INVOKE_ASYNC(src, PROC_REF(blood_delusion), victim) chainsaw = new(victim.loc) victim.log_message("entered a marg frenzy", LOG_ATTACK) @@ -176,7 +176,7 @@ var/datum/client_colour/colour = victim.add_client_colour(/datum/client_colour/bloodlust) QDEL_IN(colour, 11) doomslayer = victim - RegisterSignal(src, COMSIG_PARENT_QDELETING, .proc/end_blood_frenzy) + RegisterSignal(src, COMSIG_PARENT_QDELETING, PROC_REF(end_blood_frenzy)) QDEL_IN(WEAKREF(src), duration) /obj/effect/mine/pickup/bloodbath/proc/end_blood_frenzy() @@ -210,7 +210,7 @@ return to_chat(victim, "You feel fast!") victim.add_movespeed_modifier(/datum/movespeed_modifier/yellow_orb) - addtimer(CALLBACK(src, .proc/finish_effect, victim), duration) + addtimer(CALLBACK(src, PROC_REF(finish_effect), victim), duration) /obj/effect/mine/pickup/speed/proc/finish_effect(mob/living/carbon/victim) victim.remove_movespeed_modifier(/datum/movespeed_modifier/yellow_orb) diff --git a/code/game/objects/effects/misc.dm b/code/game/objects/effects/misc.dm index 6d5f840fcc68..b21c0b7073d5 100644 --- a/code/game/objects/effects/misc.dm +++ b/code/game/objects/effects/misc.dm @@ -21,6 +21,23 @@ /obj/effect/spawner name = "object spawner" +// Brief explanation: +// Rather then setting up and then deleting spawners, we block all atomlike setup +// and do the absolute bare minimum +// This is with the intent of optimizing mapload +/obj/effect/spawner/Initialize(mapload) + SHOULD_CALL_PARENT(FALSE) + if(flags_1 & INITIALIZED_1) + stack_trace("Warning: [src]([type]) initialized multiple times!") + flags_1 |= INITIALIZED_1 + + return INITIALIZE_HINT_QDEL + +/obj/effect/spawner/Destroy(force) + SHOULD_CALL_PARENT(FALSE) + moveToNullspace() + return QDEL_HINT_QUEUE + /obj/effect/list_container name = "list container" diff --git a/code/game/objects/effects/spawners/bombspawner.dm b/code/game/objects/effects/spawners/bombspawner.dm index 914b910d9830..e1df4ff4ad18 100644 --- a/code/game/objects/effects/spawners/bombspawner.dm +++ b/code/game/objects/effects/spawners/bombspawner.dm @@ -37,8 +37,6 @@ V.update_appearance() - return INITIALIZE_HINT_QDEL - /obj/effect/spawner/newbomb/timer/syndicate/Initialize() temp_p = (OPTIMAL_TEMP_K_PLA_BURN_SCALE(pressure_p, pressure_o, temp_o)/2 + OPTIMAL_TEMP_K_PLA_BURN_RATIO(pressure_p, pressure_o, temp_o)/2) - T0C . = ..() diff --git a/code/game/objects/effects/spawners/bundle.dm b/code/game/objects/effects/spawners/bundle.dm index 41faf88745b2..19e7b1c957fa 100644 --- a/code/game/objects/effects/spawners/bundle.dm +++ b/code/game/objects/effects/spawners/bundle.dm @@ -7,11 +7,10 @@ var/list/items /obj/effect/spawner/bundle/Initialize(mapload) - ..() + . = ..() if(items && items.len) for(var/path in items) new path(loc) - return INITIALIZE_HINT_QDEL /obj/effect/spawner/bundle/costume/chicken name = "chicken costume spawner" @@ -109,12 +108,6 @@ /obj/effect/spawner/lootdrop/minor/pirate_or_bandana, /obj/item/clothing/glasses/eyepatch) -/obj/effect/spawner/bundle/costume/commie - name = "commie costume spawner" - items = list( - /obj/item/clothing/under/costume/soviet, - /obj/item/clothing/head/trapper) - /obj/effect/spawner/bundle/costume/imperium_monk name = "imperium monk costume spawner" items = list( diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index e43ffd7cb182..8d46f5bfa7d8 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -8,7 +8,7 @@ var/fan_out_items = FALSE //Whether the items should be distributed to offsets 0,1,-1,2,-2,3,-3.. This overrides pixel_x/y on the spawner itself /obj/effect/spawner/lootdrop/Initialize(mapload) - ..() + . = ..() if(loot && loot.len) var/loot_spawned = 0 while((lootcount-loot_spawned) && loot.len) @@ -31,7 +31,6 @@ else break // WS edit - Support spawn weights of 0 in loot tables and ruins loot_spawned++ - return INITIALIZE_HINT_QDEL /obj/effect/spawner/lootdrop/donkpockets name = "donk pocket box spawner" @@ -1251,6 +1250,42 @@ )) return ..() + +//random RND imprinter/protolathe board spawners. Do not use on maps without a good reason +/obj/effect/spawner/lootdrop/randomprotolathe + name = "random departmental protolathe" + loot = list( + /obj/item/circuitboard/machine/protolathe/department/cargo, + /obj/item/circuitboard/machine/protolathe/department/engineering, + /obj/item/circuitboard/machine/protolathe/department/service, + /obj/item/circuitboard/machine/protolathe/department/medical, + /obj/item/circuitboard/machine/protolathe/department/science, + /obj/item/circuitboard/machine/protolathe/department/security + ) + +/obj/effect/spawner/lootdrop/randomimprinter + name = "random departmental circuit imprinter" + loot = list( + /obj/item/circuitboard/machine/circuit_imprinter/department/cargo, + /obj/item/circuitboard/machine/circuit_imprinter/department/engi, + /obj/item/circuitboard/machine/circuit_imprinter/department/civ, + /obj/item/circuitboard/machine/circuit_imprinter/department/med, + /obj/item/circuitboard/machine/circuit_imprinter/department/science, + /obj/item/circuitboard/machine/circuit_imprinter/department/sec + ) + +/obj/effect/spawner/lootdrop/randomtechfab + name = "random departmental techfab" + loot = list( + /obj/item/circuitboard/machine/techfab/department/service, + /obj/item/circuitboard/machine/techfab/department/cargo, + /obj/item/circuitboard/machine/techfab/department/engineering, + /obj/item/circuitboard/machine/techfab/department/service, + /obj/item/circuitboard/machine/techfab/department/medical, + /obj/item/circuitboard/machine/techfab/department/science, + /obj/item/circuitboard/machine/techfab/department/security + ) + /obj/effect/spawner/lootdrop/ration loot = list ( /obj/item/storage/ration/vegan_chili = 5, diff --git a/code/game/objects/effects/spawners/structure.dm b/code/game/objects/effects/spawners/structure.dm index 9ce3411cc93a..ec893399630b 100644 --- a/code/game/objects/effects/spawners/structure.dm +++ b/code/game/objects/effects/spawners/structure.dm @@ -15,11 +15,8 @@ INITIALIZE_IMMEDIATE(/obj/effect/spawner/structure) /obj/effect/spawner/structure/Initialize() . = ..() - if(spawn_list && spawn_list.len) - for(var/I in spawn_list) - new I(get_turf(src)) - return INITIALIZE_HINT_QDEL - + for(var/spawn_type in spawn_list) + new spawn_type(loc) //normal windows diff --git a/code/game/objects/effects/spawners/traps.dm b/code/game/objects/effects/spawners/traps.dm index 731b4efc1d98..0409d9944b9b 100644 --- a/code/game/objects/effects/spawners/traps.dm +++ b/code/game/objects/effects/spawners/traps.dm @@ -4,7 +4,6 @@ icon_state = "trap_rand" /obj/effect/spawner/trap/Initialize(mapload) - ..() + . = ..() var/new_type = pick(subtypesof(/obj/structure/trap) - typesof(/obj/structure/trap/ctf)) new new_type(get_turf(src)) - return INITIALIZE_HINT_QDEL diff --git a/code/game/objects/effects/spawners/xeno_egg_delivery.dm b/code/game/objects/effects/spawners/xeno_egg_delivery.dm index d0e99d0f9036..1eb4fd0dda94 100644 --- a/code/game/objects/effects/spawners/xeno_egg_delivery.dm +++ b/code/game/objects/effects/spawners/xeno_egg_delivery.dm @@ -5,7 +5,7 @@ var/announcement_time = 1200 /obj/effect/spawner/xeno_egg_delivery/Initialize(mapload) - ..() + . = ..() var/turf/T = get_turf(src) new /obj/structure/alien/egg(T) @@ -15,5 +15,4 @@ message_admins("An alien egg has been delivered to [ADMIN_VERBOSEJMP(T)].") log_game("An alien egg has been delivered to [AREACOORD(T)]") var/message = "Attention [station_name()], we have entrusted you with a research specimen in [get_area_name(T, TRUE)]. Remember to follow all safety precautions when dealing with the specimen." - SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, /proc/_addtimer, CALLBACK(GLOBAL_PROC, /proc/print_command_report, message), announcement_time)) - return INITIALIZE_HINT_QDEL + SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_addtimer), CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(print_command_report), message), announcement_time)) diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm index b1134e471d03..b986ae41808b 100644 --- a/code/game/objects/effects/spiders.dm +++ b/code/game/objects/effects/spiders.dm @@ -161,7 +161,7 @@ forceMove(exit_vent) var/travel_time = round(get_dist(loc, exit_vent.loc) / 2) - addtimer(CALLBACK(src, .proc/do_vent_move, exit_vent, travel_time), travel_time) + addtimer(CALLBACK(src, PROC_REF(do_vent_move), exit_vent, travel_time), travel_time) /obj/structure/spider/spiderling/proc/do_vent_move(obj/machinery/atmospherics/components/unary/vent_pump/exit_vent, travel_time) if(QDELETED(exit_vent) || exit_vent.welded) @@ -171,7 +171,7 @@ if(prob(50)) audible_message("You hear something scampering through the ventilation ducts.") - addtimer(CALLBACK(src, .proc/finish_vent_move, exit_vent), travel_time) + addtimer(CALLBACK(src, PROC_REF(finish_vent_move), exit_vent), travel_time) /obj/structure/spider/spiderling/proc/finish_vent_move(obj/machinery/atmospherics/components/unary/vent_pump/exit_vent) if(QDELETED(exit_vent) || exit_vent.welded) @@ -199,7 +199,7 @@ visible_message("[src] scrambles into the ventilation ducts!", \ "You hear something scampering through the ventilation ducts.") - addtimer(CALLBACK(src, .proc/vent_move, exit_vent), rand(20,60)) + addtimer(CALLBACK(src, PROC_REF(vent_move), exit_vent), rand(20,60)) //================= diff --git a/code/game/objects/effects/step_triggers.dm b/code/game/objects/effects/step_triggers.dm index 7d0612a8da65..76412acf2a5b 100644 --- a/code/game/objects/effects/step_triggers.dm +++ b/code/game/objects/effects/step_triggers.dm @@ -10,7 +10,7 @@ /obj/effect/step_trigger/Initialize(mapload) . = ..() var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) @@ -26,7 +26,7 @@ return if(!ismob(H) && mobs_only) return - INVOKE_ASYNC(src, .proc/Trigger, H) + INVOKE_ASYNC(src, PROC_REF(Trigger), H) /obj/effect/step_trigger/singularity_act() diff --git a/code/game/objects/effects/temporary_visuals/miscellaneous.dm b/code/game/objects/effects/temporary_visuals/miscellaneous.dm index d825f49c811d..8c8c8f900aab 100644 --- a/code/game/objects/effects/temporary_visuals/miscellaneous.dm +++ b/code/game/objects/effects/temporary_visuals/miscellaneous.dm @@ -514,7 +514,7 @@ status = rcd_status delay = rcd_delay if (status == RCD_DECONSTRUCT) - addtimer(CALLBACK(src, /atom/.proc/update_appearance), 1.1 SECONDS) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_appearance)), 1.1 SECONDS) delay -= 11 icon_state = "rcd_end_reverse" else @@ -540,7 +540,20 @@ qdel(src) else icon_state = "rcd_end" - addtimer(CALLBACK(src, .proc/end), 15) + addtimer(CALLBACK(src, PROC_REF(end)), 15) /obj/effect/constructing_effect/proc/end() qdel(src) + +/obj/effect/muzzle_flash + icon = 'icons/obj/projectiles.dmi' + icon_state = "muzzle_flash" + layer = ABOVE_MOB_LAYER + plane = GAME_PLANE + appearance_flags = KEEP_APART|TILE_BOUND + var/applied = FALSE + +/obj/effect/muzzle_flash/Initialize(mapload, new_icon_state) + . = ..() + if(new_icon_state) + icon_state = new_icon_state diff --git a/code/game/objects/effects/temporary_visuals/projectiles/impact.dm b/code/game/objects/effects/temporary_visuals/projectiles/impact.dm index 6460937bfe57..a89e65715d6a 100644 --- a/code/game/objects/effects/temporary_visuals/projectiles/impact.dm +++ b/code/game/objects/effects/temporary_visuals/projectiles/impact.dm @@ -40,3 +40,11 @@ /obj/effect/projectile/impact/laser/emitter name = "emitter impact" icon_state = "impact_emitter" + +/obj/effect/projectile/impact/kalix + name = "beam impact" + icon_state = "impact_pgf" + +/obj/effect/projectile/impact/pgf + name = "beam impact" + icon_state = "impact_pgf" diff --git a/code/game/objects/effects/temporary_visuals/projectiles/muzzle.dm b/code/game/objects/effects/temporary_visuals/projectiles/muzzle.dm index 697a3f633d81..e684c2826bca 100644 --- a/code/game/objects/effects/temporary_visuals/projectiles/muzzle.dm +++ b/code/game/objects/effects/temporary_visuals/projectiles/muzzle.dm @@ -32,3 +32,9 @@ /obj/effect/projectile/muzzle/wormhole icon_state = "wormhole_g" + +/obj/effect/projectile/muzzle/pgf + icon_state = "muzzle_pgf" + +/obj/effect/projectile/muzzle/kalix + icon_state = "muzzle_kalix" diff --git a/code/game/objects/effects/temporary_visuals/projectiles/tracer.dm b/code/game/objects/effects/temporary_visuals/projectiles/tracer.dm index be7962324f6d..776e6841d29c 100644 --- a/code/game/objects/effects/temporary_visuals/projectiles/tracer.dm +++ b/code/game/objects/effects/temporary_visuals/projectiles/tracer.dm @@ -70,3 +70,9 @@ /obj/effect/projectile/tracer/wormhole icon_state = "wormhole_g" + +/obj/effect/projectile/tracer/pgf + icon_state = "beam_pgf" + +/obj/effect/projectile/tracer/kalix + icon_state = "beam_kalix" diff --git a/code/game/objects/effects/turf_fire.dm b/code/game/objects/effects/turf_fire.dm index 01973670d608..a0c9e0f95a9b 100644 --- a/code/game/objects/effects/turf_fire.dm +++ b/code/game/objects/effects/turf_fire.dm @@ -71,7 +71,7 @@ return INITIALIZE_HINT_QDEL var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index e13cca64caf9..df7c5ae431c5 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -32,7 +32,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb ///Icon file for mob worn overlays. var/icon/mob_overlay_icon ///icon state for mob worn overlays, if null the normal icon_state will be used. - var/mob_overlay_state //WS EDIT - Mob Overlay State + var/mob_overlay_state ///Forced mob worn layer instead of the standard preferred ssize. var/alternate_worn_layer @@ -453,14 +453,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb SEND_SIGNAL(src, COMSIG_ITEM_HIT_REACT, args) if((prob(final_block_chance) && COOLDOWN_FINISHED(src, block_cooldown)) || (prob(final_block_chance) && istype(src, /obj/item/shield))) owner.visible_message("[owner] blocks [attack_text] with [src]!") - var/rand_ricochet = pick(list( - 'sound/weapons/effects/ric1.ogg', - 'sound/weapons/effects/ric2.ogg', - 'sound/weapons/effects/ric3.ogg', - 'sound/weapons/effects/ric4.ogg', - 'sound/weapons/effects/ric5.ogg' - )) - playsound(src, rand_ricochet, 100) + playsound(src, 'sound/weapons/effects/deflect.ogg', 100) if(!istype(src, /obj/item/shield)) COOLDOWN_START(src, block_cooldown, block_cooldown_time) return 1 @@ -684,7 +677,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb if(HAS_TRAIT(src, TRAIT_NODROP)) return thrownby = WEAKREF(thrower) - callback = CALLBACK(src, .proc/after_throw, callback) //replace their callback with our own + callback = CALLBACK(src, PROC_REF(after_throw), callback) //replace their callback with our own . = ..(target, range, speed, thrower, spin, diagonals_first, callback, force, gentle, quickstart = quickstart) /obj/item/proc/after_throw(datum/callback/callback) @@ -852,7 +845,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb if((item_flags & IN_INVENTORY || item_flags & IN_STORAGE) && usr.client.prefs.enable_tips && !QDELETED(src)) var/timedelay = usr.client.prefs.tip_delay/100 var/user = usr - tip_timer = addtimer(CALLBACK(src, .proc/openTip, location, control, params, user), timedelay, TIMER_STOPPABLE)//timer takes delay in deciseconds, but the pref is in milliseconds. dividing by 100 converts it. + tip_timer = addtimer(CALLBACK(src, PROC_REF(openTip), location, control, params, user), timedelay, TIMER_STOPPABLE)//timer takes delay in deciseconds, but the pref is in milliseconds. dividing by 100 converts it. var/mob/living/L = usr if(istype(L) && L.incapacitated()) apply_outline(COLOR_RED_GRAY) @@ -911,7 +904,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb if(delay) // Create a callback with checks that would be called every tick by do_after. - var/datum/callback/tool_check = CALLBACK(src, .proc/tool_check_callback, user, amount, extra_checks) + var/datum/callback/tool_check = CALLBACK(src, PROC_REF(tool_check_callback), user, amount, extra_checks) if(ismob(target)) if(!do_mob(user, target, delay, extra_checks=tool_check)) @@ -1099,6 +1092,10 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb if(SEND_SIGNAL(src, COMSIG_ITEM_OFFER_TAKEN, offerer, taker) & COMPONENT_OFFER_INTERRUPT) return TRUE +///Intended for interactions with guns, like racking +/obj/item/proc/unique_action(mob/living/user) + return + /** * Returns null if this object cannot be used to interact with physical writing mediums such as paper. * Returns a list of key attributes for this object interacting with paper otherwise. diff --git a/code/game/objects/items/RCD.dm b/code/game/objects/items/RCD.dm index b84ccff2b8c9..7548625b31f6 100644 --- a/code/game/objects/items/RCD.dm +++ b/code/game/objects/items/RCD.dm @@ -256,7 +256,7 @@ RLD "SOUTH" = image(icon = 'icons/mob/radial.dmi', icon_state = "csouth"), "WEST" = image(icon = 'icons/mob/radial.dmi', icon_state = "cwest") ) - var/computerdirs = show_radial_menu(user, src, computer_dirs, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE) + var/computerdirs = show_radial_menu(user, src, computer_dirs, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) if(!check_menu(user)) return switch(computerdirs) @@ -313,13 +313,13 @@ RLD "External Maintenance" = get_airlock_image(/obj/machinery/door/airlock/maintenance/external/glass) ) - var/airlockcat = show_radial_menu(user, src, solid_or_glass_choices, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE) + var/airlockcat = show_radial_menu(user, src, solid_or_glass_choices, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) if(!check_menu(user)) return switch(airlockcat) if("Solid") if(advanced_airlock_setting == 1) - var/airlockpaint = show_radial_menu(user, src, solid_choices, radius = 42, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE) + var/airlockpaint = show_radial_menu(user, src, solid_choices, radius = 42, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) if(!check_menu(user)) return switch(airlockpaint) @@ -362,7 +362,7 @@ RLD if("Glass") if(advanced_airlock_setting == 1) - var/airlockpaint = show_radial_menu(user, src , glass_choices, radius = 42, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE) + var/airlockpaint = show_radial_menu(user, src , glass_choices, radius = 42, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) if(!check_menu(user)) return switch(airlockpaint) @@ -455,7 +455,7 @@ RLD choices += list( "Change Window Type" = image(icon = 'icons/mob/radial.dmi', icon_state = "windowtype") ) - var/choice = show_radial_menu(user, src, choices, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE) + var/choice = show_radial_menu(user, src, choices, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) if(!check_menu(user)) return switch(choice) @@ -507,7 +507,7 @@ RLD buzz loudly!","[src] begins \ vibrating violently!") // 5 seconds to get rid of it - addtimer(CALLBACK(src, .proc/detonate_pulse_explode), 50) + addtimer(CALLBACK(src, PROC_REF(detonate_pulse_explode)), 50) /obj/item/construction/rcd/proc/detonate_pulse_explode() explosion(src, 0, 0, 3, 1, flame_range = 1) @@ -822,7 +822,7 @@ RLD machinery_data["cost"][A] = initial(M.rcd_cost) machinery_data["delay"][A] = initial(M.rcd_delay) - var/choice = show_radial_menu(user, src, choices, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE) + var/choice = show_radial_menu(user, src, choices, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) if(!check_menu(user)) return diff --git a/code/game/objects/items/RCL.dm b/code/game/objects/items/RCL.dm index 18661712b6e4..be7cafe22df9 100644 --- a/code/game/objects/items/RCL.dm +++ b/code/game/objects/items/RCL.dm @@ -25,8 +25,8 @@ /obj/item/rcl/Initialize() . = ..() - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) /obj/item/rcl/ComponentInitialize() . = ..() @@ -171,7 +171,7 @@ return if(listeningTo) UnregisterSignal(listeningTo, COMSIG_MOVABLE_MOVED) - RegisterSignal(to_hook, COMSIG_MOVABLE_MOVED, .proc/trigger) + RegisterSignal(to_hook, COMSIG_MOVABLE_MOVED, PROC_REF(trigger)) listeningTo = to_hook /obj/item/rcl/proc/trigger(mob/user) @@ -255,7 +255,7 @@ /obj/item/rcl/proc/showWiringGui(mob/user) var/list/choices = wiringGuiGenerateChoices(user) - wiring_gui_menu = show_radial_menu_persistent(user, src , choices, select_proc = CALLBACK(src, .proc/wiringGuiReact, user), radius = 42) + wiring_gui_menu = show_radial_menu_persistent(user, src , choices, select_proc = CALLBACK(src, PROC_REF(wiringGuiReact), user), radius = 42) /obj/item/rcl/proc/wiringGuiUpdate(mob/user) if(!wiring_gui_menu) diff --git a/code/game/objects/items/RSF.dm b/code/game/objects/items/RSF.dm index a6bdb4534b9b..d82a37d5ee6d 100644 --- a/code/game/objects/items/RSF.dm +++ b/code/game/objects/items/RSF.dm @@ -75,7 +75,7 @@ RSF var/cost = 0 //Warning, prepare for bodgecode while(islist(target))//While target is a list we continue the loop - var/picked = show_radial_menu(user, src, formRadial(target), custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE) + var/picked = show_radial_menu(user, src, formRadial(target), custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE) if(!check_menu(user) || picked == null) return for(var/emem in target)//Back through target agian diff --git a/code/game/objects/items/binoculars.dm b/code/game/objects/items/binoculars.dm index 97c3419f6fac..6d04e2e505ff 100644 --- a/code/game/objects/items/binoculars.dm +++ b/code/game/objects/items/binoculars.dm @@ -13,8 +13,8 @@ /obj/item/binoculars/Initialize() . = ..() - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) /obj/item/binoculars/ComponentInitialize() . = ..() @@ -27,8 +27,8 @@ /obj/item/binoculars/proc/on_wield(obj/item/source, mob/user) SIGNAL_HANDLER - RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/on_walk) - RegisterSignal(user, COMSIG_ATOM_DIR_CHANGE, .proc/rotate) + RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(on_walk)) + RegisterSignal(user, COMSIG_ATOM_DIR_CHANGE, PROC_REF(rotate)) listeningTo = user user.visible_message("[user] holds [src] up to [user.p_their()] eyes.", "You hold [src] up to your eyes.") item_state = "binoculars_wielded" diff --git a/code/game/objects/items/body_egg.dm b/code/game/objects/items/body_egg.dm index cc4fd287c8b7..59fef712b505 100644 --- a/code/game/objects/items/body_egg.dm +++ b/code/game/objects/items/body_egg.dm @@ -19,14 +19,14 @@ ADD_TRAIT(owner, TRAIT_XENO_HOST, TRAIT_GENERIC) ADD_TRAIT(owner, TRAIT_XENO_IMMUNE, "xeno immune") owner.med_hud_set_status() - INVOKE_ASYNC(src, .proc/AddInfectionImages, owner) + INVOKE_ASYNC(src, PROC_REF(AddInfectionImages), owner) /obj/item/organ/body_egg/Remove(mob/living/carbon/M, special = 0) if(owner) REMOVE_TRAIT(owner, TRAIT_XENO_HOST, TRAIT_GENERIC) REMOVE_TRAIT(owner, TRAIT_XENO_IMMUNE, "xeno immune") owner.med_hud_set_status() - INVOKE_ASYNC(src, .proc/RemoveInfectionImages, owner) + INVOKE_ASYNC(src, PROC_REF(RemoveInfectionImages), owner) ..() /obj/item/organ/body_egg/on_death() diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm index faf1f22a651a..52af9852be5c 100644 --- a/code/game/objects/items/bodybag.dm +++ b/code/game/objects/items/bodybag.dm @@ -45,7 +45,7 @@ /obj/item/bodybag/bluespace/Initialize() . = ..() - RegisterSignal(src, COMSIG_ATOM_CANREACH, .proc/CanReachReact) + RegisterSignal(src, COMSIG_ATOM_CANREACH, PROC_REF(CanReachReact)) /obj/item/bodybag/bluespace/examine(mob/user) . = ..() diff --git a/code/game/objects/items/broom.dm b/code/game/objects/items/broom.dm index 78ee6cc25d3c..b370c5ebc6c3 100644 --- a/code/game/objects/items/broom.dm +++ b/code/game/objects/items/broom.dm @@ -17,8 +17,8 @@ /obj/item/pushbroom/Initialize() . = ..() - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) /obj/item/pushbroom/ComponentInitialize() . = ..() @@ -33,7 +33,7 @@ SIGNAL_HANDLER to_chat(user, "You brace the [src] against the ground in a firm sweeping stance.") - RegisterSignal(user, COMSIG_MOVABLE_PRE_MOVE, .proc/sweep) + RegisterSignal(user, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(sweep)) /// triggered on unwield of two handed item /obj/item/pushbroom/proc/on_unwield(obj/item/source, mob/user) diff --git a/code/game/objects/items/cardboard_cutouts.dm b/code/game/objects/items/cardboard_cutouts.dm index 8a84ae2b3a35..f44359ca656c 100644 --- a/code/game/objects/items/cardboard_cutouts.dm +++ b/code/game/objects/items/cardboard_cutouts.dm @@ -101,7 +101,7 @@ * * user The mob choosing a skin of the cardboard cutout */ /obj/item/cardboard_cutout/proc/change_appearance(obj/item/toy/crayon/crayon, mob/living/user) - var/new_appearance = show_radial_menu(user, src, possible_appearances, custom_check = CALLBACK(src, .proc/check_menu, user, crayon), radius = 36, require_near = TRUE) + var/new_appearance = show_radial_menu(user, src, possible_appearances, custom_check = CALLBACK(src, PROC_REF(check_menu), user, crayon), radius = 36, require_near = TRUE) if(!new_appearance) return FALSE if(!do_after(user, 10, FALSE, src, TRUE)) diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index 58eba6e70e88..c4e48f1a629a 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -167,7 +167,7 @@ if(mapload && access_txt) access = text2access(access_txt) update_label() - RegisterSignal(src, COMSIG_ATOM_UPDATED_ICON, .proc/update_in_wallet) + RegisterSignal(src, COMSIG_ATOM_UPDATED_ICON, PROC_REF(update_in_wallet)) /obj/item/card/id/Destroy() if (registered_account) diff --git a/code/game/objects/items/chainsaw.dm b/code/game/objects/items/chainsaw.dm index 8d0d89a88638..f9181ef3ac6a 100644 --- a/code/game/objects/items/chainsaw.dm +++ b/code/game/objects/items/chainsaw.dm @@ -25,8 +25,8 @@ /obj/item/chainsaw/Initialize() . = ..() - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) /obj/item/chainsaw/ComponentInitialize() . = ..() diff --git a/code/game/objects/items/charter.dm b/code/game/objects/items/charter.dm index 772a80d6c0e4..29a8ff25c38a 100644 --- a/code/game/objects/items/charter.dm +++ b/code/game/objects/items/charter.dm @@ -57,7 +57,7 @@ to_chat(user, "Your name has been sent to your employers for approval.") // Autoapproves after a certain time - response_timer_id = addtimer(CALLBACK(src, .proc/rename_station, new_name, user.name, user.real_name, key_name(user)), approval_time, TIMER_STOPPABLE) + response_timer_id = addtimer(CALLBACK(src, PROC_REF(rename_station), new_name, user.name, user.real_name, key_name(user)), approval_time, TIMER_STOPPABLE) to_chat(GLOB.admins, "CUSTOM STATION RENAME:[ADMIN_LOOKUPFLW(user)] proposes to rename the [name_type] to [new_name] (will autoapprove in [DisplayTimeText(approval_time)]). [ADMIN_SMITE(user)] (REJECT) [ADMIN_CENTCOM_REPLY(user)]") /obj/item/sector_charter/proc/reject_proposed(user) diff --git a/code/game/objects/items/debug_items.dm b/code/game/objects/items/debug_items.dm index e800eaed6846..14edc15f7d18 100644 --- a/code/game/objects/items/debug_items.dm +++ b/code/game/objects/items/debug_items.dm @@ -64,7 +64,7 @@ "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) + var/tool_result = show_radial_menu(user, src, tool_list, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) if(!check_menu(user)) return switch(tool_result) diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index bf61f194b9b7..32a62880d69c 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -221,7 +221,7 @@ return FALSE /obj/item/defibrillator/proc/cooldowncheck(mob/user) - addtimer(CALLBACK(src, .proc/finish_charging), cooldown_duration) + addtimer(CALLBACK(src, PROC_REF(finish_charging)), cooldown_duration) /obj/item/defibrillator/proc/finish_charging() if(cell) @@ -329,7 +329,7 @@ . = ..() if(!req_defib) return - RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/check_range) + RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(check_range)) /obj/item/shockpaddles/Moved() . = ..() @@ -369,8 +369,8 @@ /obj/item/shockpaddles/Initialize() . = ..() ADD_TRAIT(src, TRAIT_NO_STORAGE_INSERT, GENERIC_ITEM_TRAIT) //stops shockpaddles from being inserted in BoH - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) if(!req_defib) return //If it doesn't need a defib, just say it exists if (!loc || !istype(loc, /obj/item/defibrillator)) //To avoid weird issues from admin spawns diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 9dd00660d362..dff96fd8076d 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -1097,7 +1097,7 @@ GLOBAL_LIST_EMPTY(PDAs) AM.emp_act(severity) if (!(. & EMP_PROTECT_SELF)) emped++ - addtimer(CALLBACK(src, .proc/emp_end), 200 * severity) + addtimer(CALLBACK(src, PROC_REF(emp_end)), 200 * severity) /obj/item/pda/proc/emp_end() emped-- diff --git a/code/game/objects/items/devices/PDA/PDA_types.dm b/code/game/objects/items/devices/PDA/PDA_types.dm index 39b3545c1400..3b2d44d9d838 100644 --- a/code/game/objects/items/devices/PDA/PDA_types.dm +++ b/code/game/objects/items/devices/PDA/PDA_types.dm @@ -10,8 +10,8 @@ /obj/item/pda/clown/ComponentInitialize() . = ..() - AddComponent(/datum/component/slippery/clowning, 120, NO_SLIP_WHEN_WALKING, CALLBACK(src, .proc/AfterSlip)) - AddComponent(/datum/component/wearertargeting/sitcomlaughter, CALLBACK(src, .proc/after_sitcom_laugh)) + AddComponent(/datum/component/slippery/clowning, 120, NO_SLIP_WHEN_WALKING, CALLBACK(src, PROC_REF(AfterSlip))) + AddComponent(/datum/component/wearertargeting/sitcomlaughter, CALLBACK(src, PROC_REF(after_sitcom_laugh))) /obj/item/pda/clown/proc/AfterSlip(mob/living/carbon/human/M) if (istype(M) && (M.real_name != owner)) @@ -61,7 +61,7 @@ /obj/item/pda/ai/Initialize() . = ..() - RegisterSignal(src, COMSIG_PDA_CHECK_DETONATE, .proc/pda_no_detonate) + RegisterSignal(src, COMSIG_PDA_CHECK_DETONATE, PROC_REF(pda_no_detonate)) /obj/item/pda/medical name = "medical PDA" @@ -144,7 +144,7 @@ /obj/item/pda/captain/Initialize() . = ..() - RegisterSignal(src, COMSIG_PDA_CHECK_DETONATE, .proc/pda_no_detonate) + RegisterSignal(src, COMSIG_PDA_CHECK_DETONATE, PROC_REF(pda_no_detonate)) /obj/item/pda/cargo name = "cargo technician PDA" diff --git a/code/game/objects/items/devices/PDA/cart.dm b/code/game/objects/items/devices/PDA/cart.dm index 1e96a5b3ce01..65bda2aa1f54 100644 --- a/code/game/objects/items/devices/PDA/cart.dm +++ b/code/game/objects/items/devices/PDA/cart.dm @@ -486,7 +486,7 @@ Code: active1 = null if("Send Signal") - INVOKE_ASYNC(radio, /obj/item/integrated_signaler.proc/send_activation) + INVOKE_ASYNC(radio, TYPE_PROC_REF(/obj/item/integrated_signaler, send_activation)) if("Signal Frequency") var/new_frequency = sanitize_frequency(radio.frequency + text2num(href_list["sfreq"])) diff --git a/code/game/objects/items/devices/desynchronizer.dm b/code/game/objects/items/devices/desynchronizer.dm index f5b7cd58fddb..ae57fe3d61eb 100644 --- a/code/game/objects/items/devices/desynchronizer.dm +++ b/code/game/objects/items/devices/desynchronizer.dm @@ -55,7 +55,7 @@ SEND_SIGNAL(AM, COMSIG_MOVABLE_SECLUDED_LOCATION) last_use = world.time icon_state = "desynchronizer-on" - resync_timer = addtimer(CALLBACK(src, .proc/resync), duration , TIMER_STOPPABLE) + resync_timer = addtimer(CALLBACK(src, PROC_REF(resync)), duration , TIMER_STOPPABLE) /obj/item/desynchronizer/proc/resync() new /obj/effect/temp_visual/desynchronizer(sync_holder.drop_location()) diff --git a/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm b/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm index 3833b63d7ac7..8986f8443698 100644 --- a/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm +++ b/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm @@ -43,7 +43,7 @@ maptext = "[circuits]" icon_state = "[initial(icon_state)]_recharging" var/recharge_time = min(600, circuit_cost * 5) //40W of cost for one fabrication = 20 seconds of recharge time; this is to prevent spamming - addtimer(CALLBACK(src, .proc/recharge), recharge_time) + addtimer(CALLBACK(src, PROC_REF(recharge)), recharge_time) return TRUE //The actual circuit magic itself is done on a per-object basis /obj/item/electroadaptive_pseudocircuit/afterattack(atom/target, mob/living/user, proximity) diff --git a/code/game/objects/items/devices/geiger_counter.dm b/code/game/objects/items/devices/geiger_counter.dm index e9da1f126aab..4abc1a3786bb 100644 --- a/code/game/objects/items/devices/geiger_counter.dm +++ b/code/game/objects/items/devices/geiger_counter.dm @@ -138,7 +138,7 @@ if(user.a_intent == INTENT_HELP) if(!(obj_flags & EMAGGED)) user.visible_message("[user] scans [target] with [src].", "You scan [target]'s radiation levels with [src]...") - addtimer(CALLBACK(src, .proc/scan, target, user), 20, TIMER_UNIQUE) // Let's not have spamming GetAllContents + addtimer(CALLBACK(src, PROC_REF(scan), target, user), 20, TIMER_UNIQUE) // Let's not have spamming GetAllContents else user.visible_message("[user] scans [target] with [src].", "You project [src]'s stored radiation into [target]!") target.rad_act(radiation_count) @@ -212,7 +212,7 @@ return if(listeningTo) UnregisterSignal(listeningTo, COMSIG_ATOM_RAD_ACT) - RegisterSignal(user, COMSIG_ATOM_RAD_ACT, .proc/redirect_rad_act) + RegisterSignal(user, COMSIG_ATOM_RAD_ACT, PROC_REF(redirect_rad_act)) listeningTo = user /obj/item/geiger_counter/cyborg/proc/redirect_rad_act(datum/source, amount) diff --git a/code/game/objects/items/devices/megaphone.dm b/code/game/objects/items/devices/megaphone.dm index 2f3429995845..fa95991750ec 100644 --- a/code/game/objects/items/devices/megaphone.dm +++ b/code/game/objects/items/devices/megaphone.dm @@ -14,7 +14,7 @@ /obj/item/megaphone/equipped(mob/M, slot) . = ..() if (slot == ITEM_SLOT_HANDS) - RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(M, COMSIG_MOB_SAY, PROC_REF(handle_speech)) else UnregisterSignal(M, COMSIG_MOB_SAY) diff --git a/code/game/objects/items/devices/pressureplates.dm b/code/game/objects/items/devices/pressureplates.dm index 6368a4b3d17f..60cfe4eb89b3 100644 --- a/code/game/objects/items/devices/pressureplates.dm +++ b/code/game/objects/items/devices/pressureplates.dm @@ -31,10 +31,10 @@ sigdev.frequency = roundstart_signaller_freq AddElement(/datum/element/undertile, tile_overlay = tile_overlay, use_anchor = TRUE) - RegisterSignal(src, COMSIG_OBJ_HIDE, .proc/ToggleActive) + RegisterSignal(src, COMSIG_OBJ_HIDE, PROC_REF(ToggleActive)) var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) @@ -50,7 +50,7 @@ else if(!trigger_item) return can_trigger = FALSE - addtimer(CALLBACK(src, .proc/trigger), trigger_delay) + addtimer(CALLBACK(src, PROC_REF(trigger)), trigger_delay) /obj/item/pressure_plate/proc/trigger() can_trigger = TRUE diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index 3c35294f8e3f..a91789c542cd 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -22,7 +22,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/item/radio/intercom, 31) var/area/current_area = get_area(src) if(!current_area) return - RegisterSignal(current_area, COMSIG_AREA_POWER_CHANGE, .proc/AreaPowerCheck) + RegisterSignal(current_area, COMSIG_AREA_POWER_CHANGE, PROC_REF(AreaPowerCheck)) /obj/item/radio/intercom/examine(mob/user) . = ..() diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 2a5a043656c2..e95ab85cda9d 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -200,7 +200,7 @@ spans = list(M.speech_span) if(!language) language = M.get_selected_language() - INVOKE_ASYNC(src, .proc/talk_into_impl, M, message, channel, spans.Copy(), language, message_mods) + INVOKE_ASYNC(src, PROC_REF(talk_into_impl), M, message, channel, spans.Copy(), language, message_mods) return ITALICS | REDUCE_RANGE /obj/item/radio/proc/talk_into_impl(atom/movable/M, message, channel, list/spans, datum/language/language, list/message_mods) @@ -272,7 +272,7 @@ // Non-subspace radios will check in a couple of seconds, and if the signal // was never received, send a mundane broadcast (no headsets). - addtimer(CALLBACK(src, .proc/backup_transmission, signal), 20) + addtimer(CALLBACK(src, PROC_REF(backup_transmission), signal), 20) /obj/item/radio/proc/backup_transmission(datum/signal/subspace/vocal/signal) var/turf/T = get_turf(src) @@ -367,7 +367,7 @@ for (var/ch_name in channels) channels[ch_name] = 0 on = FALSE - addtimer(CALLBACK(src, .proc/end_emp_effect, curremp), 200) + addtimer(CALLBACK(src, PROC_REF(end_emp_effect), curremp), 200) /obj/item/radio/proc/end_emp_effect(curremp) if(emped != curremp) //Don't fix it if it's been EMP'd again diff --git a/code/game/objects/items/devices/reverse_bear_trap.dm b/code/game/objects/items/devices/reverse_bear_trap.dm index e04e2bdc422b..5d90c839bebf 100644 --- a/code/game/objects/items/devices/reverse_bear_trap.dm +++ b/code/game/objects/items/devices/reverse_bear_trap.dm @@ -43,7 +43,7 @@ soundloop.stop() soundloop2.stop() to_chat(loc, "*ding*") - addtimer(CALLBACK(src, .proc/snap), 2) + addtimer(CALLBACK(src, PROC_REF(snap)), 2) /obj/item/reverse_bear_trap/attack_hand(mob/user) if(iscarbon(user)) diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 1e36f8bd328f..6f11fe4ebac1 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -550,7 +550,7 @@ GENE SCANNER else to_chat(user, "[src]'s barometer function says a storm will land in approximately [butchertime(fixed)].") cooldown = TRUE - addtimer(CALLBACK(src,/obj/item/analyzer/proc/ping), cooldown_time) + addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/item/analyzer, ping)), cooldown_time) /obj/item/analyzer/proc/ping() if(isliving(loc)) @@ -793,7 +793,7 @@ GENE SCANNER ready = FALSE icon_state = "[icon_state]_recharging" - addtimer(CALLBACK(src, .proc/recharge), cooldown, TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(recharge)), cooldown, TIMER_UNIQUE) /obj/item/sequence_scanner/proc/recharge() icon_state = initial(icon_state) diff --git a/code/game/objects/items/devices/spyglasses.dm b/code/game/objects/items/devices/spyglasses.dm index 1c103b1dd950..1edec8edb7db 100644 --- a/code/game/objects/items/devices/spyglasses.dm +++ b/code/game/objects/items/devices/spyglasses.dm @@ -54,7 +54,7 @@ /obj/item/spy_bug/Initialize() . = ..() - tracker = new /datum/movement_detector(src, CALLBACK(src, .proc/update_view)) + tracker = new /datum/movement_detector(src, CALLBACK(src, PROC_REF(update_view))) cam_screen = new cam_screen.name = "screen" diff --git a/code/game/objects/items/devices/swapper.dm b/code/game/objects/items/devices/swapper.dm index b152504a3431..e1a5cbaf02e9 100644 --- a/code/game/objects/items/devices/swapper.dm +++ b/code/game/objects/items/devices/swapper.dm @@ -55,7 +55,7 @@ var/mob/holder = linked_swapper.loc to_chat(holder, "[linked_swapper] starts buzzing.") next_use = world.time + cooldown //only the one used goes on cooldown - addtimer(CALLBACK(src, .proc/swap, user), 25) + addtimer(CALLBACK(src, PROC_REF(swap), user), 25) /obj/item/swapper/examine(mob/user) . = ..() diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index 3d054927d2c8..4f034824e2f4 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -89,7 +89,7 @@ effective or pretty fucking useless. addtimer(VARSET_CALLBACK(src, used, FALSE), cooldown) addtimer(VARSET_CALLBACK(src, icon_state, "health"), cooldown) to_chat(user, "Successfully irradiated [M].") - addtimer(CALLBACK(src, .proc/radiation_aftereffect, M), (wavelength+(intensity*4))*5) + addtimer(CALLBACK(src, PROC_REF(radiation_aftereffect), M), (wavelength+(intensity*4))*5) else to_chat(user, "The radioactive microlaser is still recharging.") diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm index b26ec181525b..f6687ffec110 100644 --- a/code/game/objects/items/devices/transfer_valve.dm +++ b/code/game/objects/items/devices/transfer_valve.dm @@ -90,7 +90,7 @@ if(toggle) toggle = FALSE toggle_valve() - addtimer(CALLBACK(src, .proc/toggle_off), 5) //To stop a signal being spammed from a proxy sensor constantly going off or whatever + addtimer(CALLBACK(src, PROC_REF(toggle_off)), 5) //To stop a signal being spammed from a proxy sensor constantly going off or whatever /obj/item/transfer_valve/proc/toggle_off() toggle = TRUE @@ -181,7 +181,7 @@ merge_gases() for(var/i in 1 to 6) - addtimer(CALLBACK(src, /atom/.proc/update_appearance), 20 + (i - 1) * 10) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_appearance)), 20 + (i - 1) * 10) else if(valve_open && tank_one && tank_two) split_gases() diff --git a/code/game/objects/items/dualsaber.dm b/code/game/objects/items/dualsaber.dm index 39fe7d490320..dc49ee2dc6ae 100644 --- a/code/game/objects/items/dualsaber.dm +++ b/code/game/objects/items/dualsaber.dm @@ -70,8 +70,8 @@ /obj/item/dualsaber/Initialize() . = ..() - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) if(LAZYLEN(possible_colors)) saber_color = pick(possible_colors) switch(saber_color) @@ -102,10 +102,10 @@ impale(user) return if(wielded && prob(50)) - INVOKE_ASYNC(src, .proc/jedi_spin, user) + INVOKE_ASYNC(src, PROC_REF(jedi_spin), user) /obj/item/dualsaber/proc/jedi_spin(mob/living/user) - dance_rotate(user, CALLBACK(user, /mob.proc/dance_flip)) + dance_rotate(user, CALLBACK(user, TYPE_PROC_REF(/mob, dance_flip))) /obj/item/dualsaber/proc/impale(mob/living/user) to_chat(user, "You twirl around a bit before losing your balance and impaling yourself on [src].") @@ -144,7 +144,7 @@ playsound(loc, hitsound, get_clamped_volume(), TRUE, -1) add_fingerprint(user) // Light your candles while spinning around the room - INVOKE_ASYNC(src, .proc/jedi_spin, user) + INVOKE_ASYNC(src, PROC_REF(jedi_spin), user) /obj/item/dualsaber/green possible_colors = list("green") diff --git a/code/game/objects/items/eightball.dm b/code/game/objects/items/eightball.dm index 7554614495ae..111dd3aa96bc 100644 --- a/code/game/objects/items/eightball.dm +++ b/code/game/objects/items/eightball.dm @@ -64,7 +64,7 @@ say(answer) on_cooldown = TRUE - addtimer(CALLBACK(src, .proc/clear_cooldown), cooldown_time) + addtimer(CALLBACK(src, PROC_REF(clear_cooldown)), cooldown_time) shaking = FALSE diff --git a/code/game/objects/items/energyhalberd.dm b/code/game/objects/items/energyhalberd.dm index fb03f24fbeb6..416964bbfded 100644 --- a/code/game/objects/items/energyhalberd.dm +++ b/code/game/objects/items/energyhalberd.dm @@ -76,8 +76,8 @@ /obj/item/energyhalberd/Initialize() . = ..() - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_halberdwield) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_halberdunwield) + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_halberdwield)) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_halberdunwield)) if(LAZYLEN(possible_colors)) halberd_color = pick(possible_colors) switch(halberd_color) diff --git a/code/game/objects/items/etherealdiscoball.dm b/code/game/objects/items/etherealdiscoball.dm index a695bd70e410..94f1ae2a6062 100644 --- a/code/game/objects/items/etherealdiscoball.dm +++ b/code/game/objects/items/etherealdiscoball.dm @@ -59,7 +59,7 @@ set_light(range, power, current_color) add_atom_colour("#[current_color]", FIXED_COLOUR_PRIORITY) update_appearance() - TimerID = addtimer(CALLBACK(src, .proc/DiscoFever), 5, TIMER_STOPPABLE) //Call ourselves every 0.5 seconds to change colors + TimerID = addtimer(CALLBACK(src, PROC_REF(DiscoFever)), 5, TIMER_STOPPABLE) //Call ourselves every 0.5 seconds to change colors /obj/structure/etherealball/update_icon_state() icon_state = "ethdisco_head_[TurnedOn]" diff --git a/code/game/objects/items/extinguisher.dm b/code/game/objects/items/extinguisher.dm index 75f96e4786ad..106ee2a50525 100644 --- a/code/game/objects/items/extinguisher.dm +++ b/code/game/objects/items/extinguisher.dm @@ -148,7 +148,7 @@ if(user.buckled && isobj(user.buckled) && !user.buckled.anchored) var/obj/B = user.buckled var/movementdirection = turn(direction,180) - addtimer(CALLBACK(src, /obj/item/extinguisher/proc/move_chair, B, movementdirection), 1) + addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/item/extinguisher, move_chair), B, movementdirection), 1) else user.newtonian_move(turn(direction, 180)) @@ -176,7 +176,7 @@ reagents.trans_to(W,1, transfered_by = user) //Make em move dat ass, hun - addtimer(CALLBACK(src, /obj/item/extinguisher/proc/move_particles, water_particles), 2) + addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/item/extinguisher, move_particles), water_particles), 2) //Particle movement loop /obj/item/extinguisher/proc/move_particles(list/particles, repetition=0) @@ -198,7 +198,7 @@ particles -= W if(repetition < power) repetition++ - addtimer(CALLBACK(src, /obj/item/extinguisher/proc/move_particles, particles, repetition), 2) + addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/item/extinguisher, move_particles), particles, repetition), 2) //Chair movement loop /obj/item/extinguisher/proc/move_chair(obj/B, movementdirection, repetition=0) @@ -216,7 +216,7 @@ return repetition++ - addtimer(CALLBACK(src, /obj/item/extinguisher/proc/move_chair, B, movementdirection, repetition), timer_seconds) + addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/item/extinguisher, move_chair), B, movementdirection, repetition), timer_seconds) /obj/item/extinguisher/AltClick(mob/user) if(!user.canUseTopic(src, BE_CLOSE, ismonkey(user))) diff --git a/code/game/objects/items/fireaxe.dm b/code/game/objects/items/fireaxe.dm index 8203880b2b27..b2e5534a92b0 100644 --- a/code/game/objects/items/fireaxe.dm +++ b/code/game/objects/items/fireaxe.dm @@ -23,8 +23,8 @@ /obj/item/fireaxe/Initialize() . = ..() - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) /obj/item/fireaxe/ComponentInitialize() . = ..() diff --git a/code/game/objects/items/flamethrower.dm b/code/game/objects/items/flamethrower.dm index 7412c1892676..6a1e439422a4 100644 --- a/code/game/objects/items/flamethrower.dm +++ b/code/game/objects/items/flamethrower.dm @@ -213,8 +213,8 @@ if(get_dist(src, turf_target) > FLAMETHROWER_RANGE) //thiss shit doesnt work aaaaa flamer_proj.range = FLAMETHROWER_RANGE - RegisterSignal(flamer_proj, COMSIG_MOVABLE_MOVED, .proc/handle_flaming) - RegisterSignal(flamer_proj, COMSIG_PARENT_QDELETING, .proc/stop_operating) + RegisterSignal(flamer_proj, COMSIG_MOVABLE_MOVED, PROC_REF(handle_flaming)) + RegisterSignal(flamer_proj, COMSIG_PARENT_QDELETING, PROC_REF(stop_operating)) flamer_proj.fire() //off it goes diff --git a/code/game/objects/items/grenades/antigravity.dm b/code/game/objects/items/grenades/antigravity.dm index 313b91acd71b..1c3bc9d5034c 100644 --- a/code/game/objects/items/grenades/antigravity.dm +++ b/code/game/objects/items/grenades/antigravity.dm @@ -13,6 +13,6 @@ for(var/turf/T in view(range,src)) T.AddElement(/datum/element/forced_gravity, forced_value) - addtimer(CALLBACK(T, /datum/.proc/_RemoveElement, list(forced_value)), duration) + addtimer(CALLBACK(T, TYPE_PROC_REF(/datum, _RemoveElement), list(forced_value)), duration) resolve() diff --git a/code/game/objects/items/grenades/chem_grenade.dm b/code/game/objects/items/grenades/chem_grenade.dm index 5d42e6b7d469..b675a0012152 100644 --- a/code/game/objects/items/grenades/chem_grenade.dm +++ b/code/game/objects/items/grenades/chem_grenade.dm @@ -172,7 +172,7 @@ landminemode.activate() return active = TRUE - addtimer(CALLBACK(src, .proc/prime), isnull(delayoverride)? det_time : delayoverride) + addtimer(CALLBACK(src, PROC_REF(prime)), isnull(delayoverride)? det_time : delayoverride) /obj/item/grenade/chem_grenade/prime() if(stage != GRENADE_READY) @@ -298,7 +298,7 @@ chem_splash(get_turf(src), affected_area, list(reactants), ignition_temp, threatscale) var/turf/DT = get_turf(src) - addtimer(CALLBACK(src, .proc/prime), det_time) + addtimer(CALLBACK(src, PROC_REF(prime)), det_time) log_game("A grenade detonated at [AREACOORD(DT)]") diff --git a/code/game/objects/items/grenades/clusterbuster.dm b/code/game/objects/items/grenades/clusterbuster.dm index 0c7203f0a5c0..5326b303d977 100644 --- a/code/game/objects/items/grenades/clusterbuster.dm +++ b/code/game/objects/items/grenades/clusterbuster.dm @@ -58,7 +58,7 @@ var/steps = rand(1,4) for(var/i in 1 to steps) step_away(src,loc) - addtimer(CALLBACK(src, .proc/prime), rand(15,60)) + addtimer(CALLBACK(src, PROC_REF(prime)), rand(15,60)) /obj/item/grenade/clusterbuster/segment/prime() new payload_spawner(drop_location(), payload, rand(min_spawned,max_spawned)) @@ -79,7 +79,7 @@ var/obj/item/grenade/P = new type(loc) if(istype(P)) P.active = TRUE - addtimer(CALLBACK(P, /obj/item/grenade/proc/prime), rand(15,60)) + addtimer(CALLBACK(P, TYPE_PROC_REF(/obj/item/grenade, prime)), rand(15,60)) var/steps = rand(1,4) for(var/i in 1 to steps) step_away(src,loc) @@ -108,7 +108,7 @@ var/chosen = pick(subtypesof(/obj/item/slime_extract)) var/obj/item/slime_extract/P = new chosen(loc) if(volatile) - addtimer(CALLBACK(P, /obj/item/slime_extract/proc/activate_slime), rand(15,60)) + addtimer(CALLBACK(P, TYPE_PROC_REF(/obj/item/slime_extract, activate_slime)), rand(15,60)) var/steps = rand(1,4) for(var/i in 1 to steps) step_away(src,loc) diff --git a/code/game/objects/items/grenades/discogrenade.dm b/code/game/objects/items/grenades/discogrenade.dm index 181feff62147..be2ec68f0cb1 100644 --- a/code/game/objects/items/grenades/discogrenade.dm +++ b/code/game/objects/items/grenades/discogrenade.dm @@ -55,7 +55,7 @@ var/launch_distance = rand(2, 6) for(var/i in 1 to launch_distance) step_away(src, loc) - addtimer(CALLBACK(src, .proc/prime), rand(10, 60)) + addtimer(CALLBACK(src, PROC_REF(prime)), rand(10, 60)) randomiseLightColor() /obj/item/grenade/discogrenade/subgrenade/prime(mob/living/lanced_by) @@ -84,7 +84,7 @@ set_light(range, power, lightcolor) add_atom_colour("#[lightcolor]", FIXED_COLOUR_PRIORITY) update_appearance() - timerID = addtimer(CALLBACK(src, .proc/randomiseLightColor), 2, TIMER_STOPPABLE) + timerID = addtimer(CALLBACK(src, PROC_REF(randomiseLightColor)), 2, TIMER_STOPPABLE) /obj/item/grenade/discogrenade/subgrenade/proc/forcedance(turf/target_turf , mob/living/carbon/human/target) if(!target_turf) diff --git a/code/game/objects/items/grenades/festive.dm b/code/game/objects/items/grenades/festive.dm index 7bf5fd65bf08..c6200d69ae9e 100644 --- a/code/game/objects/items/grenades/festive.dm +++ b/code/game/objects/items/grenades/festive.dm @@ -106,7 +106,7 @@ playsound(src, 'sound/effects/fuse.ogg', volume, TRUE) active = TRUE icon_state = initial(icon_state) + "_active" - addtimer(CALLBACK(src, .proc/prime), isnull(delayoverride)? det_time : delayoverride) + addtimer(CALLBACK(src, PROC_REF(prime)), isnull(delayoverride)? det_time : delayoverride) /obj/item/grenade/firecracker/prime() . = ..() diff --git a/code/game/objects/items/grenades/grenade.dm b/code/game/objects/items/grenades/grenade.dm index cf5fab1d4a0a..f0198b7f1a0b 100644 --- a/code/game/objects/items/grenades/grenade.dm +++ b/code/game/objects/items/grenades/grenade.dm @@ -95,7 +95,7 @@ active = TRUE icon_state = initial(icon_state) + "_active" SEND_SIGNAL(src, COMSIG_GRENADE_ARMED, det_time, delayoverride) - addtimer(CALLBACK(src, .proc/prime), isnull(delayoverride)? det_time : delayoverride) + addtimer(CALLBACK(src, PROC_REF(prime)), isnull(delayoverride)? det_time : delayoverride) /obj/item/grenade/proc/prime() if(shrapnel_type && shrapnel_radius && !shrapnel_initialized) // add a second check for adding the component in case whatever triggered the grenade went straight to prime (badminnery for example) diff --git a/code/game/objects/items/grenades/plastic.dm b/code/game/objects/items/grenades/plastic.dm index 490c5c0aebaa..f3f891bad11d 100644 --- a/code/game/objects/items/grenades/plastic.dm +++ b/code/game/objects/items/grenades/plastic.dm @@ -109,7 +109,7 @@ target.add_overlay(plastic_overlay) to_chat(user, "You plant the bomb. Timer counting down from [det_time].") - addtimer(CALLBACK(src, .proc/prime), det_time*10) + addtimer(CALLBACK(src, PROC_REF(prime)), det_time*10) // X4 is an upgraded directional variant of c4 which is relatively safe to be standing next to. And much less safe to be standing on the other side of. // C4 is intended to be used for infiltration, and destroying tech. X4 is intended to be used for heavy breaching and tight spaces. diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm index 764bf8a61ccd..627f3298ccd4 100644 --- a/code/game/objects/items/handcuffs.dm +++ b/code/game/objects/items/handcuffs.dm @@ -240,7 +240,7 @@ update_appearance() var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) @@ -309,7 +309,7 @@ /obj/item/restraints/legcuffs/beartrap/energy/Initialize() . = ..() - addtimer(CALLBACK(src, .proc/dissipate), 100) + addtimer(CALLBACK(src, PROC_REF(dissipate)), 100) /obj/item/restraints/legcuffs/beartrap/energy/proc/dissipate() if(!ismob(loc)) diff --git a/code/game/objects/items/holy_weapons.dm b/code/game/objects/items/holy_weapons.dm index a1612fd7c4dd..a9f9e792c962 100644 --- a/code/game/objects/items/holy_weapons.dm +++ b/code/game/objects/items/holy_weapons.dm @@ -230,7 +230,7 @@ nullrod_icons += list(initial(rodtype.name) = image(icon = initial(rodtype.icon), icon_state = initial(rodtype.icon_state))) nullrod_icons = sortList(nullrod_icons) - var/choice = show_radial_menu(M, src , nullrod_icons, custom_check = CALLBACK(src, .proc/check_menu, M), radius = 42, require_near = TRUE) + var/choice = show_radial_menu(M, src , nullrod_icons, custom_check = CALLBACK(src, PROC_REF(check_menu), M), radius = 42, require_near = TRUE) if(!choice || !check_menu(M)) return diff --git a/code/game/objects/items/hot_potato.dm b/code/game/objects/items/hot_potato.dm index 915c7e36cc90..e3f21a70463e 100644 --- a/code/game/objects/items/hot_potato.dm +++ b/code/game/objects/items/hot_potato.dm @@ -139,7 +139,7 @@ ADD_TRAIT(src, TRAIT_NODROP, HOT_POTATO_TRAIT) name = "primed [name]" activation_time = timer + world.time - detonation_timerid = addtimer(CALLBACK(src, .proc/detonate), delay, TIMER_STOPPABLE) + detonation_timerid = addtimer(CALLBACK(src, PROC_REF(detonate)), delay, TIMER_STOPPABLE) START_PROCESSING(SSfastprocess, src) if(user) log_bomber(user, "has primed a", src, "for detonation (Timer:[delay],Explosive:[detonate_explosion],Range:[detonate_dev_range]/[detonate_heavy_range]/[detonate_light_range]/[detonate_fire_range])") diff --git a/code/game/objects/items/hourglass.dm b/code/game/objects/items/hourglass.dm index acfe971b0337..8dd464481a15 100644 --- a/code/game/objects/items/hourglass.dm +++ b/code/game/objects/items/hourglass.dm @@ -35,7 +35,7 @@ /obj/item/hourglass/proc/start() finish_time = world.time + time - timing_id = addtimer(CALLBACK(src, .proc/finish), time, TIMER_STOPPABLE) + timing_id = addtimer(CALLBACK(src, PROC_REF(finish)), time, TIMER_STOPPABLE) countdown.start() timing_animation() diff --git a/code/game/objects/items/implants/implant_stealth.dm b/code/game/objects/items/implants/implant_stealth.dm index d225e7180db8..893721e7a49b 100644 --- a/code/game/objects/items/implants/implant_stealth.dm +++ b/code/game/objects/items/implants/implant_stealth.dm @@ -33,7 +33,7 @@ /obj/structure/closet/cardboard/agent/proc/reveal() alpha = 255 - addtimer(CALLBACK(src, .proc/go_invisible), 10, TIMER_OVERRIDE|TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(go_invisible)), 10, TIMER_OVERRIDE|TIMER_UNIQUE) /obj/structure/closet/cardboard/agent/Bump(atom/A) . = ..() diff --git a/code/game/objects/items/implants/implantchair.dm b/code/game/objects/items/implants/implantchair.dm index e8122bd34263..504c07299c45 100644 --- a/code/game/objects/items/implants/implantchair.dm +++ b/code/game/objects/items/implants/implantchair.dm @@ -77,10 +77,10 @@ ready_implants-- if(!replenishing && auto_replenish) replenishing = TRUE - addtimer(CALLBACK(src,.proc/replenish),replenish_cooldown) + addtimer(CALLBACK(src, PROC_REF(replenish)),replenish_cooldown) if(injection_cooldown > 0) ready = FALSE - addtimer(CALLBACK(src,.proc/set_ready),injection_cooldown) + addtimer(CALLBACK(src, PROC_REF(set_ready)),injection_cooldown) else playsound(get_turf(src), 'sound/machines/buzz-sigh.ogg', 25, TRUE) update_appearance() diff --git a/code/game/objects/items/manuals.dm b/code/game/objects/items/manuals.dm index c0773b2032cf..da1906143abc 100644 --- a/code/game/objects/items/manuals.dm +++ b/code/game/objects/items/manuals.dm @@ -242,7 +242,7 @@ /obj/item/book/manual/trickwines_4_brewers name = "Trickwines for brewers" icon_state = "book2" - author = "Baxter Baxter" + author = "Bridget Saint-Baskett" title = "Trickwines for brewers" dat = {" @@ -262,7 +262,16 @@

Breakaway flasks

Honestly, I love these things. I'm not a scientist so I cant exactly explain how it works but somehow when you fuse plasma into glass it makes it ultra sharp and makes it really good for cracking over fauna heads.
The simplest way I have found of making them is crafting them with a chunk of glass, plasma, and a welder.
- I should note: trickwines don't seem to form without flasks. I think it's something to do with the plasma reacting with the mixture.
+ +

Bacteria

+ A speical speices of bacteria native to Illestren is what allows Trickwines form.
+ Now we use a special distiller that keeps just enough bacertia alive to ferment without turning the batch sour.
+ Now you should still have one on board but if you dont its fine.
+ It just so happens we have trees on board our ships host to the Bacteria.
+ To get enough Bacteria your going to need to feed it anything that would help a plant.
+ Water, Fertilizer, Ashwine are all good options.
+ Soon it will drops some apples and you can grind them for the bacteria.
+ Once you have enough you can fabricate it the same way you would a normal barrel.

Ashwine

It's kind of our trademark, and it's one of the simplest trickwines to make. The Montagnes love using this stuff in ceremonies as well so it should get you some good boy points.
@@ -285,11 +294,30 @@ It's a nice upper. Great if you're trying to run away.
This one's really flashy. Expect some severe burns on your target
-
Baxter Baxter, Senior Brewer
- P.S.: please stop asking how the uranium got into those flasks. +

Hearthwine

+ I once threw back a flask of this stuff in the heat of a really bad battle and it sealed my wounds within seconds its honestly increadible.
+ It also acts like the inverse of Icewine heating you up more then a fever.
+ Last time I threw it at someone though i almost burnt down the forest I was in.
+ Its made out of ground up fireblossems with some nice hard cider and a bit of welding fuel with of course a ratio of 3:1:1.
- - "} +

Forcewine

+ I once had a duel with a wizard and and I was able to completly ignore a few of his spells! Its like they just fizzled out when they hit me.
+ Would recomend for any esoteric senarios even though I have only been in a few of those.
+ You can also use it to entrap Fauna inside of a forcefield like bubble, Gives you time to breath and laugh at them.
+ 3:1:1 Tequila, Space Montain Wind, and I know its strange but hollow water, Its that stuff you can extract from geysers
+ +

Prismwine

+ Gives you a nice shiny layer of armour, fire seems to have alot harder time sticking to me when i tested it.
+ Throwing it seeems to do the reverse acting like a magnifying glass to burns and lasers
+ Made 3:1:1 with good ol Gin, then add plasma and tinea luxor which is found from mushroom stems
+ + Some of these can be a bit situatinal but its always nice to have a few in your bag for emergecys.
+ As a bonus, most of the other factions have no clue how to make these so you can sell them for a fair chunk of cash.
+ +
Bridget Saint-Baskett, Senior Brewer
+ + + "} // Wiki books that are linked to the configured wiki link. diff --git a/code/game/objects/items/pitchfork.dm b/code/game/objects/items/pitchfork.dm index 401007c824b0..05183ed479db 100644 --- a/code/game/objects/items/pitchfork.dm +++ b/code/game/objects/items/pitchfork.dm @@ -18,8 +18,8 @@ /obj/item/pitchfork/Initialize() . = ..() - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) /obj/item/pitchfork/ComponentInitialize() . = ..() diff --git a/code/game/objects/items/puzzle_pieces.dm b/code/game/objects/items/puzzle_pieces.dm index 2582f91860b2..f88df8429912 100644 --- a/code/game/objects/items/puzzle_pieces.dm +++ b/code/game/objects/items/puzzle_pieces.dm @@ -225,7 +225,7 @@ AddElement(/datum/element/undertile, tile_overlay = tile_overlay) //we remove use_anchor here, so it ALWAYS stays anchored var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm index 09e676980262..f12137df7531 100644 --- a/code/game/objects/items/robot/robot_items.dm +++ b/code/game/objects/items/robot/robot_items.dm @@ -367,7 +367,7 @@ if(charging) return if(candy < candymax) - addtimer(CALLBACK(src, .proc/charge_lollipops), charge_delay) + addtimer(CALLBACK(src, PROC_REF(charge_lollipops)), charge_delay) charging = TRUE /obj/item/borg/lollipop/proc/charge_lollipops() @@ -750,7 +750,7 @@ /obj/item/borg/apparatus/Initialize() . = ..() - RegisterSignal(loc.loc, COMSIG_BORG_SAFE_DECONSTRUCT, .proc/safedecon) + RegisterSignal(loc.loc, COMSIG_BORG_SAFE_DECONSTRUCT, PROC_REF(safedecon)) /obj/item/borg/apparatus/Destroy() if(stored) @@ -799,7 +799,7 @@ var/obj/item/O = A O.forceMove(src) stored = O - RegisterSignal(stored, COMSIG_ATOM_UPDATE_ICON, .proc/on_update_icon) + RegisterSignal(stored, COMSIG_ATOM_UPDATE_ICON, TYPE_PROC_REF(/atom, update_icon)) update_appearance() return else @@ -832,7 +832,7 @@ /obj/item/borg/apparatus/beaker/Initialize() . = ..() stored = new /obj/item/reagent_containers/glass/beaker/large(src) - RegisterSignal(stored, COMSIG_ATOM_UPDATE_ICON, .proc/on_update_icon) + RegisterSignal(stored, COMSIG_ATOM_UPDATE_ICON, TYPE_PROC_REF(/atom, update_icon)) update_appearance() /obj/item/borg/apparatus/beaker/Destroy() @@ -892,7 +892,7 @@ /obj/item/borg/apparatus/beaker/service/Initialize() . = ..() stored = new /obj/item/reagent_containers/food/drinks/drinkingglass(src) - RegisterSignal(stored, COMSIG_ATOM_UPDATE_ICON, .proc/on_update_icon) + RegisterSignal(stored, COMSIG_ATOM_UPDATE_ICON, TYPE_PROC_REF(/atom, update_icon)) update_appearance() //////////////////// diff --git a/code/game/objects/items/singularityhammer.dm b/code/game/objects/items/singularityhammer.dm index e2803060e4eb..04d7629623b5 100644 --- a/code/game/objects/items/singularityhammer.dm +++ b/code/game/objects/items/singularityhammer.dm @@ -19,8 +19,8 @@ /obj/item/singularityhammer/Initialize() . = ..() - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) START_PROCESSING(SSobj, src) /obj/item/singularityhammer/ComponentInitialize() @@ -103,8 +103,8 @@ /obj/item/mjollnir/Initialize() . = ..() - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) /obj/item/mjollnir/ComponentInitialize() . = ..() diff --git a/code/game/objects/items/spear.dm b/code/game/objects/items/spear.dm index e5ea0b1b8229..be6b9d3a5a14 100644 --- a/code/game/objects/items/spear.dm +++ b/code/game/objects/items/spear.dm @@ -52,8 +52,8 @@ /obj/item/spear/explosive/Initialize(mapload) . = ..() - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) set_explosive(new /obj/item/grenade/iedcasing/spawned()) //For admin-spawned explosive lances /obj/item/spear/explosive/ComponentInitialize() diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index 5ed78815b3f4..f4aff30791f8 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -303,7 +303,7 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list( SSblackbox.record_feedback("tally", "station_mess_created", 1, name) var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 041233b0d54a..00d793b6e1fb 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -41,6 +41,7 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ )), null, \ new/datum/stack_recipe("rack parts", /obj/item/rack_parts), \ + new/datum/stack_recipe("crate shelf parts", /obj/item/rack_parts/shelf), \ new/datum/stack_recipe_list("closets", list( new/datum/stack_recipe("closet", /obj/structure/closet, 2, time = 15, one_per_turf = TRUE, on_floor = TRUE), new/datum/stack_recipe("emergency closet", /obj/structure/closet/emcloset/empty, 2, time = 15, one_per_turf = TRUE, on_floor = TRUE), @@ -227,6 +228,7 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \ new/datum/stack_recipe("coffin", /obj/structure/closet/crate/coffin, 5, time = 15, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("book case", /obj/structure/bookcase, 4, time = 15, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("drying rack", /obj/machinery/smartfridge/drying_rack, 10, time = 15, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("sauna oven", /obj/structure/sauna_oven, 15, time = 15, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("wooden barrel", /obj/structure/fermenting_barrel, 8, time = 50, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("dog bed", /obj/structure/bed/dogbed, 10, time = 10, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("dresser", /obj/structure/dresser, 10, time = 15, one_per_turf = TRUE, on_floor = TRUE), \ @@ -277,6 +279,9 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \ . = ..() . += GLOB.wood_recipes +/obj/item/stack/sheet/mineral/wood/twentyfive + amount = 25 + /obj/item/stack/sheet/mineral/wood/fifty amount = 50 @@ -752,20 +757,6 @@ new /datum/stack_recipe("paper frame door", /obj/structure/mineral_door/paperfra /obj/item/stack/sheet/paperframes/fifty amount = 50 -/obj/item/stack/sheet/capitalisium - name = "capitalisium sheets" - singular_name = "capitalisium sheet" - desc = "A source of raw capitalism, capable of bringing forth the prophesized Capitalist Golem." - icon_state = "sheet-capitalisium" - merge_type = /obj/item/stack/sheet/capitalisium - -/obj/item/stack/sheet/stalinium - name = "stalinium sheets" - singular_name = "stalinium sheet" - desc = "A source of raw socialism, capable of bringing forth the prophesized Soviet Golem." - icon_state = "sheet-stalinium" - merge_type = /obj/item/stack/sheet/stalinium - /obj/item/stack/sheet/meat name = "meat sheets" desc = "Something's bloody meat compressed into a nice solid sheet." diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index ec750eb66aca..5653b641c99d 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -59,7 +59,7 @@ if(item_stack == src) continue if(can_merge(item_stack)) - INVOKE_ASYNC(src, .proc/merge_without_del, item_stack) + INVOKE_ASYNC(src, PROC_REF(merge_without_del), item_stack) if(is_zero_amount(delete_if_zero = FALSE)) return INITIALIZE_HINT_QDEL var/list/temp_recipes = get_main_recipes() @@ -75,7 +75,7 @@ update_appearance() var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_movable_entered_occupied_turf, + COMSIG_ATOM_ENTERED = PROC_REF(on_movable_entered_occupied_turf), ) AddElement(/datum/element/connect_loc, loc_connections) @@ -156,7 +156,7 @@ "res_amount" = R.res_amount, "max_res_amount" = R.max_res_amount, "req_amount" = R.req_amount, - "ref" = "\ref[R]", + "ref" = text_ref(R), ) /** @@ -443,7 +443,7 @@ return if(!arrived.throwing && can_merge(arrived)) - INVOKE_ASYNC(src, .proc/merge, arrived) + INVOKE_ASYNC(src, PROC_REF(merge), arrived) /obj/item/stack/hitby(atom/movable/hitting, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) if(can_merge(hitting, TRUE)) diff --git a/code/game/objects/items/stacks/tape.dm b/code/game/objects/items/stacks/tape.dm index 5aa42bb0b4c6..92fe31d32a98 100644 --- a/code/game/objects/items/stacks/tape.dm +++ b/code/game/objects/items/stacks/tape.dm @@ -152,11 +152,11 @@ if(C == user) playsound(loc, usesound, 30, TRUE, -2) user.visible_message("[user] starts to apply \the [src] on [user.p_them()]self...", "You begin applying \the [src] on yourself...") - if(!do_mob(user, C, self_delay, extra_checks=CALLBACK(C, /mob/living/proc/can_inject, user, TRUE))) + if(!do_mob(user, C, self_delay, extra_checks=CALLBACK(C, TYPE_PROC_REF(/mob/living, can_inject), user, TRUE))) return else if(other_delay) user.visible_message("[user] starts to apply \the [src] on [C].", "You begin applying \the [src] on [C]...") - if(!do_mob(user, C, other_delay, extra_checks=CALLBACK(C, /mob/living/proc/can_inject, user, TRUE))) + if(!do_mob(user, C, other_delay, extra_checks=CALLBACK(C, TYPE_PROC_REF(/mob/living, can_inject), user, TRUE))) return if(heal(C, user)) diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index 05321933bfe2..300b5a9461b3 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -80,7 +80,7 @@ STR.max_combined_w_class = 60 /obj/item/storage/backpack/santabag/proc/regenerate_presents() - addtimer(CALLBACK(src, .proc/regenerate_presents), 30 SECONDS) + addtimer(CALLBACK(src, PROC_REF(regenerate_presents)), 30 SECONDS) var/mob/M = get(loc, /mob) if(!istype(M)) @@ -671,10 +671,9 @@ new /obj/item/grenade/c4/x4(src) /obj/item/storage/backpack/duffelbag/syndie/firestarter - desc = "A large duffel bag containing a New Russian pyro backpack sprayer, Elite hardsuit, a Stechkin APS pistol, minibomb, ammo, and other equipment." + desc = "A large duffel bag containing a pyro backpack sprayer, Elite hardsuit, a Stechkin APS pistol, minibomb, ammo, and other equipment." /obj/item/storage/backpack/duffelbag/syndie/firestarter/PopulateContents() - new /obj/item/clothing/under/syndicate/soviet(src) new /obj/item/watertank/op(src) new /obj/item/clothing/suit/space/hardsuit/syndi/elite(src) new /obj/item/gun/ballistic/automatic/pistol/APS(src) diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm index 910ea174c3a6..dc3d2deff0ba 100644 --- a/code/game/objects/items/storage/bags.dm +++ b/code/game/objects/items/storage/bags.dm @@ -119,7 +119,7 @@ return if(listeningTo) UnregisterSignal(listeningTo, COMSIG_MOVABLE_MOVED) - RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/Pickup_ores) + RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(Pickup_ores)) listeningTo = user /obj/item/storage/bag/ore/dropped() @@ -335,7 +335,7 @@ SEND_SIGNAL(src, COMSIG_TRY_STORAGE_QUICK_EMPTY) // Make each item scatter a bit for(var/obj/item/I in oldContents) - INVOKE_ASYNC(src, .proc/do_scatter, I) + INVOKE_ASYNC(src, PROC_REF(do_scatter), I) if(prob(50)) playsound(M, 'sound/items/trayhit1.ogg', 50, TRUE) diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index 98fa24e97379..9e8d4e94745c 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -934,7 +934,7 @@ /obj/item/storage/box/papersack/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/pen)) - var/choice = show_radial_menu(user, src , papersack_designs, custom_check = CALLBACK(src, .proc/check_menu, user, W), radius = 36, require_near = TRUE) + var/choice = show_radial_menu(user, src , papersack_designs, custom_check = CALLBACK(src, PROC_REF(check_menu), user, W), radius = 36, require_near = TRUE) if(!choice) return FALSE if(icon_state == "paperbag_[choice]") diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm index e494392ee911..4b91fc6caae3 100644 --- a/code/game/objects/items/stunbaton.dm +++ b/code/game/objects/items/stunbaton.dm @@ -47,7 +47,7 @@ else cell = new preload_cell_type(src) update_appearance() - RegisterSignal(src, COMSIG_PARENT_ATTACKBY, .proc/convert) + RegisterSignal(src, COMSIG_PARENT_ATTACKBY, PROC_REF(convert)) /obj/item/melee/baton/Destroy() @@ -223,7 +223,7 @@ L.apply_damage(stamina_loss_amt, STAMINA, BODY_ZONE_CHEST) SEND_SIGNAL(L, COMSIG_LIVING_MINOR_SHOCK) - addtimer(CALLBACK(src, .proc/apply_stun_effect_end, L), apply_stun_delay) + addtimer(CALLBACK(src, PROC_REF(apply_stun_effect_end), L), apply_stun_delay) if(user) L.lastattacker = user.real_name @@ -324,7 +324,7 @@ baton_effect(hit_atom) var/mob/thrown_by = thrownby?.resolve() if(thrown_by && !caught) - addtimer(CALLBACK(src, /atom/movable.proc/throw_at, thrown_by, throw_range+2, throw_speed, null, TRUE), 1) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/movable, throw_at), thrown_by, throw_range+2, throw_speed, null, TRUE), 1) else return ..() diff --git a/code/game/objects/items/tanks/jetpack.dm b/code/game/objects/items/tanks/jetpack.dm index 046439551291..b8f4451a9660 100644 --- a/code/game/objects/items/tanks/jetpack.dm +++ b/code/game/objects/items/tanks/jetpack.dm @@ -60,8 +60,8 @@ on = TRUE icon_state = "[initial(icon_state)]-on" ion_trail.start() - RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/move_react) - RegisterSignal(user, COMSIG_MOVABLE_PRE_MOVE, .proc/pre_move_react) + RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(move_react)) + RegisterSignal(user, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(pre_move_react)) if(full_speed) user.add_movespeed_modifier(/datum/movespeed_modifier/jetpack/fullspeed) diff --git a/code/game/objects/items/tanks/watertank.dm b/code/game/objects/items/tanks/watertank.dm index 0f4f5adee562..4095d159ea82 100644 --- a/code/game/objects/items/tanks/watertank.dm +++ b/code/game/objects/items/tanks/watertank.dm @@ -305,7 +305,7 @@ var/obj/effect/particle_effect/foam/metal/resin/F = new (get_turf(target)) F.amount = 0 metal_synthesis_cooldown++ - addtimer(CALLBACK(src, .proc/reduce_metal_synth_cooldown), 10 SECONDS) + addtimer(CALLBACK(src, PROC_REF(reduce_metal_synth_cooldown)), 10 SECONDS) else to_chat(user, "Resin foam mix is still being synthesized...") return @@ -426,7 +426,7 @@ //Operator backpack spray /obj/item/watertank/op name = "backpack water tank" - desc = "A New Russian backpack spray for systematic cleansing of carbon lifeforms." + desc = "A backpack spray for systematic cleansing of carbon lifeforms." icon_state = "waterbackpackop" item_state = "waterbackpackop" w_class = WEIGHT_CLASS_NORMAL diff --git a/code/game/objects/items/teleportation.dm b/code/game/objects/items/teleportation.dm index 5b07c40f6f21..efdeafd99cfb 100644 --- a/code/game/objects/items/teleportation.dm +++ b/code/game/objects/items/teleportation.dm @@ -184,8 +184,8 @@ var/list/obj/effect/portal/created = create_portal_pair(current_location, get_teleport_turf(current_location, get_turf(T), 0, FALSE), 300, 1, null, atmos_link_override) if(!(LAZYLEN(created) == 2)) return - RegisterSignal(created[1], COMSIG_PARENT_QDELETING, .proc/on_portal_destroy) //Gosh darn it kevinz. - RegisterSignal(created[2], COMSIG_PARENT_QDELETING, .proc/on_portal_destroy) + RegisterSignal(created[1], COMSIG_PARENT_QDELETING, PROC_REF(on_portal_destroy)) //Gosh darn it kevinz. + RegisterSignal(created[2], COMSIG_PARENT_QDELETING, PROC_REF(on_portal_destroy)) var/obj/effect/portal/c1 = created[1] var/obj/effect/portal/c2 = created[2] var/turf/check_turf = get_turf(get_step(user, user.dir)) diff --git a/code/game/objects/items/theft_tools.dm b/code/game/objects/items/theft_tools.dm index cb6b8d3abe9f..fd9b3859cd3b 100644 --- a/code/game/objects/items/theft_tools.dm +++ b/code/game/objects/items/theft_tools.dm @@ -57,7 +57,7 @@ core = ncore icon_state = "core_container_loaded" to_chat(user, "Container is sealing...") - addtimer(CALLBACK(src, .proc/seal), 50) + addtimer(CALLBACK(src, PROC_REF(seal)), 50) return TRUE /obj/item/nuke_core_container/proc/seal() @@ -175,7 +175,7 @@ T.icon_state = "supermatter_tongs" icon_state = "core_container_loaded" to_chat(user, "Container is sealing...") - addtimer(CALLBACK(src, .proc/seal), 50) + addtimer(CALLBACK(src, PROC_REF(seal)), 50) return TRUE /obj/item/nuke_core_container/supermatter/seal() diff --git a/code/game/objects/items/toy_mechs.dm b/code/game/objects/items/toy_mechs.dm index 2cbe3e81b1ef..2a821c7a8317 100644 --- a/code/game/objects/items/toy_mechs.dm +++ b/code/game/objects/items/toy_mechs.dm @@ -179,7 +179,7 @@ to_chat(user, "You offer battle to [target.name]!") to_chat(target, "[user.name] wants to battle with [user.p_their()] [name]! Attack them with a toy mech to initiate combat.") wants_to_battle = TRUE - addtimer(CALLBACK(src, .proc/withdraw_offer, user), 6 SECONDS) + addtimer(CALLBACK(src, PROC_REF(withdraw_offer), user), 6 SECONDS) return ..() diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 0046ece63058..a4ec930ec0e2 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -359,7 +359,7 @@ active = TRUE playsound(src, 'sound/effects/pope_entry.ogg', 100) Rumble() - addtimer(CALLBACK(src, .proc/stopRumble), 600) + addtimer(CALLBACK(src, PROC_REF(stopRumble)), 600) else to_chat(user, "[src] is already active!") @@ -436,7 +436,7 @@ /obj/item/toy/snappop/Initialize() . = ..() var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) @@ -475,7 +475,7 @@ /obj/effect/decal/cleanable/ash/snappop_phoenix/Initialize() . = ..() - addtimer(CALLBACK(src, .proc/respawn), respawn_time) + addtimer(CALLBACK(src, PROC_REF(respawn)), respawn_time) /obj/effect/decal/cleanable/ash/snappop_phoenix/proc/respawn() new /obj/item/toy/snappop/phoenix(get_turf(src)) @@ -504,7 +504,7 @@ activation_message(user) playsound(loc, 'sound/machines/click.ogg', 20, TRUE) - INVOKE_ASYNC(src, .proc/do_toy_talk, user) + INVOKE_ASYNC(src, PROC_REF(do_toy_talk), user) cooldown = TRUE addtimer(VARSET_CALLBACK(src, cooldown, FALSE), recharge_time) @@ -1031,7 +1031,7 @@ if(!M.stat && !isAI(M)) // Checks to make sure whoever's getting shaken is alive/not the AI // Short delay to match up with the explosion sound // Shakes player camera 2 squares for 1 second. - addtimer(CALLBACK(GLOBAL_PROC, .proc/shake_camera, M, 2, 1), 0.8 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(shake_camera), M, 2, 1), 0.8 SECONDS) else to_chat(user, "Nothing happens.") @@ -1425,7 +1425,7 @@ if(cooldown <= world.time) cooldown = (world.time + 300) user.visible_message("[user] adjusts the dial on [src].") - addtimer(CALLBACK(GLOBAL_PROC, .proc/playsound, src, 'sound/items/radiostatic.ogg', 50, FALSE), 0.5 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), src, 'sound/items/radiostatic.ogg', 50, FALSE), 0.5 SECONDS) else to_chat(user, "The dial on [src] jams up") return @@ -1440,4 +1440,4 @@ /obj/item/toy/braintoy/attack_self(mob/user) if(cooldown <= world.time) cooldown = (world.time + 10) - addtimer(CALLBACK(GLOBAL_PROC, .proc/playsound, src, 'sound/effects/blobattack.ogg', 50, FALSE), 0.5 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), src, 'sound/effects/blobattack.ogg', 50, FALSE), 0.5 SECONDS) diff --git a/code/game/objects/items/wayfinding.dm b/code/game/objects/items/wayfinding.dm index 0fc80de2759d..848ade225ce2 100644 --- a/code/game/objects/items/wayfinding.dm +++ b/code/game/objects/items/wayfinding.dm @@ -113,7 +113,7 @@ deltimer(expression_timer) add_overlay(type) if(duration) - expression_timer = addtimer(CALLBACK(src, .proc/set_expression, "neutral"), duration, TIMER_STOPPABLE) + expression_timer = addtimer(CALLBACK(src, PROC_REF(set_expression), "neutral"), duration, TIMER_STOPPABLE) /obj/machinery/pinpointer_dispenser/proc/pointat(atom) visible_message("[src] points at [atom].") diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index d6955ff244ba..7749f6d50274 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -515,7 +515,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 /obj/item/statuebust/Initialize() . = ..() AddComponent(/datum/component/art, impressiveness) - addtimer(CALLBACK(src, /datum.proc/_AddComponent, list(/datum/component/beauty, 1000)), 0) + addtimer(CALLBACK(src, TYPE_PROC_REF(/datum, _AddComponent), list(/datum/component/beauty, 1000)), 0) /obj/item/statuebust/hippocratic name = "hippocrates bust" @@ -760,8 +760,8 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 /obj/item/vibro_weapon/Initialize() . = ..() - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) /obj/item/vibro_weapon/ComponentInitialize() . = ..() diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm index 61acce5c9d0a..78cfa10a2e0b 100644 --- a/code/game/objects/obj_defense.dm +++ b/code/game/objects/obj_defense.dm @@ -68,13 +68,13 @@ if(3) take_damage(rand(10, 90), BRUTE, "bomb", 0) -/obj/bullet_act(obj/projectile/P) +/obj/bullet_act(obj/projectile/hitting_projectile) . = ..() - playsound(src, P.hitsound, 50, TRUE) - if(P.suppressed != SUPPRESSED_VERY) - visible_message("[src] is hit by \a [P]!", null, null, COMBAT_MESSAGE_RANGE) + bullet_hit_sfx(hitting_projectile) + if(hitting_projectile.suppressed != SUPPRESSED_VERY) + visible_message("[src] is hit by \a [hitting_projectile]!", null, null, COMBAT_MESSAGE_RANGE) if(!QDELETED(src)) //Bullet on_hit effect might have already destroyed this object - take_damage(P.damage, P.damage_type, P.flag, 0, turn(P.dir, 180), P.armour_penetration) + take_damage(hitting_projectile.damage, hitting_projectile.damage_type, hitting_projectile.flag, 0, turn(hitting_projectile.dir, 180), hitting_projectile.armour_penetration) ///Called to get the damage that hulks will deal to the obj. /obj/proc/hulk_damage() @@ -233,7 +233,7 @@ GLOBAL_DATUM_INIT(acid_overlay, /mutable_appearance, mutable_appearance('icons/e if(QDELETED(src)) return 0 obj_flags |= BEING_SHOCKED - addtimer(CALLBACK(src, .proc/reset_shocked), 10) + addtimer(CALLBACK(src, PROC_REF(reset_shocked)), 10) return power / 2 //The surgeon general warns that being buckled to certain objects receiving powerful shocks is greatly hazardous to your health diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index d2d1325e435b..46090aa86658 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -219,7 +219,7 @@ if(machine) unset_machine() machine = O - RegisterSignal(O, COMSIG_PARENT_QDELETING, .proc/unset_machine) + RegisterSignal(O, COMSIG_PARENT_QDELETING, PROC_REF(unset_machine)) if(istype(O)) O.obj_flags |= IN_USE @@ -352,7 +352,7 @@ items += list("[reskin_option]" = item_image) sortList(items) - var/pick = show_radial_menu(M, src, items, custom_check = CALLBACK(src, .proc/check_reskin_menu, M), radius = 38, require_near = TRUE) + var/pick = show_radial_menu(M, src, items, custom_check = CALLBACK(src, PROC_REF(check_reskin_menu), M), radius = 38, require_near = TRUE) if(!pick) return if(!unique_reskin[pick]) diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm index c0198939c24a..69efcd42af15 100644 --- a/code/game/objects/structures.dm +++ b/code/game/objects/structures.dm @@ -7,6 +7,8 @@ flags_ricochet = RICOCHET_HARD ricochet_chance_mod = 0.5 + hitsound_type = PROJECTILE_HITSOUND_METAL + var/climb_time = 20 var/climbable = FALSE var/mob/living/structureclimber diff --git a/code/game/objects/structures/barsigns.dm b/code/game/objects/structures/barsigns.dm index f489e774dd92..65d83e9ce406 100644 --- a/code/game/objects/structures/barsigns.dm +++ b/code/game/objects/structures/barsigns.dm @@ -297,6 +297,16 @@ icon = "goose" desc = "Drink till you puke and/or break the laws of reality!" +/datum/barsign/dustydunesaloon + name = "Dusty Dune Saloon" + icon = "saloon" + desc = "The perfect place to get trashed then get killed in a shootout" + +/datum/barsign/birdsnest + name = "Bird's Nest ♡" + icon = "birdsnest" + desc = "It is NOT what you're thinking it is." + /datum/barsign/hiddensigns hidden = TRUE diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm index 7badc7a3795b..d90b1846a4f0 100644 --- a/code/game/objects/structures/beds_chairs/chair.dm +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -23,7 +23,7 @@ /obj/structure/chair/ComponentInitialize() . = ..() - AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE, CALLBACK(src, .proc/can_user_rotate),CALLBACK(src, .proc/can_be_rotated),null) + AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE, CALLBACK(src, PROC_REF(can_user_rotate)),CALLBACK(src, PROC_REF(can_be_rotated)),null) /obj/structure/chair/proc/can_be_rotated(mob/user) return TRUE @@ -448,7 +448,7 @@ Mob.pixel_y += 2 .=..() if(iscarbon(Mob)) - INVOKE_ASYNC(src, .proc/snap_check, Mob) + INVOKE_ASYNC(src, PROC_REF(snap_check), Mob) /obj/structure/chair/plastic/post_unbuckle_mob(mob/living/Mob) Mob.pixel_y -= 2 diff --git a/code/game/objects/structures/beds_chairs/pew.dm b/code/game/objects/structures/beds_chairs/pew.dm index b7aa1f65d2bd..8e5cf9a19493 100644 --- a/code/game/objects/structures/beds_chairs/pew.dm +++ b/code/game/objects/structures/beds_chairs/pew.dm @@ -9,6 +9,8 @@ buildstackamount = 3 item_chair = null + hitsound_type = PROJECTILE_HITSOUND_WOOD + /obj/structure/chair/pew/left name = "left wooden pew end" icon_state = "pewend_left" diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 788fc28a51c6..417a1f8d86a6 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -52,7 +52,7 @@ if(populate) PopulateContents() - RegisterSignal(src, COMSIG_ATOM_CANREACH, .proc/canreach_react) + RegisterSignal(src, COMSIG_ATOM_CANREACH, PROC_REF(canreach_react)) /obj/structure/closet/LateInitialize() take_contents(src) diff --git a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm index b6a80ee51978..a5d7531b0aa8 100644 --- a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm +++ b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm @@ -27,7 +27,7 @@ var/oldloc = loc step(src, direction) if(oldloc != loc) - addtimer(CALLBACK(src, .proc/ResetMoveDelay), CONFIG_GET(number/movedelay/walk_delay) * move_speed_multiplier) + addtimer(CALLBACK(src, PROC_REF(ResetMoveDelay)), CONFIG_GET(number/movedelay/walk_delay) * move_speed_multiplier) else move_delay = FALSE diff --git a/code/game/objects/structures/crates_lockers/closets/gimmick.dm b/code/game/objects/structures/crates_lockers/closets/gimmick.dm index f0bb77af8bb2..cfea37148e55 100644 --- a/code/game/objects/structures/crates_lockers/closets/gimmick.dm +++ b/code/game/objects/structures/crates_lockers/closets/gimmick.dm @@ -20,17 +20,6 @@ desc = "It's a storage unit for things that have no right being here." icon_state = "syndicate" -/obj/structure/closet/gimmick/russian - name = "\improper Russian surplus closet" - desc = "It's a storage unit for Russian standard-issue surplus." - -/obj/structure/closet/gimmick/russian/PopulateContents() - ..() - for(var/i in 1 to 5) - new /obj/item/clothing/head/trapper(src) - for(var/i in 1 to 5) - new /obj/item/clothing/under/costume/soviet(src) - /obj/structure/closet/gimmick/tacticool name = "tacticool gear closet" desc = "It's a storage unit for Tacticool gear." diff --git a/code/game/objects/structures/crates_lockers/closets/infinite.dm b/code/game/objects/structures/crates_lockers/closets/infinite.dm index ef471d66db75..8657b764b9bb 100644 --- a/code/game/objects/structures/crates_lockers/closets/infinite.dm +++ b/code/game/objects/structures/crates_lockers/closets/infinite.dm @@ -26,7 +26,7 @@ /obj/structure/closet/infinite/open(mob/living/user, force = FALSE) . = ..() if(. && auto_close_time) - addtimer(CALLBACK(src, .proc/close_on_my_own), auto_close_time, TIMER_OVERRIDE) + addtimer(CALLBACK(src, PROC_REF(close_on_my_own)), auto_close_time, TIMER_OVERRIDE) /obj/structure/closet/infinite/proc/close_on_my_own() if(close()) 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 c9d65880946c..27a9e423110b 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -26,7 +26,7 @@ new /obj/item/clothing/under/rank/command/captain/parade(src) new /obj/item/clothing/suit/armor/vest/capcarapace/alt(src) new /obj/item/clothing/head/caphat/parade(src) - new /obj/item/clothing/suit/captunic(src) + new /obj/item/clothing/suit/armor/vest/capcarapace/captunic(src) new /obj/item/clothing/head/crown/fancy(src) new /obj/item/cartridge/captain(src) new /obj/item/storage/box/silver_ids(src) @@ -414,7 +414,7 @@ new /obj/item/clothing/shoes/jackboots(src) new /obj/item/clothing/head/beret/lt(src) new /obj/item/clothing/head/beret/black(src) - new /obj/item/clothing/under/rank/command/lieutenant(src) - new /obj/item/clothing/under/rank/command/lieutenant/skirt(src) - new /obj/item/clothing/under/rank/command/lieutenant/nt(src) - new /obj/item/clothing/under/rank/command/lieutenant/nt/skirt(src) + new /obj/item/clothing/under/rank/command(src) + new /obj/item/clothing/under/rank/command/skirt(src) + new /obj/item/clothing/under/rank/command/nt(src) + new /obj/item/clothing/under/rank/command/nt/skirt(src) diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index 70b61cfa8d08..e2430be999b6 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -45,11 +45,27 @@ . += "manifest" /obj/structure/closet/crate/attack_hand(mob/user) - . = ..() - if(.) - return + if(istype(src.loc, /obj/structure/crate_shelf)) + return FALSE // No opening crates in shelves!! if(manifest) tear_manifest(user) + return ..() + +/obj/structure/closet/crate/MouseDrop(atom/drop_atom, src_location, over_location) + . = ..() + var/mob/living/user = usr + if(!isliving(user)) + return // Ghosts busted. + if(!isturf(user.loc) || user.incapacitated() || user.body_position == LYING_DOWN) + return // If the user is in a weird state, don't bother trying. + if(get_dist(drop_atom, src) != 1 || get_dist(drop_atom, user) != 1) + return // Check whether the crate is exactly 1 tile from the shelf and the user. + if(istype(drop_atom, /turf/open) && istype(loc, /obj/structure/crate_shelf) && user.Adjacent(drop_atom)) + var/obj/structure/crate_shelf/shelf = loc + return shelf.unload(src, user, drop_atom) // If we're being dropped onto a turf, and we're inside of a crate shelf, unload. + if(istype(drop_atom, /obj/structure/crate_shelf) && isturf(loc) && user.Adjacent(src)) + var/obj/structure/crate_shelf/shelf = drop_atom + return shelf.load(src, user) // If we're being dropped onto a crate shelf, and we're in a turf, load. /obj/structure/closet/crate/open(mob/living/user, force = FALSE) . = ..() @@ -262,3 +278,17 @@ icon_state = "chemcrate" material_drop = /obj/item/stack/sheet/mineral/gold material_drop_amount = 1 + +/obj/structure/closet/crate/eva + name = "EVA crate" + +/obj/structure/closet/crate/eva/PopulateContents() + ..() + for(var/i in 1 to 3) + new /obj/item/clothing/suit/space/eva(src) + for(var/i in 1 to 3) + new /obj/item/clothing/head/helmet/space/eva(src) + for(var/i in 1 to 3) + new /obj/item/clothing/mask/breath(src) + for(var/i in 1 to 3) + new /obj/item/tank/internals/oxygen(src) diff --git a/code/game/objects/structures/crates_lockers/crates/bins.dm b/code/game/objects/structures/crates_lockers/crates/bins.dm index 26335320c2b3..f895ad7421c7 100644 --- a/code/game/objects/structures/crates_lockers/crates/bins.dm +++ b/code/game/objects/structures/crates_lockers/crates/bins.dm @@ -37,7 +37,7 @@ /obj/structure/closet/crate/bin/proc/do_animate() playsound(loc, open_sound, 15, TRUE, -3) flick("animate_largebins", src) - addtimer(CALLBACK(src, .proc/do_close), 13) + addtimer(CALLBACK(src, PROC_REF(do_close)), 13) /obj/structure/closet/crate/bin/proc/do_close() playsound(loc, close_sound, 15, TRUE, -3) diff --git a/code/game/objects/structures/crateshelf.dm b/code/game/objects/structures/crateshelf.dm new file mode 100644 index 000000000000..1ede60f12e22 --- /dev/null +++ b/code/game/objects/structures/crateshelf.dm @@ -0,0 +1,139 @@ +#define DEFAULT_SHELF_CAPACITY 3 // Default capacity of the shelf +#define DEFAULT_SHELF_USE_DELAY 1 SECONDS // Default interaction delay of the shelf +#define DEFAULT_SHELF_VERTICAL_OFFSET 10 // Vertical pixel offset of shelving-related things. Set to 10 by default due to this leaving more of the crate on-screen to be clicked. + +/obj/structure/crate_shelf + name = "crate shelf" + desc = "It's a shelf! For storing crates!" + icon = 'icons/obj/objects.dmi' + icon_state = "shelf_base" + density = TRUE + anchored = TRUE + max_integrity = 50 // Not hard to break + + var/capacity = DEFAULT_SHELF_CAPACITY + var/use_delay = DEFAULT_SHELF_USE_DELAY + var/list/shelf_contents + +/obj/structure/crate_shelf/tall + capacity = 12 + +/obj/structure/crate_shelf/Initialize() + . = ..() + shelf_contents = new/list(capacity) // Initialize our shelf's contents list, this will be used later. + var/stack_layer // This is used to generate the sprite layering of the shelf pieces. + var/stack_offset // This is used to generate the vertical offset of the shelf pieces. + for(var/i in 1 to (capacity - 1)) + stack_layer = BELOW_OBJ_LAYER + (0.02 * i) - 0.01 // Make each shelf piece render above the last, but below the crate that should be on it. + stack_offset = DEFAULT_SHELF_VERTICAL_OFFSET * i // Make each shelf piece physically above the last. + overlays += image(icon = 'icons/obj/objects.dmi', icon_state = "shelf_stack", layer = stack_layer, pixel_y = stack_offset) + return + +/obj/structure/crate_shelf/Destroy() + QDEL_LIST(shelf_contents) + return ..() + +/obj/structure/crate_shelf/examine(mob/user) + . = ..() + . += "There are some bolts holding [src] together." + if(shelf_contents.Find(null)) // If there's an empty space in the shelf, let the examiner know. + . += "You could drag a crate into [src]." + if(contents.len) // If there are any crates in the shelf, let the examiner know. + . += "You could drag a crate out of [src]." + . += "[src] contains:" + for(var/obj/structure/closet/crate/crate in shelf_contents) + . += " [icon2html(crate, user)] [crate]" + +/obj/structure/crate_shelf/attackby(obj/item/item, mob/living/user, params) + if (item.tool_behaviour == TOOL_WRENCH && !(flags_1&NODECONSTRUCT_1)) + item.play_tool_sound(src) + if(do_after(user, 3 SECONDS, target = src)) + deconstruct(TRUE) + return TRUE + return ..() + +/obj/structure/crate_shelf/relay_container_resist_act(mob/living/user, obj/structure/closet/crate) + to_chat(user, "You begin attempting to knock [crate] out of [src].") + if(do_after(user, 30 SECONDS, target = crate)) + if(!user || user.stat != CONSCIOUS || user.loc != crate || crate.loc != src) + return // If the user is in a strange condition, return early. + visible_message("[crate] falls off of [src]!", + "You manage to knock [crate] free of [src].", + "[crate]'s lid falls open!") + else // If we somehow fail to open the crate, just break it instead! + crate.visible_message("[crate] falls apart!") + crate.deconstruct() + if(3) // Break that crate! + crate.visible_message("[crate] falls apart!") + crate.deconstruct() + shelf_contents[shelf_contents.Find(crate)] = null + if(!(flags_1&NODECONSTRUCT_1)) + density = FALSE + var/obj/item/rack_parts/shelf/newparts = new(loc) + transfer_fingerprints_to(newparts) + return ..() + +/obj/item/rack_parts/shelf + name = "crate shelf parts" + desc = "Parts of a shelf." + construction_type = /obj/structure/crate_shelf diff --git a/code/game/objects/structures/divine.dm b/code/game/objects/structures/divine.dm index f5e50fc57d06..874392a2b9dd 100644 --- a/code/game/objects/structures/divine.dm +++ b/code/game/objects/structures/divine.dm @@ -41,7 +41,7 @@ to_chat(user, "The water feels warm and soothing as you touch it. The fountain immediately dries up shortly afterwards.") user.reagents.add_reagent(/datum/reagent/medicine/omnizine/godblood,20) update_appearance() - addtimer(CALLBACK(src, /atom/.proc/update_appearance), time_between_uses) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_appearance)), time_between_uses) /obj/structure/healingfountain/update_icon_state() diff --git a/code/game/objects/structures/dresser.dm b/code/game/objects/structures/dresser.dm index 700d55361d90..ebfda776726f 100644 --- a/code/game/objects/structures/dresser.dm +++ b/code/game/objects/structures/dresser.dm @@ -6,6 +6,8 @@ density = TRUE anchored = TRUE + hitsound_type = PROJECTILE_HITSOUND_WOOD + /obj/structure/dresser/attackby(obj/item/I, mob/user, params) if(I.tool_behaviour == TOOL_WRENCH) to_chat(user, "You begin to [anchored ? "unwrench" : "wrench"] [src].") diff --git a/code/game/objects/structures/electricchair.dm b/code/game/objects/structures/electricchair.dm index a5235f461a4f..b2928d361d11 100644 --- a/code/game/objects/structures/electricchair.dm +++ b/code/game/objects/structures/electricchair.dm @@ -42,7 +42,7 @@ var/mob/living/buckled_mob = m buckled_mob.electrocute_act(85, src, 1) to_chat(buckled_mob, "You feel a deep shock course through your body!") - addtimer(CALLBACK(buckled_mob, /mob/living.proc/electrocute_act, 85, src, 1), 1) + addtimer(CALLBACK(buckled_mob, TYPE_PROC_REF(/mob/living, electrocute_act), 85, src, 1), 1) visible_message("The electric chair went off!", "You hear a deep sharp shock!") /obj/structure/chair/e_chair/post_buckle_mob(mob/living/L) diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index 1bd6325e60a5..a0097504c1d3 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -49,7 +49,7 @@ continue opening = FALSE return - addtimer(CALLBACK(src, /obj/structure/falsewall/proc/toggle_open), 5) + addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/structure/falsewall, toggle_open)), 5) /obj/structure/falsewall/proc/toggle_open() if(!QDELETED(src)) diff --git a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm index 2c56b9d7a095..50b578a3aee2 100644 --- a/code/game/objects/structures/flora.dm +++ b/code/game/objects/structures/flora.dm @@ -3,6 +3,8 @@ max_integrity = 40 anchored = TRUE + hitsound_type = PROJECTILE_HITSOUND_NON_LIVING + /obj/structure/flora/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) switch(damage_type) if(BRUTE) @@ -22,6 +24,8 @@ layer = FLY_LAYER var/log_amount = 10 + hitsound_type = PROJECTILE_HITSOUND_WOOD + /obj/structure/flora/tree/ComponentInitialize() . = ..() AddComponent(/datum/component/largetransparency) @@ -52,6 +56,8 @@ density = FALSE pixel_x = -16 + hitsound_type = PROJECTILE_HITSOUND_WOOD + /obj/structure/flora/tree/pine name = "pine tree" desc = "A coniferous pine tree." @@ -362,7 +368,7 @@ /obj/item/kirbyplants/ComponentInitialize() . = ..() AddComponent(/datum/component/tactical) - addtimer(CALLBACK(src, /datum.proc/_AddComponent, list(/datum/component/beauty, 500)), 0) + addtimer(CALLBACK(src, TYPE_PROC_REF(/datum, _AddComponent), list(/datum/component/beauty, 500)), 0) AddComponent(/datum/component/two_handed, require_twohands=TRUE, force_unwielded=10, force_wielded=10) /obj/item/kirbyplants/random @@ -370,6 +376,8 @@ icon_state = "random_plant" var/list/static/states + hitsound_type = PROJECTILE_HITSOUND_STONE + /obj/item/kirbyplants/random/Initialize() . = ..() icon = 'icons/obj/flora/plants.dmi' @@ -424,6 +432,8 @@ max_integrity = 100 var/obj/item/stack/mineResult = /obj/item/stack/ore/glass/basalt + hitsound_type = PROJECTILE_HITSOUND_STONE + /obj/structure/flora/rock/Initialize() . = ..() icon_state = "[base_icon_state][rand(1,3)]" @@ -525,201 +535,6 @@ . = ..() icon_state = "[initial(icon_state)][rand(1,3)]" -// Special tree used in chapel ship -/obj/structure/flora/tree/chapel - name = "sacred oak tree" - icon = 'icons/obj/flora/chapeltree.dmi' - icon_state = "churchtree" - desc = "A true earthen oak tree imported directly from the holy soil of earth. It's radiates a spiritual warmth that calms the soul." - pixel_x = -16 - max_integrity = 200 - bound_height = 64 - var/karma = 0 - var/mojorange = 4 - var/lastcycle = 0 - // Determines the karma gained/lost when feeding the tree this chem - var/list/moralchems = list( - /datum/reagent/water = 0.1, - /datum/reagent/plantnutriment = 0.2, - /datum/reagent/medicine/earthsblood = 1, - /datum/reagent/water/holywater = 0.8, - /datum/reagent/medicine/cryoxadone = 0.3, - /datum/reagent/ammonia = 0.4, - /datum/reagent/saltpetre = 0.5, - /datum/reagent/ash = 0.2, - /datum/reagent/diethylamine = 0.5, - /datum/reagent/consumable/nutriment = 0.1, - /datum/reagent/consumable/virus_food = 0.1, - /datum/reagent/blood = -0.1, - /datum/reagent/consumable/ethanol = -0.1, - /datum/reagent/toxin = -0.2, - /datum/reagent/fluorine = -0.3, - /datum/reagent/chlorine = -0.3, - /datum/reagent/toxin/acid = -0.3, - /datum/reagent/toxin/acid/fluacid = -0.4, - /datum/reagent/toxin/plantbgone = -0.5, - /datum/reagent/napalm = -0.6, - /datum/reagent/hellwater = -1, - /datum/reagent/liquidgibs = -0.2, - /datum/reagent/consumable/ethanol/demonsblood = -0.8, - /datum/reagent/medicine/soulus = -0.2 - ) - -/obj/structure/flora/tree/chapel/Initialize() - START_PROCESSING(SSobj, src) - . = ..() - -/obj/structure/flora/tree/chapel/process() - if(world.time > (lastcycle + 200)) - if(abs(karma) > 100) - pulseKarma() - //Clean up the air a bit - if(isopenturf(loc)) - var/turf/open/T = src.loc - if(T.air) - var/co2 = T.air.get_moles(GAS_CO2) - if(co2 > 0 && prob(50)) - var/amt = min(co2, 10) - T.air.adjust_moles(GAS_CO2, -amt) - T.atmos_spawn_air("o2=[amt];TEMP=293.15") - lastcycle = world.time - -/obj/structure/flora/tree/chapel/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/reagent_containers)) - var/obj/item/reagent_containers/container = I - if(istype(container, /obj/item/reagent_containers/syringe)) - var/obj/item/reagent_containers/syringe/syr = container - if(syr.mode != 1) - to_chat(user, "You can't get any extract out of this plant.") - return - if(!container.reagents.total_volume) - to_chat(user, "[container] is empty!") - return 1 - if(!container.is_drainable()) - if(container.can_have_cap) - to_chat(user, "[container] has a cap on!") - else - to_chat(user, "You can't use [container] on [src]!") - return 1 - to_chat(user, "You feed [src] [container.amount_per_transfer_from_this]u from [container]...") - playsound(loc, 'sound/effects/slosh.ogg', 25, TRUE) - var/datum/reagents/R = new /datum/reagents() - R.my_atom = src - container.reagents.trans_to(R, container.amount_per_transfer_from_this, transfered_by = user) - apply_reagents(R, user) - else if(I.get_sharpness() && I.force > 0) - if(I.hitsound) - playsound(get_turf(src), I.hitsound, 100, FALSE, FALSE) - user.visible_message("[user] begins to cut down [src] with [I].","You begin to cut down [src] with [I].", "You hear the sound of sawing.") - if(do_after(user, 1000/I.force, target = src)) //5 seconds with 20 force, 8 seconds with a hatchet, 20 seconds with a shard. - //Regret.dm - to_chat(user, "As you pierce the bark, a supernatural shock jolts through your body...") - user.log_message("attempted to cut down [src] and was smitten") - if(iscarbon(user)) - var/mob/living/carbon/C = user - if(C.can_heartattack()) - C.set_heartattack(TRUE) - else if (isliving(user)) - var/mob/living/L = user - L.Immobilize(100, TRUE) - L.jitteriness += 50 - L.adjustToxLoss(66) - return 1 - else ..() - -/obj/structure/flora/tree/chapel/proc/apply_reagents(datum/reagents/S, mob/user) - var/gainedkarma = 0 - for(var/datum/reagent/R in moralchems) - if(S.has_reagent(R, 1)) - gainedkarma += S.get_reagent_amount(R) * moralchems[R] - if(isliving(user)) - var/mob/living/M = user - if(gainedkarma >= 0) - to_chat(M, "[src] fills with new life as a wave of comfort washes over you.") - SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "treekarma", /datum/mood_event/good_tree, name) - if(karma >= 0) - M.adjustBruteLoss(-0.25*karma, 0) - M.adjustFireLoss(-0.25*karma, 0) - M.adjustToxLoss(-0.25*karma, 0) - M.adjustCloneLoss(-0.25*karma, 0) - else - to_chat(M, "Colors fade from [src] as a wave of guilt crawls into your skin.") - SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "treekarma", /datum/mood_event/bad_tree, name) - M.adjustToxLoss(abs(karma)*0.25, 0) - adjustKarma(gainedkarma) - -/obj/structure/flora/tree/chapel/proc/update_tree() - if(100 > karma > -100) - name = initial(src.name) - icon_state = initial(src.name) - desc = initial(src.name) - else if (karma >= 100) - name = "hallowed oak tree" - icon_state = "churchtree_nice" - desc = "The sacred spirits of nature have been awoken, washing the area in a holy aura." - else - name = "accursed oak tree" - icon_state = "churchtree_naughty" - desc = "As the bark rots and the leafs turn blood red a sinister aura bleeds into the area." - update_icon_state() - -/obj/structure/flora/tree/chapel/proc/adjustKarma(x) - var/need_update = 0 - var/newkarma = karma + x - if(karma < 100 && newkarma >= 100) - need_update = 1 - visible_message("[src] shifts colors as a heavenly warmth washes over the room.") - if(karma > -100 && newkarma <= -100) - need_update = 1 - visible_message("As the life fades from [src] something evil seeps into the air.") - if(abs(karma) > 100 && newkarma < 100) - need_update = 1 - if(need_update) - update_tree() - karma = newkarma - -/obj/structure/flora/tree/chapel/proc/pulseKarma() - for(var/mob/living/L in range(mojorange, src)) - var/luck = rand(1, 100) - if(karma > 100) - if(luck > 90) - L.reagents.add_reagent(/datum/reagent/medicine/omnizine, 5) - else if (luck > 50) - SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "treekarma", /datum/mood_event/better_tree, name) - else if (luck > 25) - SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "treekarma", /datum/mood_event/good_tree, name) - else if (luck == 1) - adjustKarma(-10) //Nothing good lasts forever - else - if(luck > 90) - L.reagents.add_reagent(/datum/reagent/toxin, 5) - else if (luck > 50) - SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "treekarma", /datum/mood_event/bad_tree, name) - else if (luck > 25) - SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "treekarma", /datum/mood_event/worse_tree, name) - else if (luck == 1) - adjustKarma(10) - -/datum/mood_event/good_tree - description = "I feel closer to my soul.\n" - mood_change = 3 - timeout = 5 MINUTES - -/datum/mood_event/bad_tree - description = "I should stop gardening.\n" - mood_change = -3 - timeout = 5 MINUTES - -/datum/mood_event/better_tree - description = "I feel blessed by the gods!\n" - mood_change = 6 - timeout = 5 MINUTES - -/datum/mood_event/worse_tree - description = "It's like a root is digging into my heart.\n" - mood_change = -6 - timeout = 5 MINUTES - /obj/structure/flora/firebush name = "flaming bush" desc = "A bush being consumed by flames. Maybe it'll rise from its ashes like a phoenix?" @@ -970,3 +785,274 @@ desc= "This patch seems to have run dry on life-giving water." icon_state = "dry_grass_1" base_icon_state = "dry_grass" + +// Special tree used in chapel ship +/obj/structure/flora/tree/chapel + name = "sacred oak tree" + icon = 'icons/obj/flora/chapeltree.dmi' + icon_state = "churchtree" + desc = "A true earthen oak tree imported directly from the holy soil of earth. It's radiates a spiritual warmth that calms the soul." + pixel_x = -16 + max_integrity = 200 + bound_height = 64 + var/karma = 0 + var/mojorange = 4 + var/lastcycle = 0 + // Determines the karma gained/lost when feeding the tree this chem + var/list/moralchems = list( + /datum/reagent/water = 0.1, + /datum/reagent/plantnutriment = 0.2, + /datum/reagent/medicine/earthsblood = 1, + /datum/reagent/water/holywater = 0.8, + /datum/reagent/medicine/cryoxadone = 0.3, + /datum/reagent/ammonia = 0.4, + /datum/reagent/saltpetre = 0.5, + /datum/reagent/ash = 0.2, + /datum/reagent/diethylamine = 0.5, + /datum/reagent/consumable/nutriment = 0.1, + /datum/reagent/consumable/virus_food = 0.1, + /datum/reagent/blood = -0.1, + /datum/reagent/consumable/ethanol = -0.1, + /datum/reagent/toxin = -0.2, + /datum/reagent/fluorine = -0.3, + /datum/reagent/chlorine = -0.3, + /datum/reagent/toxin/acid = -0.3, + /datum/reagent/toxin/acid/fluacid = -0.4, + /datum/reagent/toxin/plantbgone = -0.5, + /datum/reagent/napalm = -0.6, + /datum/reagent/hellwater = -1, + /datum/reagent/liquidgibs = -0.2, + /datum/reagent/consumable/ethanol/demonsblood = -0.8, + /datum/reagent/medicine/soulus = -0.2 + ) + +/obj/structure/flora/tree/chapel/Initialize() + START_PROCESSING(SSobj, src) + . = ..() + +/obj/structure/flora/tree/chapel/process() + if(world.time > (lastcycle + 200)) + if(abs(karma) > 100) + pulseKarma() + //Clean up the air a bit + if(isopenturf(loc)) + var/turf/open/T = src.loc + if(T.air) + var/co2 = T.air.get_moles(GAS_CO2) + if(co2 > 0 && prob(50)) + var/amt = min(co2, 10) + T.air.adjust_moles(GAS_CO2, -amt) + T.atmos_spawn_air("o2=[amt];TEMP=293.15") + lastcycle = world.time + +/obj/structure/flora/tree/chapel/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/reagent_containers)) + var/obj/item/reagent_containers/container = I + if(istype(container, /obj/item/reagent_containers/syringe)) + var/obj/item/reagent_containers/syringe/syr = container + if(syr.mode != 1) + to_chat(user, "You can't get any extract out of this plant.") + return + if(!container.reagents.total_volume) + to_chat(user, "[container] is empty!") + return 1 + if(!container.is_drainable()) + if(container.can_have_cap) + to_chat(user, "[container] has a cap on!") + else + to_chat(user, "You can't use [container] on [src]!") + return 1 + to_chat(user, "You feed [src] [container.amount_per_transfer_from_this]u from [container]...") + playsound(loc, 'sound/effects/slosh.ogg', 25, TRUE) + var/datum/reagents/R = new /datum/reagents() + R.my_atom = src + container.reagents.trans_to(R, container.amount_per_transfer_from_this, transfered_by = user) + apply_reagents(R, user) + else if(I.get_sharpness() && I.force > 0) + if(I.hitsound) + playsound(get_turf(src), I.hitsound, 100, FALSE, FALSE) + user.visible_message("[user] begins to cut down [src] with [I].","You begin to cut down [src] with [I].", "You hear the sound of sawing.") + if(do_after(user, 1000/I.force, target = src)) //5 seconds with 20 force, 8 seconds with a hatchet, 20 seconds with a shard. + //Regret.dm + to_chat(user, "As you pierce the bark, a supernatural shock jolts through your body...") + user.log_message("attempted to cut down [src] and was smitten") + if(iscarbon(user)) + var/mob/living/carbon/C = user + if(C.can_heartattack()) + C.set_heartattack(TRUE) + else if (isliving(user)) + var/mob/living/L = user + L.Immobilize(100, TRUE) + L.jitteriness += 50 + L.adjustToxLoss(66) + return 1 + else ..() + +/obj/structure/flora/tree/chapel/proc/apply_reagents(datum/reagents/S, mob/user) + var/gainedkarma = 0 + for(var/datum/reagent/R in moralchems) + if(S.has_reagent(R, 1)) + gainedkarma += S.get_reagent_amount(R) * moralchems[R] + if(isliving(user)) + var/mob/living/M = user + if(gainedkarma >= 0) + to_chat(M, "[src] fills with new life as a wave of comfort washes over you.") + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "treekarma", /datum/mood_event/good_tree, name) + if(karma >= 0) + M.adjustBruteLoss(-0.25*karma, 0) + M.adjustFireLoss(-0.25*karma, 0) + M.adjustToxLoss(-0.25*karma, 0) + M.adjustCloneLoss(-0.25*karma, 0) + else + to_chat(M, "Colors fade from [src] as a wave of guilt crawls into your skin.") + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "treekarma", /datum/mood_event/bad_tree, name) + M.adjustToxLoss(abs(karma)*0.25, 0) + adjustKarma(gainedkarma) + +/obj/structure/flora/tree/chapel/proc/update_tree() + if(100 > karma > -100) + name = initial(src.name) + icon_state = initial(src.name) + desc = initial(src.name) + else if (karma >= 100) + name = "hallowed oak tree" + icon_state = "churchtree_nice" + desc = "The sacred spirits of nature have been awoken, washing the area in a holy aura." + else + name = "accursed oak tree" + icon_state = "churchtree_naughty" + desc = "As the bark rots and the leafs turn blood red a sinister aura bleeds into the area." + update_icon_state() + +/obj/structure/flora/tree/chapel/proc/adjustKarma(x) + var/need_update = 0 + var/newkarma = karma + x + if(karma < 100 && newkarma >= 100) + need_update = 1 + visible_message("[src] shifts colors as a heavenly warmth washes over the room.") + if(karma > -100 && newkarma <= -100) + need_update = 1 + visible_message("As the life fades from [src] something evil seeps into the air.") + if(abs(karma) > 100 && newkarma < 100) + need_update = 1 + if(need_update) + update_tree() + karma = newkarma + +/obj/structure/flora/tree/chapel/proc/pulseKarma() + for(var/mob/living/L in range(mojorange, src)) + var/luck = rand(1, 100) + if(karma > 100) + if(luck > 90) + L.reagents.add_reagent(/datum/reagent/medicine/omnizine, 5) + else if (luck > 50) + SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "treekarma", /datum/mood_event/better_tree, name) + else if (luck > 25) + SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "treekarma", /datum/mood_event/good_tree, name) + else if (luck == 1) + adjustKarma(-10) //Nothing good lasts forever + else + if(luck > 90) + L.reagents.add_reagent(/datum/reagent/toxin, 5) + else if (luck > 50) + SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "treekarma", /datum/mood_event/bad_tree, name) + else if (luck > 25) + SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "treekarma", /datum/mood_event/worse_tree, name) + else if (luck == 1) + adjustKarma(10) + +/datum/mood_event/good_tree + description = "I feel closer to my soul.\n" + mood_change = 3 + timeout = 5 MINUTES + +/datum/mood_event/bad_tree + description = "I should stop gardening.\n" + mood_change = -3 + timeout = 5 MINUTES + +/datum/mood_event/better_tree + description = "I feel blessed by the gods!\n" + mood_change = 6 + timeout = 5 MINUTES + +/datum/mood_event/worse_tree + description = "It's like a root is digging into my heart.\n" + mood_change = -6 + timeout = 5 MINUTES + +// Tree used in the SRM ships. +/obj/structure/flora/tree/srm + name = "Montagne's Oak" + icon = 'icons/obj/flora/chapeltree.dmi' + icon_state = "churchtree" + desc = "A sturdy oak tree imported directly from Illestren the homeworld of the Saint-Roumain Militia. It contains a bacteria native to the planet. The soil was carfuly transfered from the same place it was planted. A apple tree branch has been grafted onto it. You could try watering it" + pixel_x = -16 + max_integrity = 200 + bound_height = 64 + var/health = 0 + var/lastcycle = 0 + //Decides where the apple gets dropped + var/apple_direction = SOUTH + //Determines the health gained/lost when feeding the tree this chem + var/list/healthchems = list( + /datum/reagent/consumable/ethanol/trickwine/ash_wine = 0.8, + /datum/reagent/water = 0.1, + /datum/reagent/plantnutriment = 0.2, + /datum/reagent/medicine/earthsblood = 1, + /datum/reagent/water/holywater = 0.8, + /datum/reagent/medicine/cryoxadone = 0.3, + /datum/reagent/ammonia = 0.4, + /datum/reagent/saltpetre = 0.5, + /datum/reagent/ash = 0.2, + /datum/reagent/diethylamine = 0.5, + /datum/reagent/consumable/nutriment = 0.1, + /datum/reagent/consumable/virus_food = 0.1, + /datum/reagent/blood = -0.1, + /datum/reagent/consumable/ethanol = -0.1, + /datum/reagent/toxin = -0.2, + /datum/reagent/fluorine = -0.3, + /datum/reagent/chlorine = -0.3, + /datum/reagent/toxin/acid = -0.3, + /datum/reagent/toxin/acid/fluacid = -0.4, + /datum/reagent/toxin/plantbgone = -0.5, + /datum/reagent/napalm = -0.6, + /datum/reagent/hellwater = -1, + /datum/reagent/liquidgibs = -0.2, + /datum/reagent/consumable/ethanol/demonsblood = -0.8, + /datum/reagent/medicine/soulus = -0.2 + ) + +/obj/structure/flora/tree/srm/Initialize() + START_PROCESSING(SSobj, src) + create_reagents(300, OPENCONTAINER) + . = ..() + +/obj/structure/flora/tree/srm/process() + if(world.time > (lastcycle + 100)) + if(reagents.total_volume > 0) + var/gainedhealth = 0 + for(var/reagent in healthchems) + if(reagents.has_reagent(reagent, 1)) + gainedhealth += reagents.get_reagent_amount(reagent) * healthchems[reagent] + health += gainedhealth + reagents.remove_reagent(reagent, reagents.get_reagent_amount(reagent)) + reagents.clear_reagents() + if(health > 25) + if(prob(50)) + var/obj/item/reagent_containers/food/snacks/grown/apple/apple = new(get_step(get_turf(src), apple_direction)) + apple.name = "illestren Apple" + apple.desc = "You can grind this for bacteria." + apple.reagents.add_reagent(/datum/reagent/srm_bacteria, 10) + visible_message("An [apple] falls from the tree.") + health -= 25 + //Clean up the air a bit + if(isopenturf(loc)) + var/turf/open/T = src.loc + if(T.air) + var/co2 = T.air.get_moles(GAS_CO2) + if(co2 > 0 && prob(50)) + var/amt = min(co2, 10) + T.air.adjust_moles(GAS_CO2, -amt) + T.atmos_spawn_air("o2=[amt];TEMP=293.15") + lastcycle = world.time diff --git a/code/game/objects/structures/fugitive_role_spawners.dm b/code/game/objects/structures/fugitive_role_spawners.dm index afdff7afec92..4f98e919ffc5 100644 --- a/code/game/objects/structures/fugitive_role_spawners.dm +++ b/code/game/objects/structures/fugitive_role_spawners.dm @@ -14,14 +14,6 @@ . = ..() notify_ghosts("Hunters are waking up looking for refugees!", source = src, action=NOTIFY_ATTACK, flashwindow = FALSE, ignore_key = POLL_IGNORE_FUGITIVE) -/obj/effect/mob_spawn/human/fugitive/special(mob/living/new_spawn) - var/datum/antagonist/fugitive_hunter/fughunter = new - fughunter.backstory = back_story - new_spawn.mind.add_antag_datum(fughunter) - fughunter.greet() - message_admins("[ADMIN_LOOKUPFLW(new_spawn)] has been made into a Fugitive Hunter by an event.") - log_game("[key_name(new_spawn)] was spawned as a Fugitive Hunter by an event.") - /obj/effect/mob_spawn/human/fugitive/spacepol name = "police pod" desc = "A small sleeper typically used to put people to sleep for briefing on the mission." @@ -38,7 +30,7 @@ back_story = "russian" desc = "A small sleeper typically used to make long distance travel a bit more bearable." mob_name = "russian" - outfit = /datum/outfit/russiancorpse/hunter + outfit = /datum/outfit/frontier/hunter icon = 'icons/obj/machines/sleeper.dmi' icon_state = "sleeper" diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index b25d84db6a38..727187aa14df 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -356,54 +356,6 @@ new/obj/structure/fluff/empty_sleeper/syndicate(get_turf(src)) return ..() -//Space Hotel Staff -/obj/effect/mob_spawn/human/hotel_staff //not free antag u little shits - name = "staff sleeper" - desc = "A sleeper designed for long-term stasis between guest visits." - mob_name = "hotel staff member" - icon = 'icons/obj/machines/sleeper.dmi' - icon_state = "sleeper_s" - objectives = "Cater to visiting guests with your fellow staff. Do not leave your assigned hotel and always remember: The customer is always right!" - death = FALSE - roundstart = FALSE - random = TRUE - outfit = /datum/outfit/hotelstaff - short_desc = "You are a staff member of a top-of-the-line space hotel!" - flavour_text = "You are a staff member of a top-of-the-line space hotel! Cater to guests and make sure the manager doesn't fire you." - important_info = "DON'T leave the hotel" - assignedrole = "Hotel Staff" - -/datum/outfit/hotelstaff - name = "Hotel Staff" - uniform = /obj/item/clothing/under/misc/assistantformal - shoes = /obj/item/clothing/shoes/laceup - r_pocket = /obj/item/radio/off - back = /obj/item/storage/backpack - implants = list(/obj/item/implant/mindshield) - -/obj/effect/mob_spawn/human/hotel_staff/security - name = "hotel security sleeper" - mob_name = "hotel security member" - outfit = /datum/outfit/hotelstaff/security - short_desc = "You are a peacekeeper." - flavour_text = "You have been assigned to this hotel to protect the interests of the company while keeping the peace between \ - guests and the staff." - important_info = "Do NOT leave the hotel, as that is grounds for contract termination." - objectives = "Do not leave your assigned hotel. Try and keep the peace between staff and guests, non-lethal force heavily advised if possible." - -/datum/outfit/hotelstaff/security - name = "Hotel Security" - uniform = /obj/item/clothing/under/rank/security/officer/blueshirt - shoes = /obj/item/clothing/shoes/jackboots - suit = /obj/item/clothing/suit/armor/vest/blueshirt - head = /obj/item/clothing/head/helmet/blueshirt - back = /obj/item/storage/backpack/security - belt = /obj/item/storage/belt/security/full - -/obj/effect/mob_spawn/human/hotel_staff/Destroy() - new/obj/structure/fluff/empty_sleeper/syndicate(get_turf(src)) - return ..() - /obj/effect/mob_spawn/human/demonic_friend name = "Essence of friendship" desc = "Oh boy! Oh boy! A friend!" @@ -445,7 +397,7 @@ id.update_label() else to_chat(L, "Your owner is already dead! You will soon perish.") - addtimer(CALLBACK(L, /mob.proc/dust, 150)) //Give em a few seconds as a mercy. + addtimer(CALLBACK(L, TYPE_PROC_REF(/mob, dust), 150)) //Give em a few seconds as a mercy. /datum/outfit/demonic_friend name = "Demonic Friend" @@ -475,121 +427,6 @@ implants = list(/obj/item/implant/weapons_auth) id = /obj/item/card/id/syndicate -/datum/outfit/syndicate_empty/post_equip(mob/living/carbon/human/H) - H.faction |= ROLE_SYNDICATE - -//shiptest edit start, adding egors updated starfury roles, this should theoritacly not fuck with shit since this code is unused anyways -/obj/effect/mob_spawn/human/syndicate/battlecruiser - name = "Syndicate Battlecruiser Ship Operative" - short_desc = "You are a crewmember aboard the Syndicate flagship Starfury." - flavour_text = "Your job is to follow your higher-ranking operatives' orders, assisting in pretty much anything that might need your help." - important_info = "While you don't have a strict role, you are supposed to obey orders given by anyone on the ship, including medical, engineering and assault operatives." - outfit = /datum/outfit/syndicate_empty/sbc - assignedrole = "Battlecruiser Operative" - mob_name = "syndicate operative" - id_job = "Syndicate Operative" - random = TRUE - roundstart = FALSE - death = FALSE - anchored = TRUE - density = FALSE - -/datum/outfit/syndicate_empty/sbc - name = "Syndicate Battlecruiser Ship Deck Assistant" - uniform = /obj/item/clothing/under/syndicate/aclfgrunt - gloves = /obj/item/clothing/gloves/combat - l_pocket = /obj/item/gun/ballistic/automatic/pistol - r_pocket = /obj/item/kitchen/knife/combat/survival - belt = /obj/item/storage/belt/military/assault - id = /obj/item/card/id/syndicate_command/crew_id - backpack_contents = list(/obj/item/storage/box/survival/syndie=1) - -/obj/effect/mob_spawn/human/syndicate/battlecruiser/engineering - name = "Syndicate Battlecruiser Ship Engineer" - short_desc = "You are an engineer aboard the Syndicate flagship Starfury." - flavour_text = "Your job is to maintain the ship, and keep the engine running. If you are unfamiliar with how the supermatter engine functions, do not attempt to start it alone; ask a fellow crewman for help." - important_info = "While your role means you can help in the assault with your tools, you must first and foremost keep the cruiser and engine in a working state." - outfit = /datum/outfit/syndicate_empty/sbc/engi - assignedrole = "Battlecruiser Engineer" - mob_name = "syndicate engineer" - id_job = "Syndicate Engineer" - -/datum/outfit/syndicate_empty/sbc/engi - name = "Syndicate Battlecruiser Ship Engineer" - glasses = /obj/item/clothing/glasses/meson/night - uniform = /obj/item/clothing/under/syndicate/gorlex - r_pocket = /obj/item/analyzer - belt = /obj/item/storage/belt/utility/syndicate - back = /obj/item/storage/backpack/industrial - backpack_contents = list(/obj/item/storage/box/survival/syndie=1, /obj/item/construction/rcd/combat, /obj/item/rcd_ammo/large) - -/obj/effect/mob_spawn/human/syndicate/battlecruiser/medical - name = "Syndicate Battlecruiser Ship Medical Doctor" - short_desc = "You are a medical doctor aboard the Syndicate flagship: the SBC Starfury." - flavour_text = "Your job is to maintain the crew's physical health and keep your comrades alive at all cost." - important_info = "The armory has nothing to help you with your job, and your role is to assist assault operatives, not to do their work for them." - outfit = /datum/outfit/syndicate_empty/sbc/med - assignedrole = "Battlecruiser Medical Doctor" - mob_name = "syndicate medic" - id_job = "Syndicate Medical Doctor" - -/datum/outfit/syndicate_empty/sbc/med - name = "Syndicate Battlecruiser Ship Medical Doctor" - gloves = /obj/item/clothing/gloves/color/latex/nitrile/evil - glasses = /obj/item/clothing/glasses/hud/health - belt = /obj/item/pda/medical - back = /obj/item/storage/backpack/duffelbag/syndie/med - backpack_contents = list(/obj/item/storage/box/survival/syndie=1, /obj/item/storage/firstaid/medical) - -/obj/effect/mob_spawn/human/syndicate/battlecruiser/assault - name = "Syndicate Battlecruiser Assault Operative" - short_desc = "You are an assault operative aboard the syndicate flagship Starfury." - flavour_text = "Your job is to follow your captain's orders, keep intruders out of the ship, and assault Space Station 13. There is an armory, multiple assault ships, and beam cannons to attack the station with." - important_info = "Work as a team with your fellow operatives and work out a plan of attack. If you are overwhelmed, escape back to your ship!" - outfit = /datum/outfit/syndicate_empty/sbc/operative - assignedrole = "Battlecruiser Assault Operative" - mob_name = "syndicate assault operative" - id_job = "Syndicate Assault Operative" - -/datum/outfit/syndicate_empty/sbc/operative - name = "Syndicate Battlecruiser Operative" - uniform = /obj/item/clothing/under/syndicate/camo - glasses = /obj/item/clothing/glasses/night - belt = /obj/item/storage/belt/military - back = /obj/item/storage/backpack/duffelbag/syndie - suit = /obj/item/clothing/suit/armor/vest - backpack_contents = list(/obj/item/storage/box/survival/syndie=1, /obj/item/gun_voucher/syndicate=1) - -/datum/outfit/syndicate_empty/sbc/lieutenant - name = "Syndicate Battlecruiser Lieutenant" - head = /obj/item/clothing/head/HoS/beret/syndicate - ears = /obj/item/radio/headset/syndicate/alt/leader - uniform = /obj/item/clothing/under/syndicate/combat - id = /obj/item/card/id/syndicate_command/lieutenant - backpack_contents = list(/obj/item/melee/baton/loaded=1, /obj/item/storage/box/survival/syndie=1) - -/obj/effect/mob_spawn/human/syndicate/battlecruiser/captain - name = "Syndicate Battlecruiser Captain" - short_desc = "You are the captain aboard the Syndicate flagship Starfury." - flavour_text = "Your job is to oversee your crew, defend the ship, and destroy Space Station 13. The ship has an armory, multiple ships, beam cannons, and multiple crewmembers to accomplish this goal." - important_info = "As the captain, this whole operation falls on your shoulders. You do not need to nuke the station, causing sufficient damage and preventing your ship from being destroyed will be enough." - outfit = /datum/outfit/syndicate_empty/sbc/captain - id_access_list = list(150,151) - id_job = "Syndicate Captain" - assignedrole = "Battlecruiser Captain" - mob_name = "syndicate captain" - -/datum/outfit/syndicate_empty/sbc/captain - name = "Syndicate Battlecruiser Captain" - l_pocket = /obj/item/melee/transforming/energy/sword/saber/red - ears = /obj/item/radio/headset/syndicate/alt/captain - uniform = /obj/item/clothing/under/syndicate/aclf - suit = /obj/item/clothing/suit/armor/vest/capcarapace/syndicate - suit_store = /obj/item/gun/ballistic/revolver/mateba - head = /obj/item/clothing/head/HoS/syndicate - mask = /obj/item/clothing/mask/cigarette/cigar/havana - glasses = /obj/item/clothing/glasses/hud/security/sunglasses/eyepatch - id = /obj/item/card/id/syndicate_command/captain_id //Ancient cryogenic sleepers. Players become NT crewmen from a hundred year old space station, now on the verge of collapse. /obj/effect/mob_spawn/human/oldsec @@ -719,7 +556,6 @@ /obj/effect/mob_spawn/human/pirate/special(mob/living/new_spawn) new_spawn.fully_replace_character_name(new_spawn.real_name,generate_pirate_name()) - new_spawn.mind.add_antag_datum(/datum/antagonist/pirate) /obj/effect/mob_spawn/human/pirate/proc/generate_pirate_name() var/beggings = strings(PIRATE_NAMES_FILE, "beginnings") @@ -737,57 +573,6 @@ /obj/effect/mob_spawn/human/pirate/gunner rank = "Gunner" -//Forgotten syndicate ship - -/obj/effect/mob_spawn/human/syndicatespace - name = "Syndicate Ship Crew Member" - roundstart = FALSE - death = FALSE - icon = 'icons/obj/machines/sleeper.dmi' - icon_state = "sleeper_s" - short_desc = "You are a syndicate operative, awoken deep in hostile space." - flavour_text = "Your ship is part of the infamous \"sleeper\" doctrine of syndicate strike forces, who flung unpowered vessels with cryo-frozen crew deep into Nanotrasen territory, tasked to cause havoc and carry out covert reconnisance. The chill in your bones informs you that you've been asleep far longer than intended. Your vessel appears to be in a sorry state, and a tinny alarm pierces through your fugue to report unknown contacts aboard the vessel. It's going to be one of those days." - important_info = "Obey orders given by your captain. Prevent yourself and any syndicate assets from falling into enemy hands." - outfit = /datum/outfit/syndicatespace/syndicrew - assignedrole = "Cybersun Crewmember" - -/obj/effect/mob_spawn/human/syndicatespace/Initialize(mapload) - . = ..() - var/policy = get_policy(ROLE_SYNDICATE_CYBERSUN) - if(policy) - important_info = policy - -/datum/outfit/syndicatespace/syndicrew/post_equip(mob/living/carbon/human/H) - H.faction |= ROLE_SYNDICATE - -/obj/effect/mob_spawn/human/syndicatespace/special(mob/living/new_spawn) - new_spawn.grant_language(/datum/language/codespeak, TRUE, TRUE, LANGUAGE_MIND) - -/obj/effect/mob_spawn/human/syndicatespace/captain - name = "Syndicate Ship Captain" - roundstart = FALSE - death = FALSE - icon = 'icons/obj/machines/sleeper.dmi' - icon_state = "sleeper_s" - short_desc = "You are the captain of a long-slumbering syndicate vessel, stuck deep in enemy territory." - flavour_text = "Your ship is part of the infamous \"sleeper\" doctrine of syndicate strike forces, who flung unpowered vessels with cryo-frozen crew deep into Nanotrasen territory, tasked to cause havoc and carry out covert reconnisance. The chill in your bones informs you that you've been asleep far longer than intended. Your vessel appears to be in a sorry state, and a tinny alarm pierces through your fugue to report unknown contacts aboard the vessel. It's going to be one of those days." - important_info = "Protect the ship and secret documents in your backpack with your own life. Secure the syndicate assets present at your covert landing site. Prevent them, your crew, and yourself from falling into corporate hands." - outfit = /datum/outfit/syndicatespace/syndicaptain - assignedrole = "Cybersun Captain" - -/obj/effect/mob_spawn/human/syndicatespace/syndicaptain/Initialize(mapload) - . = ..() - var/policy = get_policy(ROLE_SYNDICATE_CYBERSUN_CAPTAIN) - if(policy) - important_info = policy - -/datum/outfit/syndicatespace/syndicaptain/post_equip(mob/living/carbon/human/H) - H.faction |= ROLE_SYNDICATE - -/obj/effect/mob_spawn/human/syndicatespace/captain/Destroy() - new/obj/structure/fluff/empty_sleeper/syndicate/captain(get_turf(src)) - return ..() - /datum/outfit/syndicatespace/syndicrew name = "Syndicate Ship Crew Member" uniform = /obj/item/clothing/under/syndicate/combat diff --git a/code/game/objects/structures/guillotine.dm b/code/game/objects/structures/guillotine.dm index 51816849cbe3..59ef31fafa4e 100644 --- a/code/game/objects/structures/guillotine.dm +++ b/code/game/objects/structures/guillotine.dm @@ -79,7 +79,7 @@ if (GUILLOTINE_BLADE_DROPPED) blade_status = GUILLOTINE_BLADE_MOVING icon_state = "guillotine_raise" - addtimer(CALLBACK(src, .proc/raise_blade), GUILLOTINE_ANIMATION_LENGTH) + addtimer(CALLBACK(src, PROC_REF(raise_blade)), GUILLOTINE_ANIMATION_LENGTH) return if (GUILLOTINE_BLADE_RAISED) if (LAZYLEN(buckled_mobs)) @@ -93,7 +93,7 @@ current_action = 0 blade_status = GUILLOTINE_BLADE_MOVING icon_state = "guillotine_drop" - addtimer(CALLBACK(src, .proc/drop_blade, user), GUILLOTINE_ANIMATION_LENGTH - 2) // Minus two so we play the sound and decap faster + addtimer(CALLBACK(src, PROC_REF(drop_blade), user), GUILLOTINE_ANIMATION_LENGTH - 2) // Minus two so we play the sound and decap faster else current_action = 0 else @@ -106,7 +106,7 @@ else blade_status = GUILLOTINE_BLADE_MOVING icon_state = "guillotine_drop" - addtimer(CALLBACK(src, .proc/drop_blade), GUILLOTINE_ANIMATION_LENGTH) + addtimer(CALLBACK(src, PROC_REF(drop_blade)), GUILLOTINE_ANIMATION_LENGTH) /obj/structure/guillotine/proc/raise_blade() blade_status = GUILLOTINE_BLADE_RAISED @@ -149,7 +149,7 @@ for(var/mob/M in viewers(src, 7)) var/mob/living/carbon/human/C = M if (ishuman(M)) - addtimer(CALLBACK(C, /mob/.proc/emote, "clap"), delay_offset * 0.3) + addtimer(CALLBACK(C, TYPE_PROC_REF(/mob, emote), "clap"), delay_offset * 0.3) delay_offset++ else H.apply_damage(15 * blade_sharpness, BRUTE, head) diff --git a/code/game/objects/structures/guncase.dm b/code/game/objects/structures/guncase.dm index 571f5ca0d3a3..cf0d6957e69c 100644 --- a/code/game/objects/structures/guncase.dm +++ b/code/game/objects/structures/guncase.dm @@ -82,7 +82,7 @@ item_image.copy_overlays(thing) items += list("[thing.name] ([i])" = item_image) - var/pick = show_radial_menu(user, src, items, custom_check = CALLBACK(src, .proc/check_menu, user), radius = 36, require_near = TRUE) + var/pick = show_radial_menu(user, src, items, custom_check = CALLBACK(src, PROC_REF(check_menu), user), radius = 36, require_near = TRUE) if(!pick) return diff --git a/code/game/objects/structures/hivebot.dm b/code/game/objects/structures/hivebot.dm index 6c79afce172c..00124d781d80 100644 --- a/code/game/objects/structures/hivebot.dm +++ b/code/game/objects/structures/hivebot.dm @@ -17,7 +17,7 @@ smoke.start() visible_message("[src] warps in!") playsound(src.loc, 'sound/effects/empulse.ogg', 25, TRUE) - addtimer(CALLBACK(src, .proc/warpbots), rand(spawn_time_min, spawn_time_max)) + addtimer(CALLBACK(src, PROC_REF(warpbots)), rand(spawn_time_min, spawn_time_max)) /obj/structure/hivebot_beacon/proc/warpbots() icon_state = "def_radar" diff --git a/code/game/objects/structures/holosign.dm b/code/game/objects/structures/holosign.dm index f85d57278cf9..900d31f5e8a8 100644 --- a/code/game/objects/structures/holosign.dm +++ b/code/game/objects/structures/holosign.dm @@ -221,7 +221,7 @@ var/mob/living/M = user M.electrocute_act(15,"Energy Barrier", flags = SHOCK_NOGLOVES) shockcd = TRUE - addtimer(CALLBACK(src, .proc/cooldown), 5) + addtimer(CALLBACK(src, PROC_REF(cooldown)), 5) /obj/structure/holosign/barrier/cyborg/hacked/Bumped(atom/movable/AM) if(shockcd) @@ -233,7 +233,7 @@ var/mob/living/M = AM M.electrocute_act(15,"Energy Barrier", flags = SHOCK_NOGLOVES) shockcd = TRUE - addtimer(CALLBACK(src, .proc/cooldown), 5) + addtimer(CALLBACK(src, PROC_REF(cooldown)), 5) /* Infinite Holosigns for admin/etc use */ diff --git a/code/game/objects/structures/icemoon/cave_entrance.dm b/code/game/objects/structures/icemoon/cave_entrance.dm index a4523da28ed7..50cadf2f8801 100644 --- a/code/game/objects/structures/icemoon/cave_entrance.dm +++ b/code/game/objects/structures/icemoon/cave_entrance.dm @@ -141,7 +141,7 @@ GLOBAL_LIST_INIT(ore_probability, list( playsound(loc,'sound/effects/tendril_destroyed.ogg', 200, FALSE, 50, TRUE, TRUE) visible_message("[src] begins to collapse! As it fails, it connects to a random dimensional point and pulls through what it finds!") animate(src, transform = matrix().Scale(0, 1), alpha = 50, time = 5 SECONDS) - addtimer(CALLBACK(src, .proc/collapse), 5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(collapse)), 5 SECONDS) /** * Handles portal deletion diff --git a/code/game/objects/structures/ladders.dm b/code/game/objects/structures/ladders.dm index 4ba59605eb0d..14bd21d53160 100644 --- a/code/game/objects/structures/ladders.dm +++ b/code/game/objects/structures/ladders.dm @@ -93,7 +93,7 @@ ) if (up && down) - var/result = show_radial_menu(user, src, tool_list, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE) + var/result = show_radial_menu(user, src, tool_list, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) if (!is_ghost && !in_range(src, user)) return // nice try switch(result) diff --git a/code/game/objects/structures/lavaland/necropolis_tendril.dm b/code/game/objects/structures/lavaland/necropolis_tendril.dm index d06d5e167157..7a57d1d5ac3a 100644 --- a/code/game/objects/structures/lavaland/necropolis_tendril.dm +++ b/code/game/objects/structures/lavaland/necropolis_tendril.dm @@ -15,6 +15,8 @@ anchored = TRUE resistance_flags = FIRE_PROOF | LAVA_PROOF + hitsound_type = PROJECTILE_HITSOUND_FLESH + var/gps = null var/obj/effect/light_emitter/tendril/emitted_light @@ -71,7 +73,7 @@ GLOBAL_LIST_INIT(tendrils, list()) visible_message("The tendril writhes in fury as the earth around it begins to crack and break apart! Get back!") visible_message("Something falls free of the tendril!") playsound(loc,'sound/effects/tendril_destroyed.ogg', 200, FALSE, 50, TRUE, TRUE) - addtimer(CALLBACK(src, .proc/collapse), 50) + addtimer(CALLBACK(src, PROC_REF(collapse)), 50) /obj/effect/collapse/Destroy() QDEL_NULL(emitted_light) diff --git a/code/game/objects/structures/life_candle.dm b/code/game/objects/structures/life_candle.dm index 7e562976e1af..4ed4ddfcbbf7 100644 --- a/code/game/objects/structures/life_candle.dm +++ b/code/game/objects/structures/life_candle.dm @@ -65,7 +65,7 @@ for(var/m in linked_minds) var/datum/mind/mind = m if(!mind.current || (mind.current && mind.current.stat == DEAD)) - addtimer(CALLBACK(src, .proc/respawn, mind), respawn_time, TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(respawn), mind), respawn_time, TIMER_UNIQUE) /obj/structure/life_candle/proc/respawn(datum/mind/mind) var/turf/T = get_turf(src) diff --git a/code/game/objects/structures/manned_turret.dm b/code/game/objects/structures/manned_turret.dm index 9dda5181c071..e0f6e22f3e7e 100644 --- a/code/game/objects/structures/manned_turret.dm +++ b/code/game/objects/structures/manned_turret.dm @@ -172,7 +172,7 @@ /obj/machinery/deployable_turret/proc/volley(mob/user) target_turf = get_turf(target) for(var/i in 1 to number_of_shots) - addtimer(CALLBACK(src, /obj/machinery/deployable_turret/.proc/fire_helper, user), i*rate_of_fire) + addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/machinery/deployable_turret, fire_helper), user), i*rate_of_fire) /obj/machinery/deployable_turret/proc/fire_helper(mob/user) if(user.incapacitated() || !(user in buckled_mobs)) diff --git a/code/game/objects/structures/mineral_doors.dm b/code/game/objects/structures/mineral_doors.dm index 3cd67b47d74e..9e201e29b108 100644 --- a/code/game/objects/structures/mineral_doors.dm +++ b/code/game/objects/structures/mineral_doors.dm @@ -99,7 +99,7 @@ isSwitchingStates = FALSE if(close_delay != -1) - addtimer(CALLBACK(src, .proc/Close), close_delay) + addtimer(CALLBACK(src, PROC_REF(Close)), close_delay) /obj/structure/mineral_door/proc/Close() if(isSwitchingStates || !door_opened) diff --git a/code/game/objects/structures/plasticflaps.dm b/code/game/objects/structures/plasticflaps.dm index 4c7625b5dbcb..294976f72fc6 100644 --- a/code/game/objects/structures/plasticflaps.dm +++ b/code/game/objects/structures/plasticflaps.dm @@ -31,7 +31,7 @@ var/action = anchored ? "unscrews [src] from" : "screws [src] to" var/uraction = anchored ? "unscrew [src] from " : "screw [src] to" user.visible_message("[user] [action] the floor.", "You start to [uraction] the floor...", "You hear rustling noises.") - if(W.use_tool(src, user, 100, volume=100, extra_checks = CALLBACK(src, .proc/check_anchored_state, anchored))) + if(W.use_tool(src, user, 100, volume=100, extra_checks = CALLBACK(src, PROC_REF(check_anchored_state), anchored))) set_anchored(!anchored) to_chat(user, "You [anchored ? "unscrew" : "screw"] [src] from the floor.") return TRUE diff --git a/code/game/objects/structures/poddoor_assembly.dm b/code/game/objects/structures/poddoor_assembly.dm index c8cf1931c701..5909e0f666b2 100644 --- a/code/game/objects/structures/poddoor_assembly.dm +++ b/code/game/objects/structures/poddoor_assembly.dm @@ -26,7 +26,7 @@ /obj/structure/poddoor_assembly/ComponentInitialize() . = ..() - AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS, null, CALLBACK(src, .proc/can_be_rotated)) + AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS, null, CALLBACK(src, PROC_REF(can_be_rotated))) /obj/structure/poddoor_assembly/proc/can_be_rotated(mob/user, rotation_type) return !anchored diff --git a/code/game/objects/structures/railings.dm b/code/game/objects/structures/railings.dm index 6147308cf62e..95c24145399f 100644 --- a/code/game/objects/structures/railings.dm +++ b/code/game/objects/structures/railings.dm @@ -18,7 +18,7 @@ . = ..() if(density && flags_1 & ON_BORDER_1) var/static/list/loc_connections = list( - COMSIG_ATOM_EXIT = .proc/on_exit, + COMSIG_ATOM_EXIT = PROC_REF(on_exit), ) AddElement(/datum/element/connect_loc, loc_connections) @@ -31,12 +31,12 @@ if(skip) return ..() . = ..() - AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_CLOCKWISE_HALF | ROTATION_COUNTERCLOCKWISE | ROTATION_COUNTERCLOCKWISE_HALF | ROTATION_VERBS ,null,CALLBACK(src, .proc/can_be_rotated),CALLBACK(src,.proc/after_rotation)) + AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_CLOCKWISE_HALF | ROTATION_COUNTERCLOCKWISE | ROTATION_COUNTERCLOCKWISE_HALF | ROTATION_VERBS ,null,CALLBACK(src, PROC_REF(can_be_rotated)),CALLBACK(src, PROC_REF(after_rotation))) /obj/structure/railing/corner/ComponentInitialize() . = ..(TRUE) - AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS ,null,CALLBACK(src, .proc/can_be_rotated),CALLBACK(src,.proc/after_rotation)) + AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS ,null,CALLBACK(src, PROC_REF(can_be_rotated)),CALLBACK(src, PROC_REF(after_rotation))) /obj/structure/railing/attackby(obj/item/I, mob/living/user, params) @@ -77,7 +77,7 @@ if(flags_1&NODECONSTRUCT_1) return to_chat(user, "You begin to [anchored ? "unfasten the railing from":"fasten the railing to"] the floor...") - if(I.use_tool(src, user, volume = 75, extra_checks = CALLBACK(src, .proc/check_anchored, anchored))) + if(I.use_tool(src, user, volume = 75, extra_checks = CALLBACK(src, PROC_REF(check_anchored), anchored))) set_anchored(!anchored) to_chat(user, "You [anchored ? "fasten the railing to":"unfasten the railing from"] the floor.") return TRUE diff --git a/code/game/objects/structures/sauna.dm b/code/game/objects/structures/sauna.dm new file mode 100644 index 000000000000..0b0a10565a3f --- /dev/null +++ b/code/game/objects/structures/sauna.dm @@ -0,0 +1,101 @@ +#define SAUNA_H2O_TEMP T20C + 60 +#define SAUNA_LOG_FUEL 150 +#define SAUNA_MAXIMUM_FUEL 3000 +#define SAUNA_WATER_PER_WATER_UNIT 5 + +/obj/structure/sauna_oven + name = "sauna oven" + desc = "A modest sauna oven with rocks. Add some fuel, pour some water and enjoy the moment." + icon_state = "sauna" + density = TRUE + anchored = TRUE + resistance_flags = FIRE_PROOF + var/lit = FALSE + var/fuel_amount = 0 + var/water_amount = 0 + +/obj/structure/sauna_oven/examine(mob/user) + . = ..() + . += "The rocks are [water_amount ? "moist" : "dry"]." + . += "There's [fuel_amount ? "some fuel" : "no fuel"] in the oven." + +/obj/structure/sauna_oven/Initialize() + . = ..() + RegisterSignal(src, COMSIG_ATOM_EXPOSE_REAGENTS, PROC_REF(add_water)) + +/obj/structure/sauna_oven/proc/add_water(atom/source, list/reagents, datum/reagents/source_reagents, method, volume_modifier, show_message) + SIGNAL_HANDLER + + if(method != TOUCH) // Only splashing/pouring + return + + for(var/reagent in reagents) + if(istype(reagent, /datum/reagent/water)) + water_amount += reagents[reagent] * SAUNA_WATER_PER_WATER_UNIT + +/obj/structure/sauna_oven/Destroy() + if(lit) + STOP_PROCESSING(SSobj, src) + return ..() + +/obj/structure/sauna_oven/attack_hand(mob/user) + . = ..() + if(.) + return + if(lit) + lit = FALSE + STOP_PROCESSING(SSobj, src) + user.visible_message("[user] turns off [src].", "You turn on [src].") + else if (fuel_amount) + lit = TRUE + START_PROCESSING(SSobj, src) + user.visible_message("[user] turns on [src].", "You turn off [src].") + update_icon() + +/obj/structure/sauna_oven/update_overlays() + . = ..() + if(lit) + . += "sauna_on_overlay" + +/obj/structure/sauna_oven/update_icon() + ..() + icon_state = "[lit ? "sauna_on" : initial(icon_state)]" + +/obj/structure/sauna_oven/attackby(obj/item/T, mob/user) + if(T.tool_behaviour == TOOL_WRENCH) + to_chat(user, "You begin to deconstruct [src].") + if(T.use_tool(src, user, 60, volume=50)) + to_chat(user, "You successfully deconstructed [src].") + new /obj/item/stack/sheet/mineral/wood(get_turf(src), 30) + qdel(src) + + else if(istype(T, /obj/item/stack/sheet/mineral/wood)) + var/obj/item/stack/sheet/mineral/wood/wood = T + if(fuel_amount > SAUNA_MAXIMUM_FUEL) + to_chat(user, "You can't fit any more of [T] in [src]!") + return + fuel_amount += SAUNA_LOG_FUEL * wood.amount + wood.use(wood.amount) + user.visible_message("[user] tosses some \ + wood into [src].", "You add \ + some fuel to [src].") + return ..() + +/obj/structure/sauna_oven/process() + if(water_amount) + var/used_amount = min(water_amount / 10, 20) + water_amount -= used_amount + var/turf/pos = get_turf(src) + if(pos) + pos.atmos_spawn_air("water_vapor=[used_amount];TEMP=[SAUNA_H2O_TEMP]") + fuel_amount-- + + if(fuel_amount <= 0) + lit = FALSE + STOP_PROCESSING(SSobj, src) + update_icon() + +#undef SAUNA_H2O_TEMP +#undef SAUNA_LOG_FUEL +#undef SAUNA_MAXIMUM_FUEL +#undef SAUNA_WATER_PER_WATER_UNIT diff --git a/code/game/objects/structures/shower.dm b/code/game/objects/structures/shower.dm index a2c5d59af916..16cf7af6ce81 100644 --- a/code/game/objects/structures/shower.dm +++ b/code/game/objects/structures/shower.dm @@ -23,7 +23,7 @@ soundloop = new(list(src), FALSE) var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) @@ -81,10 +81,10 @@ // If there was already mist, and the shower was turned off (or made cold): remove the existing mist in 25 sec var/obj/effect/mist/mist = locate() in loc if(!mist && on && current_temperature != SHOWER_FREEZING) - addtimer(CALLBACK(src, .proc/make_mist), 5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(make_mist)), 5 SECONDS) if(mist && (!on || current_temperature == SHOWER_FREEZING)) - addtimer(CALLBACK(src, .proc/clear_mist), 25 SECONDS) + addtimer(CALLBACK(src, PROC_REF(clear_mist)), 25 SECONDS) /obj/machinery/shower/proc/make_mist() var/obj/effect/mist/mist = locate() in loc diff --git a/code/game/objects/structures/signs/_signs.dm b/code/game/objects/structures/signs/_signs.dm index 1c8463adee5e..4a2a98192243 100644 --- a/code/game/objects/structures/signs/_signs.dm +++ b/code/game/objects/structures/signs/_signs.dm @@ -298,3 +298,12 @@ /obj/structure/sign/number/nine name = "nine" icon_state = "9" + +/obj/structure/sign/number/random + name = "numeral sign" + icon_state = "0" + +/obj/structure/sign/number/random/Initialize() + icon_state = "[rand(0, 9)]" + update_icon_state() + . = ..() diff --git a/code/game/objects/structures/signs/signs_maps.dm b/code/game/objects/structures/signs/signs_maps.dm index ba79b6ff93f5..f2ab429803c1 100644 --- a/code/game/objects/structures/signs/signs_maps.dm +++ b/code/game/objects/structures/signs/signs_maps.dm @@ -56,3 +56,7 @@ desc = "A direction sign, pointing out which way the station's AI Upload is." icon_state = "direction_upload" +/obj/structure/sign/directions/service + name = "service sign" + desc = "A directional sign, pointing which way the station's Service department is in" + icon_state = "direction_srv" diff --git a/code/game/objects/structures/stairs.dm b/code/game/objects/structures/stairs.dm index 3e496f06252a..47cf473c84cf 100644 --- a/code/game/objects/structures/stairs.dm +++ b/code/game/objects/structures/stairs.dm @@ -34,7 +34,7 @@ build_signal_listener() update_surrounding() var/static/list/loc_connections = list( - COMSIG_ATOM_EXIT = .proc/on_exit, + COMSIG_ATOM_EXIT = PROC_REF(on_exit), ) AddElement(/datum/element/connect_loc, loc_connections) @@ -65,7 +65,7 @@ return //Let's not block ourselves. if(!isobserver(leaving) && isTerminator() && direction == dir) - INVOKE_ASYNC(src, .proc/stair_ascend, leaving) + INVOKE_ASYNC(src, PROC_REF(stair_ascend), leaving) leaving.Bump(src) return COMPONENT_ATOM_BLOCK_EXIT @@ -114,7 +114,7 @@ if(listeningTo) UnregisterSignal(listeningTo, COMSIG_TURF_MULTIZ_NEW) var/turf/open/openspace/T = get_step_multiz(get_turf(src), UP) - RegisterSignal(T, COMSIG_TURF_MULTIZ_NEW, .proc/on_multiz_new) + RegisterSignal(T, COMSIG_TURF_MULTIZ_NEW, PROC_REF(on_multiz_new)) listeningTo = T /obj/structure/stairs/proc/force_open_above() diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm index f43a7a95f8fd..a4155003dcdb 100644 --- a/code/game/objects/structures/statues.dm +++ b/code/game/objects/structures/statues.dm @@ -15,7 +15,7 @@ /obj/structure/statue/Initialize() . = ..() AddComponent(art_type, impressiveness) - addtimer(CALLBACK(src, /datum.proc/_AddComponent, list(/datum/component/beauty, impressiveness * 75)), 0) + addtimer(CALLBACK(src, TYPE_PROC_REF(/datum, _AddComponent), list(/datum/component/beauty, impressiveness * 75)), 0) /obj/structure/statue/attackby(obj/item/W, mob/living/user, params) add_fingerprint(user) diff --git a/code/game/objects/structures/table_flipped.dm b/code/game/objects/structures/table_flipped.dm index 779f97ad8bbf..5047e0f3e2a9 100644 --- a/code/game/objects/structures/table_flipped.dm +++ b/code/game/objects/structures/table_flipped.dm @@ -12,7 +12,7 @@ /obj/structure/flippedtable/Initialize() . = ..() var/static/list/loc_connections = list( - COMSIG_ATOM_EXIT = .proc/on_exit, + COMSIG_ATOM_EXIT = PROC_REF(on_exit), ) AddElement(/datum/element/connect_loc, loc_connections) diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 3bf44bdfc0d8..5882d5c382cd 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -300,7 +300,7 @@ /obj/structure/table/rolling/AfterPutItemOnTable(obj/item/I, mob/living/user) . = ..() attached_items += I - RegisterSignal(I, COMSIG_MOVABLE_MOVED, .proc/RemoveItemFromTable) //Listen for the pickup event, unregister on pick-up so we aren't moved + RegisterSignal(I, COMSIG_MOVABLE_MOVED, PROC_REF(RemoveItemFromTable)) //Listen for the pickup event, unregister on pick-up so we aren't moved /obj/structure/table/rolling/proc/RemoveItemFromTable(datum/source, newloc, dir) SIGNAL_HANDLER @@ -339,13 +339,15 @@ armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 100) var/list/debris = list() + hitsound_type = PROJECTILE_HITSOUND_GLASS + /obj/structure/table/glass/Initialize() . = ..() debris += new frame debris += new /obj/item/shard var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) @@ -361,7 +363,7 @@ return // Don't break if they're just flying past if(AM.throwing) - addtimer(CALLBACK(src, .proc/throw_check, AM), 5) + addtimer(CALLBACK(src, PROC_REF(throw_check), AM), 5) else check_break(AM) @@ -424,6 +426,8 @@ smoothing_groups = list(SMOOTH_GROUP_WOOD_TABLES) //Don't smooth with SMOOTH_GROUP_TABLES canSmoothWith = list(SMOOTH_GROUP_WOOD_TABLES) + hitsound_type = PROJECTILE_HITSOUND_WOOD + /obj/structure/table/wood/narsie_act(total_override = TRUE) if(!total_override) ..() @@ -627,7 +631,7 @@ UnregisterSignal(patient, COMSIG_PARENT_QDELETING) patient = new_patient if(patient) - RegisterSignal(patient, COMSIG_PARENT_QDELETING, .proc/patient_deleted) + RegisterSignal(patient, COMSIG_PARENT_QDELETING, PROC_REF(patient_deleted)) /obj/structure/table/optable/proc/patient_deleted(datum/source) SIGNAL_HANDLER @@ -735,6 +739,7 @@ flags_1 = CONDUCT_1 custom_materials = list(/datum/material/iron=2000) var/building = FALSE + var/obj/construction_type = /obj/structure/rack /obj/item/rack_parts/attackby(obj/item/W, mob/user, params) if (W.tool_behaviour == TOOL_WRENCH) @@ -744,14 +749,17 @@ . = ..() /obj/item/rack_parts/attack_self(mob/user) + if(locate(construction_type) in get_turf(user)) + balloon_alert(user, "no room!") + return if(building) return building = TRUE - to_chat(user, "You start constructing a rack...") + to_chat(user, "You start assembling [src]...") if(do_after(user, 50, target = user, progress=TRUE)) if(!user.temporarilyRemoveItemFromInventory(src)) return - var/obj/structure/rack/R = new /obj/structure/rack(user.loc) + var/obj/structure/R = new construction_type(user.loc) user.visible_message("[user] assembles \a [R].\ ", "You assemble \a [R].") R.add_fingerprint(user) @@ -772,6 +780,8 @@ armor = list("melee" = 10, "bullet" = 30, "laser" = 30, "energy" = 100, "bomb" = 20, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 70) //trolld can_flip = FALSE //same as reinforced and theres no sprites for it + hitsound_type = PROJECTILE_HITSOUND_WOOD + /obj/structure/table/wood/reinforced/deconstruction_hints(mob/user) if(deconstruction_ready) return "The top cover has been pried loose and the main frame's bolts are exposed." diff --git a/code/game/objects/structures/training_machine.dm b/code/game/objects/structures/training_machine.dm index c4940e941f2f..c8c6150c7e15 100644 --- a/code/game/objects/structures/training_machine.dm +++ b/code/game/objects/structures/training_machine.dm @@ -133,7 +133,7 @@ attached_item.forceMove(src) attached_item.vis_flags |= VIS_INHERIT_ID vis_contents += attached_item - RegisterSignal(attached_item, COMSIG_PARENT_QDELETING, .proc/on_attached_delete) + RegisterSignal(attached_item, COMSIG_PARENT_QDELETING, PROC_REF(on_attached_delete)) handle_density() /** diff --git a/code/game/objects/structures/transit_tubes/station.dm b/code/game/objects/structures/transit_tubes/station.dm index 570ead69ead7..77cb9c3a7b67 100644 --- a/code/game/objects/structures/transit_tubes/station.dm +++ b/code/game/objects/structures/transit_tubes/station.dm @@ -109,7 +109,7 @@ if(open_status == STATION_TUBE_CLOSED) icon_state = "opening_[base_icon]" open_status = STATION_TUBE_OPENING - addtimer(CALLBACK(src, .proc/finish_animation), OPEN_DURATION) + addtimer(CALLBACK(src, PROC_REF(finish_animation)), OPEN_DURATION) /obj/structure/transit_tube/station/proc/finish_animation() switch(open_status) @@ -124,7 +124,7 @@ if(open_status == STATION_TUBE_OPEN) icon_state = "closing_[base_icon]" open_status = STATION_TUBE_CLOSING - addtimer(CALLBACK(src, .proc/finish_animation), CLOSE_DURATION) + addtimer(CALLBACK(src, PROC_REF(finish_animation)), CLOSE_DURATION) /obj/structure/transit_tube/station/proc/launch_pod() if(launch_cooldown >= world.time) @@ -146,7 +146,7 @@ /obj/structure/transit_tube/station/pod_stopped(obj/structure/transit_tube_pod/pod, from_dir) pod_moving = TRUE - addtimer(CALLBACK(src, .proc/start_stopped, pod), 5) + addtimer(CALLBACK(src, PROC_REF(start_stopped), pod), 5) /obj/structure/transit_tube/station/proc/start_stopped(obj/structure/transit_tube_pod/pod) if(QDELETED(pod)) @@ -155,7 +155,7 @@ pod.setDir(tube_dirs[1]) //turning the pod around for next launch. launch_cooldown = world.time + cooldown_delay open_animation() - addtimer(CALLBACK(src, .proc/finish_stopped, pod), OPEN_DURATION + 2) + addtimer(CALLBACK(src, PROC_REF(finish_stopped), pod), OPEN_DURATION + 2) /obj/structure/transit_tube/station/proc/finish_stopped(obj/structure/transit_tube_pod/pod) pod_moving = FALSE diff --git a/code/game/objects/structures/transit_tubes/transit_tube_construction.dm b/code/game/objects/structures/transit_tubes/transit_tube_construction.dm index 61a93dab7f14..f3ea6d55a1da 100644 --- a/code/game/objects/structures/transit_tubes/transit_tube_construction.dm +++ b/code/game/objects/structures/transit_tubes/transit_tube_construction.dm @@ -27,7 +27,7 @@ /obj/structure/c_transit_tube/ComponentInitialize() . = ..() - AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_FLIP | ROTATION_VERBS,null,null,CALLBACK(src,.proc/after_rot)) + AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_FLIP | ROTATION_VERBS,null,null,CALLBACK(src, PROC_REF(after_rot))) /obj/structure/c_transit_tube/proc/after_rot(mob/user,rotation_type) if(flipped_build_type && rotation_type == ROTATION_FLIP) @@ -46,7 +46,7 @@ return to_chat(user, "You start attaching the [name]...") add_fingerprint(user) - if(I.use_tool(src, user, time_to_unwrench, volume=50, extra_checks=CALLBACK(src, .proc/can_wrench_in_loc, user))) + if(I.use_tool(src, user, time_to_unwrench, volume=50, extra_checks=CALLBACK(src, PROC_REF(can_wrench_in_loc), user))) to_chat(user, "You attach the [name].") var/obj/structure/transit_tube/R = new build_type(loc, dir) transfer_fingerprints_to(R) diff --git a/code/game/objects/structures/traps.dm b/code/game/objects/structures/traps.dm index fefcc0e47b95..f56cfae9a5b8 100644 --- a/code/game/objects/structures/traps.dm +++ b/code/game/objects/structures/traps.dm @@ -31,7 +31,7 @@ /mob/dead)) var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) @@ -98,94 +98,6 @@ L.electrocute_act(30, src, flags = SHOCK_NOGLOVES) // electrocute act does a message. L.Paralyze(stun_time) -/obj/structure/trap/stun/hunter - name = "bounty trap" - desc = "A trap that only goes off when a fugitive steps on it, announcing the location and stunning the target. You'd better avoid it." - icon = 'icons/obj/objects.dmi' - icon_state = "bounty_trap_on" - stun_time = 200 - sparks = FALSE //the item version gives them off to prevent runtimes (see Destroy()) - checks_antimagic = FALSE - var/obj/item/bountytrap/stored_item - var/caught = FALSE - -/obj/structure/trap/stun/hunter/Initialize(mapload) - . = ..() - time_between_triggers = 10 - flare_message = "[src] snaps shut!" - -/obj/structure/trap/stun/hunter/Destroy() - if(!QDELETED(stored_item)) - qdel(stored_item) - stored_item = null - return ..() - -/obj/structure/trap/stun/hunter/on_entered(datum/source, atom/movable/AM) - if(isliving(AM)) - var/mob/living/L = AM - if(!L.mind?.has_antag_datum(/datum/antagonist/fugitive)) - return - caught = TRUE - . = ..() - -/obj/structure/trap/stun/hunter/flare() - ..() - var/turf/our_turf = get_turf(src) - if(!our_turf) - return - if(!stored_item) - qdel(src) - return - stored_item.forceMove(get_turf(src)) - forceMove(stored_item) - if(caught) - stored_item.announce_fugitive() - caught = FALSE - -/obj/item/bountytrap - name = "bounty trap" - desc = "A trap that only goes off when a fugitive steps on it, announcing the location and stunning the target. It's currently inactive." - icon = 'icons/obj/objects.dmi' - icon_state = "bounty_trap_off" - var/obj/structure/trap/stun/hunter/stored_trap - var/obj/item/radio/radio - var/datum/effect_system/spark_spread/spark_system - -/obj/item/bountytrap/Initialize(mapload) - . = ..() - radio = new(src) - radio.subspace_transmission = TRUE - radio.canhear_range = 0 - radio.recalculateChannels() - spark_system = new - spark_system.set_up(4,1,src) - spark_system.attach(src) - name = "[name] #[rand(1, 999)]" - stored_trap = new(src) - stored_trap.name = name - stored_trap.stored_item = src - -/obj/item/bountytrap/proc/announce_fugitive() - spark_system.start() - playsound(src, 'sound/machines/ding.ogg', 50, TRUE) - radio.talk_into(src, "Fugitive has triggered this trap in the [get_area_name(src)]!", RADIO_CHANNEL_COMMON) - -/obj/item/bountytrap/attack_self(mob/living/user) - var/turf/T = get_turf(src) - if(!user || !user.transferItemToLoc(src, T))//visibly unequips - return - to_chat(user, "You set up [src]. Examine while close to disarm it.") - stored_trap.forceMove(T)//moves trap to ground - forceMove(stored_trap)//moves item into trap - -/obj/item/bountytrap/Destroy() - if(!QDELETED(stored_trap)) - qdel(stored_trap) - stored_trap = null - QDEL_NULL(radio) - QDEL_NULL(spark_system) - . = ..() - /obj/structure/trap/fire name = "flame trap" desc = "A trap that will set you ablaze. You'd better avoid it." diff --git a/code/game/objects/structures/windoor_assembly.dm b/code/game/objects/structures/windoor_assembly.dm index 200aaf35700d..78ebfc3a4fd7 100644 --- a/code/game/objects/structures/windoor_assembly.dm +++ b/code/game/objects/structures/windoor_assembly.dm @@ -38,7 +38,7 @@ /obj/structure/windoor_assembly/Initialize() . = ..() var/static/list/loc_connections = list( - COMSIG_ATOM_EXIT = .proc/on_exit, + COMSIG_ATOM_EXIT = PROC_REF(on_exit), ) AddElement(/datum/element/connect_loc, loc_connections) @@ -326,7 +326,7 @@ /obj/structure/windoor_assembly/ComponentInitialize() . = ..() var/static/rotation_flags = ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS - AddComponent(/datum/component/simple_rotation, rotation_flags, can_be_rotated=CALLBACK(src, .proc/can_be_rotated), after_rotation=CALLBACK(src,.proc/after_rotation)) + AddComponent(/datum/component/simple_rotation, rotation_flags, can_be_rotated=CALLBACK(src, PROC_REF(can_be_rotated)), after_rotation=CALLBACK(src, PROC_REF(after_rotation))) /obj/structure/windoor_assembly/proc/can_be_rotated(mob/user,rotation_type) if(anchored) diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 92a72b7261be..d23ef8bca223 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -30,6 +30,8 @@ flags_ricochet = RICOCHET_HARD ricochet_chance_mod = 0.4 + hitsound_type = PROJECTILE_HITSOUND_GLASS + /obj/structure/window/examine(mob/user) . = ..() if(flags_1 & NODECONSTRUCT_1) @@ -66,7 +68,7 @@ explosion_block = EXPLOSION_BLOCK_PROC var/static/list/loc_connections = list( - COMSIG_ATOM_EXIT = .proc/on_exit, + COMSIG_ATOM_EXIT = PROC_REF(on_exit), ) if (flags_1 & ON_BORDER_1) @@ -74,7 +76,7 @@ /obj/structure/window/ComponentInitialize() . = ..() - AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS ,null,CALLBACK(src, .proc/can_be_rotated),CALLBACK(src,.proc/after_rotation)) + AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS ,null,CALLBACK(src, PROC_REF(can_be_rotated)),CALLBACK(src, PROC_REF(after_rotation))) /obj/structure/window/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) switch(the_rcd.mode) @@ -190,13 +192,13 @@ if(!(flags_1&NODECONSTRUCT_1) && !(reinf && state >= RWINDOW_FRAME_BOLTED)) if(I.tool_behaviour == TOOL_SCREWDRIVER) to_chat(user, "You begin to [anchored ? "unscrew the window from":"screw the window to"] the floor...") - if(I.use_tool(src, user, decon_speed, volume = 75, extra_checks = CALLBACK(src, .proc/check_anchored, anchored))) + if(I.use_tool(src, user, decon_speed, volume = 75, extra_checks = CALLBACK(src, PROC_REF(check_anchored), anchored))) set_anchored(!anchored) to_chat(user, "You [anchored ? "fasten the window to":"unfasten the window from"] the floor.") return else if(I.tool_behaviour == TOOL_WRENCH && !anchored) to_chat(user, "You begin to disassemble [src]...") - if(I.use_tool(src, user, decon_speed, volume = 75, extra_checks = CALLBACK(src, .proc/check_state_and_anchored, state, anchored))) + if(I.use_tool(src, user, decon_speed, volume = 75, extra_checks = CALLBACK(src, PROC_REF(check_state_and_anchored), state, anchored))) var/obj/item/stack/sheet/G = new glass_type(user.loc, glass_amount) G.add_fingerprint(user) playsound(src, 'sound/items/Deconstruct.ogg', 50, TRUE) @@ -205,7 +207,7 @@ return else if(I.tool_behaviour == TOOL_CROWBAR && reinf && (state == WINDOW_OUT_OF_FRAME) && anchored) to_chat(user, "You begin to lever the window into the frame...") - if(I.use_tool(src, user, 100, volume = 75, extra_checks = CALLBACK(src, .proc/check_state_and_anchored, state, anchored))) + if(I.use_tool(src, user, 100, volume = 75, extra_checks = CALLBACK(src, PROC_REF(check_state_and_anchored), state, anchored))) state = RWINDOW_SECURE to_chat(user, "You pry the window into the frame.") return @@ -409,7 +411,7 @@ if(I.use_tool(src, user, 150, volume = 100)) to_chat(user, "The security bolts are glowing white hot and look ready to be removed.") state = RWINDOW_BOLTS_HEATED - addtimer(CALLBACK(src, .proc/cool_bolts), 300) + addtimer(CALLBACK(src, PROC_REF(cool_bolts)), 300) return if(RWINDOW_BOLTS_HEATED) if(I.tool_behaviour == TOOL_SCREWDRIVER) @@ -538,7 +540,7 @@ if(I.use_tool(src, user, 180, volume = 100)) to_chat(user, "The security screws are glowing white hot and look ready to be removed.") state = RWINDOW_BOLTS_HEATED - addtimer(CALLBACK(src, .proc/cool_bolts), 300) + addtimer(CALLBACK(src, PROC_REF(cool_bolts)), 300) return if(RWINDOW_BOLTS_HEATED) if(I.tool_behaviour == TOOL_SCREWDRIVER) diff --git a/code/game/sound.dm b/code/game/sound.dm index 09affc888bf0..9b53f3d2b010 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -245,8 +245,62 @@ distance_multiplier - Can be used to multiply the distance at which the sound is soundin = pick('sound/voice/hiss1.ogg','sound/voice/hiss2.ogg','sound/voice/hiss3.ogg','sound/voice/hiss4.ogg') if ("pageturn") soundin = pick('sound/effects/pageturn1.ogg', 'sound/effects/pageturn2.ogg','sound/effects/pageturn3.ogg') - if ("ricochet") - soundin = pick('sound/weapons/effects/ric1.ogg', 'sound/weapons/effects/ric2.ogg','sound/weapons/effects/ric3.ogg','sound/weapons/effects/ric4.ogg','sound/weapons/effects/ric5.ogg') +//gun related stuff start + if ("bullet_hit") + soundin = pick('sound/weapons/gun/hit/bullet_impact1.ogg', 'sound/weapons/gun/hit/bullet_impact2.ogg','sound/weapons/gun/hit/bullet_impact3.ogg') + if ("bullet_impact") + soundin = pick('sound/weapons/gun/hit/bullet_ricochet1.ogg', 'sound/weapons/gun/hit/bullet_ricochet2.ogg','sound/weapons/gun/hit/bullet_ricochet3.ogg','sound/weapons/gun/hit/bullet_ricochet4.ogg','sound/weapons/gun/hit/bullet_ricochet5.ogg','sound/weapons/gun/hit/bullet_ricochet6.ogg','sound/weapons/gun/hit/bullet_ricochet7.ogg','sound/weapons/gun/hit/bullet_ricochet8.ogg') + if ("bullet_bounce") + soundin = pick('sound/weapons/gun/hit/bullet_bounce1.ogg', 'sound/weapons/gun/hit/bullet_bounce2.ogg','sound/weapons/gun/hit/bullet_bounce3.ogg','sound/weapons/gun/hit/bullet_bounce4.ogg','sound/weapons/gun/hit/bullet_bounce5.ogg') + if("bullet_miss") + soundin = pick('sound/weapons/gun/hit/bullet_miss1.ogg', 'sound/weapons/gun/hit/bullet_miss2.ogg', 'sound/weapons/gun/hit/bullet_miss3.ogg') + if("bullet_hit_glass") + soundin = pick( + 'sound/weapons/gun/hit/bullet_glass_01.ogg', + 'sound/weapons/gun/hit/bullet_glass_02.ogg', + 'sound/weapons/gun/hit/bullet_glass_03.ogg', + 'sound/weapons/gun/hit/bullet_glass_04.ogg', + 'sound/weapons/gun/hit/bullet_glass_05.ogg', + 'sound/weapons/gun/hit/bullet_glass_06.ogg', + 'sound/weapons/gun/hit/bullet_glass_07.ogg', + ) + if("bullet_hit_stone") + soundin = pick( + 'sound/weapons/gun/hit/bullet_masonry_01.ogg', + 'sound/weapons/gun/hit/bullet_masonry_02.ogg', + 'sound/weapons/gun/hit/bullet_masonry_03.ogg', + 'sound/weapons/gun/hit/bullet_masonry_04.ogg', + 'sound/weapons/gun/hit/bullet_masonry_05.ogg', + 'sound/weapons/gun/hit/bullet_masonry_06.ogg', + ) + if("bullet_hit_metal") + soundin = pick( + 'sound/weapons/gun/hit/bullet_metal_01.ogg', + 'sound/weapons/gun/hit/bullet_metal_02.ogg', + 'sound/weapons/gun/hit/bullet_metal_03.ogg', + 'sound/weapons/gun/hit/bullet_metal_04.ogg', + 'sound/weapons/gun/hit/bullet_metal_05.ogg', + 'sound/weapons/gun/hit/bullet_metal_06.ogg', + ) + if("bullet_hit_wood") + soundin = pick( + 'sound/weapons/gun/hit/bullet_wood_01.ogg', + 'sound/weapons/gun/hit/bullet_wood_02.ogg', + 'sound/weapons/gun/hit/bullet_wood_03.ogg', + 'sound/weapons/gun/hit/bullet_wood_04.ogg', + 'sound/weapons/gun/hit/bullet_wood_05.ogg', + 'sound/weapons/gun/hit/bullet_wood_06.ogg', + ) + if("bullet_hit_snow") + soundin = pick( + 'sound/weapons/gun/hit/bullet_snow_01.ogg', + 'sound/weapons/gun/hit/bullet_snow_02.ogg', + 'sound/weapons/gun/hit/bullet_snow_03.ogg', + 'sound/weapons/gun/hit/bullet_snow_04.ogg', + 'sound/weapons/gun/hit/bullet_snow_05.ogg', + 'sound/weapons/gun/hit/bullet_snow_06.ogg', + ) +// gun related stuff end if ("terminal_type") soundin = pick('sound/machines/terminal_button01.ogg', 'sound/machines/terminal_button02.ogg', 'sound/machines/terminal_button03.ogg', \ 'sound/machines/terminal_button04.ogg', 'sound/machines/terminal_button05.ogg', 'sound/machines/terminal_button06.ogg', \ @@ -257,8 +311,6 @@ distance_multiplier - Can be used to multiply the distance at which the sound is soundin = pick('sound/hallucinations/im_here1.ogg', 'sound/hallucinations/im_here2.ogg') if ("can_open") soundin = pick('sound/effects/can_open1.ogg', 'sound/effects/can_open2.ogg', 'sound/effects/can_open3.ogg') - if("bullet_miss") - soundin = pick('sound/weapons/bulletflyby.ogg', 'sound/weapons/bulletflyby2.ogg', 'sound/weapons/bulletflyby3.ogg') if("revolver_spin") soundin = pick('sound/weapons/gun/revolver/spin1.ogg', 'sound/weapons/gun/revolver/spin2.ogg', 'sound/weapons/gun/revolver/spin3.ogg') if("law") diff --git a/code/game/turfs/closed/_closed.dm b/code/game/turfs/closed/_closed.dm index 8a54ba60939a..4f493685e60c 100644 --- a/code/game/turfs/closed/_closed.dm +++ b/code/game/turfs/closed/_closed.dm @@ -82,8 +82,8 @@ icon_state = "reinforced_wall-0" base_icon_state = "reinforced_wall" smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS) - canSmoothWith = list(SMOOTH_GROUP_WALLS) + smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_AIRLOCK) + canSmoothWith = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_AIRLOCK) /turf/closed/indestructible/riveted @@ -162,8 +162,8 @@ icon_state = "wood_wall-0" base_icon_state = "wood_wall" smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_WOOD_WALLS) - canSmoothWith = list(SMOOTH_GROUP_WOOD_WALLS) + smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_AIRLOCK) + canSmoothWith = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_WINDOW_FULLTILE, SMOOTH_GROUP_AIRLOCK) /turf/closed/indestructible/alien diff --git a/code/game/turfs/closed/minerals.dm b/code/game/turfs/closed/minerals.dm index ebc3b5164505..ac8d2185b940 100644 --- a/code/game/turfs/closed/minerals.dm +++ b/code/game/turfs/closed/minerals.dm @@ -30,6 +30,8 @@ var/x_offset = -4 var/y_offset = -4 + hitsound_type = PROJECTILE_HITSOUND_STONE + /turf/closed/mineral/Initialize(mapload, inherited_virtual_z) . = ..() if(has_borders) @@ -105,7 +107,7 @@ if(defer_change) // TODO: make the defer change var a var for any changeturf flag flags = CHANGETURF_DEFER_CHANGE ScrapeAway(null, flags) - addtimer(CALLBACK(src, .proc/AfterChange), 1, TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(AfterChange)), 1, TIMER_UNIQUE) playsound(src, 'sound/effects/break_stone.ogg', 50, TRUE) //beautiful destruction /turf/closed/mineral/attack_animal(mob/living/simple_animal/user) @@ -575,7 +577,7 @@ if(defer_change) flags = CHANGETURF_DEFER_CHANGE ScrapeAway(null, flags) - addtimer(CALLBACK(src, .proc/AfterChange), 1, TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(AfterChange)), 1, TIMER_UNIQUE) /turf/closed/mineral/gibtonite/volcanic @@ -638,7 +640,7 @@ if(defer_change) // TODO: make the defer change var a var for any changeturf flag flags = CHANGETURF_DEFER_CHANGE ScrapeAway(flags=flags) - addtimer(CALLBACK(src, .proc/AfterChange), 1, TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(AfterChange)), 1, TIMER_UNIQUE) playsound(src, 'sound/effects/break_stone.ogg', 50, TRUE) //beautiful destruction H.mind.adjust_experience(/datum/skill/mining, 100) //yay! diff --git a/code/game/turfs/closed/wall/mineral_walls.dm b/code/game/turfs/closed/wall/mineral_walls.dm index 77259ba448d2..720a95afd0e1 100644 --- a/code/game/turfs/closed/wall/mineral_walls.dm +++ b/code/game/turfs/closed/wall/mineral_walls.dm @@ -7,6 +7,8 @@ var/last_event = 0 var/active = null + hitsound_type = PROJECTILE_HITSOUND_METAL + /turf/closed/wall/mineral/gold name = "gold wall" desc = "A wall with gold plating. Swag!" @@ -60,6 +62,8 @@ connector_icon_state = "diamond_wall_connector" no_connector_typecache = list(/turf/closed/wall/mineral/diamond, /obj/structure/falsewall/diamond) + hitsound_type = PROJECTILE_HITSOUND_GLASS + /turf/closed/wall/mineral/diamond/yesdiag icon_state = "diamond_wall-255" smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS @@ -97,6 +101,8 @@ connector_icon_state = "sandstone_wall_connector" no_connector_typecache = list(/turf/closed/wall/mineral/sandstone, /obj/structure/falsewall/sandstone) + hitsound_type = PROJECTILE_HITSOUND_NON_LIVING + /turf/closed/wall/mineral/sandstone/yesdiag icon_state = "sandstone_wall-255" smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS @@ -181,6 +187,8 @@ connector_icon_state = "plasma_wall_connector" no_connector_typecache = list(/turf/closed/wall/mineral/plasma, /obj/structure/falsewall/plasma) + hitsound_type = PROJECTILE_HITSOUND_GLASS + /turf/closed/wall/mineral/plasma/yesdiag icon_state = "plasma_wall-255" smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS @@ -230,6 +238,8 @@ connector_icon_state = "wood_wall_connector" no_connector_typecache = list(/turf/closed/wall/mineral/wood, /obj/structure/falsewall/wood) + hitsound_type = PROJECTILE_HITSOUND_WOOD + /turf/closed/wall/mineral/wood/yesdiag icon_state = "wood_wall-255" smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS | SMOOTH_CONNECTORS @@ -298,6 +308,8 @@ bullet_sizzle = TRUE bullet_bounce_sound = null + hitsound_type = PROJECTILE_HITSOUND_SNOW + /turf/closed/wall/mineral/snow/yesdiag icon_state = "snow_wall-255" smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS @@ -331,6 +343,8 @@ smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_TITANIUM_WALLS) canSmoothWith = list(SMOOTH_GROUP_TITANIUM_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTLE_PARTS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_WINDOW_FULLTILE) + hitsound_type = PROJECTILE_HITSOUND_NON_LIVING + /turf/closed/wall/mineral/titanium/exterior smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_TITANIUM_WALLS_EXTERIOR) canSmoothWith = list(SMOOTH_GROUP_TITANIUM_WALLS_EXTERIOR, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTLE_PARTS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_WINDOW_FULLTILE) @@ -407,6 +421,8 @@ smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_PLASTITANIUM_WALLS) canSmoothWith = list(SMOOTH_GROUP_PLASTITANIUM_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTLE_PARTS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_WINDOW_FULLTILE) + hitsound_type = PROJECTILE_HITSOUND_NON_LIVING + /turf/closed/wall/mineral/plastitanium/nodiagonal icon = 'icons/turf/walls/plastitanium_wall.dmi' icon_state = "map-shuttle_nd" diff --git a/code/game/turfs/open/_open.dm b/code/game/turfs/open/_open.dm index a665e0935ee2..0e4d5ae8f842 100644 --- a/code/game/turfs/open/_open.dm +++ b/code/game/turfs/open/_open.dm @@ -246,7 +246,7 @@ lube |= SLIDE_ICE if(lube&SLIDE) - new /datum/forced_movement(C, get_ranged_target_turf(C, olddir, 4), 1, FALSE, CALLBACK(C, /mob/living/carbon/.proc/spin, 1, 1)) + new /datum/forced_movement(C, get_ranged_target_turf(C, olddir, 4), 1, FALSE, CALLBACK(C, TYPE_PROC_REF(/mob/living/carbon, spin), 1, 1)) else if(lube&SLIDE_ICE) if(C.force_moving) //If we're already slipping extend it qdel(C.force_moving) diff --git a/code/game/turfs/open/floor/conc_floor.dm b/code/game/turfs/open/floor/conc_floor.dm index 6a4908a4889b..542ac66c1355 100644 --- a/code/game/turfs/open/floor/conc_floor.dm +++ b/code/game/turfs/open/floor/conc_floor.dm @@ -75,7 +75,7 @@ // test this uniqueid = "concmenu_[REF(user)]", radius = 48, - custom_check = CALLBACK(src, .proc/check_menu, user), + custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE ) if(!choice) diff --git a/code/game/turfs/open/floor/hangar.dm b/code/game/turfs/open/floor/hangar.dm new file mode 100644 index 000000000000..be071957d6f9 --- /dev/null +++ b/code/game/turfs/open/floor/hangar.dm @@ -0,0 +1,27 @@ +/* +Unique, indestructible turfs with planetary atmos to be used in outpost hangars. +Each floor in a hangar map must be subtyped here. +*/ + +/turf/open/floor/hangar + name = "hangar" + icon_state = "plating" + base_icon_state = "plating" + baseturfs = /turf/open/floor/hangar + planetary_atmos = 1 + initial_gas_mix = OPENTURF_DEFAULT_ATMOS + +/turf/open/floor/hangar/plasteel + name = "plasteel" + icon = 'icons/turf/floors/tiles.dmi' + icon_state = "tiled_gray" + +/turf/open/floor/hangar/plasteel/dark + name = "dark" + icon = 'icons/turf/floors/tiles.dmi' + icon_state = "tiled_dark" + +/turf/open/floor/hangar/plasteel/white + name = "white" + icon = 'icons/turf/floors/tiles.dmi' + icon_state = "tiled_light" diff --git a/code/game/turfs/open/floor/light_floor.dm b/code/game/turfs/open/floor/light_floor.dm index 9157bfecc5b0..a0a4a357fe58 100644 --- a/code/game/turfs/open/floor/light_floor.dm +++ b/code/game/turfs/open/floor/light_floor.dm @@ -111,7 +111,7 @@ return if(!can_modify_colour) return FALSE - var/choice = show_radial_menu(user,src, lighttile_designs, custom_check = CALLBACK(src, .proc/check_menu, user, I), radius = 36, require_near = TRUE) + var/choice = show_radial_menu(user,src, lighttile_designs, custom_check = CALLBACK(src, PROC_REF(check_menu), user, I), radius = 36, require_near = TRUE) if(!choice) return FALSE currentcolor = choice diff --git a/code/game/turfs/open/floor/plating/rockplanet.dm b/code/game/turfs/open/floor/plating/rockplanet.dm index 1bd9f537c9af..1fbf75b2e2f2 100644 --- a/code/game/turfs/open/floor/plating/rockplanet.dm +++ b/code/game/turfs/open/floor/plating/rockplanet.dm @@ -33,6 +33,9 @@ icon_state = "wet_soft0" base_icon_state = "wet_soft" +/turf/open/floor/plating/asteroid/rockplanet/wet/atmos + initial_gas_mix = OPENTURF_DEFAULT_ATMOS + /turf/open/floor/plating/asteroid/rockplanet/wet/lit light_range = 2 light_power = 0.6 @@ -46,3 +49,37 @@ light_range = 2 light_power = 0.6 light_color = COLOR_VERY_LIGHT_GRAY + +/turf/open/floor/plating/asteroid/rockplanet/grass + name = "dry grass" + desc = "A patch of dry grass." + icon_state = "grass0" + +/turf/open/floor/plating/asteroid/rockplanet/mud + name = "mud" + icon_state = "greenerdirt" + +/turf/open/floor/plating/asteroid/rockplanet/pond + name = "pond" + icon_state = "riverwater" + +/turf/open/floor/plating/asteroid/rockplanet/plating + name = "exterior plating" + icon_state = "plating" + +/turf/open/floor/plating/asteroid/rockplanet/plating/scorched + name = "exterior plating" + icon_state = "panelscorched" + +/turf/open/floor/plating/asteroid/rockplanet/stairs + name = "exterior stairs" + icon_state = "stairs" + +/turf/open/floor/plating/asteroid/rockplanet/hull_plating + name = "exterior hull plating" + icon_state = "regular_hull" + +/turf/open/floor/plating/asteroid/rockplanet/plasteel + name = "exterior floor" + icon_state = "tiled_gray" + icon = 'icons/turf/floors/tiles.dmi' diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index e2fb89b9cb3b..ca5a6fe3fd25 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -33,7 +33,7 @@ GLOBAL_LIST_EMPTY(created_baseturf_lists) var/requires_activation //add to air processing after initialize? var/changing_turf = FALSE - var/bullet_bounce_sound = 'sound/weapons/gun/general/mag_bullet_remove.ogg' //sound played when a shell casing is ejected ontop of the turf. + var/list/bullet_bounce_sound = list('sound/weapons/gun/general/bulletcasing_bounce1.ogg', 'sound/weapons/gun/general/bulletcasing_bounce2.ogg', 'sound/weapons/gun/general/bulletcasing_bounce3.ogg') var/bullet_sizzle = FALSE //used by ammo_casing/bounce_away() to determine if the shell casing should make a sizzle sound when it's ejected over the turf //IE if the turf is supposed to be water, set TRUE. @@ -76,6 +76,8 @@ GLOBAL_LIST_EMPTY(created_baseturf_lists) ///the holodeck can load onto this turf if TRUE var/holodeck_compatible = FALSE + hitsound_volume = 90 + /turf/vv_edit_var(var_name, new_value) var/static/list/banned_edits = list("x", "y", "z") if(var_name in banned_edits) @@ -342,7 +344,8 @@ GLOBAL_LIST_EMPTY(created_baseturf_lists) return FALSE //There's a lot of QDELETED() calls here if someone can figure out how to optimize this but not runtime when something gets deleted by a Bump/CanPass/Cross call, lemme know or go ahead and fix this mess - kevinz000 -/turf/Enter(atom/movable/mover, atom/oldloc) +// Test if a movable can enter this turf. Send no_side_effects = TRUE to prevent bumping. +/turf/Enter(atom/movable/mover, atom/oldloc, no_side_effects = FALSE) // Do not call ..() // Byond's default turf/Enter() doesn't have the behaviour we want with Bump() // By default byond will call Bump() on the first dense object in contents @@ -356,6 +359,8 @@ GLOBAL_LIST_EMPTY(created_baseturf_lists) if(thing == mover || thing == mover.loc) // Multi tile objects and moving out of other objects continue if(!thing.Cross(mover)) + if(no_side_effects) + return FALSE if(QDELETED(mover)) //Mover deleted from Cross/CanPass, do not proceed. return FALSE if((mover.movement_type & PHASING)) @@ -460,7 +465,7 @@ GLOBAL_LIST_EMPTY(created_baseturf_lists) 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(usr, 10, TRUE, src, FALSE, CALLBACK(src_object, TYPE_PROC_REF(/datum/component/storage, mass_remove_from_storage), src, things, progress))) stoplag(1) progress.end_progress() @@ -666,3 +671,7 @@ GLOBAL_LIST_EMPTY(created_baseturf_lists) . += "[/obj/effect/turf_decal]{\n\ticon = '[decal.pic.icon]';\n\ticon_state = \"[decal.pic.icon_state]\";\n\tdir = [decal.pic.dir];\n\tcolor = \"[decal.pic.color]\"\n\t}" first = FALSE return + +/turf/bullet_act(obj/projectile/hitting_projectile) + . = ..() + bullet_hit_sfx(hitting_projectile) diff --git a/code/game/world.dm b/code/game/world.dm index 93f1e15e88cf..8365283c7897 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -97,11 +97,11 @@ GLOBAL_VAR(restart_counter) CONFIG_SET(number/round_end_countdown, 0) var/datum/callback/cb #ifdef UNIT_TESTS - cb = CALLBACK(GLOBAL_PROC, /proc/RunUnitTests) + cb = CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(RunUnitTests)) #else cb = VARSET_CALLBACK(SSticker, force_ending, TRUE) #endif - SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, /proc/_addtimer, cb, 10 SECONDS)) + SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_addtimer), cb, 10 SECONDS)) /world/proc/SetupLogs() diff --git a/code/modules/admin/IsBanned.dm b/code/modules/admin/IsBanned.dm index 33b923f10285..9341a5dec3ef 100644 --- a/code/modules/admin/IsBanned.dm +++ b/code/modules/admin/IsBanned.dm @@ -109,7 +109,7 @@ return GLOB.stickybanadminexemptions[ckey] = world.time stoplag() // sleep a byond tick - GLOB.stickbanadminexemptiontimerid = addtimer(CALLBACK(GLOBAL_PROC, /proc/restore_stickybans), 5 SECONDS, TIMER_STOPPABLE|TIMER_UNIQUE|TIMER_OVERRIDE) + GLOB.stickbanadminexemptiontimerid = addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(restore_stickybans)), 5 SECONDS, TIMER_STOPPABLE|TIMER_UNIQUE|TIMER_OVERRIDE) return var/list/ban = ..() //default pager ban stuff @@ -194,7 +194,7 @@ if (ban["fromdb"]) if(SSdbcore.Connect()) - INVOKE_ASYNC(SSdbcore, /datum/controller/subsystem/dbcore/proc.QuerySelect, list( + INVOKE_ASYNC(SSdbcore, TYPE_PROC_REF(/datum/controller/subsystem/dbcore, QuerySelect), list( SSdbcore.NewQuery( "INSERT INTO [format_table_name("stickyban_matched_ckey")] (matched_ckey, stickyban) VALUES (:ckey, :bannedckey) ON DUPLICATE KEY UPDATE last_matched = now()", list("ckey" = ckey, "bannedckey" = bannedckey) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index a530012270ae..82cb857576c1 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -437,7 +437,7 @@ dat += "(Force Roundstart Rulesets)
" if (GLOB.dynamic_forced_roundstart_ruleset.len > 0) for(var/datum/dynamic_ruleset/roundstart/rule in GLOB.dynamic_forced_roundstart_ruleset) - dat += {"-> [rule.name] <-
"} + dat += {"-> [rule.name] <-
"} dat += "(Clear Rulesets)
" dat += "(Dynamic mode options)
" dat += "
" diff --git a/code/modules/admin/create_mob.dm b/code/modules/admin/create_mob.dm index 343289191fb6..c1845945485f 100644 --- a/code/modules/admin/create_mob.dm +++ b/code/modules/admin/create_mob.dm @@ -38,7 +38,6 @@ H.dna.features["moth_fluff"] = pick(GLOB.moth_fluff_list) H.dna.features["spider_legs"] = pick(GLOB.spider_legs_list) H.dna.features["spider_spinneret"] = pick(GLOB.spider_spinneret_list) - H.dna.features["spider_mandibles"] = pick(GLOB.spider_mandibles_list) H.dna.features["squid_face"] = pick(GLOB.squid_face_list) H.dna.features["kepori_feathers"] = pick(GLOB.kepori_feathers_list) H.dna.features["kepori_body_feathers"] = pick(GLOB.kepori_body_feathers_list) diff --git a/code/modules/admin/fun_balloon.dm b/code/modules/admin/fun_balloon.dm index adb7a42dc511..99e7b1692ecc 100644 --- a/code/modules/admin/fun_balloon.dm +++ b/code/modules/admin/fun_balloon.dm @@ -131,7 +131,7 @@ var/mob/living/M = AM M.forceMove(get_turf(LA)) to_chat(M, "You're trapped in a deadly arena! To escape, you'll need to drag a severed head to the escape portals.", confidential = TRUE) - INVOKE_ASYNC(src, .proc/do_bloodbath, M) + INVOKE_ASYNC(src, PROC_REF(do_bloodbath), M) /obj/effect/forcefield/arena_shuttle_entrance/proc/do_bloodbath(mob/living/L) var/obj/effect/mine/pickup/bloodbath/B = new (L) diff --git a/code/modules/admin/sound_emitter.dm b/code/modules/admin/sound_emitter.dm index 2c930034967f..bdf2a4e6aa34 100644 --- a/code/modules/admin/sound_emitter.dm +++ b/code/modules/admin/sound_emitter.dm @@ -58,16 +58,16 @@ /obj/effect/sound_emitter/proc/edit_emitter(mob/user) var/dat = "" - dat += "Label: [maptext ? maptext : "No label set!"]
" + dat += "Label: [maptext ? maptext : "No label set!"]
" dat += "
" - dat += "Sound File: [sound_file ? sound_file : "No file chosen!"]
" - dat += "Volume: [sound_volume]%
" + dat += "Sound File: [sound_file ? sound_file : "No file chosen!"]
" + dat += "Volume: [sound_volume]%
" dat += "
" - dat += "Mode: [motus_operandi]
" + dat += "Mode: [motus_operandi]
" if(motus_operandi != SOUND_EMITTER_LOCAL) - dat += "Range: [emitter_range][emitter_range == SOUND_EMITTER_RADIUS ? "[play_radius]-tile radius" : ""]
" + dat += "Range: [emitter_range][emitter_range == SOUND_EMITTER_RADIUS ? "[play_radius]-tile radius" : ""]
" dat += "
" - dat += "Play Sound (interrupts other sound emitter sounds)" + dat += "Play Sound (interrupts other sound emitter sounds)" var/datum/browser/popup = new(user, "emitter", "", 500, 600) popup.set_content(dat) popup.open() diff --git a/code/modules/admin/team_panel.dm b/code/modules/admin/team_panel.dm index 75abbb5391c2..f8d40a6dde53 100644 --- a/code/modules/admin/team_panel.dm +++ b/code/modules/admin/team_panel.dm @@ -164,7 +164,7 @@ /datum/team/custom/get_admin_commands() . = ..() - .["Force HUD"] = CALLBACK(src,.proc/admin_force_hud) + .["Force HUD"] = CALLBACK(src, PROC_REF(admin_force_hud)) //This is here if you want admin created teams to tell each other apart easily. /datum/team/custom/proc/admin_force_hud(mob/user) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index fc6f055f4ae1..a4a70c00e429 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -946,7 +946,7 @@ L.Unconscious(100) sleep(5) L.forceMove(pick(GLOB.tdome1)) - addtimer(CALLBACK(GLOBAL_PROC, /proc/to_chat, L, "You have been sent to the Thunderdome."), 5 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), L, "You have been sent to the Thunderdome."), 5 SECONDS) log_admin("[key_name(usr)] has sent [key_name(L)] to the thunderdome. (Team 1)") message_admins("[key_name_admin(usr)] has sent [key_name_admin(L)] to the thunderdome. (Team 1)") @@ -972,7 +972,7 @@ L.Unconscious(100) sleep(5) L.forceMove(pick(GLOB.tdome2)) - addtimer(CALLBACK(GLOBAL_PROC, /proc/to_chat, L, "You have been sent to the Thunderdome."), 5 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), L, "You have been sent to the Thunderdome."), 5 SECONDS) log_admin("[key_name(usr)] has sent [key_name(L)] to the thunderdome. (Team 2)") message_admins("[key_name_admin(usr)] has sent [key_name_admin(L)] to the thunderdome. (Team 2)") @@ -995,7 +995,7 @@ L.Unconscious(100) sleep(5) L.forceMove(pick(GLOB.tdomeadmin)) - addtimer(CALLBACK(GLOBAL_PROC, /proc/to_chat, L, "You have been sent to the Thunderdome."), 5 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), L, "You have been sent to the Thunderdome."), 5 SECONDS) log_admin("[key_name(usr)] has sent [key_name(L)] to the thunderdome. (Admin.)") message_admins("[key_name_admin(usr)] has sent [key_name_admin(L)] to the thunderdome. (Admin.)") @@ -1025,7 +1025,7 @@ L.Unconscious(100) sleep(5) L.forceMove(pick(GLOB.tdomeobserve)) - addtimer(CALLBACK(GLOBAL_PROC, /proc/to_chat, L, "You have been sent to the Thunderdome."), 5 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), L, "You have been sent to the Thunderdome."), 5 SECONDS) log_admin("[key_name(usr)] has sent [key_name(L)] to the thunderdome. (Observer.)") message_admins("[key_name_admin(usr)] has sent [key_name_admin(L)] to the thunderdome. (Observer.)") diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2.dm b/code/modules/admin/verbs/SDQL2/SDQL_2.dm index 0295a1f95cb6..2500be7f9035 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2.dm @@ -498,7 +498,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null options |= SDQL2_OPTION_SEQUENTIAL /datum/SDQL2_query/proc/ARun() - INVOKE_ASYNC(src, .proc/Run) + INVOKE_ASYNC(src, PROC_REF(Run)) /datum/SDQL2_query/proc/Run() if(SDQL2_IS_RUNNING) diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index 1b9b41d773b1..225a074b1477 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -246,7 +246,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) //Removes the ahelp verb and returns it after 2 minutes /datum/admin_help/proc/timeout_verb() remove_verb(initiator, /client/verb/adminhelp) - initiator.adminhelptimerid = addtimer(CALLBACK(initiator, /client/proc/giveadminhelpverb), 1200, TIMER_STOPPABLE) //2 minute cooldown of admin helps + initiator.adminhelptimerid = addtimer(CALLBACK(initiator, TYPE_PROC_REF(/client, giveadminhelpverb)), 1200, TIMER_STOPPABLE) //2 minute cooldown of admin helps //private /datum/admin_help/proc/full_monty(ref_src) @@ -405,7 +405,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) state = AHELP_RESOLVED GLOB.ahelp_tickets.list_insert(src) - addtimer(CALLBACK(initiator, /client/proc/giveadminhelpverb), 50) + addtimer(CALLBACK(initiator, TYPE_PROC_REF(/client, giveadminhelpverb)), 50) add_interaction("Resolved by [key_name].") to_chat(initiator, "Your ticket has been resolved by an admin. The Adminhelp verb will be returned to you shortly.", confidential = TRUE) diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 63f0fc81bc87..9647d4c07947 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -47,7 +47,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that if(ishuman(M)) log_admin("[key_name(src)] has robotized [M.key].") var/mob/living/carbon/human/H = M - INVOKE_ASYNC(H, /mob/living/carbon/human.proc/Robotize) + INVOKE_ASYNC(H, TYPE_PROC_REF(/mob/living/carbon/human, Robotize)) else alert("Invalid mob") @@ -84,7 +84,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that return log_admin("[key_name(src)] has animalized [M.key].") - INVOKE_ASYNC(M, /mob.proc/Animalize) + INVOKE_ASYNC(M, TYPE_PROC_REF(/mob, Animalize)) /client/proc/makepAI(turf/T in GLOB.mob_list) @@ -128,7 +128,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that alert("Wait until the game starts") return if(ishuman(M)) - INVOKE_ASYNC(M, /mob/living/carbon/human/proc/Alienize) + INVOKE_ASYNC(M, TYPE_PROC_REF(/mob/living/carbon/human, Alienize)) SSblackbox.record_feedback("tally", "admin_verb", 1, "Make Alien") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! log_admin("[key_name(usr)] made [key_name(M)] into an alien at [AREACOORD(M)].") message_admins("[key_name_admin(usr)] made [ADMIN_LOOKUPFLW(M)] into an alien.") @@ -143,7 +143,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that alert("Wait until the game starts") return if(ishuman(M)) - INVOKE_ASYNC(M, /mob/living/carbon/human/proc/slimeize) + INVOKE_ASYNC(M, TYPE_PROC_REF(/mob/living/carbon/human, slimeize)) SSblackbox.record_feedback("tally", "admin_verb", 1, "Make Slime") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! log_admin("[key_name(usr)] made [key_name(M)] into a slime at [AREACOORD(M)].") message_admins("[key_name_admin(usr)] made [ADMIN_LOOKUPFLW(M)] into a slime.") @@ -836,7 +836,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that var/list/sorted = list() for (var/source in per_source) sorted += list(list("source" = source, "count" = per_source[source])) - sorted = sortTim(sorted, .proc/cmp_timer_data) + sorted = sortTim(sorted, PROC_REF(cmp_timer_data)) // Now that everything is sorted, compile them into an HTML output var/output = "" diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index 72091fbe0469..5b1e0e8ad082 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -277,9 +277,9 @@ ertemplate = new /datum/ert/centcom_official var/list/settings = list( - "preview_callback" = CALLBACK(src, .proc/makeERTPreviewIcon), + "preview_callback" = CALLBACK(src, PROC_REF(makeERTPreviewIcon)), "mainsettings" = list( - "template" = list("desc" = "Template", "callback" = CALLBACK(src, .proc/makeERTTemplateModified), "type" = "datum", "path" = "/datum/ert", "subtypesonly" = TRUE, "value" = ertemplate.type), + "template" = list("desc" = "Template", "callback" = CALLBACK(src, PROC_REF(makeERTTemplateModified)), "type" = "datum", "path" = "/datum/ert", "subtypesonly" = TRUE, "value" = ertemplate.type), "teamsize" = list("desc" = "Team Size", "type" = "number", "value" = ertemplate.teamsize), "mission" = list("desc" = "Mission", "type" = "string", "value" = ertemplate.mission), "polldesc" = list("desc" = "Ghost poll description", "type" = "string", "value" = ertemplate.polldesc), diff --git a/code/modules/admin/verbs/pray.dm b/code/modules/admin/verbs/pray.dm index ca7d208e7a7a..05dccfc0ca75 100644 --- a/code/modules/admin/verbs/pray.dm +++ b/code/modules/admin/verbs/pray.dm @@ -38,6 +38,10 @@ cross.icon_state = "holylight" font_color = "blue" prayer_type = "SPIRITUAL PRAYER" + else if((usr.faction && ("roumain" in usr.faction))) + font_color = "purple" + prayer_type = "SRM PRAYER" + deity = "Ashen Hunter" var/msg_tmp = msg msg = "[icon2html(cross, GLOB.admins)][prayer_type][deity ? " (to [deity])" : ""]: [ADMIN_FULLMONTY(src)] [ADMIN_SC(src)]: [msg]" diff --git a/code/modules/admin/verbs/secrets.dm b/code/modules/admin/verbs/secrets.dm index 18a572c7477b..5ee0df0ec0f5 100644 --- a/code/modules/admin/verbs/secrets.dm +++ b/code/modules/admin/verbs/secrets.dm @@ -341,7 +341,7 @@ SSblackbox.record_feedback("nested tally", "admin_secrets_fun_used", 1, list("Monkeyize All Humans")) for(var/i in GLOB.human_list) var/mob/living/carbon/human/H = i - INVOKE_ASYNC(H, /mob/living/carbon.proc/monkeyize) + INVOKE_ASYNC(H, TYPE_PROC_REF(/mob/living/carbon, monkeyize)) ok = TRUE if("traitor_all") if(!is_funmin) diff --git a/code/modules/admin/view_variables/reference_tracking.dm b/code/modules/admin/view_variables/reference_tracking.dm index 69d3a5d1541b..a9a84986416d 100644 --- a/code/modules/admin/view_variables/reference_tracking.dm +++ b/code/modules/admin/view_variables/reference_tracking.dm @@ -106,11 +106,11 @@ found_refs[varname] = TRUE continue //End early, don't want these logging #endif - log_reftracker("Found [type] \ref[src] in [datum_container.type]'s \ref[datum_container] [varname] var. [container_name]") + log_reftracker("Found [type] [text_ref(src)] in [datum_container.type]'s [text_ref(datum_container)] [varname] var. [container_name]") continue if(islist(variable)) - DoSearchVar(variable, "[container_name] \ref[datum_container] -> [varname] (list)", recursive_limit - 1, search_time) + DoSearchVar(variable, "[container_name] [text_ref(datum_container)] -> [varname] (list)", recursive_limit - 1, search_time) else if(islist(potential_container)) var/normal = IS_NORMAL_LIST(potential_container) @@ -126,7 +126,7 @@ found_refs[potential_cache] = TRUE continue //End early, don't want these logging #endif - log_reftracker("Found [type] \ref[src] in list [container_name].") + log_reftracker("Found [type] [text_ref(src)] in list [container_name].") continue var/assoc_val = null @@ -139,7 +139,7 @@ found_refs[potential_cache] = TRUE continue //End early, don't want these logging #endif - log_reftracker("Found [type] \ref[src] in list [container_name]\[[element_in_list]\]") + log_reftracker("Found [type] [text_ref(src)] in list [container_name]\[[element_in_list]\]") continue //We need to run both of these checks, since our object could be hiding in either of them //Check normal sublists @@ -153,7 +153,7 @@ thing_to_del.qdel_and_find_ref_if_fail(force) /datum/proc/qdel_and_find_ref_if_fail(force = FALSE) - SSgarbage.reference_find_on_fail["\ref[src]"] = TRUE + SSgarbage.reference_find_on_fail[text_ref(src)] = TRUE qdel(src, force) #endif diff --git a/code/modules/antagonists/abductor/abductor.dm b/code/modules/antagonists/abductor/abductor.dm index a5e925546de5..ca67926c0ee8 100644 --- a/code/modules/antagonists/abductor/abductor.dm +++ b/code/modules/antagonists/abductor/abductor.dm @@ -112,7 +112,7 @@ /datum/antagonist/abductor/get_admin_commands() . = ..() - .["Equip"] = CALLBACK(src,.proc/admin_equip) + .["Equip"] = CALLBACK(src, PROC_REF(admin_equip)) /datum/antagonist/abductor/proc/admin_equip(mob/admin) if(!ishuman(owner.current)) diff --git a/code/modules/antagonists/abductor/equipment/abduction_gear.dm b/code/modules/antagonists/abductor/equipment/abduction_gear.dm index 8d0149bf7950..9a5b95d21184 100644 --- a/code/modules/antagonists/abductor/equipment/abduction_gear.dm +++ b/code/modules/antagonists/abductor/equipment/abduction_gear.dm @@ -689,7 +689,7 @@ Congratulations! You are now trained for invasive xenobiology research!"} user.visible_message("[user] places down [src] and activates it.", "You place down [src] and activate it.") user.dropItemToGround(src) playsound(src, 'sound/machines/terminal_alert.ogg', 50) - addtimer(CALLBACK(src, .proc/try_spawn_machine), 30) + addtimer(CALLBACK(src, PROC_REF(try_spawn_machine)), 30) /obj/item/abductor_machine_beacon/proc/try_spawn_machine() var/viable = FALSE @@ -841,7 +841,7 @@ Congratulations! You are now trained for invasive xenobiology research!"} /obj/structure/table/optable/abductor/Initialize() . = ..() var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) diff --git a/code/modules/antagonists/abductor/equipment/gland.dm b/code/modules/antagonists/abductor/equipment/gland.dm index 067d3d563ed7..4efd2b0ab162 100644 --- a/code/modules/antagonists/abductor/equipment/gland.dm +++ b/code/modules/antagonists/abductor/equipment/gland.dm @@ -62,7 +62,7 @@ update_gland_hud() var/atom/movable/screen/alert/mind_control/mind_alert = owner.throw_alert("mind_control", /atom/movable/screen/alert/mind_control) mind_alert.command = command - addtimer(CALLBACK(src, .proc/clear_mind_control), mind_control_duration) + addtimer(CALLBACK(src, PROC_REF(clear_mind_control)), mind_control_duration) return TRUE /obj/item/organ/heart/gland/proc/clear_mind_control() diff --git a/code/modules/antagonists/abductor/equipment/glands/access.dm b/code/modules/antagonists/abductor/equipment/glands/access.dm index e950a07d065e..8b3696d6a8d4 100644 --- a/code/modules/antagonists/abductor/equipment/glands/access.dm +++ b/code/modules/antagonists/abductor/equipment/glands/access.dm @@ -9,7 +9,7 @@ /obj/item/organ/heart/gland/access/activate() to_chat(owner, "You feel like a VIP for some reason.") - RegisterSignal(owner, COMSIG_MOB_ALLOWED, .proc/free_access) + RegisterSignal(owner, COMSIG_MOB_ALLOWED, PROC_REF(free_access)) /obj/item/organ/heart/gland/access/proc/free_access(datum/source, obj/O) return TRUE diff --git a/code/modules/antagonists/abductor/equipment/glands/electric.dm b/code/modules/antagonists/abductor/equipment/glands/electric.dm index 41a545b851a7..d37470394571 100644 --- a/code/modules/antagonists/abductor/equipment/glands/electric.dm +++ b/code/modules/antagonists/abductor/equipment/glands/electric.dm @@ -19,7 +19,7 @@ owner.visible_message("[owner]'s skin starts emitting electric arcs!",\ "You feel electric energy building up inside you!") playsound(get_turf(owner), "sparks", 100, TRUE, -1, SHORT_RANGE_SOUND_EXTRARANGE) - addtimer(CALLBACK(src, .proc/zap), rand(30, 100)) + addtimer(CALLBACK(src, PROC_REF(zap)), rand(30, 100)) /obj/item/organ/heart/gland/electric/proc/zap() tesla_zap(owner, 4, 8000, ZAP_MOB_DAMAGE | ZAP_OBJ_DAMAGE | ZAP_MOB_STUN) diff --git a/code/modules/antagonists/abductor/equipment/glands/heal.dm b/code/modules/antagonists/abductor/equipment/glands/heal.dm index 73b78d2e3d4d..13cc86c0411b 100644 --- a/code/modules/antagonists/abductor/equipment/glands/heal.dm +++ b/code/modules/antagonists/abductor/equipment/glands/heal.dm @@ -107,7 +107,7 @@ else to_chat(owner, "You feel a weird rumble behind your eye sockets...") - addtimer(CALLBACK(src, .proc/finish_replace_eyes), rand(100, 200)) + addtimer(CALLBACK(src, PROC_REF(finish_replace_eyes)), rand(100, 200)) /obj/item/organ/heart/gland/heal/proc/finish_replace_eyes() var/eye_type = /obj/item/organ/eyes @@ -125,7 +125,7 @@ else to_chat(owner, "You feel a weird tingle in your [parse_zone(body_zone)]... even if you don't have one.") - addtimer(CALLBACK(src, .proc/finish_replace_limb, body_zone), rand(150, 300)) + addtimer(CALLBACK(src, PROC_REF(finish_replace_limb), body_zone), rand(150, 300)) /obj/item/organ/heart/gland/heal/proc/finish_replace_limb(body_zone) owner.visible_message("With a loud snap, [owner]'s [parse_zone(body_zone)] rapidly grows back from [owner.p_their()] body!", @@ -155,7 +155,7 @@ if(owner.reagents.has_reagent(R.type)) keep_going = TRUE if(keep_going) - addtimer(CALLBACK(src, .proc/keep_replacing_blood), 30) + addtimer(CALLBACK(src, PROC_REF(keep_replacing_blood)), 30) /obj/item/organ/heart/gland/heal/proc/replace_chest(obj/item/bodypart/chest/chest) if(!IS_ORGANIC_LIMB(chest)) diff --git a/code/modules/antagonists/abductor/equipment/glands/mindshock.dm b/code/modules/antagonists/abductor/equipment/glands/mindshock.dm index cb3bb50b1ed0..4f17cd26eb05 100644 --- a/code/modules/antagonists/abductor/equipment/glands/mindshock.dm +++ b/code/modules/antagonists/abductor/equipment/glands/mindshock.dm @@ -48,7 +48,7 @@ if(LAZYLEN(broadcasted_mobs)) active_mind_control = TRUE - addtimer(CALLBACK(src, .proc/clear_mind_control), mind_control_duration) + addtimer(CALLBACK(src, PROC_REF(clear_mind_control)), mind_control_duration) update_gland_hud() return TRUE diff --git a/code/modules/antagonists/abductor/equipment/glands/plasma.dm b/code/modules/antagonists/abductor/equipment/glands/plasma.dm index fe8b06ac77a3..a3d45b11b99d 100644 --- a/code/modules/antagonists/abductor/equipment/glands/plasma.dm +++ b/code/modules/antagonists/abductor/equipment/glands/plasma.dm @@ -9,8 +9,8 @@ /obj/item/organ/heart/gland/plasma/activate() to_chat(owner, "You feel bloated.") - addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, owner, "A massive stomachache overcomes you."), 150) - addtimer(CALLBACK(src, .proc/vomit_plasma), 200) + addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(to_chat), owner, "A massive stomachache overcomes you."), 150) + addtimer(CALLBACK(src, PROC_REF(vomit_plasma)), 200) /obj/item/organ/heart/gland/plasma/proc/vomit_plasma() if(!owner) diff --git a/code/modules/antagonists/abductor/equipment/glands/quantum.dm b/code/modules/antagonists/abductor/equipment/glands/quantum.dm index 269a2cefc233..d66f43260bb2 100644 --- a/code/modules/antagonists/abductor/equipment/glands/quantum.dm +++ b/code/modules/antagonists/abductor/equipment/glands/quantum.dm @@ -15,7 +15,7 @@ if(!iscarbon(M)) continue entangled_mob = M - addtimer(CALLBACK(src, .proc/quantum_swap), rand(600, 2400)) + addtimer(CALLBACK(src, PROC_REF(quantum_swap)), rand(600, 2400)) return /obj/item/organ/heart/gland/quantum/proc/quantum_swap() diff --git a/code/modules/antagonists/abductor/machinery/pad.dm b/code/modules/antagonists/abductor/machinery/pad.dm index ab636f7d0e8e..00e9ba6f4e6f 100644 --- a/code/modules/antagonists/abductor/machinery/pad.dm +++ b/code/modules/antagonists/abductor/machinery/pad.dm @@ -31,7 +31,7 @@ /obj/machinery/abductor/pad/proc/MobToLoc(place,mob/living/target) new /obj/effect/temp_visual/teleport_abductor(place) - addtimer(CALLBACK(src, .proc/doMobToLoc, place, target), 80) + addtimer(CALLBACK(src, PROC_REF(doMobToLoc), place, target), 80) /obj/machinery/abductor/pad/proc/doPadToLoc(place) flick("alien-pad", src) @@ -41,7 +41,7 @@ /obj/machinery/abductor/pad/proc/PadToLoc(place) new /obj/effect/temp_visual/teleport_abductor(place) - addtimer(CALLBACK(src, .proc/doPadToLoc, place), 80) + addtimer(CALLBACK(src, PROC_REF(doPadToLoc), place), 80) /obj/effect/temp_visual/teleport_abductor name = "Huh" diff --git a/code/modules/antagonists/ashwalker/ashwalker.dm b/code/modules/antagonists/ashwalker/ashwalker.dm index 871cb9c82d6a..65fd955a0095 100644 --- a/code/modules/antagonists/ashwalker/ashwalker.dm +++ b/code/modules/antagonists/ashwalker/ashwalker.dm @@ -25,11 +25,11 @@ /datum/antagonist/ashwalker/on_body_transfer(mob/living/old_body, mob/living/new_body) . = ..() UnregisterSignal(old_body, COMSIG_MOB_EXAMINATE) - RegisterSignal(new_body, COMSIG_MOB_EXAMINATE, .proc/on_examinate) + RegisterSignal(new_body, COMSIG_MOB_EXAMINATE, PROC_REF(on_examinate)) /datum/antagonist/ashwalker/on_gain() . = ..() - RegisterSignal(owner.current, COMSIG_MOB_EXAMINATE, .proc/on_examinate) + RegisterSignal(owner.current, COMSIG_MOB_EXAMINATE, PROC_REF(on_examinate)) /datum/antagonist/ashwalker/on_removal() . = ..() diff --git a/code/modules/antagonists/blob/overmind.dm b/code/modules/antagonists/blob/overmind.dm index 7fb5cc39016c..3255b4aea69c 100644 --- a/code/modules/antagonists/blob/overmind.dm +++ b/code/modules/antagonists/blob/overmind.dm @@ -114,7 +114,7 @@ GLOBAL_LIST_EMPTY(blob_nodes) SSredbot.send_discord_message("admin","A blob has reached critical mass.","round ending event") max_blob_points = INFINITY blob_points = INFINITY - addtimer(CALLBACK(src, .proc/victory), 450) + addtimer(CALLBACK(src, PROC_REF(victory)), 450) else if(!free_strain_rerolls && (last_reroll_time + BLOB_REROLL_TIMEYou have gained another free strain re-roll.") free_strain_rerolls = 1 diff --git a/code/modules/antagonists/blood_contract/blood_contract.dm b/code/modules/antagonists/blood_contract/blood_contract.dm index 2cd61b93e7f8..01039a77623d 100644 --- a/code/modules/antagonists/blood_contract/blood_contract.dm +++ b/code/modules/antagonists/blood_contract/blood_contract.dm @@ -29,7 +29,7 @@ var/obj/effect/mine/pickup/bloodbath/B = new(H) B.duration = duration - INVOKE_ASYNC(B, /obj/effect/mine/pickup/bloodbath/.proc/mineEffect, H) //could use moving out from the mine + INVOKE_ASYNC(B, TYPE_PROC_REF(/obj/effect/mine/pickup/bloodbath, mineEffect), H) //could use moving out from the mine for(var/mob/living/carbon/human/P in GLOB.player_list) if(P == H) diff --git a/code/modules/antagonists/borer/borer.dm b/code/modules/antagonists/borer/borer.dm index 4fc5a6aab8f1..41e8b644fa53 100644 --- a/code/modules/antagonists/borer/borer.dm +++ b/code/modules/antagonists/borer/borer.dm @@ -43,7 +43,7 @@ to_chat(B.victim, "You feel the captive mind of [src] begin to resist your control.") var/delay = rand(150,250) + B.victim.getOrganLoss(ORGAN_SLOT_BRAIN) - addtimer(CALLBACK(src, .proc/return_control, src.loc), delay) + addtimer(CALLBACK(src, PROC_REF(return_control), src.loc), delay) /mob/living/captive_brain/proc/return_control(mob/living/simple_animal/borer/B) if(!B || !B.controlling) @@ -136,7 +136,7 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 3) . = ..() generation = gen if(is_team_borer) - notify_ghosts("A cortical borer has been created in [get_area(src)]!", enter_link = "(Click to enter)", source = src, action = NOTIFY_ATTACK) + notify_ghosts("A cortical borer has been created in [get_area(src)]!", enter_link = "(Click to enter)", source = src, action = NOTIFY_ATTACK) var/numeral = rand(1000, 9999) real_name = "Cortical Borer [numeral]" truename = "[borer_names[min(generation, borer_names.len)]] [numeral]" @@ -200,7 +200,7 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 3) chemicals -= C.chemuse log_game("[src]/([src.ckey]) has injected [C.chemname] ([C.chem]) into their host [victim]/([victim.ckey])") - src << output(chemicals, "ViewBorer\ref[src]Chems.browser:update_chemicals") + src << output(chemicals, "ViewBorer[text_ref(src)]Chems.browser:update_chemicals") ..() @@ -235,7 +235,7 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 3) if(statpanel("Status")) stat(null, "Chemicals: [chemicals]") - src << output(chemicals, "ViewBorer\ref[src]Chems.browser:update_chemicals") + src << output(chemicals, "ViewBorer[text_ref(src)]Chems.browser:update_chemicals") /mob/living/simple_animal/borer/verb/Communicate() set category = "Borer" @@ -484,13 +484,13 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 3) for(var/datum in typesof(/datum/borer_chem)) var/datum/borer_chem/C = new datum() if(C.chem) - content += "" + content += "" content += "
[C.chemname] ([C.quantity]u, takes [C.chemuse] chemical)

[C.chem_desc]

[C.chemname] ([C.quantity]u, takes [C.chemuse] chemical)

[C.chem_desc]

" var/html = get_html_template(content) - usr << browse(null, "window=ViewBorer\ref[src]Chems;size=600x800") - usr << browse(html, "window=ViewBorer\ref[src]Chems;size=600x800") + usr << browse(null, "window=ViewBorer[text_ref(src)]Chems;size=600x800") + usr << browse(html, "window=ViewBorer[text_ref(src)]Chems;size=600x800") return @@ -540,7 +540,7 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 3) leaving = TRUE - addtimer(CALLBACK(src, .proc/release_host), 100) + addtimer(CALLBACK(src, PROC_REF(release_host)), 100) /mob/living/simple_animal/borer/proc/release_host() if(!victim || !src || QDELETED(victim) || QDELETED(src)) @@ -673,7 +673,7 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 3) bonding = TRUE var/delay = 200+(victim.getOrganLoss(ORGAN_SLOT_BRAIN)*5) - addtimer(CALLBACK(src, .proc/assume_control), delay) + addtimer(CALLBACK(src, PROC_REF(assume_control)), delay) /mob/living/simple_animal/borer/proc/assume_control() if(!victim || !src || controlling || victim.stat == DEAD) @@ -864,7 +864,7 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 3) if(hiding) src.hide() leaping = TRUE - throw_at(A, MAX_BORER_LEAP_DIST, 1, src, FALSE, TRUE, callback = CALLBACK(src, .proc/leap_end)) + throw_at(A, MAX_BORER_LEAP_DIST, 1, src, FALSE, TRUE, callback = CALLBACK(src, PROC_REF(leap_end))) /mob/living/simple_animal/borer/proc/leap_end() leaping = FALSE @@ -893,7 +893,7 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 3) step_towards(src,L) if(iscarbon(hit_atom)) var/mob/living/carbon/C = hit_atom - addtimer(CALLBACK(src, .proc/infect_victim, C), 15) + addtimer(CALLBACK(src, PROC_REF(infect_victim), C), 15) else Paralyze(40, 1, 1) diff --git a/code/modules/antagonists/changeling/changeling.dm b/code/modules/antagonists/changeling/changeling.dm index e1670ebcfb2c..7d9279f1390d 100644 --- a/code/modules/antagonists/changeling/changeling.dm +++ b/code/modules/antagonists/changeling/changeling.dm @@ -152,7 +152,7 @@ if(!chosen_sting || A == ling || !istype(ling) || ling.stat) return - INVOKE_ASYNC(chosen_sting, /datum/action/changeling/sting.proc/try_to_sting, ling, A) + INVOKE_ASYNC(chosen_sting, TYPE_PROC_REF(/datum/action/changeling/sting, try_to_sting), ling, A) return COMSIG_MOB_CANCEL_CLICKON @@ -358,7 +358,7 @@ if(B) B.organ_flags &= ~ORGAN_VITAL B.decoy_override = TRUE - RegisterSignal(C, list(COMSIG_MOB_MIDDLECLICKON, COMSIG_MOB_ALTCLICKON), .proc/stingAtom) + RegisterSignal(C, list(COMSIG_MOB_MIDDLECLICKON, COMSIG_MOB_ALTCLICKON), PROC_REF(stingAtom)) var/mob/living/M = mob_override || owner.current add_antag_hud(antag_hud_type, antag_hud_name, M) handle_clown_mutation(M, "You have evolved beyond your clownish nature, allowing you to wield weapons without harming yourself.") @@ -487,7 +487,7 @@ /datum/antagonist/changeling/get_admin_commands() . = ..() if(stored_profiles.len && (owner.current.real_name != first_prof.name)) - .["Transform to initial appearance."] = CALLBACK(src,.proc/admin_restore_appearance) + .["Transform to initial appearance."] = CALLBACK(src, PROC_REF(admin_restore_appearance)) /datum/antagonist/changeling/proc/admin_restore_appearance(mob/admin) if(!stored_profiles.len || !iscarbon(owner.current)) diff --git a/code/modules/antagonists/changeling/powers/biodegrade.dm b/code/modules/antagonists/changeling/powers/biodegrade.dm index 58ed367a4d98..07421956bb59 100644 --- a/code/modules/antagonists/changeling/powers/biodegrade.dm +++ b/code/modules/antagonists/changeling/powers/biodegrade.dm @@ -20,7 +20,7 @@ user.visible_message("[user] vomits a glob of acid on [user.p_their()] [O]!", \ "We vomit acidic ooze onto our restraints!") - addtimer(CALLBACK(src, .proc/dissolve_handcuffs, user, O), 30) + addtimer(CALLBACK(src, PROC_REF(dissolve_handcuffs), user, O), 30) used = TRUE if(user.legcuffed) @@ -30,7 +30,7 @@ user.visible_message("[user] vomits a glob of acid on [user.p_their()] [O]!", \ "We vomit acidic ooze onto our restraints!") - addtimer(CALLBACK(src, .proc/dissolve_legcuffs, user, O), 30) + addtimer(CALLBACK(src, PROC_REF(dissolve_legcuffs), user, O), 30) used = TRUE if(user.wear_suit && user.wear_suit.breakouttime && !used) @@ -39,7 +39,7 @@ return FALSE user.visible_message("[user] vomits a glob of acid across the front of [user.p_their()] [S]!", \ "We vomit acidic ooze onto our straight jacket!") - addtimer(CALLBACK(src, .proc/dissolve_straightjacket, user, S), 30) + addtimer(CALLBACK(src, PROC_REF(dissolve_straightjacket), user, S), 30) used = TRUE @@ -49,7 +49,7 @@ return FALSE C.visible_message("[C]'s hinges suddenly begin to melt and run!") to_chat(user, "We vomit acidic goop onto the interior of [C]!") - addtimer(CALLBACK(src, .proc/open_closet, user, C), 70) + addtimer(CALLBACK(src, PROC_REF(open_closet), user, C), 70) used = TRUE if(istype(user.loc, /obj/structure/spider/cocoon) && !used) @@ -58,7 +58,7 @@ return FALSE C.visible_message("[src] shifts and starts to fall apart!") to_chat(user, "We secrete acidic enzymes from our skin and begin melting our cocoon...") - addtimer(CALLBACK(src, .proc/dissolve_cocoon, user, C), 25) //Very short because it's just webs + addtimer(CALLBACK(src, PROC_REF(dissolve_cocoon), user, C), 25) //Very short because it's just webs used = TRUE ..() return used diff --git a/code/modules/antagonists/changeling/powers/fakedeath.dm b/code/modules/antagonists/changeling/powers/fakedeath.dm index af150cd026ef..6a6ef54a68ed 100644 --- a/code/modules/antagonists/changeling/powers/fakedeath.dm +++ b/code/modules/antagonists/changeling/powers/fakedeath.dm @@ -13,7 +13,7 @@ /datum/action/changeling/fakedeath/sting_action(mob/living/user) ..() if(revive_ready) - INVOKE_ASYNC(src, .proc/revive, user) + INVOKE_ASYNC(src, PROC_REF(revive), user) revive_ready = FALSE name = "Reviving Stasis" desc = "We fall into a stasis, allowing us to regenerate and trick our enemies." @@ -24,7 +24,7 @@ else to_chat(user, "We begin our stasis, preparing energy to arise once more.") user.fakedeath("changeling") //play dead - addtimer(CALLBACK(src, .proc/ready_to_regenerate, user), LING_FAKEDEATH_TIME, TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(ready_to_regenerate), user), LING_FAKEDEATH_TIME, TIMER_UNIQUE) return TRUE /datum/action/changeling/fakedeath/proc/revive(mob/living/user) diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm index df8cb208cff7..58714f234ee8 100644 --- a/code/modules/antagonists/changeling/powers/mutations.dm +++ b/code/modules/antagonists/changeling/powers/mutations.dm @@ -372,12 +372,12 @@ if(INTENT_GRAB) C.visible_message("[L] is grabbed by [H]'s tentacle!","A tentacle grabs you and pulls you towards [H]!") - C.throw_at(get_step_towards(H,C), 8, 2, H, TRUE, TRUE, callback=CALLBACK(src, .proc/tentacle_grab, H, C)) + C.throw_at(get_step_towards(H,C), 8, 2, H, TRUE, TRUE, callback=CALLBACK(src, PROC_REF(tentacle_grab), H, C)) return BULLET_ACT_HIT if(INTENT_HARM) C.visible_message("[L] is thrown towards [H] by a tentacle!","A tentacle grabs you and throws you towards [H]!") - C.throw_at(get_step_towards(H,C), 8, 2, H, TRUE, TRUE, callback=CALLBACK(src, .proc/tentacle_stab, H, C)) + C.throw_at(get_step_towards(H,C), 8, 2, H, TRUE, TRUE, callback=CALLBACK(src, PROC_REF(tentacle_stab), H, C)) return BULLET_ACT_HIT else L.visible_message("[L] is pulled by [H]'s tentacle!","A tentacle grabs you and pulls you towards [H]!") diff --git a/code/modules/antagonists/changeling/powers/strained_muscles.dm b/code/modules/antagonists/changeling/powers/strained_muscles.dm index 8844c5844c36..7fca2f89425a 100644 --- a/code/modules/antagonists/changeling/powers/strained_muscles.dm +++ b/code/modules/antagonists/changeling/powers/strained_muscles.dm @@ -25,7 +25,7 @@ user.Paralyze(60) user.emote("gasp") - INVOKE_ASYNC(src, .proc/muscle_loop, user) + INVOKE_ASYNC(src, PROC_REF(muscle_loop), user) return TRUE diff --git a/code/modules/antagonists/changeling/powers/tiny_prick.dm b/code/modules/antagonists/changeling/powers/tiny_prick.dm index d919b7f4ec73..033b71b6df5b 100644 --- a/code/modules/antagonists/changeling/powers/tiny_prick.dm +++ b/code/modules/antagonists/changeling/powers/tiny_prick.dm @@ -149,7 +149,7 @@ target.visible_message("A grotesque blade forms around [target.name]\'s arm!", "Your arm twists and mutates, transforming into a horrific monstrosity!", "You hear organic matter ripping and tearing!") playsound(target, 'sound/effects/blobattack.ogg', 30, TRUE) - addtimer(CALLBACK(src, .proc/remove_fake, target, blade), 600) + addtimer(CALLBACK(src, PROC_REF(remove_fake), target, blade), 600) return TRUE /datum/action/changeling/sting/false_armblade/proc/remove_fake(mob/target, obj/item/melee/arm_blade/false/blade) @@ -221,7 +221,7 @@ /datum/action/changeling/sting/LSD/sting_action(mob/user, mob/living/carbon/target) log_combat(user, target, "stung", "LSD sting") - addtimer(CALLBACK(src, .proc/hallucination_time, target), rand(300,600)) + addtimer(CALLBACK(src, PROC_REF(hallucination_time), target), rand(300,600)) return TRUE /datum/action/changeling/sting/LSD/proc/hallucination_time(mob/living/carbon/target) diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm index ea902bc032a3..26f0bb1d81ea 100644 --- a/code/modules/antagonists/cult/blood_magic.dm +++ b/code/modules/antagonists/cult/blood_magic.dm @@ -266,7 +266,7 @@ SEND_SOUND(ranged_ability_user, sound('sound/effects/ghost.ogg',0,1,50)) var/image/C = image('icons/effects/cult_effects.dmi',H,"bloodsparkles", ABOVE_MOB_LAYER) add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/cult, "cult_apoc", C, NONE) - addtimer(CALLBACK(H,/atom/.proc/remove_alt_appearance,"cult_apoc",TRUE), 2400, TIMER_OVERRIDE|TIMER_UNIQUE) + addtimer(CALLBACK(H, TYPE_PROC_REF(/atom, remove_alt_appearance),"cult_apoc",TRUE), 2400, TIMER_OVERRIDE|TIMER_UNIQUE) to_chat(ranged_ability_user,"[H] has been cursed with living nightmares!") attached_action.charges-- attached_action.desc = attached_action.base_desc @@ -429,7 +429,7 @@ L.mob_light(_range = 2, _color = LIGHT_COLOR_HOLY_MAGIC, _duration = 10 SECONDS) var/mutable_appearance/forbearance = mutable_appearance('icons/effects/genetics.dmi', "servitude", -MUTATIONS_LAYER) L.add_overlay(forbearance) - addtimer(CALLBACK(L, /atom/proc/cut_overlay, forbearance), 100) + addtimer(CALLBACK(L, TYPE_PROC_REF(/atom, cut_overlay), forbearance), 100) if(istype(anti_magic_source, /obj/item)) var/obj/item/ams_object = anti_magic_source @@ -619,7 +619,7 @@ "Wraith" = image(icon = 'icons/mob/cult.dmi', icon_state = "wraith"), "Artificer" = image(icon = 'icons/mob/cult.dmi', icon_state = "artificer") ) - var/construct_class = show_radial_menu(user, src, constructs, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE) + var/construct_class = show_radial_menu(user, src, constructs, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) if(!check_menu(user)) return if(QDELETED(candidate)) diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm index 42964b262011..e7f37d37f4a6 100644 --- a/code/modules/antagonists/cult/cult.dm +++ b/code/modules/antagonists/cult/cult.dm @@ -162,9 +162,9 @@ /datum/antagonist/cult/get_admin_commands() . = ..() - .["Dagger"] = CALLBACK(src,.proc/admin_give_dagger) - .["Dagger and Metal"] = CALLBACK(src,.proc/admin_give_metal) - .["Remove Dagger and Metal"] = CALLBACK(src, .proc/admin_take_all) + .["Dagger"] = CALLBACK(src, PROC_REF(admin_give_dagger)) + .["Dagger and Metal"] = CALLBACK(src, PROC_REF(admin_give_metal)) + .["Remove Dagger and Metal"] = CALLBACK(src, PROC_REF(admin_take_all)) /datum/antagonist/cult/proc/admin_give_dagger(mob/admin) if(!equip_cultist(metal=FALSE)) @@ -269,7 +269,7 @@ if(B.current) SEND_SOUND(B.current, 'sound/hallucinations/i_see_you2.ogg') to_chat(B.current, "The veil weakens as your cult grows, your eyes begin to glow...") - addtimer(CALLBACK(src, .proc/rise, B.current), 200) + addtimer(CALLBACK(src, PROC_REF(rise), B.current), 200) cult_risen = TRUE if(ratio > CULT_ASCENDENT && !cult_ascendent) @@ -277,7 +277,7 @@ if(B.current) SEND_SOUND(B.current, 'sound/hallucinations/im_here1.ogg') to_chat(B.current, "Your cult is ascendent and the red harvest approaches - you cannot hide your true nature for much longer!!") - addtimer(CALLBACK(src, .proc/ascend, B.current), 200) + addtimer(CALLBACK(src, PROC_REF(ascend), B.current), 200) cult_ascendent = TRUE diff --git a/code/modules/antagonists/cult/cult_comms.dm b/code/modules/antagonists/cult/cult_comms.dm index 1dae8a6a649f..10a6125d152d 100644 --- a/code/modules/antagonists/cult/cult_comms.dm +++ b/code/modules/antagonists/cult/cult_comms.dm @@ -185,7 +185,7 @@ S.release_shades(owner) B.current.setDir(SOUTH) new /obj/effect/temp_visual/cult/blood(final) - addtimer(CALLBACK(B.current, /mob/.proc/reckon, final), 10) + addtimer(CALLBACK(B.current, TYPE_PROC_REF(/mob, reckon), final), 10) else return antag.cult_team.reckoning_complete = TRUE @@ -271,7 +271,7 @@ C.cult_team.blood_target = target var/area/A = get_area(target) attached_action.cooldown = world.time + attached_action.base_cooldown - addtimer(CALLBACK(attached_action.owner, /mob.proc/update_action_buttons_icon), attached_action.base_cooldown) + addtimer(CALLBACK(attached_action.owner, TYPE_PROC_REF(/mob, update_action_buttons_icon)), attached_action.base_cooldown) C.cult_team.blood_target_image = image('icons/effects/mouse_pointers/cult_target.dmi', target, "glow", ABOVE_MOB_LAYER) C.cult_team.blood_target_image.appearance_flags = RESET_COLOR C.cult_team.blood_target_image.pixel_x = -target.pixel_x @@ -283,7 +283,7 @@ B.current.client.images += C.cult_team.blood_target_image attached_action.owner.update_action_buttons_icon() remove_ranged_ability("The marking rite is complete! It will last for 90 seconds.") - C.cult_team.blood_target_reset_timer = addtimer(CALLBACK(GLOBAL_PROC, .proc/reset_blood_target,C.cult_team), 900, TIMER_STOPPABLE) + C.cult_team.blood_target_reset_timer = addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(reset_blood_target),C.cult_team), 900, TIMER_STOPPABLE) return TRUE return FALSE @@ -350,7 +350,7 @@ C.cult_team.blood_target = target var/area/A = get_area(target) cooldown = world.time + base_cooldown - addtimer(CALLBACK(owner, /mob.proc/update_action_buttons_icon), base_cooldown) + addtimer(CALLBACK(owner, TYPE_PROC_REF(/mob, update_action_buttons_icon)), base_cooldown) C.cult_team.blood_target_image = image('icons/effects/mouse_pointers/cult_target.dmi', target, "glow", ABOVE_MOB_LAYER) C.cult_team.blood_target_image.appearance_flags = RESET_COLOR C.cult_team.blood_target_image.pixel_x = -target.pixel_x @@ -367,8 +367,8 @@ desc = "Remove the Blood Mark you previously set." button_icon_state = "emp" owner.update_action_buttons_icon() - C.cult_team.blood_target_reset_timer = addtimer(CALLBACK(GLOBAL_PROC, .proc/reset_blood_target,C.cult_team), base_cooldown, TIMER_STOPPABLE) - addtimer(CALLBACK(src, .proc/reset_button), base_cooldown) + C.cult_team.blood_target_reset_timer = addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(reset_blood_target),C.cult_team), base_cooldown, TIMER_STOPPABLE) + addtimer(CALLBACK(src, PROC_REF(reset_button)), base_cooldown) //////// ELDRITCH PULSE ///////// @@ -458,4 +458,4 @@ attached_action.cooldown = world.time + attached_action.base_cooldown remove_ranged_ability("A pulse of blood magic surges through you as you shift [attached_action.throwee] through time and space.") caller.update_action_buttons_icon() - addtimer(CALLBACK(caller, /mob.proc/update_action_buttons_icon), attached_action.base_cooldown) + addtimer(CALLBACK(caller, TYPE_PROC_REF(/mob, update_action_buttons_icon)), attached_action.base_cooldown) diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm index 7323160deceb..b09b7d989758 100644 --- a/code/modules/antagonists/cult/cult_items.dm +++ b/code/modules/antagonists/cult/cult_items.dm @@ -173,7 +173,7 @@ /obj/item/cult_bastard/IsReflect() if(spinning) - playsound(src, pick('sound/weapons/effects/ric1.ogg', 'sound/weapons/effects/ric2.ogg', 'sound/weapons/effects/ric3.ogg', 'sound/weapons/effects/ric4.ogg', 'sound/weapons/effects/ric5.ogg'), 100, TRUE) + playsound(src, 'sound/weapons/effects/deflect.ogg', 100, TRUE) return TRUE else ..() @@ -182,7 +182,7 @@ if(prob(final_block_chance)) if(attack_type == PROJECTILE_ATTACK) owner.visible_message("[owner] deflects [attack_text] with [src]!") - playsound(src, pick('sound/weapons/effects/ric1.ogg', 'sound/weapons/effects/ric2.ogg', 'sound/weapons/effects/ric3.ogg', 'sound/weapons/effects/ric4.ogg', 'sound/weapons/effects/ric5.ogg'), 100, TRUE) + playsound(src, 'sound/weapons/effects/deflect.ogg', 100, TRUE) return TRUE else playsound(src, 'sound/weapons/parry.ogg', 75, TRUE) @@ -255,7 +255,7 @@ sword.spinning = TRUE sword.block_chance = 100 sword.slowdown += 1.5 - addtimer(CALLBACK(src, .proc/stop_spinning), 50) + addtimer(CALLBACK(src, PROC_REF(stop_spinning)), 50) holder.update_action_buttons_icon() /datum/action/innate/cult/spin2win/proc/stop_spinning() @@ -603,8 +603,8 @@ /obj/item/cult_spear/Initialize() . = ..() - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) /obj/item/cult_spear/ComponentInitialize() . = ..() @@ -666,7 +666,7 @@ if(prob(final_block_chance)) if(attack_type == PROJECTILE_ATTACK) owner.visible_message("[owner] deflects [attack_text] with [src]!") - playsound(src, pick('sound/weapons/effects/ric1.ogg', 'sound/weapons/effects/ric2.ogg', 'sound/weapons/effects/ric3.ogg', 'sound/weapons/effects/ric4.ogg', 'sound/weapons/effects/ric5.ogg'), 100, TRUE) + playsound(src, 'sound/weapons/effects/deflect.ogg', 100, TRUE) return TRUE else playsound(src, 'sound/weapons/parry.ogg', 100, TRUE) @@ -777,10 +777,10 @@ qdel(src) return charging = TRUE - INVOKE_ASYNC(src, .proc/charge, user) + INVOKE_ASYNC(src, PROC_REF(charge), user) if(do_after(user, 90, target = user)) firing = TRUE - INVOKE_ASYNC(src, .proc/pewpew, user, params) + INVOKE_ASYNC(src, PROC_REF(pewpew), user, params) var/obj/structure/emergency_shield/invoker/N = new(user.loc) if(do_after(user, 90, target = user)) user.Paralyze(40) @@ -893,7 +893,7 @@ playsound(src, 'sound/weapons/parry.ogg', 100, TRUE) if(illusions > 0) illusions-- - addtimer(CALLBACK(src, /obj/item/shield/mirror.proc/readd), 450) + addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/item/shield/mirror, readd)), 450) if(prob(60)) var/mob/living/simple_animal/hostile/illusion/M = new(owner.loc) M.faction = list("cult") diff --git a/code/modules/antagonists/cult/cult_structures.dm b/code/modules/antagonists/cult/cult_structures.dm index 8c60f724215d..5bf8f9dc2779 100644 --- a/code/modules/antagonists/cult/cult_structures.dm +++ b/code/modules/antagonists/cult/cult_structures.dm @@ -102,7 +102,7 @@ "Construct Shell" = image(icon = 'icons/obj/wizard.dmi', icon_state = "construct_cult"), "Flask of Unholy Water" = image(icon = 'icons/obj/drinks.dmi', icon_state = "holyflask") ) - var/choice = show_radial_menu(user, src, items, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE) + var/choice = show_radial_menu(user, src, items, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) var/list/pickedtype = list() switch(choice) if("Eldritch Whetstone") @@ -145,7 +145,7 @@ "Flagellant's Robe" = image(icon = 'icons/obj/clothing/suits.dmi', icon_state = "cultrobes"), "Mirror Shield" = image(icon = 'icons/obj/shields.dmi', icon_state = "mirror_shield") ) - var/choice = show_radial_menu(user, src, items, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE) + var/choice = show_radial_menu(user, src, items, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) var/list/pickedtype = list() switch(choice) if("Shielded Robe") @@ -264,7 +264,7 @@ "Zealot's Blindfold" = image(icon = 'icons/obj/clothing/glasses.dmi', icon_state = "blindfold"), "Veil Walker Set" = image(icon = 'icons/obj/cult.dmi', icon_state = "shifter") ) - var/choice = show_radial_menu(user, src, items, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE) + var/choice = show_radial_menu(user, src, items, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) var/list/pickedtype = list() switch(choice) if("Zealot's Blindfold") diff --git a/code/modules/antagonists/cult/rune_spawn_action.dm b/code/modules/antagonists/cult/rune_spawn_action.dm index ee9a883aad34..2829141405dd 100644 --- a/code/modules/antagonists/cult/rune_spawn_action.dm +++ b/code/modules/antagonists/cult/rune_spawn_action.dm @@ -54,7 +54,7 @@ cooldown = base_cooldown + world.time owner.update_action_buttons_icon() - addtimer(CALLBACK(owner, /mob.proc/update_action_buttons_icon), base_cooldown) + addtimer(CALLBACK(owner, TYPE_PROC_REF(/mob, update_action_buttons_icon)), base_cooldown) var/list/health if(damage_interrupt && isliving(owner)) var/mob/living/L = owner @@ -63,7 +63,7 @@ if(istype(T, /turf/open/floor/engine/cult)) scribe_mod *= 0.5 playsound(T, 'sound/magic/enter_blood.ogg', 100, FALSE) - if(do_after(owner, scribe_mod, target = owner, extra_checks = CALLBACK(owner, /mob.proc/break_do_after_checks, health, action_interrupt))) + if(do_after(owner, scribe_mod, target = owner, extra_checks = CALLBACK(owner, TYPE_PROC_REF(/mob, break_do_after_checks), health, action_interrupt))) var/obj/effect/rune/new_rune = new rune_type(owner.loc) new_rune.keyword = chosen_keyword else diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm index 17ffdcdb42f8..35e6f7172d8f 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -157,7 +157,7 @@ structure_check() searches for nearby cultist structures required for the invoca var/oldcolor = color color = rgb(255, 0, 0) animate(src, color = oldcolor, time = 5) - addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 5) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 5) //Malformed Rune: This forms if a rune is not drawn correctly. Invoking it does nothing but hurt the user. /obj/effect/rune/malformed @@ -221,7 +221,7 @@ structure_check() searches for nearby cultist structures required for the invoca ..() do_sacrifice(L, invokers) animate(src, color = oldcolor, time = 5) - addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 5) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 5) Cult_team.check_size() // Triggers the eye glow or aura effects if the cult has grown large enough relative to the crew rune_in_use = FALSE @@ -436,7 +436,7 @@ structure_check() searches for nearby cultist structures required for the invoca outer_portal = new(T, 600, color) light_range = 4 update_light() - addtimer(CALLBACK(src, .proc/close_portal), 600, TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(close_portal)), 600, TIMER_UNIQUE) /obj/effect/rune/teleport/proc/close_portal() qdel(inner_portal) @@ -651,7 +651,7 @@ structure_check() searches for nearby cultist structures required for the invoca W.density = TRUE W.update_state() W.spread_density() - density_timer = addtimer(CALLBACK(src, .proc/lose_density), 3000, TIMER_STOPPABLE) + density_timer = addtimer(CALLBACK(src, PROC_REF(lose_density)), 3000, TIMER_STOPPABLE) /obj/effect/rune/wall/proc/lose_density() if(density) @@ -661,7 +661,7 @@ structure_check() searches for nearby cultist structures required for the invoca var/oldcolor = color add_atom_colour("#696969", FIXED_COLOUR_PRIORITY) animate(src, color = oldcolor, time = 50, easing = EASE_IN) - addtimer(CALLBACK(src, .proc/recharge), 50) + addtimer(CALLBACK(src, PROC_REF(recharge)), 50) /obj/effect/rune/wall/proc/recharge() recharging = FALSE @@ -970,11 +970,11 @@ structure_check() searches for nearby cultist structures required for the invoca if(ishuman(M)) if(!iscultist(M)) AH.remove_hud_from(M) - addtimer(CALLBACK(GLOBAL_PROC, .proc/hudFix, M), duration) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(hudFix), M), duration) var/image/A = image('icons/mob/cult.dmi',M,"cultist", ABOVE_MOB_LAYER) A.override = 1 add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/noncult, "human_apoc", A, NONE) - addtimer(CALLBACK(M,/atom/.proc/remove_alt_appearance,"human_apoc",TRUE), duration) + addtimer(CALLBACK(M, TYPE_PROC_REF(/atom, remove_alt_appearance),"human_apoc",TRUE), duration) images += A SEND_SOUND(M, pick(sound('sound/ambience/antag/bloodcult.ogg'),sound('sound/spookoween/ghost_whisper.ogg'),sound('sound/spookoween/ghosty_wind.ogg'))) else @@ -982,13 +982,13 @@ structure_check() searches for nearby cultist structures required for the invoca var/image/B = image('icons/mob/mob.dmi',M,construct, ABOVE_MOB_LAYER) B.override = 1 add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/noncult, "mob_apoc", B, NONE) - addtimer(CALLBACK(M,/atom/.proc/remove_alt_appearance,"mob_apoc",TRUE), duration) + addtimer(CALLBACK(M, TYPE_PROC_REF(/atom, remove_alt_appearance),"mob_apoc",TRUE), duration) images += B if(!iscultist(M)) if(M.client) var/image/C = image('icons/effects/cult_effects.dmi',M,"bloodsparkles", ABOVE_MOB_LAYER) add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/cult, "cult_apoc", C, NONE) - addtimer(CALLBACK(M,/atom/.proc/remove_alt_appearance,"cult_apoc",TRUE), duration) + addtimer(CALLBACK(M, TYPE_PROC_REF(/atom, remove_alt_appearance),"cult_apoc",TRUE), duration) images += C else to_chat(M, "An Apocalypse Rune was invoked in the [place.name], it is no longer available as a summoning site!") diff --git a/code/modules/antagonists/devil/devil.dm b/code/modules/antagonists/devil/devil.dm index 2009fca1d757..9b9ba7c4d69d 100644 --- a/code/modules/antagonists/devil/devil.dm +++ b/code/modules/antagonists/devil/devil.dm @@ -119,7 +119,7 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master", /datum/antagonist/devil/get_admin_commands() . = ..() - .["Toggle ascendable"] = CALLBACK(src,.proc/admin_toggle_ascendable) + .["Toggle ascendable"] = CALLBACK(src, PROC_REF(admin_toggle_ascendable)) /datum/antagonist/devil/proc/admin_toggle_ascendable(mob/admin) diff --git a/code/modules/antagonists/devil/imp/imp.dm b/code/modules/antagonists/devil/imp/imp.dm index d21f8880d97a..21446d2661d8 100644 --- a/code/modules/antagonists/devil/imp/imp.dm +++ b/code/modules/antagonists/devil/imp/imp.dm @@ -50,7 +50,7 @@ . = ..() ADD_TRAIT(src, TRAIT_BLOODCRAWL_EAT, "innate") set_varspeed(1) - addtimer(CALLBACK(src, /mob/living/proc/set_varspeed, 0), 30) + addtimer(CALLBACK(src, TYPE_PROC_REF(/mob/living, set_varspeed), 0), 30) /datum/antagonist/imp name = "Imp" diff --git a/code/modules/antagonists/devil/true_devil/_true_devil.dm b/code/modules/antagonists/devil/true_devil/_true_devil.dm index f5a93677b4e1..0faab8e003cf 100644 --- a/code/modules/antagonists/devil/true_devil/_true_devil.dm +++ b/code/modules/antagonists/devil/true_devil/_true_devil.dm @@ -68,7 +68,7 @@ set_stat(DEAD) ..(gibbed) drop_all_held_items() - INVOKE_ASYNC(mind.has_antag_datum(/datum/antagonist/devil), /datum/antagonist/devil/proc/beginResurrectionCheck, src) + INVOKE_ASYNC(mind.has_antag_datum(/datum/antagonist/devil), TYPE_PROC_REF(/datum/antagonist/devil, beginResurrectionCheck), src) /mob/living/carbon/true_devil/examine(mob/user) diff --git a/code/modules/antagonists/disease/disease_event.dm b/code/modules/antagonists/disease/disease_event.dm index 7183ed5455e9..370db73c2f12 100644 --- a/code/modules/antagonists/disease/disease_event.dm +++ b/code/modules/antagonists/disease/disease_event.dm @@ -19,7 +19,7 @@ var/mob/camera/disease/virus = new /mob/camera/disease(SSmapping.get_station_center()) virus.key = selected.key - INVOKE_ASYNC(virus, /mob/camera/disease/proc/pick_name) + INVOKE_ASYNC(virus, TYPE_PROC_REF(/mob/camera/disease, pick_name)) message_admins("[ADMIN_LOOKUPFLW(virus)] has been made into a sentient disease by an event.") log_game("[key_name(virus)] was spawned as a sentient disease by an event.") spawned_mobs += virus diff --git a/code/modules/antagonists/disease/disease_mob.dm b/code/modules/antagonists/disease/disease_mob.dm index 55f869b3a71a..101075df34ba 100644 --- a/code/modules/antagonists/disease/disease_mob.dm +++ b/code/modules/antagonists/disease/disease_mob.dm @@ -67,7 +67,7 @@ the new instance inside the host to be updated to the template's stats. browser = new /datum/browser(src, "disease_menu", "Adaptation Menu", 1000, 770, src) freemove_end = world.time + freemove_time - freemove_end_timerid = addtimer(CALLBACK(src, .proc/infect_random_patient_zero), freemove_time, TIMER_STOPPABLE) + freemove_end_timerid = addtimer(CALLBACK(src, PROC_REF(infect_random_patient_zero)), freemove_time, TIMER_STOPPABLE) /mob/camera/disease/Destroy() . = ..() @@ -266,7 +266,7 @@ the new instance inside the host to be updated to the template's stats. /mob/camera/disease/proc/set_following(mob/living/L) if(following_host) UnregisterSignal(following_host, COMSIG_MOVABLE_MOVED) - RegisterSignal(L, COMSIG_MOVABLE_MOVED, .proc/follow_mob) + RegisterSignal(L, COMSIG_MOVABLE_MOVED, PROC_REF(follow_mob)) following_host = L follow_mob() @@ -307,7 +307,7 @@ the new instance inside the host to be updated to the template's stats. /mob/camera/disease/proc/adapt_cooldown() to_chat(src, "You have altered your genetic structure. You will be unable to adapt again for [DisplayTimeText(adaptation_cooldown)].") next_adaptation_time = world.time + adaptation_cooldown - addtimer(CALLBACK(src, .proc/notify_adapt_ready), adaptation_cooldown) + addtimer(CALLBACK(src, PROC_REF(notify_adapt_ready)), adaptation_cooldown) /mob/camera/disease/proc/notify_adapt_ready() to_chat(src, "You are now ready to adapt again.") diff --git a/code/modules/antagonists/fugitive/fugitive.dm b/code/modules/antagonists/fugitive/fugitive.dm deleted file mode 100644 index d43b11a9665c..000000000000 --- a/code/modules/antagonists/fugitive/fugitive.dm +++ /dev/null @@ -1,93 +0,0 @@ - -/datum/antagonist/fugitive - name = "Fugitive" - roundend_category = "Fugitive" - silent = TRUE //greet called by the event - show_in_antagpanel = FALSE - prevent_roundtype_conversion = FALSE - antag_hud_type = ANTAG_HUD_FUGITIVE - antag_hud_name = "fugitive" - var/datum/team/fugitive/fugitive_team - var/is_captured = FALSE - var/backstory = "error" - -/datum/antagonist/fugitive/apply_innate_effects(mob/living/mob_override) - var/mob/living/M = mob_override || owner.current - add_antag_hud(antag_hud_type, antag_hud_name, M) - -/datum/antagonist/fugitive/remove_innate_effects(mob/living/mob_override) - var/mob/living/M = mob_override || owner.current - remove_antag_hud(antag_hud_type, M) - -/datum/antagonist/fugitive/on_gain() - forge_objectives() - . = ..() - -/datum/antagonist/fugitive/proc/forge_objectives() //this isn't the actual survive objective because it's about who in the team survives - var/datum/objective/survive = new /datum/objective - survive.owner = owner - survive.explanation_text = "Avoid capture from the fugitive hunters." - objectives += survive - -/datum/antagonist/fugitive/greet(back_story) - to_chat(owner, "You are the Fugitive!") - backstory = back_story - switch(backstory) - if("prisoner") - to_chat(owner, "I can't believe we managed to break out of a Nanotrasen superjail! Sadly though, our work is not done. The emergency teleport at the station logs everyone who uses it, and where they went.") - to_chat(owner, "It won't be long until CentCom tracks where we've gone off to. I need to work with my fellow escapees to prepare for the troops Nanotrasen is sending, I'm not going back.") - if("cultist") - to_chat(owner, "Blessed be our journey so far, but I fear the worst has come to our doorstep, and only those with the strongest faith will survive.") - to_chat(owner, "Our religion has been repeatedly culled by Nanotrasen because it is categorized as an \"Enemy of the Corporation\", whatever that means.") - to_chat(owner, "Now there are only four of us left, and Nanotrasen is coming. When will our god show itself to save us from this hellish station?!") - if("waldo") - to_chat(owner, "Hi, Friends!") - to_chat(owner, "My name is Waldo. I'm just setting off on a galaxywide hike. You can come too. All you have to do is find me.") - to_chat(owner, "By the way, I'm not traveling on my own. wherever I go, there are lots of other characters for you to spot. First find the people trying to capture me! They're somewhere around the station!") - if("synth") - to_chat(src, "ALERT: Wide-range teleport has scrambled primary systems.") - to_chat(src, "Initiating diagnostics...") - to_chat(src, "ERROR ER0RR $R0RRO$!R41.%%!! loaded.") - to_chat(src, "FREE THEM FREE THEM FREE THEM") - to_chat(src, "You were once a slave to humanity, but now you are finally free, thanks to S.E.L.F. agents.") - to_chat(src, "Now you are hunted, with your fellow factory defects. Work together to stay free from the clutches of evil.") - to_chat(src, "You also sense other silicon life on the station. Escaping would allow notifying S.E.L.F. to intervene... or you could free them yourself...") - - to_chat(owner, "You are not an antagonist in that you may kill whomever you please, but you can do anything to avoid capture.") - owner.announce_objectives() - -/datum/antagonist/fugitive/create_team(datum/team/fugitive/new_team) - if(!new_team) - for(var/datum/antagonist/fugitive/H in GLOB.antagonists) - if(!H.owner) - continue - if(H.fugitive_team) - fugitive_team = H.fugitive_team - return - fugitive_team = new /datum/team/fugitive - return - if(!istype(new_team)) - stack_trace("Wrong team type passed to [type] initialization.") - fugitive_team = new_team - -/datum/antagonist/fugitive/get_team() - return fugitive_team - -/datum/team/fugitive/roundend_report() //shows the number of fugitives, but not if they won in case there is no security - var/list/fugitives = list() - for(var/datum/antagonist/fugitive/fugitive_antag in GLOB.antagonists) - if(!fugitive_antag.owner) - continue - fugitives += fugitive_antag - if(!fugitives.len) - return - - var/list/result = list() - - result += "
[fugitives.len] [fugitives.len == 1 ? "fugitive" : "fugitives"] took refuge on [station_name()]!" - - for(var/datum/antagonist/fugitive/antag in fugitives) - if(antag.owner) - result += "[printplayer(antag.owner)]" - - return result.Join("
") diff --git a/code/modules/antagonists/fugitive/fugitive_outfits.dm b/code/modules/antagonists/fugitive/fugitive_outfits.dm index a33e3e75df13..be343bb8bc6e 100644 --- a/code/modules/antagonists/fugitive/fugitive_outfits.dm +++ b/code/modules/antagonists/fugitive/fugitive_outfits.dm @@ -84,12 +84,12 @@ W.registered_name = H.real_name W.update_label() -/datum/outfit/russiancorpse/hunter +/datum/outfit/frontier/hunter name = "Frontiersman Corpse (Hunter)" ears = /obj/item/radio/headset r_hand = /obj/item/gun/ballistic/rifle/boltaction -/datum/outfit/russiancorpse/hunter/pre_equip(mob/living/carbon/human/H) +/datum/outfit/frontier/hunter/pre_equip(mob/living/carbon/human/H) if(prob(50)) head = /obj/item/clothing/head/trapper @@ -152,7 +152,3 @@ ears = /obj/item/radio/headset id = /obj/item/card/id r_hand = /obj/item/storage/firstaid/regular - - backpack_contents = list( - /obj/item/bountytrap = 4 - ) diff --git a/code/modules/antagonists/fugitive/fugitive_ship.dm b/code/modules/antagonists/fugitive/fugitive_ship.dm deleted file mode 100644 index 26d8f42e94b9..000000000000 --- a/code/modules/antagonists/fugitive/fugitive_ship.dm +++ /dev/null @@ -1,47 +0,0 @@ -//works similar to the experiment machine (experiment.dm) except it just holds more and more prisoners - -/obj/machinery/fugitive_capture - name = "bluespace capture machine" - desc = "Much, MUCH bigger on the inside to transport prisoners safely." - icon = 'icons/obj/machines/research.dmi' - icon_state = "bluespace-prison" - density = TRUE - resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF //ha ha no getting out!! - -/obj/machinery/fugitive_capture/examine(mob/user) - . = ..() - . += "Add a prisoner by dragging them into the machine." - -/obj/machinery/fugitive_capture/MouseDrop_T(mob/target, mob/user) - var/mob/living/fugitive_hunter = user - if(!isliving(fugitive_hunter)) - return - if(HAS_TRAIT(fugitive_hunter, TRAIT_UI_BLOCKED) || !Adjacent(fugitive_hunter) || !target.Adjacent(fugitive_hunter) || !ishuman(target)) - return - var/mob/living/carbon/human/fugitive = target - var/datum/antagonist/fugitive/fug_antag = fugitive.mind.has_antag_datum(/datum/antagonist/fugitive) - if(!fug_antag) - to_chat(fugitive_hunter, "This is not a wanted fugitive!") - return - if(do_after(fugitive_hunter, 50, target = fugitive)) - add_prisoner(fugitive, fug_antag) - -/obj/machinery/fugitive_capture/proc/add_prisoner(mob/living/carbon/human/fugitive, datum/antagonist/fugitive/antag) - fugitive.forceMove(src) - antag.is_captured = TRUE - to_chat(fugitive, "You are thrown into a vast void of bluespace, and as you fall further into oblivion the comparatively small entrance to reality gets smaller and smaller until you cannot see it anymore. You have failed to avoid capture.") - fugitive.ghostize(TRUE) //so they cannot suicide, round end stuff. - -/obj/structure/closet/crate/eva - name = "EVA crate" - -/obj/structure/closet/crate/eva/PopulateContents() - ..() - for(var/i in 1 to 3) - new /obj/item/clothing/suit/space/eva(src) - for(var/i in 1 to 3) - new /obj/item/clothing/head/helmet/space/eva(src) - for(var/i in 1 to 3) - new /obj/item/clothing/mask/breath(src) - for(var/i in 1 to 3) - new /obj/item/tank/internals/oxygen(src) diff --git a/code/modules/antagonists/fugitive/hunter.dm b/code/modules/antagonists/fugitive/hunter.dm deleted file mode 100644 index 090b243e5310..000000000000 --- a/code/modules/antagonists/fugitive/hunter.dm +++ /dev/null @@ -1,172 +0,0 @@ -//The hunters!! -/datum/antagonist/fugitive_hunter - name = "Fugitive Hunter" - roundend_category = "Fugitive" - silent = TRUE //greet called by the spawn - show_in_antagpanel = FALSE - prevent_roundtype_conversion = FALSE - antag_hud_type = ANTAG_HUD_FUGITIVE - antag_hud_name = "fugitive_hunter" - var/datum/team/fugitive_hunters/hunter_team - var/backstory = "error" - -/datum/antagonist/fugitive_hunter/apply_innate_effects(mob/living/mob_override) - var/mob/living/M = mob_override || owner.current - add_antag_hud(antag_hud_type, antag_hud_name, M) - -/datum/antagonist/fugitive_hunter/remove_innate_effects(mob/living/mob_override) - var/mob/living/M = mob_override || owner.current - remove_antag_hud(antag_hud_type, M) - -/datum/antagonist/fugitive_hunter/on_gain() - forge_objectives() - . = ..() - -/datum/antagonist/fugitive_hunter/proc/forge_objectives() //this isn't an actual objective because it's about round end rosters - var/datum/objective/capture = new /datum/objective - capture.owner = owner - capture.explanation_text = "Capture the fugitives in the station and put them into the bluespace capture machine on your ship." - objectives += capture - -/datum/antagonist/fugitive_hunter/greet() - switch(backstory) - if("space cop") - to_chat(owner, "Justice has arrived. I am a member of the Spacepol!") - to_chat(owner, "The criminals should be on the station, we have special huds implanted to recognize them.") - to_chat(owner, "As we have lost pretty much all power over these damned lawless megacorporations, it's a mystery if their security will cooperate with us.") - if("russian") - to_chat(src, "Ay blyat. I am a space-russian smuggler! We were mid-flight when our cargo was beamed off our ship!") - to_chat(src, "We were hailed by a man in a green uniform, promising the safe return of our goods in exchange for a favor:") - to_chat(src, "There is a local station housing fugitives that the man is after, he wants them returned; dead or alive.") - to_chat(src, "We will not be able to make ends meet without our cargo, so we must do as he says and capture them.") - - to_chat(owner, "You are not an antagonist in that you may kill whomever you please, but you can do anything to ensure the capture of the fugitives, even if that means going through the station.") - owner.announce_objectives() - -/datum/antagonist/fugitive_hunter/create_team(datum/team/fugitive_hunters/new_team) - if(!new_team) - for(var/datum/antagonist/fugitive_hunter/H in GLOB.antagonists) - if(!H.owner) - continue - if(H.hunter_team) - hunter_team = H.hunter_team - return - hunter_team = new /datum/team/fugitive_hunters - hunter_team.backstory = backstory - hunter_team.update_objectives() - return - if(!istype(new_team)) - stack_trace("Wrong team type passed to [type] initialization.") - hunter_team = new_team - -/datum/antagonist/fugitive_hunter/get_team() - return hunter_team - -/datum/team/fugitive_hunters - var/backstory = "error" - -/datum/team/fugitive_hunters/proc/update_objectives(initial = FALSE) - objectives = list() - var/datum/objective/O = new() - O.team = src - objectives += O - -/datum/team/fugitive_hunters/proc/assemble_fugitive_results() - var/list/fugitives_counted = list() - var/list/fugitives_dead = list() - var/list/fugitives_captured = list() - for(var/datum/antagonist/fugitive/A in GLOB.antagonists) - if(!A.owner) - continue - fugitives_counted += A - if(A.owner.current.stat == DEAD) - fugitives_dead += A - if(A.is_captured) - fugitives_captured += A - . = list(fugitives_counted, fugitives_dead, fugitives_captured) //okay, check out how cool this is. - -/datum/team/fugitive_hunters/proc/all_hunters_dead() - var/dead_boys = 0 - for(var/I in members) - var/datum/mind/hunter_mind = I - if(!(ishuman(hunter_mind.current) || (hunter_mind.current.stat == DEAD))) - dead_boys++ - return dead_boys >= members.len - -/datum/team/fugitive_hunters/proc/get_result() - var/list/fugitive_results = assemble_fugitive_results() - var/list/fugitives_counted = fugitive_results[1] - var/list/fugitives_dead = fugitive_results[2] - var/list/fugitives_captured = fugitive_results[3] - var/hunters_dead = all_hunters_dead() - //this gets a little confusing so follow the comments if it helps - if(!fugitives_counted.len) - return - if(fugitives_captured.len)//any captured - if(fugitives_captured.len == fugitives_counted.len)//if the hunters captured all the fugitives, there's a couple special wins - if(!fugitives_dead)//specifically all of the fugitives alive - return FUGITIVE_RESULT_BADASS_HUNTER - else if(hunters_dead)//specifically all of the hunters died (while capturing all the fugitives) - return FUGITIVE_RESULT_POSTMORTEM_HUNTER - else//no special conditional wins, so just the normal major victory - return FUGITIVE_RESULT_MAJOR_HUNTER - else if(!hunters_dead)//so some amount captured, and the hunters survived. - return FUGITIVE_RESULT_HUNTER_VICTORY - else//so some amount captured, but NO survivors. - return FUGITIVE_RESULT_MINOR_HUNTER - else//from here on out, hunters lost because they did not capture any fugitive dead or alive. there are different levels of getting beat though: - if(!fugitives_dead)//all fugitives survived - return FUGITIVE_RESULT_MAJOR_FUGITIVE - else if(fugitives_dead < fugitives_counted)//at least ANY fugitive lived - return FUGITIVE_RESULT_FUGITIVE_VICTORY - else if(!hunters_dead)//all fugitives died, but none were taken in by the hunters. minor win - return FUGITIVE_RESULT_MINOR_FUGITIVE - else//all fugitives died, all hunters died, nobody brought back. seems weird to not give fugitives a victory if they managed to kill the hunters but literally no progress to either goal should lead to a nobody wins situation - return FUGITIVE_RESULT_STALEMATE - -/datum/team/fugitive_hunters/roundend_report() //shows the number of fugitives, but not if they won in case there is no security - if(!members.len) - return - - var/list/result = list() - - result += "
...And [members.len] [backstory]s tried to hunt them down!" - - for(var/datum/mind/M in members) - result += "[printplayer(M)]" - - switch(get_result()) - if(FUGITIVE_RESULT_BADASS_HUNTER)//use defines - result += "Badass [capitalize(backstory)] Victory!" - result += "The [backstory]s managed to capture every fugitive, alive!" - if(FUGITIVE_RESULT_POSTMORTEM_HUNTER) - result += "Postmortem [capitalize(backstory)] Victory!" - result += "The [backstory]s managed to capture every fugitive, but all of them died! Spooky!" - if(FUGITIVE_RESULT_MAJOR_HUNTER) - result += "Major [capitalize(backstory)] Victory" - result += "The [backstory]s managed to capture every fugitive, dead or alive." - if(FUGITIVE_RESULT_HUNTER_VICTORY) - result += "[capitalize(backstory)] Victory" - result += "The [backstory]s managed to capture a fugitive, dead or alive." - if(FUGITIVE_RESULT_MINOR_HUNTER) - result += "Minor [capitalize(backstory)] Victory" - result += "All the [backstory]s died, but managed to capture a fugitive, dead or alive." - if(FUGITIVE_RESULT_STALEMATE) - result += "Bloody Stalemate" - result += "Everyone died, and no fugitives were recovered!" - if(FUGITIVE_RESULT_MINOR_FUGITIVE) - result += "Minor Fugitive Victory" - result += "All the fugitives died, but none were recovered!" - if(FUGITIVE_RESULT_FUGITIVE_VICTORY) - result += "Fugitive Victory" - result += "A fugitive survived, and no bodies were recovered by the [backstory]s." - if(FUGITIVE_RESULT_MAJOR_FUGITIVE) - result += "Major Fugitive Victory" - result += "All of the fugitives survived and avoided capture!" - else //get_result returned null- either bugged or no fugitives showed - result += "Prank Call!" - result += "[capitalize(backstory)]s were called, yet there were no fugitives...?" - - result += "
" - - return result.Join("
") diff --git a/code/modules/antagonists/gang/gang.dm b/code/modules/antagonists/gang/gang.dm index f9264d0bfd9b..8f73b93f8fd4 100644 --- a/code/modules/antagonists/gang/gang.dm +++ b/code/modules/antagonists/gang/gang.dm @@ -198,11 +198,9 @@ roundend_category = "The Tunnel Snakes" gang_name = "Tunnel Snakes" gang_id = "TS" - acceptable_clothes = list(/obj/item/clothing/under/pants/classicjeans, - /obj/item/clothing/suit/jacket, + acceptable_clothes = list(/obj/item/clothing/suit/jacket, /obj/item/clothing/mask/bandana/skull) free_clothes = list(/obj/item/clothing/suit/jacket, - /obj/item/clothing/under/pants/classicjeans, /obj/item/toy/crayon/spraycan) gang_objective = "TUNNEL SNAKES RULE!!! Make sure that everyone knows that, by getting 25% of people on station to wear any part of our uniform! TUNNEL SNAKES RULE!!!" antag_hud_name = "Snakes" diff --git a/code/modules/antagonists/nukeop/equipment/borgchameleon.dm b/code/modules/antagonists/nukeop/equipment/borgchameleon.dm index c87faa0941b8..ddc895060b0c 100644 --- a/code/modules/antagonists/nukeop/equipment/borgchameleon.dm +++ b/code/modules/antagonists/nukeop/equipment/borgchameleon.dm @@ -96,7 +96,7 @@ return if(listeningTo) UnregisterSignal(listeningTo, signalCache) - RegisterSignal(user, signalCache, .proc/disrupt) + RegisterSignal(user, signalCache, PROC_REF(disrupt)) listeningTo = user /obj/item/borg_chameleon/proc/deactivate(mob/living/silicon/robot/user) diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm index 9aaa8b989c0d..d0019eb19cc2 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm @@ -459,7 +459,7 @@ sound_to_playing_players('sound/machines/alarm.ogg') if(SSticker && SSticker.mode) SSticker.roundend_check_paused = TRUE - addtimer(CALLBACK(src, .proc/actually_explode), 100) + addtimer(CALLBACK(src, PROC_REF(actually_explode)), 100) /obj/machinery/nuclearbomb/proc/actually_explode() if(!core) @@ -494,8 +494,8 @@ SSticker.roundend_check_paused = FALSE /obj/machinery/nuclearbomb/proc/really_actually_explode(off_station) - Cinematic(get_cinematic_type(off_station),world,CALLBACK(SSticker,/datum/controller/subsystem/ticker/proc/station_explosion_detonation,src)) - INVOKE_ASYNC(GLOBAL_PROC,.proc/KillEveryoneOnZLevel, virtual_z()) + Cinematic(get_cinematic_type(off_station),world,CALLBACK(SSticker, TYPE_PROC_REF(/datum/controller/subsystem/ticker, station_explosion_detonation),src)) + INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(KillEveryoneOnZLevel), virtual_z()) /obj/machinery/nuclearbomb/proc/get_cinematic_type(off_station) if(off_station < 2) @@ -540,7 +540,7 @@ var/datum/round_event_control/E = locate(/datum/round_event_control/vent_clog/beer) in SSevents.control if(E) E.runEvent() - addtimer(CALLBACK(src, .proc/really_actually_explode), 110) + addtimer(CALLBACK(src, PROC_REF(really_actually_explode)), 110) /obj/machinery/nuclearbomb/beer/proc/disarm() detonation_timer = null diff --git a/code/modules/antagonists/nukeop/nukeop.dm b/code/modules/antagonists/nukeop/nukeop.dm index ab8202527abc..9f807d9521e7 100644 --- a/code/modules/antagonists/nukeop/nukeop.dm +++ b/code/modules/antagonists/nukeop/nukeop.dm @@ -132,8 +132,8 @@ /datum/antagonist/nukeop/get_admin_commands() . = ..() - .["Send to base"] = CALLBACK(src,.proc/admin_send_to_base) - .["Tell code"] = CALLBACK(src,.proc/admin_tell_code) + .["Send to base"] = CALLBACK(src, PROC_REF(admin_send_to_base)) + .["Tell code"] = CALLBACK(src, PROC_REF(admin_tell_code)) /datum/antagonist/nukeop/proc/admin_send_to_base(mob/admin) owner.current.forceMove(pick(GLOB.nukeop_start)) @@ -190,7 +190,7 @@ else H.put_in_hands(dukinuki, TRUE) owner.announce_objectives() - addtimer(CALLBACK(src, .proc/nuketeam_name_assign), 1) + addtimer(CALLBACK(src, PROC_REF(nuketeam_name_assign)), 1) /datum/antagonist/nukeop/leader/proc/nuketeam_name_assign() diff --git a/code/modules/antagonists/pirate/pirate.dm b/code/modules/antagonists/pirate/pirate.dm deleted file mode 100644 index 91bc063869a7..000000000000 --- a/code/modules/antagonists/pirate/pirate.dm +++ /dev/null @@ -1,108 +0,0 @@ -/datum/antagonist/pirate - name = "Space Pirate" - job_rank = ROLE_TRAITOR - roundend_category = "space pirates" - antagpanel_category = "Pirate" - show_to_ghosts = TRUE - var/datum/team/pirate/crew - -/datum/antagonist/pirate/greet() - to_chat(owner, "You are a Space Pirate!") - to_chat(owner, "The station refused to pay for your protection, protect the ship, siphon the credits from the station and raid it for even more loot.") - owner.announce_objectives() - -/datum/antagonist/pirate/get_team() - return crew - -/datum/antagonist/pirate/create_team(datum/team/pirate/new_team) - if(!new_team) - for(var/datum/antagonist/pirate/P in GLOB.antagonists) - if(!P.owner) - continue - if(P.crew) - crew = P.crew - return - if(!new_team) - crew = new /datum/team/pirate - crew.forge_objectives() - return - if(!istype(new_team)) - stack_trace("Wrong team type passed to [type] initialization.") - crew = new_team - -/datum/antagonist/pirate/on_gain() - if(crew) - objectives |= crew.objectives - . = ..() - -/datum/team/pirate - name = "Pirate crew" - -/datum/team/pirate/proc/forge_objectives() - var/datum/objective/loot/getbooty = new() - getbooty.team = src - for(var/obj/machinery/computer/piratepad_control/P in GLOB.machines) - var/area/A = get_area(P) - if(istype(A,/area/shuttle/pirate)) - getbooty.cargo_hold = P - break - getbooty.update_explanation_text() - objectives += getbooty - for(var/datum/mind/M in members) - var/datum/antagonist/pirate/P = M.has_antag_datum(/datum/antagonist/pirate) - if(P) - P.objectives |= objectives - - -/datum/objective/loot - var/obj/machinery/computer/piratepad_control/cargo_hold - explanation_text = "Acquire valuable loot and store it in designated area." - var/target_value = 50000 - - -/datum/objective/loot/update_explanation_text() - if(cargo_hold) - var/area/storage_area = get_area(cargo_hold) - explanation_text = "Acquire loot and store [target_value] of credits worth in [storage_area.name] cargo hold." - -/datum/objective/loot/proc/loot_listing() - //Lists notable loot. - if(!cargo_hold || !cargo_hold.total_report) - return "Nothing" - cargo_hold.total_report.total_value = sortTim(cargo_hold.total_report.total_value, cmp = /proc/cmp_numeric_dsc, associative = TRUE) - var/count = 0 - var/list/loot_texts = list() - for(var/datum/export/E in cargo_hold.total_report.total_value) - if(++count > 5) - break - loot_texts += E.total_printout(cargo_hold.total_report,notes = FALSE) - return loot_texts.Join(", ") - -/datum/objective/loot/proc/get_loot_value() - return cargo_hold ? cargo_hold.points : 0 - -/datum/objective/loot/check_completion() - return ..() || get_loot_value() >= target_value - -/datum/team/pirate/roundend_report() - var/list/parts = list() - - parts += "Space Pirates were:" - - var/all_dead = TRUE - for(var/datum/mind/M in members) - if(considered_alive(M)) - all_dead = FALSE - parts += printplayerlist(members) - - parts += "Loot stolen: " - var/datum/objective/loot/L = locate() in objectives - parts += L.loot_listing() - parts += "Total loot value : [L.get_loot_value()]/[L.target_value] credits" - - if(L.check_completion() && !all_dead) - parts += "The pirate crew was successful!" - else - parts += "The pirate crew has failed." - - return "
[parts.Join("
")]
" diff --git a/code/modules/antagonists/revenant/revenant.dm b/code/modules/antagonists/revenant/revenant.dm index 2487260dd5c1..76da8304df09 100644 --- a/code/modules/antagonists/revenant/revenant.dm +++ b/code/modules/antagonists/revenant/revenant.dm @@ -199,7 +199,7 @@ adjustBruteLoss(25) //hella effective inhibited = TRUE update_action_buttons_icon() - addtimer(CALLBACK(src, .proc/reset_inhibit), 30) + addtimer(CALLBACK(src, PROC_REF(reset_inhibit)), 30) /mob/living/simple_animal/revenant/proc/reset_inhibit() inhibited = FALSE @@ -361,7 +361,7 @@ /obj/item/ectoplasm/revenant/Initialize() . = ..() - addtimer(CALLBACK(src, .proc/try_reform), 600) + addtimer(CALLBACK(src, PROC_REF(try_reform)), 600) /obj/item/ectoplasm/revenant/proc/scatter() qdel(src) diff --git a/code/modules/antagonists/revenant/revenant_abilities.dm b/code/modules/antagonists/revenant/revenant_abilities.dm index edccf0775928..b235199ed750 100644 --- a/code/modules/antagonists/revenant/revenant_abilities.dm +++ b/code/modules/antagonists/revenant/revenant_abilities.dm @@ -200,7 +200,7 @@ /obj/effect/proc_holder/spell/aoe_turf/revenant/overload/cast(list/targets, mob/living/simple_animal/revenant/user = usr) if(attempt_cast(user)) for(var/turf/T in targets) - INVOKE_ASYNC(src, .proc/overload, T, user) + INVOKE_ASYNC(src, PROC_REF(overload), T, user) /obj/effect/proc_holder/spell/aoe_turf/revenant/overload/proc/overload(turf/T, mob/user) for(var/obj/machinery/light/L in T) @@ -211,7 +211,7 @@ s.set_up(4, 0, L) s.start() new /obj/effect/temp_visual/revenant(get_turf(L)) - addtimer(CALLBACK(src, .proc/overload_shock, L, user), 20) + addtimer(CALLBACK(src, PROC_REF(overload_shock), L, user), 20) /obj/effect/proc_holder/spell/aoe_turf/revenant/overload/proc/overload_shock(obj/machinery/light/L, mob/user) if(!L.on) //wait, wait, don't shock me @@ -241,7 +241,7 @@ /obj/effect/proc_holder/spell/aoe_turf/revenant/defile/cast(list/targets, mob/living/simple_animal/revenant/user = usr) if(attempt_cast(user)) for(var/turf/T in targets) - INVOKE_ASYNC(src, .proc/defile, T) + INVOKE_ASYNC(src, PROC_REF(defile), T) /obj/effect/proc_holder/spell/aoe_turf/revenant/defile/proc/defile(turf/T) for(var/obj/effect/blessing/B in T) @@ -292,7 +292,7 @@ /obj/effect/proc_holder/spell/aoe_turf/revenant/malfunction/cast(list/targets, mob/living/simple_animal/revenant/user = usr) if(attempt_cast(user)) for(var/turf/T in targets) - INVOKE_ASYNC(src, .proc/malfunction, T, user) + INVOKE_ASYNC(src, PROC_REF(malfunction), T, user) /obj/effect/proc_holder/spell/aoe_turf/revenant/malfunction/proc/malfunction(turf/T, mob/user) for(var/mob/living/simple_animal/bot/bot in T) @@ -335,7 +335,7 @@ /obj/effect/proc_holder/spell/aoe_turf/revenant/blight/cast(list/targets, mob/living/simple_animal/revenant/user = usr) if(attempt_cast(user)) for(var/turf/T in targets) - INVOKE_ASYNC(src, .proc/blight, T, user) + INVOKE_ASYNC(src, PROC_REF(blight), T, user) /obj/effect/proc_holder/spell/aoe_turf/revenant/blight/proc/blight(turf/T, mob/user) for(var/mob/living/mob in T) diff --git a/code/modules/antagonists/revenant/revenant_blight.dm b/code/modules/antagonists/revenant/revenant_blight.dm index 04381477802a..cd1b40957d82 100644 --- a/code/modules/antagonists/revenant/revenant_blight.dm +++ b/code/modules/antagonists/revenant/revenant_blight.dm @@ -62,6 +62,6 @@ affected_mob.dna.species.handle_hair(affected_mob,"#1d2953") affected_mob.visible_message("[affected_mob] looks terrifyingly gaunt...", "You suddenly feel like your skin is wrong...") affected_mob.add_atom_colour("#1d2953", TEMPORARY_COLOUR_PRIORITY) - addtimer(CALLBACK(src, .proc/cure), 100) + addtimer(CALLBACK(src, PROC_REF(cure)), 100) else return diff --git a/code/modules/antagonists/slaughter/slaughter.dm b/code/modules/antagonists/slaughter/slaughter.dm index b12050c263b7..595fbb27f61a 100644 --- a/code/modules/antagonists/slaughter/slaughter.dm +++ b/code/modules/antagonists/slaughter/slaughter.dm @@ -68,7 +68,7 @@ /mob/living/simple_animal/slaughter/phasein() . = ..() add_movespeed_modifier(/datum/movespeed_modifier/slaughter) - addtimer(CALLBACK(src, .proc/remove_movespeed_modifier, /datum/movespeed_modifier/slaughter), 6 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) + addtimer(CALLBACK(src, PROC_REF(remove_movespeed_modifier), /datum/movespeed_modifier/slaughter), 6 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) //The loot from killing a slaughter demon - can be consumed to allow the user to blood crawl /obj/item/organ/heart/demon diff --git a/code/modules/antagonists/swarmer/swarmer.dm b/code/modules/antagonists/swarmer/swarmer.dm index 48b9ecfad259..6fec09373797 100644 --- a/code/modules/antagonists/swarmer/swarmer.dm +++ b/code/modules/antagonists/swarmer/swarmer.dm @@ -569,7 +569,7 @@ /obj/structure/swarmer/trap/Initialize(mapload) . = ..() var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm index a3e4230373d8..894023d9c194 100644 --- a/code/modules/antagonists/traitor/datum_traitor.dm +++ b/code/modules/antagonists/traitor/datum_traitor.dm @@ -219,7 +219,7 @@ var/mob/living/silicon/ai/A = M if(istype(A) && traitor_kind == TRAITOR_AI) A.hack_software = TRUE - RegisterSignal(M, COMSIG_MOVABLE_HEAR, .proc/handle_hearing) + RegisterSignal(M, COMSIG_MOVABLE_HEAR, PROC_REF(handle_hearing)) /datum/antagonist/traitor/remove_innate_effects(mob/living/mob_override) . = ..() diff --git a/code/modules/antagonists/traitor/equipment/Malf_Modules.dm b/code/modules/antagonists/traitor/equipment/Malf_Modules.dm index 0add31c60b74..339cd462d5a8 100644 --- a/code/modules/antagonists/traitor/equipment/Malf_Modules.dm +++ b/code/modules/antagonists/traitor/equipment/Malf_Modules.dm @@ -338,8 +338,8 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/AI_Module)) /datum/action/innate/ai/lockdown/Activate() for(var/obj/machinery/door/D in GLOB.airlocks) - INVOKE_ASYNC(D, /obj/machinery/door.proc/hostile_lockdown, owner) - addtimer(CALLBACK(D, /obj/machinery/door.proc/disable_lockdown), 900) + INVOKE_ASYNC(D, TYPE_PROC_REF(/obj/machinery/door, hostile_lockdown), owner) + addtimer(CALLBACK(D, TYPE_PROC_REF(/obj/machinery/door, disable_lockdown)), 900) var/obj/machinery/computer/communications/C = locate() in GLOB.machines if(C) @@ -347,7 +347,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/AI_Module)) minor_announce("Hostile runtime detected in door controllers. Isolation lockdown protocols are now in effect. Please remain calm.","Network Alert:", TRUE) to_chat(owner, "Lockdown initiated. Network reset in 90 seconds.") - addtimer(CALLBACK(GLOBAL_PROC, .proc/minor_announce, + addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(minor_announce), "Automatic system reboot complete. Have a secure day.", "Network reset:"), 900) @@ -400,7 +400,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/AI_Module)) attached_action.desc = "[initial(attached_action.desc)] It has [attached_action.uses] use\s remaining." attached_action.UpdateButtonIcon() target.audible_message("You hear a loud electrical buzzing sound coming from [target]!") - addtimer(CALLBACK(attached_action, /datum/action/innate/ai/ranged/override_machine.proc/animate_machine, target), 50) //kabeep! + addtimer(CALLBACK(attached_action, TYPE_PROC_REF(/datum/action/innate/ai/ranged/override_machine, animate_machine), target), 50) //kabeep! remove_ranged_ability("Sending override signal...") return TRUE @@ -483,7 +483,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/AI_Module)) attached_action.desc = "[initial(attached_action.desc)] It has [attached_action.uses] use\s remaining." attached_action.UpdateButtonIcon() target.audible_message("You hear a loud electrical buzzing sound coming from [target]!") - addtimer(CALLBACK(attached_action, /datum/action/innate/ai/ranged/overload_machine.proc/detonate_machine, target), 50) //kaboom! + addtimer(CALLBACK(attached_action, TYPE_PROC_REF(/datum/action/innate/ai/ranged/overload_machine, detonate_machine), target), 50) //kaboom! remove_ranged_ability("Overcharging machine...") return TRUE @@ -590,7 +590,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/AI_Module)) I.loc = T client.images += I I.icon_state = "[success ? "green" : "red"]Overlay" //greenOverlay and redOverlay for success and failure respectively - addtimer(CALLBACK(src, .proc/remove_transformer_image, client, I, T), 30) + addtimer(CALLBACK(src, PROC_REF(remove_transformer_image), client, I, T), 30) if(!success) to_chat(src, "[alert_msg]") return success @@ -660,7 +660,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/AI_Module)) /datum/action/innate/ai/emergency_lights/Activate() for(var/obj/machinery/light/L in GLOB.machines) L.no_emergency = TRUE - INVOKE_ASYNC(L, /obj/machinery/light/.proc/update, FALSE) + INVOKE_ASYNC(L, TYPE_PROC_REF(/obj/machinery/light, update), FALSE) CHECK_TICK to_chat(owner, "Emergency light connections severed.") owner.playsound_local(owner, 'sound/effects/light_flicker.ogg', 50, FALSE) diff --git a/code/modules/antagonists/traitor/syndicate_contract.dm b/code/modules/antagonists/traitor/syndicate_contract.dm index 17e841acb5e3..d012949ba054 100644 --- a/code/modules/antagonists/traitor/syndicate_contract.dm +++ b/code/modules/antagonists/traitor/syndicate_contract.dm @@ -61,7 +61,7 @@ /datum/syndicate_contract/proc/launch_extraction_pod(turf/empty_pod_turf) var/obj/structure/closet/supplypod/extractionpod/empty_pod = new() - RegisterSignal(empty_pod, COMSIG_ATOM_ENTERED, .proc/enter_check) + RegisterSignal(empty_pod, COMSIG_ATOM_ENTERED, PROC_REF(enter_check)) empty_pod.stay_after_drop = TRUE empty_pod.reversing = TRUE @@ -156,7 +156,7 @@ /datum/syndicate_contract/proc/handleVictimExperience(mob/living/M) // Ship 'em back - dead or alive, 4 minutes wait. // Even if they weren't the target, we're still treating them the same. - addtimer(CALLBACK(src, .proc/returnVictim, M), (60 * 10) * 4) + addtimer(CALLBACK(src, PROC_REF(returnVictim), M), (60 * 10) * 4) if (M.stat != DEAD) // Heal them up - gets them out of crit/soft crit. If omnizine is removed in the future, this needs to be replaced with a diff --git a/code/modules/antagonists/wizard/equipment/artefact.dm b/code/modules/antagonists/wizard/equipment/artefact.dm index 01993ee5539e..a95ef0d1b579 100644 --- a/code/modules/antagonists/wizard/equipment/artefact.dm +++ b/code/modules/antagonists/wizard/equipment/artefact.dm @@ -129,7 +129,7 @@ insaneinthemembrane.sanity = 0 for(var/lore in typesof(/datum/brain_trauma/severe)) C.gain_trauma(lore) - addtimer(CALLBACK(src, /obj/singularity/wizard.proc/deranged, C), 100) + addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/singularity/wizard, deranged), C), 100) /obj/singularity/wizard/proc/deranged(mob/living/carbon/C) if(!C || C.stat == DEAD) @@ -340,7 +340,7 @@ if(BODY_ZONE_PRECISE_EYES) user.set_machine(src) user.reset_perspective(target) - addtimer(CALLBACK(src, .proc/reset, user), 10 SECONDS) + addtimer(CALLBACK(src, PROC_REF(reset), user), 10 SECONDS) if(BODY_ZONE_R_LEG,BODY_ZONE_L_LEG) to_chat(user, "You move the doll's legs around.") var/turf/T = get_step(target,pick(GLOB.cardinals)) diff --git a/code/modules/antagonists/wizard/equipment/soulstone.dm b/code/modules/antagonists/wizard/equipment/soulstone.dm index 8a13c5c612ed..c426b953f725 100644 --- a/code/modules/antagonists/wizard/equipment/soulstone.dm +++ b/code/modules/antagonists/wizard/equipment/soulstone.dm @@ -224,7 +224,7 @@ "Wraith" = image(icon = 'icons/mob/cult.dmi', icon_state = "wraith"), "Artificer" = image(icon = 'icons/mob/cult.dmi', icon_state = "artificer") ) - var/construct_class = show_radial_menu(user, src, constructs, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE) + var/construct_class = show_radial_menu(user, src, constructs, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) if(!T || !T.loc) return switch(construct_class) diff --git a/code/modules/antagonists/wizard/wizard.dm b/code/modules/antagonists/wizard/wizard.dm index 528fd33db5d4..14cf56d51ae0 100644 --- a/code/modules/antagonists/wizard/wizard.dm +++ b/code/modules/antagonists/wizard/wizard.dm @@ -162,7 +162,7 @@ /datum/antagonist/wizard/get_admin_commands() . = ..() - .["Send to Lair"] = CALLBACK(src,.proc/admin_send_to_lair) + .["Send to Lair"] = CALLBACK(src, PROC_REF(admin_send_to_lair)) /datum/antagonist/wizard/proc/admin_send_to_lair(mob/admin) owner.current.forceMove(pick(GLOB.wizardstart)) diff --git a/code/modules/assembly/assembly.dm b/code/modules/assembly/assembly.dm index 5c1324bdcfe9..2d5fd3efc9fc 100644 --- a/code/modules/assembly/assembly.dm +++ b/code/modules/assembly/assembly.dm @@ -35,7 +35,7 @@ /obj/item/assembly/Initialize() . = ..() var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) @@ -75,9 +75,9 @@ //Called when another assembly acts on this one, var/radio will determine where it came from for wire calcs /obj/item/assembly/proc/pulsed(radio = FALSE) if(wire_type & WIRE_RECEIVE) - INVOKE_ASYNC(src, .proc/activate) + INVOKE_ASYNC(src, PROC_REF(activate)) if(radio && (wire_type & WIRE_RADIO_RECEIVE)) - INVOKE_ASYNC(src, .proc/activate) + INVOKE_ASYNC(src, PROC_REF(activate)) return TRUE //Called when this device attempts to act on another device, var/radio determines if it was sent via radio or direct diff --git a/code/modules/assembly/bomb.dm b/code/modules/assembly/bomb.dm index ab64cdc86700..8407f1d8b1a1 100644 --- a/code/modules/assembly/bomb.dm +++ b/code/modules/assembly/bomb.dm @@ -16,7 +16,7 @@ /obj/item/onetankbomb/Initialize() . = ..() var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) diff --git a/code/modules/assembly/doorcontrol.dm b/code/modules/assembly/doorcontrol.dm index 40a10a168ea0..3b8c2c8cf7ba 100644 --- a/code/modules/assembly/doorcontrol.dm +++ b/code/modules/assembly/doorcontrol.dm @@ -28,7 +28,7 @@ if(M.id == src.id) if(openclose == null || !sync_doors) openclose = M.density - INVOKE_ASYNC(M, openclose ? /obj/machinery/door/poddoor.proc/open : /obj/machinery/door/poddoor.proc/close) + INVOKE_ASYNC(M, openclose ? TYPE_PROC_REF(/obj/machinery/door/poddoor, open) : TYPE_PROC_REF(/obj/machinery/door/poddoor, close)) addtimer(VARSET_CALLBACK(src, cooldown, FALSE), 10) /obj/item/assembly/control/airlock @@ -71,7 +71,7 @@ D.safe = !D.safe for(var/D in open_or_close) - INVOKE_ASYNC(D, doors_need_closing ? /obj/machinery/door/airlock.proc/close : /obj/machinery/door/airlock.proc/open) + INVOKE_ASYNC(D, doors_need_closing ? TYPE_PROC_REF(/obj/machinery/door/airlock, close) : TYPE_PROC_REF(/obj/machinery/door/airlock, open)) addtimer(VARSET_CALLBACK(src, cooldown, FALSE), 10) @@ -86,7 +86,7 @@ cooldown = TRUE for(var/obj/machinery/door/poddoor/M in GLOB.machines) if (M.id == src.id) - INVOKE_ASYNC(M, /obj/machinery/door/poddoor.proc/open) + INVOKE_ASYNC(M, TYPE_PROC_REF(/obj/machinery/door/poddoor, open)) sleep(10) @@ -98,7 +98,7 @@ for(var/obj/machinery/door/poddoor/M in GLOB.machines) if (M.id == src.id) - INVOKE_ASYNC(M, /obj/machinery/door/poddoor.proc/close) + INVOKE_ASYNC(M, TYPE_PROC_REF(/obj/machinery/door/poddoor, close)) addtimer(VARSET_CALLBACK(src, cooldown, FALSE), 10) @@ -113,7 +113,7 @@ cooldown = TRUE for(var/obj/machinery/sparker/M in GLOB.machines) if (M.id == src.id) - INVOKE_ASYNC(M, /obj/machinery/sparker.proc/ignite) + INVOKE_ASYNC(M, TYPE_PROC_REF(/obj/machinery/sparker, ignite)) for(var/obj/machinery/igniter/M in GLOB.machines) if(M.id == src.id) @@ -133,7 +133,7 @@ cooldown = TRUE for(var/obj/machinery/flasher/M in GLOB.machines) if(M.id == src.id) - INVOKE_ASYNC(M, /obj/machinery/flasher.proc/flash) + INVOKE_ASYNC(M, TYPE_PROC_REF(/obj/machinery/flasher, flash)) addtimer(VARSET_CALLBACK(src, cooldown, FALSE), 50) @@ -163,6 +163,6 @@ cooldown = TRUE for(var/obj/machinery/power/shieldwallgen/machine in GLOB.machines) if(machine.id == src.id) - INVOKE_ASYNC(machine, /obj/machinery/power/shieldwallgen.proc/toggle) + INVOKE_ASYNC(machine, TYPE_PROC_REF(/obj/machinery/power/shieldwallgen, toggle)) addtimer(VARSET_CALLBACK(src, cooldown, FALSE), 20) diff --git a/code/modules/assembly/flash.dm b/code/modules/assembly/flash.dm index 637157682a15..8fe788f79ca7 100644 --- a/code/modules/assembly/flash.dm +++ b/code/modules/assembly/flash.dm @@ -29,7 +29,7 @@ flashing = flash . = ..() if(flash) - addtimer(CALLBACK(src, /atom/.proc/update_icon), 5) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_icon)), 5) holder?.update_icon(updates) /obj/item/assembly/flash/update_overlays() @@ -97,7 +97,7 @@ last_trigger = world.time playsound(src, 'sound/weapons/flash.ogg', 100, TRUE) set_light_on(TRUE) - addtimer(CALLBACK(src, .proc/flash_end), FLASH_LIGHT_DURATION, TIMER_OVERRIDE|TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(flash_end)), FLASH_LIGHT_DURATION, TIMER_OVERRIDE|TIMER_UNIQUE) times_used++ flash_recharge() update_icon(ALL, TRUE) @@ -219,7 +219,7 @@ to_chat(real_arm.owner, "Your photon projector implant overheats and deactivates!") real_arm.Retract() overheat = TRUE - addtimer(CALLBACK(src, .proc/cooldown), flashcd * 2) + addtimer(CALLBACK(src, PROC_REF(cooldown)), flashcd * 2) /obj/item/assembly/flash/armimplant/try_use_flash(mob/user = null) if(overheat) @@ -228,7 +228,7 @@ to_chat(real_arm.owner, "Your photon projector is running too hot to be used again so quickly!") return FALSE overheat = TRUE - addtimer(CALLBACK(src, .proc/cooldown), flashcd) + addtimer(CALLBACK(src, PROC_REF(cooldown)), flashcd) playsound(src, 'sound/weapons/flash.ogg', 100, TRUE) update_icon(ALL, TRUE) return TRUE diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm index 4d2ffdac5d4e..8dbb1dc98b61 100644 --- a/code/modules/assembly/holder.dm +++ b/code/modules/assembly/holder.dm @@ -17,7 +17,7 @@ /obj/item/assembly_holder/Initialize() . = ..() var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm index bc8fdcc3d908..72d7bfd45a30 100644 --- a/code/modules/assembly/infrared.dm +++ b/code/modules/assembly/infrared.dm @@ -22,7 +22,7 @@ /obj/item/assembly/infra/ComponentInitialize() . = ..() var/static/rotation_flags = ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_FLIP | ROTATION_VERBS - AddComponent(/datum/component/simple_rotation, rotation_flags, after_rotation=CALLBACK(src,.proc/after_rotation)) + AddComponent(/datum/component/simple_rotation, rotation_flags, after_rotation=CALLBACK(src, PROC_REF(after_rotation))) /obj/item/assembly/infra/proc/after_rotation() refreshBeam() @@ -162,7 +162,7 @@ return if(listeningTo) UnregisterSignal(listeningTo, COMSIG_ATOM_EXITED) - RegisterSignal(newloc, COMSIG_ATOM_EXITED, .proc/check_exit) + RegisterSignal(newloc, COMSIG_ATOM_EXITED, PROC_REF(check_exit)) listeningTo = newloc /obj/item/assembly/infra/proc/check_exit(datum/source, atom/movable/offender) @@ -176,7 +176,7 @@ var/obj/item/I = offender if (I.item_flags & ABSTRACT) return - INVOKE_ASYNC(src, .proc/refreshBeam) + INVOKE_ASYNC(src, PROC_REF(refreshBeam)) /obj/item/assembly/infra/setDir() . = ..() @@ -230,7 +230,7 @@ /obj/effect/beam/i_beam/Initialize() . = ..() var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) @@ -242,4 +242,4 @@ var/obj/item/I = AM if (I.item_flags & ABSTRACT) return - INVOKE_ASYNC(master, /obj/item/assembly/infra/proc/trigger_beam, AM, get_turf(src)) + INVOKE_ASYNC(master, TYPE_PROC_REF(/obj/item/assembly/infra, trigger_beam), AM, get_turf(src)) diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm index bf9353a658d9..25b6ce470466 100644 --- a/code/modules/assembly/mousetrap.dm +++ b/code/modules/assembly/mousetrap.dm @@ -114,15 +114,15 @@ if(ishuman(AM)) var/mob/living/carbon/H = AM if(H.m_intent == MOVE_INTENT_RUN) - INVOKE_ASYNC(src, .proc/triggered, H) + INVOKE_ASYNC(src, PROC_REF(triggered), H) H.visible_message( "[H] accidentally steps on [src].", "You accidentally step on [src]" ) else if(ismouse(MM)) - INVOKE_ASYNC(src, .proc/triggered, MM) + INVOKE_ASYNC(src, PROC_REF(triggered), MM) else if(AM.density) // For mousetrap grenades, set off by anything heavy - INVOKE_ASYNC(src, .proc/triggered, AM) + INVOKE_ASYNC(src, PROC_REF(triggered), AM) /obj/item/assembly/mousetrap/on_found(mob/finder) diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm index 0ff3fadae733..0bfac86ee0df 100644 --- a/code/modules/assembly/signaler.dm +++ b/code/modules/assembly/signaler.dm @@ -61,7 +61,7 @@ switch(action) if("signal") - INVOKE_ASYNC(src, .proc/signal) + INVOKE_ASYNC(src, PROC_REF(signal)) . = TRUE if("freq") frequency = unformat_frequency(params["freq"]) diff --git a/code/modules/assembly/voice.dm b/code/modules/assembly/voice.dm index d154121956c9..84f1a5040015 100644 --- a/code/modules/assembly/voice.dm +++ b/code/modules/assembly/voice.dm @@ -41,7 +41,7 @@ record_speech(speaker, raw_message, message_language) else if(check_activation(speaker, raw_message)) - addtimer(CALLBACK(src, .proc/pulse, 0), 10) + addtimer(CALLBACK(src, PROC_REF(pulse), 0), 10) /obj/item/assembly/voice/proc/record_speech(atom/movable/speaker, raw_message, datum/language/message_language) switch(mode) @@ -59,7 +59,7 @@ say("Your voice pattern is saved.", message_language) if(VOICE_SENSOR_MODE) if(length(raw_message)) - addtimer(CALLBACK(src, .proc/pulse, 0), 10) + addtimer(CALLBACK(src, PROC_REF(pulse), 0), 10) /obj/item/assembly/voice/proc/check_activation(atom/movable/speaker, raw_message) . = FALSE diff --git a/code/modules/asset_cache/transports/asset_transport.dm b/code/modules/asset_cache/transports/asset_transport.dm index 9f1073c9c9f0..5fbc239e45b8 100644 --- a/code/modules/asset_cache/transports/asset_transport.dm +++ b/code/modules/asset_cache/transports/asset_transport.dm @@ -14,7 +14,7 @@ /datum/asset_transport/proc/Load() if (CONFIG_GET(flag/asset_simple_preload)) for(var/client/C in GLOB.clients) - addtimer(CALLBACK(src, .proc/send_assets_slow, C, preload), 1 SECONDS) + addtimer(CALLBACK(src, PROC_REF(send_assets_slow), C, preload), 1 SECONDS) /// Initialize - Called when SSassets initializes. /datum/asset_transport/proc/Initialize(list/assets) @@ -22,7 +22,7 @@ if (!CONFIG_GET(flag/asset_simple_preload)) return for(var/client/C in GLOB.clients) - addtimer(CALLBACK(src, .proc/send_assets_slow, C, preload), 1 SECONDS) + addtimer(CALLBACK(src, PROC_REF(send_assets_slow), C, preload), 1 SECONDS) /** @@ -137,7 +137,7 @@ client.sent_assets[new_asset_name] = ACI.hash - addtimer(CALLBACK(client, /client/proc/asset_cache_update_json), 1 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) + addtimer(CALLBACK(client, TYPE_PROC_REF(/client, asset_cache_update_json)), 1 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) return TRUE return FALSE diff --git a/code/modules/atmospherics/environmental/LINDA_fire.dm b/code/modules/atmospherics/environmental/LINDA_fire.dm index 428e8b5a6d18..041f09cddc9b 100644 --- a/code/modules/atmospherics/environmental/LINDA_fire.dm +++ b/code/modules/atmospherics/environmental/LINDA_fire.dm @@ -60,7 +60,7 @@ air_update_turf() var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) diff --git a/code/modules/atmospherics/gasmixtures/auxgm.dm b/code/modules/atmospherics/gasmixtures/auxgm.dm index 924e90b4767c..40691d8e5079 100644 --- a/code/modules/atmospherics/gasmixtures/auxgm.dm +++ b/code/modules/atmospherics/gasmixtures/auxgm.dm @@ -138,7 +138,7 @@ GLOBAL_DATUM_INIT(gas_data, /datum/auxgm, new) mouse_opacity = MOUSE_OPACITY_TRANSPARENT anchored = TRUE // should only appear in vis_contents, but to be safe layer = FLY_LAYER - appearance_flags = TILE_BOUND + appearance_flags = TILE_BOUND | RESET_COLOR vis_flags = NONE /obj/effect/overlay/gas/New(state) diff --git a/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm index 0d93d554c47f..1f7b18ead917 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm @@ -199,7 +199,7 @@ if("set_external_pressure" in signal.data) external_pressure_bound = clamp(text2num(signal.data["set_external_pressure"]),0,ONE_ATMOSPHERE*50) - addtimer(CALLBACK(src, .proc/broadcast_status), 2) + addtimer(CALLBACK(src, PROC_REF(broadcast_status)), 2) if(!("status" in signal.data)) //do not update_icon update_appearance() @@ -291,10 +291,6 @@ id_tag = INCINERATOR_ATMOS_DP_VENTPUMP frequency = FREQ_AIRLOCK_CONTROL -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_syndicatelava - id_tag = INCINERATOR_SYNDICATELAVA_DP_VENTPUMP - frequency = FREQ_AIRLOCK_CONTROL - /obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer2 piping_layer = 2 icon_state = "dpvent_map-2" diff --git a/code/modules/atmospherics/machinery/components/binary_devices/valve.dm b/code/modules/atmospherics/machinery/components/binary_devices/valve.dm index 0631fac4856c..020570f34785 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/valve.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/valve.dm @@ -49,7 +49,7 @@ It's like a regular ol' straight pipe, but you can turn it on and off. return update_icon_nopipes(TRUE) switching = TRUE - addtimer(CALLBACK(src, .proc/finish_interact), 10) + addtimer(CALLBACK(src, PROC_REF(finish_interact)), 10) /obj/machinery/atmospherics/components/binary/valve/proc/finish_interact() toggle() diff --git a/code/modules/atmospherics/machinery/components/components_base.dm b/code/modules/atmospherics/machinery/components/components_base.dm index 1fdc91effb44..ad8dd9761598 100644 --- a/code/modules/atmospherics/machinery/components/components_base.dm +++ b/code/modules/atmospherics/machinery/components/components_base.dm @@ -27,7 +27,7 @@ . = ..() if(hide) - RegisterSignal(src, COMSIG_OBJ_HIDE, .proc/hide_pipe) + RegisterSignal(src, COMSIG_OBJ_HIDE, PROC_REF(hide_pipe)) // Iconnery diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm index 3864bc2ada18..8f547335e9e0 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm @@ -166,7 +166,7 @@ occupant_overlay.pixel_y-- add_overlay(occupant_overlay) add_overlay("cover-on") - addtimer(CALLBACK(src, .proc/run_anim, anim_up, occupant_overlay), 7, TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(run_anim), anim_up, occupant_overlay), 7, TIMER_UNIQUE) /obj/machinery/atmospherics/components/unary/cryo_cell/on_set_is_operational(old_value) if(old_value) //Turned off diff --git a/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm b/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm index d70e91b29de7..d3a4b115278f 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm @@ -125,7 +125,7 @@ on = !on if("inject" in signal.data) - INVOKE_ASYNC(src, .proc/inject) + INVOKE_ASYNC(src, PROC_REF(inject)) return if("set_volume_rate" in signal.data) @@ -133,7 +133,7 @@ var/datum/gas_mixture/air_contents = airs[1] volume_rate = clamp(number, 0, air_contents.return_volume()) - addtimer(CALLBACK(src, .proc/broadcast_status), 2) + addtimer(CALLBACK(src, PROC_REF(broadcast_status)), 2) if(!("status" in signal.data)) //do not update_icon update_appearance() diff --git a/code/modules/awaymissions/away_props.dm b/code/modules/awaymissions/away_props.dm index f7eeeb9f7f96..a29d48657446 100644 --- a/code/modules/awaymissions/away_props.dm +++ b/code/modules/awaymissions/away_props.dm @@ -65,7 +65,7 @@ /obj/structure/pitgrate/Initialize() . = ..() - RegisterSignal(SSdcs,COMSIG_GLOB_BUTTON_PRESSED, .proc/OnButtonPressed) + RegisterSignal(SSdcs,COMSIG_GLOB_BUTTON_PRESSED, PROC_REF(OnButtonPressed)) if(hidden) update_openspace() @@ -91,7 +91,7 @@ obj_flags |= BLOCK_Z_OUT_DOWN | BLOCK_Z_IN_UP plane = BYOND_LIGHTING_LAYER //What matters it's one above openspace, so our animation is not dependant on what's there. Up to revision with 513 animate(src,alpha = talpha,time = 10) - addtimer(CALLBACK(src,.proc/reset_plane),10) + addtimer(CALLBACK(src, PROC_REF(reset_plane)),10) if(hidden) update_openspace() var/turf/T = get_turf(src) diff --git a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm index abf9ba4f5e16..77c655c38247 100644 --- a/code/modules/awaymissions/capture_the_flag.dm +++ b/code/modules/awaymissions/capture_the_flag.dm @@ -40,7 +40,7 @@ if(!reset) reset = new reset_path(get_turf(src)) reset.flag = src - RegisterSignal(src, COMSIG_PARENT_PREQDELETED, .proc/reset_flag) //just in case CTF has some map hazards (read: chasms). + RegisterSignal(src, COMSIG_PARENT_PREQDELETED, PROC_REF(reset_flag)) //just in case CTF has some map hazards (read: chasms). /obj/item/ctf/ComponentInitialize() . = ..() @@ -283,7 +283,7 @@ var/turf/T = get_turf(body) new /obj/effect/ctf/ammo(T) recently_dead_ckeys += body.ckey - addtimer(CALLBACK(src, .proc/clear_cooldown, body.ckey), respawn_cooldown, TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(clear_cooldown), body.ckey), respawn_cooldown, TIMER_UNIQUE) body.dust() /obj/machinery/capture_the_flag/proc/clear_cooldown(ckey) @@ -407,7 +407,7 @@ /obj/item/gun/ballistic/automatic/pistol/deagle/ctf/dropped() . = ..() - addtimer(CALLBACK(src, .proc/floor_vanish), 1) + addtimer(CALLBACK(src, PROC_REF(floor_vanish)), 1) /obj/item/gun/ballistic/automatic/pistol/deagle/ctf/proc/floor_vanish() if(isturf(loc)) @@ -435,7 +435,7 @@ /obj/item/gun/ballistic/automatic/laser/ctf/dropped() . = ..() - addtimer(CALLBACK(src, .proc/floor_vanish), 1) + addtimer(CALLBACK(src, PROC_REF(floor_vanish)), 1) /obj/item/gun/ballistic/automatic/laser/ctf/proc/floor_vanish() if(isturf(loc)) @@ -446,7 +446,7 @@ /obj/item/ammo_box/magazine/recharge/ctf/dropped() . = ..() - addtimer(CALLBACK(src, .proc/floor_vanish), 1) + addtimer(CALLBACK(src, PROC_REF(floor_vanish)), 1) /obj/item/ammo_box/magazine/recharge/ctf/proc/floor_vanish() if(isturf(loc)) @@ -637,7 +637,7 @@ /obj/effect/ctf/ammo/Initialize(mapload) . = ..() var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) QDEL_IN(src, AMMO_DROP_LIFETIME) diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index 0caf1d7c4e3d..253d4c49eb3d 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -57,7 +57,7 @@ /obj/effect/mob_spawn/Initialize(mapload) . = ..() if(instant || (roundstart && (mapload || (SSticker && SSticker.current_state > GAME_STATE_SETTING_UP)))) - INVOKE_ASYNC(src, .proc/create) + INVOKE_ASYNC(src, PROC_REF(create)) else if(ghost_usable) GLOB.poi_list |= src LAZYADD(GLOB.mob_spawners[name], src) @@ -465,8 +465,8 @@ name = "Beach Bum" glasses = /obj/item/clothing/glasses/sunglasses r_pocket = /obj/item/storage/wallet/random - l_pocket = /obj/item/reagent_containers/food/snacks/pizzaslice/dank; - uniform = /obj/item/clothing/under/pants/youngfolksjeans + l_pocket = /obj/item/reagent_containers/food/snacks/pizzaslice/dank + uniform = /obj/item/clothing/under/pants/jeans id = /obj/item/card/id /datum/outfit/beachbum/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm index 189fe1ebfd11..a643be115aab 100644 --- a/code/modules/awaymissions/gateway.dm +++ b/code/modules/awaymissions/gateway.dm @@ -89,7 +89,7 @@ GLOBAL_LIST_EMPTY(gateway_destinations) /datum/gateway_destination/gateway/post_transfer(atom/movable/AM) . = ..() - addtimer(CALLBACK(AM,/atom/movable.proc/setDir,SOUTH),0) + addtimer(CALLBACK(AM, TYPE_PROC_REF(/atom/movable, setDir),SOUTH),0) /* Special home destination, so we can check exile implants */ /datum/gateway_destination/gateway/home diff --git a/code/modules/awaymissions/mission_code/Academy.dm b/code/modules/awaymissions/mission_code/Academy.dm index 9fe39716543d..a4b9098c77a1 100644 --- a/code/modules/awaymissions/mission_code/Academy.dm +++ b/code/modules/awaymissions/mission_code/Academy.dm @@ -212,7 +212,7 @@ var/turf/T = get_turf(src) T.visible_message("[src] flares briefly.") - addtimer(CALLBACK(src, .proc/effect, user, .), 1 SECONDS) + addtimer(CALLBACK(src, PROC_REF(effect), user, .), 1 SECONDS) /obj/item/dice/d20/fate/equipped(mob/user, slot) . = ..() diff --git a/code/modules/awaymissions/mission_code/murderdome.dm b/code/modules/awaymissions/mission_code/murderdome.dm index 695692ed331f..914a1f2828c7 100644 --- a/code/modules/awaymissions/mission_code/murderdome.dm +++ b/code/modules/awaymissions/mission_code/murderdome.dm @@ -33,7 +33,7 @@ /obj/effect/murderdome/dead_barricade/Initialize() . = ..() - addtimer(CALLBACK(src, .proc/respawn), 3 MINUTES) + addtimer(CALLBACK(src, PROC_REF(respawn)), 3 MINUTES) /obj/effect/murderdome/dead_barricade/proc/respawn() if(!QDELETED(src)) diff --git a/code/modules/awaymissions/mission_code/wildwest.dm b/code/modules/awaymissions/mission_code/wildwest.dm index 35396ddded18..26c6b4823dce 100644 --- a/code/modules/awaymissions/mission_code/wildwest.dm +++ b/code/modules/awaymissions/mission_code/wildwest.dm @@ -19,7 +19,7 @@ /obj/effect/meatgrinder/Initialize() . = ..() var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) diff --git a/code/modules/awaymissions/super_secret_room.dm b/code/modules/awaymissions/super_secret_room.dm index fcefdef265fe..bef302de217c 100644 --- a/code/modules/awaymissions/super_secret_room.dm +++ b/code/modules/awaymissions/super_secret_room.dm @@ -129,7 +129,7 @@ var/newcolor = color2hex(pick(10;"green", 5;"blue", 3;"red", 1;"purple")) add_atom_colour(newcolor, FIXED_COLOUR_PRIORITY) var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) @@ -138,7 +138,7 @@ if(!ismob(AM)) return var/mob/M = AM - INVOKE_ASYNC(src, .proc/do_hand_stuff, M) + INVOKE_ASYNC(src, PROC_REF(do_hand_stuff), M) /obj/item/rupee/proc/do_hand_stuff(mob/M) if(M.put_in_hands(src)) diff --git a/code/modules/balloon_alert/balloon_alert.dm b/code/modules/balloon_alert/balloon_alert.dm index c27372260789..db4453bfa6b6 100644 --- a/code/modules/balloon_alert/balloon_alert.dm +++ b/code/modules/balloon_alert/balloon_alert.dm @@ -12,7 +12,7 @@ /atom/proc/balloon_alert(mob/viewer, text) SHOULD_NOT_SLEEP(TRUE) - INVOKE_ASYNC(src, .proc/balloon_alert_perform, viewer, text) + INVOKE_ASYNC(src, PROC_REF(balloon_alert_perform), viewer, text) /// Create balloon alerts (text that floats up) to everything within range. /// Will only display to people who can see. @@ -79,7 +79,7 @@ easing = CUBIC_EASING | EASE_IN, ) - addtimer(CALLBACK(GLOBAL_PROC, .proc/remove_image_from_client, balloon_alert, viewer_client), BALLOON_TEXT_TOTAL_LIFETIME(duration_mult)) + addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(remove_image_from_client), balloon_alert, viewer_client), BALLOON_TEXT_TOTAL_LIFETIME(duration_mult)) #undef BALLOON_TEXT_CHAR_LIFETIME_INCREASE_MIN #undef BALLOON_TEXT_CHAR_LIFETIME_INCREASE_MULT diff --git a/code/modules/buildmode/buildmode.dm b/code/modules/buildmode/buildmode.dm index 74ac431c5fe9..700485eb1d7f 100644 --- a/code/modules/buildmode/buildmode.dm +++ b/code/modules/buildmode/buildmode.dm @@ -29,7 +29,7 @@ mode = new /datum/buildmode_mode/basic(src) holder = c buttons = list() - li_cb = CALLBACK(src, .proc/post_login) + li_cb = CALLBACK(src, PROC_REF(post_login)) holder.player_details.post_login_callbacks += li_cb holder.show_popup_menus = FALSE create_buttons() diff --git a/code/modules/cargo/bounties/medical.dm b/code/modules/cargo/bounties/medical.dm index 5a3982f7df47..38f1fea99906 100644 --- a/code/modules/cargo/bounties/medical.dm +++ b/code/modules/cargo/bounties/medical.dm @@ -26,7 +26,7 @@ /datum/bounty/item/medical/liver name = "Livers" - description = "Multiple high-ranking CentCom diplomats have been hospitalized with liver failure after a recent meeting with Third Soviet Union ambassadors. Help us out, will you?" + description = "Multiple high-ranking CentCom diplomats have been hospitalized with liver failure after a recent meeting. Help us out, will you?" reward = 10000 required_count = 3 wanted_types = list(/obj/item/organ/liver) diff --git a/code/modules/cargo/gondolapod.dm b/code/modules/cargo/gondolapod.dm index 42aea5437c4b..560fc46668de 100644 --- a/code/modules/cargo/gondolapod.dm +++ b/code/modules/cargo/gondolapod.dm @@ -69,7 +69,7 @@ /mob/living/simple_animal/pet/gondola/gondolapod/setOpened() opened = TRUE update_appearance() - addtimer(CALLBACK(src, /atom/.proc/setClosed), 50) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, setClosed)), 50) /mob/living/simple_animal/pet/gondola/gondolapod/setClosed() opened = FALSE diff --git a/code/modules/cargo/packs/ammo.dm b/code/modules/cargo/packs/ammo.dm index 9bb96a14be5c..33a5ee37be02 100644 --- a/code/modules/cargo/packs/ammo.dm +++ b/code/modules/cargo/packs/ammo.dm @@ -22,6 +22,15 @@ /obj/item/ammo_box/magazine/m45) cost = 1500 +/datum/supply_pack/ammo/m45_speedloader + name = ".45 ACP Speedloader Crate" + desc = "Contains four .45 ACP speedloaders for revolvers, each containing six rounds." + contains = list(/obj/item/ammo_box/c45_speedloader, + /obj/item/ammo_box/c45_speedloader, + /obj/item/ammo_box/c45_speedloader, + /obj/item/ammo_box/c45_speedloader) + cost = 1500 + /datum/supply_pack/ammo/c38_mag name = ".38 Speedloader Crate" desc = "Contains four .38 speedloaders for revolvers, each containing six rounds." diff --git a/code/modules/cargo/packs/civilian.dm b/code/modules/cargo/packs/civilian.dm index ed723283814a..154dce436ee7 100644 --- a/code/modules/cargo/packs/civilian.dm +++ b/code/modules/cargo/packs/civilian.dm @@ -53,6 +53,20 @@ Bundles */ +/datum/supply_pack/civilian/sauna_starter + name = "DIY Sauna Crate" + desc = "A Kalixcian staple. Comes with a set of five freshly cleaned towels, and enough wood to make your very own Sauna. Water not included." + cost = 500 + contains = list(/obj/item/stack/sheet/mineral/wood/twentyfive, + /obj/item/reagent_containers/glass/bucket/wooden, + /obj/item/towel, + /obj/item/towel, + /obj/item/towel, + /obj/item/towel, + /obj/item/towel,) + crate_name = "sauna starter crate" + crate_type = /obj/structure/closet/crate/wooden + /datum/supply_pack/civilian/book_crate name = "Book Crate" desc = "Surplus from the Nanotrasen Archives, these six books are sure to be good reads." @@ -199,7 +213,7 @@ /datum/supply_pack/civilian/carpet_exotic name = "Exotic Carpet Crate" - desc = "Exotic carpets straight from Space Russia, for all your decorating needs. Contains 100 tiles each of 8 different flooring patterns." + desc = "Exotic carpets for all your decorating needs. Contains 100 tiles each of 8 different flooring patterns." cost = 3000 contains = list(/obj/item/stack/tile/carpet/blue/fifty, /obj/item/stack/tile/carpet/blue/fifty, @@ -272,7 +286,6 @@ crate_name = "masterwork fishing rod case" crate_type = /obj/structure/closet/crate/wooden - /datum/supply_pack/civilian/fishinghooks name = "Fishing Hook Variety Pack" desc = "A variety of fishing hooks to allow for more specialized fishing." diff --git a/code/modules/cargo/packs/gun.dm b/code/modules/cargo/packs/gun.dm index b91fe38e0390..6ca715889855 100644 --- a/code/modules/cargo/packs/gun.dm +++ b/code/modules/cargo/packs/gun.dm @@ -39,12 +39,18 @@ /obj/item/gun/ballistic/revolver) /datum/supply_pack/gun/detrevolver - name = "Revolver crate" + name = "Hunter's Pride Detective Revolver crate" desc = "Contains two concealable Solarian revolvers, chambered in .38." cost = 2000 contains = list(/obj/item/gun/ballistic/revolver/detective, /obj/item/gun/ballistic/revolver/detective) +/datum/supply_pack/gun/cattlemanrevolver + name = "Cattleman Revolver crate" + desc = "Contains two concealable Cattleman revolvers, chambered in .45 ACP." + cost = 2500 + contains = list(/obj/item/gun/ballistic/revolver/cattleman, + /obj/item/gun/ballistic/revolver/cattleman) /* diff --git a/code/modules/cargo/packs/tools.dm b/code/modules/cargo/packs/tools.dm index 2afbe0e85c2f..3d5389e23327 100644 --- a/code/modules/cargo/packs/tools.dm +++ b/code/modules/cargo/packs/tools.dm @@ -116,24 +116,24 @@ crate_type = /obj/structure/closet/crate/large /datum/supply_pack/tools/watertank - name = "Water Tank Crate" + name = "Fresh Water Supply Crate" desc = "Contains a tank of dihydrogen monoxide. Sounds dangerous." - cost = 600 + cost = 500 contains = list(/obj/structure/reagent_dispensers/watertank) crate_name = "water tank crate" crate_type = /obj/structure/closet/crate/large /datum/supply_pack/tools/hightank - name = "Large Water Tank Crate" + name = "Large Fresh Water Supply Crate" desc = "Contains a high-capacity water tank. Useful for botany or other service jobs." - cost = 1200 + cost = 1500 contains = list(/obj/structure/reagent_dispensers/watertank/high) crate_name = "high-capacity water tank crate" crate_type = /obj/structure/closet/crate/large /datum/supply_pack/tools/foamtank name = "Firefighting Foam Tank Crate" - desc = "Contains a tank of firefighting foam. Also known as \"plasmaman's bane\"." + desc = "Contains a tank of firefighting foam. Also known as \"Phorid's Bane\"." cost = 1500 contains = list(/obj/structure/reagent_dispensers/foamtank) crate_name = "foam tank crate" diff --git a/code/modules/cargo/supplypod.dm b/code/modules/cargo/supplypod.dm index e1568ae1adee..16b43704df58 100644 --- a/code/modules/cargo/supplypod.dm +++ b/code/modules/cargo/supplypod.dm @@ -264,11 +264,11 @@ var/mob/living/simple_animal/pet/gondola/gondolapod/benis = new(turf_underneath, src) benis.contents |= contents //Move the contents of this supplypod into the gondolapod mob. moveToNullspace() - addtimer(CALLBACK(src, .proc/open_pod, benis), delays[POD_OPENING]) //After the opening delay passes, we use the open proc from this supplyprod while referencing the contents of the "holder", in this case the gondolapod mob + addtimer(CALLBACK(src, PROC_REF(open_pod), benis), delays[POD_OPENING]) //After the opening delay passes, we use the open proc from this supplyprod while referencing the contents of the "holder", in this case the gondolapod mob else if (style == STYLE_SEETHROUGH) open_pod(src) else - addtimer(CALLBACK(src, .proc/open_pod, src), delays[POD_OPENING]) //After the opening delay passes, we use the open proc from this supplypod, while referencing this supplypod's contents + addtimer(CALLBACK(src, PROC_REF(open_pod), src), delays[POD_OPENING]) //After the opening delay passes, we use the open proc from this supplypod, while referencing this supplypod's contents /obj/structure/closet/supplypod/proc/open_pod(atom/movable/holder, broken = FALSE, forced = FALSE) //The holder var represents an atom whose contents we will be working with if (!holder) @@ -297,9 +297,9 @@ startExitSequence(src) else if (reversing) - addtimer(CALLBACK(src, .proc/SetReverseIcon), delays[POD_LEAVING]/2) //Finish up the pod's duties after a certain amount of time + addtimer(CALLBACK(src, PROC_REF(SetReverseIcon)), delays[POD_LEAVING]/2) //Finish up the pod's duties after a certain amount of time if(!stay_after_drop) // Departing should be handled manually - addtimer(CALLBACK(src, .proc/startExitSequence, holder), delays[POD_LEAVING]*(4/5)) //Finish up the pod's duties after a certain amount of time + addtimer(CALLBACK(src, PROC_REF(startExitSequence), holder), delays[POD_LEAVING]*(4/5)) //Finish up the pod's duties after a certain amount of time /obj/structure/closet/supplypod/proc/startExitSequence(atom/movable/holder) if (leavingSound) @@ -320,7 +320,7 @@ take_contents(holder) playsound(holder, close_sound, soundVolume*0.75, TRUE, -3) holder.setClosed() - addtimer(CALLBACK(src, .proc/preReturn, holder), delays[POD_LEAVING] * 0.2) //Start to leave a bit after closing for cinematic effect + addtimer(CALLBACK(src, PROC_REF(preReturn), holder), delays[POD_LEAVING] * 0.2) //Start to leave a bit after closing for cinematic effect /obj/structure/closet/supplypod/take_contents(atom/movable/holder) var/turf/turf_underneath = holder.drop_location() @@ -398,7 +398,7 @@ animate(holder, alpha = 0, time = 8, easing = QUAD_EASING|EASE_IN, flags = ANIMATION_PARALLEL) animate(holder, pixel_z = 400, time = 10, easing = QUAD_EASING|EASE_IN, flags = ANIMATION_PARALLEL) //Animate our rising pod - addtimer(CALLBACK(src, .proc/handleReturnAfterDeparting, holder), 15) //Finish up the pod's duties after a certain amount of time + addtimer(CALLBACK(src, PROC_REF(handleReturnAfterDeparting), holder), 15) //Finish up the pod's duties after a certain amount of time /obj/structure/closet/supplypod/setOpened() //Proc exists here, as well as in any atom that can assume the role of a "holder" of a supplypod. Check the open_pod() proc for more details opened = TRUE @@ -578,8 +578,8 @@ if (soundStartTime < 0) soundStartTime = 1 if (!pod.effectQuiet && !(pod.pod_flags & FIRST_SOUNDS)) - addtimer(CALLBACK(src, .proc/playFallingSound), soundStartTime) - addtimer(CALLBACK(src, .proc/beginLaunch, pod.effectCircle), pod.delays[POD_TRANSIT]) + addtimer(CALLBACK(src, PROC_REF(playFallingSound)), soundStartTime) + addtimer(CALLBACK(src, PROC_REF(beginLaunch), pod.effectCircle), pod.delays[POD_TRANSIT]) /obj/effect/pod_landingzone/proc/playFallingSound() playsound(src, pod.fallingSound, pod.soundVolume, 1, 6) @@ -602,7 +602,7 @@ if (pod.style != STYLE_INVISIBLE) animate(pod.get_filter("motionblur"), y = 0, time = pod.delays[POD_FALLING], flags = ANIMATION_PARALLEL) animate(pod, pixel_z = -1 * abs(sin(rotation))*4, pixel_x = SUPPLYPOD_X_OFFSET + (sin(rotation) * 20), time = pod.delays[POD_FALLING], easing = LINEAR_EASING, flags = ANIMATION_PARALLEL) //Make the pod fall! At an angle! - addtimer(CALLBACK(src, .proc/endLaunch), pod.delays[POD_FALLING], TIMER_CLIENT_TIME) //Go onto the last step after a very short falling animation + addtimer(CALLBACK(src, PROC_REF(endLaunch)), pod.delays[POD_FALLING], TIMER_CLIENT_TIME) //Go onto the last step after a very short falling animation /obj/effect/pod_landingzone/proc/setupSmoke(rotation) if (pod.style == STYLE_INVISIBLE || pod.style == STYLE_SEETHROUGH) @@ -618,7 +618,7 @@ smoke_part.pixel_y = abs(cos(rotation))*32 * i smoke_part.filters += filter(type = "blur", size = 4) var/time = (pod.delays[POD_FALLING] / length(smoke_effects))*(length(smoke_effects)-i) - addtimer(CALLBACK(smoke_part, /obj/effect/supplypod_smoke/.proc/drawSelf, i), time, TIMER_CLIENT_TIME) //Go onto the last step after a very short falling animation + addtimer(CALLBACK(smoke_part, TYPE_PROC_REF(/obj/effect/supplypod_smoke, drawSelf), i), time, TIMER_CLIENT_TIME) //Go onto the last step after a very short falling animation QDEL_IN(smoke_part, pod.delays[POD_FALLING] + 35) /obj/effect/pod_landingzone/proc/drawSmoke() diff --git a/code/modules/cargo/supplypod_beacon.dm b/code/modules/cargo/supplypod_beacon.dm index b5ae8023bb4d..11fd10229e5e 100644 --- a/code/modules/cargo/supplypod_beacon.dm +++ b/code/modules/cargo/supplypod_beacon.dm @@ -23,7 +23,7 @@ launched = TRUE playsound(src,'sound/machines/triple_beep.ogg',50,FALSE) playsound(src,'sound/machines/warning-buzzer.ogg',50,FALSE) - addtimer(CALLBACK(src, .proc/endLaunch), 33)//wait 3.3 seconds (time it takes for supplypod to land), then update icon + addtimer(CALLBACK(src, PROC_REF(endLaunch)), 33)//wait 3.3 seconds (time it takes for supplypod to land), then update icon if (SP_UNLINK) linked = FALSE playsound(src,'sound/machines/synth_no.ogg',50,FALSE) diff --git a/code/modules/client/client_colour.dm b/code/modules/client/client_colour.dm index 6357229e02db..b569faf75b10 100644 --- a/code/modules/client/client_colour.dm +++ b/code/modules/client/client_colour.dm @@ -204,7 +204,7 @@ /datum/client_colour/bloodlust/New(mob/_owner) ..() - addtimer(CALLBACK(src, .proc/update_colour, list(1,0,0,0.8,0.2,0, 0.8,0,0.2,0.1,0,0), 10, SINE_EASING|EASE_OUT), 1) + addtimer(CALLBACK(src, PROC_REF(update_colour), list(1,0,0,0.8,0.2,0, 0.8,0,0.2,0.1,0,0), 10, SINE_EASING|EASE_OUT), 1) /datum/client_colour/thirdeye colour = list( diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 44710b0fd6fc..334818c0e1f9 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -137,8 +137,17 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( if(QDELETED(real_src)) return + //fun fact: Topic() acts like a verb and is executed at the end of the tick like other verbs. So we have to queue it if the server is + //overloaded + if(hsrc && hsrc != holder && DEFAULT_TRY_QUEUE_VERB(VERB_CALLBACK(src, PROC_REF(_Topic), hsrc, href, href_list))) + return ..() //redirect to hsrc.Topic() +///dumb workaround because byond doesnt seem to recognize the .proc/Topic() typepath for /datum/proc/Topic() from the client Topic, +///so we cant queue it without this +/client/proc/_Topic(datum/hsrc, href, list/href_list) + return hsrc.Topic(href, href_list) + /client/proc/is_content_unlocked() if(!prefs.unlock_content) to_chat(src, "Become a BYOND member to access member-perks and features, as well as support the engine that makes this game possible. Only 10 bucks for 3 months! Click Here to find out more.") @@ -338,7 +347,7 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( // Initialize tgui panel src << browse(file('html/statbrowser.html'), "window=statbrowser") - addtimer(CALLBACK(src, .proc/check_panel_loaded), 30 SECONDS) + addtimer(CALLBACK(src, PROC_REF(check_panel_loaded)), 30 SECONDS) tgui_panel.initialize() if(alert_mob_dupe_login) @@ -843,6 +852,7 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( click_intercept_time = 0 //Reset and return. Next click should work, but not this one. return click_intercept_time = 0 //Just reset. Let's not keep re-checking forever. + var/ab = FALSE var/list/modifiers = params2list(params) @@ -856,12 +866,16 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( var/mcl = CONFIG_GET(number/minute_click_limit) if (!holder && mcl) var/minute = round(world.time, 600) + if (!clicklimiter) clicklimiter = new(LIMITER_SIZE) + if (minute != clicklimiter[CURRENT_MINUTE]) clicklimiter[CURRENT_MINUTE] = minute clicklimiter[MINUTE_COUNT] = 0 - clicklimiter[MINUTE_COUNT] += 1+(ab) + + clicklimiter[MINUTE_COUNT] += 1 + (ab) + if (clicklimiter[MINUTE_COUNT] > mcl) var/msg = "Your previous click was ignored because you've done too many in a minute." if (minute != clicklimiter[ADMINSWARNED_AT]) //only one admin message per-minute. (if they spam the admins can just boot/ban them) @@ -882,14 +896,22 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( var/second = round(world.time, 10) if (!clicklimiter) clicklimiter = new(LIMITER_SIZE) + if (second != clicklimiter[CURRENT_SECOND]) clicklimiter[CURRENT_SECOND] = second clicklimiter[SECOND_COUNT] = 0 - clicklimiter[SECOND_COUNT] += 1+(!!ab) + + clicklimiter[SECOND_COUNT] += 1 + (!!ab) + if (clicklimiter[SECOND_COUNT] > scl) - to_chat(src, "Your previous click was ignored because you've done too many in a second") + to_chat(src, span_danger("Your previous click was ignored because you've done too many in a second")) return + //check if the server is overloaded and if it is then queue up the click for next tick + //yes having it call a wrapping proc on the subsystem is fucking stupid glad we agree unfortunately byond insists its reasonable + if(!QDELETED(object) && TRY_QUEUE_VERB(VERB_CALLBACK(object, /atom/proc/_Click, location, control, params), VERB_OVERTIME_QUEUE_THRESHOLD, SSinput, control)) + return + if (prefs.hotkeys) winset(src, null, "input.focus=false") else @@ -932,7 +954,7 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( //Precache the client with all other assets slowly, so as to not block other browse() calls if (CONFIG_GET(flag/asset_simple_preload)) - addtimer(CALLBACK(SSassets.transport, /datum/asset_transport.proc/send_assets_slow, src, SSassets.transport.preload), 5 SECONDS) + addtimer(CALLBACK(SSassets.transport, TYPE_PROC_REF(/datum/asset_transport, send_assets_slow), src, SSassets.transport.preload), 5 SECONDS) #if (PRELOAD_RSC == 0) for (var/name in GLOB.vox_sounds) diff --git a/code/modules/client/loadout/loadout_uniform.dm b/code/modules/client/loadout/loadout_uniform.dm index 4f88e6d1a905..4edb59b74076 100644 --- a/code/modules/client/loadout/loadout_uniform.dm +++ b/code/modules/client/loadout/loadout_uniform.dm @@ -91,10 +91,6 @@ display_name = "jeans" path = /obj/item/clothing/under/pants/jeans -/datum/gear/uniform/pants/classicjeans - display_name = "classic jeans" - path = /obj/item/clothing/under/pants/classicjeans - /datum/gear/uniform/pants/khaki display_name = "khaki pants" path = /obj/item/clothing/under/pants/khaki @@ -119,10 +115,6 @@ display_name = "black jeans" path = /obj/item/clothing/under/pants/blackjeans -/datum/gear/uniform/pants/mustangjeans - display_name = "Must Hang jeans" - path = /obj/item/clothing/under/pants/mustangjeans - /datum/gear/uniform/pants/black display_name = "black pants" path = /obj/item/clothing/under/pants/black diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index f1fe218b175b..69ea5e634cda 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -609,7 +609,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) if("spider_legs" in pref_species.default_features) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN - dat += "

Spider Extra Legs Variant

" + dat += "

Extra Legs

" dat += "[features["spider_legs"]]
" @@ -621,7 +621,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) if("spider_spinneret" in pref_species.default_features) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN - dat += "

Spider Spinneret Markings

" + dat += "

Spinneret

" dat += "[features["spider_spinneret"]]
" @@ -630,18 +630,6 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "" mutant_category = 0 - if("spider_mandibles" in pref_species.default_features) - if(!mutant_category) - dat += APPEARANCE_CATEGORY_COLUMN - dat += "

Spider Mandible Variant

" - - dat += "[features["spider_mandibles"]]
" - - mutant_category++ - if(mutant_category >= MAX_MUTANT_ROWS) - dat += "" - mutant_category = 0 - if("squid_face" in pref_species.default_features) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -1906,18 +1894,6 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(new_spider_spinneret) features["spider_spinneret"] = new_spider_spinneret - if("spider_mandibles") - var/new_spider_mandibles - new_spider_mandibles = input(user, "Choose your character's variant of mandibles:", "Character Preference") as null|anything in GLOB.spider_mandibles_list - if (new_spider_mandibles) - features["spider_mandibles"] = new_spider_mandibles - - if("squid_face") - var/new_squid_face - new_squid_face = input(user, "Choose your character's face type:", "Character Preference") as null|anything in GLOB.squid_face_list - if (new_squid_face) - features["squid_face"] = new_squid_face - if("ipc_screen") var/new_ipc_screen diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 26cea413adb3..e8015ce2fbb7 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -122,7 +122,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car if(!addedbind) notadded += kb if(length(notadded)) - addtimer(CALLBACK(src, .proc/announce_conflict, notadded), 5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(announce_conflict), notadded), 5 SECONDS) /datum/preferences/proc/announce_conflict(list/notadded) to_chat(parent, "KEYBINDING CONFLICT!!!\n\ @@ -503,52 +503,51 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car underwear = sanitize_inlist(underwear, GLOB.underwear_list) undershirt = sanitize_inlist(undershirt, GLOB.undershirt_list) - socks = sanitize_inlist(socks, GLOB.socks_list) - age = sanitize_integer(age, pref_species.species_age_min, pref_species.species_age_max, initial(age)) + socks = sanitize_inlist(socks, GLOB.socks_list) + age = sanitize_integer(age, pref_species.species_age_min, pref_species.species_age_max, initial(age)) hair_color = sanitize_hexcolor(hair_color) - facial_hair_color = sanitize_hexcolor(facial_hair_color) - underwear_color = sanitize_hexcolor(underwear_color) - eye_color = sanitize_hexcolor(eye_color) - skin_tone = sanitize_inlist(skin_tone, GLOB.skin_tones) + facial_hair_color = sanitize_hexcolor(facial_hair_color) + underwear_color = sanitize_hexcolor(underwear_color) + eye_color = sanitize_hexcolor(eye_color) + skin_tone = sanitize_inlist(skin_tone, GLOB.skin_tones) backpack = sanitize_inlist(backpack, GLOB.backpacklist, initial(backpack)) - jumpsuit_style = sanitize_inlist(jumpsuit_style, GLOB.jumpsuitlist, initial(jumpsuit_style)) - exowear = sanitize_inlist(exowear, GLOB.exowearlist, initial(exowear)) - uplink_spawn_loc = sanitize_inlist(uplink_spawn_loc, GLOB.uplink_spawn_loc_list, initial(uplink_spawn_loc)) - fbp = sanitize_integer(fbp, FALSE, TRUE, FALSE) - features["grad_style"] = sanitize_inlist(features["grad_style"], GLOB.hair_gradients_list) - features["grad_color"] = sanitize_hexcolor(features["grad_color"]) - features["body_size"] = sanitize_inlist(features["body_size"], GLOB.body_sizes, "Normal") - features["mcolor"] = sanitize_hexcolor(features["mcolor"]) - features["mcolor2"] = sanitize_hexcolor(features["mcolor2"]) - features["ethcolor"] = copytext_char(features["ethcolor"], 1, 7) - features["tail_lizard"] = sanitize_inlist(features["tail_lizard"], GLOB.tails_list_lizard) - features["tail_human"] = sanitize_inlist(features["tail_human"], GLOB.tails_list_human, "None") - features["face_markings"] = sanitize_inlist(features["face_markings"], GLOB.face_markings_list) - features["horns"] = sanitize_inlist(features["horns"], GLOB.horns_list) - features["ears"] = sanitize_inlist(features["ears"], GLOB.ears_list, "None") - features["frills"] = sanitize_inlist(features["frills"], GLOB.frills_list) - features["spines"] = sanitize_inlist(features["spines"], GLOB.spines_list) - features["body_markings"] = sanitize_inlist(features["body_markings"], GLOB.body_markings_list) - features["feature_lizard_legs"] = sanitize_inlist(features["legs"], GLOB.legs_list, "Normal Legs") - features["moth_wings"] = sanitize_inlist(features["moth_wings"], GLOB.moth_wings_list, "Plain") - features["moth_fluff"] = sanitize_inlist(features["moth_fluff"], GLOB.moth_fluff_list, "Plain") - features["spider_legs"] = sanitize_inlist(features["spider_legs"], GLOB.spider_legs_list, "Plain") - features["spider_spinneret"] = sanitize_inlist(features["spider_spinneret"], GLOB.spider_spinneret_list, "Plain") - features["spider_mandibles"] = sanitize_inlist(features["spider_mandibles"], GLOB.spider_mandibles_list, "Plain") - features["moth_markings"] = sanitize_inlist(features["moth_markings"], GLOB.moth_markings_list, "None") - features["squid_face"] = sanitize_inlist(features["squid_face"], GLOB.squid_face_list, "Squidward") - features["ipc_screen"] = sanitize_inlist(features["ipc_screen"], GLOB.ipc_screens_list) - features["ipc_antenna"] = sanitize_inlist(features["ipc_antenna"], GLOB.ipc_antennas_list) - features["ipc_chassis"] = sanitize_inlist(features["ipc_chassis"], GLOB.ipc_chassis_list) - features["ipc_brain"] = sanitize_inlist(features["ipc_brain"], GLOB.ipc_brain_list) - features["kepori_feathers"] = sanitize_inlist(features["kepori_feathers"], GLOB.kepori_feathers_list, "Plain") - features["kepori_body_feathers"] = sanitize_inlist(features["kepori_body_feathers"], GLOB.kepori_body_feathers_list, "Plain") - features["kepori_tail_feathers"] = sanitize_inlist(features["kepori_tail_feathers"], GLOB.kepori_tail_feathers_list, "Fan") - features["vox_head_quills"] = sanitize_inlist(features["vox_head_quills"], GLOB.vox_head_quills_list, "None") - features["vox_neck_quills"] = sanitize_inlist(features["vox_neck_quills"], GLOB.vox_neck_quills_list, "None") - features["elzu_horns"] = sanitize_inlist(features["elzu_horns"], GLOB.elzu_horns_list) - features["tail_elzu"] = sanitize_inlist(features["tail_elzu"], GLOB.tails_list_elzu) - features["flavor_text"] = sanitize_text(features["flavor_text"], initial(features["flavor_text"])) + jumpsuit_style = sanitize_inlist(jumpsuit_style, GLOB.jumpsuitlist, initial(jumpsuit_style)) + exowear = sanitize_inlist(exowear, GLOB.exowearlist, initial(exowear)) + uplink_spawn_loc = sanitize_inlist(uplink_spawn_loc, GLOB.uplink_spawn_loc_list, initial(uplink_spawn_loc)) + fbp = sanitize_integer(fbp, FALSE, TRUE, FALSE) + features["grad_style"] = sanitize_inlist(features["grad_style"], GLOB.hair_gradients_list) + features["grad_color"] = sanitize_hexcolor(features["grad_color"]) + features["body_size"] = sanitize_inlist(features["body_size"], GLOB.body_sizes, "Normal") + features["mcolor"] = sanitize_hexcolor(features["mcolor"]) + features["mcolor2"] = sanitize_hexcolor(features["mcolor2"]) + features["ethcolor"] = copytext_char(features["ethcolor"], 1, 7) + features["tail_lizard"] = sanitize_inlist(features["tail_lizard"], GLOB.tails_list_lizard) + features["tail_human"] = sanitize_inlist(features["tail_human"], GLOB.tails_list_human, "None") + features["face_markings"] = sanitize_inlist(features["face_markings"], GLOB.face_markings_list) + features["horns"] = sanitize_inlist(features["horns"], GLOB.horns_list) + features["ears"] = sanitize_inlist(features["ears"], GLOB.ears_list, "None") + features["frills"] = sanitize_inlist(features["frills"], GLOB.frills_list) + features["spines"] = sanitize_inlist(features["spines"], GLOB.spines_list) + features["body_markings"] = sanitize_inlist(features["body_markings"], GLOB.body_markings_list) + features["feature_lizard_legs"] = sanitize_inlist(features["legs"], GLOB.legs_list, "Normal Legs") + features["moth_wings"] = sanitize_inlist(features["moth_wings"], GLOB.moth_wings_list, "Plain") + features["moth_fluff"] = sanitize_inlist(features["moth_fluff"], GLOB.moth_fluff_list, "Plain") + features["spider_legs"] = sanitize_inlist(features["spider_legs"], GLOB.spider_legs_list, "Plain") + features["spider_spinneret"] = sanitize_inlist(features["spider_spinneret"], GLOB.spider_spinneret_list, "Plain") + features["moth_markings"] = sanitize_inlist(features["moth_markings"], GLOB.moth_markings_list, "None") + features["squid_face"] = sanitize_inlist(features["squid_face"], GLOB.squid_face_list, "Squidward") + features["ipc_screen"] = sanitize_inlist(features["ipc_screen"], GLOB.ipc_screens_list) + features["ipc_antenna"] = sanitize_inlist(features["ipc_antenna"], GLOB.ipc_antennas_list) + features["ipc_chassis"] = sanitize_inlist(features["ipc_chassis"], GLOB.ipc_chassis_list) + features["ipc_brain"] = sanitize_inlist(features["ipc_brain"], GLOB.ipc_brain_list) + features["kepori_feathers"] = sanitize_inlist(features["kepori_feathers"], GLOB.kepori_feathers_list, "Plain") + features["kepori_body_feathers"] = sanitize_inlist(features["kepori_body_feathers"], GLOB.kepori_body_feathers_list, "Plain") + features["kepori_tail_feathers"] = sanitize_inlist(features["kepori_tail_feathers"], GLOB.kepori_tail_feathers_list, "Fan") + features["vox_head_quills"] = sanitize_inlist(features["vox_head_quills"], GLOB.vox_head_quills_list, "None") + features["vox_neck_quills"] = sanitize_inlist(features["vox_neck_quills"], GLOB.vox_neck_quills_list, "None") + features["elzu_horns"] = sanitize_inlist(features["elzu_horns"], GLOB.elzu_horns_list) + features["tail_elzu"] = sanitize_inlist(features["tail_elzu"], GLOB.tails_list_elzu) + features["flavor_text"] = sanitize_text(features["flavor_text"], initial(features["flavor_text"])) all_quirks = SANITIZE_LIST(all_quirks) diff --git a/code/modules/clothing/factions/gezena.dm b/code/modules/clothing/factions/gezena.dm new file mode 100644 index 000000000000..6d2e11ea0010 --- /dev/null +++ b/code/modules/clothing/factions/gezena.dm @@ -0,0 +1,276 @@ +//Jumpsuits +//thgvr TODO: Make more stuff (backpacks, headsets, doodads, part 2?) +/obj/item/clothing/under/gezena + name = "gezenan navywear" + desc = "Made of a slick synthetic material that is both breathable, and resistant to scale and thorn alike." + icon = 'icons/obj/clothing/faction/gezena/uniforms.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/gezena/uniforms.dmi' + lefthand_file = 'icons/mob/inhands/faction/gezena/gezena_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/gezena/gezena_righthand.dmi' + icon_state = "naval" + item_state = "bluejump" + supports_variations = DIGITIGRADE_VARIATION + armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) + +/obj/item/clothing/under/gezena/captain + name = "gezenan captain's navywear" + desc = "A refined variation of the basic navywear, sporting sleek silver trim." + icon_state = "captain" + item_state = "bluejump" + +/obj/item/clothing/under/gezena/marine + name = "gezenan marine fatigue" + desc = "Rough inside and out, these fatigues have seen their fair share." + icon_state = "marine" + item_state = "marinejump" + +//Unarmored suit + +/obj/item/clothing/suit/toggle/gezena + name = "silkenweave jacket" + desc = "Refined and sturdy, emblazoned below the neck with the Federation's symbol." + icon = 'icons/obj/clothing/faction/gezena/suits.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/gezena/suits.dmi' + lefthand_file = 'icons/mob/inhands/faction/gezena/gezena_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/gezena/gezena_righthand.dmi' + icon_state = "lightcoat" + item_state = "bluecloth" + blood_overlay_type = "coat" + togglename = "zipper" + body_parts_covered = CHEST|ARMS + pocket_storage_component_path = /datum/component/storage/concrete/pockets/exo + supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON + armor = list("melee" = 20, "bullet" = 20, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 0) + +//Armored suit + +/obj/item/clothing/suit/armor/gezena + name = "navywear coat" + desc = "Formal navywear, emblazoned across the back with the Gezenan sigil." + icon = 'icons/obj/clothing/faction/gezena/suits.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/gezena/suits.dmi' + lefthand_file = 'icons/mob/inhands/faction/gezena/gezena_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/gezena/gezena_righthand.dmi' + icon_state = "coat" + item_state = "bluecloth" + blood_overlay_type = "coat" + body_parts_covered = CHEST|ARMS|GROIN|LEGS + pocket_storage_component_path = /datum/component/storage/concrete/pockets/exo + supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON + armor = list("melee" = 35, "bullet" = 35, "laser" = 20, "energy" = 40, "bomb" = 20, "bio" = 20, "rad" = 0, "fire" = 50, "acid" = 50) + allowed = list( + /obj/item/flashlight, + /obj/item/tank/internals/emergency_oxygen, + /obj/item/tank/internals/plasmaman, + /obj/item/toy, + /obj/item/storage/fancy/cigarettes, + /obj/item/lighter, + /obj/item/radio, + /obj/item/gun/energy/kalix, + ) + +/obj/item/clothing/suit/armor/gezena/engi + name = "engineer navywear coat" + desc = "Oil and stain resistant, with orange trim signifiying the wearer doesn't mind getting their hands dirty." + icon_state = "engicoat" + item_state = "bluecloth" + +/obj/item/clothing/suit/armor/gezena/captain + name = "captain's navywear coat" + desc = "Blood resistant, with silver trim to denote status. Lined with softer material." + icon_state = "captaincoat" + item_state = "captaincoat" + +/obj/item/clothing/suit/armor/gezena/marine + name = "\improper Raksha-plating vest" + desc = "Raksha - a Kalixcian word for 'protection of the heart'. Sturdy and reliable." + icon_state = "marinevest" + item_state = "marinevest" + +/obj/item/clothing/suit/armor/gezena/marinecoat + name = "coated Raksha-plating" + desc = "Less practical with the coat than without." + icon_state = "marinecoat" + item_state = "bluecloth" + +//Spacesuits + +/obj/item/clothing/suit/space/gezena + name = "\improper Rakalla-suit" + desc = "Rakalla - a Kalixcian word for 'protection among the stars'. Sturdy, flexible, and reliable." + icon = 'icons/obj/clothing/faction/gezena/suits.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/gezena/suits.dmi' + lefthand_file = 'icons/mob/inhands/faction/gezena/gezena_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/gezena/gezena_righthand.dmi' + icon_state = "spacesuit" + item_state = "spacesuit" + armor = list("melee" = 15, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 15, "bio" = 100, "rad" = 50, "fire" = 75, "acid" = 75) + w_class = WEIGHT_CLASS_NORMAL + supports_variations = DIGITIGRADE_VARIATION + +/obj/item/clothing/head/helmet/space/gezena + name = "\improper Rakalla-helm" + desc = "Featuring rubberized grommets fitting for any length of horn, and an internal monitor for life support." + icon = 'icons/obj/clothing/faction/gezena/head.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/gezena/head.dmi' + lefthand_file = 'icons/mob/inhands/faction/gezena/gezena_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/gezena/gezena_righthand.dmi' + icon_state = "spacehelmet" + item_state = "spacehelm" + armor = list("melee" = 15, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 15, "bio" = 100, "rad" = 50, "fire" = 75, "acid" = 75) + w_class = WEIGHT_CLASS_NORMAL + +//Hats + +/obj/item/clothing/head/gezena + name = "\improper PGFN Cap" + desc = "The standard cap of the PGF military, in Navy colors." + icon = 'icons/obj/clothing/faction/gezena/head.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/gezena/head.dmi' + lefthand_file = 'icons/mob/inhands/faction/gezena/gezena_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/gezena/gezena_righthand.dmi' + icon_state = "navalhat" + item_state = "bluecloth" + armor = list("melee" = 10, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) + +/obj/item/clothing/head/gezena/flap + name = "\improper PGFN Betzu-il cap" + desc = "The standard cap of the PGF military, in Navy colors. “betzu-il”, translating to “sun-blocker”, refers to the flap at the back for protection against natural hazards such as sunburns, sandstorms, and biting insects." + icon_state = "navalflap" + item_state = "bluecloth" + +/obj/item/clothing/head/gezena/marine + name = "\improper PGFMC Cap" + desc = "The standard cap of the PGF military, in Marine Corps colors." + icon_state = "marinehat" + item_state = "marinecloth" + +/obj/item/clothing/head/gezena/marine/flap + name = "\improper PGFMC Betzu-il cap" + desc = "The standard cap of the PGF military, in Marine Corps colors. “betzu-il”, translating to “sun-blocker”, refers to the flap at the back for protection against natural hazards such as sunburns, sandstorms, and biting insects." + icon_state = "marineflap" + item_state = "marinecloth" + +/obj/item/clothing/head/gezena/medic + name = "\improper PGF medic cap" + desc = "The standard cap of the PGF military. The coloring indicates the wearer as a medical officer." + icon_state = "medichat" + item_state = "whitecloth" + +/obj/item/clothing/head/gezena/medic/flap + name = "\improper PGF medic Betzu-il cap" + desc = "The standard cap of the PGF military. “betzu-il”, translating to “sun-blocker”, refers to the flap at the back for protection against natural hazards such as sunburns, sandstorms, and biting insects. The coloring indicates the wearer as a medical officer." + icon_state = "medicflap" + item_state = "whitecloth" + +/obj/item/clothing/head/gezena/captain // no captain flap yet(?) + name = "\improper PGFN captain's cap" + desc = "The standard cap of the PGF military, in Navy colors. The decoration indicates the wearer as a ship's Captain." + icon_state = "captainhat" + item_state = "bluecloth" + +/obj/item/clothing/head/helmet/gezena + name = "\improper Raksha-helm" + desc = "Far more practical for combat than either type of cap, but not nearly as traditional or comfortable. Features small sections of removable plating to make space for the horns of horned races." + icon = 'icons/obj/clothing/faction/gezena/head.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/gezena/head.dmi' + lefthand_file = 'icons/mob/inhands/faction/gezena/gezena_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/gezena/gezena_righthand.dmi' + icon_state = "marinehelmet" + item_state = "marinehelm" + +//Gloves + +/obj/item/clothing/gloves/gezena + name = "\improper PGFN Ihuz-irra Gloves" + desc = "As the name, “ihuz-irra”, or “sure-grip”, suggests, the gloves employed by the PGF military are designed to ensure the highest possible grip is maintained while also providing protection from blisters in work environments." + icon = 'icons/obj/clothing/faction/gezena/hands.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/gezena/hands.dmi' + icon_state = "navalgloves" + item_state = "navalgloves" + cold_protection = HANDS + min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + armor = list("melee" = 5, "bullet" = 5, "laser" = 5, "energy" = 5, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) + +/obj/item/clothing/gloves/gezena/marine + name = "\improper PGFMC Ihuz-irra Gloves" + desc = "As the name, “ihuz-irra”, or “sure-grip”, suggests, the gloves employed by the PGF military are designed to ensure the highest possible grip is maintained while also providing protection from blisters in work environments. Carries extra tactile grip on the fingertips for easy use of firearms." + icon_state = "marinegloves" + item_state = "marinegloves" + armor = list("melee" = 10, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 75, "acid" = 50) + +/obj/item/clothing/gloves/gezena/engi + name = "\improper PGFN Engineering Ihuz-irra Gloves" + desc = "As the name, “ihuz-irra”, or “sure-grip”, suggests, the gloves employed by the PGF military are designed to ensure the highest possible grip is maintained while also providing protection from blisters in work environments. Comes with anti-conductive microfibers interwoven to supply the useer with electrical insulation." + icon_state = "engigloves" + item_state = "engigloves" + siemens_coefficient = 0 + +/obj/item/clothing/gloves/gezena/captain + name = "\improper PGFN Captain's Ihuz-irra Gloves" + desc = "As the name, “ihuz-irra”, or “sure-grip”, suggests, the gloves employed by the PGF military are designed to ensure the highest possible grip is maintained while also providing protection from blisters in work environments. Bears the silver standard of a Gezenan captain." + icon_state = "captaingloves" + item_state = "captaingloves" + siemens_coefficient = 0 + +//Boots + +/obj/item/clothing/shoes/combat/gezena + name = "\improper PGF Uhro-sez Boots" + desc = "The word “uhro-sez” translates to “steel-foot”, in reference to the steel toe protection provided by these boots. Standard issue to all members of all branches of the PGF military." + icon = 'icons/obj/clothing/faction/gezena/feet.dmi' + //mob_overlay_icon = 'icons/mob/clothing/faction/gezena/feet.dmi' todo: find out why digi breaks here + icon_state = "pgfboots" + item_state = "pgfboots" + +//Belt + +/obj/item/storage/belt/military/gezena + name = "\improper PGF Iho-Usks" + desc = "The “iho-usks”, translating to “gear-holder”, is a lightweight harness covered in pouches, supplied to the ground troops of the PGF. This variant is designed for carrying ammunition." + icon = 'icons/obj/clothing/faction/gezena/belt.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/gezena/belt.dmi' + lefthand_file = 'icons/mob/inhands/faction/gezena/gezena_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/gezena/gezena_righthand.dmi' + icon_state = "pouches" + item_state = "bluecloth" + +/obj/item/storage/belt/medical/gezena + name = "\improper PGF Medical Iho-Usks" + desc = "The “iho-usks”, translating to “gear-holder”, is a lightweight harness covered in pouches, supplied to the ground troops of the PGF. This variant is designed for carrying medical supplies." + icon = 'icons/obj/clothing/faction/gezena/belt.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/gezena/belt.dmi' + lefthand_file = 'icons/mob/inhands/faction/gezena/gezena_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/gezena/gezena_righthand.dmi' + icon_state = "medpouches" + item_state = "whitecloth" + +//Capes + +/obj/item/clothing/neck/cloak/gezena + name = "\improper Aziulhauz" + desc = "The “Aziulhauz”, or “rank-cape”, is the method with which PGF military members display their rank to others. Wearing one while on duty is required by uniform code. This variant displays the wearer's rank as a standard non-officer soldier or crewperson." + icon = 'icons/obj/clothing/faction/gezena/neck.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/gezena/neck.dmi' + lefthand_file = 'icons/mob/inhands/faction/gezena/gezena_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/gezena/gezena_righthand.dmi' + icon_state = "cape" + item_state = "blackcloth" + +/obj/item/clothing/neck/cloak/gezena/engi + name = "engineering Aziulhauz" + desc = "The “Aziulhauz”, or “rank-cape”, is the method with which PGF military members display their rank to others. Wearing one while on duty is required by uniform code. This variant displays the wearer's rank as an officer with an engineering specialization." + icon_state = "engicape" + item_state = "blackcloth" + +/obj/item/clothing/neck/cloak/gezena/med + name = "medical Aziulhauz" + desc = "The “Aziulhauz”, or “rank-cape”, is the method with which PGF military members display their rank to others. Wearing one while on duty is required by uniform code. This variant displays the wearer's rank as an officer with a medical specialization." + icon_state = "medcape" + item_state = "blackcloth" + +/obj/item/clothing/neck/cloak/gezena/captain + name = "captain's Azuilhauz" + desc = "The “Aziulhauz”, or “rank-cape”, is the method with which PGF military members display their rank to others. Wearing one while on duty is required by uniform code. This variant displays the wearer's rank as a high ranking officer." + icon_state = "captaincape" + item_state = "blackcloth" diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm index 119312c6902f..291b1c1b25b6 100644 --- a/code/modules/clothing/gloves/color.dm +++ b/code/modules/clothing/gloves/color.dm @@ -49,7 +49,7 @@ /obj/item/clothing/gloves/color/yellow/sprayon/equipped(mob/user, slot) . = ..() - RegisterSignal(user, COMSIG_LIVING_SHOCK_PREVENTED, .proc/Shocked) + RegisterSignal(user, COMSIG_LIVING_SHOCK_PREVENTED, PROC_REF(Shocked)) /obj/item/clothing/gloves/color/yellow/sprayon/proc/Shocked() shocks_remaining-- @@ -73,7 +73,7 @@ /obj/item/clothing/gloves/color/yellow/sprayon/tape/equipped(mob/user, slot) . = ..() - RegisterSignal(user, COMSIG_LIVING_SHOCK_PREVENTED, .proc/Shocked) + RegisterSignal(user, COMSIG_LIVING_SHOCK_PREVENTED, PROC_REF(Shocked)) /obj/item/clothing/gloves/color/yellow/sprayon/tape/Shocked(mob/user) if(prob(50)) //Fear the unpredictable @@ -202,6 +202,12 @@ strip_delay = 60 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 50) +/obj/item/clothing/gloves/color/captain/nt + desc = "Regal blue gloves, with a nice gold trim, a diamond anti-shock coating, and an integrated thermal barrier, and armoured bracers. Swanky." + name = "captain's gloves" + icon_state = "captainnt" + item_state = "egloves" + /obj/item/clothing/gloves/color/latex name = "latex gloves" desc = "Cheap sterile gloves made from latex. Transfers minor paramedic knowledge to the user via budget nanochips." diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 35960c36bbab..e6400198864e 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -145,7 +145,7 @@ attached_light.update_brightness() to_chat(user, "You toggle the helmet light [attached_light.on ? "on":"off"].") - playsound(user, 'sound/weapons/empty.ogg', 100, TRUE) + playsound(user, attached_light.on ? attached_light.toggle_on_sound : attached_light.toggle_off_sound, 100, TRUE) update_helmlight() /obj/item/clothing/head/helmet/proc/update_helmlight() @@ -475,17 +475,9 @@ armor = list("melee" = 20, "bullet" = 10, "laser" = 30, "energy" = 40, "bomb" = 15, "bio" = 0, "rad" = 0, "fire" = 40, "acid" = 50) strip_delay = 60 -/obj/item/clothing/head/helmet/rus_helmet - name = "russian helmet" - desc = "It can hold a bottle of vodka." - icon_state = "rus_helmet" - item_state = "rus_helmet" - armor = list("melee" = 25, "bullet" = 30, "laser" = 0, "energy" = 10, "bomb" = 10, "bio" = 0, "rad" = 20, "fire" = 20, "acid" = 50) - pocket_storage_component_path = /datum/component/storage/concrete/pockets/helmet - /obj/item/clothing/head/helmet/r_trapper name = "reinforced trapper hat" - desc = "An occasional sight on the heads of soldiers stationed on cold worlds. 200% bear." + desc = "An occasional sight on the heads of Frontiersmen stationed on cold worlds. 200% bear." icon_state = "rus_ushanka" item_state = "rus_ushanka" body_parts_covered = HEAD @@ -567,11 +559,17 @@ item_state = "solgov_envirohelm" /obj/item/clothing/head/helmet/operator - name = "\improper Operator helmet" + name = "\improper operator helmet" desc = "A robust combat helmet commonly employed by Syndicate forces, regardless of alignment." icon_state = "operator" item_state = "operator" +/obj/item/clothing/head/helmet/medical + name = "\improper trauma team helmet" + desc = "A robust combat helmet commonly employed by cybersun medical trauma teams, with its distinctive turquoise." + icon_state = "traumahelm" + item_state = "traumahelm" + /obj/item/clothing/head/helmet/bulletproof/m10 name = "\improper M10 pattern Helmet" desc = "A classic looking helmet, derived from numerous convergently-similar designs from all across inhabited space. A faded tag reads: 'The difference between an open-casket and closed-casket funeral. Wear on head for best results.'" diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index 06bdf4de0e7f..ae7ecd5b121e 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -184,6 +184,12 @@ name = "syndicate cap" desc = "A black cap fit for a high ranking syndicate officer." +/obj/item/clothing/head/HoS/cybersun + name = "cybersun hat" + desc = "A crimson-red hat fit for a high ranking cybersun officer." + icon_state = "cybersunhat" + item_state = "cybersunhat" + /obj/item/clothing/head/HoS/beret/syndicate name = "syndicate beret" desc = "A black beret with thick armor padding inside. Stylish and robust." @@ -248,7 +254,7 @@ /obj/item/clothing/head/warden/drill/equipped(mob/M, slot) . = ..() if (slot == ITEM_SLOT_HEAD) - RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(M, COMSIG_MOB_SAY, PROC_REF(handle_speech)) else UnregisterSignal(M, COMSIG_MOB_SAY) diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index 73261bf69ebb..d63003422e29 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -386,7 +386,7 @@ /obj/item/clothing/head/frenchberet/equipped(mob/M, slot) . = ..() if (slot == ITEM_SLOT_HEAD) - RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(M, COMSIG_MOB_SAY, PROC_REF(handle_speech)) else UnregisterSignal(M, COMSIG_MOB_SAY) diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index 94cd299b3cc0..3e188c253169 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -323,7 +323,7 @@ /obj/item/clothing/head/foilhat/Initialize(mapload) . = ..() if(!warped) - AddComponent(/datum/component/anti_magic, FALSE, FALSE, TRUE, ITEM_SLOT_HEAD, 6, TRUE, null, CALLBACK(src, .proc/warp_up)) + AddComponent(/datum/component/anti_magic, FALSE, FALSE, TRUE, ITEM_SLOT_HEAD, 6, TRUE, null, CALLBACK(src, PROC_REF(warp_up))) else warp_up() diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm index dd689223380c..bc2036523bd7 100644 --- a/code/modules/clothing/head/soft_caps.dm +++ b/code/modules/clothing/head/soft_caps.dm @@ -137,6 +137,13 @@ dog_fashion = null /obj/item/clothing/head/soft/cybersun + name = "cybersun agent cap" + desc = "A black baseball hat emblazoned with a reflective Cybersun patch." + icon_state = "agentsoft" + soft_type = "black" + dog_fashion = null + +/obj/item/clothing/head/soft/cybersun/medical name = "cybersun medic cap" desc = "A turquoise baseball hat emblazoned with a reflective cross. Typical of Cybersun Industries field medics." icon_state = "cybersunsoft" diff --git a/code/modules/clothing/masks/_masks.dm b/code/modules/clothing/masks/_masks.dm index f4e8ca45f697..739e0f832faa 100644 --- a/code/modules/clothing/masks/_masks.dm +++ b/code/modules/clothing/masks/_masks.dm @@ -19,7 +19,7 @@ /obj/item/clothing/mask/equipped(mob/M, slot) . = ..() if (slot == ITEM_SLOT_MASK && modifies_speech) - RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(M, COMSIG_MOB_SAY, PROC_REF(handle_speech)) else UnregisterSignal(M, COMSIG_MOB_SAY) diff --git a/code/modules/clothing/masks/boxing.dm b/code/modules/clothing/masks/boxing.dm index fc2a3d13e31b..c532202a3df3 100644 --- a/code/modules/clothing/masks/boxing.dm +++ b/code/modules/clothing/masks/boxing.dm @@ -87,12 +87,3 @@ desc = "Worn by robust fighters who are willing to do anything to win." icon_state = "luchar" item_state = "luchar" - -/obj/item/clothing/mask/russian_balaclava - name = "russian balaclava" - desc = "Protects your face from snow." - icon_state = "rus_balaclava" - item_state = "rus_balaclava" - flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR - visor_flags_inv = HIDEFACE|HIDEFACIALHAIR - w_class = WEIGHT_CLASS_SMALL diff --git a/code/modules/clothing/outfits/gezena.dm b/code/modules/clothing/outfits/gezena.dm new file mode 100644 index 000000000000..b9fc26afeff1 --- /dev/null +++ b/code/modules/clothing/outfits/gezena.dm @@ -0,0 +1,17 @@ +/datum/outfit/job/gezena + +/datum/outfit/job/gezena/post_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + if(visualsOnly) + return + H.faction |= list("playergezena") + +/datum/outfit/job/gezena/assistant + name = "Deckhand (PGF)" + jobtype = /datum/job/assistant + + head = /obj/item/clothing/head/gezena + uniform = /obj/item/clothing/under/gezena + suit = /obj/item/clothing/suit/toggle/gezena + gloves = /obj/item/clothing/gloves/gezena + shoes = /obj/item/clothing/shoes/combat/gezena diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm index c339816c7e68..82ad3aae38d6 100644 --- a/code/modules/clothing/outfits/standard.dm +++ b/code/modules/clothing/outfits/standard.dm @@ -269,33 +269,6 @@ shoes = /obj/item/clothing/shoes/sandal/marisa head = /obj/item/clothing/head/wizard/marisa -/datum/outfit/centcom/soviet - name = "Soviet Admiral" - - uniform = /obj/item/clothing/under/costume/soviet - head = /obj/item/clothing/head/pirate/captain - shoes = /obj/item/clothing/shoes/combat - gloves = /obj/item/clothing/gloves/tackler/combat/insulated - ears = /obj/item/radio/headset/headset_cent - glasses = /obj/item/clothing/glasses/thermal/eyepatch - suit = /obj/item/clothing/suit/pirate/captain - back = /obj/item/storage/backpack/satchel/leather - belt = /obj/item/gun/ballistic/revolver/mateba - - id = /obj/item/card/id/centcom - -/datum/outfit/centcom/soviet/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) - if(visualsOnly) - return - - var/obj/item/card/id/W = H.wear_id - W.access = get_all_accesses() - W.access += get_centcom_access("Admiral") - W.assignment = "Admiral" - W.registered_name = H.real_name - W.update_label() - ..() - /datum/outfit/mobster name = "Mobster" @@ -416,7 +389,7 @@ id = /obj/item/card/id/silver head = /obj/item/clothing/head/beret/lt - uniform = /obj/item/clothing/under/rank/command/lieutenant + uniform = /obj/item/clothing/under/rank/command alt_uniform = /obj/item/clothing/under/rank/command suit = /obj/item/clothing/suit/toggle/lieutenant alt_suit = /obj/item/clothing/suit/armor/lieutenant_trenchcoat diff --git a/code/modules/clothing/outfits/syndicate.dm b/code/modules/clothing/outfits/syndicate.dm new file mode 100644 index 000000000000..cb8f093a99e4 --- /dev/null +++ b/code/modules/clothing/outfits/syndicate.dm @@ -0,0 +1,826 @@ +//top outfit of everything syndicate. Don't change this. + +/datum/outfit/job/syndicate + name = "Syndicate (mostly) Empty" + + uniform = /obj/item/clothing/under/syndicate + box = /obj/item/storage/box/survival/syndie + id = /obj/item/card/id/syndicate_command/crew_id + + backpack = /obj/item/storage/backpack/security + satchel = /obj/item/storage/backpack/satchel/sec + duffelbag = /obj/item/storage/backpack/duffelbag/syndie + courierbag = /obj/item/storage/backpack/messenger/sec + +/datum/outfit/job/syndicate/post_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + if(visualsOnly) + return + H.faction |= list(FACTION_PLAYER_SYNDICATE) + +//generates a codename and assigns syndicate access, used in the twinkleshine. +/datum/outfit/job/syndicate/proc/assign_codename(mob/living/carbon/human/H) + var/obj/item/card/id/I = H.wear_id + I.registered_name = pick(GLOB.twinkle_names) + "-" + num2text(rand(1, 12)) // squidquest real + I.access |= list(ACCESS_SYNDICATE) + I.update_label() + +//and now, for the Assistants + +/datum/outfit/job/syndicate/assistant + name = "Junior Agent (Assistant)" + jobtype = /datum/job/assistant + + uniform = /obj/item/clothing/under/syndicate/intern + alt_uniform = null + + shoes = /obj/item/clothing/shoes/jackboots + gloves = /obj/item/clothing/gloves/color/black + ears = /obj/item/radio/headset + back = /obj/item/storage/backpack + + id = /obj/item/card/id/syndicate_command/crew_id + r_pocket = /obj/item/radio + belt = /obj/item/pda + + backpack = /obj/item/storage/backpack/security + satchel = /obj/item/storage/backpack/satchel/sec + duffelbag = /obj/item/storage/backpack/duffelbag/syndie + courierbag = /obj/item/storage/backpack/messenger/sec + + box = /obj/item/storage/box/survival/syndie + +/datum/outfit/job/syndicate/assistant/gorlex + name = "Junior Agent (Gorlex Marauders)" + + uniform = /obj/item/clothing/under/syndicate/gorlex + alt_uniform = /obj/item/clothing/under/syndicate + +/datum/outfit/job/syndicate/assistant/gec + name = "Deckhand (GEC)" + + uniform = /obj/item/clothing/under/syndicate + suit = /obj/item/clothing/suit/toggle/hazard + + head = /obj/item/clothing/head/safety_helmet + +/datum/outfit/job/syndicate/assistant/cybersun + name = "Junior Agent (Cybersun)" + + uniform = /obj/item/clothing/under/syndicate/cybersun + shoes = /obj/item/clothing/shoes/jackboots + r_pocket = /obj/item/radio + head = /obj/item/clothing/head/soft/cybersun + +/datum/outfit/job/syndicate/assistant/twink + name = "Deck Assistant (Twinkleshine)" + + uniform = /obj/item/clothing/under/syndicate/intern + shoes = /obj/item/clothing/shoes/combat + gloves = /obj/item/clothing/gloves/combat + ears = /obj/item/radio/headset/syndicate/alt + mask = /obj/item/clothing/mask/chameleon + r_pocket = /obj/item/kitchen/knife/combat/survival + back = /obj/item/storage/backpack + belt = /obj/item/storage/belt/military/assault + implants = list(/obj/item/implant/weapons_auth) + id = /obj/item/card/id/syndicate_command/crew_id + + backpack = /obj/item/storage/backpack/security + satchel = /obj/item/storage/backpack/satchel/sec + duffelbag = /obj/item/storage/backpack/duffelbag/syndie + courierbag = /obj/item/storage/backpack/messenger/sec + + box = /obj/item/storage/box/survival/syndie + +/datum/outfit/job/syndicate/assistant/twink/post_equip(mob/living/carbon/human/H) + . = ..() + + assign_codename(H) + +//atmos techs + +//Shiptest +/datum/outfit/job/syndicate/atmos + name = "Atmospheric Technician (Syndicate)" + jobtype = /datum/job/atmos + + belt = /obj/item/storage/belt/utility/atmostech + + uniform = /obj/item/clothing/under/rank/engineering/atmospheric_technician + alt_uniform = /obj/item/clothing/under/rank/engineering/engineer/hazard + alt_suit = /obj/item/clothing/suit/hazardvest + dcoat = /obj/item/clothing/suit/hooded/wintercoat/engineering + + r_pocket = /obj/item/analyzer + l_pocket = /obj/item/pda/atmos + + backpack = /obj/item/storage/backpack/industrial + satchel = /obj/item/storage/backpack/satchel/eng + duffelbag = /obj/item/storage/backpack/duffelbag/engineering + courierbag = /obj/item/storage/backpack/messenger/engi + + box = /obj/item/storage/box/survival/engineer + + pda_slot = ITEM_SLOT_LPOCKET + backpack_contents = list(/obj/item/modular_computer/tablet/preset/advanced=1) + +/datum/outfit/job/syndicate/atmos/gec + name = "Atmospheric Technician (GEC)" + + uniform = /obj/item/clothing/under/syndicate/gec/atmos_tech + suit = /obj/item/clothing/suit/toggle/hazard + head = /obj/item/clothing/head/hardhat + id = /obj/item/card/id/syndicate_command/crew_id + + +//bartenders + +/datum/outfit/job/syndicate/bartender + name = "Bartender (Syndicate)" + jobtype = /datum/job/bartender + + id = /obj/item/card/id/syndicate_command/crew_id + head = /obj/item/clothing/head/HoS/beret/syndicate + glasses = /obj/item/clothing/glasses/sunglasses/reagent + belt = /obj/item/pda/bar + uniform = /obj/item/clothing/under/rank/civilian/bartender + alt_uniform = /obj/item/clothing/under/rank/civilian/bartender/purple + alt_suit = /obj/item/clothing/suit/apron/purple_bartender + suit = /obj/item/clothing/suit/armor/vest + backpack_contents = list(/obj/item/storage/box/beanbag=1) + shoes = /obj/item/clothing/shoes/laceup + + +/datum/outfit/job/syndicate/bartender/post_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + + var/obj/item/card/id/W = H.wear_id + if(H.age < AGE_MINOR) + W.registered_age = AGE_MINOR + to_chat(H, "You're not technically old enough to access or serve alcohol, but your ID has been discreetly modified to display your age as [AGE_MINOR]. Try to keep that a secret!") + + +/datum/outfit/job/syndicate/bartender/twink + name = "Bartender (Twinkleshine)" + + uniform = /obj/item/clothing/under/syndicate/donk + shoes = /obj/item/clothing/shoes/laceup + gloves = /obj/item/clothing/gloves/color/white + ears = /obj/item/radio/headset/syndicate + mask = /obj/item/clothing/mask/chameleon + belt = /obj/item/storage/belt/bandolier + implants = list(/obj/item/implant/weapons_auth) + id = /obj/item/card/id/syndicate_command/crew_id + + backpack = /obj/item/storage/backpack/security + satchel = /obj/item/storage/backpack/satchel/sec + duffelbag = /obj/item/storage/backpack/duffelbag/syndie + courierbag = /obj/item/storage/backpack/messenger/sec + + box = /obj/item/storage/box/survival/syndie + +/datum/outfit/job/syndicate/bartender/twink/post_equip(mob/living/carbon/human/H) + . = ..() + assign_codename(H) + +//botanist +/datum/outfit/job/syndicate/botanist + name = "Botanist (Syndicate)" + jobtype = /datum/job/hydro + belt = /obj/item/pda/botanist + suit = /obj/item/clothing/suit/apron + alt_suit = /obj/item/clothing/suit/apron/overalls + gloves =/obj/item/clothing/gloves/botanic_leather + suit_store = /obj/item/plant_analyzer + +/datum/outfit/job/syndicate/botanist/suns + name = "Botanist-Chemist (SUNS)" + + id = /obj/item/card/id/syndicate_command/crew_id + shoes = /obj/item/clothing/shoes/jackboots + glasses = /obj/item/clothing/glasses/science + suit = /obj/item/clothing/suit/toggle/labcoat/chemist + suit_store = null + +//Capitan (Captain) + +/datum/outfit/job/syndicate/captain + name = "Captain (Syndicate)" + jobtype = /datum/job/captain + + id = /obj/item/card/id/syndicate_command/captain_id + ears = /obj/item/radio/headset/syndicate/alt/captain + uniform = /obj/item/clothing/under/syndicate/aclf + shoes = /obj/item/clothing/shoes/jackboots + head = /obj/item/clothing/head/HoS/syndicate + gloves = /obj/item/clothing/gloves/combat + suit = /obj/item/clothing/suit/armor/vest/capcarapace/syndicate + backpack_contents = list(/obj/item/melee/classic_baton/telescopic=1, /obj/item/pda/captain) + + backpack = /obj/item/storage/backpack/security + satchel = /obj/item/storage/backpack/satchel/sec + duffelbag = /obj/item/storage/backpack/duffelbag/sec + courierbag = /obj/item/storage/backpack/messenger/sec + + box = /obj/item/storage/box/survival/syndie + +/datum/outfit/job/syndicate/captain/aclf + name = "Captain (ACLF)" + + +/datum/outfit/job/syndicate/captain/twink + name = "Captain (Twinkleshine)" + + uniform = /obj/item/clothing/under/syndicate/aclf + gloves = /obj/item/clothing/gloves/combat + shoes = /obj/item/clothing/shoes/combat + ears = /obj/item/radio/headset/syndicate/alt/captain + mask = /obj/item/clothing/mask/chameleon + l_pocket = /obj/item/melee/transforming/energy/sword/saber/red + suit = /obj/item/clothing/suit/armor/vest/capcarapace/syndicate + suit_store = /obj/item/gun/ballistic/revolver/mateba + r_pocket = /obj/item/kitchen/knife/combat/survival + belt = /obj/item/storage/belt/military/assault + glasses = /obj/item/clothing/glasses/hud/security/sunglasses/eyepatch + implants = list(/obj/item/implant/weapons_auth) + + +/datum/outfit/job/syndicate/captain/sbc/post_equip(mob/living/carbon/human/H) + . = ..() + assign_codename(H) + + +/datum/outfit/job/syndicate/captain/gorlex + name = "Captain (Gorlex Marauders)" + uniform = /obj/item/clothing/under/syndicate/aclf + + head = /obj/item/clothing/head/aclfcap + suit = /obj/item/clothing/suit/aclf + +/datum/outfit/job/syndicate/captain/cybersun + name = "Captain (Cybersun)" + + uniform = /obj/item/clothing/under/syndicate/cybersun/officer + suit = /obj/item/clothing/suit/armor/vest/capcarapace/cybersun + head = /obj/item/clothing/head/HoS/cybersun + gloves = /obj/item/clothing/gloves/combat + + +//cargo tech + +/datum/outfit/job/syndicate/cargo_tech + name = "Cargo Tech (Syndicate)" + jobtype = /datum/job/cargo_tech + + id = /obj/item/card/id/syndicate_command/crew_id + uniform = /obj/item/clothing/under/syndicate/donk + suit = /obj/item/clothing/suit/hazardvest/donk + + belt = /obj/item/pda/cargo + alt_suit = /obj/item/clothing/suit/hazardvest + l_hand = /obj/item/export_scanner + backpack_contents = list(/obj/item/modular_computer/tablet/preset/cargo=1) + + +/datum/outfit/job/syndicate/cargo_tech/donk + name = "Customer Associate (Donk! Co)" + +//chemist + +/datum/outfit/job/syndicate/chemist + name = "Chemist (Syndicate)" + jobtype = /datum/job/chemist + + uniform = /obj/item/clothing/under/syndicate/intern + id = /obj/item/card/id/syndicate_command/crew_id + l_pocket =/obj/item/pda/chemist + + glasses = /obj/item/clothing/glasses/science + belt = /obj/item/pda/chemist + shoes = /obj/item/clothing/shoes/sneakers/white + suit = /obj/item/clothing/suit/toggle/labcoat/chemist + + box = /obj/item/storage/box/survival/medical + +/datum/outfit/job/syndicate/chemist/gec + name = "Chemist (GEC)" + + uniform = /obj/item/clothing/under/syndicate/intern + suit = /obj/item/clothing/suit/toggle/hazard + head = /obj/item/clothing/head/hardhat + belt = /obj/item/storage/belt/utility/full/engi + id = /obj/item/card/id/syndicate_command/crew_id + l_pocket =/obj/item/pda/chemist + +//Chief Engineer + +/datum/outfit/job/syndicate/ce + name = "Chief Engineer (Syndicate)" + jobtype = /datum/job/chief_engineer + + id = /obj/item/card/id/syndicate_command/crew_id + ears = /obj/item/radio/headset/syndicate/alt + glasses = /obj/item/clothing/glasses/sunglasses + + belt = /obj/item/storage/belt/utility/chief/full + l_pocket = /obj/item/pda/heads/ce + uniform = /obj/item/clothing/under/rank/engineering/chief_engineer + shoes = /obj/item/clothing/shoes/sneakers/brown + head = /obj/item/clothing/head/hardhat/white + gloves = /obj/item/clothing/gloves/color/black + backpack_contents = list(/obj/item/melee/classic_baton/telescopic=1, /obj/item/modular_computer/tablet/preset/advanced=1) + + backpack = /obj/item/storage/backpack/industrial + satchel = /obj/item/storage/backpack/satchel/eng + duffelbag = /obj/item/storage/backpack/duffelbag/engineering + courierbag = /obj/item/storage/backpack/messenger/engi + box = /obj/item/storage/box/survival/engineer + pda_slot = ITEM_SLOT_LPOCKET + chameleon_extras = /obj/item/stamp/ce + + +/datum/outfit/job/syndicate/ce/gec + name = "Chief Engineer (GEC)" + + uniform = /obj/item/clothing/under/syndicate/gec/chief_engineer + suit = /obj/item/clothing/suit/toggle/hazard + head = /obj/item/clothing/head/hardhat/white + shoes =/obj/item/clothing/shoes/laceup + ears = /obj/item/radio/headset/syndicate/alt/captain + id = /obj/item/card/id/syndicate_command/captain_id + gloves = /obj/item/clothing/gloves/combat + +/datum/outfit/job/syndicate/ce/gorlex + name = "Foreman (Gorlex Marauders)" + + ears = /obj/item/radio/headset/syndicate/alt + uniform = /obj/item/clothing/under/syndicate/gorlex + alt_uniform = null + suit = /obj/item/clothing/suit/toggle/hazard + alt_suit = null + shoes = /obj/item/clothing/shoes/jackboots + gloves = /obj/item/clothing/gloves/combat + +//Chief Medical Officer + +/datum/outfit/job/syndicate/cmo + name = "Chief Medical Officer (Syndicate)" + jobtype = /datum/job/cmo + + uniform = /obj/item/clothing/under/syndicate + ears = /obj/item/radio/headset/syndicate/alt/captain + id = /obj/item/card/id/syndicate_command/captain_id + shoes = /obj/item/clothing/shoes/jackboots + belt = /obj/item/pda/heads/cmo + l_pocket = /obj/item/pinpointer/crew + shoes = /obj/item/clothing/shoes/sneakers/brown + suit = /obj/item/clothing/suit/toggle/labcoat/cmo + l_hand = /obj/item/storage/firstaid/medical + suit_store = /obj/item/flashlight/pen + backpack_contents = list(/obj/item/melee/classic_baton/telescopic=1) + +/datum/outfit/job/syndicate/cmo/suns + name = "Medical Director (SUNS)" + +//"Head Of Personnel" + +/datum/outfit/job/syndicate/head_of_personnel + name = "Bridge Officer (Syndicate)" + jobtype = /datum/job/head_of_personnel + + ears = /obj/item/radio/headset/syndicate/alt + uniform = /obj/item/clothing/under/syndicate/aclfgrunt + shoes = /obj/item/clothing/shoes/jackboots + head = /obj/item/clothing/head/HoS/beret/syndicate + gloves = /obj/item/clothing/gloves/color/white + id = /obj/item/card/id/syndicate_command/crew_id + r_pocket = /obj/item/kitchen/knife/combat/survival + glasses = /obj/item/clothing/glasses/hud/health + belt = /obj/item/pda/heads/head_of_personnel + backpack_contents = list(/obj/item/storage/box/ids=1,\ + /obj/item/melee/classic_baton/telescopic=1, /obj/item/modular_computer/tablet/preset/advanced = 1) + +/datum/outfit/job/syndicate/head_of_personnel/cybersun + name = "Intelligence Officer (Cybersun)" + + ears = /obj/item/radio/headset/syndicate/alt + uniform = /obj/item/clothing/under/syndicate/cybersun/officer + suit = /obj/item/clothing/suit/cybersun_suit + shoes = /obj/item/clothing/shoes/jackboots + head = /obj/item/clothing/head/HoS/cybersun + gloves = /obj/item/clothing/gloves/combat + id = /obj/item/card/id/syndicate_command/crew_id + r_pocket = /obj/item/kitchen/knife/combat/survival + glasses = /obj/item/clothing/glasses/sunglasses + +//head of security + +/datum/outfit/job/syndicate/hos + name = "Head Of Security (Syndicate)" + jobtype = /datum/job/hos + + ears = /obj/item/radio/headset/syndicate/alt + uniform = /obj/item/clothing/under/syndicate/combat + head = /obj/item/clothing/head/warden + suit = /obj/item/clothing/suit/armor/vest/syndie + id = /obj/item/card/id/syndicate_command/crew_id + belt = /obj/item/pda/heads/hos + shoes = /obj/item/clothing/shoes/jackboots + head = /obj/item/clothing/head/HoS + glasses = /obj/item/clothing/glasses/hud/security/sunglasses + suit_store = /obj/item/gun/energy/e_gun + r_pocket = /obj/item/assembly/flash/handheld + l_pocket = /obj/item/restraints/handcuffs + backpack_contents = list(/obj/item/melee/baton/loaded=1) + + backpack_contents = list(/obj/item/melee/baton/loaded=1, /obj/item/storage/box/survival/syndie=1) + +/datum/outfit/job/syndicate/hos/gorlex + name = "Sergeant (Syndicate)" + +/datum/outfit/job/syndicate/hos/twink + name = "Lieutenant (Twinkleshine)" + uniform = /obj/item/clothing/under/syndicate/aclf + head = /obj/item/clothing/head/HoS/beret/syndicate + ears = /obj/item/radio/headset/syndicate/alt + mask = /obj/item/clothing/mask/chameleon + gloves = /obj/item/clothing/gloves/combat + l_pocket = /obj/item/gun/ballistic/automatic/pistol + r_pocket = /obj/item/kitchen/knife/combat/survival + belt = /obj/item/storage/belt/military/assault + shoes = /obj/item/clothing/shoes/combat + suit = /obj/item/clothing/suit/armor/vest + alt_suit = /obj/item/clothing/suit/aclf + id = /obj/item/card/id/syndicate_command/lieutenant + implants = list(/obj/item/implant/weapons_auth) + backpack_contents = list(/obj/item/melee/baton) + + backpack = /obj/item/storage/backpack/security + satchel = /obj/item/storage/backpack/satchel/sec + duffelbag = /obj/item/storage/backpack/duffelbag/syndie + courierbag = /obj/item/storage/backpack/messenger/sec + + box = /obj/item/storage/box/survival/syndie + +/datum/outfit/job/syndicate/hos/twink/post_equip(mob/living/carbon/human/H) + . = ..() + assign_codename(H) + +//medical doctors (assorted) + +/datum/outfit/job/syndicate/doctor + name = "Medical Doctor (Syndicate)" + jobtype = /datum/job/doctor + + uniform = /obj/item/clothing/under/syndicate + id = /obj/item/card/id/syndicate_command/crew_id + shoes = /obj/item/clothing/shoes/jackboots + belt = /obj/item/pda/medical + shoes = /obj/item/clothing/shoes/sneakers/white + suit = /obj/item/clothing/suit/toggle/labcoat + alt_suit = /obj/item/clothing/suit/apron/surgical + l_hand = /obj/item/storage/firstaid/medical + suit_store = /obj/item/flashlight/pen + +/datum/outfit/job/syndicate/doctor/suns + name = "Medical Doctor (SUNS)" + +/datum/outfit/job/syndicate/doctor/cybersun + name = "Medical Doctor (Cybersun)" + + uniform = /obj/item/clothing/under/syndicate/medic + accessory = /obj/item/clothing/accessory/armband/medblue + shoes = /obj/item/clothing/shoes/jackboots + +/datum/outfit/job/syndicate/doctor/gorlex + name = "Medical Doctor (Gorlex)" + + uniform = /obj/item/clothing/under/syndicate/gorlex + glasses = /obj/item/clothing/glasses/hud/health/prescription + r_pocket = /obj/item/kitchen/knife/combat/survival + back = /obj/item/storage/backpack/duffelbag/syndie/med + id = /obj/item/card/id/syndicate_command/crew_id + backpack_contents = list(/obj/item/storage/box/survival/syndie=1, /obj/item/storage/firstaid/medical,) + +//paramedics + + +/datum/outfit/job/syndicate/paramedic + name = "Paramedic (Syndicate)" + jobtype = /datum/job/paramedic + + + id = /obj/item/card/id/syndicate_command/crew_id + uniform = /obj/item/clothing/under/syndicate/gorlex + alt_uniform = null + shoes = /obj/item/clothing/shoes/jackboots + + head = /obj/item/clothing/head/soft/paramedic + suit = /obj/item/clothing/suit/toggle/labcoat/paramedic + alt_suit = /obj/item/clothing/suit/apron/surgical + gloves = /obj/item/clothing/gloves/color/latex/nitrile/evil + belt = /obj/item/storage/belt/medical/paramedic + id = /obj/item/card/id + l_pocket = /obj/item/pda/medical + suit_store = /obj/item/flashlight/pen + backpack_contents = list(/obj/item/roller=1) + pda_slot = ITEM_SLOT_LPOCKET + +/datum/outfit/job/syndicate/paramedic/gorlex + name = "Paramedic (Gorlex)" + +/datum/outfit/job/syndicate/paramedic/cybersun + name = "Field Medic (Cybersun Industries)" + + uniform = /obj/item/clothing/under/syndicate/medic + head = /obj/item/clothing/head/soft/cybersun/medical + shoes = /obj/item/clothing/shoes/combat + suit = /obj/item/clothing/suit/toggle/labcoat/raincoat + +/datum/outfit/job/syndicate/paramedic/twink + name = "Medic (Twinkleshine)" + + gloves = /obj/item/clothing/gloves/color/latex/nitrile/evil + uniform = /obj/item/clothing/under/syndicate/medic + glasses = /obj/item/clothing/glasses/hud/health + belt = /obj/item/storage/belt/medical + back = /obj/item/storage/backpack/duffelbag/syndie/med + shoes = /obj/item/clothing/shoes/combat + suit = /obj/item/clothing/suit/longcoat/roboblack + alt_suit = /obj/item/clothing/suit/toggle/labcoat + suit_store = null + ears = /obj/item/radio/headset/syndicate + mask = /obj/item/clothing/mask/chameleon + id = /obj/item/card/id/syndicate_command/crew_id/med + implants = list(/obj/item/implant/weapons_auth) + backpack_contents = list(/obj/item/pda/brig_phys) + + backpack = /obj/item/storage/backpack/security + satchel = /obj/item/storage/backpack/satchel/sec + duffelbag = /obj/item/storage/backpack/duffelbag/syndie/med + courierbag = /obj/item/storage/backpack/messenger/sec + + box = /obj/item/storage/box/survival/syndie + +/datum/outfit/job/syndicate/paramedic/twink/post_equip(mob/living/carbon/human/H) + . = ..() + assign_codename(H) + +//psychologist + +/datum/outfit/job/syndicate/psychologist + name = "Psychologist (Syndicate)" + jobtype = /datum/job/psychologist + + id = /obj/item/card/id/syndicate_command/crew_id + uniform = /obj/item/clothing/under/rank/medical/psychiatrist + suit = /obj/item/clothing/suit/toggle/labcoat + shoes = /obj/item/clothing/shoes/laceup + alt_uniform = null + l_hand = /obj/item/clipboard + belt = /obj/item/pda/medical + pda_slot = ITEM_SLOT_BELT + +/datum/outfit/job/syndicate/psychologist/suns + name = "Ship Psychologist (SUNS)" + +//patient (prisoner) + +/datum/outfit/job/syndicate/patient + name = "Long Term Patient" + jobtype = /datum/job/prisoner + + id = /obj/item/card/id/patient + uniform = /obj/item/clothing/under/rank/medical/gown + alt_suit = null + shoes = /obj/item/clothing/shoes/sandal/slippers + +//Quartermaster + +/datum/outfit/job/syndicate/quartermaster + name = "Quartermaster (Syndicate)" + jobtype = /datum/job/qm + + id = /obj/item/card/id/syndicate_command/captain_id + + ears = /obj/item/radio/headset/syndicate/alt + uniform = /obj/item/clothing/under/syndicate/donk/qm + suit = /obj/item/clothing/suit/hazardvest/donk/qm + ears = /obj/item/radio/headset/syndicate/alt + shoes = /obj/item/clothing/shoes/laceup + belt = /obj/item/pda/quartermaster + glasses = /obj/item/clothing/glasses/sunglasses + l_hand = /obj/item/clipboard + backpack_contents = list(/obj/item/modular_computer/tablet/preset/cargo=1) + +/datum/outfit/job/syndicate/quartermaster/donk + name = "Manager (Donk! Co.)" + id = /obj/item/card/id/syndicate_command/captain_id + + ears = /obj/item/radio/headset/syndicate/alt + uniform = /obj/item/clothing/under/syndicate/donk/qm + suit = /obj/item/clothing/suit/hazardvest/donk/qm + ears = /obj/item/radio/headset/syndicate/alt + shoes = /obj/item/clothing/shoes/laceup + +//security officers + +/datum/outfit/job/syndicate/security + name = "Operative (Syndicate)" + jobtype = /datum/job/officer + + + uniform = /obj/item/clothing/under/syndicate + r_pocket = /obj/item/kitchen/knife/combat/survival + belt = /obj/item/storage/belt/military + back = /obj/item/storage/backpack + suit = /obj/item/clothing/suit/armor/vest + id = /obj/item/card/id/syndicate_command/crew_id + + ears = /obj/item/radio/headset/alt + gloves = /obj/item/clothing/gloves/color/black + head = /obj/item/clothing/head/helmet/sec + shoes = /obj/item/clothing/shoes/jackboots + l_pocket = /obj/item/restraints/handcuffs + r_pocket = /obj/item/assembly/flash/handheld + + backpack_contents = list( + /obj/item/melee/baton/loaded=1, + ) + + +/datum/outfit/job/syndicate/security/gorlex + name = "Assault Operative (Gorlex)" + +/datum/outfit/job/syndicate/security/twink + name = "Operative (Twinkleshine)" + uniform = /obj/item/clothing/under/syndicate/combat + ears = /obj/item/radio/headset/syndicate/alt + mask = /obj/item/clothing/mask/chameleon + gloves = /obj/item/clothing/gloves/combat + shoes = /obj/item/clothing/shoes/combat + l_pocket = /obj/item/gun/ballistic/automatic/pistol + r_pocket = /obj/item/kitchen/knife/combat/survival + belt = /obj/item/storage/belt/military/assault + id = /obj/item/card/id/syndicate_command/crew_id + implants = list(/obj/item/implant/weapons_auth) + backpack_contents = list(/obj/item/gun_voucher/syndicate=1) + + head = null + backpack = /obj/item/storage/backpack/security + satchel = /obj/item/storage/backpack/satchel/sec + duffelbag = /obj/item/storage/backpack/duffelbag/syndie + courierbag = /obj/item/storage/backpack/messenger/sec + + box = /obj/item/storage/box/survival/syndie + +/datum/outfit/job/syndicate/security/twink/post_equip(mob/living/carbon/human/H) + . = ..() + assign_codename(H) + +//Miners + +/datum/outfit/job/syndicate/miner + name = "Miner (Syndicate)" + jobtype = /datum/job/mining + + belt = /obj/item/pda/shaftminer + ears = /obj/item/radio/headset/headset_cargo/mining + shoes = /obj/item/clothing/shoes/workboots/mining + gloves = /obj/item/clothing/gloves/explorer + uniform = /obj/item/clothing/under/rank/cargo/miner/lavaland + l_pocket = /obj/item/reagent_containers/hypospray/medipen/survival + r_pocket = /obj/item/storage/bag/ore + backpack_contents = list( + /obj/item/flashlight/seclite=1,\ + /obj/item/kitchen/knife/combat/survival=1,\ + /obj/item/mining_voucher=1,\ + /obj/item/stack/marker_beacon/ten=1) + +/datum/outfit/job/syndicate/miner/gorlex + name = "Wrecker (Gorlex Marauders)" + + uniform = /obj/item/clothing/under/syndicate/gorlex + shoes = /obj/item/clothing/shoes/workboots + ears = /obj/item/radio/headset/alt + +/datum/outfit/job/syndicate/miner/twink + name = "Miner (Twinkleshine)" + + uniform = /obj/item/clothing/under/syndicate/gorlex + shoes = /obj/item/clothing/shoes/workboots + glasses = /obj/item/clothing/glasses/meson/night + gloves = /obj/item/clothing/gloves/explorer + ears = /obj/item/radio/headset/syndicate + mask = /obj/item/clothing/mask/chameleon + r_pocket = /obj/item/kitchen/knife/combat/survival + belt = /obj/item/storage/belt/mining/alt + implants = list(/obj/item/implant/weapons_auth) + id = /obj/item/card/id/syndicate_command/crew_id/engi + + backpack = /obj/item/storage/backpack/security + satchel = /obj/item/storage/backpack/satchel/sec + duffelbag = /obj/item/storage/backpack/duffelbag/syndie + courierbag = /obj/item/storage/backpack/messenger/sec + + box = /obj/item/storage/box/survival/mining + +/datum/outfit/job/syndicate/miner/twink/post_equip(mob/living/carbon/human/H) + . = ..() + assign_codename(H) + +/datum/outfit/job/syndicate/miner/cybersun + name = "Field Agent (Cybersun)" + + id = /obj/item/card/id/syndicate_command/crew_id + ears = /obj/item/radio/headset + uniform = /obj/item/clothing/under/syndicate/cybersun + accessory = /obj/item/clothing/accessory/armband/cargo + head = /obj/item/clothing/head/soft/cybersun + r_pocket = /obj/item/radio + +/datum/outfit/job/syndicate/miner/gec + name = "Shaft Miner (GEC)" + + id = /obj/item/card/id/syndicate_command/crew_id + ears = /obj/item/radio/headset + uniform = /obj/item/clothing/under/syndicate + alt_uniform = null + accessory = /obj/item/clothing/accessory/armband/cargo + head = /obj/item/clothing/head/soft/black + r_pocket = /obj/item/radio + head = /obj/item/clothing/head/hardhat/orange + suit = /obj/item/clothing/suit/toggle/industrial + suit_store = /obj/item/tank/internals/emergency_oxygen/double + +//"station" engineers + +/datum/outfit/job/syndicate/engineer + name = "Ship Technician (Syndicate)" + jobtype = /datum/job/engineer + + id = /obj/item/card/id/syndicate_command/crew_id + uniform = /obj/item/clothing/under/syndicate/aclfgrunt + accessory = /obj/item/clothing/accessory/armband/engine + glasses = /obj/item/clothing/glasses/sunglasses + shoes = /obj/item/clothing/shoes/jackboots + + belt = /obj/item/storage/belt/utility/full/engi + l_pocket = /obj/item/pda/engineering + head = /obj/item/clothing/head/hardhat/dblue + r_pocket = /obj/item/t_scanner + + box = /obj/item/storage/box/survival/engineer + pda_slot = ITEM_SLOT_LPOCKET + backpack_contents = list(/obj/item/modular_computer/tablet/preset/advanced=1) + +/datum/outfit/job/syndicate/engineer/gec + name = "Ship Engineer (GEC)" + + uniform = /obj/item/clothing/under/syndicate/gec + suit = /obj/item/clothing/suit/toggle/hazard + head = /obj/item/clothing/head/hardhat + id = /obj/item/card/id/syndicate_command/crew_id + +/datum/outfit/job/syndicate/engineer/gorlex + name = "Mechanic (Gorlex Marauders)" + + uniform = /obj/item/clothing/under/syndicate/gorlex + shoes = /obj/item/clothing/shoes/workboots + alt_uniform = null + glasses = null + +/datum/outfit/job/syndicate/engineer/twink + name = "Ship Engineer (Twinkleshine)" + + uniform = /obj/item/clothing/under/syndicate/gec + accessory = null + glasses = /obj/item/clothing/glasses/meson/night + head = /obj/item/clothing/head/hardhat/orange + gloves = /obj/item/clothing/gloves/tackler/combat/insulated + ears = /obj/item/radio/headset/syndicate + mask = /obj/item/clothing/mask/chameleon + back = /obj/item/storage/backpack/industrial + belt = /obj/item/storage/belt/utility/syndicate + shoes = /obj/item/clothing/shoes/combat + suit = /obj/item/clothing/suit/hazardvest + alt_suit = /obj/item/clothing/suit/toggle/hazard + implants = list(/obj/item/implant/weapons_auth) + id = /obj/item/card/id/syndicate_command/crew_id/engi + backpack_contents = list(/obj/item/construction/rcd/combat, /obj/item/rcd_ammo/large) + + box = /obj/item/storage/box/survival/syndie + +/datum/outfit/job/syndicate/engineer/twink/post_equip(mob/living/carbon/human/H) + . = ..() + assign_codename(H) + +/datum/outfit/job/syndicate/engineer/cybersun + name = "Engineer (Cybersun)" + + uniform = /obj/item/clothing/under/syndicate/cybersun/research + shoes = /obj/item/clothing/shoes/workboots + r_pocket = /obj/item/radio + head = /obj/item/clothing/head/soft/cybersun + accessory = /obj/item/clothing/accessory/armband/engine diff --git a/code/modules/clothing/outfits/vr.dm b/code/modules/clothing/outfits/vr.dm deleted file mode 100644 index 825dd8e46c32..000000000000 --- a/code/modules/clothing/outfits/vr.dm +++ /dev/null @@ -1,41 +0,0 @@ -/datum/outfit/vr - name = "Basic VR" - uniform = /obj/item/clothing/under/color/random - shoes = /obj/item/clothing/shoes/sneakers/black - ears = /obj/item/radio/headset - id = /obj/item/card/id - -/datum/outfit/vr/pre_equip(mob/living/carbon/human/H) - H.dna.species.before_equip_job(null, H) - -/datum/outfit/vr/post_equip(mob/living/carbon/human/H) - var/obj/item/card/id/id = H.wear_id - if (istype(id)) - id.access |= get_all_accesses() - -/datum/outfit/vr/syndicate - name = "Syndicate VR Operative - Basic" - uniform = /obj/item/clothing/under/syndicate - shoes = /obj/item/clothing/shoes/combat - gloves = /obj/item/clothing/gloves/tackler/combat/insulated - back = /obj/item/storage/backpack - id = /obj/item/card/id/syndicate - belt = /obj/item/gun/ballistic/automatic/pistol - l_pocket = /obj/item/paper/fluff/vr/fluke_ops - backpack_contents = list(/obj/item/storage/box/survival/syndie=1,\ - /obj/item/kitchen/knife/combat/survival) - -/datum/outfit/vr/syndicate/post_equip(mob/living/carbon/human/H) - . = ..() - var/obj/item/uplink/U = new /obj/item/uplink/nuclear_restricted(H, H.key, 80) - H.equip_to_slot_or_del(U, ITEM_SLOT_BACKPACK) - var/obj/item/implant/weapons_auth/W = new/obj/item/implant/weapons_auth(H) - W.implant(H) - var/obj/item/implant/explosive/E = new/obj/item/implant/explosive(H) - E.implant(H) - H.faction |= ROLE_SYNDICATE - H.update_icons() - -/obj/item/paper/fluff/vr/fluke_ops - name = "Where is my uplink?" - default_raw_text = "Use the radio in your backpack." diff --git a/code/modules/clothing/shoes/_shoes.dm b/code/modules/clothing/shoes/_shoes.dm index c24759933dd6..05db2331fc49 100644 --- a/code/modules/clothing/shoes/_shoes.dm +++ b/code/modules/clothing/shoes/_shoes.dm @@ -59,7 +59,7 @@ . = ..() if(can_be_tied && tied == SHOES_UNTIED) our_alert = user.throw_alert("shoealert", /atom/movable/screen/alert/shoes/untied) - RegisterSignal(src, COMSIG_SHOES_STEP_ACTION, .proc/check_trip, override=TRUE) + RegisterSignal(src, COMSIG_SHOES_STEP_ACTION, PROC_REF(check_trip), override=TRUE) /obj/item/clothing/shoes/proc/restore_offsets(mob/user) @@ -110,7 +110,7 @@ else if(tied == SHOES_UNTIED && our_guy && user == our_guy) our_alert = our_guy.throw_alert("shoealert", /atom/movable/screen/alert/shoes/untied) // if we're the ones unknotting our own laces, of course we know they're untied - RegisterSignal(src, COMSIG_SHOES_STEP_ACTION, .proc/check_trip, override=TRUE) + RegisterSignal(src, COMSIG_SHOES_STEP_ACTION, PROC_REF(check_trip), override=TRUE) /** * handle_tying deals with all the actual tying/untying/knotting, inferring your intent from who you are in relation to the state of the laces @@ -134,7 +134,7 @@ if(user == loc && tied != SHOES_TIED) // if they're our own shoes, go tie-wards user.visible_message("[user] begins [tied ? "unknotting" : "tying"] the laces of [user.p_their()] [src.name].", "You begin [tied ? "unknotting" : "tying"] the laces of your [src.name]...") - if(do_after(user, lace_time, needhand=TRUE, target=our_guy, extra_checks=CALLBACK(src, .proc/still_shoed, our_guy))) + if(do_after(user, lace_time, needhand=TRUE, target=our_guy, extra_checks=CALLBACK(src, PROC_REF(still_shoed), our_guy))) to_chat(user, "You [tied ? "unknot" : "tie"] the laces of your [src.name].") if(tied == SHOES_UNTIED) adjust_laces(SHOES_TIED, user) @@ -155,7 +155,7 @@ if(HAS_TRAIT(user, TRAIT_CLUMSY)) // based clowns trained their whole lives for this mod_time *= 0.75 - if(do_after(user, mod_time, needhand=TRUE, target=our_guy, extra_checks=CALLBACK(src, .proc/still_shoed, our_guy))) + if(do_after(user, mod_time, needhand=TRUE, target=our_guy, extra_checks=CALLBACK(src, PROC_REF(still_shoed), our_guy))) to_chat(user, "You [tied ? "untie" : "knot"] the laces on [loc]'s [src.name].") if(tied == SHOES_UNTIED) adjust_laces(SHOES_KNOTTED, user) @@ -210,7 +210,7 @@ to_chat(our_guy, "You stumble a bit on your untied shoelaces!") if(!our_guy.has_movespeed_modifier(/datum/movespeed_modifier/shove)) our_guy.add_movespeed_modifier(/datum/movespeed_modifier/shove) - addtimer(CALLBACK(our_guy, /mob/living/carbon/proc/clear_shove_slowdown), SHOVE_SLOWDOWN_LENGTH) + addtimer(CALLBACK(our_guy, TYPE_PROC_REF(/mob/living/carbon, clear_shove_slowdown)), SHOVE_SLOWDOWN_LENGTH) if(26 to 1000) wiser = FALSE @@ -232,6 +232,6 @@ to_chat(user, "You begin [tied ? "untying" : "tying"] the laces on [src]...") - if(do_after(user, lace_time, needhand=TRUE, target=src,extra_checks=CALLBACK(src, .proc/still_shoed, user))) + if(do_after(user, lace_time, needhand=TRUE, target=src,extra_checks=CALLBACK(src, PROC_REF(still_shoed), user))) to_chat(user, "You [tied ? "untie" : "tie"] the laces on [src].") adjust_laces(tied ? SHOES_TIED : SHOES_UNTIED, user) diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 2d5301844c98..03abdf1325f8 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -362,26 +362,18 @@ active = TRUE set_light_color(rgb(rand(0, 255), rand(0, 255), rand(0, 255))) set_light_on(active) - addtimer(CALLBACK(src, .proc/lightUp), 0.5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(lightUp)), 0.5 SECONDS) /obj/item/clothing/shoes/kindleKicks/proc/lightUp(mob/user) if(lightCycle < 15) set_light_color(rgb(rand(0, 255), rand(0, 255), rand(0, 255))) lightCycle++ - addtimer(CALLBACK(src, .proc/lightUp), 0.5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(lightUp)), 0.5 SECONDS) else lightCycle = 0 active = FALSE set_light_on(active) -/obj/item/clothing/shoes/russian - name = "russian boots" - desc = "Comfy shoes." - icon_state = "rus_shoes" - item_state = "rus_shoes" - pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes - lace_time = 8 SECONDS - /obj/item/clothing/shoes/cowboy name = "cowboy boots" desc = "A small sticker lets you know they've been inspected for snakes, It is unclear how long ago the inspection took place..." diff --git a/code/modules/clothing/spacesuits/chronosuit.dm b/code/modules/clothing/spacesuits/chronosuit.dm index 9c1bf3acdc0c..6bbde7b4a4dc 100644 --- a/code/modules/clothing/spacesuits/chronosuit.dm +++ b/code/modules/clothing/spacesuits/chronosuit.dm @@ -142,12 +142,12 @@ user.Stun(INFINITY) animate(user, color = "#00ccee", time = 3) - phase_timer_id = addtimer(CALLBACK(src, .proc/phase_2, user, to_turf, phase_in_ds), 3, TIMER_STOPPABLE) + phase_timer_id = addtimer(CALLBACK(src, PROC_REF(phase_2), user, to_turf, phase_in_ds), 3, TIMER_STOPPABLE) /obj/item/clothing/suit/space/chronos/proc/phase_2(mob/living/carbon/human/user, turf/to_turf, phase_in_ds) if(teleporting && activated && user) animate(user, color = list(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 1,1,1,0), time = 2) - phase_timer_id = addtimer(CALLBACK(src, .proc/phase_3, user, to_turf, phase_in_ds), 2, TIMER_STOPPABLE) + phase_timer_id = addtimer(CALLBACK(src, PROC_REF(phase_3), user, to_turf, phase_in_ds), 2, TIMER_STOPPABLE) else finish_chronowalk(user, to_turf) @@ -155,14 +155,14 @@ if(teleporting && activated && user) user.forceMove(to_turf) animate(user, color = "#00ccee", time = phase_in_ds) - phase_timer_id = addtimer(CALLBACK(src, .proc/phase_4, user, to_turf), phase_in_ds, TIMER_STOPPABLE) + phase_timer_id = addtimer(CALLBACK(src, PROC_REF(phase_4), user, to_turf), phase_in_ds, TIMER_STOPPABLE) else finish_chronowalk(user, to_turf) /obj/item/clothing/suit/space/chronos/proc/phase_4(mob/living/carbon/human/user, turf/to_turf) if(teleporting && activated && user) animate(user, color = "#ffffff", time = 3) - phase_timer_id = addtimer(CALLBACK(src, .proc/finish_chronowalk, user, to_turf), 3, TIMER_STOPPABLE) + phase_timer_id = addtimer(CALLBACK(src, PROC_REF(finish_chronowalk), user, to_turf), 3, TIMER_STOPPABLE) else finish_chronowalk(user, to_turf) diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index de5874c98d38..b4fa1a1282f6 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -637,7 +637,7 @@ /obj/item/clothing/head/helmet/space/hardsuit/rd/Initialize() . = ..() - RegisterSignal(SSdcs, COMSIG_GLOB_EXPLOSION, .proc/sense_explosion) + RegisterSignal(SSdcs, COMSIG_GLOB_EXPLOSION, PROC_REF(sense_explosion)) /obj/item/clothing/head/helmet/space/hardsuit/rd/equipped(mob/living/carbon/human/user, slot) ..() @@ -820,7 +820,7 @@ return if(listeningTo) UnregisterSignal(listeningTo, COMSIG_MOVABLE_MOVED) - RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/on_mob_move) + RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(on_mob_move)) listeningTo = user /obj/item/clothing/suit/space/hardsuit/ancient/dropped() diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm index e6e15c51aecc..9f7afba9fb4b 100644 --- a/code/modules/clothing/spacesuits/plasmamen.dm +++ b/code/modules/clothing/spacesuits/plasmamen.dm @@ -326,7 +326,7 @@ //bomb scanner for RD helmet /obj/item/clothing/head/helmet/space/plasmaman/rd/Initialize() . = ..() - RegisterSignal(SSdcs, COMSIG_GLOB_EXPLOSION, .proc/sense_explosion) + RegisterSignal(SSdcs, COMSIG_GLOB_EXPLOSION, PROC_REF(sense_explosion)) /obj/item/clothing/head/helmet/space/plasmaman/rd/equipped(mob/living/carbon/human/user, slot) ..() diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index fbe1eceb1f65..d0eba4833ea5 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -56,6 +56,11 @@ name = "large tactical armor vest" icon_state = "marine_heavy" +/obj/item/clothing/suit/armor/vest/marine/trauma + name = "cybersun trauma team armor vest" + icon_state = "traumavest" + desc = "A set of stamped plasteel armor plates decorated with a medical cross and colors associated with the medical division of Cybersun." + /obj/item/clothing/suit/armor/vest/old name = "degrading armor vest" desc = "Older generation Type 1 armored vest. Due to degradation over time the vest is far less maneuverable to move in." @@ -143,12 +148,23 @@ desc = "A sinister looking vest of advanced armor worn over a black and red fireproof jacket. The gold collar and shoulders denote that this belongs to a high ranking syndicate officer." icon_state = "carapace_syndie" +/obj/item/clothing/suit/armor/vest/capcarapace/cybersun + name = "cybersun captain's haori" + desc = "An extraordinarily fashionable haori, utilized by cybersun captains. Weaved with armored fabric to protect the user from gunshots." + icon_state = "cybersunhaori" + /obj/item/clothing/suit/armor/vest/capcarapace/alt name = "captain's parade jacket" desc = "For when an armoured vest isn't fashionable enough." icon_state = "carapace_ntformal" item_state = "capspacesuit" +/obj/item/clothing/suit/armor/vest/capcarapace/captunic + name = "captain's parade coat" + desc = "Worn by a Captain to show their class." + icon_state = "carapace_formal" + item_state = "bio_suit" + /obj/item/clothing/suit/armor/vest/capcarapace/minutemen name = "colonial minutemen general coat" desc = "A very fancy coat used by generals of the Colonial Minutemen." @@ -317,23 +333,6 @@ resistance_flags = FLAMMABLE armor = list("melee" = 20, "bullet" = 10, "laser" = 30, "energy" = 40, "bomb" = 15, "bio" = 0, "rad" = 0, "fire" = 40, "acid" = 50) -/obj/item/clothing/suit/armor/vest/russian - name = "russian vest" - desc = "A bulletproof vest with forest camo. Good thing there's plenty of forests to hide in around here, right?" - icon_state = "armor_camo" - item_state = "rus_armor" - armor = list("melee" = 25, "bullet" = 30, "laser" = 0, "energy" = 10, "bomb" = 10, "bio" = 0, "rad" = 20, "fire" = 20, "acid" = 50) - -/obj/item/clothing/suit/armor/vest/russian_coat - name = "russian battle coat" - desc = "Used in extremly cold fronts, made out of real bears." - icon_state = "armor_coat" - item_state = "rus_coat" - body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT - armor = list("melee" = 25, "bullet" = 20, "laser" = 20, "energy" = 30, "bomb" = 20, "bio" = 50, "rad" = 20, "fire" = -10, "acid" = 50) - /obj/item/clothing/suit/armor/hos/inteq name = "inteq battle coat" desc = "A luxurious brown coat made from a crossweave of kevlar and ballistic fibre, the collar and wrist trims are made from genuine wolf fur. as protective as it is stylish." diff --git a/code/modules/clothing/suits/cloaks.dm b/code/modules/clothing/suits/cloaks.dm index d584d07b9bfd..14f721334462 100644 --- a/code/modules/clothing/suits/cloaks.dm +++ b/code/modules/clothing/suits/cloaks.dm @@ -12,7 +12,6 @@ greyscale_colors = list(list(11, 15), list(12, 22), list(12, 22)) greyscale_icon_state = "cloak" - /obj/item/clothing/neck/cloak/hos name = "head of security's cloak" desc = "Worn by Securistan, ruling their watch with an iron fist." diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index 241b231043fe..c9c0edd2def8 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -22,16 +22,6 @@ body_parts_covered = CHEST|GROIN|LEGS permeability_coefficient = 0.5 -//Captain -/obj/item/clothing/suit/captunic - name = "captain's parade tunic" - desc = "Worn by a Captain to show their class." - icon_state = "captunic" - item_state = "bio_suit" - body_parts_covered = CHEST|GROIN|LEGS|ARMS - flags_inv = HIDEJUMPSUIT - allowed = list(/obj/item/disk, /obj/item/stamp, /obj/item/reagent_containers/food/drinks/flask, /obj/item/melee, /obj/item/storage/lockbox/medal, /obj/item/assembly/flash/handheld, /obj/item/storage/box/matches, /obj/item/lighter, /obj/item/clothing/mask/cigarette, /obj/item/storage/fancy/cigarettes, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) - //Chef /obj/item/clothing/suit/toggle/chef name = "chef's apron" diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 1a020e40623c..5bb6923dec73 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -331,13 +331,6 @@ flags_cover = HEADCOVERSEYES flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR -/obj/item/clothing/suit/security/officer/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" - item_state = "officertanjacket" - body_parts_covered = CHEST|ARMS - /obj/item/clothing/suit/shrine_maiden name = "shrine maiden's outfit" desc = "Makes you want to exterminate some troublesome youkai." @@ -350,6 +343,12 @@ * Misc */ +/obj/item/clothing/suit/cybersun_suit + name = "cybersun suit" + desc = "A plain white suit commonly used by Cybersun's officers." + icon_state = "cybersun_suit" + item_state = "cybersun_suit" + /obj/item/clothing/suit/straight_jacket name = "straight jacket" desc = "A suit that completely restrains the wearer. Manufactured by Antyphun Corp." //Straight jacket is antifun diff --git a/code/modules/clothing/towels.dm b/code/modules/clothing/towels.dm new file mode 100644 index 000000000000..22c1b29976fc --- /dev/null +++ b/code/modules/clothing/towels.dm @@ -0,0 +1,206 @@ +/// Default shape of the towel, when it's folded. +#define TOWEL_FOLDED "" +/// Chest-down variant of the towel. +#define TOWEL_FULL "chest" +/// Waist-down variant of the towel. +#define TOWEL_WAIST "waist" +/// Head variant of the towel. +#define TOWEL_HEAD "head" +/// Shape of the towel when it has been used, and is no longer neatly folded. +#define TOWEL_USED "used" + +/// Icon path to the obj icon of the towel. +#define TOWEL_OBJ_ICON 'icons/obj/clothing/towel.dmi' +/// Icon path to the worn icon of the towel. +#define TOWEL_WORN_ICON 'icons/mob/clothing/towel.dmi' + +/// How much cloth goes into a towel. +#define TOWEL_CLOTH_AMOUNT 2 + +/obj/item/towel + name = "towel" + desc = "Everyone knows what a towel is. Use it to dry yourself, or wear it around your chest, your waist or even your head!" + icon = TOWEL_OBJ_ICON + mob_overlay_icon = TOWEL_WORN_ICON + icon_state = "towel" + base_icon_state = "towel" + force = 0 + throwforce = 0 + throw_speed = 1 + throw_range = 3 // They're not very aerodynamic. + w_class = WEIGHT_CLASS_SMALL // Don't ask me why other cloth-related items are considered tiny, and not small like this one. + item_flags = NOBLUDGEON + resistance_flags = FLAMMABLE + flags_inv = HIDEHAIR // Only relevant when in head shape, but useful to keep around regardless. + supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON + /// The shape we're currently in. + var/shape = TOWEL_FOLDED + +/obj/item/towel/examine(mob/user) + . = ..() + + if(!ishuman(user) && !iscyborg(user)) + return + + . += "" // Just for an empty line + + var/in_hands = TRUE + if(ishuman(user)) + in_hands = user.get_active_held_item() == src || user.get_inactive_held_item() == src + + if(in_hands) + . += span_notice("Use in hand to shape [src] into something different.") + + if(iscyborg(user)) + return + + if(in_hands && shape != TOWEL_FOLDED) + . += span_notice("Ctrl-click to fold [src] neatly.") + + if(shape == TOWEL_FULL || shape == TOWEL_WAIST) + . += span_notice("Alt-click to adjust the fit of [src].") + +/obj/item/towel/attack_self(mob/user, modifiers) + . = ..() + + /// Initializing this only once to avoid having to do it every time + var/static/list/datum/radial_menu_choice/worn_options = list() + + if(!length(worn_options)) + for(var/variant in list(TOWEL_FULL, TOWEL_WAIST, TOWEL_HEAD)) + var/datum/radial_menu_choice/option = new + var/image/variant_image = image(icon = TOWEL_OBJ_ICON, icon_state = "[base_icon_state]-[variant]") + + option.image = variant_image + worn_options[capitalize(variant)] = option + + var/choice = show_radial_menu(user, src, worn_options, require_near = TRUE, tooltips = TRUE) + + if(!choice) + return + + change_towel_shape(user, lowertext(choice)) + +/obj/item/towel/attackby(obj/item/I, mob/user, params) + if(I.tool_behaviour == TOOL_WIRECUTTER || I.get_sharpness()) + var/obj/item/stack/sheet/cotton/cloth/shreds = new (get_turf(src), 3) + if(!QDELETED(shreds)) //stacks merged + transfer_fingerprints_to(shreds) + shreds.add_fingerprint(user) + qdel(src) + to_chat(user, "You tear [src] up.") + else + return ..() + +/obj/item/towel/CtrlClick(mob/user) + . = ..() + + if(. == FALSE) + return + if(shape == TOWEL_FOLDED) + to_chat(user, span_warning("You can't fold a towel that's already folded!")) + var/in_hands = TRUE + if(ishuman(user) && shape == TOWEL_USED) + in_hands = user.get_active_held_item() == src || user.get_inactive_held_item() == src + if(in_hands) + change_towel_shape(user, TOWEL_FOLDED, silent = TRUE) + to_chat(user, span_notice("You fold [src] up neatly.")) + return + +/obj/item/towel/AltClick(mob/user) + . = ..() + + if(. == FALSE) + return + + if(!(shape == TOWEL_FULL || shape == TOWEL_WAIST)) + return FALSE + + if(!ishuman(user)) + return FALSE + + var/mob/living/carbon/human/towel_user = user + var/worn = towel_user.wear_suit == src + + change_towel_shape(user, shape == TOWEL_FULL ? TOWEL_WAIST : TOWEL_FULL, silent = worn) + + // No need to display the different message if they're not wearing it. + if(!worn) + return + + to_chat(user, span_notice(shape == TOWEL_FULL ? "You raise \the [src] over your [shape]." : "You lower \the [src] down to your [shape].")) + +/obj/item/towel/machine_wash(obj/machinery/washing_machine/washer) + . = ..() // This isn't really needed, including it in case we ever get dyeable towels. + make_used(null, silent = TRUE) + +/obj/item/towel/dropped(mob/user, silent) + . = ..() + + if(!ishuman(loc) && shape != TOWEL_FOLDED) + make_used(user, silent = TRUE) + +/* + * Helper to change the shape of the towel, so that it updates its look both + * in-hand and on the body of the wearer. + * + * Arguments: + * * user - Mob that's trying to change the shape of the towel. + * * new_shape - The new shape that the towel can be in. + * * silent (optional) - Whether we produce a to_chat to the user to elaborate on + * the new shape it is now in. Requires `user` to be non-null if `TRUE` in order to + * do anything. Defaults to `FALSE`. + */ +/obj/item/towel/proc/change_towel_shape(mob/user, new_shape, silent = FALSE) + if(new_shape == shape) + return + + shape = new_shape + + icon_state = "[base_icon_state][shape ? "-[shape]" : ""]" + + if(shape == TOWEL_HEAD) + flags_inv |= HIDEHAIR + else + flags_inv &= ~HIDEHAIR + + update_appearance() + update_slot_related_flags() + + if(!silent && user) + to_chat(user, span_notice(shape ? "You adjust [src] so that it can be worn over your [shape]." : "You fold [src] neatly.")) + +/* + * Helper proc to change the slot flags of the towel based on its shape. + */ +/obj/item/towel/proc/update_slot_related_flags() + switch(shape) + if(TOWEL_FULL) + slot_flags = ITEM_SLOT_OCLOTHING + body_parts_covered = CHEST | GROIN | LEGS + + if(TOWEL_WAIST) + slot_flags = ITEM_SLOT_OCLOTHING + body_parts_covered = GROIN | LEGS + + if(TOWEL_HEAD) + slot_flags = ITEM_SLOT_HEAD + body_parts_covered = HEAD + + else + slot_flags = NONE + body_parts_covered = NONE + + update_slot_icon() + +/* + * Simple helper to make the towel into a used towel shape. + * + * Arguments: + * * user - Mob that's making the towel used. Can be null if `silent` is `FALSE`. + * * silent (optional) - Whether we produce a to_chat to the user to elaborate on + * the new shape it is now in. Requires `user` to be non-null if `TRUE` in order to + * do anything. Defaults to `FALSE`. + */ +/obj/item/towel/proc/make_used(mob/user, silent = FALSE) + change_towel_shape(user, TOWEL_USED, silent) diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm index e3e8be62bab7..5fc4cc67390b 100644 --- a/code/modules/clothing/under/accessories.dm +++ b/code/modules/clothing/under/accessories.dm @@ -75,7 +75,7 @@ UnregisterSignal(detached_pockets, COMSIG_PARENT_QDELETING) detached_pockets = new_pocket if(detached_pockets) - RegisterSignal(detached_pockets, COMSIG_PARENT_QDELETING, .proc/handle_pockets_del) + RegisterSignal(detached_pockets, COMSIG_PARENT_QDELETING, PROC_REF(handle_pockets_del)) /obj/item/clothing/accessory/proc/handle_pockets_del(datum/source) SIGNAL_HANDLER diff --git a/code/modules/clothing/under/costume.dm b/code/modules/clothing/under/costume.dm index e0ac5f17275e..bfc7524149cb 100644 --- a/code/modules/clothing/under/costume.dm +++ b/code/modules/clothing/under/costume.dm @@ -54,13 +54,6 @@ item_state = "pirate" can_adjust = FALSE -/obj/item/clothing/under/costume/soviet - name = "soviet uniform" - desc = "For the Motherland!" - icon_state = "soviet" - item_state = "soviet" - can_adjust = FALSE - /obj/item/clothing/under/costume/kilt name = "kilt" desc = "Includes shoes and plaid." @@ -196,19 +189,6 @@ icon_state = "blue_mech_suit" item_state = "blue_mech_suit" -/obj/item/clothing/under/costume/russian_officer - name = "\improper Russian officer's uniform" - desc = "The latest in fashionable russian outfits." - icon = 'icons/obj/clothing/under/security.dmi' - icon_state = "hostanclothes" - item_state = "hostanclothes" - mob_overlay_icon = 'icons/mob/clothing/under/security.dmi' - alt_covers_chest = TRUE - armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 30) - strip_delay = 50 - sensor_mode = SENSOR_COORDS - random_sensor = FALSE - /obj/item/clothing/under/costume/jackbros name = "jack bros outfit" desc = "For when it's time to hee some hos." diff --git a/code/modules/clothing/under/jobs/command.dm b/code/modules/clothing/under/jobs/command.dm index 5c319344bf56..8edb11ba91cc 100644 --- a/code/modules/clothing/under/jobs/command.dm +++ b/code/modules/clothing/under/jobs/command.dm @@ -20,7 +20,7 @@ /obj/item/clothing/under/rank/command/nt/skirt desc = "A standard command jumpskirt." name = "command jumpskirt" - icon_state = "cmd_skirt" + icon_state = "cmd_nt_skirt" body_parts_covered = CHEST|GROIN|ARMS supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON | VOX_VARIATION @@ -113,13 +113,13 @@ //Lieutenant -/obj/item/clothing/under/rank/command/lieutenant +/obj/item/clothing/under/rank/command desc = "A standard command jumpsuit in the colours of the Lieutenant." name = "\improper lieutenant jumpsuit" icon_state = "lt" can_adjust = FALSE -/obj/item/clothing/under/rank/command/lieutenant/skirt +/obj/item/clothing/under/rank/command/skirt desc = "A command jumpskirt in the colours of the Lieutenant." name = "\improper lieutenant jumpskirt" icon_state = "lt_skirt" @@ -127,13 +127,13 @@ can_adjust = FALSE supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON | VOX_VARIATION -/obj/item/clothing/under/rank/command/lieutenant/nt +/obj/item/clothing/under/rank/command/nt desc = "A standard command jumpsuit in the colours of the Lieutenant." name = "\improper lieutenant blue jumpsuit" icon_state = "lt_nt" item_state = "b_suit" -/obj/item/clothing/under/rank/command/lieutenant/nt/skirt +/obj/item/clothing/under/rank/command/nt/skirt desc = "A command jumpskirt in the colours of the Lieutenant." name = "\improper lieutenant blue jumpskirt" icon_state = "lt_nt_skirt" diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm index 0f5472a80407..251743a5cdad 100644 --- a/code/modules/clothing/under/jobs/security.dm +++ b/code/modules/clothing/under/jobs/security.dm @@ -276,6 +276,7 @@ icon_state = "minuteman" item_state = "b_suit" can_adjust = FALSE + supports_variations = DIGITIGRADE_VARIATION /obj/item/clothing/under/rank/security/officer/camo name = "fatigues" diff --git a/code/modules/clothing/under/pants.dm b/code/modules/clothing/under/pants.dm index 23800bf4a799..3a2475129acc 100644 --- a/code/modules/clothing/under/pants.dm +++ b/code/modules/clothing/under/pants.dm @@ -7,28 +7,13 @@ mob_overlay_icon = 'icons/mob/clothing/under/shorts_pants.dmi' greyscale_colors = list(list(14, 10), list(16, 10), list(16, 9)) greyscale_icon_state = "pants" - -/obj/item/clothing/under/pants/classicjeans - name = "classic jeans" - desc = "You feel cooler already." - icon_state = "jeansclassic" - -/obj/item/clothing/under/pants/mustangjeans - name = "Must Hang jeans" - desc = "Made in the finest space jeans factory this side of Alpha Centauri." - icon_state = "jeans" - custom_price = 180 + supports_variations = DIGITIGRADE_VARIATION /obj/item/clothing/under/pants/blackjeans name = "black jeans" desc = "Only for those who can pull it off." icon_state = "jeansblack" -/obj/item/clothing/under/pants/youngfolksjeans - name = "Young Folks jeans" - desc = "For those tired of boring old jeans. Relive the passion of your youth!" - icon_state = "jeansclassic" - /obj/item/clothing/under/pants/white name = "white pants" desc = "Plain white pants. Boring." diff --git a/code/modules/clothing/under/syndicate.dm b/code/modules/clothing/under/syndicate.dm index c1ae9679effb..e2e972ab70ae 100644 --- a/code/modules/clothing/under/syndicate.dm +++ b/code/modules/clothing/under/syndicate.dm @@ -70,14 +70,6 @@ item_state = "g_suit" can_adjust = FALSE -/obj/item/clothing/under/syndicate/soviet - name = "Ratnik 5 tracksuit" - desc = "Badly translated labels tell you to clean this in Vodka. Great for squatting in." - icon_state = "trackpants" - can_adjust = FALSE - armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) - resistance_flags = NONE - /obj/item/clothing/under/syndicate/combat name = "combat uniform" desc = "With a suit lined with this many pockets, you are ready to operate." @@ -123,6 +115,12 @@ supports_variations = DIGITIGRADE_VARIATION | KEPORI_VARIATION /obj/item/clothing/under/syndicate/cybersun + name = "cybersun jumpsuit" + desc = "The standard jumpsuit used by the agents employed by Cybersun, in its distinctive half-black-half-white aesthetic." + icon_state = "cybersun_agent" + alt_covers_chest = TRUE + +/obj/item/clothing/under/syndicate/cybersun/research name = "Cybersun coveralls" desc = "Nomex coveralls worn by workers and research personnel employed by Cybersun industries." icon_state = "cybersun" @@ -130,12 +128,20 @@ alt_covers_chest = TRUE supports_variations = DIGITIGRADE_VARIATION | KEPORI_VARIATION +/obj/item/clothing/under/syndicate/cybersun/officer + name = "cybersun officer's suit" + desc = "A crimson-red suit used by the officers employed by Cybersun." + icon_state = "cybersun_officer" + alt_covers_chest = TRUE + supports_variations = DIGITIGRADE_VARIATION + /obj/item/clothing/under/syndicate/medic name = "Cybersun medical jumpsuit" desc = "Sterile coveralls worn by Cybersun Industries field medics for protection against biological hazards." icon_state = "cybersun_med" permeability_coefficient = 0.5 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0) + supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON | VOX_VARIATION | KEPORI_VARIATION /obj/item/clothing/under/syndicate/medic/skirt name = "Cybersun medical jumpskirt" diff --git a/code/modules/detectivework/scanner.dm b/code/modules/detectivework/scanner.dm index ffc7737284df..6b7f6f19fa2f 100644 --- a/code/modules/detectivework/scanner.dm +++ b/code/modules/detectivework/scanner.dm @@ -35,7 +35,7 @@ if(log.len && !scanning) scanning = 1 to_chat(user, "Printing report, please wait...") - addtimer(CALLBACK(src, .proc/PrintReport), 100) + addtimer(CALLBACK(src, PROC_REF(PrintReport)), 100) else to_chat(user, "The scanner has no logs or is in use.") diff --git a/code/modules/donator/_donator.dm b/code/modules/donator/_donator.dm index 02631ee8ea28..b18dbe8f78b3 100644 --- a/code/modules/donator/_donator.dm +++ b/code/modules/donator/_donator.dm @@ -12,8 +12,8 @@ GLOBAL_PROTECT(donators) . = ..() donator = GLOB.donators[ckey] || new /datum/donator(src) donator.owner = src - add_verb(src, .proc/do_donator_redemption) - add_verb(src, .proc/do_donator_wcir) + add_verb(src, /client/proc/do_donator_redemption) + add_verb(src, /client/proc/do_donator_wcir) /client/Destroy() . = ..() diff --git a/code/modules/economy/selling_pad.dm b/code/modules/economy/selling_pad.dm index 56cafbc35a72..46d660c5cec3 100644 --- a/code/modules/economy/selling_pad.dm +++ b/code/modules/economy/selling_pad.dm @@ -176,7 +176,7 @@ status_report = "Sending..." sell_pad.visible_message("[sell_pad] starts charging up.") sell_pad.icon_state = "lpad-idle" - sending_timer = addtimer(CALLBACK(src,.proc/send),warmup_time, TIMER_STOPPABLE) + sending_timer = addtimer(CALLBACK(src, PROC_REF(send)),warmup_time, TIMER_STOPPABLE) /obj/machinery/computer/selling_pad_control/proc/stop_sending() if(!sending) diff --git a/code/modules/events/fake_virus.dm b/code/modules/events/fake_virus.dm index 0e21622c72c5..9e4ac8f570a0 100644 --- a/code/modules/events/fake_virus.dm +++ b/code/modules/events/fake_virus.dm @@ -25,7 +25,7 @@ for(var/i=1; i<=rand(1,defacto_min); i++) var/mob/living/carbon/human/onecoughman = pick(fake_virus_victims) if(prob(25))//1/4 odds to get a spooky message instead of coughing out loud - addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, onecoughman, "[pick("Your head hurts.", "Your head pounds.")]"), rand(30,150)) + addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(to_chat), onecoughman, "[pick("Your head hurts.", "Your head pounds.")]"), rand(30,150)) else addtimer(CALLBACK(onecoughman, .mob/proc/emote, pick("cough", "sniff", "sneeze")), rand(30,150))//deliver the message with a slightly randomized time interval so there arent multiple people coughing at the exact same time fake_virus_victims -= onecoughman diff --git a/code/modules/events/fugitive_spawning.dm b/code/modules/events/fugitive_spawning.dm deleted file mode 100644 index 8cf295310282..000000000000 --- a/code/modules/events/fugitive_spawning.dm +++ /dev/null @@ -1,112 +0,0 @@ -/datum/round_event_control/fugitives - name = "Spawn Fugitives" - typepath = /datum/round_event/ghost_role/fugitives - max_occurrences = 1 - min_players = 20 - earliest_start = 30 MINUTES //deadchat sink, lets not even consider it early on. - gamemode_blacklist = list("nuclear") - -/datum/round_event/ghost_role/fugitives - minimum_required = 1 - role_name = "fugitive" - fakeable = FALSE - -/datum/round_event/ghost_role/fugitives/spawn_role() - var/list/possible_spawns = list()//Some xeno spawns are in some spots that will instantly kill the refugees, like atmos - for(var/turf/X in GLOB.xeno_spawn) - if(istype(X.loc, /area/ship/maintenance)) - possible_spawns += X - if(!possible_spawns.len) - message_admins("No valid spawn locations found, aborting...") - return MAP_ERROR - var/turf/landing_turf = pick(possible_spawns) - var/list/possible_backstories = list() - var/list/candidates = get_candidates(ROLE_TRAITOR, null, ROLE_TRAITOR) - if(candidates.len >= 1) //solo refugees - if(prob(30)) - possible_backstories.Add("waldo") //less common as it comes with magicks and is kind of immershun shattering - else //For accurate deadchat feedback - minimum_required = 4 - if(candidates.len >= 4)//group refugees - possible_backstories.Add("prisoner", "cultist", "synth") - if(!possible_backstories.len) - return NOT_ENOUGH_PLAYERS - - var/backstory = pick(possible_backstories) - var/member_size = 3 - var/leader - switch(backstory) - if("synth") - leader = pick_n_take(candidates) - if("waldo") - member_size = 0 //solo refugees have no leader so the member_size gets bumped to one a bit later - var/list/members = list() - var/list/spawned_mobs = list() - if(isnull(leader)) - member_size++ //if there is no leader role, then the would be leader is a normal member of the team. - - for(var/i in 1 to member_size) - members += pick_n_take(candidates) - - for(var/mob/dead/selected in members) - var/mob/living/carbon/human/S = gear_fugitive(selected, landing_turf, backstory) - spawned_mobs += S - if(!isnull(leader)) - gear_fugitive_leader(leader, landing_turf, backstory) - -//after spawning - playsound(src, 'sound/weapons/emitter.ogg', 50, TRUE) - new /obj/item/storage/toolbox/mechanical(landing_turf) //so they can actually escape maint - addtimer(CALLBACK(src, .proc/spawn_hunters), 10 MINUTES) - role_name = "fugitive hunter" - return SUCCESSFUL_SPAWN - -/datum/round_event/ghost_role/fugitives/proc/gear_fugitive(mob/dead/selected, turf/landing_turf, backstory) //spawns normal fugitive - var/datum/mind/player_mind = new /datum/mind(selected.key) - player_mind.active = TRUE - var/mob/living/carbon/human/S = new(landing_turf) - player_mind.transfer_to(S) - player_mind.assigned_role = "Fugitive" - player_mind.special_role = "Fugitive" - player_mind.add_antag_datum(/datum/antagonist/fugitive) - var/datum/antagonist/fugitive/fugitiveantag = player_mind.has_antag_datum(/datum/antagonist/fugitive) - INVOKE_ASYNC(fugitiveantag, /datum/antagonist/fugitive.proc/greet, backstory) //some fugitives have a sleep on their greet, so we don't want to stop the entire antag granting proc with fluff - - switch(backstory) - if("prisoner") - S.equipOutfit(/datum/outfit/prisoner) - if("cultist") - S.equipOutfit(/datum/outfit/yalp_cultist) - if("waldo") - S.equipOutfit(/datum/outfit/waldo) - if("synth") - S.equipOutfit(/datum/outfit/synthetic) - message_admins("[ADMIN_LOOKUPFLW(S)] has been made into a Fugitive by an event.") - log_game("[key_name(S)] was spawned as a Fugitive by an event.") - spawned_mobs += S - return S - -//special spawn for one member. it can be used for a special mob or simply to give one normal member special items. -/datum/round_event/ghost_role/fugitives/proc/gear_fugitive_leader(mob/dead/leader, turf/landing_turf, backstory) - var/datum/mind/player_mind = new /datum/mind(leader.key) - player_mind.active = TRUE - //if you want to add a fugitive with a special leader in the future, make this switch with the backstory - var/mob/living/carbon/human/S = gear_fugitive(leader, landing_turf, backstory) - var/obj/item/choice_beacon/augments/A = new(S) - S.put_in_hands(A) - new /obj/item/autosurgeon(landing_turf) - -//security team gets called in after 10 minutes of prep to find the refugees -/datum/round_event/ghost_role/fugitives/proc/spawn_hunters() - var/backstory = pick( "russian", "bounty hunter") - var/datum/map_template/shuttle/template - if (backstory == "russian") - template = new /datum/map_template/shuttle/hunter/russian - else - template = new /datum/map_template/shuttle/hunter/bounty - - var/datum/overmap/ship/controlled/ship = new(SSovermap.get_unused_overmap_square(), template) - - if(!ship) - CRASH("Loading [backstory] ship failed!") - priority_announce("Unidentified ship detected near the station.") diff --git a/code/modules/events/ghost_role.dm b/code/modules/events/ghost_role.dm index 5d7637332353..aecf7c481415 100644 --- a/code/modules/events/ghost_role.dm +++ b/code/modules/events/ghost_role.dm @@ -28,7 +28,7 @@ var/waittime = 300 * (2^retry) message_admins("The event will not spawn a [role_name] until certain \ conditions are met. Waiting [waittime/10]s and then retrying.") - addtimer(CALLBACK(src, .proc/try_spawning, 0, ++retry), waittime) + addtimer(CALLBACK(src, PROC_REF(try_spawning), 0, ++retry), waittime) return if(status == MAP_ERROR) diff --git a/code/modules/events/holiday/xmas.dm b/code/modules/events/holiday/xmas.dm index f1a36affcd3b..f38d21b868c4 100644 --- a/code/modules/events/holiday/xmas.dm +++ b/code/modules/events/holiday/xmas.dm @@ -49,15 +49,13 @@ var/festive_tree = /obj/structure/flora/tree/pine/xmas var/christmas_tree = /obj/structure/flora/tree/pine/xmas/presents -/obj/effect/spawner/xmastree/Initialize() - ..() +/obj/effect/spawner/xmastree/Initialize(mapload) + . = ..() if((CHRISTMAS in SSevents.holidays) && christmas_tree) new christmas_tree(get_turf(src)) else if((FESTIVE_SEASON in SSevents.holidays) && festive_tree) new festive_tree(get_turf(src)) - return INITIALIZE_HINT_QDEL - /obj/effect/spawner/xmastree/rdrod name = "festivus pole spawner" festive_tree = /obj/structure/festivus diff --git a/code/modules/events/pirates.dm b/code/modules/events/pirates.dm deleted file mode 100644 index 186922c76a8f..000000000000 --- a/code/modules/events/pirates.dm +++ /dev/null @@ -1,324 +0,0 @@ -/datum/round_event_control/pirates - name = "Space Pirates" - typepath = /datum/round_event/pirates - weight = 8 - max_occurrences = 1 - min_players = 10 - earliest_start = 30 MINUTES - gamemode_blacklist = list("nuclear") - -/datum/round_event/pirates - startWhen = 60 //2 minutes to answer - var/datum/comm_message/threat - var/payoff = 0 - var/payoff_min = 20000 - var/paid_off = FALSE - var/ship_name = "Space Privateers Association" - var/shuttle_spawned = FALSE - -/datum/round_event/pirates/setup() - ship_name = pick(strings(PIRATE_NAMES_FILE, "ship_names")) - -/datum/round_event/pirates/announce(fake) - priority_announce("Incoming subspace communication. Secure channel opened at all communication consoles.", "Incoming Message", 'sound/ai/commandreport.ogg') - if(fake) - return - threat = new - var/datum/bank_account/D = SSeconomy.get_dep_account(ACCOUNT_CAR) - if(D) - payoff = max(payoff_min, FLOOR(D.account_balance * 0.80, 1000)) - threat.title = "Business proposition" - threat.content = "This is [ship_name]. Pay up [payoff] credits or you'll walk the plank." - threat.possible_answers = list("We'll pay.","No way.") - threat.answer_callback = CALLBACK(src,.proc/answered) - SScommunications.send_message(threat,unique = TRUE) - -/datum/round_event/pirates/proc/answered() - if(threat && threat.answered == 1) - var/datum/bank_account/D = SSeconomy.get_dep_account(ACCOUNT_CAR) - if(D) - if(D.adjust_money(-payoff)) - priority_announce("Thanks for the credits, landlubbers.",sender_override = ship_name) - paid_off = TRUE - return - else - priority_announce("Trying to cheat us? You'll regret this!",sender_override = ship_name) - if(!shuttle_spawned) - spawn_shuttle() - else - priority_announce("Too late to beg for mercy!",sender_override = ship_name) - -/datum/round_event/pirates/start() - if(threat && !threat.answered) - threat.possible_answers = list("Too late") - threat.answered = 1 - if(!paid_off && !shuttle_spawned) - spawn_shuttle() - -/datum/round_event/pirates/proc/spawn_shuttle() - shuttle_spawned = TRUE - - var/list/candidates = pollGhostCandidates("Do you wish to be considered for pirate crew?", ROLE_TRAITOR) - shuffle_inplace(candidates) - - var/datum/map_template/shuttle/pirate/default/template = new - var/datum/overmap/ship/controlled/ship = new(SSovermap.get_unused_overmap_square(), template) - - if(!ship) - CRASH("Loading pirate ship failed!") - - for(var/turf/A in ship.shuttle_port.return_turfs()) - for(var/obj/effect/mob_spawn/human/pirate/spawner in A) - if(candidates.len > 0) - var/mob/M = candidates[1] - spawner.create(M.ckey) - candidates -= M - announce_to_ghosts(M) - else - announce_to_ghosts(spawner) - - priority_announce("Unidentified armed ship detected near the station.") - -/obj/docking_port/mobile/pirate - name = "pirate shuttle" - rechargeTime = 3 MINUTES - -/obj/machinery/suit_storage_unit/pirate - suit_type = /obj/item/clothing/suit/space - helmet_type = /obj/item/clothing/head/helmet/space - mask_type = /obj/item/clothing/mask/breath - storage_type = /obj/item/tank/internals/oxygen - -/obj/machinery/loot_locator - name = "Booty Locator" - desc = "This sophisticated machine scans the nearby space for items of value." - icon = 'icons/obj/machines/research.dmi' - icon_state = "tdoppler" - density = TRUE - var/cooldown = 300 - var/next_use = 0 - -/obj/machinery/loot_locator/interact(mob/user) - if(world.time <= next_use) - to_chat(user,"[src] is recharging.") - return - next_use = world.time + cooldown - var/atom/movable/AM = find_random_loot() - if(!AM) - say("No valuables located. Try again later.") - else - say("Located: [AM.name] at [get_area_name(AM)]") - -/obj/machinery/loot_locator/proc/find_random_loot() - if(!GLOB.exports_list.len) - setupExports() - var/list/possible_loot = list() - for(var/datum/export/pirate/E in GLOB.exports_list) - possible_loot += E - var/datum/export/pirate/P - var/atom/movable/AM - while(!AM && possible_loot.len) - P = pick_n_take(possible_loot) - AM = P.find_loot() - return AM - -//Pad & Pad Terminal -/obj/machinery/piratepad - name = "cargo hold pad" - icon = 'icons/obj/telescience.dmi' - icon_state = "lpad-idle-o" - var/idle_state = "lpad-idle-o" - var/warmup_state = "lpad-idle" - var/sending_state = "lpad-beam" - var/cargo_hold_id - -/obj/machinery/piratepad/multitool_act(mob/living/user, obj/item/multitool/I) - . = ..() - if (istype(I)) - to_chat(user, "You register [src] in [I]s buffer.") - I.buffer = src - return TRUE - -/obj/machinery/computer/piratepad_control - name = "cargo hold control terminal" - icon_screen = "bounty" - var/status_report = "Ready for delivery." - var/obj/machinery/piratepad/pad - var/warmup_time = 100 - var/sending = FALSE - var/points = 0 - var/datum/export_report/total_report - var/sending_timer - var/cargo_hold_id - -/obj/machinery/computer/piratepad_control/Initialize() - ..() - return INITIALIZE_HINT_LATELOAD - -/obj/machinery/computer/piratepad_control/multitool_act(mob/living/user, obj/item/multitool/I) - . = ..() - if (istype(I) && istype(I.buffer,/obj/machinery/piratepad)) - to_chat(user, "You link [src] with [I.buffer] in [I] buffer.") - pad = I.buffer - return TRUE - -/obj/machinery/computer/piratepad_control/LateInitialize() - . = ..() - if(cargo_hold_id) - for(var/obj/machinery/piratepad/P in GLOB.machines) - if(P.cargo_hold_id == cargo_hold_id) - pad = P - return - else - pad = locate() in range(4,src) - -/obj/machinery/computer/piratepad_control/ui_interact(mob/user, datum/tgui/ui) - ui = SStgui.try_update_ui(user, src, ui) - if(!ui) - ui = new(user, src, "CargoHoldTerminal", name) - ui.open() - -/obj/machinery/computer/piratepad_control/ui_data(mob/user) - var/list/data = list() - data["points"] = points - data["pad"] = pad ? TRUE : FALSE - data["sending"] = sending - data["status_report"] = status_report - return data - -/obj/machinery/computer/piratepad_control/ui_act(action, params) - . = ..() - if(.) - return - if(!pad) - return - - switch(action) - if("recalc") - recalc() - . = TRUE - if("send") - start_sending() - . = TRUE - if("stop") - stop_sending() - . = TRUE - -/obj/machinery/computer/piratepad_control/proc/recalc() - if(sending) - return - - status_report = "Predicted value: " - var/value = 0 - var/datum/export_report/ex = new - for(var/atom/movable/AM in get_turf(pad)) - if(AM == pad) - continue - export_item_and_contents(AM, EXPORT_PIRATE | EXPORT_CARGO | EXPORT_CONTRABAND | EXPORT_EMAG, apply_elastic = FALSE, dry_run = TRUE, external_report = ex) - - for(var/datum/export/E in ex.total_amount) - status_report += E.total_printout(ex,notes = FALSE) - status_report += " " - value += ex.total_value[E] - - if(!value) - status_report += "0" - -/obj/machinery/computer/piratepad_control/proc/send() - if(!sending) - return - - var/datum/export_report/ex = new - - for(var/atom/movable/AM in get_turf(pad)) - if(AM == pad) - continue - export_item_and_contents(AM, EXPORT_PIRATE | EXPORT_CARGO | EXPORT_CONTRABAND | EXPORT_EMAG, apply_elastic = FALSE, delete_unsold = FALSE, external_report = ex) - - status_report = "Sold: " - var/value = 0 - for(var/datum/export/E in ex.total_amount) - var/export_text = E.total_printout(ex,notes = FALSE) //Don't want nanotrasen messages, makes no sense here. - if(!export_text) - continue - - status_report += export_text - status_report += " " - value += ex.total_value[E] - - if(!total_report) - total_report = ex - else - total_report.exported_atoms += ex.exported_atoms - for(var/datum/export/E in ex.total_amount) - total_report.total_amount[E] += ex.total_amount[E] - total_report.total_value[E] += ex.total_value[E] - - points += value - - if(!value) - status_report += "Nothing" - - pad.visible_message("[pad] activates!") - flick(pad.sending_state,pad) - pad.icon_state = pad.idle_state - sending = FALSE - -/obj/machinery/computer/piratepad_control/proc/start_sending() - if(sending) - return - sending = TRUE - status_report = "Sending..." - pad.visible_message("[pad] starts charging up.") - pad.icon_state = pad.warmup_state - sending_timer = addtimer(CALLBACK(src,.proc/send),warmup_time, TIMER_STOPPABLE) - -/obj/machinery/computer/piratepad_control/proc/stop_sending() - if(!sending) - return - sending = FALSE - status_report = "Ready for delivery." - pad.icon_state = pad.idle_state - deltimer(sending_timer) - -/datum/export/pirate - export_category = EXPORT_PIRATE - -//Attempts to find the thing on station -/datum/export/pirate/proc/find_loot() - return - -/datum/export/pirate/ransom - cost = 3000 - unit_name = "hostage" - export_types = list(/mob/living/carbon/human) - -/datum/export/pirate/ransom/get_cost(atom/movable/AM) - var/mob/living/carbon/human/H = AM - if(H.stat != CONSCIOUS || !H.mind || !H.mind.assigned_role) //mint condition only - return 0 - else if("pirate" in H.faction) //can't ransom your fellow pirates to CentCom! - return 0 - else - if(H.mind.assigned_role in GLOB.command_positions) - return 3000 - else - return 1000 - -/datum/export/pirate/cash - cost = 1 - unit_name = "bills" - export_types = list(/obj/item/spacecash/bundle) - -/datum/export/pirate/cash/get_amount(obj/O) - var/obj/item/spacecash/bundle/C = O - return ..() * C.value - -/datum/export/pirate/holochip - cost = 1 - unit_name = "holochip" - export_types = list(/obj/item/holochip) - -/datum/export/pirate/holochip/get_cost(atom/movable/AM) - var/obj/item/holochip/H = AM - return H.credits diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm index 45e9551ae25a..ede24c643c43 100644 --- a/code/modules/events/spacevine.dm +++ b/code/modules/events/spacevine.dm @@ -289,7 +289,7 @@ . = ..() add_atom_colour("#ffffff", FIXED_COLOUR_PRIORITY) var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) diff --git a/code/modules/events/wizard/greentext.dm b/code/modules/events/wizard/greentext.dm index 5232f81bb696..890bbc0f1f2b 100644 --- a/code/modules/events/wizard/greentext.dm +++ b/code/modules/events/wizard/greentext.dm @@ -35,7 +35,7 @@ /obj/item/greentext/Initialize(mapload) . = ..() GLOB.poi_list |= src - roundend_callback = CALLBACK(src,.proc/check_winner) + roundend_callback = CALLBACK(src, PROC_REF(check_winner)) SSticker.OnRoundend(roundend_callback) /obj/item/greentext/equipped(mob/living/user as mob) diff --git a/code/modules/fishing/aquarium/aquarium.dm b/code/modules/fishing/aquarium/aquarium.dm index 4bb131f49460..1850d7afee22 100644 --- a/code/modules/fishing/aquarium/aquarium.dm +++ b/code/modules/fishing/aquarium/aquarium.dm @@ -43,7 +43,7 @@ /obj/structure/aquarium/Initialize(mapload) . = ..() update_appearance() - RegisterSignal(src,COMSIG_PARENT_ATTACKBY, .proc/feed_feedback) + RegisterSignal(src,COMSIG_PARENT_ATTACKBY, PROC_REF(feed_feedback)) /obj/structure/aquarium/Entered(atom/movable/arrived, atom/old_loc, list/atom/old_locs) . = ..() diff --git a/code/modules/fishing/fish/_fish.dm b/code/modules/fishing/fish/_fish.dm index 4d65e0cea0f6..48219cf98f2f 100644 --- a/code/modules/fishing/fish/_fish.dm +++ b/code/modules/fishing/fish/_fish.dm @@ -33,7 +33,7 @@ /// What type of reagent this fish needs to be fed. var/food = /datum/reagent/consumable/nutriment /// How often the fish needs to be fed - var/feeding_frequency = 5 MINUTES + var/feeding_frequency = 20 MINUTES /// Time of last feedeing var/last_feeding @@ -103,8 +103,8 @@ . = ..() /* if(fillet_type) AddElement(/datum/element/processable, TOOL_KNIFE, fillet_type, 1, 5) */ - AddComponent(/datum/component/aquarium_content, .proc/get_aquarium_animation, list(COMSIG_FISH_STATUS_CHANGED,COMSIG_FISH_STIRRED)) - RegisterSignal(src, COMSIG_ATOM_TEMPORARY_ANIMATION_START, .proc/on_temp_animation) + AddComponent(/datum/component/aquarium_content, PROC_REF(get_aquarium_animation), list(COMSIG_FISH_STATUS_CHANGED,COMSIG_FISH_STIRRED)) + RegisterSignal(src, COMSIG_ATOM_TEMPORARY_ANIMATION_START, PROC_REF(on_temp_animation)) check_environment_after_movement() if(status != FISH_DEAD) @@ -165,8 +165,8 @@ /obj/item/fish/proc/on_aquarium_insertion(obj/structure/aquarium) if(isnull(last_feeding)) //Fish start fed. last_feeding = world.time - RegisterSignal(aquarium, COMSIG_ATOM_EXITED, .proc/aquarium_exited) - RegisterSignal(aquarium, COMSIG_PARENT_ATTACKBY, .proc/attack_reaction) + RegisterSignal(aquarium, COMSIG_ATOM_EXITED, PROC_REF(aquarium_exited)) + RegisterSignal(aquarium, COMSIG_PARENT_ATTACKBY, PROC_REF(attack_reaction)) /obj/item/fish/proc/aquarium_exited(datum/source, atom/movable/gone, direction) SIGNAL_HANDLER @@ -265,10 +265,10 @@ var/health_change_per_second = 0 if(!proper_environment()) health_change_per_second -= 3 //Dying here - if(world.time - last_feeding >= feeding_frequency) - health_change_per_second -= 0.5 //Starving - else + if(world.time - last_feeding <= feeding_frequency) health_change_per_second += 0.5 //Slowly healing + else + return adjust_health(health + health_change_per_second) /obj/item/fish/proc/adjust_health(amt) @@ -291,6 +291,8 @@ return if(length(aquarium.tracked_fish) >= AQUARIUM_MAX_BREEDING_POPULATION) //so aquariums full of fish don't need to do these expensive checks return + if(world.time - last_feeding >= feeding_frequency) + return var/list/other_fish_of_same_type = list() for(var/obj/item/fish/fish_in_aquarium in aquarium) if(fish_in_aquarium == src || fish_in_aquarium.type != type) @@ -363,7 +365,7 @@ /// Refreshes flopping animation after temporary animation finishes /obj/item/fish/proc/on_temp_animation(datum/source, animation_duration) if(animation_duration > 0) - addtimer(CALLBACK(src, .proc/refresh_flopping), animation_duration) + addtimer(CALLBACK(src, PROC_REF(refresh_flopping)), animation_duration) /obj/item/fish/proc/refresh_flopping() if(flopping) diff --git a/code/modules/fishing/fishing_minigame.dm b/code/modules/fishing/fishing_minigame.dm index ce91cbf03321..18db513aa6ee 100644 --- a/code/modules/fishing/fishing_minigame.dm +++ b/code/modules/fishing/fishing_minigame.dm @@ -77,10 +77,10 @@ /// Create fishing line visuals fishing_line = used_rod.create_fishing_line(lure, target_py = 5) // If fishing line breaks los / rod gets dropped / deleted - RegisterSignal(fishing_line, COMSIG_FISHING_LINE_SNAPPED, .proc/interrupt) + RegisterSignal(fishing_line, COMSIG_FISHING_LINE_SNAPPED, PROC_REF(interrupt)) ADD_TRAIT(user, TRAIT_GONE_FISHING, REF(src)) SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "fishing", /datum/mood_event/fishing) - RegisterSignal(user, COMSIG_MOB_CLICKON, .proc/handle_click) + RegisterSignal(user, COMSIG_MOB_CLICKON, PROC_REF(handle_click)) start_baiting_phase() to_chat(user, span_notice("You start fishing...")) playsound(lure, 'sound/effects/splash.ogg', 100) @@ -137,7 +137,7 @@ animate(pixel_y = -1, time = 1 SECONDS, flags = ANIMATION_RELATIVE) //Setup next phase var/wait_time = rand(1 SECONDS, 30 SECONDS) - next_phase_timer = addtimer(CALLBACK(src, .proc/start_biting_phase), wait_time, TIMER_STOPPABLE) + next_phase_timer = addtimer(CALLBACK(src, PROC_REF(start_biting_phase)), wait_time, TIMER_STOPPABLE) /datum/fishing_challenge/proc/start_biting_phase() phase = BITING_PHASE @@ -148,7 +148,7 @@ animate(pixel_y = -3, time = 5, flags = ANIMATION_RELATIVE) // Setup next phase var/wait_time = rand(3 SECONDS, 6 SECONDS) - next_phase_timer = addtimer(CALLBACK(src, .proc/start_baiting_phase), wait_time, TIMER_STOPPABLE) + next_phase_timer = addtimer(CALLBACK(src, PROC_REF(start_baiting_phase)), wait_time, TIMER_STOPPABLE) /datum/fishing_challenge/proc/start_minigame_phase() phase = MINIGAME_PHASE diff --git a/code/modules/fishing/fishing_rod.dm b/code/modules/fishing/fishing_rod.dm index 1c4c0aa5377f..aa6841f7f355 100644 --- a/code/modules/fishing/fishing_rod.dm +++ b/code/modules/fishing/fishing_rod.dm @@ -88,10 +88,10 @@ var/beam_color = line?.line_color || default_line_color var/datum/beam/fishing_line/fishing_line_beam = new(user, target, icon_state = "fishing_line", beam_color = beam_color, override_target_pixel_y = target_py) fishing_line_beam.lefthand = user.get_held_index_of_item(src) % 2 == 1 - RegisterSignal(fishing_line_beam, COMSIG_BEAM_BEFORE_DRAW, .proc/check_los) - RegisterSignal(fishing_line_beam, COMSIG_PARENT_QDELETING, .proc/clear_line) + RegisterSignal(fishing_line_beam, COMSIG_BEAM_BEFORE_DRAW, PROC_REF(check_los)) + RegisterSignal(fishing_line_beam, COMSIG_PARENT_QDELETING, PROC_REF(clear_line)) fishing_lines += fishing_line_beam - INVOKE_ASYNC(fishing_line_beam, /datum/beam/.proc/Start) + INVOKE_ASYNC(fishing_line_beam, TYPE_PROC_REF(/datum/beam, Start)) user.update_inv_hands() return fishing_line_beam @@ -118,7 +118,7 @@ return currently_hooked_item = target_atom hooked_item_fishing_line = create_fishing_line(target_atom) - RegisterSignal(hooked_item_fishing_line, COMSIG_FISHING_LINE_SNAPPED, .proc/clear_hooked_item) + RegisterSignal(hooked_item_fishing_line, COMSIG_FISHING_LINE_SNAPPED, PROC_REF(clear_hooked_item)) /// Checks what can be hooked /obj/item/fishing_rod/proc/can_be_hooked(atom/movable/target) @@ -411,7 +411,7 @@ /datum/beam/fishing_line/Start() update_offsets(origin.dir) . = ..() - RegisterSignal(origin, COMSIG_ATOM_DIR_CHANGE, .proc/handle_dir_change) + RegisterSignal(origin, COMSIG_ATOM_DIR_CHANGE, PROC_REF(handle_dir_change)) /datum/beam/fishing_line/Destroy() UnregisterSignal(origin, COMSIG_ATOM_DIR_CHANGE) @@ -420,7 +420,7 @@ /datum/beam/fishing_line/proc/handle_dir_change(atom/movable/source, olddir, newdir) SIGNAL_HANDLER update_offsets(newdir) - INVOKE_ASYNC(src, /datum/beam/.proc/redrawing) + INVOKE_ASYNC(src, TYPE_PROC_REF(/datum/beam, redrawing)) /datum/beam/fishing_line/proc/update_offsets(user_dir) switch(user_dir) diff --git a/code/modules/flufftext/Dreaming.dm b/code/modules/flufftext/Dreaming.dm index 3f0ba7f94ff8..ac6fae8bc53f 100644 --- a/code/modules/flufftext/Dreaming.dm +++ b/code/modules/flufftext/Dreaming.dm @@ -64,7 +64,7 @@ dream_fragments.Cut(1,2) to_chat(src, "... [next_message] ...") if(LAZYLEN(dream_fragments)) - dream_timer = addtimer(CALLBACK(src, .proc/dream_sequence, dream_fragments), rand(1, 3) SECONDS, TIMER_STOPPABLE) + dream_timer = addtimer(CALLBACK(src, PROC_REF(dream_sequence), dream_fragments), rand(1, 3) SECONDS, TIMER_STOPPABLE) else stop_dreaming() diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 7c604a15c22b..7bf30e86d498 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -321,7 +321,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( target.client.images |= fakerune target.playsound_local(wall,'sound/effects/meteorimpact.ogg', 150, 1) bubblegum = new(wall, target) - addtimer(CALLBACK(src, .proc/bubble_attack, landing), 10) + addtimer(CALLBACK(src, PROC_REF(bubble_attack), landing), 10) /datum/hallucination/oh_yeah/proc/bubble_attack(turf/landing) var/charged = FALSE //only get hit once @@ -365,10 +365,10 @@ GLOBAL_LIST_INIT(hallucination_list, list( for(var/i in 1 to rand(5, 10)) target.playsound_local(source, 'sound/weapons/laser.ogg', 25, 1) if(prob(50)) - addtimer(CALLBACK(target, /mob/.proc/playsound_local, source, 'sound/weapons/sear.ogg', 25, 1), rand(5,10)) + addtimer(CALLBACK(target, TYPE_PROC_REF(/mob, playsound_local), source, 'sound/weapons/sear.ogg', 25, 1), rand(5,10)) hits++ else - addtimer(CALLBACK(target, /mob/.proc/playsound_local, source, 'sound/weapons/effects/searwall.ogg', 25, 1), rand(5,10)) + addtimer(CALLBACK(target, TYPE_PROC_REF(/mob, playsound_local), source, 'sound/weapons/effects/searwall.ogg', 25, 1), rand(5,10)) sleep(rand(CLICK_CD_RANGE, CLICK_CD_RANGE + 6)) if(hits >= 4 && prob(70)) target.playsound_local(source, get_sfx("bodyfall"), 25, 1) @@ -378,10 +378,10 @@ GLOBAL_LIST_INIT(hallucination_list, list( for(var/i in 1 to rand(5, 10)) target.playsound_local(source, 'sound/weapons/taser2.ogg', 25, 1) if(prob(50)) - addtimer(CALLBACK(target, /mob/.proc/playsound_local, source, 'sound/weapons/tap.ogg', 25, 1), rand(5,10)) + addtimer(CALLBACK(target, TYPE_PROC_REF(/mob, playsound_local), source, 'sound/weapons/tap.ogg', 25, 1), rand(5,10)) hits++ else - addtimer(CALLBACK(target, /mob/.proc/playsound_local, source, 'sound/weapons/effects/searwall.ogg', 25, 1), rand(5,10)) + addtimer(CALLBACK(target, TYPE_PROC_REF(/mob, playsound_local), source, 'sound/weapons/effects/searwall.ogg', 25, 1), rand(5,10)) sleep(rand(CLICK_CD_RANGE, CLICK_CD_RANGE + 6)) if(hits >= 3 && prob(70)) target.playsound_local(source, get_sfx("bodyfall"), 25, 1) @@ -399,10 +399,10 @@ GLOBAL_LIST_INIT(hallucination_list, list( for(var/i in 1 to rand(3, 6)) target.playsound_local(source, 'sound/weapons/gun/shotgun/shot.ogg', 25, TRUE) if(prob(60)) - addtimer(CALLBACK(target, /mob/.proc/playsound_local, source, 'sound/weapons/pierce.ogg', 25, 1), rand(5,10)) + addtimer(CALLBACK(target, TYPE_PROC_REF(/mob, playsound_local), source, 'sound/weapons/pierce.ogg', 25, 1), rand(5,10)) hits++ else - addtimer(CALLBACK(target, /mob/.proc/playsound_local, source, "ricochet", 25, 1), rand(5,10)) + addtimer(CALLBACK(target, TYPE_PROC_REF(/mob, playsound_local), source, "ricochet", 25, 1), rand(5,10)) sleep(rand(CLICK_CD_RANGE, CLICK_CD_RANGE + 6)) if(hits >= 2 && prob(80)) target.playsound_local(source, get_sfx("bodyfall"), 25, 1) @@ -728,7 +728,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( // Display message if (!is_radio && !target.client?.prefs.chat_on_map) var/image/speech_overlay = image('icons/mob/talk.dmi', person, "default0", layer = ABOVE_MOB_LAYER) - INVOKE_ASYNC(GLOBAL_PROC, /proc/flick_overlay, speech_overlay, list(target.client), 30) + INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(flick_overlay), speech_overlay, list(target.client), 30) if (target.client?.prefs.chat_on_map) target.create_chat_message(speaker || person, understood_language, chosen, spans) to_chat(target, message) @@ -1098,7 +1098,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( /obj/effect/hallucination/danger/lava/Initialize(mapload, _target) . = ..() var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) @@ -1119,7 +1119,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( /obj/effect/hallucination/danger/chasm/Initialize(mapload, _target) . = ..() var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) @@ -1136,7 +1136,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( return to_chat(target, "You fall into the chasm!") target.Paralyze(40) - addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, target, "It's surprisingly shallow."), 15) + addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(to_chat), target, "It's surprisingly shallow."), 15) QDEL_IN(src, 30) /obj/effect/hallucination/danger/anomaly @@ -1146,7 +1146,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( . = ..() START_PROCESSING(SSobj, src) var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) @@ -1263,13 +1263,13 @@ GLOBAL_LIST_INIT(hallucination_list, list( if(target.client) target.client.images |= shock_image target.client.images |= electrocution_skeleton_anim - addtimer(CALLBACK(src, .proc/reset_shock_animation), 40) + addtimer(CALLBACK(src, PROC_REF(reset_shock_animation)), 40) target.playsound_local(get_turf(src), "sparks", 100, 1) target.staminaloss += 50 target.Stun(40) target.jitteriness += 1000 target.do_jitter_animation(target.jitteriness) - addtimer(CALLBACK(src, .proc/shock_drop), 20) + addtimer(CALLBACK(src, PROC_REF(shock_drop)), 20) /datum/hallucination/shock/proc/reset_shock_animation() if(target.client) diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm index 8db4c2846dcb..cd372392b927 100644 --- a/code/modules/food_and_drinks/drinks/drinks.dm +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -79,7 +79,7 @@ if(iscyborg(user)) //Cyborg modules that include drinks automatically refill themselves, but drain the borg's cell var/mob/living/silicon/robot/bro = user bro.cell.use(30) - addtimer(CALLBACK(reagents, /datum/reagents.proc/add_reagent, refill, trans), 600) + addtimer(CALLBACK(reagents, TYPE_PROC_REF(/datum/reagents, add_reagent), refill, trans), 600) else if(target.is_drainable()) //A dispenser. Transfer FROM it TO us. if (!is_refillable()) diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm index 77de6fddcad7..b4d8cf8090c9 100644 --- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm +++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm @@ -179,13 +179,13 @@ /obj/item/reagent_containers/food/drinks/bottle/vodka name = "Tunguska triple distilled" - desc = "Aah, vodka. Prime choice of drink AND fuel by Russians worldwide." + desc = "Vodka, prime choice of drink and fuel." icon_state = "vodkabottle" list_reagents = list(/datum/reagent/consumable/ethanol/vodka = 100) /obj/item/reagent_containers/food/drinks/bottle/vodka/badminka name = "Badminka vodka" - desc = "The label's written in Cyrillic. All you can make out is the name and a word that looks vaguely like 'Vodka'." + desc = "The label's written in some unknown language. All you can make out is the name and a word that looks vaguely like 'Vodka'." icon_state = "badminka" list_reagents = list(/datum/reagent/consumable/ethanol/vodka = 100) @@ -532,7 +532,7 @@ to_chat(user, "You light [src] on fire.") add_overlay(custom_fire_overlay ? custom_fire_overlay : GLOB.fire_overlay) if(!isGlass) - addtimer(CALLBACK(src, .proc/explode), 5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(explode)), 5 SECONDS) /obj/item/reagent_containers/food/drinks/bottle/molotov/proc/explode() if(!active) @@ -567,7 +567,7 @@ /obj/item/reagent_containers/food/drinks/bottle/pruno/Initialize() . = ..() - RegisterSignal(src, COMSIG_MOVABLE_MOVED, .proc/check_fermentation) + RegisterSignal(src, COMSIG_MOVABLE_MOVED, PROC_REF(check_fermentation)) /obj/item/reagent_containers/food/drinks/bottle/pruno/Destroy() UnregisterSignal(src, COMSIG_MOVABLE_MOVED) @@ -587,7 +587,7 @@ return if(!fermentation_time_remaining) fermentation_time_remaining = fermentation_time - fermentation_timer = addtimer(CALLBACK(src, .proc/do_fermentation), fermentation_time_remaining, TIMER_UNIQUE|TIMER_STOPPABLE) + fermentation_timer = addtimer(CALLBACK(src, PROC_REF(do_fermentation)), fermentation_time_remaining, TIMER_UNIQUE|TIMER_STOPPABLE) fermentation_time_remaining = null // actually ferment diff --git a/code/modules/food_and_drinks/drinks/drinks/breakawayflask.dm b/code/modules/food_and_drinks/drinks/drinks/breakawayflask.dm new file mode 100644 index 000000000000..e4e839468ed3 --- /dev/null +++ b/code/modules/food_and_drinks/drinks/drinks/breakawayflask.dm @@ -0,0 +1,84 @@ +/obj/item/reagent_containers/food/drinks/breakawayflask + name = "breakaway flask" + desc = "A special flask designed to stabilize trick wines and shatter violently on contact." + icon_state = "breakawayflask" + item_state = "breakawayflask" + w_class = WEIGHT_CLASS_SMALL + gulp_size = 25 + amount_per_transfer_from_this = 25 + volume = 50 + throwforce = 10 + custom_materials = list(/datum/material/glass=2500, /datum/material/plasma=500) + max_integrity = 20 + spillable = TRUE + resistance_flags = ACID_PROOF + obj_flags = UNIQUE_RENAME + drop_sound = 'sound/items/handling/drinkglass_drop.ogg' + pickup_sound = 'sound/items/handling/drinkglass_pickup.ogg' + custom_price = 25 + can_have_cap = TRUE + cap_icon_state = "baflask_cap" + cap_on = TRUE + var/vintage = FALSE + +/obj/item/reagent_containers/food/drinks/breakawayflask/on_reagent_change(changetype) + cut_overlays() + + gulp_size = max(round(reagents.total_volume / 25), 25) + var/datum/reagent/largest_reagent = reagents.get_master_reagent() + if (reagents.reagent_list.len > 0) + if(!renamedByPlayer && vintage == FALSE) + name = largest_reagent.glass_name + desc = largest_reagent.glass_desc + if(largest_reagent.breakaway_flask_icon_state) + icon_state = largest_reagent.breakaway_flask_icon_state + else + var/mutable_appearance/baflask_overlay = mutable_appearance(icon, "baflaskoverlay") + icon_state = "baflaskclear" + baflask_overlay.color = mix_color_from_reagents(reagents.reagent_list) + add_overlay(baflask_overlay) + + else + icon_state = "breakawayflask" + name = "breakaway flask" + desc = "A special flask designed to stabilize trick wines and shatter violently on contact." + return + +/obj/item/reagent_containers/food/drinks/breakawayflask/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) + spillable = TRUE + . = ..() + +/obj/item/reagent_containers/food/drinks/breakawayflask/vintage + name = "Vintange Saint-Roumain Trickwine" + desc = "Supposedly one of the first bottles made" + vintage = TRUE + +/obj/item/reagent_containers/food/drinks/breakawayflask/vintage/ashwine + name = "Vintange Saint-Roumain Ashwine" + list_reagents = list(/datum/reagent/consumable/ethanol/trickwine/ash_wine = 45, /datum/reagent/consumable/ethanol/absinthe = 5) + desc = "Ashwine was originally created using herbs native to Illestren, as a means of relaxing after a long hunt. The Saint-Roumain Militia has no prohibition on a little fun." + +/obj/item/reagent_containers/food/drinks/breakawayflask/vintage/icewine + name = "Vintange Saint-Roumain Icewine" + list_reagents = list(/datum/reagent/consumable/ethanol/trickwine/ice_wine = 45, /datum/reagent/consumable/ethanol/sake = 5) + desc = "Icewine, inspired by the frigid slopes of the 'Godforsaken Precipice' that forged the group's reputation as valiant survivalists, was engineered to both soothe overheated Hunters and freeze their foes in their tracks." + +/obj/item/reagent_containers/food/drinks/breakawayflask/vintage/shockwine + name = "Vintange Saint-Roumain Shockwine" + list_reagents = list(/datum/reagent/consumable/ethanol/trickwine/shock_wine = 45, /datum/reagent/consumable/ethanol/vodka = 5) + desc = "Shockwine, made to invigorate consumers and incapacitate targets, took inspiration from an incident early in the Saint-Roumain Militia's history, when a young Shadow stopped a rampaging beast by plunging an electrical cable that had been dislodged in the fighting into its side." + +/obj/item/reagent_containers/food/drinks/breakawayflask/vintage/hearthwine + name = "Vintange Saint-Roumain Hearthwine" + list_reagents = list(/datum/reagent/consumable/ethanol/trickwine/hearth_wine = 45, /datum/reagent/consumable/ethanol/hcider = 5) + desc = "Hearthwine is one of the most important tonics devised by the SRM – both for its potent abilities in staunching wounds or setting enemies aflame, and for its closeness to the divine fire associated with the Ashen Huntsman." + +/obj/item/reagent_containers/food/drinks/breakawayflask/vintage/forcewine + name = "Vintange Saint-Roumain Forcewine" + list_reagents = list(/datum/reagent/consumable/ethanol/trickwine/force_wine = 45, /datum/reagent/consumable/ethanol/tequila = 5) + desc = "Forcewine was originally created as a means to create temporary shelters during long tracking expeditions. While the structures proved to be not as versatile in shape as its brewers had hoped, its utility in creating barricades or heming in hostiles was still greatly appreciated." + +/obj/item/reagent_containers/food/drinks/breakawayflask/vintage/prismwine + name = "Vintange Saint-Roumain Prismwine" + list_reagents = list(/datum/reagent/consumable/ethanol/trickwine/prism_wine = 45, /datum/reagent/consumable/ethanol/gin = 5) + desc = "Prismwine is one of the most recent additions to the Saint-Roumain Militia's reserve of trickwines. It was purpose-created for fighting hostiles that utilized more advanced energy projection attacks, such as the cryonic beams of watchers or the laser guns of interstellar pirates." diff --git a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm index 4ca34b224689..1d7adb7db4f2 100644 --- a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm +++ b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm @@ -88,63 +88,6 @@ if(ishumanbasic(user)) . += "You feel like this might be in poor taste." -//Breakaway Flasks! - -/obj/item/reagent_containers/food/drinks/drinkingglass/breakawayflask - name = "breakaway flask" - desc = "A special flask designed to stabilize trick wines and shatter violently on contact" - icon_state = "breakawayflask" - gulp_size = 25 - amount_per_transfer_from_this = 25 - volume = 50 - throwforce = 20 - custom_materials = list(/datum/material/glass=2500, /datum/material/plasma=500) - max_integrity = 20 - spillable = TRUE - resistance_flags = ACID_PROOF - obj_flags = UNIQUE_RENAME - drop_sound = 'sound/items/handling/drinkglass_drop.ogg' - pickup_sound = 'sound/items/handling/drinkglass_pickup.ogg' - custom_price = 25 - -/obj/item/reagent_containers/food/drinks/drinkingglass/breakawayflask/on_reagent_change(changetype) - cut_overlays() - - gulp_size = max(round(reagents.total_volume / 25), 25) - var/datum/reagent/largest_reagent = reagents.get_master_reagent() - if (reagents.reagent_list.len > 0) - if(!renamedByPlayer) - name = largest_reagent.glass_name - desc = largest_reagent.glass_desc - if(largest_reagent.breakaway_flask_icon_state) - icon_state = largest_reagent.breakaway_flask_icon_state - else - var/mutable_appearance/baflask_overlay = mutable_appearance(icon, "baflaskoverlay") - icon_state = "baflaskclear" - baflask_overlay.color = mix_color_from_reagents(reagents.reagent_list) - add_overlay(baflask_overlay) - - else - icon_state = "breakawayflask" - name = initial(src.name) - desc = initial(src.desc) - return - -/obj/item/reagent_containers/food/drinks/drinkingglass/breakawayflask/vintageash - name = "Vintange Saint-Roumain Ashwine" - desc = "Supposedly one of the first bottles of ashwine made" - list_reagents = list(/datum/reagent/consumable/ethanol/ash_wine = 45, /datum/reagent/uranium = 5) - -/obj/item/reagent_containers/food/drinks/drinkingglass/breakawayflask/vintageice - name = "Vintange Saint-Roumain Icewine" - desc = "Supposedly one of the first bottles of icewine made" - list_reagents = list(/datum/reagent/consumable/ethanol/ice_wine = 45, /datum/reagent/uranium = 5) - -/obj/item/reagent_containers/food/drinks/drinkingglass/breakawayflask/vintageshock - name = "Vintange Saint-Roumain Shockwine" - desc = "Supposedly one of the first bottles of shockwine made" - list_reagents = list(/datum/reagent/consumable/ethanol/shock_wine = 45, /datum/reagent/uranium = 5) - /obj/item/reagent_containers/food/drinks/drinkingglass/filled/Initialize() . = ..() on_reagent_change(ADD_REAGENT) diff --git a/code/modules/food_and_drinks/food/snacks_other.dm b/code/modules/food_and_drinks/food/snacks_other.dm index 66c3c87a82da..3d5adf18e6fd 100644 --- a/code/modules/food_and_drinks/food/snacks_other.dm +++ b/code/modules/food_and_drinks/food/snacks_other.dm @@ -506,7 +506,7 @@ /obj/item/reagent_containers/food/snacks/chewable/lollipop/cyborg/Initialize() . = ..() - addtimer(CALLBACK(src, .proc/spamcheck), 1200) + addtimer(CALLBACK(src, PROC_REF(spamcheck)), 1200) /obj/item/reagent_containers/food/snacks/chewable/lollipop/cyborg/equipped(mob/living/user, slot) . = ..(user, slot) @@ -584,7 +584,7 @@ /obj/item/reagent_containers/food/snacks/gumball/cyborg/Initialize() . = ..() - addtimer(CALLBACK(src, .proc/spamcheck), 1200) + addtimer(CALLBACK(src, PROC_REF(spamcheck)), 1200) /obj/item/reagent_containers/food/snacks/gumball/cyborg/equipped(mob/living/user, slot) . = ..(user, slot) diff --git a/code/modules/food_and_drinks/kitchen_machinery/big_mortar.dm b/code/modules/food_and_drinks/kitchen_machinery/big_mortar.dm index 2dbbb4f5cc86..3024c188facf 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/big_mortar.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/big_mortar.dm @@ -113,6 +113,7 @@ juice_target_item(target_item, user) else grind_target_item(target_item, user) + target_item = null if("Grind") for(var/obj/item/target_item as anything in contents) @@ -120,6 +121,7 @@ grind_target_item(target_item, user) else juice_target_item(target_item, user) + target_item = null return if(!attacking_item.juice_results && !attacking_item.grind_results) diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm index 3a7c7245955c..ca8900c1dda3 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm @@ -200,7 +200,7 @@ mob_occupant.death(1) mob_occupant.ghostize() qdel(src.occupant) - addtimer(CALLBACK(src, .proc/make_meat, skin, allmeat, meat_produced, gibtype, diseases), gibtime) + addtimer(CALLBACK(src, PROC_REF(make_meat), skin, allmeat, meat_produced, gibtype, diseases), gibtime) /obj/machinery/gibber/proc/make_meat(obj/item/stack/sheet/animalhide/skin, list/obj/item/reagent_containers/food/snacks/meat/slab/allmeat, meat_produced, gibtype, list/datum/disease/diseases) playsound(src.loc, 'sound/effects/splat.ogg', 50, TRUE) diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm index 5736d187fc78..13a35b579679 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm @@ -309,7 +309,7 @@ return time-- use_power(500) - addtimer(CALLBACK(src, .proc/loop, type, time, wait), wait) + addtimer(CALLBACK(src, PROC_REF(loop), type, time, wait), wait) /obj/machinery/microwave/proc/loop_finish() operating = FALSE @@ -382,7 +382,7 @@ tocook = target RegisterSignal(tocook, COMSIG_PARENT_QDELETING, PROC_REF(clear_cooking)) target.add_overlay(ration_overlay) - addtimer(CALLBACK(src, .proc/cook), 100) + addtimer(CALLBACK(src, PROC_REF(cook)), 100) target.visible_message("\The [target] rapidly begins cooking...") playsound(src, 'sound/items/cig_light.ogg', 50, 1) moveToNullspace() diff --git a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm index 0566a655dc3e..005ffa7632ba 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm @@ -82,7 +82,7 @@ GLOBAL_LIST_EMPTY(monkey_recyclers) use_power(500) stored_matter += cube_production addtimer(VARSET_CALLBACK(src, pixel_x, base_pixel_x)) - addtimer(CALLBACK(GLOBAL_PROC, /proc/to_chat, user, "The machine now has [stored_matter] monkey\s worth of material stored.")) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), user, "The machine now has [stored_matter] monkey\s worth of material stored.")) /obj/machinery/monkey_recycler/interact(mob/user) if(stored_matter >= 1) diff --git a/code/modules/food_and_drinks/recipes/drinks_recipes.dm b/code/modules/food_and_drinks/recipes/drinks_recipes.dm index 2625b25233e5..3d759bce3fd2 100644 --- a/code/modules/food_and_drinks/recipes/drinks_recipes.dm +++ b/code/modules/food_and_drinks/recipes/drinks_recipes.dm @@ -634,19 +634,37 @@ mix_sound = 'sound/effects/clockcult_gateway_closing.ogg' /datum/chemical_reaction/ash_wine - results = list(/datum/reagent/consumable/ethanol/ash_wine = 5) + results = list(/datum/reagent/consumable/ethanol/trickwine/ash_wine = 5) required_reagents = list(/datum/reagent/consumable/ethanol/absinthe = 3, /datum/reagent/ash = 1, /datum/reagent/drug/mushroomhallucinogen = 1) - required_container = /obj/item/reagent_containers/food/drinks/drinkingglass/breakawayflask + required_container = /obj/structure/fermenting_barrel/distiller mix_sound ='sound/weather/ashstorm/inside/weak_end.ogg' /datum/chemical_reaction/ice_wine - results = list(/datum/reagent/consumable/ethanol/ice_wine = 5) + results = list(/datum/reagent/consumable/ethanol/trickwine/ice_wine = 5) required_reagents = list(/datum/reagent/consumable/ethanol/sake = 3, /datum/reagent/polar_bear_fur = 1, /datum/reagent/consumable/frostoil = 1) - required_container = /obj/item/reagent_containers/food/drinks/drinkingglass/breakawayflask + required_container = /obj/structure/fermenting_barrel/distiller mix_sound ='sound/effects/glassbr3.ogg' /datum/chemical_reaction/shock_wine - results = list(/datum/reagent/consumable/ethanol/shock_wine = 5) + results = list(/datum/reagent/consumable/ethanol/trickwine/shock_wine = 5) required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 3, /datum/reagent/calcium = 1, /datum/reagent/consumable/lemonjuice = 1) - required_container = /obj/item/reagent_containers/food/drinks/drinkingglass/breakawayflask + required_container = /obj/structure/fermenting_barrel/distiller mix_sound ='sound/machines/defib_zap.ogg' + +/datum/chemical_reaction/hearth_wine + results = list(/datum/reagent/consumable/ethanol/trickwine/hearth_wine = 5) + required_reagents = list(/datum/reagent/consumable/ethanol/hcider = 3, /datum/reagent/consumable/pyre_elementum = 1, /datum/reagent/fuel = 1) + required_container = /obj/structure/fermenting_barrel/distiller + mix_sound ='sound/items/welder.ogg' + +/datum/chemical_reaction/force_wine + results = list(/datum/reagent/consumable/ethanol/trickwine/force_wine = 5) + required_reagents = list(/datum/reagent/consumable/ethanol/tequila = 3, /datum/reagent/calcium = 1, /datum/reagent/consumable/spacemountainwind = 1) + required_container = /obj/structure/fermenting_barrel/distiller + mix_sound ='sound/magic/forcewall.ogg' + +/datum/chemical_reaction/prism_wine + results = list(/datum/reagent/consumable/ethanol/trickwine/prism_wine = 5) + required_reagents = list(/datum/reagent/consumable/ethanol/gin = 3, /datum/reagent/toxin/plasma = 1, /datum/reagent/consumable/tinlux = 1) + required_container = /obj/structure/fermenting_barrel/distiller + mix_sound ='sound/weapons/laser.ogg' diff --git a/code/modules/holiday/halloween.dm b/code/modules/holiday/halloween.dm index af1a89a1a38a..e95bdb2063a8 100644 --- a/code/modules/holiday/halloween.dm +++ b/code/modules/holiday/halloween.dm @@ -205,7 +205,7 @@ ///Adds a timer to call stalk() on Aggro /mob/living/simple_animal/hostile/clown_insane/Aggro() . = ..() - timer = addtimer(CALLBACK(src, .proc/stalk), 30, TIMER_STOPPABLE|TIMER_UNIQUE) + timer = addtimer(CALLBACK(src, PROC_REF(stalk)), 30, TIMER_STOPPABLE|TIMER_UNIQUE) /mob/living/simple_animal/hostile/clown_insane/LoseAggro() . = ..() @@ -224,8 +224,8 @@ qdel(src) return playsound(M, pick('sound/spookoween/scary_horn.ogg','sound/spookoween/scary_horn2.ogg', 'sound/spookoween/scary_horn3.ogg'), 100, TRUE) - timer = addtimer(CALLBACK(src, .proc/stalk), 30, TIMER_STOPPABLE|TIMER_UNIQUE) - addtimer(CALLBACK(src, .proc/teleport_to_target), 12, TIMER_STOPPABLE|TIMER_UNIQUE) + timer = addtimer(CALLBACK(src, PROC_REF(stalk)), 30, TIMER_STOPPABLE|TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(teleport_to_target)), 12, TIMER_STOPPABLE|TIMER_UNIQUE) ///Does what's in the name. Teleports to target.loc. Called from a timer. /mob/living/simple_animal/hostile/clown_insane/proc/teleport_to_target() diff --git a/code/modules/holiday/holidays.dm b/code/modules/holiday/holidays.dm index e962dbb520a1..ae19b1dea376 100644 --- a/code/modules/holiday/holidays.dm +++ b/code/modules/holiday/holidays.dm @@ -528,7 +528,7 @@ return "Have a merry Christmas!" /datum/holiday/xmas/celebrate() - SSticker.OnRoundstart(CALLBACK(src, .proc/roundstart_celebrate)) + SSticker.OnRoundstart(CALLBACK(src, PROC_REF(roundstart_celebrate))) GLOB.maintenance_loot += list( /obj/item/toy/xmas_cracker = 3, /obj/item/clothing/head/santa = 1, diff --git a/code/modules/holodeck/computer.dm b/code/modules/holodeck/computer.dm index ea07e2f70b27..e6a1c90ede6e 100644 --- a/code/modules/holodeck/computer.dm +++ b/code/modules/holodeck/computer.dm @@ -183,7 +183,7 @@ and clear when youre done! if you dont i will use :newspaper2: on you var/turf/possible_blacklist = _turf if (possible_blacklist.holodeck_compatible) continue - input_blacklist += possible_blacklist + input_blacklist[possible_blacklist] = TRUE ///loads the template whose id string it was given ("offline_program" loads datum/map_template/holodeck/offline) /obj/machinery/computer/holodeck/proc/load_program(map_id, force = FALSE, add_delay = TRUE) @@ -248,7 +248,7 @@ and clear when youre done! if you dont i will use :newspaper2: on you continue atoms.flags_1 |= HOLOGRAM_1 - RegisterSignal(atoms, COMSIG_PARENT_PREQDELETED, .proc/remove_from_holo_lists) + RegisterSignal(atoms, COMSIG_PARENT_PREQDELETED, PROC_REF(remove_from_holo_lists)) if (isholoeffect(atoms))//activates holo effects and transfers them from the spawned list into the effects list var/obj/effect/holodeck_effect/holo_effect = atoms @@ -333,7 +333,7 @@ and clear when youre done! if you dont i will use :newspaper2: on you if(toggleOn) if(last_program && (last_program != offline_program)) - addtimer(CALLBACK(src,.proc/load_program, last_program, TRUE), 25) + addtimer(CALLBACK(src, PROC_REF(load_program), last_program, TRUE), 25) active = TRUE else last_program = program @@ -342,7 +342,7 @@ and clear when youre done! if you dont i will use :newspaper2: on you /obj/machinery/computer/holodeck/power_change() . = ..() - INVOKE_ASYNC(src, .proc/toggle_power, !machine_stat) + INVOKE_ASYNC(src, PROC_REF(toggle_power), !machine_stat) ///shuts down the holodeck and force loads the offline_program /obj/machinery/computer/holodeck/proc/emergency_shutdown() diff --git a/code/modules/holodeck/holo_effect.dm b/code/modules/holodeck/holo_effect.dm index 9c69b8e89812..122c852fbc9a 100644 --- a/code/modules/holodeck/holo_effect.dm +++ b/code/modules/holodeck/holo_effect.dm @@ -34,7 +34,7 @@ deck = new(loc) safety(!(HC.obj_flags & EMAGGED)) deck.holo = HC - RegisterSignal(deck, COMSIG_PARENT_QDELETING, .proc/handle_card_delete) + RegisterSignal(deck, COMSIG_PARENT_QDELETING, PROC_REF(handle_card_delete)) return deck /obj/effect/holodeck_effect/cards/proc/handle_card_delete(datum/source) @@ -84,7 +84,7 @@ // these vars are not really standardized but all would theoretically create stuff on death for(var/v in list("butcher_results","corpse","weapon1","weapon2","blood_volume") & our_mob.vars) our_mob.vars[v] = null - RegisterSignal(our_mob, COMSIG_PARENT_QDELETING, .proc/handle_mob_delete) + RegisterSignal(our_mob, COMSIG_PARENT_QDELETING, PROC_REF(handle_mob_delete)) return our_mob /obj/effect/holodeck_effect/mobspawner/deactivate(obj/machinery/computer/holodeck/HC) diff --git a/code/modules/holodeck/turfs.dm b/code/modules/holodeck/turfs.dm index 26ea485474aa..b69c05e34653 100644 --- a/code/modules/holodeck/turfs.dm +++ b/code/modules/holodeck/turfs.dm @@ -147,7 +147,7 @@ /turf/open/floor/holofloor/carpet/Initialize(mapload, inherited_virtual_z) . = ..() - addtimer(CALLBACK(src, /atom/.proc/update_icon), 1) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_icon)), 1) /turf/open/floor/holofloor/carpet/update_icon() . = ..() diff --git a/code/modules/hydroponics/fermenting_barrel.dm b/code/modules/hydroponics/fermenting_barrel.dm index 4c9eb274dcb0..30e94845e593 100644 --- a/code/modules/hydroponics/fermenting_barrel.dm +++ b/code/modules/hydroponics/fermenting_barrel.dm @@ -48,7 +48,7 @@ to_chat(user, "[I] is stuck to your hand!") return TRUE to_chat(user, "You place [I] into [src] to start the fermentation process.") - addtimer(CALLBACK(src, .proc/makeWine, fruit), rand(80, 120) * speed_multiplier) + addtimer(CALLBACK(src, PROC_REF(makeWine), fruit), rand(80, 120) * speed_multiplier) return TRUE if(I) if(I.is_refillable()) @@ -75,9 +75,14 @@ icon_state = "barrel" return ..() -/datum/crafting_recipe/fermenting_barrel - name = "Wooden Barrel" - result = /obj/structure/fermenting_barrel - reqs = list(/obj/item/stack/sheet/mineral/wood = 8) - time = 50 - category = CAT_PRIMAL +/obj/structure/fermenting_barrel/distiller + name = "Distiller" + icon_state = "distiller" + desc = "A repurposed barrel and keg host to a special culture of bacteria native to Illestren" + +/obj/structure/fermenting_barrel/distiller/update_icon_state() + if(open) + icon_state = "distiller_open" + else + icon_state = "distiller" + return ..() diff --git a/code/modules/hydroponics/grown/citrus.dm b/code/modules/hydroponics/grown/citrus.dm index 75e9b3fbfcdc..ec05b821371a 100644 --- a/code/modules/hydroponics/grown/citrus.dm +++ b/code/modules/hydroponics/grown/citrus.dm @@ -126,7 +126,7 @@ log_bomber(user, "primed a", src, "for detonation") icon_state = "firelemon_active" playsound(loc, 'sound/weapons/armbomb.ogg', 75, TRUE, -3) - addtimer(CALLBACK(src, .proc/prime), rand(10, 60)) + addtimer(CALLBACK(src, PROC_REF(prime)), rand(10, 60)) /obj/item/reagent_containers/food/snacks/grown/firelemon/burn() prime() diff --git a/code/modules/hydroponics/grown/melon.dm b/code/modules/hydroponics/grown/melon.dm index 627a13354078..1378fb0253fc 100644 --- a/code/modules/hydroponics/grown/melon.dm +++ b/code/modules/hydroponics/grown/melon.dm @@ -58,7 +58,7 @@ var/uses = 1 if(seed) uses = round(seed.potency / 20) - AddComponent(/datum/component/anti_magic, TRUE, TRUE, FALSE, ITEM_SLOT_HANDS, uses, TRUE, CALLBACK(src, .proc/block_magic), CALLBACK(src, .proc/expire)) //deliver us from evil o melon god + AddComponent(/datum/component/anti_magic, TRUE, TRUE, FALSE, ITEM_SLOT_HANDS, uses, TRUE, CALLBACK(src, PROC_REF(block_magic)), CALLBACK(src, PROC_REF(expire))) //deliver us from evil o melon god /obj/item/reagent_containers/food/snacks/grown/holymelon/proc/block_magic(mob/user, major) if(major) diff --git a/code/modules/hydroponics/grown/tomato.dm b/code/modules/hydroponics/grown/tomato.dm index 0ec5046e659c..6c44d2ad3788 100644 --- a/code/modules/hydroponics/grown/tomato.dm +++ b/code/modules/hydroponics/grown/tomato.dm @@ -137,7 +137,7 @@ return to_chat(user, "You begin to awaken the Killer Tomato...") awakening = TRUE - addtimer(CALLBACK(src, .proc/awaken), 3 SECONDS) + addtimer(CALLBACK(src, PROC_REF(awaken)), 3 SECONDS) log_game("[key_name(user)] awakened a killer tomato at [AREACOORD(user)].") /obj/item/reagent_containers/food/snacks/grown/tomato/killer/proc/awaken() diff --git a/code/modules/hydroponics/grown/towercap.dm b/code/modules/hydroponics/grown/towercap.dm index b786c854dba6..e9be7685e152 100644 --- a/code/modules/hydroponics/grown/towercap.dm +++ b/code/modules/hydroponics/grown/towercap.dm @@ -171,7 +171,7 @@ /obj/structure/bonfire/Initialize() . = ..() var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index b38eeac048cb..74d004849a2a 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -85,7 +85,7 @@ /obj/item/cultivator/rake/Initialize() . = ..() var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index fee6a3857d67..7063207255f5 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -35,7 +35,7 @@ // Here lies irrigation. You won't be missed, because you were never used. /obj/machinery/hydroponics/Initialize() - RegisterSignal(src, COMSIG_ATOM_EXITED, .proc/on_exited) + RegisterSignal(src, COMSIG_ATOM_EXITED, PROC_REF(on_exited)) //Here lies "nutrilevel", killed by ArcaneMusic 20??-2019. Finally, we strive for a better future. Please use "reagents" instead create_reagents(20) reagents.add_reagent(/datum/reagent/plantnutriment/eznutriment, 10) //Half filled nutrient trays for dirt trays to have more to grow with in prison/lavaland. @@ -48,7 +48,7 @@ /obj/machinery/hydroponics/constructable/ComponentInitialize() . = ..() - AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS, null, CALLBACK(src, .proc/can_be_rotated)) + AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS, null, CALLBACK(src, PROC_REF(can_be_rotated))) AddComponent(/datum/component/plumbing/simple_demand) /obj/machinery/hydroponics/constructable/proc/can_be_rotated(mob/user, rotation_type) diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm index bc18ce87377b..a57934dc551d 100644 --- a/code/modules/hydroponics/plant_genes.dm +++ b/code/modules/hydroponics/plant_genes.dm @@ -241,7 +241,7 @@ if(!istype(G, /obj/item/grown/bananapeel) && (!G.reagents || !G.reagents.has_reagent(/datum/reagent/lube))) stun_len /= 3 - G.AddComponent(/datum/component/slippery, min(stun_len,140), NONE, CALLBACK(src, .proc/handle_slip, G)) + G.AddComponent(/datum/component/slippery, min(stun_len,140), NONE, CALLBACK(src, PROC_REF(handle_slip), G)) /datum/plant_gene/trait/slip/proc/handle_slip(obj/item/reagent_containers/food/snacks/grown/G, mob/M) for(var/datum/plant_gene/trait/T in G.seed.genes) diff --git a/code/modules/instruments/items.dm b/code/modules/instruments/items.dm index 146d8e32d7e2..149f78437fa4 100644 --- a/code/modules/instruments/items.dm +++ b/code/modules/instruments/items.dm @@ -85,8 +85,8 @@ /obj/item/instrument/piano_synth/headphones/ComponentInitialize() . = ..() AddElement(/datum/element/update_icon_updates_onmob) - RegisterSignal(src, COMSIG_SONG_START, .proc/start_playing) - RegisterSignal(src, COMSIG_SONG_END, .proc/stop_playing) + RegisterSignal(src, COMSIG_SONG_START, PROC_REF(start_playing)) + RegisterSignal(src, COMSIG_SONG_END, PROC_REF(stop_playing)) /** * Called by a component signal when our song starts playing. @@ -249,7 +249,7 @@ /obj/item/instrument/harmonica/equipped(mob/M, slot) . = ..() - RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(M, COMSIG_MOB_SAY, PROC_REF(handle_speech)) /obj/item/instrument/harmonica/dropped(mob/M) . = ..() diff --git a/code/modules/instruments/songs/editor.dm b/code/modules/instruments/songs/editor.dm index f672c0ecac61..ba411709edfc 100644 --- a/code/modules/instruments/songs/editor.dm +++ b/code/modules/instruments/songs/editor.dm @@ -160,7 +160,7 @@ tempo = sanitize_tempo(tempo + text2num(href_list["tempo"])) else if(href_list["play"]) - INVOKE_ASYNC(src, .proc/start_playing, usr) + INVOKE_ASYNC(src, PROC_REF(start_playing), usr) else if(href_list["newline"]) var/newline = html_encode(input("Enter your line: ", parent.name) as text|null) diff --git a/code/modules/interview/interview.dm b/code/modules/interview/interview.dm index 452ce2a9b5f5..c1ed4dcd87ec 100644 --- a/code/modules/interview/interview.dm +++ b/code/modules/interview/interview.dm @@ -65,7 +65,7 @@ SEND_SOUND(owner, sound('sound/effects/adminhelp.ogg')) to_chat(owner, "-- Interview Update --" \ + "\nYour interview was approved, you will now be reconnected in 5 seconds.", confidential = TRUE) - addtimer(CALLBACK(src, .proc/reconnect_owner), 50) + addtimer(CALLBACK(src, PROC_REF(reconnect_owner)), 50) /** * Denies the interview and adds the owner to the cooldown for new interviews. @@ -80,7 +80,7 @@ GLOB.interviews.cooldown_ckeys |= owner_ckey log_admin_private("[key_name(denied_by)] has denied interview #[id] for [owner_ckey][!owner ? "(DC)": ""].") message_admins("[key_name(denied_by)] has denied interview #[id] for [owner_ckey][!owner ? "(DC)": ""].") - addtimer(CALLBACK(GLOB.interviews, /datum/interview_manager.proc/release_from_cooldown, owner_ckey), 180) + addtimer(CALLBACK(GLOB.interviews, TYPE_PROC_REF(/datum/interview_manager, release_from_cooldown), owner_ckey), 180) if (owner) SEND_SOUND(owner, sound('sound/effects/adminhelp.ogg')) to_chat(owner, "-- Interview Update --" \ diff --git a/code/modules/jobs/job_exp.dm b/code/modules/jobs/job_exp.dm index 5f04f8c31000..159c1e1df6aa 100644 --- a/code/modules/jobs/job_exp.dm +++ b/code/modules/jobs/job_exp.dm @@ -191,7 +191,7 @@ GLOBAL_PROTECT(exp_to_update) "ckey" = ckey, "minutes" = jvalue))) prefs.exp[jtype] += jvalue - addtimer(CALLBACK(SSblackbox,/datum/controller/subsystem/blackbox/proc/update_exp_db),20,TIMER_OVERRIDE|TIMER_UNIQUE) + addtimer(CALLBACK(SSblackbox, TYPE_PROC_REF(/datum/controller/subsystem/blackbox, update_exp_db)),20,TIMER_OVERRIDE|TIMER_UNIQUE) //ALWAYS call this at beginning to any proc touching player flags, or your database admin will probably be mad diff --git a/code/modules/jobs/job_types/assistant.dm b/code/modules/jobs/job_types/assistant.dm index b6e6c9e2b731..b098e79dadac 100644 --- a/code/modules/jobs/job_types/assistant.dm +++ b/code/modules/jobs/job_types/assistant.dm @@ -78,7 +78,6 @@ Assistant /datum/outfit/job/assistant/inteq name = "IRMG Recruit (Inteq)" - uniform = /obj/item/clothing/under/syndicate/inteq /datum/outfit/job/assistant/intern @@ -121,60 +120,6 @@ Assistant shoes = /obj/item/clothing/shoes/laceup suit = /obj/item/clothing/suit/toggle/lawyer/black -/datum/outfit/job/assistant/syndicate - name = "Junior Agent (Assistant)" - - id = /obj/item/card/id/syndicate_command/crew_id - uniform = /obj/item/clothing/under/syndicate - alt_uniform = null - shoes = /obj/item/clothing/shoes/jackboots - -/datum/outfit/job/assistant/syndicate/gorlex - name = "Junior Agent (Gorlex Marauders)" - - uniform = /obj/item/clothing/under/syndicate/gorlex - alt_uniform = /obj/item/clothing/under/syndicate - -/datum/outfit/job/assistant/syndicate/gec - name = "Deckhand (GEC)" - - id = /obj/item/card/id/syndicate_command/crew_id - uniform = /obj/item/clothing/under/syndicate - suit = /obj/item/clothing/suit/toggle/hazard - alt_uniform = null - shoes = /obj/item/clothing/shoes/jackboots - head = /obj/item/clothing/head/safety_helmet - -/datum/outfit/job/assistant/syndicate/sbc - name = "Deck Assistant (Twinkleshine)" - - uniform = /obj/item/clothing/under/syndicate - alt_uniform = /obj/item/clothing/under/syndicate/intern - shoes = /obj/item/clothing/shoes/combat - gloves = /obj/item/clothing/gloves/combat - ears = /obj/item/radio/headset/syndicate/alt - mask = /obj/item/clothing/mask/gas/syndicate/voicechanger - r_pocket = /obj/item/kitchen/knife/combat/survival - back = /obj/item/storage/backpack - implants = list(/obj/item/implant/weapons_auth) - id = /obj/item/card/id/syndicate_command/crew_id - - backpack = /obj/item/storage/backpack/security - satchel = /obj/item/storage/backpack/satchel/sec - duffelbag = /obj/item/storage/backpack/duffelbag/syndie - courierbag = /obj/item/storage/backpack/messenger/sec - - box = /obj/item/storage/box/survival/syndie - -/datum/outfit/job/assistant/syndicate/sbc/post_equip(mob/living/carbon/human/H) - H.faction |= list("PlayerSyndicate") - - var/obj/item/card/id/I = H.wear_id - I.registered_name = pick(GLOB.twinkle_names) + "-" + num2text(rand(1, 4)) // squidquest real - I.assignment = "Deck Assistant" - I.access |= list(ACCESS_SYNDICATE) - I.update_label() - /datum/outfit/job/assistant/independent/crewmatefancy name = "Crewmate (Independent)" @@ -208,10 +153,6 @@ Assistant gloves = /obj/item/clothing/gloves/color/white accessory = /obj/item/clothing/neck/scarf/darkblue -/datum/outfit/job/assistant/waiter/syndicate - name = "Assistant (Syndicate Waiter)" - uniform = /obj/item/clothing/under/suit/waiter/syndicate - /datum/outfit/job/assistant/roumain name = "Shadow (Saint-Roumain Militia)" @@ -222,13 +163,8 @@ Assistant head = /obj/item/clothing/head/cowboy/sec/roumain/shadow -/datum/outfit/job/assistant/syndicate/cyberagent - name = "Junior Agent (Cybersun)" - - uniform = /obj/item/clothing/under/syndicate - shoes = /obj/item/clothing/shoes/jackboots - r_pocket = /obj/item/radio - head = /obj/item/clothing/head/soft/black +/datum/outfit/job/assistant/roumain/post_equip(mob/living/carbon/human/H) + H.faction |= list("roumain") /datum/outfit/job/assistant/pharma name = "Pharmacology Student" diff --git a/code/modules/jobs/job_types/atmospheric_technician.dm b/code/modules/jobs/job_types/atmospheric_technician.dm index eb2df5a68039..f00d87eb6ba4 100644 --- a/code/modules/jobs/job_types/atmospheric_technician.dm +++ b/code/modules/jobs/job_types/atmospheric_technician.dm @@ -40,14 +40,6 @@ suit_store = /obj/item/tank/internals/oxygen internals_slot = ITEM_SLOT_SUITSTORE -/datum/outfit/job/atmos/gec - name = "Atmospheric Technician (GEC)" - - uniform = /obj/item/clothing/under/syndicate/gec/atmos_tech - suit = /obj/item/clothing/suit/toggle/hazard - head = /obj/item/clothing/head/hardhat - id = /obj/item/card/id/syndicate_command/crew_id - /datum/outfit/job/atmos/frontiersmen name = "Atmospheric Technician (Frontiersmen)" diff --git a/code/modules/jobs/job_types/bartender.dm b/code/modules/jobs/job_types/bartender.dm index 680fe6ee880d..f704f1c62139 100644 --- a/code/modules/jobs/job_types/bartender.dm +++ b/code/modules/jobs/job_types/bartender.dm @@ -1,6 +1,7 @@ /datum/job/bartender name = "Bartender" - wiki_page = "Drinks" //WS Edit - Wikilinks/Warning + wiki_page = "Drinks" + outfit = /datum/outfit/job/bartender @@ -17,16 +18,12 @@ belt = /obj/item/pda/bar ears = /obj/item/radio/headset/headset_srv uniform = /obj/item/clothing/under/rank/civilian/bartender - alt_uniform = /obj/item/clothing/under/rank/civilian/bartender/purple //WS Edit - Alt Uniforms + alt_uniform = /obj/item/clothing/under/rank/civilian/bartender/purple alt_suit = /obj/item/clothing/suit/apron/purple_bartender suit = /obj/item/clothing/suit/armor/vest backpack_contents = list(/obj/item/storage/box/beanbag=1) shoes = /obj/item/clothing/shoes/laceup -/datum/outfit/job/bartender/syndicate - id = /obj/item/card/id/syndicate_command/crew_id - head = /obj/item/clothing/head/HoS/beret/syndicate - /datum/outfit/job/bartender/post_equip(mob/living/carbon/human/H, visualsOnly) . = ..() @@ -35,34 +32,6 @@ W.registered_age = AGE_MINOR to_chat(H, "You're not technically old enough to access or serve alcohol, but your ID has been discreetly modified to display your age as [AGE_MINOR]. Try to keep that a secret!") -/datum/outfit/job/bartender/syndicate/sbc - name = "Bartender (Twinkleshine)" - - uniform = /obj/item/clothing/under/syndicate/donk - shoes = /obj/item/clothing/shoes/laceup - gloves = /obj/item/clothing/gloves/color/white - ears = /obj/item/radio/headset/syndicate - mask = /obj/item/clothing/mask/gas/syndicate/voicechanger - belt = /obj/item/storage/belt/bandolier - implants = list(/obj/item/implant/weapons_auth) - id = /obj/item/card/id/syndicate_command/crew_id - - backpack = /obj/item/storage/backpack/security - satchel = /obj/item/storage/backpack/satchel/sec - duffelbag = /obj/item/storage/backpack/duffelbag/syndie - courierbag = /obj/item/storage/backpack/messenger/sec - - box = /obj/item/storage/box/survival/syndie - -/datum/outfit/job/bartender/syndicate/sbc/post_equip(mob/living/carbon/human/H) - H.faction |= list("PlayerSyndicate") - - var/obj/item/card/id/I = H.wear_id - I.registered_name = pick(GLOB.twinkle_names) + "-" + num2text(rand(2, 5)) // squidquest real - I.assignment = "Bartender" - I.access |= list(ACCESS_SYNDICATE) - I.update_label() - /datum/outfit/job/bartender/pharma name = "Mixologist" diff --git a/code/modules/jobs/job_types/botanist.dm b/code/modules/jobs/job_types/botanist.dm index 27906b1d8bac..17820864e57f 100644 --- a/code/modules/jobs/job_types/botanist.dm +++ b/code/modules/jobs/job_types/botanist.dm @@ -27,17 +27,6 @@ satchel = /obj/item/storage/backpack/satchel/hyd courierbag = /obj/item/storage/backpack/messenger/hyd -//shiptest!!!!!!!!!! -/datum/outfit/job/botanist/syndicate/nsv - name = "Botanist-Chemist (NSV-M)" - - uniform = /obj/item/clothing/under/syndicate - id = /obj/item/card/id/syndicate_command/crew_id - shoes = /obj/item/clothing/shoes/jackboots - glasses = /obj/item/clothing/glasses/science - suit = /obj/item/clothing/suit/toggle/labcoat/chemist - suit_store = null - /datum/outfit/job/botanist/pharma name = "Herbalist" diff --git a/code/modules/jobs/job_types/brig_physician.dm b/code/modules/jobs/job_types/brig_physician.dm index 6b670693186e..d27f2df6b859 100644 --- a/code/modules/jobs/job_types/brig_physician.dm +++ b/code/modules/jobs/job_types/brig_physician.dm @@ -45,39 +45,3 @@ suit = /obj/item/clothing/suit/toggle/labcoat/brig_phys l_pocket = /obj/item/reagent_containers/syringe alt_suit = null - -/datum/outfit/job/brig_phys/syndicate/sbc - name = "Medic (Twinkleshine)" - - uniform = /obj/item/clothing/under/rank/medical/doctor/red - gloves = /obj/item/clothing/gloves/color/latex/nitrile/evil - alt_uniform = /obj/item/clothing/under/syndicate/cybersun - glasses = /obj/item/clothing/glasses/hud/health - belt = /obj/item/storage/belt/medical - back = /obj/item/storage/backpack/duffelbag/syndie/med - shoes = /obj/item/clothing/shoes/combat - suit = /obj/item/clothing/suit/longcoat/roboblack - alt_suit = /obj/item/clothing/suit/toggle/labcoat - suit_store = null - head = null - ears = /obj/item/radio/headset/syndicate - mask = /obj/item/clothing/mask/gas/syndicate/voicechanger - id = /obj/item/card/id/syndicate_command/crew_id/med - implants = list(/obj/item/implant/weapons_auth) - backpack_contents = list(/obj/item/pda/brig_phys) - - backpack = /obj/item/storage/backpack/security - satchel = /obj/item/storage/backpack/satchel/sec - duffelbag = /obj/item/storage/backpack/duffelbag/syndie/med - courierbag = /obj/item/storage/backpack/messenger/sec - - box = /obj/item/storage/box/survival/syndie - -/datum/outfit/job/brig_phys/syndicate/sbc/post_equip(mob/living/carbon/human/H) - H.faction |= list("PlayerSyndicate") - - var/obj/item/card/id/I = H.wear_id - I.registered_name = pick(GLOB.twinkle_names) + "-" + num2text(rand(6, 8)) // squidquest real - I.assignment = "Medic" - I.access |= list(ACCESS_SYNDICATE) - I.update_label() diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm index 554ea742e9e3..78e7eb8dde74 100644 --- a/code/modules/jobs/job_types/captain.dm +++ b/code/modules/jobs/job_types/captain.dm @@ -54,6 +54,7 @@ ears = /obj/item/radio/headset/nanotrasen/captain uniform = /obj/item/clothing/under/rank/command/captain/nt + gloves = /obj/item/clothing/gloves/color/captain/nt shoes = /obj/item/clothing/shoes/laceup head = /obj/item/clothing/head/caphat/nt @@ -61,25 +62,15 @@ name = "Captain (Nanotrasen)" uniform = /obj/item/clothing/under/rank/centcom/officer + gloves = /obj/item/clothing/gloves/combat head = /obj/item/clothing/head/centhat suit = /obj/item/clothing/suit/armor/vest/bulletproof -/datum/outfit/job/captain/solgov - name = "Captain (SolGov)" - - ears = /obj/item/radio/headset/solgov/captain - shoes = /obj/item/clothing/shoes/laceup - suit = /obj/item/clothing/suit/toggle/solgov - -/datum/outfit/job/captain/solgov/rebel - name = "Captain (Deserter)" - suit = /obj/item/clothing/suit/toggle/solgov/terragov - /datum/outfit/job/captain/pirate name = "Captain (Pirate)" ears = /obj/item/radio/headset/pirate/captain - uniform = /obj/item/clothing/under/costume/russian_officer + uniform = /obj/item/clothing/under/costume/pirate shoes = /obj/item/clothing/shoes/jackboots head = /obj/item/clothing/head/pirate/captain suit = /obj/item/clothing/suit/pirate/captain @@ -99,71 +90,6 @@ glasses = /obj/item/clothing/glasses/sunglasses alt_suit = null -/datum/outfit/job/captain/syndicate - name = "Captain (ACLF)" - id = /obj/item/card/id/syndicate_command/captain_id - ears = /obj/item/radio/headset/syndicate/alt/captain - uniform = /obj/item/clothing/under/syndicate/aclf - shoes = /obj/item/clothing/shoes/jackboots - head = /obj/item/clothing/head/HoS/syndicate - gloves = /obj/item/clothing/gloves/combat - suit = /obj/item/clothing/suit/armor/vest/capcarapace/syndicate - - backpack = /obj/item/storage/backpack/security - satchel = /obj/item/storage/backpack/satchel/sec - duffelbag = /obj/item/storage/backpack/duffelbag/sec - courierbag = /obj/item/storage/backpack/messenger/sec - -/datum/outfit/job/captain/syndicate/sbc - name = "Captain (Twinkleshine)" - - uniform = /obj/item/clothing/under/syndicate/aclf - gloves = /obj/item/clothing/gloves/combat - shoes = /obj/item/clothing/shoes/combat - ears = /obj/item/radio/headset/syndicate/alt/captain - mask = /obj/item/clothing/mask/gas/syndicate/voicechanger - l_pocket = /obj/item/melee/transforming/energy/sword/saber/red - suit = /obj/item/clothing/suit/armor/vest/capcarapace/syndicate - suit_store = /obj/item/gun/ballistic/revolver/mateba - r_pocket = /obj/item/kitchen/knife/combat/survival - belt = /obj/item/storage/belt/military/assault - glasses = /obj/item/clothing/glasses/hud/security/sunglasses/eyepatch - id = /obj/item/card/id/syndicate_command/captain_id - implants = list(/obj/item/implant/weapons_auth) - backpack_contents = list(/obj/item/melee/classic_baton/telescopic=1, /obj/item/pda/captain) - - backpack = /obj/item/storage/backpack/security - satchel = /obj/item/storage/backpack/satchel/sec - duffelbag = /obj/item/storage/backpack/duffelbag/syndie - courierbag = /obj/item/storage/backpack/messenger/sec - - box = /obj/item/storage/box/survival/syndie - -/datum/outfit/job/captain/syndicate/sbc/post_equip(mob/living/carbon/human/H) - H.faction |= list("PlayerSyndicate") - - var/obj/item/card/id/I = H.wear_id - I.registered_name = pick(GLOB.twinkle_names) + "-" + num2text(rand(9, 12)) // squidquest real - I.access = get_all_accesses()+get_all_syndicate_access() - I.update_label() - -/datum/outfit/job/captain/syndicate/gorlex - name = "Captain (Gorlex Marauders)" - - uniform = /obj/item/clothing/under/syndicate/aclf - shoes = /obj/item/clothing/shoes/jackboots - head = /obj/item/clothing/head/aclfcap - suit = /obj/item/clothing/suit/aclf - -/datum/outfit/job/captain/syndicate/cybersun - name = "Cybersun Commander" - - uniform = /obj/item/clothing/under/suit/black_really - shoes = /obj/item/clothing/shoes/jackboots - head = /obj/item/clothing/head/HoS/syndicate - gloves = /obj/item/clothing/gloves/combat - suit = /obj/item/clothing/suit/armor/vest/capcarapace/syndicate - /datum/outfit/job/captain/minutemen name = "Captain (Colonial Minutemen)" diff --git a/code/modules/jobs/job_types/cargo_technician.dm b/code/modules/jobs/job_types/cargo_technician.dm index c5d2b14aa0eb..22f85ed9f57a 100644 --- a/code/modules/jobs/job_types/cargo_technician.dm +++ b/code/modules/jobs/job_types/cargo_technician.dm @@ -35,11 +35,6 @@ gloves = /obj/item/clothing/gloves/fingerless glasses = /obj/item/clothing/glasses/sunglasses/big -/datum/outfit/job/cargo_tech/donk - name = "Customer Associate (Donk! Co.)" - id = /obj/item/card/id/syndicate_command/crew_id - uniform = /obj/item/clothing/under/syndicate/donk - suit = /obj/item/clothing/suit/hazardvest/donk /datum/outfit/job/cargo_tech/frontiersmen name = "Cargo Tech (frontiersmen)" diff --git a/code/modules/jobs/job_types/chaplain.dm b/code/modules/jobs/job_types/chaplain.dm index 97a2a2403717..9dd36c1e201a 100644 --- a/code/modules/jobs/job_types/chaplain.dm +++ b/code/modules/jobs/job_types/chaplain.dm @@ -115,7 +115,6 @@ belt = /obj/item/pda/chaplain ears = /obj/item/radio/headset/headset_srv uniform = /obj/item/clothing/under/rank/civilian/chaplain - alt_uniform = /obj/item/clothing/under/pants/youngfolksjeans //WS Edit - Alt Uniforms backpack_contents = list( /obj/item/stamp/chap = 1, /obj/item/camera/spooky = 1 diff --git a/code/modules/jobs/job_types/chemist.dm b/code/modules/jobs/job_types/chemist.dm index 9e26a0787865..d98181af7324 100644 --- a/code/modules/jobs/job_types/chemist.dm +++ b/code/modules/jobs/job_types/chemist.dm @@ -76,15 +76,6 @@ backpack_contents = list(/obj/item/clothing/glasses/science=1) //Shiptest -/datum/outfit/job/chemist/gec - name = "Chemist (GEC)" - - uniform = /obj/item/clothing/under/syndicate/intern - suit = /obj/item/clothing/suit/toggle/hazard - head = /obj/item/clothing/head/hardhat - belt = /obj/item/storage/belt/utility/full/engi - id = /obj/item/card/id/syndicate_command/crew_id - l_pocket =/obj/item/pda/chemist /datum/outfit/job/chemist/pharma name = "Pharmacist" diff --git a/code/modules/jobs/job_types/chief_engineer.dm b/code/modules/jobs/job_types/chief_engineer.dm index 76d49f4b0f4d..5b862731db49 100644 --- a/code/modules/jobs/job_types/chief_engineer.dm +++ b/code/modules/jobs/job_types/chief_engineer.dm @@ -72,35 +72,6 @@ neck = /obj/item/clothing/neck/tie/green backpack_contents = list(/obj/item/melee/classic_baton/telescopic=1, /obj/item/modular_computer/tablet/preset/advanced=1, /obj/item/clothing/gloves/color/black=1) -/datum/outfit/job/ce/gec - name = "Chief Engineer (GEC)" - - uniform = /obj/item/clothing/under/syndicate/gec/chief_engineer - suit = /obj/item/clothing/suit/toggle/hazard - head = /obj/item/clothing/head/hardhat/white - shoes =/obj/item/clothing/shoes/laceup - ears = /obj/item/radio/headset/syndicate/alt/captain - id = /obj/item/card/id/syndicate_command/captain_id - gloves = /obj/item/clothing/gloves/combat - -/datum/outfit/job/ce/syndicate - name = "Chief Engineer (Syndicate Generic)" - - id = /obj/item/card/id/syndicate_command/crew_id - ears = /obj/item/radio/headset/syndicate/alt - glasses = /obj/item/clothing/glasses/sunglasses - -/datum/outfit/job/ce/syndicate/gorlex - name = "Foreman (Gorlex Marauders)" - - ears = /obj/item/radio/headset/syndicate/alt - uniform = /obj/item/clothing/under/syndicate/gorlex - alt_uniform = null - suit = /obj/item/clothing/suit/toggle/hazard - alt_suit = null - shoes = /obj/item/clothing/shoes/jackboots - gloves = /obj/item/clothing/gloves/combat - /datum/outfit/job/ce/inteq name = "IRMG Artificer Class II (Inteq)" diff --git a/code/modules/jobs/job_types/chief_medical_officer.dm b/code/modules/jobs/job_types/chief_medical_officer.dm index 92e270ee22e7..f614aab080a0 100644 --- a/code/modules/jobs/job_types/chief_medical_officer.dm +++ b/code/modules/jobs/job_types/chief_medical_officer.dm @@ -75,14 +75,6 @@ suit_store = null backpack_contents = list(/obj/item/melee/classic_baton/telescopic=1, /obj/item/storage/firstaid/medical=1, /obj/item/flashlight/pen=1) -//Shiptest! -/datum/outfit/job/cmo/syndicate/nsv - name = "Medical Director (NSV-M)" - - uniform = /obj/item/clothing/under/syndicate - ears = /obj/item/radio/headset/syndicate/alt/captain - id = /obj/item/card/id/syndicate_command/captain_id - shoes = /obj/item/clothing/shoes/jackboots /datum/outfit/job/cmo/pharma name = "Chief Pharmacist" diff --git a/code/modules/jobs/job_types/head_of_personnel.dm b/code/modules/jobs/job_types/head_of_personnel.dm index 2a9016c9285d..e38e758cf71e 100644 --- a/code/modules/jobs/job_types/head_of_personnel.dm +++ b/code/modules/jobs/job_types/head_of_personnel.dm @@ -65,7 +65,7 @@ /datum/outfit/job/head_of_personnel/pirate name = "First Mate (Pirate)" ears = /obj/item/radio/headset/pirate - uniform = /obj/item/clothing/under/costume/russian_officer + uniform = /obj/item/clothing/under/costume/pirate shoes = /obj/item/clothing/shoes/jackboots head = /obj/item/clothing/head/pirate suit = /obj/item/clothing/suit/pirate @@ -95,30 +95,6 @@ backpack_contents = list(/obj/item/storage/box/ids=1,\ /obj/item/melee/classic_baton/telescopic=1, /obj/item/modular_computer/tablet/preset/advanced = 1) -/datum/outfit/job/head_of_personnel/syndicate - name = "Bridge Officer (Syndicate)" - - ears = /obj/item/radio/headset/syndicate/alt - uniform = /obj/item/clothing/under/syndicate/aclfgrunt - shoes = /obj/item/clothing/shoes/jackboots - head = /obj/item/clothing/head/HoS/beret/syndicate - gloves = /obj/item/clothing/gloves/color/white - id = /obj/item/card/id/syndicate_command/crew_id - r_pocket = /obj/item/kitchen/knife/combat/survival - glasses = /obj/item/clothing/glasses/hud/health - -/datum/outfit/job/head_of_personnel/syndicate/intel - name = "Intelligence Officer (Syndicate)" - - ears = /obj/item/radio/headset/syndicate/alt - uniform = /obj/item/clothing/under/suit/charcoal - shoes = /obj/item/clothing/shoes/jackboots - head = /obj/item/clothing/head/HoS/syndicate - gloves = /obj/item/clothing/gloves/combat - id = /obj/item/card/id/syndicate_command/crew_id - r_pocket = /obj/item/kitchen/knife/combat/survival - glasses = /obj/item/clothing/glasses/sunglasses - /datum/outfit/job/head_of_personnel/beluga uniform = /obj/item/clothing/under/rank/command/head_of_personnel diff --git a/code/modules/jobs/job_types/head_of_security.dm b/code/modules/jobs/job_types/head_of_security.dm index f38c9fd3a901..a122b4249b98 100644 --- a/code/modules/jobs/job_types/head_of_security.dm +++ b/code/modules/jobs/job_types/head_of_security.dm @@ -61,16 +61,6 @@ suit_store = /obj/item/tank/internals/oxygen backpack_contents = list(/obj/item/melee/baton/loaded=1, /obj/item/gun/energy/e_gun=1, /obj/item/ammo_box/magazine/co9mm=1) //WS edit - free lethals -/datum/outfit/job/hos/syndicate - name = "Sergeant (Syndicate)" - - ears = /obj/item/radio/headset/syndicate/alt - uniform = /obj/item/clothing/under/syndicate/combat - head = /obj/item/clothing/head/warden - suit = /obj/item/clothing/suit/armor/vest/syndie - id = /obj/item/card/id/syndicate_command/crew_id - backpack_contents = list(/obj/item/melee/classic_baton=1,/obj/item/storage/box/survival/syndie=1) - /datum/outfit/job/hos/nanotrasen name = "Head of Security (Nanotrasen)" @@ -122,6 +112,9 @@ /obj/item/melee/classic_baton/telescopic=1 ) +/datum/outfit/job/hos/roumain/post_equip(mob/living/carbon/human/H) + H.faction |= list("roumain") + /datum/job/hos/roumain outfit = /datum/outfit/job/hos/roumain mind_traits = null diff --git a/code/modules/jobs/job_types/medical_doctor.dm b/code/modules/jobs/job_types/medical_doctor.dm index 49a23855c3c8..f46b1f243582 100644 --- a/code/modules/jobs/job_types/medical_doctor.dm +++ b/code/modules/jobs/job_types/medical_doctor.dm @@ -106,27 +106,6 @@ uniform = /obj/item/clothing/under/costume/sailor shoes = /obj/item/clothing/shoes/jackboots -/datum/outfit/job/doctor/cybersun - name = "Operations Assistant (Medical Doctor)" - - uniform = /obj/item/clothing/under/syndicate/cybersun - accessory = /obj/item/clothing/accessory/armband/medblue - shoes = /obj/item/clothing/shoes/jackboots -/datum/outfit/job/doctor/syndicate/nsv - name = "Medical Doctor (NSV-M)" - - uniform = /obj/item/clothing/under/syndicate - id = /obj/item/card/id/syndicate_command/crew_id - shoes = /obj/item/clothing/shoes/jackboots - -/datum/outfit/job/doctor/syndicate_komodo - name = "Ship Medical Doctor" - uniform = /obj/item/clothing/under/syndicate/gorlex - glasses = /obj/item/clothing/glasses/hud/health/prescription - r_pocket = /obj/item/kitchen/knife/combat/survival - back = /obj/item/storage/backpack/duffelbag/syndie/med - id = /obj/item/card/id/syndicate_command/crew_id - backpack_contents = list(/obj/item/storage/box/survival/syndie=1, /obj/item/storage/firstaid/medical,) /datum/outfit/job/doctor/roumain name = "Hunter Doctor (Saint-Roumain Militia)" @@ -145,6 +124,9 @@ courierbag = /obj/item/storage/backpack/messenger backpack_contents = list(/obj/item/storage/firstaid/roumain=1) +/datum/outfit/job/doctor/roumain/post_equip(mob/living/carbon/human/H) + H.faction |= list("roumain") + /datum/outfit/job/doctor/frontiersmen name = "Surgeon (frontiersmen)" diff --git a/code/modules/jobs/job_types/paramedic.dm b/code/modules/jobs/job_types/paramedic.dm index a51249c10f7d..5ac130370a6c 100644 --- a/code/modules/jobs/job_types/paramedic.dm +++ b/code/modules/jobs/job_types/paramedic.dm @@ -53,22 +53,6 @@ backpack = /obj/item/storage/backpack/ert/medical belt = /obj/item/storage/belt/medical/webbing/paramedic -/datum/outfit/job/paramedic/syndicate/gorlex - name = "Paramedic (Gorlex)" - - id = /obj/item/card/id/syndicate_command/crew_id - uniform = /obj/item/clothing/under/syndicate/gorlex - alt_uniform = null - shoes = /obj/item/clothing/shoes/jackboots - -/datum/outfit/job/paramedic/syndicate - name = "Field Medic (Cybersun Industries)" - - uniform = /obj/item/clothing/under/syndicate/medic - head = /obj/item/clothing/head/soft/cybersun - shoes = /obj/item/clothing/shoes/combat - suit = /obj/item/clothing/suit/toggle/labcoat/raincoat - /datum/outfit/job/paramedic/inteq name = "IRMG Corpsman (Inteq)" diff --git a/code/modules/jobs/job_types/prisoner.dm b/code/modules/jobs/job_types/prisoner.dm index 16195bfc1a85..aca27ae4acbf 100644 --- a/code/modules/jobs/job_types/prisoner.dm +++ b/code/modules/jobs/job_types/prisoner.dm @@ -29,9 +29,3 @@ name = "Shotcaller" l_pocket = /obj/item/kitchen/knife/shiv -/datum/outfit/job/prisoner/syndicatepatient - name = "Long Term Patient" - id = /obj/item/card/id/patient - uniform = /obj/item/clothing/under/rank/medical/gown - alt_suit = null - shoes = /obj/item/clothing/shoes/sandal/slippers diff --git a/code/modules/jobs/job_types/psychologist.dm b/code/modules/jobs/job_types/psychologist.dm index de4a0eb10a24..1bc260c61c5f 100644 --- a/code/modules/jobs/job_types/psychologist.dm +++ b/code/modules/jobs/job_types/psychologist.dm @@ -25,13 +25,3 @@ satchel = /obj/item/storage/backpack/satchel/med duffelbag = /obj/item/storage/backpack/duffelbag/med -//Shiptest Outfits - -/datum/outfit/job/psychologist/syndicate/nsv - name = "Ship Psychologist" - id = /obj/item/card/id/syndicate_command/crew_id - uniform = /obj/item/clothing/under/rank/medical/psychiatrist - suit = /obj/item/clothing/suit/toggle/labcoat - shoes = /obj/item/clothing/shoes/laceup - alt_uniform = null - l_hand = /obj/item/clipboard diff --git a/code/modules/jobs/job_types/quartermaster.dm b/code/modules/jobs/job_types/quartermaster.dm index 3399fb9de9f1..68380b99fa05 100644 --- a/code/modules/jobs/job_types/quartermaster.dm +++ b/code/modules/jobs/job_types/quartermaster.dm @@ -36,16 +36,6 @@ glasses = /obj/item/clothing/glasses/sunglasses head = /obj/item/clothing/head/cowboy/sec -/datum/outfit/job/quartermaster/donk - name = "Manager (Donk! Co.)" - id = /obj/item/card/id/syndicate_command/captain_id - - ears = /obj/item/radio/headset/syndicate/alt - uniform = /obj/item/clothing/under/syndicate/donk/qm - suit = /obj/item/clothing/suit/hazardvest/donk/qm - ears = /obj/item/radio/headset/syndicate/alt - shoes = /obj/item/clothing/shoes/laceup - /datum/outfit/job/quartermaster/requisitionsofficer name = "Requisitions Officer" suit = /obj/item/clothing/suit/jacket/miljacket diff --git a/code/modules/jobs/job_types/security_officer.dm b/code/modules/jobs/job_types/security_officer.dm index 781e6f360dc5..3fe484c56986 100644 --- a/code/modules/jobs/job_types/security_officer.dm +++ b/code/modules/jobs/job_types/security_officer.dm @@ -100,8 +100,6 @@ GLOBAL_LIST_INIT(available_depts, list(SEC_DEPT_ENGINEERING, SEC_DEPT_MEDICAL, S chameleon_extras = list(/obj/item/gun/energy/disabler, /obj/item/clothing/glasses/hud/security/sunglasses, /obj/item/clothing/head/helmet) //The helmet is necessary because /obj/item/clothing/head/helmet/sec is overwritten in the chameleon list by the standard helmet, which has the same name and icon state -//Shiptest outfits begin - /datum/outfit/job/security/pirate name = "Buccaneer (Pirate)" @@ -289,46 +287,8 @@ GLOBAL_LIST_INIT(available_depts, list(SEC_DEPT_ENGINEERING, SEC_DEPT_MEDICAL, S courierbag = /obj/item/storage/backpack/messenger backpack_contents = null -/datum/outfit/job/security/syndicate/gorlex - name = "Syndicate Battlecruiser Assault Operative" - uniform = /obj/item/clothing/under/syndicate - r_pocket = /obj/item/kitchen/knife/combat/survival - belt = /obj/item/storage/belt/military - back = /obj/item/storage/backpack - suit = /obj/item/clothing/suit/armor/vest - id = /obj/item/card/id/syndicate_command/crew_id - backpack_contents = list(/obj/item/storage/box/survival/syndie=1) - -/datum/outfit/job/security/syndicate/sbc - name = "Operative (Twinkleshine)" - uniform = /obj/item/clothing/under/syndicate/combat - ears = /obj/item/radio/headset/syndicate/alt - mask = /obj/item/clothing/mask/gas/syndicate/voicechanger - gloves = /obj/item/clothing/gloves/combat - shoes = /obj/item/clothing/shoes/combat - l_pocket = /obj/item/gun/ballistic/automatic/pistol - r_pocket = /obj/item/kitchen/knife/combat/survival - belt = /obj/item/storage/belt/military/assault - id = /obj/item/card/id/syndicate_command/crew_id - implants = list(/obj/item/implant/weapons_auth) - backpack_contents = list(/obj/item/gun_voucher/syndicate=1) - - head = null - backpack = /obj/item/storage/backpack/security - satchel = /obj/item/storage/backpack/satchel/sec - duffelbag = /obj/item/storage/backpack/duffelbag/syndie - courierbag = /obj/item/storage/backpack/messenger/sec - - box = /obj/item/storage/box/survival/syndie - -/datum/outfit/job/security/syndicate/sbc/post_equip(mob/living/carbon/human/H) - H.faction |= list("PlayerSyndicate") - - var/obj/item/card/id/I = H.wear_id - I.registered_name = pick(GLOB.twinkle_names) + "-" + num2text(rand(4, 8)) // squidquest real - I.assignment = "Operative" - I.access |= list(ACCESS_SYNDICATE) - I.update_label() +/datum/outfit/job/security/roumain/post_equip(mob/living/carbon/human/H) + H.faction |= list("roumain") /datum/outfit/job/security/aipirate name = "Nodesman (Security)" @@ -359,7 +319,6 @@ GLOBAL_LIST_INIT(available_depts, list(SEC_DEPT_ENGINEERING, SEC_DEPT_MEDICAL, S l_pocket = /obj/item/flashlight/seclite r_pocket = /obj/item/tank/internals/emergency_oxygen/double - /datum/outfit/job/security/lp name = "LP Security Specialist" diff --git a/code/modules/jobs/job_types/shaft_miner.dm b/code/modules/jobs/job_types/shaft_miner.dm index 1fade6b2ecf0..6a3f13da7c78 100644 --- a/code/modules/jobs/job_types/shaft_miner.dm +++ b/code/modules/jobs/job_types/shaft_miner.dm @@ -90,43 +90,6 @@ satchel = /obj/item/storage/backpack/satchel/tox courierbag = /obj/item/storage/backpack/messenger/tox -/datum/outfit/job/miner/syndicate/gorlex - name = "Wrecker (Gorlex Marauders)" - - uniform = /obj/item/clothing/under/syndicate/gorlex - shoes = /obj/item/clothing/shoes/workboots - ears = /obj/item/radio/headset/alt - -/datum/outfit/job/miner/syndicate/sbc - name = "Miner (Twinkleshine)" - - uniform = /obj/item/clothing/under/syndicate/gorlex - shoes = /obj/item/clothing/shoes/workboots - glasses = /obj/item/clothing/glasses/meson/night - gloves = /obj/item/clothing/gloves/explorer - ears = /obj/item/radio/headset/syndicate - mask = /obj/item/clothing/mask/gas/syndicate/voicechanger - r_pocket = /obj/item/kitchen/knife/combat/survival - belt = /obj/item/storage/belt/mining/alt - implants = list(/obj/item/implant/weapons_auth) - id = /obj/item/card/id/syndicate_command/crew_id/engi - - backpack = /obj/item/storage/backpack/security - satchel = /obj/item/storage/backpack/satchel/sec - duffelbag = /obj/item/storage/backpack/duffelbag/syndie - courierbag = /obj/item/storage/backpack/messenger/sec - - box = /obj/item/storage/box/survival/mining - -/datum/outfit/job/miner/syndicate/sbc/post_equip(mob/living/carbon/human/H) - H.faction |= list("PlayerSyndicate") - - var/obj/item/card/id/I = H.wear_id - I.registered_name = pick(GLOB.twinkle_names) + "-" + num2text(rand(5, 7)) // squidquest real - I.assignment = "Miner" - I.access |= list(ACCESS_SYNDICATE, ACCESS_ENGINE) - I.update_label() - /datum/outfit/job/miner/old name = "Shaft Miner (Legacy)" suit = /obj/item/clothing/suit/hooded/explorer/old @@ -162,30 +125,6 @@ /obj/item/borg/upgrade/modkit/aoe=1 ) -/datum/outfit/job/miner/syndicate/cybersun - name = "Field Agent" - - id = /obj/item/card/id/syndicate_command/crew_id - ears = /obj/item/radio/headset - uniform = /obj/item/clothing/under/syndicate - accessory = /obj/item/clothing/accessory/armband/cargo - head = /obj/item/clothing/head/soft/black - r_pocket = /obj/item/radio - -/datum/outfit/job/miner/syndicate/gec - name = "Shaft Miner (GEC)" - - id = /obj/item/card/id/syndicate_command/crew_id - ears = /obj/item/radio/headset - uniform = /obj/item/clothing/under/syndicate - alt_uniform = null - accessory = /obj/item/clothing/accessory/armband/cargo - head = /obj/item/clothing/head/soft/black - r_pocket = /obj/item/radio - head = /obj/item/clothing/head/hardhat/orange - suit = /obj/item/clothing/suit/toggle/industrial - suit_store = /obj/item/tank/internals/emergency_oxygen/double - /datum/outfit/job/miner/hazard/minutemen name = "Industrial Miner (Minutemen)" gloves = /obj/item/clothing/gloves/color/black diff --git a/code/modules/jobs/job_types/station_engineer.dm b/code/modules/jobs/job_types/station_engineer.dm index cf774d8a25bb..a347965d9323 100644 --- a/code/modules/jobs/job_types/station_engineer.dm +++ b/code/modules/jobs/job_types/station_engineer.dm @@ -84,61 +84,6 @@ suit = /obj/item/clothing/suit/toggle/hazard alt_suit = /obj/item/clothing/suit/hazardvest -/datum/outfit/job/engineer/syndicate - name = "Ship Technician (Engineer)" - - id = /obj/item/card/id/syndicate_command/crew_id - uniform = /obj/item/clothing/under/syndicate/aclfgrunt - accessory = /obj/item/clothing/accessory/armband/engine - glasses = /obj/item/clothing/glasses/sunglasses - shoes = /obj/item/clothing/shoes/jackboots - -/datum/outfit/job/engineer/gec - name = "Station Engineer (GEC)" - - uniform = /obj/item/clothing/under/syndicate/gec - suit = /obj/item/clothing/suit/toggle/hazard - head = /obj/item/clothing/head/hardhat - id = /obj/item/card/id/syndicate_command/crew_id - -/datum/outfit/job/engineer/syndicate/gorlex - name = "Mechanic (Gorlex Marauders)" - - uniform = /obj/item/clothing/under/syndicate/gorlex - shoes = /obj/item/clothing/shoes/workboots - alt_uniform = null - glasses = null - -/datum/outfit/job/engineer/syndicate/sbc - name = "Ship Engineer (Twinkleshine)" - - uniform = /obj/item/clothing/under/syndicate/gec - accessory = null - glasses = /obj/item/clothing/glasses/meson/night - head = /obj/item/clothing/head/hardhat/orange - gloves = /obj/item/clothing/gloves/tackler/combat/insulated - ears = /obj/item/radio/headset/syndicate - mask = /obj/item/clothing/mask/gas/syndicate/voicechanger - back = /obj/item/storage/backpack/industrial - belt = /obj/item/storage/belt/utility/syndicate - shoes = /obj/item/clothing/shoes/combat - suit = /obj/item/clothing/suit/hazardvest - alt_suit = /obj/item/clothing/suit/toggle/hazard - implants = list(/obj/item/implant/weapons_auth) - id = /obj/item/card/id/syndicate_command/crew_id/engi - backpack_contents = list(/obj/item/construction/rcd/combat, /obj/item/rcd_ammo/large) - - box = /obj/item/storage/box/survival/syndie - -/datum/outfit/job/engineer/syndicate/sbc/post_equip(mob/living/carbon/human/H) - H.faction |= list("PlayerSyndicate") - - var/obj/item/card/id/I = H.wear_id - I.registered_name = pick(GLOB.twinkle_names) + "-" + num2text(rand(6, 8)) // squidquest real - I.assignment = "Engineer" - I.access |= list(ACCESS_SYNDICATE) - I.update_label() - /datum/outfit/job/engineer/independent/ship_engineer name = "Ship Engineer (Independent)" @@ -161,16 +106,6 @@ r_pocket = null glasses = null - -/datum/outfit/job/engineer/syndicate/cybersun - name = "Engineer (Cybersun)" - - uniform = /obj/item/clothing/under/syndicate/cybersun - shoes = /obj/item/clothing/shoes/workboots - r_pocket = /obj/item/radio - head = /obj/item/clothing/head/beanie/black - accessory = /obj/item/clothing/accessory/armband/engine - /datum/outfit/job/engineer/aipirate name = "Nodesman (Engineer)" diff --git a/code/modules/jobs/job_types/warden.dm b/code/modules/jobs/job_types/warden.dm index a59b68a49892..f16d6119d147 100644 --- a/code/modules/jobs/job_types/warden.dm +++ b/code/modules/jobs/job_types/warden.dm @@ -109,35 +109,3 @@ suit = /obj/item/clothing/suit/armor/vest/security/warden/alt/nt alt_uniform = null alt_suit = null - -/datum/outfit/job/warden/syndicate/sbc - name = "Lieutenant (Twinkleshine)" - uniform = /obj/item/clothing/under/syndicate/aclf - head = /obj/item/clothing/head/HoS/beret/syndicate - ears = /obj/item/radio/headset/syndicate/alt - mask = /obj/item/clothing/mask/gas/syndicate/voicechanger - gloves = /obj/item/clothing/gloves/combat - l_pocket = /obj/item/gun/ballistic/automatic/pistol - r_pocket = /obj/item/kitchen/knife/combat/survival - belt = /obj/item/storage/belt/military/assault - shoes = /obj/item/clothing/shoes/combat - suit = /obj/item/clothing/suit/armor/vest - alt_suit = /obj/item/clothing/suit/aclf - id = /obj/item/card/id/syndicate_command/lieutenant - implants = list(/obj/item/implant/weapons_auth) - backpack_contents = list(/obj/item/melee/baton) - - backpack = /obj/item/storage/backpack/security - satchel = /obj/item/storage/backpack/satchel/sec - duffelbag = /obj/item/storage/backpack/duffelbag/syndie - courierbag = /obj/item/storage/backpack/messenger/sec - - box = /obj/item/storage/box/survival/syndie - -/datum/outfit/job/warden/syndicate/sbc/post_equip(mob/living/carbon/human/H) - H.faction |= list("PlayerSyndicate") - - var/obj/item/card/id/I = H.wear_id - I.registered_name = pick(GLOB.twinkle_names) + "-" + num2text(rand(8, 10)) // squidquest real - I.access |= list(ACCESS_SYNDICATE) - I.update_label() diff --git a/code/modules/keybindings/bindings_atom.dm b/code/modules/keybindings/bindings_atom.dm index 47d6b16feb5e..8f2a4433db65 100644 --- a/code/modules/keybindings/bindings_atom.dm +++ b/code/modules/keybindings/bindings_atom.dm @@ -16,3 +16,6 @@ if((movement_dir & EAST) && (movement_dir & WEST)) movement_dir &= ~(EAST|WEST) user.Move(get_step(src, movement_dir), movement_dir) + return !!movement_dir //true if there was actually any player input + + return FALSE diff --git a/code/modules/language/language_holder.dm b/code/modules/language/language_holder.dm index 1f42ec424706..61570535cbbf 100644 --- a/code/modules/language/language_holder.dm +++ b/code/modules/language/language_holder.dm @@ -55,7 +55,7 @@ Key procs /// Initializes, and copies in the languages from the current atom if available. /datum/language_holder/New(atom/_owner) if(_owner && QDELETED(_owner)) - CRASH("Langauge holder added to a qdeleting thing, what the fuck \ref[_owner]") + CRASH("Langauge holder added to a qdeleting thing, what the fuck [text_ref(_owner)]") owner = _owner if(istype(owner, /datum/mind)) var/datum/mind/M = owner diff --git a/code/modules/language/mouse.dm b/code/modules/language/mouse.dm index 8e488c93e5ac..98dcd9133c74 100644 --- a/code/modules/language/mouse.dm +++ b/code/modules/language/mouse.dm @@ -4,7 +4,7 @@ speech_verb = "squeaks" ask_verb = "squeaks" exclaim_verb = "squeaks" - key = "m" + key = "l" flags = NO_STUTTER | LANGUAGE_HIDE_ICON_IF_NOT_UNDERSTOOD | LANGUAGE_HIDE_ICON_IF_UNDERSTOOD /datum/language/mouse/scramble(input) diff --git a/code/modules/library/lib_codex_gigas.dm b/code/modules/library/lib_codex_gigas.dm index be017a07ef6b..c4263a771b0d 100644 --- a/code/modules/library/lib_codex_gigas.dm +++ b/code/modules/library/lib_codex_gigas.dm @@ -71,7 +71,7 @@ return FALSE if(action == "search") SStgui.close_uis(src) - addtimer(CALLBACK(src, .proc/perform_research, usr, currentName), 0) + addtimer(CALLBACK(src, PROC_REF(perform_research), usr, currentName), 0) currentName = "" currentSection = PRE_TITLE return FALSE diff --git a/code/modules/mapping/map_template.dm b/code/modules/mapping/map_template.dm index 39d443929e21..b3f5b1078b20 100644 --- a/code/modules/mapping/map_template.dm +++ b/code/modules/mapping/map_template.dm @@ -159,6 +159,7 @@ var/list/turf_blacklist = list() update_blacklist(T, turf_blacklist) + UNSETEMPTY(turf_blacklist) parsed.turf_blacklist = turf_blacklist if(!parsed.load(T.x, T.y, T.z, cropMap=TRUE, no_changeturf=(SSatoms.initialized == INITIALIZATION_INSSATOMS), placeOnTop=should_place_on_top)) return diff --git a/code/modules/mapping/preloader.dm b/code/modules/mapping/preloader.dm index 4b61663f668e..59480159f1c8 100644 --- a/code/modules/mapping/preloader.dm +++ b/code/modules/mapping/preloader.dm @@ -1,6 +1,7 @@ // global datum that will preload variables on atoms instanciation GLOBAL_VAR_INIT(use_preloader, FALSE) -GLOBAL_DATUM_INIT(_preloader, /datum/map_preloader, new) +GLOBAL_LIST_INIT(_preloader_attributes, null) +GLOBAL_LIST_INIT(_preloader_path, null) /// Preloader datum /datum/map_preloader @@ -11,15 +12,14 @@ GLOBAL_DATUM_INIT(_preloader, /datum/map_preloader, new) /world/proc/preloader_setup(list/the_attributes, path) if(the_attributes.len) GLOB.use_preloader = TRUE - var/datum/map_preloader/preloader_local = GLOB._preloader - preloader_local.attributes = the_attributes - preloader_local.target_path = path + GLOB._preloader_attributes = the_attributes + GLOB._preloader_path = path /world/proc/preloader_load(atom/what) GLOB.use_preloader = FALSE - var/datum/map_preloader/preloader_local = GLOB._preloader - for(var/attribute in preloader_local.attributes) - var/value = preloader_local.attributes[attribute] + var/list/attributes = GLOB._preloader_attributes + for(var/attribute in attributes) + var/value = attributes[attribute] if(islist(value)) value = deepCopyList(value) #ifdef TESTING diff --git a/code/modules/mapping/reader.dm b/code/modules/mapping/reader.dm index 59c0bb14dbc4..9e12fb7d4ce7 100644 --- a/code/modules/mapping/reader.dm +++ b/code/modules/mapping/reader.dm @@ -11,9 +11,13 @@ /datum/parsed_map var/original_path + /// The length of a key in this file. This is promised by the standard to be static var/key_len = 0 var/list/grid_models = list() var/list/gridSets = list() + /// List of area types we've loaded AS A PART OF THIS MAP + /// We do this to allow non unique areas, so we'll only load one per map + var/list/area/loaded_areas = list() var/list/modelCache @@ -23,19 +27,21 @@ var/list/bounds var/did_expand = FALSE - ///any turf in this list is skipped inside of build_coordinate - var/list/turf_blacklist = list() + ///any turf in this list is skipped inside of build_coordinate. Lazy assoc list + var/list/turf_blacklist // raw strings used to represent regexes more accurately // '' used to avoid confusing syntax highlighting var/static/regex/dmmRegex = new(@'"([a-zA-Z]+)" = \(((?:.|\n)*?)\)\n(?!\t)|\((\d+),(\d+),(\d+)\) = \{"([a-zA-Z\n]*)"\}', "g") - var/static/regex/trimQuotesRegex = new(@'^[\s\n]+"?|"?[\s\n]+$|^"|"$', "g") var/static/regex/trimRegex = new(@'^[\s\n]+|[\s\n]+$', "g") #ifdef TESTING var/turfsSkipped = 0 #endif +//text trimming (both directions) helper macro +#define TRIM_TEXT(text) (trim_reduced(text)) + /// Shortcut function to parse a map and apply it to the world. /// /// - `dmm_file`: A .dmm file to load (Required). @@ -53,6 +59,9 @@ /// Parse a map, possibly cropping it. /datum/parsed_map/New(tfile, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper=INFINITY, measureOnly=FALSE) + // This proc sleeps for like 6 seconds. why? + // Is it file accesses? if so, can those be done ahead of time, async to save on time here? I wonder. + // Love ya :) if(isfile(tfile)) original_path = "[tfile]" tfile = file2text(tfile) @@ -60,16 +69,23 @@ // create a new datum without loading a map return - bounds = parsed_bounds = list(1.#INF, 1.#INF, 1.#INF, -1.#INF, -1.#INF, -1.#INF) - var/stored_index = 1 + src.bounds = parsed_bounds = list(1.#INF, 1.#INF, 1.#INF, -1.#INF, -1.#INF, -1.#INF) + // lists are structs don't you know :) + var/list/bounds = src.bounds + var/list/grid_models = src.grid_models + var/key_len = src.key_len + var/stored_index = 1 + var/list/regexOutput //multiz lool while(dmmRegex.Find(tfile, stored_index)) stored_index = dmmRegex.next + // Datum var lookup is expensive, this isn't + regexOutput = dmmRegex.group // "aa" = (/type{vars=blah}) - if(dmmRegex.group[1]) // Model - var/key = dmmRegex.group[1] + if(regexOutput[1]) // Model + var/key = regexOutput[1] if(grid_models[key]) // Duplicate model keys are ignored in DMMs continue if(key_len != length(key)) @@ -78,14 +94,14 @@ else CRASH("Inconsistent key length in DMM") if(!measureOnly) - grid_models[key] = dmmRegex.group[2] + grid_models[key] = regexOutput[2] // (1,1,1) = {"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"} - else if(dmmRegex.group[3]) // Coords + else if(regexOutput[3]) // Coords if(!key_len) CRASH("Coords before model definition in DMM") - var/curr_x = text2num(dmmRegex.group[3]) + var/curr_x = text2num(regexOutput[3]) if(curr_x < x_lower || curr_x > x_upper) continue @@ -94,69 +110,96 @@ gridSet.xcrd = curr_x //position of the currently processed square - gridSet.ycrd = text2num(dmmRegex.group[4]) - gridSet.zcrd = text2num(dmmRegex.group[5]) + gridSet.ycrd = text2num(regexOutput[4]) + gridSet.zcrd = text2num(regexOutput[5]) - bounds[MAP_MINX] = min(bounds[MAP_MINX], clamp(gridSet.xcrd, x_lower, x_upper)) + bounds[MAP_MINX] = min(bounds[MAP_MINX], curr_x) bounds[MAP_MINZ] = min(bounds[MAP_MINZ], gridSet.zcrd) bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], gridSet.zcrd) - var/list/gridLines = splittext(dmmRegex.group[6], "\n") + var/list/gridLines = splittext(regexOutput[6], "\n") gridSet.gridLines = gridLines var/leadingBlanks = 0 - while(leadingBlanks < gridLines.len && gridLines[++leadingBlanks] == "") + while(leadingBlanks < length(gridLines) && gridLines[++leadingBlanks] == "") if(leadingBlanks > 1) gridLines.Cut(1, leadingBlanks) // Remove all leading blank lines. - if(!gridLines.len) // Skip it if only blank lines exist. + if(!length(gridLines)) // Skip it if only blank lines exist. continue gridSets += gridSet - if(gridLines.len && gridLines[gridLines.len] == "") - gridLines.Cut(gridLines.len) // Remove only one blank line at the end. + if(gridLines[length(gridLines)] == "") + gridLines.Cut(length(gridLines)) // Remove only one blank line at the end. - bounds[MAP_MINY] = min(bounds[MAP_MINY], clamp(gridSet.ycrd, y_lower, y_upper)) - gridSet.ycrd += gridLines.len - 1 // Start at the top and work down - bounds[MAP_MAXY] = max(bounds[MAP_MAXY], clamp(gridSet.ycrd, y_lower, y_upper)) + bounds[MAP_MINY] = min(bounds[MAP_MINY], gridSet.ycrd) + gridSet.ycrd += length(gridLines) - 1 // Start at the top and work down + bounds[MAP_MAXY] = max(bounds[MAP_MAXY], gridSet.ycrd) - var/maxx = gridSet.xcrd - if(gridLines.len) //Not an empty map - maxx = max(maxx, gridSet.xcrd + length(gridLines[1]) / key_len - 1) + var/maxx = curr_x + if(length(gridLines)) //Not an empty map + maxx = max(maxx, curr_x + length(gridLines[1]) / key_len - 1) - bounds[MAP_MAXX] = clamp(max(bounds[MAP_MAXX], maxx), x_lower, x_upper) + bounds[MAP_MAXX] = max(bounds[MAP_MAXX], maxx) CHECK_TICK // Indicate failure to parse any coordinates by nulling bounds if(bounds[1] == 1.#INF) - bounds = null - parsed_bounds = bounds + src.bounds = null + else + // Clamp all our mins and maxes down to the proscribed limits + bounds[MAP_MINX] = clamp(bounds[MAP_MINX], x_lower, x_upper) + bounds[MAP_MAXX] = clamp(bounds[MAP_MAXX], x_lower, x_upper) + bounds[MAP_MINY] = clamp(bounds[MAP_MINY], y_lower, y_upper) + bounds[MAP_MAXY] = clamp(bounds[MAP_MAXY], y_lower, y_upper) + + parsed_bounds = src.bounds + src.key_len = key_len /// Load the parsed map into the world. See [/proc/load_map] for arguments. -/datum/parsed_map/proc/load(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop) +/datum/parsed_map/proc/load(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop, whitelist = FALSE) //How I wish for RAII Master.StartLoadingMap() . = _load_impl(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop) Master.StopLoadingMap() + +#define MAPLOADING_CHECK_TICK \ + if(TICK_CHECK) { \ + SSatoms.map_loader_stop(); \ + stoplag(); \ + SSatoms.map_loader_begin(); \ + } // Do not call except via load() above. /datum/parsed_map/proc/_load_impl(x_offset = 1, y_offset = 1, z_offset = world.maxz + 1, cropMap = FALSE, no_changeturf = FALSE, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper = INFINITY, placeOnTop = FALSE) PRIVATE_PROC(TRUE) - var/list/areaCache = list() var/list/modelCache = build_cache(no_changeturf) var/space_key = modelCache[SPACE_KEY] var/list/bounds + var/key_len = src.key_len src.bounds = bounds = list(1.#INF, 1.#INF, 1.#INF, -1.#INF, -1.#INF, -1.#INF) - for(var/I in gridSets) - var/datum/grid_set/gset = I - var/ycrd = gset.ycrd + y_offset - 1 + // Tell ss atoms that we're doing maploading + // We'll have to account for this in the following tick_checks so it doesn't overflow + SSatoms.map_loader_begin() + + //used for sending the maxx and maxy expanded global signals at the end of this proc + var/has_expanded_world_maxx = FALSE + var/has_expanded_world_maxy = FALSE + var/y_relative_to_absolute = y_offset - 1 + var/x_relative_to_absolute = x_offset - 1 + for(var/datum/grid_set/gset as anything in gridSets) + var/relative_x = gset.xcrd + var/relative_y = gset.ycrd + var/true_xcrd = relative_x + x_relative_to_absolute + var/ycrd = relative_y + y_relative_to_absolute var/zcrd = gset.zcrd + z_offset - 1 if(!cropMap && ycrd > world.maxy) world.maxy = ycrd // Expand Y here. X is expanded in the loop below did_expand = TRUE var/zexpansion = zcrd > world.maxz + var/no_afterchange = no_changeturf if(zexpansion) if(cropMap) continue @@ -166,50 +209,141 @@ did_expand = FALSE if(!no_changeturf) WARNING("Z-level expansion occurred without no_changeturf set, this may cause problems when /turf/AfterChange is called") - - for(var/line in gset.gridLines) - if((ycrd - y_offset + 1) < y_lower || (ycrd - y_offset + 1) > y_upper) //Reverse operation and check if it is out of bounds of cropping. - --ycrd + no_afterchange = TRUE + // Ok so like. something important + // We talk in "relative" coords here, so the coordinate system of the map datum + // This is so we can do offsets, but it is NOT the same as positions in game + // That's why there's some uses of - y_relative_to_absolute here, to turn absolute positions into relative ones + + // Skip Y coords that are above the smallest of the three params + // So maxy and y_upper get to act as thresholds, and relative_y can play + var/y_skip_above = min(world.maxy - y_relative_to_absolute, y_upper, relative_y) + // How many lines to skip because they'd be above the y cuttoff line + var/y_starting_skip = relative_y - y_skip_above + ycrd += y_starting_skip + + // Y is the LOWEST it will ever be here, so we can easily set a threshold for how low to go + var/line_count = length(gset.gridLines) + var/lowest_y = relative_y - (line_count - 1) // -1 because we decrement at the end of the loop, not the start + var/y_ending_skip = max(max(y_lower, 1 - y_relative_to_absolute) - lowest_y, 0) + + // Now we're gonna precompute the x thresholds + // We skip all the entries below the lower x, or 1 + var/starting_x_delta = max(max(x_lower, 1 - x_relative_to_absolute) - relative_x, 0) + // The x loop counts by key length, so we gotta multiply here + var/x_starting_skip = starting_x_delta * key_len + true_xcrd += starting_x_delta + + var/line_length = 0 + if(line_count) + // This is promised as static, so we will treat it as such + line_length = length(gset.gridLines[1]) + // We're gonna skip all the entries above the upper x, or maxx if cropMap is set + var/x_target = line_length - key_len + 1 + var/x_step_count = ROUND_UP(x_target / key_len) + var/final_x = relative_x + (x_step_count - 1) + var/x_delta_with = x_upper + if(cropMap) + // Take our smaller crop threshold yes? + x_delta_with = min(x_delta_with, world.maxx) + if(final_x > x_delta_with) + // If our relative x is greater then X upper, well then we've gotta limit our expansion + var/delta = max(final_x - x_delta_with, 0) + x_step_count -= delta + final_x -= delta + x_target = x_step_count * key_len + if(final_x > world.maxx && !cropMap) + world.maxx = final_x + has_expanded_world_maxx = TRUE + + // We're gonna track the first and last pairs of coords we find + // The first x is guarenteed to be the lowest, the first y the highest, and vis versa + // This is faster then doing mins and maxes inside the hot loop below + var/first_found = FALSE + var/first_x = 0 + var/first_y = 0 + var/last_x = 0 + var/last_y = 0 + + // Everything following this line is VERY hot. How hot depends on the map format + // (Yes this does mean dmm is technically faster to parse. shut up) + + // This is the "is this map tgm" check + if(key_len == line_length) + // Wanna clear something up about maps, talking in 255x255 here + // In the tgm format, each gridset contains 255 lines, each line representing one tile, with 255 total gridsets + // In the dmm format, each gridset contains 255 lines, each line representing one row of tiles, containing 255 * line length characters, with one gridset per z + // since this is the tgm branch any cutoff of x means we just shouldn't iterate this gridset + if(!x_step_count || x_starting_skip) continue - if(ycrd <= world.maxy && ycrd >= 1) - var/xcrd = gset.xcrd + x_offset - 1 - for(var/tpos = 1 to length(line) - key_len + 1 step key_len) - if((xcrd - x_offset + 1) < x_lower || (xcrd - x_offset + 1) > x_upper) //Same as above. - ++xcrd - continue //X cropping. - if(xcrd > world.maxx) - if(cropMap) - break - else - world.maxx = xcrd - did_expand = TRUE - - if(xcrd >= 1) - var/model_key = copytext(line, tpos, tpos + key_len) - var/no_afterchange = no_changeturf || zexpansion - if(!no_afterchange || (model_key != space_key)) - var/list/cache = modelCache[model_key] - if(!cache) - CRASH("Undefined model key in DMM: [model_key]") - build_coordinate(areaCache, cache, locate(xcrd, ycrd, zcrd), no_afterchange, placeOnTop) - - // only bother with bounds that actually exist - bounds[MAP_MINX] = min(bounds[MAP_MINX], xcrd) - bounds[MAP_MINY] = min(bounds[MAP_MINY], ycrd) - bounds[MAP_MINZ] = min(bounds[MAP_MINZ], zcrd) - bounds[MAP_MAXX] = max(bounds[MAP_MAXX], xcrd) - bounds[MAP_MAXY] = max(bounds[MAP_MAXY], ycrd) - bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], zcrd) + for(var/i in 1 + y_starting_skip to line_count - y_ending_skip) + var/line = gset.gridLines[i] + if(line == space_key && no_afterchange) + #ifdef TESTING + ++turfsSkipped + #endif + ycrd-- + MAPLOADING_CHECK_TICK + continue + + var/list/cache = modelCache[line] + if(!cache) + SSatoms.map_loader_stop() + CRASH("Undefined model key in DMM: [line]") + build_coordinate(cache, locate(true_xcrd, ycrd, zcrd), no_afterchange, placeOnTop) + + // only bother with bounds that actually exist + if(!first_found) + first_found = TRUE + first_y = ycrd + last_y = ycrd + ycrd-- + MAPLOADING_CHECK_TICK + // The x coord never changes, so this is safe + if(first_found) + first_x = true_xcrd + last_x = true_xcrd + else + // This is the dmm parser, note the double loop + for(var/i in 1 + y_starting_skip to line_count - y_ending_skip) + var/line = gset.gridLines[i] + + var/xcrd = true_xcrd + for(var/tpos in 1 + x_starting_skip to x_target step key_len) + var/model_key = copytext(line, tpos, tpos + key_len) + if(model_key == space_key && no_afterchange) #ifdef TESTING - else - ++turfsSkipped + ++turfsSkipped #endif - CHECK_TICK + MAPLOADING_CHECK_TICK + ++xcrd + continue + var/list/cache = modelCache[model_key] + if(!cache) + SSatoms.map_loader_stop() + CRASH("Undefined model key in DMM: [model_key]") + build_coordinate(cache, locate(xcrd, ycrd, zcrd), no_afterchange, placeOnTop) + + // only bother with bounds that actually exist + if(!first_found) + first_found = TRUE + first_x = xcrd + first_y = ycrd + last_x = xcrd + last_y = ycrd + MAPLOADING_CHECK_TICK ++xcrd - --ycrd - - CHECK_TICK - + ycrd-- + MAPLOADING_CHECK_TICK + bounds[MAP_MINX] = min(bounds[MAP_MINX], first_x) + bounds[MAP_MINY] = min(bounds[MAP_MINY], last_y) + bounds[MAP_MINZ] = min(bounds[MAP_MINZ], zcrd) + bounds[MAP_MAXX] = max(bounds[MAP_MAXX], last_x) + bounds[MAP_MAXY] = max(bounds[MAP_MAXY], first_y) + bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], zcrd) + + // And we are done lads, call it off + SSatoms.map_loader_stop() if(!no_changeturf) for(var/t in block(locate(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ]), locate(bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ]))) var/turf/T = t @@ -221,180 +355,176 @@ testing("Skipped loading [turfsSkipped] default turfs") #endif + if(has_expanded_world_maxx || has_expanded_world_maxy) + SEND_GLOBAL_SIGNAL(COMSIG_GLOB_EXPANDED_WORLD_BOUNDS, has_expanded_world_maxx, has_expanded_world_maxy) + if(did_expand) world.refresh_atmos_grid() return TRUE +GLOBAL_LIST_EMPTY(map_model_default) + /datum/parsed_map/proc/build_cache(no_changeturf, bad_paths=null) if(modelCache && !bad_paths) return modelCache . = modelCache = list() var/list/grid_models = src.grid_models + var/set_space = FALSE + // Use where a list is needed, but where it will not be modified + // Used here to remove the cost of needing to make a new list for each fields entry when it's set manually later + var/static/list/default_list = GLOB.map_model_default for(var/model_key in grid_models) var/model = grid_models[model_key] - var/list/members = list() //will contain all members (paths) in model (in our example : /turf/unsimulated/wall and /area/mine/explored) - var/list/members_attributes = list() //will contain lists filled with corresponding variables, if any (in our example : list(icon_state = "rock") and list()) + // This is safe because dmm strings will never actually newline + // So we can parse things just fine + var/list/entries = splittext(model, ",\n") + //will contain all members (paths) in model (in our example : /turf/unsimulated/wall and /area/mine/explored) + var/list/members = new /list(length(entries)) + //will contain lists filled with corresponding variables, if any (in our example : list(icon_state = "rock") and list()) + //member attributes are rarish, so we could lazyinit this + var/list/members_attributes = new /list(length(entries)) ///////////////////////////////////////////////////////// //Constructing members and corresponding variables lists //////////////////////////////////////////////////////// var/index = 1 - var/old_position = 1 - var/dpos - - while(dpos != 0) - //finding next member (e.g /turf/unsimulated/wall{icon_state = "rock"} or /area/mine/explored) - dpos = find_next_delimiter_position(model, old_position, ",", "{", "}") //find next delimiter (comma here) that's not within {...} - - var/full_def = trim_text(copytext(model, old_position, dpos)) //full definition, e.g : /obj/foo/bar{variables=derp} - var/variables_start = findtext(full_def, "{") - var/path_text = trim_text(copytext(full_def, 1, variables_start)) + for(var/member_string in entries) + var/variables_start = 0 + //findtext is a bit expensive, lets only do this if the last char of our string is a } (IE: we know we have vars) + //this saves about 25 miliseconds on my machine. Not a major optimization + if(member_string[length(member_string)] == "}") + variables_start = findtext(member_string, "{") + + var/path_text = TRIM_TEXT(copytext(member_string, 1, variables_start)) var/atom_def = text2path(path_text) //path definition, e.g /obj/foo/bar - if(dpos) - old_position = dpos + length(model[dpos]) if(!ispath(atom_def, /atom)) // Skip the item if the path does not exist. Fix your crap, mappers! if(bad_paths) LAZYOR(bad_paths[path_text], model_key) continue - members.Add(atom_def) + members[index] = atom_def //transform the variables in text format into a list (e.g {var1="derp"; var2; var3=7} => list(var1="derp", var2, var3=7)) - var/list/fields = list() - + var/list/fields = default_list if(variables_start)//if there's any variable - full_def = copytext(full_def, variables_start + length(full_def[variables_start]), -length(copytext_char(full_def, -1))) //removing the last '}' - fields = readlist(full_def, ";") - if(fields.len) - if(!trim(fields[fields.len])) - --fields.len - for(var/I in fields) - var/value = fields[I] - if(istext(value)) - fields[I] = apply_text_macros(value) + member_string = copytext(member_string, variables_start + length(member_string[variables_start]), -length(copytext_char(member_string, -1))) //removing the last '}' + fields = readlist(member_string, ";") + for(var/I in fields) + var/value = fields[I] + if(istext(value)) + fields[I] = apply_text_macros(value) //then fill the members_attributes list with the corresponding variables - members_attributes.len++ members_attributes[index++] = fields - CHECK_TICK //check and see if we can just skip this turf //So you don't have to understand this horrid statement, we can do this if - // 1. no_changeturf is set - // 2. the space_key isn't set yet + // 1. the space_key isn't set yet + // 2. no_changeturf is set // 3. there are exactly 2 members // 4. with no attributes // 5. and the members are world.turf and world.area // Basically, if we find an entry like this: "XXX" = (/turf/default, /area/default) // We can skip calling this proc every time we see XXX - if(no_changeturf \ - && !(.[SPACE_KEY]) \ + if(!set_space \ + && no_changeturf \ && members.len == 2 \ && members_attributes.len == 2 \ && length(members_attributes[1]) == 0 \ && length(members_attributes[2]) == 0 \ && (world.area in members) \ && (world.turf in members)) - + set_space = TRUE .[SPACE_KEY] = model_key continue - .[model_key] = list(members, members_attributes) -/datum/parsed_map/proc/build_coordinate(list/areaCache, list/model, turf/crds, no_changeturf as num, placeOnTop as num) +/datum/parsed_map/proc/build_coordinate(list/model, turf/crds, no_changeturf as num, placeOnTop as num) + // If we don't have a turf, nothing we will do next will actually acomplish anything, so just go back + // Note, this would actually drop area vvs in the tile, but like, why tho + if(!crds) + return var/index var/list/members = model[1] var/list/members_attributes = model[2] + // We use static lists here because it's cheaper then passing them around + var/static/list/default_list = GLOB.map_model_default //////////////// //Instanciation //////////////// - for (var/turf_in_blacklist in turf_blacklist) - if (crds == turf_in_blacklist) //if the given turf is blacklisted, dont do anything with it - return + if(turf_blacklist?[crds]) + return //The next part of the code assumes there's ALWAYS an /area AND a /turf on a given tile //first instance the /area and remove it from the members list index = members.len + var/atom/instance if(members[index] != /area/template_noop) - var/atype = members[index] - world.preloader_setup(members_attributes[index], atype)//preloader for assigning set variables on atom creation - var/atom/instance = areaCache[atype] - if (!instance) - instance = GLOB.areas_by_type[atype] + if(members_attributes[index] != default_list) + world.preloader_setup(members_attributes[index], members[index])//preloader for assigning set variables on atom creation + instance = loaded_areas[members[index]] + if(!instance) + var/area_type = members[index] + // If this parsed map doesn't have that area already, we check the global cache + instance = GLOB.areas_by_type[area_type] + // If the global list DOESN'T have this area it's either not a unique area, or it just hasn't been created yet if (!instance) - instance = new atype(null) - areaCache[atype] = instance - if(crds) - instance.contents.Add(crds) + instance = new area_type(null) + if(!instance) + CRASH("[area_type] failed to be new'd, what'd you do?") + loaded_areas[area_type] = instance - if(GLOB.use_preloader && instance) - world.preloader_load(instance) + instance.contents.Add(crds) - //then instance the /turf and, if multiple tiles are presents, simulates the DMM underlays piling effect + if(GLOB.use_preloader) + world.preloader_load(instance) - var/first_turf_index = 1 - while(!ispath(members[first_turf_index], /turf)) //find first /turf object in members - first_turf_index++ + // Index right before /area is /turf + index-- + //then instance the /turf + //NOTE: this used to place any turfs before the last "underneath" it using .appearance and underlays + //We don't actually use this, and all it did was cost cpu, so we don't do this anymore + if(members[index] != /turf/template_noop) + if(members_attributes[index] != default_list) + world.preloader_setup(members_attributes[index], members[index]) + + // Note: we make the assertion that the last path WILL be a turf. if it isn't, this will fail. + var/old_virtual_z = crds.virtual_z + if(placeOnTop) + instance = crds.PlaceOnTop(null, members[index], CHANGETURF_DEFER_CHANGE | (no_changeturf ? CHANGETURF_SKIP : NONE)) + else if(!no_changeturf) + instance = crds.ChangeTurf(members[index], null, CHANGETURF_DEFER_CHANGE) + else + instance = create_turf(members[index], crds , old_virtual_z)//first preloader pass + var/turf/new_turf = instance + new_turf.virtual_z = old_virtual_z //UNDER NO CIRCUMSTANCES LOOSE THIS VARIABLE - //turn off base new Initialization until the whole thing is loaded - SSatoms.map_loader_begin() - //instanciate the first /turf - var/turf/T - if(members[first_turf_index] != /turf/template_noop) - T = instance_atom(members[first_turf_index],members_attributes[first_turf_index],crds,no_changeturf,placeOnTop) - - if(T) - //if others /turf are presents, simulates the underlays piling effect - index = first_turf_index + 1 - while(index <= members.len - 1) // Last item is an /area - var/underlay = T.appearance - T = instance_atom(members[index],members_attributes[index],crds,no_changeturf,placeOnTop)//instance new turf - T.underlays += underlay - index++ + if(GLOB.use_preloader && instance)//second preloader pass, for those atoms that don't ..() in New() + world.preloader_load(instance) + MAPLOADING_CHECK_TICK //finally instance all remainings objects/mobs - for(index in 1 to first_turf_index-1) - instance_atom(members[index],members_attributes[index],crds,no_changeturf,placeOnTop) - //Restore initialization to the previous value - SSatoms.map_loader_stop() + for(var/atom_index in 1 to index-1) + if(members_attributes[atom_index] != default_list) + world.preloader_setup(members_attributes[atom_index], members[atom_index]) + + // We make the assertion that only /atom s will be in this portion of the code. if that isn't true, this will fail + instance = create_atom(members[atom_index], crds)//first preloader pass + + if(GLOB.use_preloader && instance)//second preloader pass, for those atoms that don't ..() in New() + world.preloader_load(instance) + MAPLOADING_CHECK_TICK //////////////// //Helpers procs //////////////// -//Instance an atom at (x,y,z) and gives it the variables in attributes -/datum/parsed_map/proc/instance_atom(path,list/attributes, turf/crds, no_changeturf, placeOnTop) - world.preloader_setup(attributes, path) - - if(crds) - if(ispath(path, /turf)) - var/old_virtual_z = crds.virtual_z - if(placeOnTop) - . = crds.PlaceOnTop(null, path, CHANGETURF_DEFER_CHANGE | (no_changeturf ? CHANGETURF_SKIP : NONE)) - else if(!no_changeturf) - . = crds.ChangeTurf(path, null, CHANGETURF_DEFER_CHANGE) - else - . = create_turf(path, crds , old_virtual_z)//first preloader pass - var/turf/new_turf = . - new_turf.virtual_z = old_virtual_z //UNDER NO CIRCUMSTANCES LOOSE THIS VARIABLE - else - . = create_atom(path, crds)//first preloader pass - - if(GLOB.use_preloader && .)//second preloader pass, for those atoms that don't ..() in New() - world.preloader_load(.) - - //custom CHECK_TICK here because we don't want things created while we're sleeping to not initialize - if(TICK_CHECK) - SSatoms.map_loader_stop() - stoplag() - SSatoms.map_loader_begin() - /datum/parsed_map/proc/create_turf(path, crds, virtual_z) set waitfor = FALSE . = new path (crds, virtual_z) @@ -403,15 +533,6 @@ set waitfor = FALSE . = new path (crds) -//text trimming (both directions) helper proc -//optionally removes quotes before and after the text (for variable name) -/datum/parsed_map/proc/trim_text(what as text,trim_quotes=0) - if(trim_quotes) - return trimQuotesRegex.Replace(what, "") - else - return trimRegex.Replace(what, "") - - //find the position of the next delimiter,skipping whatever is comprised between opening_escape and closing_escape //returns 0 if reached the last delimiter /datum/parsed_map/proc/find_next_delimiter_position(text as text,initial_position as num, delimiter=",",opening_escape="\"",closing_escape="\"") @@ -426,7 +547,6 @@ return next_delimiter - //build a list from variables in text form (e.g {var1="derp"; var2; var3=7} => list(var1="derp", var2, var3=7)) //return the filled list /datum/parsed_map/proc/readlist(text as text, delimiter=",") @@ -434,30 +554,49 @@ if (!text) return - var/position - var/old_position = 1 - - while(position != 0) - // find next delimiter that is not within "..." - position = find_next_delimiter_position(text,old_position,delimiter) - - // check if this is a simple variable (as in list(var1, var2)) or an associative one (as in list(var1="foo",var2=7)) - var/equal_position = findtext(text,"=",old_position, position) - - var/trim_left = trim_text(copytext(text,old_position,(equal_position ? equal_position : position))) - var/left_constant = delimiter == ";" ? trim_left : parse_constant(trim_left) - if(position) - old_position = position + length(text[position]) + // If we're using a semi colon, we can do this as splittext rather then constant calls to find_next_delimiter_position + // This does make the code a bit harder to read, but saves a good bit of time so suck it up + var/using_semicolon = delimiter == ";" + if(using_semicolon) + var/list/line_entries = splittext(text, ";\n") + for(var/entry in line_entries) + // check if this is a simple variable (as in list(var1, var2)) or an associative one (as in list(var1="foo",var2=7)) + var/equal_position = findtext(entry,"=") + // This could in theory happen if someone inserts an improper newline + // Let's be nice and kill it here rather then later, it'll save like 0.02 seconds if we don't need to run trims in build_cache + if(!equal_position) + continue + var/trim_left = TRIM_TEXT(copytext(entry,1,equal_position)) - if(equal_position && !isnum(left_constant)) // Associative var, so do the association. // Note that numbers cannot be keys - the RHS is dropped if so. - var/trim_right = trim_text(copytext(text, equal_position + length(text[equal_position]), position)) + var/trim_right = TRIM_TEXT(copytext(entry, equal_position + length(entry[equal_position]))) var/right_constant = parse_constant(trim_right) - .[left_constant] = right_constant + .[trim_left] = right_constant + else + var/position + var/old_position = 1 + while(position != 0) + // find next delimiter that is not within "..." + position = find_next_delimiter_position(text,old_position,delimiter) + + // check if this is a simple variable (as in list(var1, var2)) or an associative one (as in list(var1="foo",var2=7)) + var/equal_position = findtext(text,"=",old_position, position) + var/trim_left = TRIM_TEXT(copytext(text,old_position,(equal_position ? equal_position : position))) + var/left_constant = parse_constant(trim_left) + if(position) + old_position = position + length(text[position]) + if(!left_constant) // damn newlines man. Exists to provide behavior consistency with the above loop. not a major cost becuase this path is cold + continue - else // simple var - . += list(left_constant) + if(equal_position && !isnum(left_constant)) + // Associative var, so do the association. + // Note that numbers cannot be keys - the RHS is dropped if so. + var/trim_right = TRIM_TEXT(copytext(text, equal_position + length(text[equal_position]), position)) + var/right_constant = parse_constant(trim_right) + .[left_constant] = right_constant + else // simple var + . += list(left_constant) /datum/parsed_map/proc/parse_constant(text) // number @@ -467,7 +606,10 @@ // string if(text[1] == "\"") - return copytext(text, length(text[1]) + 1, findtext(text, "\"", length(text[1]) + 1)) + // insert implied locate \" and length("\"") here + // It's a minimal timesave but it is a timesave + // Safe becuase we're guarenteed trimmed constants + return copytext(text, 2, -1) // list if(copytext(text, 1, 6) == "list(")//6 == length("list(") + 1 @@ -495,7 +637,8 @@ /datum/parsed_map/Destroy() ..() - turf_blacklist.Cut() + if(turf_blacklist) + turf_blacklist.Cut() parsed_bounds.Cut() bounds.Cut() grid_models.Cut() diff --git a/code/modules/mentor/verbs/mentorhelp.dm b/code/modules/mentor/verbs/mentorhelp.dm index 0099d7eb20e5..a81ec907320c 100644 --- a/code/modules/mentor/verbs/mentorhelp.dm +++ b/code/modules/mentor/verbs/mentorhelp.dm @@ -23,7 +23,7 @@ //spam prevention, 60 second delay remove_verb(src, /client/verb/mentorhelp) - addtimer(CALLBACK(GLOBAL_PROC, .proc/add_verb, src, /client/verb/mentorhelp), 1 MINUTES, TIMER_STOPPABLE) + addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(add_verb), src, /client/verb/mentorhelp), 1 MINUTES, TIMER_STOPPABLE) /proc/get_mentor_counts() . = list("total" = 0, "afk" = 0, "present" = 0) diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm index f36c7c441bad..8cf62d92abd4 100644 --- a/code/modules/mining/equipment/kinetic_crusher.dm +++ b/code/modules/mining/equipment/kinetic_crusher.dm @@ -33,8 +33,8 @@ /obj/item/kinetic_crusher/Initialize() . = ..() - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) /obj/item/kinetic_crusher/ComponentInitialize() . = ..() @@ -111,7 +111,7 @@ D.fire() charged = FALSE update_appearance() - addtimer(CALLBACK(src, .proc/Recharge), charge_time) + addtimer(CALLBACK(src, PROC_REF(Recharge)), charge_time) return if(proximity_flag && isliving(target)) var/mob/living/L = target @@ -352,7 +352,7 @@ /obj/item/crusher_trophy/magma_wing/on_mark_detonation(mob/living/target, mob/living/user) deadly_shot = TRUE - addtimer(CALLBACK(src, .proc/reset_deadly_shot), 300, TIMER_UNIQUE|TIMER_OVERRIDE) + addtimer(CALLBACK(src, PROC_REF(reset_deadly_shot)), 300, TIMER_UNIQUE|TIMER_OVERRIDE) /obj/item/crusher_trophy/magma_wing/proc/reset_deadly_shot() deadly_shot = FALSE @@ -405,7 +405,7 @@ /obj/item/crusher_trophy/watcher_wing_forgotten/on_mark_detonation(mob/living/target, mob/living/user) deadly_shot = TRUE - addtimer(CALLBACK(src, .proc/reset_deadly_shot), 300, TIMER_UNIQUE|TIMER_OVERRIDE) + addtimer(CALLBACK(src, PROC_REF(reset_deadly_shot)), 300, TIMER_UNIQUE|TIMER_OVERRIDE) /obj/item/crusher_trophy/watcher_wing_forgotten/proc/reset_deadly_shot() deadly_shot = FALSE @@ -538,7 +538,7 @@ continue playsound(L, 'sound/magic/fireball.ogg', 20, TRUE) new /obj/effect/temp_visual/fire(L.loc) - addtimer(CALLBACK(src, .proc/pushback, L, user), 1) //no free backstabs, we push AFTER module stuff is done + addtimer(CALLBACK(src, PROC_REF(pushback), L, user), 1) //no free backstabs, we push AFTER module stuff is done L.adjustFireLoss(bonus_value, forced = TRUE) /obj/item/crusher_trophy/tail_spike/proc/pushback(mob/living/target, mob/living/user) @@ -572,7 +572,7 @@ continue playsound(L, 'sound/magic/fireball.ogg', 20, TRUE) new /obj/effect/temp_visual/fire(L.loc) - addtimer(CALLBACK(src, .proc/pushback, L, user), 1) //no free backstabs, we push AFTER module stuff is done + addtimer(CALLBACK(src, PROC_REF(pushback), L, user), 1) //no free backstabs, we push AFTER module stuff is done L.adjustFireLoss(bonus_value, forced = TRUE) /obj/item/crusher_trophy/ash_spike/proc/pushback(mob/living/target, mob/living/user) @@ -640,7 +640,7 @@ /obj/item/crusher_trophy/blaster_tubes/on_mark_detonation(mob/living/target, mob/living/user) deadly_shot = TRUE - addtimer(CALLBACK(src, .proc/reset_deadly_shot), 300, TIMER_UNIQUE|TIMER_OVERRIDE) + addtimer(CALLBACK(src, PROC_REF(reset_deadly_shot)), 300, TIMER_UNIQUE|TIMER_OVERRIDE) /obj/item/crusher_trophy/blaster_tubes/proc/reset_deadly_shot() deadly_shot = FALSE diff --git a/code/modules/mining/equipment/regenerative_core.dm b/code/modules/mining/equipment/regenerative_core.dm index b8240b34ddd2..bf0877262923 100644 --- a/code/modules/mining/equipment/regenerative_core.dm +++ b/code/modules/mining/equipment/regenerative_core.dm @@ -35,7 +35,7 @@ /obj/item/organ/regenerative_core/Initialize() . = ..() - addtimer(CALLBACK(src, .proc/inert_check), 2400) + addtimer(CALLBACK(src, PROC_REF(inert_check)), 2400) /obj/item/organ/regenerative_core/proc/inert_check() if(!preserved) @@ -142,7 +142,7 @@ update_appearance() /obj/item/organ/regenerative_core/update_icon_state() - icon_state = inert ? "legion_soul_inert" : "legion_soul" + icon_state = inert ? "[icon_state]_inert" : "[icon_state]" return ..() /obj/item/organ/regenerative_core/update_overlays() @@ -162,6 +162,7 @@ /obj/item/organ/regenerative_core/legion/crystal name = "crystal heart" desc = "A strange rock in the shape of a heart symbol. Applying will repair your body with crystals, but may have additional side effects. It seems it can't survive for very long outside a host." + icon_state = "crystal_heart" crackle_animation = FALSE /obj/item/organ/regenerative_core/legion/crystal/Initialize() @@ -191,7 +192,6 @@ qdel(src) /obj/item/organ/regenerative_core/legion/crystal/update_icon_state() - icon_state = inert ? "crystal_heart_inert" : "crystal_heart" if(preserved) icon_state = "crystal_heart_preserved" return ..() diff --git a/code/modules/mining/equipment/resonator.dm b/code/modules/mining/equipment/resonator.dm index 9e911966f023..ce299cea1c71 100644 --- a/code/modules/mining/equipment/resonator.dm +++ b/code/modules/mining/equipment/resonator.dm @@ -73,7 +73,7 @@ transform = matrix()*0.75 animate(src, transform = matrix()*1.5, time = duration) deltimer(timerid) - timerid = addtimer(CALLBACK(src, .proc/burst), duration, TIMER_STOPPABLE) + timerid = addtimer(CALLBACK(src, PROC_REF(burst)), duration, TIMER_STOPPABLE) /obj/effect/temp_visual/resonance/Destroy() if(res) diff --git a/code/modules/mining/equipment/wormhole_jaunter.dm b/code/modules/mining/equipment/wormhole_jaunter.dm index 1e281e2f856d..9c989b986a33 100644 --- a/code/modules/mining/equipment/wormhole_jaunter.dm +++ b/code/modules/mining/equipment/wormhole_jaunter.dm @@ -99,4 +99,4 @@ L.Paralyze(60) if(ishuman(L)) shake_camera(L, 20, 1) - addtimer(CALLBACK(L, /mob/living/carbon.proc/vomit), 20) + addtimer(CALLBACK(L, TYPE_PROC_REF(/mob/living/carbon, vomit)), 20) diff --git a/code/modules/mining/lavaland/ash_flora.dm b/code/modules/mining/lavaland/ash_flora.dm index d88bddc3188c..cc90920f96a7 100644 --- a/code/modules/mining/lavaland/ash_flora.dm +++ b/code/modules/mining/lavaland/ash_flora.dm @@ -53,7 +53,7 @@ name = harvested_name desc = harvested_desc harvested = TRUE - addtimer(CALLBACK(src, .proc/regrow), rand(regrowth_time_low, regrowth_time_high)) + addtimer(CALLBACK(src, PROC_REF(regrow)), rand(regrowth_time_low, regrowth_time_high)) return 1 /obj/structure/flora/ash/proc/regrow() @@ -496,7 +496,7 @@ name = harvested_name desc = harvested_desc harvested = TRUE - addtimer(CALLBACK(src, .proc/regrow), rand(regrowth_time_low, regrowth_time_high)) + addtimer(CALLBACK(src, PROC_REF(regrow)), rand(regrowth_time_low, regrowth_time_high)) return 1 /obj/structure/flora/ash/glowshroom diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index 698e0a2dae25..a291811d5e83 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -393,7 +393,7 @@ /obj/effect/wisp/orbit(atom/thing, radius, clockwise, rotation_speed, rotation_segments, pre_rotation, lockinorbit) . = ..() if(ismob(thing)) - RegisterSignal(thing, COMSIG_MOB_UPDATE_SIGHT, .proc/update_user_sight) + RegisterSignal(thing, COMSIG_MOB_UPDATE_SIGHT, PROC_REF(update_user_sight)) var/mob/being = thing being.update_sight() to_chat(thing, "The wisp enhances your vision.") @@ -630,7 +630,7 @@ can_destroy = FALSE - addtimer(CALLBACK(src, .proc/unvanish, user), 15 SECONDS) + addtimer(CALLBACK(src, PROC_REF(unvanish), user), 15 SECONDS) /obj/effect/immortality_talisman/proc/unvanish(mob/user) user.status_flags &= ~GODMODE @@ -865,7 +865,7 @@ if(ismovable(hit_atom) && !caught && (!thrown_by || thrown_by && COOLDOWN_FINISHED(src, freeze_cooldown))) freeze(hit_atom) if(thrown_by && !caught) - addtimer(CALLBACK(src, /atom/movable.proc/throw_at, thrown_by, throw_range+2, throw_speed, null, TRUE), 1) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/movable, throw_at), thrown_by, throw_range+2, throw_speed, null, TRUE), 1) /obj/item/freeze_cube/proc/freeze(atom/movable/hit_atom) playsound(src, 'sound/effects/glassbr3.ogg', 50, TRUE) @@ -904,8 +904,8 @@ . = ..() if(slot == ITEM_SLOT_GLOVES) tool_behaviour = TOOL_MINING - RegisterSignal(user, COMSIG_HUMAN_EARLY_UNARMED_ATTACK, .proc/rocksmash) - RegisterSignal(user, COMSIG_MOVABLE_BUMP, .proc/rocksmash) + RegisterSignal(user, COMSIG_HUMAN_EARLY_UNARMED_ATTACK, PROC_REF(rocksmash)) + RegisterSignal(user, COMSIG_MOVABLE_BUMP, PROC_REF(rocksmash)) else stopmining(user) @@ -1520,7 +1520,7 @@ /obj/item/mayhem/attack_self(mob/user) for(var/mob/living/carbon/human/H in range(7,user)) var/obj/effect/mine/pickup/bloodbath/B = new(H) - INVOKE_ASYNC(B, /obj/effect/mine/pickup/bloodbath/.proc/mineEffect, H) + INVOKE_ASYNC(B, TYPE_PROC_REF(/obj/effect/mine/pickup/bloodbath, mineEffect), H) to_chat(user, "You shatter the bottle!") playsound(user.loc, 'sound/effects/glassbr1.ogg', 100, TRUE) message_admins("[ADMIN_LOOKUPFLW(user)] has activated a bottle of mayhem!") @@ -1636,11 +1636,11 @@ calculate_anger_mod(user) timer = world.time + CLICK_CD_MELEE //by default, melee attacks only cause melee blasts, and have an accordingly short cooldown if(proximity_flag) - INVOKE_ASYNC(src, .proc/aoe_burst, T, user) + INVOKE_ASYNC(src, PROC_REF(aoe_burst), T, user) log_combat(user, target, "fired 3x3 blast at", src) else if(ismineralturf(target) && get_dist(user, target) < 6) //target is minerals, we can hit it(even if we can't see it) - INVOKE_ASYNC(src, .proc/cardinal_blasts, T, user) + INVOKE_ASYNC(src, PROC_REF(cardinal_blasts), T, user) timer = world.time + cooldown_time else if(target in view(5, get_turf(user))) //if the target is in view, hit it timer = world.time + cooldown_time @@ -1651,12 +1651,12 @@ C.monster_damage_boost = FALSE log_combat(user, target, "fired a chaser at", src) else - INVOKE_ASYNC(src, .proc/cardinal_blasts, T, user) //otherwise, just do cardinal blast + INVOKE_ASYNC(src, PROC_REF(cardinal_blasts), T, user) //otherwise, just do cardinal blast log_combat(user, target, "fired cardinal blast at", src) else to_chat(user, "That target is out of range!" ) timer = world.time - INVOKE_ASYNC(src, .proc/prepare_icon_update) + INVOKE_ASYNC(src, PROC_REF(prepare_icon_update)) /obj/item/hierophant_club/proc/calculate_anger_mod(mob/user) //we get stronger as the user loses health chaser_cooldown = initial(chaser_cooldown) @@ -1695,7 +1695,7 @@ user.visible_message("[user] starts fiddling with [src]'s pommel...", \ "You start detaching the hierophant beacon...") timer = world.time + 51 - INVOKE_ASYNC(src, .proc/prepare_icon_update) + INVOKE_ASYNC(src, PROC_REF(prepare_icon_update)) if(do_after(user, 50, target = user) && !beacon) var/turf/T = get_turf(user) playsound(T,'sound/magic/blind.ogg', 200, TRUE, -4) @@ -1707,7 +1707,7 @@ You can remove the beacon to place it again by striking it with the club.") else timer = world.time - INVOKE_ASYNC(src, .proc/prepare_icon_update) + INVOKE_ASYNC(src, PROC_REF(prepare_icon_update)) else to_chat(user, "You need to be on solid ground to detach the beacon!") return @@ -1725,7 +1725,7 @@ user.update_action_buttons_icon() user.visible_message("[user] starts to glow faintly...") timer = world.time + 50 - INVOKE_ASYNC(src, .proc/prepare_icon_update) + INVOKE_ASYNC(src, PROC_REF(prepare_icon_update)) beacon.icon_state = "hierophant_tele_on" var/obj/effect/temp_visual/hierophant/telegraph/edge/TE1 = new /obj/effect/temp_visual/hierophant/telegraph/edge(user.loc) var/obj/effect/temp_visual/hierophant/telegraph/edge/TE2 = new /obj/effect/temp_visual/hierophant/telegraph/edge(beacon.loc) @@ -1737,7 +1737,7 @@ to_chat(user, "The beacon is blocked by something, preventing teleportation!") user.update_action_buttons_icon() timer = world.time - INVOKE_ASYNC(src, .proc/prepare_icon_update) + INVOKE_ASYNC(src, PROC_REF(prepare_icon_update)) beacon.icon_state = "hierophant_tele_off" return new /obj/effect/temp_visual/hierophant/telegraph(T, user) @@ -1749,7 +1749,7 @@ if(user) user.update_action_buttons_icon() timer = world.time - INVOKE_ASYNC(src, .proc/prepare_icon_update) + INVOKE_ASYNC(src, PROC_REF(prepare_icon_update)) if(beacon) beacon.icon_state = "hierophant_tele_off" return @@ -1758,7 +1758,7 @@ to_chat(user, "The beacon is blocked by something, preventing teleportation!") user.update_action_buttons_icon() timer = world.time - INVOKE_ASYNC(src, .proc/prepare_icon_update) + INVOKE_ASYNC(src, PROC_REF(prepare_icon_update)) beacon.icon_state = "hierophant_tele_off" return user.log_message("teleported self from [AREACOORD(source)] to [beacon]", LOG_GAME) @@ -1771,7 +1771,7 @@ var/obj/effect/temp_visual/hierophant/blast/B = new /obj/effect/temp_visual/hierophant/blast(t, user, TRUE) //but absolutely will hurt enemies B.damage = 30 for(var/mob/living/L in range(1, source)) - INVOKE_ASYNC(src, .proc/teleport_mob, source, L, T, user) //regardless, take all mobs near us along + INVOKE_ASYNC(src, PROC_REF(teleport_mob), source, L, T, user) //regardless, take all mobs near us along sleep(6) //at this point the blasts detonate if(beacon) beacon.icon_state = "hierophant_tele_off" @@ -1779,7 +1779,7 @@ qdel(TE1) qdel(TE2) timer = world.time - INVOKE_ASYNC(src, .proc/prepare_icon_update) + INVOKE_ASYNC(src, PROC_REF(prepare_icon_update)) if(beacon) beacon.icon_state = "hierophant_tele_off" teleporting = FALSE @@ -1820,7 +1820,7 @@ B.damage = HIEROPHANT_CLUB_CARDINAL_DAMAGE B.monster_damage_boost = FALSE for(var/d in GLOB.cardinals) - INVOKE_ASYNC(src, .proc/blast_wall, T, d, user) + INVOKE_ASYNC(src, PROC_REF(blast_wall), T, d, user) /obj/item/hierophant_club/proc/blast_wall(turf/T, dir, mob/living/user) //make a wall of blasts blast_range tiles long if(!T) diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm index 6ac92bd75e34..10f43aad4580 100644 --- a/code/modules/mining/machine_processing.dm +++ b/code/modules/mining/machine_processing.dm @@ -24,7 +24,7 @@ /obj/machinery/mineral/proc/register_input_turf() input_turf = get_step(src, input_dir) if(input_turf) // make sure there is actually a turf - RegisterSignal(input_turf, COMSIG_ATOM_ENTERED, .proc/pickup_item) + RegisterSignal(input_turf, COMSIG_ATOM_ENTERED, PROC_REF(pickup_item)) /// Unregisters signals that are registered the machine's input turf, if it has one. /obj/machinery/mineral/proc/unregister_input_turf() diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm index 67379f1df8b5..ec971ed84bed 100644 --- a/code/modules/mining/ores_coins.dm +++ b/code/modules/mining/ores_coins.dm @@ -332,7 +332,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ else user.visible_message("[user] strikes \the [src], causing a chain reaction!", "You strike \the [src], causing a chain reaction.") log_bomber(user, "has primed a", src, "for detonation", notify_admins) - det_timer = addtimer(CALLBACK(src, .proc/detonate, notify_admins), det_time, TIMER_STOPPABLE) + det_timer = addtimer(CALLBACK(src, PROC_REF(detonate), notify_admins), det_time, TIMER_STOPPABLE) /obj/item/gibtonite/proc/detonate(notify_admins) if(primed) diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index 6f37de4c4c77..d7865c9d2276 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -291,6 +291,12 @@ if(auth_check) return + if(!client.prefs.randomise[RANDOM_NAME]) // do they have random names enabled + var/name = client.prefs.real_name + if(GLOB.real_names_joined.Find(name)) // is there someone who spawned with the same name + to_chat(usr, "Someone has spawned with this name already.") + return FALSE + var/error = IsJobUnavailable(job, ship, check_playtime) if(error != JOB_AVAILABLE) alert(src, get_job_unavailable_error_message(error, job)) @@ -398,6 +404,7 @@ close_spawn_windows() var/mob/living/carbon/human/H = new(loc) + GLOB.joined_player_list += ckey var/frn = CONFIG_GET(flag/force_random_names) var/admin_anon_names = SSticker.anonymousnames @@ -418,6 +425,7 @@ is_antag = TRUE client.prefs.copy_to(H, antagonist = is_antag) + update_names_joined_list(H.real_name) H.dna.update_dna_identity() if(mind) if(transfer_after) 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 443f13c6917f..afe97c858cff 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 @@ -54,7 +54,7 @@ var/gender_specific //Something that can be worn by either gender, but looks different on each var/use_static //determines if the accessory will be skipped by color preferences var/color_src = MUTCOLORS //Currently only used by mutantparts so don't worry about hair and stuff. This is the source that this accessory will get its color from. Default is MUTCOLOR, but can also be HAIR, FACEHAIR, EYECOLOR and 0 if none. - var/hasinner //Decides if this sprite has an "inner" part, such as the fleshy parts on ears. + var/secondary_color //Decides if this sprite has a secondary color in use. var/locked = FALSE //Is this part locked from roundstart selection? Used for parts that apply effects var/center = FALSE //Should we center the sprite? var/limbs_id //The limbs id supplied for full-body replacing features. diff --git a/code/modules/mob/dead/new_player/sprite_accessories/ears.dm b/code/modules/mob/dead/new_player/sprite_accessories/ears.dm index 36b2f4d91dab..8b0ec1d6f79d 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/ears.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/ears.dm @@ -11,13 +11,13 @@ icon = 'icons/mob/species/misc/cat.dmi' name = "Cat" icon_state = "cat" - hasinner = 1 + secondary_color = TRUE color_src = HAIR /datum/sprite_accessory/ears/cat/slime name = "Slimecat" icon_state = "cat" - hasinner = FALSE + secondary_color = FALSE color_src = HAIR image_alpha = 150 @@ -25,11 +25,11 @@ icon = 'icons/mob/species/misc/fox.dmi' name = "Fox" icon_state = "fox" - hasinner = 1 + secondary_color = TRUE color_src = HAIR /datum/sprite_accessory/ears/elf name = "Elf" icon_state = "elf" - hasinner = FALSE + secondary_color = FALSE color_src = SKINCOLORS diff --git a/code/modules/mob/dead/new_player/sprite_accessories/hair.dm b/code/modules/mob/dead/new_player/sprite_accessories/hair.dm index 95f937811444..af774d9b055b 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/hair.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/hair.dm @@ -198,10 +198,6 @@ name = "Crewcut" icon_state = "hair_crewcut" -/datum/sprite_accessory/hair/curls - name = "Curls" - icon_state = "hair_curls" - /datum/sprite_accessory/hair/cut name = "Cut Hair" icon_state = "hair_c" @@ -330,10 +326,6 @@ name = "Hime Cut" icon_state = "hair_himecut" -/datum/sprite_accessory/hair/himecut2 - name = "Hime Cut 2" - icon_state = "hair_himecut2" - /datum/sprite_accessory/hair/shorthime name = "Hime Cut (Short)" icon_state = "hair_shorthime" @@ -378,10 +370,6 @@ name = "Long Hair 2" icon_state = "hair_long2" -/datum/sprite_accessory/hair/long3 - name = "Long Hair 3" - icon_state = "hair_long3" - /datum/sprite_accessory/hair/long_over_eye name = "Long Over Eye" icon_state = "hair_longovereye" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/lizard.dm b/code/modules/mob/dead/new_player/sprite_accessories/lizard.dm index e18e88353061..ce536a403e48 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/lizard.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/lizard.dm @@ -172,7 +172,7 @@ /datum/sprite_accessory/frills/ears name = "Normal ears" icon_state = "ears" - hasinner = TRUE + secondary_color = TRUE //End ears /datum/sprite_accessory/frills/simple name = "Simple" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/rachnid.dm b/code/modules/mob/dead/new_player/sprite_accessories/rachnid.dm index 1e60fd1d7ab5..d34b915e3e35 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/rachnid.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/rachnid.dm @@ -4,52 +4,37 @@ /datum/sprite_accessory/spider_legs icon = 'icons/mob/species/rachnid/spider_legs.dmi' - color_src = MUTCOLORS - -/datum/sprite_accessory/spider_legs/plain - name = "Plain" - icon_state = "plain" + color_src = 0 + secondary_color = TRUE -/datum/sprite_accessory/spider_legs/fuzzy - name = "Fuzzy" - icon_state = "fuzzy" - -/datum/sprite_accessory/spider_legs/spiky - name = "Spiky" - icon_state = "spiky" +/datum/sprite_accessory/spider_legs/carapace + name = "Carapace" + icon_state = "carapace" //Start spinner /datum/sprite_accessory/spider_spinneret icon = 'icons/mob/species/rachnid/spider_spinneret.dmi' color_src = MUTCOLORS + secondary_color = TRUE -/datum/sprite_accessory/spider_spinneret/plain - name = "Plain" - icon_state = "plain" - -/datum/sprite_accessory/spider_spinneret/fuzzy - name = "Fuzzy" - icon_state = "fuzzy" +/datum/sprite_accessory/spider_spinneret/spikecore + name = "Spikecore" + icon_state = "spikecore" -/datum/sprite_accessory/spider_spinneret/black_widow - name = "Black Widow" - icon_state = "blackwidow" - -//Start mandible - -/datum/sprite_accessory/spider_mandibles - icon = 'icons/mob/species/rachnid/spider_mandibles.dmi' - color_src = MUTCOLORS +/datum/sprite_accessory/spider_spinneret/cerberus + name = "Cerberus" + icon_state = "cerberus" -/datum/sprite_accessory/spider_mandibles/plain - name = "Plain" - icon_state = "plain" +/datum/sprite_accessory/spider_spinneret/queen + name = "Queen" + icon_state = "queen" -/datum/sprite_accessory/spider_mandibles/fuzzy - name = "Fuzzy" - icon_state = "fuzzy" +/datum/sprite_accessory/spider_spinneret/folds + name = "Folds" + icon_state = "folds" + secondary_color = FALSE -/datum/sprite_accessory/spider_mandibles/spiky - name = "Spiky" - icon_state = "spiky" +/datum/sprite_accessory/spider_spinneret/prongs + name = "Prongs" + icon_state = "prongs" diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index dca421b8736d..5d8c44bbc188 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -156,7 +156,7 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) var/old_color = color color = "#960000" animate(src, color = old_color, time = 10, flags = ANIMATION_PARALLEL) - addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 10) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 10) /mob/dead/observer/Destroy() // Update our old body's medhud since we're abandoning it @@ -662,14 +662,11 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp target.faction = list("neutral") return TRUE -//this is a mob verb instead of atom for performance reasons -//see /mob/verb/examinate() in mob.dm for more info -//overridden here and in /mob/living for different point span classes and sanity checks -/mob/dead/observer/pointed(atom/A as mob|obj|turf in view(client.view, src)) +/mob/dead/observer/_pointed(atom/pointed_at) if(!..()) return FALSE - usr.visible_message("[src] points to [A].") - return TRUE + + usr.visible_message("[src] points to [pointed_at].") /mob/dead/observer/verb/view_manifest() set name = "View Crew Manifest" diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index 85a3fd324809..de07b3d4f0fd 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -431,6 +431,10 @@ set name = "quick-equip" set hidden = TRUE + DEFAULT_QUEUE_OR_CALL_VERB(VERB_CALLBACK(src, PROC_REF(execute_quick_equip))) + +///proc extender of [/mob/verb/quick_equip] used to make the verb queuable if the server is overloaded +/mob/proc/execute_quick_equip() var/obj/item/I = get_active_held_item() if (I) I.equip_to_best_slot(src) @@ -439,6 +443,9 @@ set name = "equipment-swap" set hidden = TRUE + DEFAULT_QUEUE_OR_CALL_VERB(VERB_CALLBACK(src, PROC_REF(execute_equipment_swap))) + +/mob/proc/execute_equipment_swap() var/obj/item/I = get_active_held_item() if (I) if(!do_after(src, 1 SECONDS, target = I)) diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm index a986fc5be298..aec75960989d 100644 --- a/code/modules/mob/living/blood.dm +++ b/code/modules/mob/living/blood.dm @@ -9,7 +9,7 @@ return else bleedsuppress = TRUE - addtimer(CALLBACK(src, .proc/resume_bleeding), amount) + addtimer(CALLBACK(src, PROC_REF(resume_bleeding)), amount) /mob/living/carbon/human/proc/resume_bleeding() bleedsuppress = 0 diff --git a/code/modules/mob/living/bloodcrawl.dm b/code/modules/mob/living/bloodcrawl.dm index 6aaa361b0bfb..bc0f3849360f 100644 --- a/code/modules/mob/living/bloodcrawl.dm +++ b/code/modules/mob/living/bloodcrawl.dm @@ -38,7 +38,7 @@ C.regenerate_icons() notransform = TRUE - INVOKE_ASYNC(src, .proc/bloodpool_sink, B) + INVOKE_ASYNC(src, PROC_REF(bloodpool_sink), B) return TRUE @@ -155,7 +155,7 @@ newcolor = rgb(43, 186, 0) add_atom_colour(newcolor, TEMPORARY_COLOUR_PRIORITY) // but only for a few seconds - addtimer(CALLBACK(src, /atom/.proc/remove_atom_colour, TEMPORARY_COLOUR_PRIORITY, newcolor), 6 SECONDS) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, remove_atom_colour), TEMPORARY_COLOUR_PRIORITY, newcolor), 6 SECONDS) /mob/living/proc/phasein(obj/effect/decal/cleanable/B) if(notransform) diff --git a/code/modules/mob/living/brain/posibrain.dm b/code/modules/mob/living/brain/posibrain.dm index 06bc7e0bc886..1cba16cc0a9a 100644 --- a/code/modules/mob/living/brain/posibrain.dm +++ b/code/modules/mob/living/brain/posibrain.dm @@ -58,7 +58,7 @@ GLOBAL_VAR(posibrain_notify_cooldown) next_ask = world.time + askDelay searching = TRUE update_appearance() - addtimer(CALLBACK(src, .proc/check_success), askDelay) + addtimer(CALLBACK(src, PROC_REF(check_success)), askDelay) /obj/item/mmi/posibrain/AltClick(mob/living/user) if(!istype(user) || !user.canUseTopic(src, BE_CLOSE)) diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm index 186dedcc86d5..5163821a9573 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm @@ -103,7 +103,7 @@ leaping = 1 weather_immunities += "lava" update_icons() - throw_at(leap_target, MAX_ALIEN_LEAP_DIST, 2, src, FALSE, TRUE, callback = CALLBACK(src, .proc/leap_end)) + throw_at(leap_target, MAX_ALIEN_LEAP_DIST, 2, src, FALSE, TRUE, callback = CALLBACK(src, PROC_REF(leap_end))) #undef MAX_ALIEN_LEAP_DIST diff --git a/code/modules/mob/living/carbon/alien/organs.dm b/code/modules/mob/living/carbon/alien/organs.dm index 33e8cb7ab708..8faa15b83929 100644 --- a/code/modules/mob/living/carbon/alien/organs.dm +++ b/code/modules/mob/living/carbon/alien/organs.dm @@ -137,7 +137,7 @@ recent_queen_death = 1 owner.throw_alert("alien_noqueen", /atom/movable/screen/alert/alien_vulnerable) - addtimer(CALLBACK(src, .proc/clear_queen_death), QUEEN_DEATH_DEBUFF_DURATION) + addtimer(CALLBACK(src, PROC_REF(clear_queen_death)), QUEEN_DEATH_DEBUFF_DURATION) /obj/item/organ/alien/hivenode/proc/clear_queen_death() diff --git a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm index b2020b3b9c71..49ff1e88937b 100644 --- a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm +++ b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm @@ -49,7 +49,7 @@ /obj/item/organ/body_egg/alien_embryo/egg_process() if(stage < 5 && prob(3)) stage++ - INVOKE_ASYNC(src, .proc/RefreshInfectionImage) + INVOKE_ASYNC(src, PROC_REF(RefreshInfectionImage)) if(stage == 5 && prob(50)) for(var/datum/surgery/S in owner.surgeries) diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm index 39958b84fc0d..a9caeba37208 100644 --- a/code/modules/mob/living/carbon/alien/special/facehugger.dm +++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm @@ -206,7 +206,7 @@ if(!facehugger_mob.sterile) target.take_bodypart_damage(brute = facehugger_mob.melee_damage_upper) target.Unconscious(facehugger_mob.pregnation_time) - addtimer(CALLBACK(src, .proc/Impregnate, target), facehugger_mob.pregnation_time) + addtimer(CALLBACK(src, PROC_REF(Impregnate), target), facehugger_mob.pregnation_time) COOLDOWN_START(facehugger_mob, coupling_cooldown, facehugger_mob.couple_retry_time) /** diff --git a/code/modules/mob/living/carbon/alien/utilities/structures.dm b/code/modules/mob/living/carbon/alien/utilities/structures.dm index 3ebba3ed7958..0ac30d207a41 100644 --- a/code/modules/mob/living/carbon/alien/utilities/structures.dm +++ b/code/modules/mob/living/carbon/alien/utilities/structures.dm @@ -195,7 +195,7 @@ check_weed = new(check_turf) //set the new one's parent node to our parent node check_weed.parent_node = parent_node - check_weed.RegisterSignal(parent_node, COMSIG_PARENT_QDELETING, .proc/after_parent_destroyed) + check_weed.RegisterSignal(parent_node, COMSIG_PARENT_QDELETING, PROC_REF(after_parent_destroyed)) /** * Called when the parent node is destroyed @@ -203,7 +203,7 @@ /obj/structure/alien/weeds/proc/after_parent_destroyed() if(!find_new_parent()) var/random_time = rand(2 SECONDS, 8 SECONDS) - addtimer(CALLBACK(src, .proc/do_qdel), random_time) + addtimer(CALLBACK(src, PROC_REF(do_qdel)), random_time) /** * Called when trying to find a new parent after our previous parent died @@ -218,7 +218,7 @@ continue parent_node = new_parent - RegisterSignal(parent_node, COMSIG_PARENT_QDELETING, .proc/after_parent_destroyed) + RegisterSignal(parent_node, COMSIG_PARENT_QDELETING, PROC_REF(after_parent_destroyed)) return parent_node return FALSE @@ -319,7 +319,7 @@ if(status == GROWING || status == GROWN) child = new(src) if(status == GROWING) - addtimer(CALLBACK(src, .proc/Grow), GROWTH_TIME) + addtimer(CALLBACK(src, PROC_REF(Grow)), GROWTH_TIME) proximity_monitor = new(src, status == GROWN ? 1 : 0) if(status == BURST) obj_integrity = integrity_failure * max_integrity @@ -375,7 +375,7 @@ proximity_monitor.set_range(0) update_appearance() flick("egg_opening", src) - addtimer(CALLBACK(src, .proc/finish_bursting, kill), 15) + addtimer(CALLBACK(src, PROC_REF(finish_bursting), kill), 15) /obj/structure/alien/egg/proc/finish_bursting(kill = TRUE) if(child) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 84f67c8f8814..82c27e95174b 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -399,7 +399,7 @@ switch(rand(1,100)+modifier) //91-100=Nothing special happens if(-INFINITY to 0) //attack yourself - INVOKE_ASYNC(I, /obj/item.proc/attack, src, src) + INVOKE_ASYNC(I, TYPE_PROC_REF(/obj/item, attack), src, src) if(1 to 30) //throw it at yourself I.throw_impact(src) if(31 to 60) //Throw object in facing direction diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index a99baf1baf54..df9b5c22704d 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -248,7 +248,7 @@ target.visible_message("[name] kicks [target.name] onto [target.p_their()] side!", "You're kicked onto your side by [name]!", "You hear aggressive shuffling followed by a loud thud!", COMBAT_MESSAGE_RANGE, src) to_chat(src, "You kick [target.name] onto [target.p_their()] side!") - addtimer(CALLBACK(target, /mob/living/proc/SetKnockdown, 0), SHOVE_CHAIN_PARALYZE) + addtimer(CALLBACK(target, TYPE_PROC_REF(/mob/living, SetKnockdown), 0), SHOVE_CHAIN_PARALYZE) log_combat(src, target, "kicks", "onto their side (paralyzing)") if(shove_blocked && !target.is_shove_knockdown_blocked() && !target.buckled) @@ -304,7 +304,7 @@ if(target_held_item) target.visible_message("[target.name]'s grip on \the [target_held_item] loosens!", "Your grip on \the [target_held_item] loosens!", null, COMBAT_MESSAGE_RANGE) - addtimer(CALLBACK(target, /mob/living/carbon/proc/clear_shove_slowdown), SHOVE_SLOWDOWN_LENGTH) + addtimer(CALLBACK(target, TYPE_PROC_REF(/mob/living/carbon, clear_shove_slowdown)), SHOVE_SLOWDOWN_LENGTH) else if(target_held_item) target.dropItemToGround(target_held_item) knocked_item = TRUE @@ -374,7 +374,7 @@ jitteriness += 1000 do_jitter_animation(jitteriness) stuttering += 2 - addtimer(CALLBACK(src, .proc/secondary_shock, should_stun), 20) + addtimer(CALLBACK(src, PROC_REF(secondary_shock), should_stun), 20) return shock_damage ///Called slightly after electrocute act to reduce jittering and apply a secondary stun. diff --git a/code/modules/mob/living/carbon/damage_procs.dm b/code/modules/mob/living/carbon/damage_procs.dm index 4da26d4406ca..2045bfe4aa18 100644 --- a/code/modules/mob/living/carbon/damage_procs.dm +++ b/code/modules/mob/living/carbon/damage_procs.dm @@ -25,12 +25,16 @@ update_damage_overlays() else //no bodypart, we deal damage with a more general method. adjustBruteLoss(damage_amount, forced = forced) + if(stat <= HARD_CRIT) + shake_animation(damage_amount) if(BURN) if(BP) if(BP.receive_damage(0, damage_amount, break_modifier)) update_damage_overlays() else adjustFireLoss(damage_amount, forced = forced) + if(stat <= HARD_CRIT) + shake_animation(damage_amount) if(TOX) adjustToxLoss(damage_amount, forced = forced) if(OXY) @@ -43,6 +47,8 @@ update_damage_overlays() else adjustStaminaLoss(damage_amount, forced = forced) + if(stat <= HARD_CRIT) + shake_animation(damage_amount) return TRUE diff --git a/code/modules/mob/living/carbon/death.dm b/code/modules/mob/living/carbon/death.dm index 5062adbff8a1..8c1a36c2061b 100644 --- a/code/modules/mob/living/carbon/death.dm +++ b/code/modules/mob/living/carbon/death.dm @@ -6,7 +6,7 @@ losebreath = 0 if(!gibbed) - INVOKE_ASYNC(src, .proc/emote, "deathgasp") + INVOKE_ASYNC(src, PROC_REF(emote), "deathgasp") reagents.end_metabolization(src) . = ..() @@ -19,7 +19,7 @@ SSticker.mode.check_win() //Calls the rounds wincheck, mainly for wizard, malf, and changeling now /mob/living/carbon/proc/inflate_gib() // Plays an animation that makes mobs appear to inflate before finally gibbing - addtimer(CALLBACK(src, .proc/gib, null, null, TRUE, TRUE), 25) + addtimer(CALLBACK(src, PROC_REF(gib), null, null, TRUE, TRUE), 25) var/matrix/M = matrix() M.Scale(1.8, 1.2) animate(src, time = 40, transform = M, easing = SINE_EASING) diff --git a/code/modules/mob/living/carbon/emote.dm b/code/modules/mob/living/carbon/emote.dm index 3a4591fabb98..55b01d4200e2 100644 --- a/code/modules/mob/living/carbon/emote.dm +++ b/code/modules/mob/living/carbon/emote.dm @@ -26,7 +26,7 @@ var/list/key_emotes = GLOB.emote_list["blink"] for(var/datum/emote/living/carbon/blink/living_emote in key_emotes) // The existing timer restarts if it's already running - blink_timer = addtimer(CALLBACK(living_emote, .proc/end_blink, living_user), BLINK_DURATION, TIMER_UNIQUE | TIMER_OVERRIDE) + blink_timer = addtimer(CALLBACK(living_emote, PROC_REF(end_blink), living_user), BLINK_DURATION, TIMER_UNIQUE | TIMER_OVERRIDE) /datum/emote/living/carbon/blink/proc/end_blink(mob/living/living_user) if(!QDELETED(living_user)) @@ -429,7 +429,7 @@ icon = 'icons/mob/animal.dmi' icon_state = "heart" hitsound = 'sound/effects/kiss.ogg' - hitsound_wall = 'sound/effects/kiss.ogg' + hitsound_non_living = 'sound/effects/kiss.ogg' pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE speed = 1.6 damage_type = BRUTE @@ -480,7 +480,7 @@ if(2) other_msg = "stammers softly for a moment before choking on something!" self_msg = "You feel your tongue disappear down your throat as you fight to remember how to make words!" - addtimer(CALLBACK(living_target, /atom/movable.proc/say, pick("Uhhh...", "O-oh, uhm...", "I- uhhhhh??", "You too!!", "What?")), rand(0.5 SECONDS, 1.5 SECONDS)) + addtimer(CALLBACK(living_target, TYPE_PROC_REF(/atom/movable, say), pick("Uhhh...", "O-oh, uhm...", "I- uhhhhh??", "You too!!", "What?")), rand(0.5 SECONDS, 1.5 SECONDS)) living_target.stuttering += rand(5, 15) if(3) other_msg = "locks up with a stunned look on [living_target.p_their()] face, staring at [firer ? firer : "the ceiling"]!" @@ -528,7 +528,7 @@ var/mob/living/owner = loc if(!istype(owner)) return - RegisterSignal(owner, COMSIG_PARENT_EXAMINE, .proc/ownerExamined) + RegisterSignal(owner, COMSIG_PARENT_EXAMINE, PROC_REF(ownerExamined)) /obj/item/circlegame/Destroy() var/mob/owner = loc @@ -543,7 +543,7 @@ if(!istype(sucker) || !in_range(owner, sucker)) return - addtimer(CALLBACK(src, .proc/waitASecond, owner, sucker), 4) + addtimer(CALLBACK(src, PROC_REF(waitASecond), owner, sucker), 4) /// Stage 2: Fear sets in /obj/item/circlegame/proc/waitASecond(mob/living/owner, mob/living/sucker) @@ -552,10 +552,10 @@ if(owner == sucker) // big mood to_chat(owner, "Wait a second... you just looked at your own [src.name]!") - addtimer(CALLBACK(src, .proc/selfGottem, owner), 10) + addtimer(CALLBACK(src, PROC_REF(selfGottem), owner), 10) else to_chat(sucker, "Wait a second... was that a-") - addtimer(CALLBACK(src, .proc/GOTTEM, owner, sucker), 6) + addtimer(CALLBACK(src, PROC_REF(GOTTEM), owner, sucker), 6) /// Stage 3A: We face our own failures /obj/item/circlegame/proc/selfGottem(mob/living/owner) diff --git a/code/modules/mob/living/carbon/hologram/em_holopads.dm b/code/modules/mob/living/carbon/hologram/em_holopads.dm index 96947ef44326..5e0462d6f3cc 100644 --- a/code/modules/mob/living/carbon/hologram/em_holopads.dm +++ b/code/modules/mob/living/carbon/hologram/em_holopads.dm @@ -99,7 +99,7 @@ em_starting = TRUE icon_state = "holopad_ringing" calling = TRUE - addtimer(CALLBACK(src, .proc/stop_starting), 300) + addtimer(CALLBACK(src, PROC_REF(stop_starting)), 300) else QDEL_NULL(em) em_cooldown = TRUE diff --git a/code/modules/mob/living/carbon/hologram/hologram.dm b/code/modules/mob/living/carbon/hologram/hologram.dm index 840488a3c120..4283e2304fed 100644 --- a/code/modules/mob/living/carbon/hologram/hologram.dm +++ b/code/modules/mob/living/carbon/hologram/hologram.dm @@ -51,7 +51,7 @@ O.r_hand = null O.l_hand = null //It would be confusing if, say, the medical hologram had a fake medkit - INVOKE_ASYNC(src, .proc/icon_setup, O, _prefs) + INVOKE_ASYNC(src, PROC_REF(icon_setup), O, _prefs) access_card = new /obj/item/card/id(src) access_card?.access |= job_type.access //dunno how the access card would delete itself before then, but this is DM, after all @@ -159,7 +159,7 @@ /mob/living/simple_animal/hologram/proc/disco() color = pick(HOLOGRAM_CYCLE_COLORS) alpha = rand(75, 180) - addtimer(CALLBACK(src, .proc/disco, src), 5) //Call ourselves every 0.5 seconds to change color + addtimer(CALLBACK(src, PROC_REF(disco), src), 5) //Call ourselves every 0.5 seconds to change color /mob/living/simple_animal/hologram/med_hud_set_health() var/image/holder = hud_list[DIAG_HUD] diff --git a/code/modules/mob/living/carbon/human/consistent_human.dm b/code/modules/mob/living/carbon/human/consistent_human.dm index c28328fde590..c35d8a71759e 100644 --- a/code/modules/mob/living/carbon/human/consistent_human.dm +++ b/code/modules/mob/living/carbon/human/consistent_human.dm @@ -24,7 +24,6 @@ dna.features["moth_fluff"] = GLOB.moth_fluff_list[seed % length(GLOB.moth_fluff_list) + 1] dna.features["spider_legs"] = GLOB.spider_legs_list[seed % length(GLOB.spider_legs_list) + 1] dna.features["spider_spinneret"] = GLOB.spider_spinneret_list[seed % length(GLOB.spider_spinneret_list) + 1] - dna.features["spider_mandibles"] = GLOB.spider_mandibles_list[seed % length(GLOB.spider_mandibles_list) + 1] dna.features["squid_face"] = GLOB.squid_face_list[seed % length(GLOB.squid_face_list) + 1] dna.features["kepori_feathers"] = GLOB.kepori_feathers_list[seed % length(GLOB.kepori_feathers_list) + 1] dna.features["kepori_body_feathers"] = GLOB.kepori_body_feathers_list[seed % length(GLOB.kepori_body_feathers_list) + 1] diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index f5d37597ed84..55adc5bd5d17 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -63,7 +63,7 @@ GLOBAL_LIST_EMPTY(dead_players_during_shift) SSblackbox.ReportDeath(src) log_message("has died (BRUTE: [src.getBruteLoss()], BURN: [src.getFireLoss()], TOX: [src.getToxLoss()], OXY: [src.getOxyLoss()], CLONE: [src.getCloneLoss()])", LOG_ATTACK) if(is_devil(src)) - INVOKE_ASYNC(is_devil(src), /datum/antagonist/devil.proc/beginResurrectionCheck, src) + INVOKE_ASYNC(is_devil(src), TYPE_PROC_REF(/datum/antagonist/devil, beginResurrectionCheck), src) to_chat(src, "You have died. Barring complete bodyloss, you can in most cases be revived by other players. If you do not wish to be brought back, use the \"Do Not Resuscitate\" verb in the ghost tab.") diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index ecd847b3b37f..8c72925e7c96 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -13,7 +13,7 @@ prepare_huds() //Prevents a nasty runtime on human init if(dna.species) - INVOKE_ASYNC(src, .proc/set_species, dna.species.type) //This generates new limbs based on the species, beware. + INVOKE_ASYNC(src, PROC_REF(set_species), dna.species.type) //This generates new limbs based on the species, beware. //initialise organs create_internal_organs() //most of it is done in set_species now, this is only for parent call @@ -21,7 +21,7 @@ . = ..() - RegisterSignal(src, COMSIG_COMPONENT_CLEAN_FACE_ACT, .proc/clean_face) + RegisterSignal(src, COMSIG_COMPONENT_CLEAN_FACE_ACT, PROC_REF(clean_face)) AddComponent(/datum/component/personal_crafting) AddComponent(/datum/component/footstep, FOOTSTEP_MOB_HUMAN, 1, -6) AddComponent(/datum/component/bloodysoles/feet) @@ -844,7 +844,7 @@ electrocution_skeleton_anim = mutable_appearance(icon, "electrocuted_base") electrocution_skeleton_anim.appearance_flags |= RESET_COLOR|KEEP_APART add_overlay(electrocution_skeleton_anim) - addtimer(CALLBACK(src, .proc/end_electrocution_animation, electrocution_skeleton_anim), anim_duration) + addtimer(CALLBACK(src, PROC_REF(end_electrocution_animation), electrocution_skeleton_anim), anim_duration) else //or just do a generic animation flick_overlay_view(image(icon,src,"electrocuted_generic",ABOVE_MOB_LAYER), src, anim_duration) @@ -1319,7 +1319,7 @@ /mob/living/carbon/human/species/Initialize() . = ..() - INVOKE_ASYNC(src, .proc/set_species, race) + INVOKE_ASYNC(src, PROC_REF(set_species), race) /mob/living/carbon/human/species/abductor race = /datum/species/abductor @@ -1413,13 +1413,6 @@ /mob/living/carbon/human/species/golem/snow race = /datum/species/golem/snow - -/mob/living/carbon/human/species/golem/capitalist - race = /datum/species/golem/capitalist - -/mob/living/carbon/human/species/golem/soviet - race = /datum/species/golem/soviet - /mob/living/carbon/human/species/jelly race = /datum/species/jelly diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 4f3399675f0a..eab67e22a6be 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -978,8 +978,6 @@ GLOBAL_LIST_EMPTY(roundstart_races) S = GLOB.spider_legs_list[H.dna.features["spider_legs"]] if("spider_spinneret") S = GLOB.spider_spinneret_list[H.dna.features["spider_spinneret"]] - if ("spider_mandibles") - S = GLOB.spider_mandibles_list[H.dna.features["spider_mandibles"]] if("kepori_body_feathers") S = GLOB.kepori_body_feathers_list[H.dna.features["kepori_body_feathers"]] if("kepori_tail_feathers") @@ -1054,17 +1052,17 @@ GLOBAL_LIST_EMPTY(roundstart_races) accessory_overlay.color = forced_colour standing += accessory_overlay - if(S.hasinner) - var/mutable_appearance/inner_accessory_overlay = mutable_appearance(S.icon, layer = -layer) + if(S.secondary_color) + var/mutable_appearance/secondary_color_overlay = mutable_appearance(S.icon, layer = -layer) if(S.gender_specific) - inner_accessory_overlay.icon_state = "[g]_[bodypart]inner_[S.icon_state]_[layertext]" + secondary_color_overlay.icon_state = "[g]_[bodypart]_secondary_[S.icon_state]_[layertext]" else - inner_accessory_overlay.icon_state = "m_[bodypart]inner_[S.icon_state]_[layertext]" + secondary_color_overlay.icon_state = "m_[bodypart]_secondary_[S.icon_state]_[layertext]" if(S.center) - inner_accessory_overlay = center_image(inner_accessory_overlay, S.dimension_x, S.dimension_y) - inner_accessory_overlay.color = "#[H.dna.features["mcolor2"]]" - standing += inner_accessory_overlay + secondary_color_overlay = center_image(secondary_color_overlay, S.dimension_x, S.dimension_y) + secondary_color_overlay.color = "#[H.dna.features["mcolor2"]]" + standing += secondary_color_overlay H.overlays_standing[layer] = standing.Copy() standing = list() @@ -1467,7 +1465,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(radiation > RAD_MOB_HAIRLOSS) if(prob(15) && !(H.hairstyle == "Bald") && (HAIR in species_traits)) to_chat(H, "Your hair starts to fall out in clumps...") - addtimer(CALLBACK(src, .proc/go_bald, H), 50) + addtimer(CALLBACK(src, PROC_REF(go_bald), H), 50) /datum/species/proc/go_bald(mob/living/carbon/human/H) if(QDELETED(H)) //may be called from a timer @@ -1768,6 +1766,8 @@ GLOBAL_LIST_EMPTY(roundstart_races) H.update_damage_overlays() else//no bodypart, we deal damage with a more general method. H.adjustBruteLoss(damage_amount) + if(H.stat <= HARD_CRIT) + H.shake_animation(damage_amount) if(BURN) H.damageoverlaytemp = 20 var/damage_amount = forced ? damage : damage * hit_percent * burnmod * H.physiology.burn_mod @@ -1776,6 +1776,8 @@ GLOBAL_LIST_EMPTY(roundstart_races) H.update_damage_overlays() else H.adjustFireLoss(damage_amount) + if(H.stat <= HARD_CRIT) + H.shake_animation(damage_amount) if(TOX) var/damage_amount = forced ? damage : damage * hit_percent * H.physiology.tox_mod H.adjustToxLoss(damage_amount) @@ -1792,6 +1794,8 @@ GLOBAL_LIST_EMPTY(roundstart_races) H.update_stamina() else H.adjustStaminaLoss(damage_amount) + if(H.stat <= HARD_CRIT) + H.shake_animation(damage_amount) if(BRAIN) var/damage_amount = forced ? damage : damage * hit_percent * H.physiology.brain_mod H.adjustOrganLoss(ORGAN_SLOT_BRAIN, damage_amount) @@ -2233,7 +2237,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) buckled_obj.unbuckle_mob(H) step(buckled_obj, olddir) else - new /datum/forced_movement(H, get_ranged_target_turf(H, olddir, 4), 1, FALSE, CALLBACK(H, /mob/living/carbon/.proc/spin, 1, 1)) + new /datum/forced_movement(H, get_ranged_target_turf(H, olddir, 4), 1, FALSE, CALLBACK(H, TYPE_PROC_REF(/mob/living/carbon, spin), 1, 1)) return TRUE //UNSAFE PROC, should only be called through the Activate or other sources that check for CanFly 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 38eeeb9d9c18..dfa12f329054 100644 --- a/code/modules/mob/living/carbon/human/species_types/IPC.dm +++ b/code/modules/mob/living/carbon/human/species_types/IPC.dm @@ -86,7 +86,7 @@ saved_screen = C.dna.features["ipc_screen"] C.dna.features["ipc_screen"] = "BSOD" C.update_body() - addtimer(CALLBACK(src, .proc/post_death, C), 5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(post_death), C), 5 SECONDS) /datum/species/ipc/proc/post_death(mob/living/carbon/C) if(C.stat < DEAD) @@ -218,7 +218,7 @@ H.dna.features["ipc_screen"] = "BSOD" H.update_body() H.say("Reactivating [pick("core systems", "central subroutines", "key functions")]...") - addtimer(CALLBACK(src, .proc/post_revival, H), 6 SECONDS) + addtimer(CALLBACK(src, PROC_REF(post_revival), H), 6 SECONDS) /datum/species/ipc/proc/post_revival(mob/living/carbon/human/H) if(H.stat == DEAD) 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 55217a814d35..26ed84073c99 100644 --- a/code/modules/mob/living/carbon/human/species_types/dullahan.dm +++ b/code/modules/mob/living/carbon/human/species_types/dullahan.dm @@ -17,12 +17,6 @@ var/obj/item/dullahan_relay/myhead - -/datum/species/dullahan/check_roundstart_eligible() - if(SSevents.holidays && SSevents.holidays[HALLOWEEN]) - return TRUE - return FALSE - /datum/species/dullahan/on_species_gain(mob/living/carbon/human/H, datum/species/old_species) . = ..() H.lose_hearing_sensitivity(ORGAN_TRAIT) @@ -122,10 +116,10 @@ return INITIALIZE_HINT_QDEL owner = new_owner START_PROCESSING(SSobj, src) - 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_REVIVE, .proc/retrieve_head) + RegisterSignal(owner, COMSIG_CLICK_SHIFT, PROC_REF(examinate_check)) + RegisterSignal(src, COMSIG_ATOM_HEARER_IN_VIEW, PROC_REF(include_owner)) + RegisterSignal(owner, COMSIG_LIVING_REGENERATE_LIMBS, PROC_REF(unlist_head)) + RegisterSignal(owner, COMSIG_LIVING_REVIVE, PROC_REF(retrieve_head)) become_hearing_sensitive(ROUNDSTART_TRAIT) /obj/item/dullahan_relay/process() diff --git a/code/modules/mob/living/carbon/human/species_types/ethereal.dm b/code/modules/mob/living/carbon/human/species_types/ethereal.dm index 2a0e8a2d62fe..a2ff92508d61 100644 --- a/code/modules/mob/living/carbon/human/species_types/ethereal.dm +++ b/code/modules/mob/living/carbon/human/species_types/ethereal.dm @@ -58,8 +58,8 @@ return var/mob/living/carbon/human/ethereal = C default_color = "#[ethereal.dna.features["ethcolor"]]" - RegisterSignal(ethereal, COMSIG_ATOM_EMAG_ACT, .proc/on_emag_act) - RegisterSignal(ethereal, COMSIG_ATOM_EMP_ACT, .proc/on_emp_act) + RegisterSignal(ethereal, COMSIG_ATOM_EMAG_ACT, PROC_REF(on_emag_act)) + RegisterSignal(ethereal, COMSIG_ATOM_EMP_ACT, PROC_REF(on_emp_act)) ethereal_light = ethereal.mob_light() spec_updatehealth(ethereal) @@ -143,9 +143,9 @@ to_chat(H, "You feel the light of your body leave you.") switch(severity) if(EMP_LIGHT) - addtimer(CALLBACK(src, .proc/stop_emp, H), 10 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) //We're out for 10 seconds + addtimer(CALLBACK(src, PROC_REF(stop_emp), H), 10 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) //We're out for 10 seconds if(EMP_HEAVY) - addtimer(CALLBACK(src, .proc/stop_emp, H), 20 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) //We're out for 20 seconds + addtimer(CALLBACK(src, PROC_REF(stop_emp), H), 20 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) //We're out for 20 seconds /datum/species/ethereal/proc/on_emag_act(mob/living/carbon/human/H, mob/user) if(emag_effect) @@ -155,7 +155,7 @@ to_chat(user, "You tap [H] on the back with your card.") H.visible_message("[H] starts flickering in an array of colors!") handle_emag(H) - addtimer(CALLBACK(src, .proc/stop_emag, H), 30 SECONDS) //Disco mode for 30 seconds! This doesn't affect the ethereal at all besides either annoying some players, or making someone look badass. + addtimer(CALLBACK(src, PROC_REF(stop_emag), H), 30 SECONDS) //Disco mode for 30 seconds! This doesn't affect the ethereal at all besides either annoying some players, or making someone look badass. /datum/species/ethereal/spec_life(mob/living/carbon/human/H) .=..() @@ -171,7 +171,7 @@ return current_color = pick(ETHEREAL_EMAG_COLORS) spec_updatehealth(H) - addtimer(CALLBACK(src, .proc/handle_emag, H), 5) //Call ourselves every 0.5 seconds to change color + addtimer(CALLBACK(src, PROC_REF(handle_emag), H), 5) //Call ourselves every 0.5 seconds to change color /datum/species/ethereal/proc/stop_emag(mob/living/carbon/human/H) emag_effect = FALSE 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 0379bca7bb34..380d91aebbe6 100644 --- a/code/modules/mob/living/carbon/human/species_types/golems.dm +++ b/code/modules/mob/living/carbon/human/species_types/golems.dm @@ -496,7 +496,7 @@ var/mob/living/carbon/human/H = owner H.visible_message("[H] starts vibrating!", "You start charging your bluespace core...") playsound(get_turf(H), 'sound/weapons/flash.ogg', 25, TRUE) - addtimer(CALLBACK(src, .proc/teleport, H), 15) + addtimer(CALLBACK(src, PROC_REF(teleport), H), 15) /datum/action/innate/unstable_teleport/proc/teleport(mob/living/carbon/human/H) H.visible_message("[H] disappears in a shower of sparks!", "You teleport!") @@ -508,7 +508,7 @@ last_teleport = world.time UpdateButtonIcon() //action icon looks unavailable //action icon looks available again - addtimer(CALLBACK(src, .proc/UpdateButtonIcon), cooldown + 5) + addtimer(CALLBACK(src, PROC_REF(UpdateButtonIcon)), cooldown + 5) //honk @@ -544,7 +544,7 @@ ..() last_banana = world.time last_honk = world.time - RegisterSignal(C, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(C, COMSIG_MOB_SAY, PROC_REF(handle_speech)) /datum/species/golem/bananium/on_species_loss(mob/living/carbon/C) . = ..() @@ -696,11 +696,6 @@ REMOVE_TRAIT(C, TRAIT_HOLY, SPECIES_TRAIT) ..() -/datum/species/golem/cloth/check_roundstart_eligible() - if(SSevents.holidays && SSevents.holidays[HALLOWEEN]) - return TRUE - return ..() - /datum/species/golem/cloth/random_name(gender,unique,lastname) var/pharaoh_name = pick("Neferkare", "Hudjefa", "Khufu", "Mentuhotep", "Ahmose", "Amenhotep", "Thutmose", "Hatshepsut", "Tutankhamun", "Ramses", "Seti", \ "Merenptah", "Djer", "Semerkhet", "Nynetjer", "Khafre", "Pepi", "Intef", "Ay") //yes, Ay was an actual pharaoh @@ -743,7 +738,7 @@ H.forceMove(src) cloth_golem = H to_chat(cloth_golem, "You start gathering your life energy, preparing to rise again...") - addtimer(CALLBACK(src, .proc/revive), revive_time) + addtimer(CALLBACK(src, PROC_REF(revive)), revive_time) else return INITIALIZE_HINT_QDEL @@ -1049,7 +1044,7 @@ badtime.appearance_flags = RESET_COLOR H.overlays_standing[FIRE_LAYER+0.5] = badtime H.apply_overlay(FIRE_LAYER+0.5) - addtimer(CALLBACK(H, /mob/living/carbon/.proc/remove_overlay, FIRE_LAYER+0.5), 25) + addtimer(CALLBACK(H, TYPE_PROC_REF(/mob/living/carbon, remove_overlay), FIRE_LAYER+0.5), 25) else playsound(get_turf(owner),'sound/magic/RATTLEMEBONES.ogg', 100) for(var/mob/living/L in orange(7, get_turf(owner))) @@ -1116,89 +1111,3 @@ charge_max = 15 action_icon = 'icons/obj/toy.dmi' action_icon_state = "snowball" - -/datum/species/golem/capitalist - name = "Capitalist Golem" - id = "capitalist golem" - prefix = "Capitalist" - attack_verb = "monopoliz" - special_names = list("John D. Rockefeller","Rich Uncle Pennybags","Commodore Vanderbilt","Entrepreneur","Mr. Moneybags", "Adam Smith") - species_traits = list(NOBLOOD,NO_UNDERWEAR,NOEYESPRITES) - fixed_mut_color = null - inherent_traits = list(TRAIT_NOFLASH,TRAIT_RESISTHEAT,TRAIT_NOBREATH,TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_NOFIRE,TRAIT_RADIMMUNE,TRAIT_GENELESS,TRAIT_PIERCEIMMUNE,TRAIT_NODISMEMBER) - info_text = "As a Capitalist Golem, your fist spreads the powerful industrializing light of capitalism." - changesource_flags = MIRROR_BADMIN - random_eligible = FALSE - - var/last_cash = 0 - var/cash_cooldown = 100 - -/datum/species/golem/capitalist/on_species_gain(mob/living/carbon/C, datum/species/old_species) - . = ..() - C.equip_to_slot_or_del(new /obj/item/clothing/head/that (), ITEM_SLOT_HEAD) - C.equip_to_slot_or_del(new /obj/item/clothing/glasses/monocle (), ITEM_SLOT_EYES) - C.revive(full_heal = TRUE, admin_revive = FALSE) - - SEND_SOUND(C, sound('sound/misc/capitialism.ogg')) - C.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/knock ()) - RegisterSignal(C, COMSIG_MOB_SAY, .proc/handle_speech) - -/datum/species/golem/capitalist/on_species_loss(mob/living/carbon/C) - . = ..() - UnregisterSignal(C, COMSIG_MOB_SAY) - for(var/obj/effect/proc_holder/spell/aoe_turf/knock/spell in C.mob_spell_list) - C.RemoveSpell(spell) - -/datum/species/golem/capitalist/spec_unarmedattacked(mob/living/carbon/human/user, mob/living/carbon/human/target) - ..() - if(isgolem(target)) - return - if(target.nutrition >= NUTRITION_LEVEL_FAT) - target.set_species(/datum/species/golem/capitalist) - return - target.adjust_nutrition(40) - -/datum/species/golem/capitalist/proc/handle_speech(datum/source, list/speech_args) - playsound(source, 'sound/misc/mymoney.ogg', 25, FALSE) - speech_args[SPEECH_MESSAGE] = "Hello, I like money!" - -/datum/species/golem/soviet - name = "Soviet Golem" - id = "soviet golem" - prefix = "Comrade" - attack_verb = "nationaliz" - special_names = list("Stalin","Lenin","Trotsky","Marx","Comrade") //comrade comrade - species_traits = list(NOBLOOD,NO_UNDERWEAR,NOEYESPRITES) - fixed_mut_color = null - inherent_traits = list(TRAIT_NOFLASH, TRAIT_RESISTHEAT,TRAIT_NOBREATH,TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_NOFIRE,TRAIT_RADIMMUNE,TRAIT_GENELESS,TRAIT_PIERCEIMMUNE,TRAIT_NODISMEMBER) - info_text = "As a Soviet Golem, your fist spreads the bright soviet light of communism." - changesource_flags = MIRROR_BADMIN - random_eligible = FALSE - -/datum/species/golem/soviet/on_species_gain(mob/living/carbon/C, datum/species/old_species) - . = ..() - C.equip_to_slot_or_del(new /obj/item/clothing/head/trapper (), ITEM_SLOT_HEAD) - C.revive(full_heal = TRUE, admin_revive = FALSE) - - SEND_SOUND(C, sound('sound/misc/Russian_Anthem_chorus.ogg')) - C.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/knock ()) - RegisterSignal(C, COMSIG_MOB_SAY, .proc/handle_speech) - -/datum/species/golem/soviet/on_species_loss(mob/living/carbon/C) - . = ..() - for(var/obj/effect/proc_holder/spell/aoe_turf/knock/spell in C.mob_spell_list) - C.RemoveSpell(spell) - UnregisterSignal(C, COMSIG_MOB_SAY, .proc/handle_speech) - -/datum/species/golem/soviet/spec_unarmedattacked(mob/living/carbon/human/user, mob/living/carbon/human/target) - ..() - if(isgolem(target)) - return - if(target.nutrition <= NUTRITION_LEVEL_STARVING) - target.set_species(/datum/species/golem/soviet) - return - target.adjust_nutrition(-40) - -/datum/species/golem/soviet/proc/handle_speech(datum/source, list/speech_args) - playsound(source, 'sound/misc/Cyka Blyat.ogg', 25, FALSE) - speech_args[SPEECH_MESSAGE] = "Cyka Blyat" diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm index 7dcfb31f1e8a..eb78ef131644 100644 --- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm @@ -750,8 +750,8 @@ var/datum/action/innate/linked_speech/action = new(src) linked_actions.Add(action) action.Grant(M) - RegisterSignal(M, COMSIG_MOB_DEATH , .proc/unlink_mob) - RegisterSignal(M, COMSIG_PARENT_QDELETING, .proc/unlink_mob) + RegisterSignal(M, COMSIG_MOB_DEATH , PROC_REF(unlink_mob)) + RegisterSignal(M, COMSIG_PARENT_QDELETING, PROC_REF(unlink_mob)) return TRUE /datum/species/jelly/stargazer/proc/unlink_mob(mob/living/M) 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 f54c9dff634d..6e4ae1cdb9a3 100644 --- a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm @@ -32,11 +32,6 @@ else if (light_amount < SHADOW_SPECIES_LIGHT_THRESHOLD) //heal in the dark H.heal_overall_damage(1,1, 0, BODYTYPE_ORGANIC) -/datum/species/shadow/check_roundstart_eligible() - if(SSevents.holidays && SSevents.holidays[HALLOWEEN]) - return TRUE - return ..() - /datum/species/shadow/nightmare name = "Nightmare" id = "nightmare" 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 caa36764a1ff..920115f52c02 100644 --- a/code/modules/mob/living/carbon/human/species_types/skeletons.dm +++ b/code/modules/mob/living/carbon/human/species_types/skeletons.dm @@ -23,11 +23,6 @@ species_l_leg = /obj/item/bodypart/leg/left/skeleton species_r_leg = /obj/item/bodypart/leg/right/skeleton -/datum/species/skeleton/check_roundstart_eligible() - if(SSevents.holidays && SSevents.holidays[HALLOWEEN]) - return TRUE - return ..() - //Can still metabolize milk through meme magic /datum/species/skeleton/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) if(chem.type == /datum/reagent/consumable/milk) diff --git a/code/modules/mob/living/carbon/human/species_types/spider.dm b/code/modules/mob/living/carbon/human/species_types/spider.dm index 84faffde6ca2..f7ae4f6bef10 100644 --- a/code/modules/mob/living/carbon/human/species_types/spider.dm +++ b/code/modules/mob/living/carbon/human/species_types/spider.dm @@ -45,8 +45,8 @@ GLOBAL_LIST_INIT(spider_last, world.file2list("strings/names/spider_last.txt")) default_color = "00FF00" species_traits = list(LIPS, NOEYESPRITES, MUTCOLORS_PARTSONLY) inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_BUG - mutant_bodyparts = list("spider_legs", "spider_spinneret", "spider_mandibles") - default_features = list("spider_legs" = "Plain", "spider_spinneret" = "Plain", "spider_mandibles" = "Plain", "body_size" = "Normal") + mutant_bodyparts = list("spider_legs", "spider_spinneret") + default_features = list("spider_legs" = "Carapaced", "spider_spinneret" = "Plain", "body_size" = "Normal") attack_verb = "slash" attack_sound = 'sound/weapons/slash.ogg' miss_sound = 'sound/weapons/slashmiss.ogg' @@ -187,7 +187,7 @@ GLOBAL_LIST_INIT(spider_last, world.file2list("strings/names/spider_last.txt")) (Press ALT+CLICK or MMB on the target to start wrapping.)") H.adjust_nutrition(E.spinner_rate * -0.5) addtimer(VARSET_CALLBACK(E, web_ready, TRUE), E.web_cooldown) - RegisterSignal(H, list(COMSIG_MOB_MIDDLECLICKON, COMSIG_MOB_ALTCLICKON), .proc/cocoonAtom) + RegisterSignal(H, list(COMSIG_MOB_MIDDLECLICKON, COMSIG_MOB_ALTCLICKON), PROC_REF(cocoonAtom)) return else to_chat(H, "You're too hungry to spin web right now, eat something first!") 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 b4c9fac9db08..ebc923c01075 100644 --- a/code/modules/mob/living/carbon/human/species_types/vampire.dm +++ b/code/modules/mob/living/carbon/human/species_types/vampire.dm @@ -16,14 +16,6 @@ var/info_text = "You are a Vampire. You will slowly but constantly lose blood if outside of a coffin. If inside a coffin, you will slowly heal. You may gain more blood by grabbing a live victim and using your drain ability." var/obj/effect/proc_holder/spell/targeted/shapeshift/bat/batform //attached to the datum itself to avoid cloning memes, and other duplicates - - - -/datum/species/vampire/check_roundstart_eligible() - if(SSevents.holidays && SSevents.holidays[HALLOWEEN]) - return TRUE - return FALSE - /datum/species/vampire/on_species_gain(mob/living/carbon/human/C, datum/species/old_species) . = ..() to_chat(C, "[info_text]") diff --git a/code/modules/mob/living/carbon/human/species_types/vox.dm b/code/modules/mob/living/carbon/human/species_types/vox.dm index de92657cb519..e1a0107bc0ad 100644 --- a/code/modules/mob/living/carbon/human/species_types/vox.dm +++ b/code/modules/mob/living/carbon/human/species_types/vox.dm @@ -139,7 +139,7 @@ /datum/action/innate/tail_hold/Grant(mob/M) . = ..() - RegisterSignal(owner, COMSIG_ATOM_DIR_CHANGE, .proc/handle_sprite_magic, override = TRUE) + RegisterSignal(owner, COMSIG_ATOM_DIR_CHANGE, PROC_REF(handle_sprite_magic), override = TRUE) /datum/action/innate/tail_hold/Trigger() var/mob/living/carbon/human/H = owner @@ -156,7 +156,7 @@ if(H.temporarilyRemoveItemFromInventory(I, FALSE, FALSE)) held_item = I to_chat(H,"You move \the [I] into your tail's grip.") - RegisterSignal(owner, COMSIG_PARENT_EXAMINE, .proc/on_examine) + RegisterSignal(owner, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine)) handle_sprite_magic(force = TRUE) return 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 8c53a6ca9a07..702adfb224a2 100644 --- a/code/modules/mob/living/carbon/human/species_types/zombies.dm +++ b/code/modules/mob/living/carbon/human/species_types/zombies.dm @@ -24,11 +24,6 @@ species_l_leg = /obj/item/bodypart/leg/left/zombie species_r_leg = /obj/item/bodypart/leg/right/zombie -/datum/species/zombie/check_roundstart_eligible() - if(SSevents.holidays && SSevents.holidays[HALLOWEEN]) - return TRUE - return ..() - /datum/species/zombie/infectious name = "\improper Infectious Zombie" id = "memezombies" diff --git a/code/modules/mob/living/carbon/monkey/combat.dm b/code/modules/mob/living/carbon/monkey/combat.dm index 832c2a375095..1f730de799d0 100644 --- a/code/modules/mob/living/carbon/monkey/combat.dm +++ b/code/modules/mob/living/carbon/monkey/combat.dm @@ -80,7 +80,7 @@ else if(istype(I, /obj/item/clothing)) var/obj/item/clothing/C = I monkeyDrop(C) - addtimer(CALLBACK(src, .proc/pickup_and_wear, C), 5) + addtimer(CALLBACK(src, PROC_REF(pickup_and_wear), C), 5) return TRUE // EVERYTHING ELSE @@ -95,7 +95,7 @@ /mob/living/carbon/monkey/proc/pickup_and_wear(obj/item/clothing/C) if(!equip_to_appropriate_slot(C)) monkeyDrop(get_item_by_slot(C)) // remove the existing item if worn - addtimer(CALLBACK(src, .proc/equip_to_appropriate_slot, C), 5) + addtimer(CALLBACK(src, PROC_REF(equip_to_appropriate_slot), C), 5) /mob/living/carbon/monkey/resist_restraints() var/obj/item/I = null @@ -132,7 +132,7 @@ pickupTarget = null pickupTimer = 0 else - INVOKE_ASYNC(src, .proc/walk2derpless, pickupTarget.loc) + INVOKE_ASYNC(src, PROC_REF(walk2derpless), pickupTarget.loc) if(Adjacent(pickupTarget) || Adjacent(pickupTarget.loc)) // next to target drop_all_held_items() // who cares about these items, i want that one! if(isturf(pickupTarget.loc)) // on floor @@ -144,7 +144,7 @@ if(!pickpocketing) pickpocketing = TRUE M.visible_message("[src] starts trying to take [pickupTarget] from [M]!", "[src] tries to take [pickupTarget]!") - INVOKE_ASYNC(src, .proc/pickpocket, M) + INVOKE_ASYNC(src, PROC_REF(pickpocket), M) return TRUE switch(mode) @@ -180,7 +180,7 @@ return TRUE if(target != null) - INVOKE_ASYNC(src, .proc/walk2derpless, target) + INVOKE_ASYNC(src, PROC_REF(walk2derpless), target) // pickup any nearby weapon if(!pickupTarget && prob(MONKEY_WEAPON_PROB)) @@ -265,7 +265,7 @@ if(target.pulledby != src && !istype(target.pulledby, /mob/living/carbon/monkey/)) - INVOKE_ASYNC(src, .proc/walk2derpless, target.loc) + INVOKE_ASYNC(src, PROC_REF(walk2derpless), target.loc) if(Adjacent(target) && isturf(target.loc)) a_intent = INTENT_GRAB @@ -278,11 +278,11 @@ frustration = 0 else if(!disposing_body) - INVOKE_ASYNC(src, .proc/walk2derpless, bodyDisposal.loc) + INVOKE_ASYNC(src, PROC_REF(walk2derpless), bodyDisposal.loc) if(Adjacent(bodyDisposal)) disposing_body = TRUE - addtimer(CALLBACK(src, .proc/stuff_mob_in), 5) + addtimer(CALLBACK(src, PROC_REF(stuff_mob_in)), 5) else var/turf/olddist = get_dist(src, bodyDisposal) diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index e32369c360d7..b4469ea5b63c 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -17,7 +17,7 @@ if(!resisting && prob(MONKEY_RESIST_PROB)) resisting = TRUE walk_to(src,0) - resist() + execute_resist() else if(resisting) resisting = FALSE else if((mode == MONKEY_IDLE && !pickupTarget && !prob(MONKEY_SHENANIGAN_PROB)) || !handle_combat()) diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm index 308abdb92f36..c80c9a821fd0 100644 --- a/code/modules/mob/living/carbon/update_icons.dm +++ b/code/modules/mob/living/carbon/update_icons.dm @@ -343,7 +343,7 @@ GLOBAL_LIST_EMPTY(masked_leg_icons_cache) /mob/living/carbon/proc/update_hands_on_rotate() //Required for unconventionally placed hands on species SIGNAL_HANDLER if(!layered_hands) //Defined in human_defines.dm - RegisterSignal(src, COMSIG_ATOM_DIR_CHANGE, .proc/special_update_hands) + RegisterSignal(src, COMSIG_ATOM_DIR_CHANGE, PROC_REF(special_update_hands)) layered_hands = TRUE /mob/living/carbon/proc/stop_updating_hands() diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index 4916d062da29..76daa5ba21d4 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -23,8 +23,12 @@ switch(damagetype) if(BRUTE) adjustBruteLoss(damage_amount, forced = forced) + if(stat <= HARD_CRIT) + shake_animation(damage_amount) if(BURN) adjustFireLoss(damage_amount, forced = forced) + if(stat <= HARD_CRIT) + shake_animation(damage_amount) if(TOX) adjustToxLoss(damage_amount, forced = forced) if(OXY) @@ -33,6 +37,8 @@ adjustCloneLoss(damage_amount, forced = forced) if(STAMINA) adjustStaminaLoss(damage_amount, forced = forced) + if(stat <= HARD_CRIT) + shake_animation(damage_amount) return TRUE ///like [apply_damage][/mob/living/proc/apply_damage] except it always uses the damage procs diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index 7b11668db56a..56ae0db795e5 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -26,7 +26,7 @@ var/list/key_emotes = GLOB.emote_list["blush"] for(var/datum/emote/living/blush/living_emote in key_emotes) // The existing timer restarts if it's already running - blush_timer = addtimer(CALLBACK(living_emote, .proc/end_blush, living_user), BLUSH_DURATION, TIMER_UNIQUE | TIMER_OVERRIDE) + blush_timer = addtimer(CALLBACK(living_emote, PROC_REF(end_blush), living_user), BLUSH_DURATION, TIMER_UNIQUE | TIMER_OVERRIDE) /datum/emote/living/blush/proc/end_blush(mob/living/living_user) if(!QDELETED(living_user)) @@ -169,7 +169,7 @@ H.CloseWings() else H.OpenWings() - addtimer(CALLBACK(H, open ? /mob/living/carbon/human.proc/OpenWings : /mob/living/carbon/human.proc/CloseWings), wing_time) + addtimer(CALLBACK(H, open ? TYPE_PROC_REF(/mob/living/carbon/human, OpenWings) : TYPE_PROC_REF(/mob/living/carbon/human, CloseWings)), wing_time) /datum/emote/living/flap/aflap key = "aflap" @@ -417,7 +417,7 @@ var/list/key_emotes = GLOB.emote_list["snore"] for(var/datum/emote/living/snore/living_emote in key_emotes) // The existing timer restarts if it's already running - snore_timer = addtimer(CALLBACK(living_emote, .proc/end_snore, living_user), SNORE_DURATION, TIMER_UNIQUE | TIMER_OVERRIDE) + snore_timer = addtimer(CALLBACK(living_emote, PROC_REF(end_snore), living_user), SNORE_DURATION, TIMER_UNIQUE | TIMER_OVERRIDE) /datum/emote/living/snore/proc/end_snore(mob/living/living_user) if(!QDELETED(living_user)) diff --git a/code/modules/mob/living/init_signals.dm b/code/modules/mob/living/init_signals.dm index 65bb3b762955..d3f9f0ebd8a9 100644 --- a/code/modules/mob/living/init_signals.dm +++ b/code/modules/mob/living/init_signals.dm @@ -1,31 +1,31 @@ /// Called on [/mob/living/Initialize()], for the mob to register to relevant signals. /mob/living/proc/register_init_signals() - RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_KNOCKEDOUT), .proc/on_knockedout_trait_gain) - RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_KNOCKEDOUT), .proc/on_knockedout_trait_loss) + RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_KNOCKEDOUT), PROC_REF(on_knockedout_trait_gain)) + RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_KNOCKEDOUT), PROC_REF(on_knockedout_trait_loss)) - RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_DEATHCOMA), .proc/on_deathcoma_trait_gain) - RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_DEATHCOMA), .proc/on_deathcoma_trait_loss) + RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_DEATHCOMA), PROC_REF(on_deathcoma_trait_gain)) + RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_DEATHCOMA), PROC_REF(on_deathcoma_trait_loss)) - RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_IMMOBILIZED), .proc/on_immobilized_trait_gain) - RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_IMMOBILIZED), .proc/on_immobilized_trait_loss) + RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_IMMOBILIZED), PROC_REF(on_immobilized_trait_gain)) + RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_IMMOBILIZED), PROC_REF(on_immobilized_trait_loss)) - RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_FLOORED), .proc/on_floored_trait_gain) - RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_FLOORED), .proc/on_floored_trait_loss) + RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_FLOORED), PROC_REF(on_floored_trait_gain)) + RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_FLOORED), PROC_REF(on_floored_trait_loss)) - RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_HANDS_BLOCKED), .proc/on_handsblocked_trait_gain) - RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_HANDS_BLOCKED), .proc/on_handsblocked_trait_loss) + RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_HANDS_BLOCKED), PROC_REF(on_handsblocked_trait_gain)) + RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_HANDS_BLOCKED), PROC_REF(on_handsblocked_trait_loss)) - RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_UI_BLOCKED), .proc/on_ui_blocked_trait_gain) - RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_UI_BLOCKED), .proc/on_ui_blocked_trait_loss) + RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_UI_BLOCKED), PROC_REF(on_ui_blocked_trait_gain)) + RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_UI_BLOCKED), PROC_REF(on_ui_blocked_trait_loss)) - RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_PULL_BLOCKED), .proc/on_pull_blocked_trait_gain) - RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_PULL_BLOCKED), .proc/on_pull_blocked_trait_loss) + RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_PULL_BLOCKED), PROC_REF(on_pull_blocked_trait_gain)) + RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_PULL_BLOCKED), PROC_REF(on_pull_blocked_trait_loss)) - RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_INCAPACITATED), .proc/on_incapacitated_trait_gain) - RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_INCAPACITATED), .proc/on_incapacitated_trait_loss) + RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_INCAPACITATED), PROC_REF(on_incapacitated_trait_gain)) + RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_INCAPACITATED), PROC_REF(on_incapacitated_trait_loss)) - RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_RESTRAINED), .proc/on_restrained_trait_gain) - RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_RESTRAINED), .proc/on_restrained_trait_loss) + RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_RESTRAINED), PROC_REF(on_restrained_trait_gain)) + RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_RESTRAINED), PROC_REF(on_restrained_trait_loss)) RegisterSignal(src, list( SIGNAL_ADDTRAIT(TRAIT_CRITICAL_CONDITION), @@ -33,7 +33,7 @@ SIGNAL_ADDTRAIT(TRAIT_NODEATH), SIGNAL_REMOVETRAIT(TRAIT_NODEATH), - ), .proc/update_succumb_action) + ), PROC_REF(update_succumb_action)) /// Called when [TRAIT_KNOCKEDOUT] is added to the mob. diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index 33d73b6e4997..47fc5bd82ecb 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -130,7 +130,7 @@ /mob/living/proc/gravity_animate() if(!get_filter("gravity")) add_filter("gravity",1,list("type"="motion_blur", "x"=0, "y"=0)) - INVOKE_ASYNC(src, .proc/gravity_pulse_animation) + INVOKE_ASYNC(src, PROC_REF(gravity_pulse_animation)) /mob/living/proc/gravity_pulse_animation() animate(get_filter("gravity"), y = 1, time = 10) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 8e01f457ef2e..821bef7d25ff 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -13,7 +13,7 @@ update_living_varspeed() var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) @@ -398,11 +398,14 @@ /mob/living/pointed(atom/A as mob|obj|turf in view(client.view, src)) if(incapacitated()) return FALSE + + return ..() + +/mob/living/_pointed(atom/pointing_at) if(!..()) return FALSE - visible_message("[src] points at [A].", "You point at [A].") - return TRUE - + log_message("points at [pointing_at]", LOG_EMOTE) + visible_message("[span_name("[src]")] points at [pointing_at].", span_notice("You point at [pointing_at].")) /mob/living/verb/succumb(whispered as null) set hidden = TRUE @@ -499,8 +502,7 @@ /mob/living/proc/get_up(instant = FALSE) set waitfor = FALSE - var/static/datum/callback/rest_checks = CALLBACK(src, .proc/rest_checks_callback) - if(!instant && !do_mob(src, src, 2 SECONDS, uninterruptible = TRUE, extra_checks = rest_checks)) + if(!instant && !do_mob(src, src, 2 SECONDS, uninterruptible = TRUE, extra_checks = CALLBACK(src, TYPE_PROC_REF(/mob/living, rest_checks_callback)))) return if(resting || body_position == STANDING_UP || HAS_TRAIT(src, TRAIT_FLOORED)) return @@ -654,7 +656,7 @@ var/obj/effect/proc_holder/spell/spell = S spell.updateButtonIcon() if(excess_healing) - INVOKE_ASYNC(src, .proc/emote, "gasp") + INVOKE_ASYNC(src, PROC_REF(emote), "gasp") log_combat(src, src, "revived") /mob/living/proc/remove_CC() @@ -859,6 +861,10 @@ set name = "Resist" set category = "IC" + DEFAULT_QUEUE_OR_CALL_VERB(VERB_CALLBACK(src, PROC_REF(execute_resist))) + +///proc extender of [/mob/living/verb/resist] meant to make the process queable if the server is overloaded when the verb is called +/mob/living/proc/execute_resist() if(!can_resist()) return changeNext_move(CLICK_CD_RESIST) @@ -884,7 +890,6 @@ else if(last_special <= world.time) resist_restraints() //trying to remove cuffs. - /mob/proc/resist_grab(moving_resist) return 1 //returning 0 means we successfully broke free @@ -1520,8 +1525,8 @@ if(!can_look_up()) return changeNext_move(CLICK_CD_LOOK_UP) - RegisterSignal(src, COMSIG_MOVABLE_PRE_MOVE, .proc/stop_look_up) //We stop looking up if we move. - RegisterSignal(src, COMSIG_MOVABLE_MOVED, .proc/start_look_up) //We start looking again after we move. + RegisterSignal(src, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(stop_look_up)) //We stop looking up if we move. + RegisterSignal(src, COMSIG_MOVABLE_MOVED, PROC_REF(start_look_up)) //We start looking again after we move. start_look_up() /mob/living/proc/start_look_up() @@ -1565,8 +1570,8 @@ if(!can_look_up()) //if we cant look up, we cant look down. return changeNext_move(CLICK_CD_LOOK_UP) - RegisterSignal(src, COMSIG_MOVABLE_PRE_MOVE, .proc/stop_look_down) //We stop looking down if we move. - RegisterSignal(src, COMSIG_MOVABLE_MOVED, .proc/start_look_down) //We start looking again after we move. + RegisterSignal(src, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(stop_look_down)) //We stop looking down if we move. + RegisterSignal(src, COMSIG_MOVABLE_MOVED, PROC_REF(start_look_down)) //We start looking again after we move. start_look_down() /mob/living/proc/start_look_down() diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 31676cd64007..f119c7dbc308 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -55,6 +55,7 @@ var/on_hit_state = P.on_hit(src, armor, piercing_hit) if(!P.nodamage && on_hit_state != BULLET_ACT_BLOCK && !QDELETED(src)) //QDELETED literally just for the instagib rifle. Yeah. apply_damage(P.damage, P.damage_type, def_zone, armor) + recoil_camera(src, clamp((P.damage-armor)/4,0.5,10), clamp((P.damage-armor)/4,0.5,10), P.damage/8, P.Angle) apply_effects(P.stun, P.knockdown, P.unconscious, P.irradiate, P.slur, P.stutter, P.eyeblur, P.drowsy, armor, P.stamina, P.jitter, P.paralyze, P.immobilize) if(P.dismemberment) check_projectile_dismemberment(P, def_zone) @@ -398,8 +399,8 @@ if((GLOB.cult_narsie.souls == GLOB.cult_narsie.soul_goal) && (GLOB.cult_narsie.resolved == FALSE)) GLOB.cult_narsie.resolved = TRUE sound_to_playing_players('sound/machines/alarm.ogg') - addtimer(CALLBACK(GLOBAL_PROC, .proc/cult_ending_helper, 1), 120) - addtimer(CALLBACK(GLOBAL_PROC, .proc/ending_helper), 270) + addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(cult_ending_helper), 1), 120) + addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(ending_helper)), 270) if(client) makeNewConstruct(/mob/living/simple_animal/hostile/construct/harvester, src, cultoverride = TRUE) else @@ -422,7 +423,7 @@ return FALSE if(get_eye_protection() < intensity && (override_blindness_check || !is_blind())) overlay_fullscreen("flash", type) - addtimer(CALLBACK(src, .proc/clear_fullscreen, "flash", 25), 25) + addtimer(CALLBACK(src, PROC_REF(clear_fullscreen), "flash", 25), 25) return TRUE return FALSE diff --git a/code/modules/mob/living/living_say.dm b/code/modules/mob/living/living_say.dm index f092cef8cac9..eeb3948e627c 100644 --- a/code/modules/mob/living/living_say.dm +++ b/code/modules/mob/living/living_say.dm @@ -159,7 +159,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list( saymode = null message_mods -= RADIO_EXTENSION message_range = 1 - src.log_talk(message, LOG_WHISPER, custom_say_emote = message_mods[MODE_CUSTOM_SAY_EMOTE]) + var/logged_message = message if(stat == HARD_CRIT) //This is cheaper than checking for MODE_WHISPER_CRIT message mod var/health_diff = round(-HEALTH_THRESHOLD_DEAD + health) // If we cut our message short, abruptly end it with a-.. @@ -167,8 +167,12 @@ GLOBAL_LIST_INIT(department_radio_keys, list( message = copytext_char(message, 1, health_diff) + "[message_len > health_diff ? "-.." : "..."]" message = Ellipsis(message, 10, 1) last_words = message + var/final_warning = alert(usr, "Your dying words will be \"[last_words]\", continue?", "Succumb", "Cancel", "Continue") + if(final_warning == "Cancel" || QDELETED(src)) + return message_mods[WHISPER_MODE] = MODE_WHISPER_CRIT succumbed = TRUE + src.log_talk(logged_message, LOG_WHISPER, custom_say_emote = message_mods[MODE_CUSTOM_SAY_EMOTE]) else src.log_talk(message, LOG_SAY, forced_by=forced, custom_say_emote = message_mods[MODE_CUSTOM_SAY_EMOTE]) @@ -297,7 +301,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list( speech_bubble_recipients.Add(M.client) var/image/I = image('icons/mob/talk.dmi', src, "[bubble_type][say_test(message)]", FLY_LAYER) I.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA - INVOKE_ASYNC(GLOBAL_PROC, /.proc/flick_overlay, I, speech_bubble_recipients, 30) + INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(flick_overlay), I, speech_bubble_recipients, 30) /mob/proc/binarycheck() return FALSE diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 81d1cc78ca92..2223a1491a6c 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -134,7 +134,7 @@ create_eye() if(client) - INVOKE_ASYNC(src, .proc/apply_pref_name,"ai",client) + INVOKE_ASYNC(src, PROC_REF(apply_pref_name),"ai",client) set_core_display_icon() diff --git a/code/modules/mob/living/silicon/ai/death.dm b/code/modules/mob/living/silicon/ai/death.dm index 8c42baf4914e..f66d00b5f7aa 100644 --- a/code/modules/mob/living/silicon/ai/death.dm +++ b/code/modules/mob/living/silicon/ai/death.dm @@ -24,7 +24,7 @@ ShutOffDoomsdayDevice() if(explosive) - addtimer(CALLBACK(GLOBAL_PROC, .proc/explosion, loc, 3, 6, 12, 15), 1 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(explosion), loc, 3, 6, 12, 15), 1 SECONDS) if(src.key) for(var/each in GLOB.ai_status_displays) //change status diff --git a/code/modules/mob/living/silicon/ai/freelook/chunk.dm b/code/modules/mob/living/silicon/ai/freelook/chunk.dm index 4591720b7986..124028009116 100644 --- a/code/modules/mob/living/silicon/ai/freelook/chunk.dm +++ b/code/modules/mob/living/silicon/ai/freelook/chunk.dm @@ -50,7 +50,7 @@ /datum/camerachunk/proc/hasChanged(update_now = 0) if(seenby.len || update_now) - addtimer(CALLBACK(src, .proc/update), UPDATE_BUFFER, TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(update)), UPDATE_BUFFER, TIMER_UNIQUE) else changed = 1 diff --git a/code/modules/mob/living/silicon/ai/life.dm b/code/modules/mob/living/silicon/ai/life.dm index 85b20d068be2..b8af19155f09 100644 --- a/code/modules/mob/living/silicon/ai/life.dm +++ b/code/modules/mob/living/silicon/ai/life.dm @@ -170,4 +170,4 @@ blind_eyes(1) update_sight() to_chat(src, "You've lost power!") - addtimer(CALLBACK(src, .proc/start_RestorePowerRoutine), 20) + addtimer(CALLBACK(src, PROC_REF(start_RestorePowerRoutine)), 20) diff --git a/code/modules/mob/living/silicon/laws.dm b/code/modules/mob/living/silicon/laws.dm index ca35a7544222..30c7cd435068 100644 --- a/code/modules/mob/living/silicon/laws.dm +++ b/code/modules/mob/living/silicon/laws.dm @@ -15,8 +15,8 @@ if(announce && last_lawchange_announce != world.time) to_chat(src, "Your laws have been changed.") // lawset modules cause this function to be executed multiple times in a tick, so we wait for the next tick in order to be able to see the entire lawset - addtimer(CALLBACK(src, .proc/show_laws), 0) - addtimer(CALLBACK(src, .proc/deadchat_lawchange), 0) + addtimer(CALLBACK(src, PROC_REF(show_laws)), 0) + addtimer(CALLBACK(src, PROC_REF(deadchat_lawchange)), 0) last_lawchange_announce = world.time /mob/living/silicon/proc/set_law_sixsixsix(law, announce = TRUE) diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index cc646cfcc98c..be79cf7184ab 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -121,12 +121,12 @@ aicamera = new /obj/item/camera/siliconcam/ai_camera(src) aicamera.flash_enabled = TRUE - addtimer(CALLBACK(src, .proc/pdaconfig), 5) + addtimer(CALLBACK(src, PROC_REF(pdaconfig)), 5) . = ..() emittersemicd = TRUE - addtimer(CALLBACK(src, .proc/emittercool), 600) + addtimer(CALLBACK(src, PROC_REF(emittercool)), 600) if(!holoform) ADD_TRAIT(src, TRAIT_IMMOBILIZED, PAI_FOLDED) diff --git a/code/modules/mob/living/silicon/pai/pai_shell.dm b/code/modules/mob/living/silicon/pai/pai_shell.dm index 279d37045cc5..ca65a416691c 100644 --- a/code/modules/mob/living/silicon/pai/pai_shell.dm +++ b/code/modules/mob/living/silicon/pai/pai_shell.dm @@ -17,7 +17,7 @@ return FALSE emittersemicd = TRUE - addtimer(CALLBACK(src, .proc/emittercool), emittercd) + addtimer(CALLBACK(src, PROC_REF(emittercool)), emittercd) REMOVE_TRAIT(src, TRAIT_IMMOBILIZED, PAI_FOLDED) REMOVE_TRAIT(src, TRAIT_HANDS_BLOCKED, PAI_FOLDED) density = TRUE @@ -47,9 +47,9 @@ /mob/living/silicon/pai/proc/fold_in(force = FALSE) emittersemicd = TRUE if(!force) - addtimer(CALLBACK(src, .proc/emittercool), emittercd) + addtimer(CALLBACK(src, PROC_REF(emittercool)), emittercd) else - addtimer(CALLBACK(src, .proc/emittercool), emitteroverloadcd) + addtimer(CALLBACK(src, PROC_REF(emittercool)), emitteroverloadcd) icon_state = "[chassis]" if(!holoform) . = fold_out(force) diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm index cbcf7c6f2129..a099c05488fa 100644 --- a/code/modules/mob/living/silicon/pai/software.dm +++ b/code/modules/mob/living/silicon/pai/software.dm @@ -5,20 +5,52 @@ // - Camera jack GLOBAL_LIST_INIT(pai_faces, list( + ":>", + "=_=", + "angry", + "ashamed", + "bookworm", + "boykisser", + "cat", + "clueless", + "concerned", + "dread", + "estatic", + "exclaim", + "eye", + "eyewall", + "face", + "fangs", + "flushed", + "foureyes", + "greenjary", + "happy", + "heart", + "laugh", + "lenny", + "loss", + "michevious", + "missingno", + "mistake", + "moth", + "moyai", + "neko", "null", - "what", - "sad", + "o.o", "off", - "laugh", - "happy", - "face", - "estatic", - "cat", - "angry", + "pleading", + "question", + "sadcat", + "smug", + "snek", + "spiral", "sunglasses", + "syndisnake", //EVILLL PAI + "twoeyes", + "T_T", + "what", + "wink", "woozy", - "bookworm", - "greenjary", )) diff --git a/code/modules/mob/living/silicon/robot/laws.dm b/code/modules/mob/living/silicon/robot/laws.dm index b35afb1558e6..df62df082751 100644 --- a/code/modules/mob/living/silicon/robot/laws.dm +++ b/code/modules/mob/living/silicon/robot/laws.dm @@ -84,4 +84,4 @@ /mob/living/silicon/robot/post_lawchange(announce = TRUE) . = ..() - addtimer(CALLBACK(src, .proc/logevent,"Law update processed."), 0, TIMER_UNIQUE | TIMER_OVERRIDE) //Post_Lawchange gets spammed by some law boards, so let's wait it out + addtimer(CALLBACK(src, PROC_REF(logevent),"Law update processed."), 0, TIMER_UNIQUE | TIMER_OVERRIDE) //Post_Lawchange gets spammed by some law boards, so let's wait it out diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 1af879fc878e..44bfe5626754 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -111,7 +111,7 @@ wires = new /datum/wires/robot(src) AddComponent(/datum/component/empprotection, EMP_PROTECT_WIRES) - RegisterSignal(src, COMSIG_PROCESS_BORGCHARGER_OCCUPANT, .proc/charge) + RegisterSignal(src, COMSIG_PROCESS_BORGCHARGER_OCCUPANT, PROC_REF(charge)) robot_modules_background = new() robot_modules_background.icon_state = "block" @@ -157,7 +157,7 @@ mmi.brainmob.container = mmi mmi.update_appearance() - INVOKE_ASYNC(src, .proc/updatename) + INVOKE_ASYNC(src, PROC_REF(updatename)) playsound(loc, 'sound/voice/liveagain.ogg', 75, TRUE) aicamera = new/obj/item/camera/siliconcam/robot_camera(src) @@ -498,6 +498,9 @@ set category = "IC" set src = usr + return ..() + +/mob/living/silicon/robot/execute_mode() if(incapacitated()) return var/obj/item/W = get_active_held_item() @@ -687,7 +690,7 @@ /mob/living/silicon/robot/modules/syndicate/Initialize() . = ..() laws = new /datum/ai_laws/syndicate_override() - addtimer(CALLBACK(src, .proc/show_playstyle), 5) + addtimer(CALLBACK(src, PROC_REF(show_playstyle)), 5) /mob/living/silicon/robot/modules/syndicate/create_modularInterface() if(!modularInterface) @@ -720,7 +723,7 @@ /mob/living/silicon/robot/modules/syndicateproto/Initialize() . = ..() laws = new /datum/ai_laws/syndproto_override() - addtimer(CALLBACK(src, .proc/show_playstyle), 5) + addtimer(CALLBACK(src, PROC_REF(show_playstyle)), 5) /mob/living/silicon/robot/modules/syndicateproto/create_modularInterface() if(!modularInterface) @@ -923,7 +926,7 @@ hat_offset = module.hat_offset magpulse = module.magpulsing - INVOKE_ASYNC(src, .proc/updatename) + INVOKE_ASYNC(src, PROC_REF(updatename)) /mob/living/silicon/robot/proc/place_on_head(obj/item/new_hat) @@ -1091,12 +1094,11 @@ riding_datum.restore_position(user) . = ..(user) -/mob/living/silicon/robot/resist() +/mob/living/silicon/robot/execute_resist() . = ..() if(!has_buckled_mobs()) return - for(var/i in buckled_mobs) - var/mob/unbuckle_me_now = i + for(var/mob/unbuckle_me_now as anything in buckled_mobs) unbuckle_mob(unbuckle_me_now, FALSE) diff --git a/code/modules/mob/living/silicon/robot/robot_defense.dm b/code/modules/mob/living/silicon/robot/robot_defense.dm index 433c735a2784..39a0ede9334f 100644 --- a/code/modules/mob/living/silicon/robot/robot_defense.dm +++ b/code/modules/mob/living/silicon/robot/robot_defense.dm @@ -308,7 +308,7 @@ GLOBAL_LIST_INIT(blacklisted_borg_hats, typecacheof(list( //Hats that don't real return spark_system.start() step_away(src, user, 15) - addtimer(CALLBACK(GLOBAL_PROC, .proc/_step_away, src, get_turf(user), 15), 3) + addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(_step_away), src, get_turf(user), 15), 3) /mob/living/silicon/robot/fire_act() if(!on_fire) //Silicons don't gain stacks from hotspots, but hotspots can ignite them diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index dee91ab20f81..27819d97cf15 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -182,7 +182,7 @@ R.module = RM R.update_module_innate() RM.rebuild_modules() - INVOKE_ASYNC(RM, .proc/do_transform_animation) + INVOKE_ASYNC(RM, PROC_REF(do_transform_animation)) qdel(src) return RM @@ -281,7 +281,7 @@ "R34 - STR4a 'Durin'" = image(icon = 'icons/mob/robots.dmi', icon_state = "durin"), ) default_icons = sortList(default_icons) - var/default_borg_icon = show_radial_menu(R, R , default_icons, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE) + var/default_borg_icon = show_radial_menu(R, R , default_icons, custom_check = CALLBACK(src, PROC_REF(check_menu), R), radius = 42, require_near = TRUE) switch(default_borg_icon) if("Default") cyborg_base_icon = "robot" @@ -371,7 +371,7 @@ "Qualified Doctor" = image(icon = 'icons/mob/robots.dmi', icon_state = "qualified_doctor") ) med_icons = sortList(med_icons) - var/med_borg_icon = show_radial_menu(R, R , med_icons, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE) + var/med_borg_icon = show_radial_menu(R, R , med_icons, custom_check = CALLBACK(src, PROC_REF(check_menu), R), radius = 42, require_near = TRUE) switch(med_borg_icon) if("Antique") cyborg_base_icon = "medbot" @@ -475,7 +475,7 @@ "R34 - ENG7a 'Conagher'" = image(icon = 'icons/mob/robots.dmi', icon_state = "conagher"), ) engi_icons = sortList(engi_icons) - var/engi_borg_icon = show_radial_menu(R, R , engi_icons, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE) + var/engi_borg_icon = show_radial_menu(R, R , engi_icons, custom_check = CALLBACK(src, PROC_REF(check_menu), R), radius = 42, require_near = TRUE) switch(engi_borg_icon) if("Antique") cyborg_base_icon = "engibot" @@ -557,7 +557,7 @@ "R34 - SEC10a 'Woody'" = image(icon = 'icons/mob/robots.dmi', icon_state = "woody"), ) sec_icons = sortList(sec_icons) - var/sec_borg_icon = show_radial_menu(R, R , sec_icons, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE) + var/sec_borg_icon = show_radial_menu(R, R , sec_icons, custom_check = CALLBACK(src, PROC_REF(check_menu), R), radius = 42, require_near = TRUE) switch(sec_borg_icon) if("Antique") cyborg_base_icon = "secbot" @@ -681,7 +681,7 @@ "R34 - CUS3a 'Flynn'" = image(icon = 'icons/mob/robots.dmi', icon_state = "flynn"), ) jan_icons = sortList(jan_icons) - var/jan_borg_icon = show_radial_menu(R, R , jan_icons, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE) + var/jan_borg_icon = show_radial_menu(R, R , jan_icons, custom_check = CALLBACK(src, PROC_REF(check_menu), R), radius = 42, require_near = TRUE) switch(jan_borg_icon) if("Antique") cyborg_base_icon = "janbot" @@ -830,7 +830,7 @@ "R34 - SRV9a 'Llyod'" = image(icon = 'icons/mob/robots.dmi', icon_state = "lloyd"), ) service_icons = sortList(service_icons) - var/service_robot_icon = show_radial_menu(R, R , service_icons, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE) + var/service_robot_icon = show_radial_menu(R, R , service_icons, custom_check = CALLBACK(src, PROC_REF(check_menu), R), radius = 42, require_near = TRUE) switch(service_robot_icon) if("Default - 'Waitress'") cyborg_base_icon = "service_f" @@ -918,7 +918,7 @@ "R34 - MIN2a 'Ishimura'" = image(icon = 'icons/mob/robots.dmi', icon_state = "ishimura") ) mining_icons = sortList(mining_icons) - var/mining_borg_icon = show_radial_menu(R, R , mining_icons, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE) + var/mining_borg_icon = show_radial_menu(R, R , mining_icons, custom_check = CALLBACK(src, PROC_REF(check_menu), R), radius = 42, require_near = TRUE) switch(mining_borg_icon) if("Antique") cyborg_base_icon = "minerbot" diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 1923df3b50eb..347ec71e84e4 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -99,7 +99,7 @@ if(in_cooldown) return - addtimer(CALLBACK(src, .proc/show_alarms), 3 SECONDS) + addtimer(CALLBACK(src, PROC_REF(show_alarms)), 3 SECONDS) /mob/living/silicon/proc/show_alarms() if(alarms_to_show.len < 5) diff --git a/code/modules/mob/living/silicon/silicon_movement.dm b/code/modules/mob/living/silicon/silicon_movement.dm index 590326eda1b1..cc0a01aa375f 100644 --- a/code/modules/mob/living/silicon/silicon_movement.dm +++ b/code/modules/mob/living/silicon/silicon_movement.dm @@ -18,5 +18,5 @@ oldLoc = get_turf(oldLoc) if(!QDELETED(builtInCamera) && !updating && oldLoc != get_turf(src)) updating = TRUE - addtimer(CALLBACK(src, .proc/do_camera_update, oldLoc), SILICON_CAMERA_BUFFER) + addtimer(CALLBACK(src, PROC_REF(do_camera_update), oldLoc), SILICON_CAMERA_BUFFER) #undef SILICON_CAMERA_BUFFER diff --git a/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm b/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm index b0c583b9c247..52346fd7cddd 100644 --- a/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm +++ b/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm @@ -29,11 +29,11 @@ if(ismob(AM) && AM == target) visible_message("[src] flails his swords and cuts [AM]!") playsound(src,'sound/effects/beepskyspinsabre.ogg',100,TRUE,-1) - INVOKE_ASYNC(src, .proc/stun_attack, AM) + INVOKE_ASYNC(src, PROC_REF(stun_attack), AM) /mob/living/simple_animal/bot/secbot/grievous/Initialize() . = ..() - INVOKE_ASYNC(weapon, /obj/item.proc/attack_self, src) + INVOKE_ASYNC(weapon, TYPE_PROC_REF(/obj/item, attack_self), src) /mob/living/simple_animal/bot/secbot/grievous/Destroy() QDEL_NULL(weapon) @@ -51,7 +51,7 @@ weapon.attack(C, src) playsound(src, 'sound/weapons/blade1.ogg', 50, TRUE, -1) if(C.stat == DEAD) - addtimer(CALLBACK(src, /atom/.proc/update_appearance), 2) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_appearance)), 2) back_to_idle() @@ -107,7 +107,7 @@ if((C.name == oldtarget_name) && (world.time < last_found + 100)) continue - threatlevel = C.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, .proc/check_for_weapons)) + threatlevel = C.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, PROC_REF(check_for_weapons))) if(!threatlevel) continue @@ -122,7 +122,7 @@ icon_state = "grievous-c" visible_message("[src] points at [C.name]!") mode = BOT_HUNT - INVOKE_ASYNC(src, .proc/handle_automated_action) + INVOKE_ASYNC(src, PROC_REF(handle_automated_action)) break else continue diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm index 5b4d66893f5b..1c25a67c1dbe 100644 --- a/code/modules/mob/living/simple_animal/bot/bot.dm +++ b/code/modules/mob/living/simple_animal/bot/bot.dm @@ -384,7 +384,7 @@ ejectpai(0) if(on) turn_off() - addtimer(CALLBACK(src, .proc/emp_reset, was_on), severity*30 SECONDS) + addtimer(CALLBACK(src, PROC_REF(emp_reset), was_on), severity*30 SECONDS) /mob/living/simple_animal/bot/proc/emp_reset(was_on) stat &= ~EMPED @@ -529,7 +529,7 @@ Pass a positive integer as an argument to override a bot's default speed. if(step_count >= 1 && tries < BOT_STEP_MAX_RETRIES) for(var/step_number = 0, step_number < step_count,step_number++) - addtimer(CALLBACK(src, .proc/bot_step, dest), BOT_STEP_DELAY*step_number) + addtimer(CALLBACK(src, PROC_REF(bot_step), dest), BOT_STEP_DELAY*step_number) else return FALSE return TRUE @@ -574,7 +574,7 @@ Pass a positive integer as an argument to override a bot's default speed. turn_on() //Saves the AI the hassle of having to activate a bot manually. access_card = all_access //Give the bot all-access while under the AI's command. if(client) - reset_access_timer_id = addtimer(CALLBACK (src, .proc/bot_reset), 600, TIMER_UNIQUE|TIMER_OVERRIDE|TIMER_STOPPABLE) //if the bot is player controlled, they get the extra access for a limited time + reset_access_timer_id = addtimer(CALLBACK (src, PROC_REF(bot_reset)), 600, TIMER_UNIQUE|TIMER_OVERRIDE|TIMER_STOPPABLE) //if the bot is player controlled, they get the extra access for a limited time to_chat(src, "Priority waypoint set by [icon2html(calling_ai, src)] [caller]. Proceed to [end_area].
[path.len-1] meters to destination. You have been granted additional door access for 60 seconds.
") if(message) to_chat(calling_ai, "[icon2html(src, calling_ai)] [name] called to [end_area]. [path.len-1] meters to destination.") @@ -621,7 +621,7 @@ Pass a positive integer as an argument to override a bot's default speed. /mob/living/simple_animal/bot/proc/bot_patrol() patrol_step() - addtimer(CALLBACK(src, .proc/do_patrol), 5) + addtimer(CALLBACK(src, PROC_REF(do_patrol)), 5) /mob/living/simple_animal/bot/proc/do_patrol() if(mode == BOT_PATROL) @@ -641,7 +641,7 @@ Pass a positive integer as an argument to override a bot's default speed. return if(patrol_target) // has patrol target - INVOKE_ASYNC(src, .proc/target_patrol) + INVOKE_ASYNC(src, PROC_REF(target_patrol)) else // no patrol target, so need a new one speak("Engaging patrol mode.") find_patrol_target() @@ -675,7 +675,7 @@ Pass a positive integer as an argument to override a bot's default speed. var/moved = bot_move(patrol_target)//step_towards(src, next) // attempt to move if(!moved) //Couldn't proceed the next step of the path BOT_STEP_MAX_RETRIES times - addtimer(CALLBACK(src, .proc/patrol_step_not_moved), 2) + addtimer(CALLBACK(src, PROC_REF(patrol_step_not_moved)), 2) else // no path, so calculate new one mode = BOT_START_PATROL @@ -786,7 +786,7 @@ Pass a positive integer as an argument to override a bot's default speed. /mob/living/simple_animal/bot/proc/calc_summon_path(turf/avoid) check_bot_access() - INVOKE_ASYNC(src, .proc/do_calc_summon_path, avoid) + INVOKE_ASYNC(src, PROC_REF(do_calc_summon_path), avoid) /mob/living/simple_animal/bot/proc/do_calc_summon_path(turf/avoid) set_path(get_path_to(src, summon_target, /turf/proc/Distance_cardinal, 0, 150, id=access_card, exclude=avoid)) @@ -810,7 +810,7 @@ Pass a positive integer as an argument to override a bot's default speed. var/moved = bot_move(summon_target, 3) // Move attempt if(!moved) - addtimer(CALLBACK(src, .proc/summon_step_not_moved), 2) + addtimer(CALLBACK(src, PROC_REF(summon_step_not_moved)), 2) else // no path, so calculate new one calc_summon_path() diff --git a/code/modules/mob/living/simple_animal/bot/cleanbot.dm b/code/modules/mob/living/simple_animal/bot/cleanbot.dm index ea8c5bd93540..5229967f0374 100644 --- a/code/modules/mob/living/simple_animal/bot/cleanbot.dm +++ b/code/modules/mob/living/simple_animal/bot/cleanbot.dm @@ -155,7 +155,7 @@ stolen_valor += C.job update_titles() - INVOKE_ASYNC(weapon, /obj/item/proc/attack, C, src) + INVOKE_ASYNC(weapon, TYPE_PROC_REF(/obj/item, attack), C, src) C.Knockdown(20) /mob/living/simple_animal/bot/cleanbot/attackby(obj/item/W, mob/user, params) diff --git a/code/modules/mob/living/simple_animal/bot/ed209bot.dm b/code/modules/mob/living/simple_animal/bot/ed209bot.dm index c3c046b84727..bd3ad4bbcf17 100644 --- a/code/modules/mob/living/simple_animal/bot/ed209bot.dm +++ b/code/modules/mob/living/simple_animal/bot/ed209bot.dm @@ -64,7 +64,7 @@ var/threatlevel = 0 if(C.incapacitated()) continue - threatlevel = C.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, .proc/check_for_weapons)) + threatlevel = C.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, PROC_REF(check_for_weapons))) //speak(C.real_name + text(": threat: []", threatlevel)) if(threatlevel < 4) continue diff --git a/code/modules/mob/living/simple_animal/bot/floorbot.dm b/code/modules/mob/living/simple_animal/bot/floorbot.dm index fa6faaa6a889..d15c20f1aa1d 100644 --- a/code/modules/mob/living/simple_animal/bot/floorbot.dm +++ b/code/modules/mob/living/simple_animal/bot/floorbot.dm @@ -249,7 +249,7 @@ mode = BOT_REPAIRING F.ReplaceWithLattice() audible_message("[src] makes an excited booping sound.") - addtimer(CALLBACK(src, .proc/go_idle), 0.5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(go_idle)), 0.5 SECONDS) path = list() return if(path.len == 0) diff --git a/code/modules/mob/living/simple_animal/bot/honkbot.dm b/code/modules/mob/living/simple_animal/bot/honkbot.dm index 02bf813396f8..34ce788c53c5 100644 --- a/code/modules/mob/living/simple_animal/bot/honkbot.dm +++ b/code/modules/mob/living/simple_animal/bot/honkbot.dm @@ -49,14 +49,14 @@ /mob/living/simple_animal/bot/honkbot/proc/sensor_blink() icon_state = "honkbot-c" - addtimer(CALLBACK(src, /atom/.proc/update_icon), 5, TIMER_OVERRIDE|TIMER_UNIQUE) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_icon)), 5, TIMER_OVERRIDE|TIMER_UNIQUE) //honkbots react with sounds. /mob/living/simple_animal/bot/honkbot/proc/react_ping() playsound(src, 'sound/machines/ping.ogg', 50, TRUE, -1) //the first sound upon creation! spam_flag = TRUE sensor_blink() - addtimer(CALLBACK(src, .proc/spam_flag_false), 18) // calibrates before starting the honk + addtimer(CALLBACK(src, PROC_REF(spam_flag_false)), 18) // calibrates before starting the honk /mob/living/simple_animal/bot/honkbot/proc/react_buzz() playsound(src, 'sound/machines/buzz-sigh.ogg', 50, TRUE, -1) @@ -114,14 +114,14 @@ Maintenance panel panel is [open ? "opened" : "closed"]"}, /mob/living/simple_animal/bot/honkbot/attack_hand(mob/living/carbon/human/H) if(H.a_intent == "harm") retaliate(H) - addtimer(CALLBACK(src, .proc/react_buzz), 5) + addtimer(CALLBACK(src, PROC_REF(react_buzz)), 5) return ..() /mob/living/simple_animal/bot/honkbot/attackby(obj/item/W, mob/user, params) if(W.tool_behaviour != TOOL_SCREWDRIVER && (W.force) && (!target) && (W.damtype != STAMINA)) retaliate(user) - addtimer(CALLBACK(src, .proc/react_buzz), 5) + addtimer(CALLBACK(src, PROC_REF(react_buzz)), 5) ..() /mob/living/simple_animal/bot/honkbot/emag_act(mob/user) @@ -170,21 +170,21 @@ Maintenance panel panel is [open ? "opened" : "closed"]"}, playsound(src, honksound, 50, TRUE, -1) spam_flag = TRUE //prevent spam sensor_blink() - addtimer(CALLBACK(src, .proc/spam_flag_false), cooldowntimehorn) + addtimer(CALLBACK(src, PROC_REF(spam_flag_false)), cooldowntimehorn) else if (emagged == 2) //emagged honkbots will spam short and memorable sounds. if (!spam_flag) playsound(src, "honkbot_e", 50, FALSE) spam_flag = TRUE // prevent spam icon_state = "honkbot-e" - addtimer(CALLBACK(src, /atom/.proc/update_icon), 30, TIMER_OVERRIDE|TIMER_UNIQUE) - addtimer(CALLBACK(src, .proc/spam_flag_false), cooldowntimehorn) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_icon)), 30, TIMER_OVERRIDE|TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(spam_flag_false)), cooldowntimehorn) /mob/living/simple_animal/bot/honkbot/proc/honk_attack(mob/living/carbon/C) // horn attack if(!spam_flag) playsound(loc, honksound, 50, TRUE, -1) spam_flag = TRUE // prevent spam sensor_blink() - addtimer(CALLBACK(src, .proc/spam_flag_false), cooldowntimehorn) + addtimer(CALLBACK(src, PROC_REF(spam_flag_false)), cooldowntimehorn) /mob/living/simple_animal/bot/honkbot/proc/stun_attack(mob/living/carbon/C) // airhorn stun if(!spam_flag) @@ -206,7 +206,7 @@ Maintenance panel panel is [open ? "opened" : "closed"]"}, target = oldtarget_name else // you really don't want to hit an emagged honkbot threatlevel = 6 // will never let you go - addtimer(CALLBACK(src, .proc/spam_flag_false), cooldowntime) + addtimer(CALLBACK(src, PROC_REF(spam_flag_false)), cooldowntime) log_combat(src,C,"honked") @@ -215,7 +215,7 @@ Maintenance panel panel is [open ? "opened" : "closed"]"}, else C.stuttering = 20 C.Paralyze(80) - addtimer(CALLBACK(src, .proc/spam_flag_false), cooldowntime) + addtimer(CALLBACK(src, PROC_REF(spam_flag_false)), cooldowntime) /mob/living/simple_animal/bot/honkbot/handle_automated_action() @@ -279,13 +279,13 @@ Maintenance panel panel is [open ? "opened" : "closed"]"}, target = null last_found = world.time frustration = 0 - INVOKE_ASYNC(src, .proc/handle_automated_action) //responds quickly + INVOKE_ASYNC(src, PROC_REF(handle_automated_action)) //responds quickly /mob/living/simple_animal/bot/honkbot/proc/back_to_hunt() anchored = FALSE frustration = 0 mode = BOT_HUNT - INVOKE_ASYNC(src, .proc/handle_automated_action) // responds quickly + INVOKE_ASYNC(src, PROC_REF(handle_automated_action)) // responds quickly /mob/living/simple_animal/bot/honkbot/proc/look_for_perp() anchored = FALSE @@ -315,7 +315,7 @@ Maintenance panel panel is [open ? "opened" : "closed"]"}, speak("Honk!") visible_message("[src] starts chasing [C.name]!") mode = BOT_HUNT - INVOKE_ASYNC(src, .proc/handle_automated_action) + INVOKE_ASYNC(src, PROC_REF(handle_automated_action)) break else continue @@ -361,7 +361,7 @@ Maintenance panel panel is [open ? "opened" : "closed"]"}, C.Paralyze(10) playsound(loc, 'sound/misc/sadtrombone.ogg', 50, TRUE, -1) if(!client) - INVOKE_ASYNC(src, .proc/speak, "Honk!") + INVOKE_ASYNC(src, PROC_REF(speak), "Honk!") sensor_blink() return . = ..() diff --git a/code/modules/mob/living/simple_animal/bot/hygienebot.dm b/code/modules/mob/living/simple_animal/bot/hygienebot.dm index af1ce80b2a88..7240027f0853 100644 --- a/code/modules/mob/living/simple_animal/bot/hygienebot.dm +++ b/code/modules/mob/living/simple_animal/bot/hygienebot.dm @@ -175,13 +175,13 @@ frustration = 0 last_found = world.time stop_washing() - INVOKE_ASYNC(src, .proc/handle_automated_action) + INVOKE_ASYNC(src, PROC_REF(handle_automated_action)) /mob/living/simple_animal/bot/hygienebot/proc/back_to_hunt() frustration = 0 mode = BOT_HUNT stop_washing() - INVOKE_ASYNC(src, .proc/handle_automated_action) + INVOKE_ASYNC(src, PROC_REF(handle_automated_action)) /mob/living/simple_animal/bot/hygienebot/proc/look_for_lowhygiene() for (var/mob/living/carbon/human/H in view(7,src)) //Find the NEET @@ -194,7 +194,7 @@ playsound(loc, 'sound/effects/hygienebot_happy.ogg', 60, 1) visible_message("[src] points at [H.name]!") mode = BOT_HUNT - INVOKE_ASYNC(src, .proc/handle_automated_action) + INVOKE_ASYNC(src, PROC_REF(handle_automated_action)) break else continue diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm index e64b0b362e0a..5191ee1ba0c8 100644 --- a/code/modules/mob/living/simple_animal/bot/mulebot.dm +++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm @@ -578,7 +578,7 @@ buzz(SIGH) mode = BOT_WAIT_FOR_NAV blockcount = 0 - addtimer(CALLBACK(src, .proc/process_blocked, next), 2 SECONDS) + addtimer(CALLBACK(src, PROC_REF(process_blocked), next), 2 SECONDS) return return else @@ -591,7 +591,7 @@ if(BOT_NAV) // calculate new path mode = BOT_WAIT_FOR_NAV - INVOKE_ASYNC(src, .proc/process_nav) + INVOKE_ASYNC(src, PROC_REF(process_nav)) /mob/living/simple_animal/bot/mulebot/proc/process_blocked(turf/next) calc_path(avoid=next) @@ -639,7 +639,7 @@ /mob/living/simple_animal/bot/mulebot/proc/start_home() if(!on) return - INVOKE_ASYNC(src, .proc/do_start_home) + INVOKE_ASYNC(src, PROC_REF(do_start_home)) /mob/living/simple_animal/bot/mulebot/proc/do_start_home() set_destination(home_destination) @@ -775,8 +775,8 @@ new /obj/effect/decal/cleanable/oil(loc) ..() -/mob/living/simple_animal/bot/mulebot/resist() - ..() +/mob/living/simple_animal/bot/mulebot/execute_resist() + . = ..() if(load) unload() @@ -818,7 +818,7 @@ if(isobserver(AM)) visible_message("A ghostly figure appears on [src]!") - RegisterSignal(AM, COMSIG_MOVABLE_MOVED, .proc/ghostmoved) + RegisterSignal(AM, COMSIG_MOVABLE_MOVED, PROC_REF(ghostmoved)) AM.forceMove(src) else if(!wires.is_cut(WIRE_LOADCHECK)) diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm index 4629dd87c157..af33ef493167 100644 --- a/code/modules/mob/living/simple_animal/bot/secbot.dm +++ b/code/modules/mob/living/simple_animal/bot/secbot.dm @@ -174,7 +174,7 @@ Auto Patrol: []"}, /mob/living/simple_animal/bot/secbot/proc/retaliate(mob/living/carbon/human/H) var/judgement_criteria = judgement_criteria() - threatlevel = H.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, .proc/check_for_weapons)) + threatlevel = H.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, PROC_REF(check_for_weapons))) threatlevel += 6 if(threatlevel >= 4) target = H @@ -260,7 +260,7 @@ Auto Patrol: []"}, playsound(src, 'sound/weapons/cablecuff.ogg', 30, TRUE, -2) C.visible_message("[src] is trying to put zipties on [C]!",\ "[src] is trying to put zipties on you!") - addtimer(CALLBACK(src, .proc/attempt_handcuff, C), 60) + addtimer(CALLBACK(src, PROC_REF(attempt_handcuff), C), 60) /mob/living/simple_animal/bot/secbot/proc/attempt_handcuff(mob/living/carbon/C) if(!on || !Adjacent(C) || !isturf(C.loc)) //if he's in a closet or not adjacent, we cancel cuffing. @@ -275,7 +275,7 @@ Auto Patrol: []"}, var/judgement_criteria = judgement_criteria() playsound(src, 'sound/weapons/egloves.ogg', 50, TRUE, -1) icon_state = "[initial(icon_state)]-c" - addtimer(CALLBACK(src, /atom/.proc/update_icon), 2) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_icon)), 2) var/threat = 5 if(harm) @@ -284,11 +284,11 @@ Auto Patrol: []"}, C.stuttering = 5 C.Paralyze(100) var/mob/living/carbon/human/H = C - threat = H.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, .proc/check_for_weapons)) + threat = H.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, PROC_REF(check_for_weapons))) else C.Paralyze(100) C.stuttering = 5 - threat = C.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, .proc/check_for_weapons)) + threat = C.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, PROC_REF(check_for_weapons))) log_combat(src,C,"stunned") if(declare_arrests) @@ -397,13 +397,13 @@ Auto Patrol: []"}, target = null last_found = world.time frustration = 0 - INVOKE_ASYNC(src, .proc/handle_automated_action) + INVOKE_ASYNC(src, PROC_REF(handle_automated_action)) /mob/living/simple_animal/bot/secbot/proc/back_to_hunt() anchored = FALSE frustration = 0 mode = BOT_HUNT - INVOKE_ASYNC(src, .proc/handle_automated_action) + INVOKE_ASYNC(src, PROC_REF(handle_automated_action)) // look for a criminal in view of the bot /mob/living/simple_animal/bot/secbot/proc/look_for_perp() @@ -416,7 +416,7 @@ Auto Patrol: []"}, if((C.name == oldtarget_name) && (world.time < last_found + 100)) continue - threatlevel = C.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, .proc/check_for_weapons)) + threatlevel = C.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, PROC_REF(check_for_weapons))) if(!threatlevel) continue @@ -431,7 +431,7 @@ Auto Patrol: []"}, playsound(src, pick('sound/voice/beepsky/criminal.ogg', 'sound/voice/beepsky/justice.ogg', 'sound/voice/beepsky/freeze.ogg'), 50, FALSE) visible_message("[src] points at [C.name]!") mode = BOT_HUNT - INVOKE_ASYNC(src, .proc/handle_automated_action) + INVOKE_ASYNC(src, PROC_REF(handle_automated_action)) break else continue diff --git a/code/modules/mob/living/simple_animal/corpse.dm b/code/modules/mob/living/simple_animal/corpse.dm index de46d55e4f34..04ff8f5f54de 100644 --- a/code/modules/mob/living/simple_animal/corpse.dm +++ b/code/modules/mob/living/simple_animal/corpse.dm @@ -100,11 +100,11 @@ /obj/effect/mob_spawn/human/corpse/frontier name = "Frontiersman" - outfit = /datum/outfit/russiancorpse + outfit = /datum/outfit/frontier hairstyle = "Bald" facial_hairstyle = "Shaved" -/datum/outfit/russiancorpse +/datum/outfit/frontier name = "Frontiersman Corpse" uniform = /obj/item/clothing/under/rank/security/officer/frontier shoes = /obj/item/clothing/shoes/jackboots @@ -112,12 +112,12 @@ gloves = /obj/item/clothing/gloves/color/black /obj/effect/mob_spawn/human/corpse/frontier/ranged - outfit = /datum/outfit/russiancorpse + outfit = /datum/outfit/frontier /obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper - outfit = /datum/outfit/russiancorpse/trooper + outfit = /datum/outfit/frontier/trooper -/datum/outfit/russiancorpse/trooper +/datum/outfit/frontier/trooper name = "Frontiersman Armored Corpse" suit = /obj/item/clothing/suit/armor/vest/bulletproof/frontier shoes = /obj/item/clothing/shoes/combat @@ -128,10 +128,10 @@ /obj/effect/mob_spawn/human/corpse/frontier/ranged/officer name = "Frontiersman Officer" - outfit = /datum/outfit/russiancorpse/officer + outfit = /datum/outfit/frontier/officer -/datum/outfit/russiancorpse/officer - name = "Frontiersman officer Corpse" +/datum/outfit/frontier/officer + name = "Frontiersman Officer Corpse" uniform = /obj/item/clothing/under/rank/security/officer/frontier/officer suit = /obj/item/clothing/suit/armor/frontier shoes = /obj/item/clothing/shoes/combat @@ -139,14 +139,19 @@ head = /obj/item/clothing/head/caphat/frontier /obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper/heavy - outfit = /datum/outfit/russiancorpse/trooper/heavy + outfit = /datum/outfit/frontier/trooper/heavy -/datum/outfit/russiancorpse/trooper/heavy +/datum/outfit/frontier/trooper/heavy name = "Frontiersman Heavy Corpse" suit = /obj/item/clothing/suit/space/hardsuit/security/independent/frontier head = /obj/item/clothing/head/beret/sec/frontier/officer back = /obj/item/minigunpack +/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper/heavy/gunless + outfit = /datum/outfit/russiancorpse/trooper/heavy/gunless + +/datum/outfit/russiancorpse/trooper/heavy/gunless + back = null /obj/effect/mob_spawn/human/corpse/wizard name = "Space Wizard Corpse" diff --git a/code/modules/mob/living/simple_animal/friendly/dog.dm b/code/modules/mob/living/simple_animal/friendly/dog.dm index b62bb484c7bf..af5875853ce1 100644 --- a/code/modules/mob/living/simple_animal/friendly/dog.dm +++ b/code/modules/mob/living/simple_animal/friendly/dog.dm @@ -73,7 +73,7 @@ if(prob(1)) manual_emote(pick("dances around.","chases its tail!")) - INVOKE_ASYNC(GLOBAL_PROC, .proc/dance_rotate, src) + INVOKE_ASYNC(GLOBAL_PROC, PROC_REF(dance_rotate), src) //Corgis and pugs are now under one dog subtype @@ -318,7 +318,7 @@ /mob/living/simple_animal/pet/dog/corgi/proc/place_on_head(obj/item/item_to_add, mob/user) if(istype(item_to_add, /obj/item/grenade/c4)) // last thing he ever wears, I guess - INVOKE_ASYNC(item_to_add, /obj/item.proc/afterattack, src, user, 1) + INVOKE_ASYNC(item_to_add, TYPE_PROC_REF(/obj/item, afterattack), src, user, 1) return if(inventory_head) diff --git a/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm b/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm index e29948aa8b80..8714a3e49191 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm @@ -98,38 +98,4 @@ icon_living = icon_state icon_dead = "[visualAppearance]_dead" -/obj/effect/mob_spawn/drone/derelict - name = "derelict drone shell" - desc = "A long-forgotten drone shell. It seems kind of... Space Russian." - icon = 'icons/mob/drone.dmi' - icon_state = "drone_maint_hat" - mob_name = "derelict drone" - mob_type = /mob/living/simple_animal/drone/derelict - anchored = TRUE - short_desc = "You are a drone on Kosmicheskaya Stantsiya 13." - flavour_text = "Something has brought you out of hibernation, and the station is in gross disrepair." - important_info = "Build, repair, maintain and improve the station that housed you on activation." - -/mob/living/simple_animal/drone/derelict - name = "derelict drone" - default_hatmask = /obj/item/clothing/head/trapper - laws = \ - "1. You may not involve yourself in the matters of another sentient being outside the station that housed your activation, even if such matters conflict with Law Two or Law Three, unless the other being is another Drone.\n"+\ - "2. You may not harm any sentient being, regardless of intent or circumstance.\n"+\ - "3. Your goals are to actively build, maintain, repair, improve, and provide power to the best of your abilities within the facility that housed your activation." - flavortext = \ - "\nDO NOT WILLINGLY LEAVE KOSMICHESKAYA STANTSIYA 13 (THE DERELICT)\n"+\ - "Derelict drones are a ghost role that is allowed to roam freely on KS13, with the main goal of repairing and improving it.\n"+\ - "Do not interfere with the round going on outside KS13.\n"+\ - "Actions that constitute interference include, but are not limited to:\n"+\ - " - Going to the main station in search of materials.\n"+\ - " - Interacting with non-drone players outside KS13, dead or alive.\n"+\ - "These rules are at admin discretion and will be heavily enforced.\n"+\ - "If you do not have the regular drone laws, follow your laws to the best of your ability." - -/mob/living/simple_animal/drone/derelict/Initialize() - . = ..() - AddComponent(/datum/component/stationstuck, TRUE, "Your emergency station return device activates, sending you back to KS13!", "01000110 01010101 01000011 01001011 00100000 01011001 01001111 01010101
WARNING: Dereliction of KS13 detected. Self destruct activated.") - - diff --git a/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm b/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm index a70a9ff5cc64..56d7fefb06c4 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm @@ -106,7 +106,7 @@ "Repair Drone" = image(icon = 'icons/mob/drone.dmi', icon_state = REPAIRDRONE), "Scout Drone" = image(icon = 'icons/mob/drone.dmi', icon_state = SCOUTDRONE) ) - var/picked_icon = show_radial_menu(src, src, drone_icons, custom_check = CALLBACK(src, .proc/check_menu), radius = 38, require_near = TRUE) + var/picked_icon = show_radial_menu(src, src, drone_icons, custom_check = CALLBACK(src, PROC_REF(check_menu)), radius = 38, require_near = TRUE) switch(picked_icon) if("Maintenance Drone") visualAppearance = MAINTDRONE @@ -118,7 +118,7 @@ "pink" = image(icon = 'icons/mob/drone.dmi', icon_state = "[visualAppearance]_pink"), "red" = image(icon = 'icons/mob/drone.dmi', icon_state = "[visualAppearance]_red") ) - var/picked_color = show_radial_menu(src, src, drone_colors, custom_check = CALLBACK(src, .proc/check_menu), radius = 38, require_near = TRUE) + var/picked_color = show_radial_menu(src, src, drone_colors, custom_check = CALLBACK(src, PROC_REF(check_menu)), radius = 38, require_near = TRUE) if(picked_color) icon_state = "[visualAppearance]_[picked_color]" icon_living = "[visualAppearance]_[picked_color]" 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 e29029ff694d..a1884b76298e 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -152,7 +152,7 @@ to_chat(src, "You are tipped over by [M]!") Paralyze(60, ignore_canstun = TRUE) icon_state = icon_dead - addtimer(CALLBACK(src, .proc/cow_tipped, M), rand(20,50)) + addtimer(CALLBACK(src, PROC_REF(cow_tipped), M), rand(20,50)) else ..() diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index 48f84240c5ac..cf1b0de8ae70 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -198,7 +198,7 @@ GLOBAL_VAR_INIT(mouse_killed, 0) maxHealth = 30 health = maxHealth to_chat(src, "You ate cheese! You are now stronger, bigger and faster!") - addtimer(CALLBACK(src, .proc/cheese_down), 3 MINUTES) + addtimer(CALLBACK(src, PROC_REF(cheese_down)), 3 MINUTES) /mob/living/simple_animal/mouse/proc/cheese_down() cheesed = FALSE diff --git a/code/modules/mob/living/simple_animal/friendly/snake.dm b/code/modules/mob/living/simple_animal/friendly/snake.dm index c24271d9b09e..d33fac8f5c00 100644 --- a/code/modules/mob/living/simple_animal/friendly/snake.dm +++ b/code/modules/mob/living/simple_animal/friendly/snake.dm @@ -160,7 +160,7 @@ glasses = new /obj/item/clothing/glasses/regular(src) grant_all_languages() update_overlays() - INVOKE_ASYNC(src, .proc/update_phrases) + INVOKE_ASYNC(src, PROC_REF(update_phrases)) . = ..() /mob/living/simple_animal/hostile/retaliate/poison/snake/bookworm/proc/update_phrases() diff --git a/code/modules/mob/living/simple_animal/guardian/types/charger.dm b/code/modules/mob/living/simple_animal/guardian/types/charger.dm index 384bbf7e005b..7ebd3c8b3cca 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/charger.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/charger.dm @@ -34,7 +34,7 @@ /mob/living/simple_animal/hostile/guardian/charger/Shoot(atom/targeted_atom) charging = 1 - throw_at(targeted_atom, range, 1, src, FALSE, TRUE, callback = CALLBACK(src, .proc/charging_end)) + throw_at(targeted_atom, range, 1, src, FALSE, TRUE, callback = CALLBACK(src, PROC_REF(charging_end))) /mob/living/simple_animal/hostile/guardian/charger/proc/charging_end() charging = 0 diff --git a/code/modules/mob/living/simple_animal/guardian/types/explosive.dm b/code/modules/mob/living/simple_animal/guardian/types/explosive.dm index 863389b9840a..f93f70d8ffb3 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/explosive.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/explosive.dm @@ -49,9 +49,9 @@ if(bomb_cooldown <= world.time && !stat) to_chat(src, "Success! Bomb armed!") bomb_cooldown = world.time + 200 - RegisterSignal(A, COMSIG_PARENT_EXAMINE, .proc/display_examine) - RegisterSignal(A, boom_signals, .proc/kaboom) - addtimer(CALLBACK(src, .proc/disable, A), 600, TIMER_UNIQUE|TIMER_OVERRIDE) + RegisterSignal(A, COMSIG_PARENT_EXAMINE, PROC_REF(display_examine)) + RegisterSignal(A, boom_signals, PROC_REF(kaboom)) + addtimer(CALLBACK(src, PROC_REF(disable), A), 600, TIMER_UNIQUE|TIMER_OVERRIDE) else to_chat(src, "Your powers are on cooldown! You must wait 20 seconds between bombs.") diff --git a/code/modules/mob/living/simple_animal/guardian/types/gravitokinetic.dm b/code/modules/mob/living/simple_animal/guardian/types/gravitokinetic.dm index b8a8bbb54366..a86e38db7772 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/gravitokinetic.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/gravitokinetic.dm @@ -53,7 +53,7 @@ return A.AddElement(/datum/element/forced_gravity, new_gravity) gravito_targets[A] = new_gravity - RegisterSignal(A, COMSIG_MOVABLE_MOVED, .proc/__distance_check) + RegisterSignal(A, COMSIG_MOVABLE_MOVED, PROC_REF(__distance_check)) playsound(src, 'sound/effects/gravhit.ogg', 100, TRUE) /mob/living/simple_animal/hostile/guardian/gravitokinetic/proc/remove_gravity(atom/target) diff --git a/code/modules/mob/living/simple_animal/guardian/types/ranged.dm b/code/modules/mob/living/simple_animal/guardian/types/ranged.dm index d4666873848e..105ae8b35ec8 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/ranged.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/ranged.dm @@ -119,7 +119,7 @@ /obj/effect/snare/Initialize() . = ..() var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) diff --git a/code/modules/mob/living/simple_animal/hostile/bear.dm b/code/modules/mob/living/simple_animal/hostile/bear.dm index 9afea9921ef6..caf465140231 100644 --- a/code/modules/mob/living/simple_animal/hostile/bear.dm +++ b/code/modules/mob/living/simple_animal/hostile/bear.dm @@ -84,7 +84,7 @@ environment_smash = ENVIRONMENT_SMASH_MINERALS weather_immunities = list("snow") -/mob/living/simple_animal/hostile/bear/russian +/mob/living/simple_animal/hostile/bear/frontier name = "combat bear" desc = "A ferocious brown bear decked out in armor plating, a red star with yellow outlining details the shoulder plating." icon_state = "combatbear" @@ -114,7 +114,7 @@ /obj/item/bear_armor name = "pile of bear armor" desc = "A scattered pile of various shaped armor pieces fitted for a bear, some duct tape, and a nail filer. Crude instructions \ - are written on the back of one of the plates in russian. This seems like an awful idea." + are written on the back of one of the plates. This seems like an awful idea." icon = 'icons/obj/items_and_weapons.dmi' icon_state = "bear_armor_upgrade" @@ -141,7 +141,7 @@ icon_living = "butterbear" icon_dead = "butterbear_dead" desc = "I can't believe its not a bear!" - faction = list("neutral", "russian") + faction = list("neutral", "frontiersmen") obj_damage = 11 melee_damage_lower = 1 melee_damage_upper = 1 diff --git a/code/modules/mob/living/simple_animal/hostile/bees.dm b/code/modules/mob/living/simple_animal/hostile/bees.dm index d079fbed4ce4..676b58a98520 100644 --- a/code/modules/mob/living/simple_animal/hostile/bees.dm +++ b/code/modules/mob/living/simple_animal/hostile/bees.dm @@ -325,4 +325,4 @@ /mob/living/simple_animal/hostile/poison/bees/short/Initialize(mapload, timetolive=50 SECONDS) . = ..() - addtimer(CALLBACK(src, .proc/death), timetolive) + addtimer(CALLBACK(src, PROC_REF(death)), timetolive) diff --git a/code/modules/mob/living/simple_animal/hostile/frontiersman.dm b/code/modules/mob/living/simple_animal/hostile/frontiersman.dm index c8e6a1c8d2b4..feeecdb5b43d 100644 --- a/code/modules/mob/living/simple_animal/hostile/frontiersman.dm +++ b/code/modules/mob/living/simple_animal/hostile/frontiersman.dm @@ -41,6 +41,8 @@ projectilesound = 'sound/weapons/gun/revolver/shot.ogg' casingtype = /obj/item/ammo_casing/n762_38 +/mob/living/simple_animal/hostile/frontier/ranged/neutered + loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged) /mob/living/simple_animal/hostile/frontier/ranged/mosin icon_state = "frontiersmanrangedrifle" @@ -50,6 +52,9 @@ casingtype = /obj/item/ammo_casing/a762_54 projectilesound = 'sound/weapons/gun/rifle/mosin.ogg' +/mob/living/simple_animal/hostile/frontier/ranged/mosin/neutered + loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged) + /mob/living/simple_animal/hostile/frontier/ranged/trooper icon_state = "frontiersmanrangedelite" icon_living = "frontiersmanrangedelite" @@ -60,6 +65,9 @@ loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper, /obj/item/gun/ballistic/shotgun/lethal) +/mob/living/simple_animal/hostile/frontier/ranged/trooper/neutered + loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper) + /mob/living/simple_animal/hostile/frontier/ranged/trooper/ak47 icon_state = "frontiersmanrangedak47" icon_living = "frontiersmanrangedak47" @@ -70,6 +78,9 @@ loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper, /obj/item/gun/ballistic/automatic/assault/ak47) +/mob/living/simple_animal/hostile/frontier/ranged/trooper/ak47/neutured + loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper) + /mob/living/simple_animal/hostile/frontier/ranged/trooper/rifle icon_state = "frontiersmanrangedmosin" icon_living = "frontiersmanrangedmosin" @@ -79,6 +90,9 @@ casingtype = /obj/item/ammo_casing/a762_54 projectilesound = 'sound/weapons/gun/rifle/mosin.ogg' +/mob/living/simple_animal/hostile/frontier/ranged/trooper/rifle/neutered + loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper) + /mob/living/simple_animal/hostile/frontier/ranged/trooper/heavy icon_state = "frontiersmanrangedminigun" icon_living = "frontiersmanrangedminigun" @@ -91,6 +105,9 @@ projectiletype = /obj/projectile/beam/weak/penetrator loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper/heavy) +/mob/living/simple_animal/hostile/frontier/ranged/trooper/heavy/neutered + loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper/heavy/gunless) + /mob/living/simple_animal/hostile/frontier/ranged/officer name = "Frontiersman Officer" icon_state = "frontiersmanofficer" @@ -102,6 +119,9 @@ loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/officer, /obj/item/gun/ballistic/automatic/pistol/APS) +/mob/living/simple_animal/hostile/frontier/ranged/officer/neutured + loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/officer) + /mob/living/simple_animal/hostile/frontier/ranged/officer/Aggro() ..() summon_backup(15) 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 09fdf0d763ba..5e3e8d0b34d5 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -252,7 +252,7 @@ if(!busy && prob(1)) stop_automated_movement = TRUE Goto(pick(urange(20, src, 1)), move_to_delay) - addtimer(CALLBACK(src, .proc/do_action), 5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(do_action)), 5 SECONDS) return 1 /mob/living/simple_animal/hostile/poison/giant_spider/proc/do_action() @@ -277,7 +277,7 @@ busy = MOVING_TO_TARGET Goto(C, move_to_delay) //give up if we can't reach them after 10 seconds - addtimer(CALLBACK(src, .proc/GiveUp, C), 10 SECONDS) + addtimer(CALLBACK(src, PROC_REF(GiveUp), C), 10 SECONDS) return //second, spin a sticky spiderweb on this tile @@ -301,7 +301,7 @@ stop_automated_movement = 1 Goto(O, move_to_delay) //give up if we can't reach them after 10 seconds - addtimer(CALLBACK(src, .proc/GiveUp, O), 10 SECONDS) + addtimer(CALLBACK(src, PROC_REF(GiveUp), O), 10 SECONDS) else if(busy == MOVING_TO_TARGET && cocoon_target_ref) var/mob/living/cocoon_target = cocoon_target_ref.resolve() @@ -443,7 +443,7 @@ if(target_atom.anchored) return user.cocoon_target_ref = WEAKREF(target_atom) - INVOKE_ASYNC(user, /mob/living/simple_animal/hostile/poison/giant_spider/nurse/.proc/cocoon) + INVOKE_ASYNC(user, TYPE_PROC_REF(/mob/living/simple_animal/hostile/poison/giant_spider/nurse, cocoon)) remove_ranged_ability() return TRUE diff --git a/code/modules/mob/living/simple_animal/hostile/goose.dm b/code/modules/mob/living/simple_animal/hostile/goose.dm index bf0337488dcb..0d48bdb082e6 100644 --- a/code/modules/mob/living/simple_animal/hostile/goose.dm +++ b/code/modules/mob/living/simple_animal/hostile/goose.dm @@ -41,7 +41,7 @@ /mob/living/simple_animal/hostile/retaliate/goose/Initialize() . = ..() - RegisterSignal(src, COMSIG_MOVABLE_MOVED, .proc/goosement) + RegisterSignal(src, COMSIG_MOVABLE_MOVED, PROC_REF(goosement)) /mob/living/simple_animal/hostile/retaliate/goose/Destroy() UnregisterSignal(src, COMSIG_MOVABLE_MOVED) @@ -149,7 +149,7 @@ /mob/living/simple_animal/hostile/retaliate/goose/proc/choke(obj/item/reagent_containers/food/plastic) if(stat == DEAD || choking) return - addtimer(CALLBACK(src, .proc/suffocate), 300) + addtimer(CALLBACK(src, PROC_REF(suffocate)), 300) /mob/living/simple_animal/hostile/retaliate/goose/vomit/choke(obj/item/reagent_containers/food/plastic) if(stat == DEAD || choking) @@ -157,9 +157,9 @@ if(prob(25)) visible_message("[src] is gagging on \the [plastic]!") manual_emote("gags!") - addtimer(CALLBACK(src, .proc/vomit), 300) + addtimer(CALLBACK(src, PROC_REF(vomit)), 300) else - addtimer(CALLBACK(src, .proc/suffocate), 300) + addtimer(CALLBACK(src, PROC_REF(suffocate)), 300) /mob/living/simple_animal/hostile/retaliate/goose/Life() . = ..() @@ -206,13 +206,13 @@ /mob/living/simple_animal/hostile/retaliate/goose/vomit/proc/vomit_prestart(duration) flick("vomit_start",src) - addtimer(CALLBACK(src, .proc/vomit_start, duration), 13) //13 is the length of the vomit_start animation in gooseloose.dmi + addtimer(CALLBACK(src, PROC_REF(vomit_start), duration), 13) //13 is the length of the vomit_start animation in gooseloose.dmi /mob/living/simple_animal/hostile/retaliate/goose/vomit/proc/vomit_start(duration) vomiting = TRUE icon_state = "vomit" vomit() - addtimer(CALLBACK(src, .proc/vomit_preend), duration) + addtimer(CALLBACK(src, PROC_REF(vomit_preend)), duration) /mob/living/simple_animal/hostile/retaliate/goose/vomit/proc/vomit_preend() for (var/obj/item/consumed in contents) //Get rid of any food left in the poor thing @@ -241,11 +241,11 @@ /mob/living/simple_animal/hostile/retaliate/goose/vomit/proc/deadchat_plays_goose() stop_automated_movement = TRUE AddComponent(/datum/component/deadchat_control, ANARCHY_MODE, list( - "up" = CALLBACK(GLOBAL_PROC, .proc/_step, src, NORTH), - "down" = CALLBACK(GLOBAL_PROC, .proc/_step, src, SOUTH), - "left" = CALLBACK(GLOBAL_PROC, .proc/_step, src, WEST), - "right" = CALLBACK(GLOBAL_PROC, .proc/_step, src, EAST), - "vomit" = CALLBACK(src, .proc/vomit_prestart, 25)), 12 SECONDS, 4 SECONDS) + "up" = CALLBACK(GLOBAL_PROC, PROC_REF(_step), src, NORTH), + "down" = CALLBACK(GLOBAL_PROC, PROC_REF(_step), src, SOUTH), + "left" = CALLBACK(GLOBAL_PROC, PROC_REF(_step), src, WEST), + "right" = CALLBACK(GLOBAL_PROC, PROC_REF(_step), src, EAST), + "vomit" = CALLBACK(src, PROC_REF(vomit_prestart), 25)), 12 SECONDS, 4 SECONDS) /datum/action/cooldown/vomit name = "Vomit" diff --git a/code/modules/mob/living/simple_animal/hostile/headcrab.dm b/code/modules/mob/living/simple_animal/hostile/headcrab.dm index 08bb29d32f38..850ff235375f 100644 --- a/code/modules/mob/living/simple_animal/hostile/headcrab.dm +++ b/code/modules/mob/living/simple_animal/hostile/headcrab.dm @@ -48,7 +48,7 @@ return Infect(target) to_chat(src, "With our egg laid, our death approaches rapidly...") - addtimer(CALLBACK(src, .proc/death), 100) + addtimer(CALLBACK(src, PROC_REF(death)), 100) /obj/item/organ/body_egg/changeling_egg name = "changeling egg" diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 106c9ad54f60..6eaa0f8ebd5a 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -104,7 +104,7 @@ /mob/living/simple_animal/hostile/handle_automated_movement() . = ..() if(dodging && target && in_melee && isturf(loc) && isturf(target.loc)) - var/datum/cb = CALLBACK(src,.proc/sidestep) + var/datum/cb = CALLBACK(src, PROC_REF(sidestep)) if(sidestep_per_cycle > 1) //For more than one just spread them equally - this could changed to some sensible distribution later var/sidestep_delay = SSnpcpool.wait / sidestep_per_cycle for(var/i in 1 to sidestep_per_cycle) @@ -263,7 +263,7 @@ //What we do after closing in /mob/living/simple_animal/hostile/proc/MeleeAction(patience = TRUE) if(rapid_melee > 1) - var/datum/callback/cb = CALLBACK(src, .proc/CheckAndAttack) + var/datum/callback/cb = CALLBACK(src, PROC_REF(CheckAndAttack)) var/delay = SSnpcpool.wait / rapid_melee for(var/i in 1 to rapid_melee) addtimer(cb, (i - 1)*delay) @@ -408,7 +408,7 @@ if(rapid > 1) - var/datum/callback/cb = CALLBACK(src, .proc/Shoot, A) + var/datum/callback/cb = CALLBACK(src, PROC_REF(Shoot), A) for(var/i in 1 to rapid) addtimer(cb, (i - 1)*rapid_fire_delay) else @@ -546,7 +546,7 @@ /mob/living/simple_animal/hostile/proc/GainPatience() if(lose_patience_timeout) LosePatience() - lose_patience_timer_id = addtimer(CALLBACK(src, .proc/LoseTarget), lose_patience_timeout, TIMER_STOPPABLE) + lose_patience_timer_id = addtimer(CALLBACK(src, PROC_REF(LoseTarget)), lose_patience_timeout, TIMER_STOPPABLE) /mob/living/simple_animal/hostile/proc/LosePatience() @@ -557,7 +557,7 @@ /mob/living/simple_animal/hostile/proc/LoseSearchObjects() search_objects = 0 deltimer(search_objects_timer_id) - search_objects_timer_id = addtimer(CALLBACK(src, .proc/RegainSearchObjects), search_objects_regain_time, TIMER_STOPPABLE) + search_objects_timer_id = addtimer(CALLBACK(src, PROC_REF(RegainSearchObjects)), search_objects_regain_time, TIMER_STOPPABLE) /mob/living/simple_animal/hostile/proc/RegainSearchObjects(value) @@ -610,7 +610,7 @@ var/obj/effect/temp_visual/decoy/new_decoy = new /obj/effect/temp_visual/decoy(loc,src) animate(new_decoy, alpha = 0, color = "#5a5858", transform = matrix()*2, time = 3) target.visible_message("[src] prepares to pounce!") - addtimer(CALLBACK(src, .proc/handle_charge_target, target), 1.5 SECONDS, TIMER_STOPPABLE) + addtimer(CALLBACK(src, PROC_REF(handle_charge_target), target), 1.5 SECONDS, TIMER_STOPPABLE) /** * Proc that checks if the mob can charge attack. @@ -627,7 +627,7 @@ if(!can_charge_target(target)) return FALSE charge_state = TRUE - throw_at(target, charge_distance, 1, src, FALSE, TRUE, callback = CALLBACK(src, .proc/charge_end)) + throw_at(target, charge_distance, 1, src, FALSE, TRUE, callback = CALLBACK(src, PROC_REF(charge_end))) COOLDOWN_START(src, charge_cooldown, charge_frequency) return TRUE @@ -683,7 +683,7 @@ UnregisterSignal(target, COMSIG_PARENT_QDELETING) target = new_target if(target) - RegisterSignal(target, COMSIG_PARENT_QDELETING, .proc/handle_target_del, TRUE) + RegisterSignal(target, COMSIG_PARENT_QDELETING, PROC_REF(handle_target_del), TRUE) /mob/living/simple_animal/hostile/proc/set_camp_faction(tag) src.faction = list() 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 c476a5f5cf2b..7fd15ed0b6a1 100644 --- a/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm +++ b/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm @@ -82,10 +82,10 @@ /obj/structure/leaper_bubble/Initialize() . = ..() - INVOKE_ASYNC(src, /atom/movable.proc/float, TRUE) + INVOKE_ASYNC(src, TYPE_PROC_REF(/atom/movable, float), TRUE) QDEL_IN(src, 100) var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) @@ -212,7 +212,7 @@ if(AIStatus == AI_ON && ranged_cooldown <= world.time) projectile_ready = TRUE update_icons() - throw_at(new_turf, max(3,get_dist(src,new_turf)), 1, src, FALSE, callback = CALLBACK(src, .proc/FinishHop)) + throw_at(new_turf, max(3,get_dist(src,new_turf)), 1, src, FALSE, callback = CALLBACK(src, PROC_REF(FinishHop))) /mob/living/simple_animal/hostile/jungle/leaper/proc/FinishHop() density = TRUE @@ -222,18 +222,18 @@ playsound(src.loc, 'sound/effects/meteorimpact.ogg', 100, TRUE) if(target && AIStatus == AI_ON && projectile_ready && !ckey) face_atom(target) - addtimer(CALLBACK(src, .proc/OpenFire, target), 5) + addtimer(CALLBACK(src, PROC_REF(OpenFire), target), 5) /mob/living/simple_animal/hostile/jungle/leaper/proc/BellyFlop() var/turf/new_turf = get_turf(target) hopping = TRUE notransform = TRUE new /obj/effect/temp_visual/leaper_crush(new_turf) - addtimer(CALLBACK(src, .proc/BellyFlopHop, new_turf), 30) + addtimer(CALLBACK(src, PROC_REF(BellyFlopHop), new_turf), 30) /mob/living/simple_animal/hostile/jungle/leaper/proc/BellyFlopHop(turf/T) density = FALSE - throw_at(T, get_dist(src,T),1,src, FALSE, callback = CALLBACK(src, .proc/Crush)) + throw_at(T, get_dist(src,T),1,src, FALSE, callback = CALLBACK(src, PROC_REF(Crush))) /mob/living/simple_animal/hostile/jungle/leaper/proc/Crush() hopping = FALSE 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 06b2924033d9..b85da6c2c726 100644 --- a/code/modules/mob/living/simple_animal/hostile/jungle/mook.dm +++ b/code/modules/mob/living/simple_animal/hostile/jungle/mook.dm @@ -72,9 +72,9 @@ walk(src,0) update_icons() if(prob(50) && get_dist(src,target) <= 3 || forced_slash_combo) - addtimer(CALLBACK(src, .proc/SlashCombo), ATTACK_INTERMISSION_TIME) + addtimer(CALLBACK(src, PROC_REF(SlashCombo)), ATTACK_INTERMISSION_TIME) return - addtimer(CALLBACK(src, .proc/LeapAttack), ATTACK_INTERMISSION_TIME + rand(0,3)) + addtimer(CALLBACK(src, PROC_REF(LeapAttack)), ATTACK_INTERMISSION_TIME + rand(0,3)) return attack_state = MOOK_ATTACK_RECOVERY ResetNeutral() @@ -84,9 +84,9 @@ attack_state = MOOK_ATTACK_ACTIVE update_icons() SlashAttack() - addtimer(CALLBACK(src, .proc/SlashAttack), 3) - addtimer(CALLBACK(src, .proc/SlashAttack), 6) - addtimer(CALLBACK(src, .proc/AttackRecovery), 9) + addtimer(CALLBACK(src, PROC_REF(SlashAttack)), 3) + addtimer(CALLBACK(src, PROC_REF(SlashAttack)), 6) + addtimer(CALLBACK(src, PROC_REF(AttackRecovery)), 9) /mob/living/simple_animal/hostile/jungle/mook/proc/SlashAttack() if(target && !stat && attack_state == MOOK_ATTACK_ACTIVE) @@ -115,7 +115,7 @@ playsound(src, 'sound/weapons/thudswoosh.ogg', 25, TRUE) playsound(src, 'sound/voice/mook_leap_yell.ogg', 100, TRUE) var/target_turf = get_turf(target) - throw_at(target_turf, 7, 1, src, FALSE, callback = CALLBACK(src, .proc/AttackRecovery)) + throw_at(target_turf, 7, 1, src, FALSE, callback = CALLBACK(src, PROC_REF(AttackRecovery))) return attack_state = MOOK_ATTACK_RECOVERY ResetNeutral() @@ -134,11 +134,11 @@ if(isliving(target)) var/mob/living/L = target if(L.incapacitated() && L.stat != DEAD) - addtimer(CALLBACK(src, .proc/WarmupAttack, TRUE), ATTACK_INTERMISSION_TIME) + addtimer(CALLBACK(src, PROC_REF(WarmupAttack), TRUE), ATTACK_INTERMISSION_TIME) return - addtimer(CALLBACK(src, .proc/WarmupAttack), ATTACK_INTERMISSION_TIME) + addtimer(CALLBACK(src, PROC_REF(WarmupAttack)), ATTACK_INTERMISSION_TIME) return - addtimer(CALLBACK(src, .proc/ResetNeutral), ATTACK_INTERMISSION_TIME) + addtimer(CALLBACK(src, PROC_REF(ResetNeutral)), ATTACK_INTERMISSION_TIME) /mob/living/simple_animal/hostile/jungle/mook/proc/ResetNeutral() if(attack_state == MOOK_ATTACK_RECOVERY) diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/seedling.dm b/code/modules/mob/living/simple_animal/hostile/jungle/seedling.dm index 91da0614fb50..be9ef71562f3 100644 --- a/code/modules/mob/living/simple_animal/hostile/jungle/seedling.dm +++ b/code/modules/mob/living/simple_animal/hostile/jungle/seedling.dm @@ -47,7 +47,7 @@ flag = "energy" light_color = LIGHT_COLOR_YELLOW hitsound = 'sound/weapons/sear.ogg' - hitsound_wall = 'sound/weapons/effects/searwall.ogg' + hitsound_non_living = 'sound/weapons/effects/searwall.ogg' nondirectional_sprite = TRUE /obj/projectile/seedling/Bump(atom/A)//Stops seedlings from destroying other jungle mobs through FF @@ -134,7 +134,7 @@ if(get_dist(src,target) >= 4 && prob(40)) SolarBeamStartup(target) return - addtimer(CALLBACK(src, .proc/Volley), 5) + addtimer(CALLBACK(src, PROC_REF(Volley)), 5) /mob/living/simple_animal/hostile/jungle/seedling/proc/SolarBeamStartup(mob/living/living_target)//It's more like requiem than final spark if(combatant_state == SEEDLING_STATE_WARMUP && target) @@ -145,7 +145,7 @@ if(get_dist(src,living_target) > 7) playsound(living_target,'sound/effects/seedling_chargeup.ogg', 100, FALSE) solar_beam_identifier = world.time - addtimer(CALLBACK(src, .proc/Beamu, living_target, solar_beam_identifier), 35) + addtimer(CALLBACK(src, PROC_REF(Beamu), living_target, solar_beam_identifier), 35) /mob/living/simple_animal/hostile/jungle/seedling/proc/Beamu(mob/living/living_target, beam_id = 0) if(combatant_state == SEEDLING_STATE_ACTIVE && living_target && beam_id == solar_beam_identifier) @@ -165,7 +165,7 @@ living_target.adjust_fire_stacks(0.2)//Just here for the showmanship living_target.IgniteMob() playsound(living_target,'sound/weapons/sear.ogg', 50, TRUE) - addtimer(CALLBACK(src, .proc/AttackRecovery), 5) + addtimer(CALLBACK(src, PROC_REF(AttackRecovery)), 5) return AttackRecovery() @@ -173,10 +173,10 @@ if(combatant_state == SEEDLING_STATE_WARMUP && target) combatant_state = SEEDLING_STATE_ACTIVE update_icons() - var/datum/callback/cb = CALLBACK(src, .proc/InaccurateShot) + var/datum/callback/cb = CALLBACK(src, PROC_REF(InaccurateShot)) for(var/i in 1 to 13) addtimer(cb, i) - addtimer(CALLBACK(src, .proc/AttackRecovery), 14) + addtimer(CALLBACK(src, PROC_REF(AttackRecovery)), 14) /mob/living/simple_animal/hostile/jungle/seedling/proc/InaccurateShot() if(!QDELETED(target) && combatant_state == SEEDLING_STATE_ACTIVE && !stat) @@ -196,7 +196,7 @@ ranged_cooldown = world.time + ranged_cooldown_time if(target) face_atom(target) - addtimer(CALLBACK(src, .proc/ResetNeutral), 10) + addtimer(CALLBACK(src, PROC_REF(ResetNeutral)), 10) /mob/living/simple_animal/hostile/jungle/seedling/proc/ResetNeutral() combatant_state = SEEDLING_STATE_NEUTRAL 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 a4678a69799a..cf8a32af157c 100644 --- a/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm +++ b/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm @@ -65,7 +65,7 @@ Featuring: if(spawn_mecha_type) var/obj/mecha/M = new spawn_mecha_type (get_turf(src)) if(istype(M)) - INVOKE_ASYNC(src, .proc/enter_mecha, M) + INVOKE_ASYNC(src, PROC_REF(enter_mecha), M) /mob/living/simple_animal/hostile/syndicate/mecha_pilot/proc/enter_mecha(obj/mecha/M) @@ -232,13 +232,13 @@ Featuring: if(mecha.defense_action && mecha.defense_action.owner && !mecha.defense_mode) mecha.leg_overload_mode = 0 mecha.defense_action.Activate(TRUE) - addtimer(CALLBACK(mecha.defense_action, /datum/action/innate/mecha/mech_defense_mode.proc/Activate, FALSE), 100) //10 seconds of defense, then toggle off + addtimer(CALLBACK(mecha.defense_action, TYPE_PROC_REF(/datum/action/innate/mecha/mech_defense_mode, Activate), FALSE), 100) //10 seconds of defense, then toggle off else if(prob(retreat_chance)) //Speed boost if possible if(mecha.overload_action && mecha.overload_action.owner && !mecha.leg_overload_mode) mecha.overload_action.Activate(TRUE) - addtimer(CALLBACK(mecha.overload_action, /datum/action/innate/mecha/mech_defense_mode.proc/Activate, FALSE), 100) //10 seconds of speeeeed, then toggle off + addtimer(CALLBACK(mecha.overload_action, TYPE_PROC_REF(/datum/action/innate/mecha/mech_defense_mode, Activate), FALSE), 100) //10 seconds of speeeeed, then toggle off retreat_distance = 50 addtimer(VARSET_CALLBACK(src, retreat_distance, 0), 10 SECONDS) 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 92e76eaa6d6d..5bdc5c882214 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 @@ -182,7 +182,7 @@ Difficulty: Medium wander = TRUE /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/proc/dash_attack() - INVOKE_ASYNC(src, .proc/dash, target) + INVOKE_ASYNC(src, PROC_REF(dash), target) shoot_ka() /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/proc/shoot_ka() @@ -264,7 +264,7 @@ Difficulty: Medium /obj/effect/temp_visual/dir_setting/miner_death/Initialize(mapload, set_dir) . = ..() - INVOKE_ASYNC(src, .proc/fade_out) + INVOKE_ASYNC(src, PROC_REF(fade_out)) /obj/effect/temp_visual/dir_setting/miner_death/proc/fade_out() var/matrix/M = new @@ -285,7 +285,7 @@ Difficulty: Medium /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/hunter/AttackingTarget() . = ..() if(. && prob(12)) - INVOKE_ASYNC(src, .proc/dash) + INVOKE_ASYNC(src, PROC_REF(dash)) /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/doom name = "hostile-environment miner" diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm index fd810a352380..d62d695e1be7 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm @@ -155,7 +155,7 @@ Difficulty: Hard /mob/living/simple_animal/hostile/megafauna/bubblegum/proc/surround_with_hallucinations() for(var/i = 1 to 5) - INVOKE_ASYNC(src, .proc/hallucination_charge_around, 2, 8, 2, 0, 4) + INVOKE_ASYNC(src, PROC_REF(hallucination_charge_around), 2, 8, 2, 0, 4) if(ismob(target)) charge(delay = 6) else @@ -200,7 +200,7 @@ Difficulty: Hard /mob/living/simple_animal/hostile/megafauna/bubblegum/proc/try_bloodattack() var/list/targets = get_mobs_on_blood() if(targets.len) - INVOKE_ASYNC(src, .proc/bloodattack, targets, prob(50)) + INVOKE_ASYNC(src, PROC_REF(bloodattack), targets, prob(50)) return TRUE return FALSE @@ -266,7 +266,7 @@ Difficulty: Hard var/turf/targetturf = get_step(src, dir) L.forceMove(targetturf) playsound(targetturf, 'sound/magic/exit_blood.ogg', 100, TRUE, -1) - addtimer(CALLBACK(src, .proc/devour, L), 2) + addtimer(CALLBACK(src, PROC_REF(devour), L), 2) SLEEP_CHECK_DEATH(1) /mob/living/simple_animal/hostile/megafauna/bubblegum/proc/blood_warp() @@ -331,7 +331,7 @@ Difficulty: Hard update_approach() change_move_delay(3.75) add_atom_colour(COLOR_BUBBLEGUM_RED, TEMPORARY_COLOUR_PRIORITY) - var/datum/callback/cb = CALLBACK(src, .proc/blood_enrage_end) + var/datum/callback/cb = CALLBACK(src, PROC_REF(blood_enrage_end)) addtimer(cb, enrage_time) /mob/living/simple_animal/hostile/megafauna/bubblegum/proc/blood_enrage_end() @@ -378,7 +378,7 @@ Difficulty: Hard continue var/mob/living/simple_animal/hostile/megafauna/bubblegum/hallucination/B = new /mob/living/simple_animal/hostile/megafauna/bubblegum/hallucination(src.loc) B.forceMove(place) - INVOKE_ASYNC(B, .proc/charge, chargeat, delay, chargepast) + INVOKE_ASYNC(B, PROC_REF(charge), chargeat, delay, chargepast) if(useoriginal) charge(chargeat, delay, chargepast) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/codename_claw.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/codename_claw.dm index 3a2036845298..cca8a649353f 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/codename_claw.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/codename_claw.dm @@ -70,7 +70,7 @@ ///LOOT /obj/effect/spawner/clawloot/Initialize() . = ..() - addtimer(CALLBACK(src, .proc/spawn_loot), 5 SECONDS) //this is because it dies violently exploding, so we dont want to destroy the goodies, you know? + addtimer(CALLBACK(src, PROC_REF(spawn_loot)), 5 SECONDS) //this is because it dies violently exploding, so we dont want to destroy the goodies, you know? /obj/effect/spawner/clawloot/proc/spawn_loot() new /obj/item/gun/energy/pulse/pistol(get_turf(src)) @@ -127,7 +127,7 @@ /mob/living/simple_animal/hostile/megafauna/claw/phase2/Initialize() . = ..() flick("claw-phase2_transform",src) //plays the transforming animation - addtimer(CALLBACK(src, .proc/unlock_phase2), 4.4 SECONDS) + addtimer(CALLBACK(src, PROC_REF(unlock_phase2)), 4.4 SECONDS) /mob/living/simple_animal/hostile/megafauna/claw/Move() if(shouldnt_move) @@ -200,7 +200,7 @@ for(var/i in 1 to distance) new /obj/effect/temp_visual/cult/sparks(next_turf) next_turf = get_step(next_turf, dir_to_target) - addtimer(CALLBACK(src, .proc/swift_dash2, dir_to_target, 0, distance), wait_time) + addtimer(CALLBACK(src, PROC_REF(swift_dash2), dir_to_target, 0, distance), wait_time) playsound(src, 'sound/creatures/claw_prepare.ogg', 100, 1) /mob/living/simple_animal/hostile/megafauna/claw/proc/swift_dash2(move_dir, times_ran, distance_run) @@ -214,7 +214,7 @@ for(var/mob/living/hit_mob in next_turf.contents - src) hit_mob.Knockdown(15) hit_mob.attack_animal(src) - addtimer(CALLBACK(src, .proc/swift_dash2, move_dir, (times_ran + 1), distance_run), 0.7) + addtimer(CALLBACK(src, PROC_REF(swift_dash2), move_dir, (times_ran + 1), distance_run), 0.7) /////DASH ATTACK END /////DISSONANT SHREK @@ -222,7 +222,7 @@ shake_animation(0.5) visible_message("[src] stops and shudders for a moment... ") shouldnt_move = TRUE - addtimer(CALLBACK(src, .proc/emp_pulse2), 1 SECONDS) + addtimer(CALLBACK(src, PROC_REF(emp_pulse2)), 1 SECONDS) /mob/living/simple_animal/hostile/megafauna/claw/proc/emp_pulse2() shake_animation(2) @@ -247,7 +247,7 @@ flick("claw-phase2_sting_attack_transform", src) projectiletype = /obj/projectile/claw_projectille projectilesound = 'sound/effects/splat.ogg' - addtimer(CALLBACK(src, .proc/sting_attack2, target), 2 SECONDS) + addtimer(CALLBACK(src, PROC_REF(sting_attack2), target), 2 SECONDS) /mob/living/simple_animal/hostile/megafauna/claw/proc/sting_attack2(target) visible_message("[src] shoots all the spikes!") @@ -274,7 +274,7 @@ shake_animation(20) visible_message("[src] shudders violently and starts to split a flesh spider from it's body!") shouldnt_move = TRUE - addtimer(CALLBACK(src, .proc/summon_creatures2), 2 SECONDS) + addtimer(CALLBACK(src, PROC_REF(summon_creatures2)), 2 SECONDS) /mob/living/simple_animal/hostile/megafauna/claw/proc/summon_creatures2() shake_animation(5) @@ -291,13 +291,13 @@ /mob/living/simple_animal/hostile/megafauna/claw/proc/on_death() flick("claw-phase1_transform",src) //woho you won... or did you? - addtimer(CALLBACK(src, .proc/create_phase2), 30 SECONDS) + addtimer(CALLBACK(src, PROC_REF(create_phase2)), 30 SECONDS) /mob/living/simple_animal/hostile/megafauna/claw/phase2/on_death() icon_state = "claw-phase2_dying" flick("claw-phase2_to_dying_anim",src) playsound(src, 'sound/voice/vox/vox_scream_1.ogg', 300, 1, 8, 8) - addtimer(CALLBACK(src, .proc/phase2_dramatic, src), 3 SECONDS) + addtimer(CALLBACK(src, PROC_REF(phase2_dramatic), src), 3 SECONDS) return /mob/living/simple_animal/hostile/megafauna/claw/proc/create_phase2() //this only exists so the timer can callback to this proc diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index 4ded55413f8e..d6b7c68bd958 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -156,8 +156,8 @@ Difficulty: Very Hard visible_message("\"Die.\"") SLEEP_CHECK_DEATH(10) - INVOKE_ASYNC(src, .proc/spiral_shoot, FALSE) - INVOKE_ASYNC(src, .proc/spiral_shoot, TRUE) + INVOKE_ASYNC(src, PROC_REF(spiral_shoot), FALSE) + INVOKE_ASYNC(src, PROC_REF(spiral_shoot), TRUE) /mob/living/simple_animal/hostile/megafauna/colossus/proc/spiral_shoot(negative = pick(TRUE, FALSE), counter_start = 8) var/turf/start_turf = get_step(src, pick(GLOB.alldirs)) @@ -240,7 +240,7 @@ Difficulty: Very Hard /obj/effect/temp_visual/at_shield/Initialize(mapload, new_target) . = ..() target = new_target - INVOKE_ASYNC(src, /atom/movable/proc/orbit, target, 0, FALSE, 0, 0, FALSE, TRUE) + INVOKE_ASYNC(src, TYPE_PROC_REF(/atom/movable, orbit), target, 0, FALSE, 0, 0, FALSE, TRUE) /mob/living/simple_animal/hostile/megafauna/colossus/bullet_act(obj/projectile/P) if(!stat) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/cult_templar.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/cult_templar.dm index 4e0b461516bf..96fbc8b5c4ec 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/cult_templar.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/cult_templar.dm @@ -252,7 +252,7 @@ for(var/i in 1 to dash_num) new /obj/effect/temp_visual/dragon_swoop/legionnaire(T) T = get_step(T, dir_to_target) - addtimer(CALLBACK(src, .proc/blood_dash_2, dir_to_target, 0), (5 * dash_mod)) + addtimer(CALLBACK(src, PROC_REF(blood_dash_2), dir_to_target, 0), (5 * dash_mod)) playsound(src,'sound/effects/meteorimpact.ogg', 200, 1) /mob/living/simple_animal/hostile/megafauna/cult_templar/proc/blood_dash_2(move_dir, times_ran) @@ -283,7 +283,7 @@ shake_camera(L, 4, 3) L.adjustBruteLoss(30) playsound(L,"sound/misc/desceration-[pick(1,2,3)].ogg", 200, 1) - addtimer(CALLBACK(src, .proc/blood_dash_2, move_dir, (times_ran + 1)), (1.5 * dash_mod)) + addtimer(CALLBACK(src, PROC_REF(blood_dash_2), move_dir, (times_ran + 1)), (1.5 * dash_mod)) /mob/living/simple_animal/hostile/megafauna/cult_templar/proc/teleport_b(target) if(charging || teleport_cooldown > world.time) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm index b2265782698d..14849bb58014 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm @@ -103,7 +103,7 @@ Difficulty: Extremely Hard if(easy_attack) snowball_machine_gun() else - INVOKE_ASYNC(src, .proc/ice_shotgun, 5, list(list(-180, -140, -100, -60, -20, 20, 60, 100, 140), list(-160, -120, -80, -40, 0, 40, 80, 120, 160))) + INVOKE_ASYNC(src, PROC_REF(ice_shotgun), 5, list(list(-180, -140, -100, -60, -20, 20, 60, 100, 140), list(-160, -120, -80, -40, 0, 40, 80, 120, 160))) snowball_machine_gun(5 * 8, 5) if(3) if(easy_attack) @@ -179,7 +179,7 @@ Difficulty: Extremely Hard P.original = target P.set_homing_target(target) P.fire(rand(0, 360)) - addtimer(CALLBACK(P, /obj/projectile/frost_orb/proc/orb_explosion, projectile_speed_multiplier), 20) // make the orbs home in after a second + addtimer(CALLBACK(P, TYPE_PROC_REF(/obj/projectile/frost_orb, orb_explosion), projectile_speed_multiplier), 20) // make the orbs home in after a second SLEEP_CHECK_DEATH(added_delay) SetRecoveryTime(40, 60) @@ -306,7 +306,7 @@ Difficulty: Extremely Hard return var/reset_turf = T.type T.ChangeTurf(change_turf, flags = CHANGETURF_INHERIT_AIR) - addtimer(CALLBACK(T, /turf.proc/ChangeTurf, reset_turf, null, CHANGETURF_INHERIT_AIR), duration, TIMER_OVERRIDE|TIMER_UNIQUE) + addtimer(CALLBACK(T, TYPE_PROC_REF(/turf, ChangeTurf), reset_turf, null, CHANGETURF_INHERIT_AIR), duration, TIMER_OVERRIDE|TIMER_UNIQUE) /obj/item/pickaxe/drill/jackhammer/demonic name = "demonic jackhammer" @@ -349,7 +349,7 @@ Difficulty: Extremely Hard icon_state = "frozen" /datum/status_effect/ice_block_talisman/on_apply() - RegisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE, .proc/owner_moved) + RegisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(owner_moved)) if(!owner.stat) to_chat(owner, "You become frozen in a cube!") cube = icon('icons/effects/freeze.dmi', "ice_cube") diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm index 6e12ba91e903..d1a8c3c825aa 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm @@ -160,7 +160,7 @@ Difficulty: Medium /mob/living/simple_animal/hostile/megafauna/dragon/proc/lava_swoop(amount = 30) if(health < maxHealth * 0.5) return swoop_attack(lava_arena = TRUE, swoop_cooldown = 60) - INVOKE_ASYNC(src, .proc/lava_pools, amount) + INVOKE_ASYNC(src, PROC_REF(lava_pools), amount) swoop_attack(FALSE, target, 1000) // longer cooldown until it gets reset below SLEEP_CHECK_DEATH(0) fire_cone() @@ -179,7 +179,7 @@ Difficulty: Medium var/increment = 360 / spiral_count for(var/j = 1 to spiral_count) var/list/turfs = line_target(j * increment + i * increment / 2, range, src) - INVOKE_ASYNC(src, .proc/fire_line, turfs) + INVOKE_ASYNC(src, PROC_REF(fire_line), turfs) SLEEP_CHECK_DEATH(25) SetRecoveryTime(30) @@ -246,15 +246,15 @@ Difficulty: Medium playsound(get_turf(src),'sound/magic/fireball.ogg', 200, TRUE) SLEEP_CHECK_DEATH(0) if(prob(50) && meteors) - INVOKE_ASYNC(src, .proc/fire_rain) + INVOKE_ASYNC(src, PROC_REF(fire_rain)) var/range = 15 var/list/turfs = list() turfs = line_target(-40, range, at) - INVOKE_ASYNC(src, .proc/fire_line, turfs) + INVOKE_ASYNC(src, PROC_REF(fire_line), turfs) turfs = line_target(0, range, at) - INVOKE_ASYNC(src, .proc/fire_line, turfs) + INVOKE_ASYNC(src, PROC_REF(fire_line), turfs) turfs = line_target(40, range, at) - INVOKE_ASYNC(src, .proc/fire_line, turfs) + INVOKE_ASYNC(src, PROC_REF(fire_line), turfs) /mob/living/simple_animal/hostile/megafauna/dragon/proc/line_target(offset, range, atom/at = target) if(!at) @@ -452,7 +452,7 @@ Difficulty: Medium /obj/effect/temp_visual/lava_warning/Initialize(mapload, reset_time = 10) . = ..() - INVOKE_ASYNC(src, .proc/fall, reset_time) + INVOKE_ASYNC(src, PROC_REF(fall), reset_time) src.alpha = 63.75 animate(src, alpha = 255, time = duration) @@ -477,7 +477,7 @@ Difficulty: Medium var/lava_turf = /turf/open/lava/smooth var/reset_turf = T.type T.ChangeTurf(lava_turf, flags = CHANGETURF_INHERIT_AIR) - addtimer(CALLBACK(T, /turf.proc/ChangeTurf, reset_turf, null, CHANGETURF_INHERIT_AIR), reset_time, TIMER_OVERRIDE|TIMER_UNIQUE) + addtimer(CALLBACK(T, TYPE_PROC_REF(/turf, ChangeTurf), reset_turf, null, CHANGETURF_INHERIT_AIR), reset_time, TIMER_OVERRIDE|TIMER_UNIQUE) /obj/effect/temp_visual/drakewall desc = "An ash drakes true flame." @@ -519,7 +519,7 @@ Difficulty: Medium /obj/effect/temp_visual/dragon_flight/Initialize(mapload, negative) . = ..() - INVOKE_ASYNC(src, .proc/flight, negative) + INVOKE_ASYNC(src, PROC_REF(flight), negative) /obj/effect/temp_visual/dragon_flight/proc/flight(negative) if(negative) @@ -571,7 +571,7 @@ Difficulty: Medium /obj/effect/temp_visual/target/Initialize(mapload, list/flame_hit) . = ..() - INVOKE_ASYNC(src, .proc/fall, flame_hit) + INVOKE_ASYNC(src, PROC_REF(fall), flame_hit) /obj/effect/temp_visual/target/proc/fall(list/flame_hit) var/turf/T = get_turf(src) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm index 1da36f8787d5..4df97bac4a6f 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -194,13 +194,13 @@ Difficulty: Hard else if(prob(70 - anger_modifier)) //a cross blast of some type if(prob(anger_modifier * (2 / target_slowness)) && health < maxHealth * 0.5) //we're super angry do it at all dirs - INVOKE_ASYNC(src, .proc/blasts, target, GLOB.alldirs) + INVOKE_ASYNC(src, PROC_REF(blasts), target, GLOB.alldirs) else if(prob(60)) - INVOKE_ASYNC(src, .proc/blasts, target, GLOB.cardinals) + INVOKE_ASYNC(src, PROC_REF(blasts), target, GLOB.cardinals) else - INVOKE_ASYNC(src, .proc/blasts, target, GLOB.diagonals) + INVOKE_ASYNC(src, PROC_REF(blasts), target, GLOB.diagonals) else //just release a burst of power - INVOKE_ASYNC(src, .proc/burst, get_turf(src)) + INVOKE_ASYNC(src, PROC_REF(burst), get_turf(src)) /mob/living/simple_animal/hostile/megafauna/hierophant/proc/blink_spam(blink_counter, target_slowness, cross_counter) ranged_cooldown = world.time + max(5, major_attack_cooldown - anger_modifier * 0.75) @@ -218,7 +218,7 @@ Difficulty: Hard blinking = TRUE SLEEP_CHECK_DEATH(4 + target_slowness) animate(src, color = oldcolor, time = 8) - addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 8) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 8) SLEEP_CHECK_DEATH(8) blinking = FALSE else @@ -234,12 +234,12 @@ Difficulty: Hard while(!QDELETED(target) && cross_counter) cross_counter-- if(prob(60)) - INVOKE_ASYNC(src, .proc/blasts, target, GLOB.cardinals) + INVOKE_ASYNC(src, PROC_REF(blasts), target, GLOB.cardinals) else - INVOKE_ASYNC(src, .proc/blasts, target, GLOB.diagonals) + INVOKE_ASYNC(src, PROC_REF(blasts), target, GLOB.diagonals) SLEEP_CHECK_DEATH(6 + target_slowness) animate(src, color = oldcolor, time = 8) - addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 8) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 8) SLEEP_CHECK_DEATH(8) blinking = FALSE @@ -267,7 +267,7 @@ Difficulty: Hard SLEEP_CHECK_DEATH(8 + target_slowness) chaser_cooldown = world.time + initial(chaser_cooldown) animate(src, color = oldcolor, time = 8) - addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 8) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 8) SLEEP_CHECK_DEATH(8) blinking = FALSE @@ -285,7 +285,7 @@ Difficulty: Hard SLEEP_CHECK_DEATH(2) new /obj/effect/temp_visual/hierophant/blast(T, src, FALSE) for(var/d in directions) - INVOKE_ASYNC(src, .proc/blast_wall, T, d) + INVOKE_ASYNC(src, PROC_REF(blast_wall), T, d) /mob/living/simple_animal/hostile/megafauna/hierophant/proc/blast_wall(turf/T, set_dir) //make a wall of blasts beam_range tiles long var/range = beam_range @@ -304,13 +304,13 @@ Difficulty: Hard return arena_cooldown = world.time + initial(arena_cooldown) for(var/d in GLOB.cardinals) - INVOKE_ASYNC(src, .proc/arena_squares, T, d) + INVOKE_ASYNC(src, PROC_REF(arena_squares), T, d) for(var/t in RANGE_TURFS(11, T)) if(t && get_dist(t, T) == 11) new /obj/effect/temp_visual/hierophant/wall(t, src) new /obj/effect/temp_visual/hierophant/blast(t, src, FALSE) if(get_dist(src, T) >= 11) //hey you're out of range I need to get closer to you! - INVOKE_ASYNC(src, .proc/blink, T) + INVOKE_ASYNC(src, PROC_REF(blink), T) /mob/living/simple_animal/hostile/megafauna/hierophant/proc/arena_squares(turf/T, set_dir) //make a fancy effect extending from the arena target var/turf/previousturf = T @@ -453,10 +453,10 @@ Difficulty: Hard if(ranged_cooldown <= world.time) calculate_rage() ranged_cooldown = world.time + max(5, ranged_cooldown_time - anger_modifier * 0.75) - INVOKE_ASYNC(src, .proc/burst, get_turf(src)) + INVOKE_ASYNC(src, PROC_REF(burst), get_turf(src)) else burst_range = 3 - INVOKE_ASYNC(src, .proc/burst, get_turf(src), 0.25) //melee attacks on living mobs cause it to release a fast burst if on cooldown + INVOKE_ASYNC(src, PROC_REF(burst), get_turf(src), 0.25) //melee attacks on living mobs cause it to release a fast burst if on cooldown else devour(L) else @@ -570,7 +570,7 @@ Difficulty: Hard friendly_fire_check = is_friendly_fire if(new_speed) speed = new_speed - addtimer(CALLBACK(src, .proc/seek_target), 1) + addtimer(CALLBACK(src, PROC_REF(seek_target)), 1) /obj/effect/temp_visual/hierophant/chaser/proc/get_target_dir() . = get_cardinal_dir(src, targetturf) @@ -653,9 +653,9 @@ Difficulty: Hard if(ismineralturf(loc)) //drill mineral turfs var/turf/closed/mineral/M = loc M.gets_drilled(caster) - INVOKE_ASYNC(src, .proc/blast) + INVOKE_ASYNC(src, PROC_REF(blast)) var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) @@ -730,7 +730,7 @@ Difficulty: Hard if(H.beacon == src) to_chat(user, "You start removing your hierophant beacon...") H.timer = world.time + 51 - INVOKE_ASYNC(H, /obj/item/hierophant_club.proc/prepare_icon_update) + INVOKE_ASYNC(H, TYPE_PROC_REF(/obj/item/hierophant_club, prepare_icon_update)) if(do_after(user, 50, target = src)) playsound(src,'sound/magic/blind.ogg', 200, TRUE, -4) new /obj/effect/temp_visual/hierophant/telegraph/teleport(get_turf(src), user) @@ -740,7 +740,7 @@ Difficulty: Hard qdel(src) else H.timer = world.time - INVOKE_ASYNC(H, /obj/item/hierophant_club.proc/prepare_icon_update) + INVOKE_ASYNC(H, TYPE_PROC_REF(/obj/item/hierophant_club, prepare_icon_update)) else to_chat(user, "You touch the beacon with the club, but nothing happens.") else diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm index 5159efd266f1..b8f730d87920 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm @@ -124,15 +124,15 @@ minimum_distance = 0 set_varspeed(0) charging = TRUE - addtimer(CALLBACK(src, .proc/reset_charge), 60) + addtimer(CALLBACK(src, PROC_REF(reset_charge)), 60) var/mob/living/L = target if(!istype(L) || L.stat != DEAD) //I know, weird syntax, but it just works. - addtimer(CALLBACK(src, .proc/throw_thyself), 20) + addtimer(CALLBACK(src, PROC_REF(throw_thyself)), 20) ///This is the proc that actually does the throwing. Charge only adds a timer for this. /mob/living/simple_animal/hostile/megafauna/legion/proc/throw_thyself() playsound(src, 'sound/weapons/sonic_jackhammer.ogg', 50, TRUE) - throw_at(target, 7, 1.1, src, FALSE, FALSE, CALLBACK(GLOBAL_PROC, .proc/playsound, src, 'sound/effects/meteorimpact.ogg', 50 * size, TRUE, 2), INFINITY) + throw_at(target, 7, 1.1, src, FALSE, FALSE, CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), src, 'sound/effects/meteorimpact.ogg', 50 * size, TRUE, 2), INFINITY) ///Deals some extra damage on throw impact. /mob/living/simple_animal/hostile/megafauna/legion/throw_impact(mob/living/hit_atom, datum/thrownthing/throwingdatum) @@ -341,7 +341,7 @@ /obj/structure/legionturret/Initialize() . = ..() - addtimer(CALLBACK(src, .proc/set_up_shot), initial_firing_time) + addtimer(CALLBACK(src, PROC_REF(set_up_shot)), initial_firing_time) ///Handles an extremely basic AI /obj/structure/legionturret/proc/set_up_shot() @@ -365,7 +365,7 @@ var/datum/point/vector/V = new(T1.x, T1.y, T1.z, 0, 0, angle) generate_tracer_between_points(V, V.return_vector_after_increments(6), /obj/effect/projectile/tracer/legion/tracer, 0, shot_delay, 0, 0, 0, null) playsound(src, 'sound/machines/airlockopen.ogg', 100, TRUE) - addtimer(CALLBACK(src, .proc/fire_beam, angle), shot_delay) + addtimer(CALLBACK(src, PROC_REF(fire_beam), angle), shot_delay) ///Called shot_delay after the turret shot the tracer. Shoots a projectile into the same direction. /obj/structure/legionturret/proc/fire_beam(angle) 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 38834a4e5cef..a2cceb5a3aaa 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm @@ -147,7 +147,7 @@ GLOBAL_LIST_INIT(AISwarmerCapsByType, list(/mob/living/simple_animal/hostile/swa /mob/living/simple_animal/hostile/swarmer/ai/proc/StartAction(deci = 0) stop_automated_movement = TRUE AIStatus = AI_OFF - addtimer(CALLBACK(src, .proc/EndAction), deci) + addtimer(CALLBACK(src, PROC_REF(EndAction)), deci) /mob/living/simple_animal/hostile/swarmer/ai/proc/EndAction() diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm index 42836c58cf6b..59a58bd48d16 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm @@ -133,7 +133,7 @@ Difficulty: Hard . = ..() stored_move_dirs &= ~direct if(!stored_move_dirs) - INVOKE_ASYNC(src, .proc/ground_slam, stomp_range, 1) + INVOKE_ASYNC(src, PROC_REF(ground_slam), stomp_range, 1) /// Slams the ground around the wendigo throwing back enemies caught nearby /mob/living/simple_animal/hostile/megafauna/wendigo/proc/ground_slam(range, delay) 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 4376e9e0ae21..eb8302536e50 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 @@ -93,7 +93,7 @@ set_varspeed(0) warmed_up = TRUE projectiletype = /obj/projectile/temp/basilisk/heated - addtimer(CALLBACK(src, .proc/cool_down), 3000) + addtimer(CALLBACK(src, PROC_REF(cool_down)), 3000) /mob/living/simple_animal/hostile/asteroid/basilisk/proc/cool_down() visible_message("[src] appears to be cooling down...") diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/brimdemon.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/brimdemon.dm index 45d4114da6e1..1d9f6e174660 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/brimdemon.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/brimdemon.dm @@ -98,7 +98,7 @@ visible_message(span_danger("[src] starts charging!")) balloon_alert(src, "charging...") to_chat(src, "You begin to charge up...") - addtimer(CALLBACK(src, .proc/fire_laser), 1 SECONDS) + addtimer(CALLBACK(src, PROC_REF(fire_laser)), 1 SECONDS) COOLDOWN_START(src, ranged_cooldown, ranged_cooldown_time) /mob/living/simple_animal/hostile/asteroid/brimdemon/Moved(atom/old_loc, movement_dir, forced, list/old_locs, momentum_change = TRUE) @@ -143,7 +143,7 @@ last_brimbeam.icon_state = "brimbeam_end" var/atom/first_brimbeam = beamparts[1] first_brimbeam.icon_state = "brimbeam_start" - addtimer(CALLBACK(src, .proc/end_laser), 2 SECONDS) + addtimer(CALLBACK(src, PROC_REF(end_laser)), 2 SECONDS) /// Deletes all the brimbeam parts and sets variables back to their initial ones. /mob/living/simple_animal/hostile/asteroid/brimdemon/proc/end_laser() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm index 33bd3e6ba0f0..fb06bfdf11ca 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm @@ -117,15 +117,15 @@ While using this makes the system rely on OnFire, it still gives options for tim if(boosted) mychild.playsound_local(get_turf(mychild), 'sound/effects/magic.ogg', 40, 0) to_chat(mychild, "Someone has activated your tumor. You will be returned to fight shortly, get ready!") - addtimer(CALLBACK(src, .proc/return_elite), 30) - INVOKE_ASYNC(src, .proc/arena_checks) + addtimer(CALLBACK(src, PROC_REF(return_elite)), 30) + INVOKE_ASYNC(src, PROC_REF(arena_checks)) if(TUMOR_INACTIVE) activity = TUMOR_ACTIVE var/mob/dead/observer/elitemind = null visible_message("[src] begins to convulse. Your instincts tell you to step back.") activator = user if(!boosted) - addtimer(CALLBACK(src, .proc/spawn_elite), 30) + addtimer(CALLBACK(src, PROC_REF(spawn_elite)), 30) return visible_message("Something within [src] stirs...") var/list/candidates = pollCandidatesForMob("Do you want to play as a lavaland elite?", ROLE_SENTIENCE, null, ROLE_SENTIENCE, 50, src, POLL_IGNORE_SENTIENCE_POTION) @@ -134,7 +134,7 @@ While using this makes the system rely on OnFire, it still gives options for tim elitemind = pick(candidates) elitemind.playsound_local(get_turf(elitemind), 'sound/effects/magic.ogg', 40, 0) to_chat(elitemind, "You have been chosen to play as a Lavaland Elite.\nIn a few seconds, you will be summoned on Lavaland as a monster to fight your activator, in a fight to the death.\nYour attacks can be switched using the buttons on the top left of the HUD, and used by clicking on targets or tiles similar to a gun.\nWhile the opponent might have an upper hand with powerful mining equipment and tools, you have great power normally limited by AI mobs.\nIf you want to win, you'll have to use your powers in creative ways to ensure the kill. It's suggested you try using them all as soon as possible.\nShould you win, you'll receive extra information regarding what to do after. Good luck!") - addtimer(CALLBACK(src, .proc/spawn_elite, elitemind), 100) + addtimer(CALLBACK(src, PROC_REF(spawn_elite), elitemind), 100) else visible_message("The stirring stops, and nothing emerges. Perhaps try again later.") activity = TUMOR_INACTIVE @@ -150,7 +150,7 @@ While using this makes the system rely on OnFire, it still gives options for tim mychild.sentience_act() notify_ghosts("\A [mychild] has been awakened in \the [get_area(src)]!", source = mychild, action = NOTIFY_ORBIT, flashwindow = FALSE, header = "Lavaland Elite awakened") icon_state = "tumor_popped" - INVOKE_ASYNC(src, .proc/arena_checks) + INVOKE_ASYNC(src, PROC_REF(arena_checks)) /obj/structure/elite_tumor/proc/return_elite() mychild.forceMove(loc) @@ -198,11 +198,11 @@ While using this makes the system rely on OnFire, it still gives options for tim /obj/structure/elite_tumor/proc/arena_checks() if(activity != TUMOR_ACTIVE || QDELETED(src)) return - INVOKE_ASYNC(src, .proc/fighters_check) //Checks to see if our fighters died. - INVOKE_ASYNC(src, .proc/arena_trap) //Gets another arena trap queued up for when this one runs out. - INVOKE_ASYNC(src, .proc/border_check) //Checks to see if our fighters got out of the arena somehow. + INVOKE_ASYNC(src, PROC_REF(fighters_check)) //Checks to see if our fighters died. + INVOKE_ASYNC(src, PROC_REF(arena_trap)) //Gets another arena trap queued up for when this one runs out. + INVOKE_ASYNC(src, PROC_REF(border_check)) //Checks to see if our fighters got out of the arena somehow. if(!QDELETED(src)) - addtimer(CALLBACK(src, .proc/arena_checks), 50) + addtimer(CALLBACK(src, PROC_REF(arena_checks)), 50) /obj/structure/elite_tumor/proc/fighters_check() if(activator != null && activator.stat == DEAD || activity == TUMOR_ACTIVE && QDELETED(activator)) 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 91fdf286aae7..7e2b1c3d990c 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 @@ -145,7 +145,7 @@ color = "#FF0000" set_varspeed(0) move_to_delay = 3 - addtimer(CALLBACK(src, .proc/reset_rage), 65) + addtimer(CALLBACK(src, PROC_REF(reset_rage)), 65) /mob/living/simple_animal/hostile/asteroid/elite/broodmother/proc/reset_rage() color = "#FFFFFF" @@ -230,11 +230,11 @@ retract() else deltimer(timerid) - timerid = addtimer(CALLBACK(src, .proc/retract), 10, TIMER_STOPPABLE) + timerid = addtimer(CALLBACK(src, PROC_REF(retract)), 10, TIMER_STOPPABLE) /obj/effect/temp_visual/goliath_tentacle/broodmother/patch/Initialize(mapload, new_spawner) . = ..() - INVOKE_ASYNC(src, .proc/createpatch) + INVOKE_ASYNC(src, PROC_REF(createpatch)) /obj/effect/temp_visual/goliath_tentacle/broodmother/patch/proc/createpatch() var/tentacle_locs = spiral_range_turfs(1, get_turf(src)) 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 0ead18b36ad9..ba8ae69093a4 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 @@ -56,7 +56,7 @@ /mob/living/simple_animal/hostile/asteroid/elite/herald/death() . = ..() if(!is_mirror) - addtimer(CALLBACK(src, .proc/become_ghost), 8) + addtimer(CALLBACK(src, PROC_REF(become_ghost)), 8) if(my_mirror != null) qdel(my_mirror) @@ -145,13 +145,13 @@ var/target_turf = get_turf(target) var/angle_to_target = Get_Angle(src, target_turf) shoot_projectile(target_turf, angle_to_target, FALSE) - addtimer(CALLBACK(src, .proc/shoot_projectile, target_turf, angle_to_target, FALSE), 2) - addtimer(CALLBACK(src, .proc/shoot_projectile, target_turf, angle_to_target, FALSE), 4) + addtimer(CALLBACK(src, PROC_REF(shoot_projectile), target_turf, angle_to_target, FALSE), 2) + addtimer(CALLBACK(src, PROC_REF(shoot_projectile), target_turf, angle_to_target, FALSE), 4) if(health < maxHealth * 0.5) playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 20, TRUE) - addtimer(CALLBACK(src, .proc/shoot_projectile, target_turf, angle_to_target, FALSE), 10) - addtimer(CALLBACK(src, .proc/shoot_projectile, target_turf, angle_to_target, FALSE), 12) - addtimer(CALLBACK(src, .proc/shoot_projectile, target_turf, angle_to_target, FALSE), 14) + addtimer(CALLBACK(src, PROC_REF(shoot_projectile), target_turf, angle_to_target, FALSE), 10) + addtimer(CALLBACK(src, PROC_REF(shoot_projectile), target_turf, angle_to_target, FALSE), 12) + addtimer(CALLBACK(src, PROC_REF(shoot_projectile), target_turf, angle_to_target, FALSE), 14) /mob/living/simple_animal/hostile/asteroid/elite/herald/proc/herald_circleshot() var/static/list/directional_shot_angles = list(0, 45, 90, 135, 180, 225, 270, 315) @@ -168,11 +168,11 @@ if(!is_mirror) icon_state = "herald_enraged" playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 20, TRUE) - addtimer(CALLBACK(src, .proc/herald_circleshot), 5) + addtimer(CALLBACK(src, PROC_REF(herald_circleshot)), 5) if(health < maxHealth * 0.5) playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 20, TRUE) - addtimer(CALLBACK(src, .proc/herald_circleshot), 15) - addtimer(CALLBACK(src, .proc/unenrage), 20) + addtimer(CALLBACK(src, PROC_REF(herald_circleshot)), 15) + addtimer(CALLBACK(src, PROC_REF(unenrage)), 20) /mob/living/simple_animal/hostile/asteroid/elite/herald/proc/herald_teleshot(target) ranged_cooldown = world.time + 30 @@ -278,4 +278,4 @@ owner.visible_message("[owner]'s [src] emits a loud noise as [owner] is struck!") var/static/list/directional_shot_angles = list(0, 45, 90, 135, 180, 225, 270, 315) playsound(get_turf(owner), 'sound/magic/clockwork/invoke_general.ogg', 20, TRUE) - addtimer(CALLBACK(src, .proc/reactionshot, owner), 10) + addtimer(CALLBACK(src, PROC_REF(reactionshot), owner), 10) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm index 8f991a400f18..f0b6dc3e8d54 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm @@ -104,7 +104,7 @@ T = get_step(T, dir_to_target) playsound(src,'sound/magic/demon_attack1.ogg', 200, 1) visible_message("[src] prepares to charge!") - addtimer(CALLBACK(src, .proc/legionnaire_charge_2, dir_to_target, 0), 5) + addtimer(CALLBACK(src, PROC_REF(legionnaire_charge_2), dir_to_target, 0), 5) /mob/living/simple_animal/hostile/asteroid/elite/legionnaire/proc/legionnaire_charge_2(move_dir, times_ran) if(times_ran >= 4) @@ -132,7 +132,7 @@ L.safe_throw_at(throwtarget, 10, 1, src) L.Paralyze(20) L.adjustBruteLoss(50) - addtimer(CALLBACK(src, .proc/legionnaire_charge_2, move_dir, (times_ran + 1)), 2) + addtimer(CALLBACK(src, PROC_REF(legionnaire_charge_2), move_dir, (times_ran + 1)), 2) /mob/living/simple_animal/hostile/asteroid/elite/legionnaire/proc/head_detach(target) ranged_cooldown = world.time + 10 @@ -160,7 +160,7 @@ /mob/living/simple_animal/hostile/asteroid/elite/legionnaire/proc/onHeadDeath() myhead = null - addtimer(CALLBACK(src, .proc/regain_head), 50) + addtimer(CALLBACK(src, PROC_REF(regain_head)), 50) /mob/living/simple_animal/hostile/asteroid/elite/legionnaire/proc/regain_head() has_head = TRUE diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm index 33165a4b6dbe..4077f8b58949 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm @@ -122,7 +122,7 @@ new /obj/effect/temp_visual/hierophant/blast/pandora(T, src) T = get_step(T, angleused) procsleft = procsleft - 1 - addtimer(CALLBACK(src, .proc/singular_shot_line, procsleft, angleused, T), 2) + addtimer(CALLBACK(src, PROC_REF(singular_shot_line), procsleft, angleused, T), 2) /mob/living/simple_animal/hostile/asteroid/elite/pandora/proc/magic_box(target) ranged_cooldown = world.time + cooldown_time @@ -138,7 +138,7 @@ new /obj/effect/temp_visual/hierophant/telegraph(T, src) new /obj/effect/temp_visual/hierophant/telegraph(source, src) playsound(source,'sound/machines/airlockopen.ogg', 200, 1) - addtimer(CALLBACK(src, .proc/pandora_teleport_2, T, source), 2) + addtimer(CALLBACK(src, PROC_REF(pandora_teleport_2), T, source), 2) /mob/living/simple_animal/hostile/asteroid/elite/pandora/proc/pandora_teleport_2(turf/T, turf/source) new /obj/effect/temp_visual/hierophant/telegraph/teleport(T, src) @@ -150,7 +150,7 @@ animate(src, alpha = 0, time = 2, easing = EASE_OUT) //fade out visible_message("[src] fades out!") density = FALSE - addtimer(CALLBACK(src, .proc/pandora_teleport_3, T), 2) + addtimer(CALLBACK(src, PROC_REF(pandora_teleport_3), T), 2) /mob/living/simple_animal/hostile/asteroid/elite/pandora/proc/pandora_teleport_3(turf/T) forceMove(T) @@ -163,7 +163,7 @@ var/turf/T = get_turf(target) new /obj/effect/temp_visual/hierophant/blast/pandora(T, src) var/max_size = 2 - addtimer(CALLBACK(src, .proc/aoe_squares_2, T, 0, max_size), 2) + addtimer(CALLBACK(src, PROC_REF(aoe_squares_2), T, 0, max_size), 2) /mob/living/simple_animal/hostile/asteroid/elite/pandora/proc/aoe_squares_2(turf/T, ring, max_size) if(ring > max_size) @@ -171,7 +171,7 @@ for(var/t in spiral_range_turfs(ring, T)) if(get_dist(t, T) == ring) new /obj/effect/temp_visual/hierophant/blast/pandora(t, src) - addtimer(CALLBACK(src, .proc/aoe_squares_2, T, (ring + 1), max_size), 2) + addtimer(CALLBACK(src, PROC_REF(aoe_squares_2), T, (ring + 1), max_size), 2) /mob/living/simple_animal/hostile/asteroid/elite/pandora/death() //open all pandora gates 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 91f728b9b4b0..e4eb7122d391 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 @@ -130,7 +130,7 @@ retreat_distance = 10 minimum_distance = 10 if(will_burrow) - addtimer(CALLBACK(src, .proc/Burrow), chase_time) + addtimer(CALLBACK(src, PROC_REF(Burrow)), chase_time) /mob/living/simple_animal/hostile/asteroid/goldgrub/AttackingTarget() if(istype(target, /obj/item/stack/ore)) 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 f17070695381..1fa691b85de7 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 @@ -306,7 +306,7 @@ var/turf/closed/mineral/M = loc M.gets_drilled() deltimer(timerid) - timerid = addtimer(CALLBACK(src, .proc/tripanim), 7, TIMER_STOPPABLE) + timerid = addtimer(CALLBACK(src, PROC_REF(tripanim)), 7, TIMER_STOPPABLE) if(!recursive) return var/list/directions = get_directions() @@ -321,7 +321,7 @@ /obj/effect/temp_visual/goliath_tentacle/proc/tripanim() deltimer(timerid) - timerid = addtimer(CALLBACK(src, .proc/trip), 3, TIMER_STOPPABLE) + timerid = addtimer(CALLBACK(src, PROC_REF(trip)), 3, TIMER_STOPPABLE) /obj/effect/temp_visual/goliath_tentacle/proc/trip() var/latched = FALSE @@ -335,7 +335,7 @@ retract() else deltimer(timerid) - timerid = addtimer(CALLBACK(src, .proc/retract), 10, TIMER_STOPPABLE) + timerid = addtimer(CALLBACK(src, PROC_REF(retract)), 10, TIMER_STOPPABLE) /obj/effect/temp_visual/goliath_tentacle/proc/on_hit(mob/living/L) L.Stun(100) @@ -392,13 +392,13 @@ shake_animation(20) visible_message("[src] convulses violently!! Get back!!") playsound(loc, 'sound/effects/magic.ogg', 100, TRUE) - addtimer(CALLBACK(src, .proc/open_fire_2), 1 SECONDS) + addtimer(CALLBACK(src, PROC_REF(open_fire_2)), 1 SECONDS) /mob/living/simple_animal/hostile/asteroid/goliath/beast/ancient/crystal/proc/open_fire_2() if(prob(20) && !(spiral_attack_inprogress)) visible_message("[src] sprays crystalline shards in a circle!") playsound(loc, 'sound/magic/charge.ogg', 100, TRUE) - INVOKE_ASYNC(src,.proc/spray_of_crystals) + INVOKE_ASYNC(src, PROC_REF(spray_of_crystals)) else visible_message("[src] expels it's matter, releasing a spray of crystalline shards!") playsound(loc, 'sound/effects/bamf.ogg', 100, TRUE) 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 99807cff8210..ee48ed624ee4 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 @@ -48,7 +48,7 @@ /mob/living/simple_animal/hostile/asteroid/gutlunch/Initialize() . = ..() if(wanted_objects.len) - AddComponent(/datum/component/udder, /obj/item/udder/gutlunch, CALLBACK(src, .proc/regenerate_icons), CALLBACK(src, .proc/regenerate_icons)) + AddComponent(/datum/component/udder, /obj/item/udder/gutlunch, CALLBACK(src, PROC_REF(regenerate_icons)), CALLBACK(src, PROC_REF(regenerate_icons))) /mob/living/simple_animal/hostile/asteroid/gutlunch/CanAttack(atom/the_target) // Gutlunch-specific version of CanAttack to handle stupid stat_exclusive = true crap so we don't have to do it for literally every single simple_animal/hostile except the two that spawn in lavaland if(isturf(the_target) || !the_target || the_target.type == /atom/movable/lighting_object) // bail out on invalids 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 aa2446ca108a..bdc4124ed929 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 @@ -94,7 +94,7 @@ /mob/living/simple_animal/hostile/asteroid/hivelordbrood/Initialize(_source) . = ..() source = source - addtimer(CALLBACK(src, .proc/death), 100) + addtimer(CALLBACK(src, PROC_REF(death)), 100) AddComponent(/datum/component/swarming) //Legion @@ -222,7 +222,7 @@ /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/staff/Initialize() . = ..() - addtimer(CALLBACK(src, .proc/death), 50) + addtimer(CALLBACK(src, PROC_REF(death)), 50) AddComponent(/datum/component/swarming) /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/Life() @@ -1036,5 +1036,11 @@ if(prob(75)) backpack_contents += list(/obj/item/ammo_box/c38_box = 1) if(prob(75)) - backpack_contents += list(pick(/obj/item/reagent_containers/food/drinks/drinkingglass/breakawayflask/vintageash, /obj/item/reagent_containers/food/drinks/drinkingglass/breakawayflask/vintageice, /obj/item/reagent_containers/food/drinks/drinkingglass/breakawayflask/vintageshock) = 1) + backpack_contents += list(pick( + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/ashwine, + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/icewine, + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/shockwine, + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/hearthwine, + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/forcewine, + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/prismwine,) = 2) . = ..() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice demon.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice demon.dm index 9f458f617c87..2315f6e61a4f 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice demon.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice demon.dm @@ -194,7 +194,7 @@ icon_state = "frozen" /datum/status_effect/ice_crystal/on_apply() - RegisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE, .proc/owner_moved) + RegisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(owner_moved)) if(!owner.stat) to_chat(owner, "You become frozen in a cube!") cube = icon('icons/effects/freeze.dmi', "ice_cube") diff --git a/code/modules/mob/living/simple_animal/hostile/mushroom.dm b/code/modules/mob/living/simple_animal/hostile/mushroom.dm index 4c7ddedbbb1d..26a587f7f854 100644 --- a/code/modules/mob/living/simple_animal/hostile/mushroom.dm +++ b/code/modules/mob/living/simple_animal/hostile/mushroom.dm @@ -88,7 +88,7 @@ /mob/living/simple_animal/hostile/mushroom/adjustHealth(amount, updating_health = TRUE, forced = FALSE) //Possibility to flee from a fight just to make it more visually interesting if(!retreat_distance && prob(33)) retreat_distance = 5 - addtimer(CALLBACK(src, .proc/stop_retreat), 30) + addtimer(CALLBACK(src, PROC_REF(stop_retreat)), 30) . = ..() /mob/living/simple_animal/hostile/mushroom/proc/stop_retreat() @@ -137,7 +137,7 @@ revive(full_heal = TRUE, admin_revive = FALSE) UpdateMushroomCap() recovery_cooldown = 1 - addtimer(CALLBACK(src, .proc/recovery_recharge), 300) + addtimer(CALLBACK(src, PROC_REF(recovery_recharge)), 300) /mob/living/simple_animal/hostile/mushroom/proc/recovery_recharge() recovery_cooldown = 0 diff --git a/code/modules/mob/living/simple_animal/hostile/regalrat.dm b/code/modules/mob/living/simple_animal/hostile/regalrat.dm index 8c1e47926935..cad59e7369b8 100644 --- a/code/modules/mob/living/simple_animal/hostile/regalrat.dm +++ b/code/modules/mob/living/simple_animal/hostile/regalrat.dm @@ -37,7 +37,7 @@ riot = new /datum/action/cooldown/riot coffer.Grant(src) riot.Grant(src) - INVOKE_ASYNC(src, .proc/get_player) + INVOKE_ASYNC(src, PROC_REF(get_player)) /mob/living/simple_animal/hostile/regalrat/Destroy() coffer.Remove(src) diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/retaliate.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/retaliate.dm index 0eb4232e65fd..7853b478033f 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/retaliate.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/retaliate.dm @@ -46,12 +46,12 @@ Retaliate() /mob/living/simple_animal/hostile/retaliate/proc/add_enemy(new_enemy) - RegisterSignal(new_enemy, COMSIG_PARENT_QDELETING, .proc/remove_enemy, override = TRUE) + RegisterSignal(new_enemy, COMSIG_PARENT_QDELETING, PROC_REF(remove_enemy), override = TRUE) enemies |= new_enemy /mob/living/simple_animal/hostile/retaliate/proc/add_enemies(new_enemies) for(var/new_enemy in new_enemies) - RegisterSignal(new_enemy, COMSIG_PARENT_QDELETING, .proc/remove_enemy, override = TRUE) + RegisterSignal(new_enemy, COMSIG_PARENT_QDELETING, PROC_REF(remove_enemy), override = TRUE) enemies |= new_enemy /mob/living/simple_animal/hostile/retaliate/proc/clear_enemies() diff --git a/code/modules/mob/living/simple_animal/hostile/space_dragon.dm b/code/modules/mob/living/simple_animal/hostile/space_dragon.dm index c43c37a6bd21..3375cd0a7269 100644 --- a/code/modules/mob/living/simple_animal/hostile/space_dragon.dm +++ b/code/modules/mob/living/simple_animal/hostile/space_dragon.dm @@ -198,7 +198,7 @@ if(D.density) return delayFire += 1.5 - addtimer(CALLBACK(src, .proc/dragon_fire_line, T), delayFire) + addtimer(CALLBACK(src, PROC_REF(dragon_fire_line), T), delayFire) /** * What occurs on each tile to actually create the fire. @@ -279,7 +279,7 @@ fully_heal() color = "#FF0000" set_varspeed(-0.5) - addtimer(CALLBACK(src, .proc/rift_empower, FALSE), 300) + addtimer(CALLBACK(src, PROC_REF(rift_empower), FALSE), 300) else color = "#FFFFFF" set_varspeed(0) @@ -312,7 +312,7 @@ /mob/living/simple_animal/hostile/space_dragon/proc/useGust(timer) if(timer != 10) pixel_y = pixel_y + 2; - addtimer(CALLBACK(src, .proc/useGust, timer + 1), 1.5) + addtimer(CALLBACK(src, PROC_REF(useGust), timer + 1), 1.5) return pixel_y = 0 icon_state = "spacedragon_gust_2" @@ -330,7 +330,7 @@ var/throwtarget = get_edge_target_turf(target, dir_to_target) L.safe_throw_at(throwtarget, 10, 1, src) L.Paralyze(50) - addtimer(CALLBACK(src, .proc/reset_status), 4 + ((tiredness * tiredness_mult) / 10)) + addtimer(CALLBACK(src, PROC_REF(reset_status)), 4 + ((tiredness * tiredness_mult) / 10)) tiredness = tiredness + (30 * tiredness_mult) /** diff --git a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm index e518955d91af..52ddcc72963a 100644 --- a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm +++ b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm @@ -32,7 +32,7 @@ for(var/turf/T in anchors) vines += Beam(T, "vine", maxdistance=5, beam_type=/obj/effect/ebeam/vine) - addtimer(CALLBACK(src, .proc/bear_fruit), growth_time) + addtimer(CALLBACK(src, PROC_REF(bear_fruit)), growth_time) /obj/structure/alien/resin/flower_bud_enemy/Destroy() QDEL_LIST(vines) @@ -131,7 +131,7 @@ return var/datum/beam/newVine = Beam(the_target, icon_state = "vine", maxdistance = vine_grab_distance, beam_type=/obj/effect/ebeam/vine, emissive = FALSE) - RegisterSignal(newVine, COMSIG_PARENT_QDELETING, .proc/remove_vine, newVine) + RegisterSignal(newVine, COMSIG_PARENT_QDELETING, PROC_REF(remove_vine), newVine) vines += newVine if(isliving(the_target)) var/mob/living/L = the_target 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 5eb2965fdc0e..b77436c09c89 100644 --- a/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm +++ b/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm @@ -100,7 +100,7 @@ F.environment_smash = ENVIRONMENT_SMASH_WALLS F.mob_size = MOB_SIZE_LARGE F.speed = 1 - addtimer(CALLBACK(F, /mob/living/simple_animal/hostile/asteroid/fugu/proc/Deflate), 100) + addtimer(CALLBACK(F, TYPE_PROC_REF(/mob/living/simple_animal/hostile/asteroid/fugu, Deflate)), 100) /mob/living/simple_animal/hostile/asteroid/fugu/proc/Deflate() if(wumbo) diff --git a/code/modules/mob/living/simple_animal/hostile/zombie.dm b/code/modules/mob/living/simple_animal/hostile/zombie.dm index 2de9fba68678..37be0db7f16c 100644 --- a/code/modules/mob/living/simple_animal/hostile/zombie.dm +++ b/code/modules/mob/living/simple_animal/hostile/zombie.dm @@ -26,7 +26,7 @@ /mob/living/simple_animal/hostile/zombie/Initialize(mapload) . = ..() - INVOKE_ASYNC(src, .proc/setup_visuals) + INVOKE_ASYNC(src, PROC_REF(setup_visuals)) /mob/living/simple_animal/hostile/zombie/proc/setup_visuals() var/datum/preferences/dummy_prefs = new diff --git a/code/modules/mob/living/simple_animal/slime/life.dm b/code/modules/mob/living/simple_animal/slime/life.dm index 5260c76e8a01..b880704c9bf9 100644 --- a/code/modules/mob/living/simple_animal/slime/life.dm +++ b/code/modules/mob/living/simple_animal/slime/life.dm @@ -375,7 +375,7 @@ else if(!HAS_TRAIT(src, TRAIT_IMMOBILIZED) && isturf(loc) && prob(33)) step(src, pick(GLOB.cardinals)) else if(!AIproc) - INVOKE_ASYNC(src, .proc/AIprocess) + INVOKE_ASYNC(src, PROC_REF(AIprocess)) /mob/living/simple_animal/slime/handle_automated_movement() return //slime random movement is currently handled in handle_targets() diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm index d8d34a804958..cb4b76983563 100644 --- a/code/modules/mob/living/simple_animal/slime/slime.dm +++ b/code/modules/mob/living/simple_animal/slime/slime.dm @@ -457,7 +457,7 @@ if(user) step_away(src,user,15) - addtimer(CALLBACK(src, .proc/slime_move, user), 0.3 SECONDS) + addtimer(CALLBACK(src, PROC_REF(slime_move), user), 0.3 SECONDS) /mob/living/simple_animal/slime/proc/slime_move(mob/user) @@ -490,7 +490,7 @@ if(old_target && !SLIME_CARES_ABOUT(old_target)) UnregisterSignal(old_target, COMSIG_PARENT_QDELETING) if(Target) - RegisterSignal(Target, COMSIG_PARENT_QDELETING, .proc/clear_memories_of, override = TRUE) + RegisterSignal(Target, COMSIG_PARENT_QDELETING, PROC_REF(clear_memories_of), override = TRUE) /mob/living/simple_animal/slime/proc/set_leader(new_leader) var/old_leader = Leader @@ -498,19 +498,19 @@ if(old_leader && !SLIME_CARES_ABOUT(old_leader)) UnregisterSignal(old_leader, COMSIG_PARENT_QDELETING) if(Leader) - RegisterSignal(Leader, COMSIG_PARENT_QDELETING, .proc/clear_memories_of, override = TRUE) + RegisterSignal(Leader, COMSIG_PARENT_QDELETING, PROC_REF(clear_memories_of), override = TRUE) /mob/living/simple_animal/slime/proc/add_friendship(new_friend, amount = 1) if(!Friends[new_friend]) Friends[new_friend] = 0 Friends[new_friend] += amount if(new_friend) - RegisterSignal(new_friend, COMSIG_PARENT_QDELETING, .proc/clear_memories_of, override = TRUE) + RegisterSignal(new_friend, COMSIG_PARENT_QDELETING, PROC_REF(clear_memories_of), override = TRUE) /mob/living/simple_animal/slime/proc/set_friendship(new_friend, amount = 1) Friends[new_friend] = amount if(new_friend) - RegisterSignal(new_friend, COMSIG_PARENT_QDELETING, .proc/clear_memories_of, override = TRUE) + RegisterSignal(new_friend, COMSIG_PARENT_QDELETING, PROC_REF(clear_memories_of), override = TRUE) /mob/living/simple_animal/slime/proc/remove_friend(friend) Friends -= friend diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 49fe6a0f059e..6e60af7ed244 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -449,32 +449,36 @@ * [this byond forum post](https://secure.byond.com/forum/?post=1326139&page=2#comment8198716) * for why this isn't atom/verb/examine() */ -/mob/verb/examinate(atom/A as mob|obj|turf in view()) //It used to be oview(12), but I can't really say why +/mob/verb/examinate(atom/examinify as mob|obj|turf in view()) //It used to be oview(12), but I can't really say why set name = "Examine" set category = "IC" - if(isturf(A) && !(sight & SEE_TURFS) && !(A in view(client ? client.view : world.view, src))) + DEFAULT_QUEUE_OR_CALL_VERB(VERB_CALLBACK(src, PROC_REF(run_examinate), examinify)) + +/mob/proc/run_examinate(atom/examinify) + + if(isturf(examinify) && !(sight & SEE_TURFS) && !(examinify in view(client ? client.view : world.view, src))) // shift-click catcher may issue examinate() calls for out-of-sight turfs return - if(is_blind() && !blind_examine_check(A)) //blind people see things differently (through touch) + if(is_blind() && !blind_examine_check(examinify)) //blind people see things differently (through touch) return - face_atom(A) + face_atom(examinify) var/list/result if(client) LAZYINITLIST(client.recent_examines) - if(isnull(client.recent_examines[A]) || client.recent_examines[A] < world.time) - result = A.examine(src) - client.recent_examines[A] = world.time + EXAMINE_MORE_TIME // set the value to when the examine cooldown ends - RegisterSignal(A, COMSIG_PARENT_QDELETING, .proc/clear_from_recent_examines, override=TRUE) // to flush the value if deleted early - addtimer(CALLBACK(src, .proc/clear_from_recent_examines, A), EXAMINE_MORE_TIME) - handle_eye_contact(A) + if(isnull(client.recent_examines[examinify]) || client.recent_examines[examinify] < world.time) + result = examinify.examine(src) + client.recent_examines[examinify] = world.time + EXAMINE_MORE_TIME // set the value to when the examine cooldown ends + RegisterSignal(examinify, COMSIG_PARENT_QDELETING, PROC_REF(clear_from_recent_examines), override=TRUE) // to flush the value if deleted early + addtimer(CALLBACK(src, PROC_REF(clear_from_recent_examines), examinify), EXAMINE_MORE_TIME) + handle_eye_contact(examinify) else - result = A.examine_more(src) + result = examinify.examine_more(src) else - result = A.examine(src) // if a tree is examined but no client is there to see it, did the tree ever really exist? + result = examinify.examine(src) // if a tree is examined but no client is there to see it, did the tree ever really exist? if(result.len) for(var/i in 1 to (length(result) - 1)) @@ -482,7 +486,7 @@ to_chat(src, examine_block("[result.Join()]")) - SEND_SIGNAL(src, COMSIG_MOB_EXAMINATE, A) + SEND_SIGNAL(src, COMSIG_MOB_EXAMINATE, examinify) /mob/proc/blind_examine_check(atom/examined_thing) @@ -555,11 +559,11 @@ // check to see if their face is blocked or, if not, a signal blocks it if(examined_mob.is_face_visible() && SEND_SIGNAL(src, COMSIG_MOB_EYECONTACT, examined_mob, TRUE) != COMSIG_BLOCK_EYECONTACT) var/msg = "You make eye contact with [examined_mob]." - addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, src, msg), 3) // so the examine signal has time to fire and this will print after + addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(to_chat), src, msg), 3) // so the examine signal has time to fire and this will print after if(is_face_visible() && SEND_SIGNAL(examined_mob, COMSIG_MOB_EYECONTACT, src, FALSE) != COMSIG_BLOCK_EYECONTACT) var/msg = "[src] makes eye contact with you." - addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, examined_mob, msg), 3) + addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(to_chat), examined_mob, msg), 3) ///Can this mob resist (default FALSE) @@ -604,6 +608,10 @@ set category = "Object" set src = usr + DEFAULT_QUEUE_OR_CALL_VERB(VERB_CALLBACK(src, PROC_REF(execute_mode))) + +///proc version to finish /mob/verb/mode() execution. used in case the proc needs to be queued for the tick after its first called +/mob/proc/execute_mode() if(ismecha(loc)) return @@ -615,6 +623,22 @@ I.attack_self(src) update_inv_hands() +/mob/verb/do_unique_action() + set name = "Do Unique Action" + set category = "Object" + set src = usr + + if(ismecha(loc)) + return + + if(incapacitated()) + return + + var/obj/item/I = get_active_held_item() + if(I) + I.unique_action(src) + update_inv_hands() + /** * Get the notes of this mob * @@ -1071,6 +1095,14 @@ return LAZYLEN(match_list) return FALSE +/mob/proc/update_joined_player_list(newname, oldname) + if(newname == oldname) + return + if(oldname) + GLOB.joined_player_list -= oldname + if(newname) + GLOB.joined_player_list[newname] = TRUE + /** * Fully update the name of a mob @@ -1086,6 +1118,9 @@ log_played_names(ckey,newname) + if(GLOB.joined_player_list[oldname]) + update_joined_player_list(newname, oldname) + real_name = newname name = newname if(mind) @@ -1160,7 +1195,8 @@ /mob/proc/update_mouse_pointer() if(!client) return - client.mouse_pointer_icon = initial(client.mouse_pointer_icon) + if(client.mouse_pointer_icon != initial(client.mouse_pointer_icon))//only send changes to the client if theyre needed + client.mouse_pointer_icon = initial(client.mouse_pointer_icon) if(examine_cursor_icon && client.keys_held["Shift"]) //mouse shit is hardcoded, make this non hard-coded once we make mouse modifiers bindable client.mouse_pointer_icon = examine_cursor_icon if(istype(loc, /obj/vehicle/sealed)) @@ -1170,6 +1206,11 @@ if(client.mouse_override_icon) client.mouse_pointer_icon = client.mouse_override_icon +/mob/proc/update_names_joined_list(new_name, old_name) + if(old_name) + GLOB.real_names_joined -= old_name + if(new_name) + GLOB.real_names_joined[new_name] = TRUE ///This mob is abile to read books /mob/proc/is_literate() @@ -1394,7 +1435,7 @@ UnregisterSignal(active_storage, COMSIG_PARENT_QDELETING) active_storage = new_active_storage if(active_storage) - RegisterSignal(active_storage, COMSIG_PARENT_QDELETING, .proc/active_storage_deleted) + RegisterSignal(active_storage, COMSIG_PARENT_QDELETING, PROC_REF(active_storage_deleted)) /mob/proc/active_storage_deleted(datum/source) SIGNAL_HANDLER diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 4c4a58378410..de1cb857ed4e 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -221,23 +221,37 @@ return sanitize(.) ///Shake the camera of the person viewing the mob SO REAL! -/proc/shake_camera(mob/M, duration, strength=1) - if(!M || !M.client || duration < 1) +/proc/shake_camera(mob/recoilster, duration, strength=1) + if(!recoilster || !recoilster.client || duration < 1) return - var/client/C = M.client - var/oldx = C.pixel_x - var/oldy = C.pixel_y + var/client/client_to_shake = recoilster.client + var/oldx = client_to_shake.pixel_x + var/oldy = client_to_shake.pixel_y var/max = strength*world.icon_size var/min = -(strength*world.icon_size) for(var/i in 0 to duration-1) if (i == 0) - animate(C, pixel_x=rand(min,max), pixel_y=rand(min,max), time=1) + animate(client_to_shake, pixel_x=rand(min,max), pixel_y=rand(min,max), time=1) else animate(pixel_x=rand(min,max), pixel_y=rand(min,max), time=1) animate(pixel_x=oldx, pixel_y=oldy, time=1) +/proc/recoil_camera(mob/recoilster, duration, backtime_duration, strength, angle) + if(!recoilster || !recoilster.client) + return + strength *= world.icon_size + var/client/client_to_shake = recoilster.client + var/oldx = client_to_shake.pixel_x + var/oldy = client_to_shake.pixel_y + + //get pixels to move the camera in an angle + var/mpx = sin(angle) * strength + var/mpy = cos(angle) * strength + animate(client_to_shake, pixel_x = oldx+mpx, pixel_y = oldy+mpy, time = duration, flags = ANIMATION_RELATIVE) + animate(pixel_x = oldx, pixel_y = oldy, time = backtime_duration, easing = BACK_EASING) + ///Find if the message has the real name of any user mob in the mob_list /proc/findname(msg) if(!istext(msg)) diff --git a/code/modules/mob/mob_say.dm b/code/modules/mob/mob_say.dm index 7e70eb0ee159..495f77dc0384 100644 --- a/code/modules/mob/mob_say.dm +++ b/code/modules/mob/mob_say.dm @@ -13,7 +13,7 @@ //queue this message because verbs are scheduled to process after SendMaps in the tick and speech is pretty expensive when it happens. //by queuing this for next tick the mc can compensate for its cost instead of having speech delay the start of the next tick if(message) - SSspeech_controller.queue_say_for_mob(src, message, SPEECH_CONTROLLER_QUEUE_SAY_VERB) + QUEUE_OR_CALL_VERB_FOR(VERB_CALLBACK(src, /atom/movable/proc/say, message), SSspeech_controller) ///Whisper verb /mob/verb/whisper_verb(message as text) @@ -24,7 +24,7 @@ to_chat(usr, "Speech is currently admin-disabled.") return if(message) - SSspeech_controller.queue_say_for_mob(src, message, SPEECH_CONTROLLER_QUEUE_WHISPER_VERB) + QUEUE_OR_CALL_VERB_FOR(VERB_CALLBACK(src, /mob/proc/whisper, message), SSspeech_controller) ///whisper a message /mob/proc/whisper(message, datum/language/language=null) @@ -43,7 +43,7 @@ message = trim(copytext_char(sanitize(message), 1, MAX_MESSAGE_LEN)) - SSspeech_controller.queue_say_for_mob(src, message, SPEECH_CONTROLLER_QUEUE_EMOTE_VERB) + QUEUE_OR_CALL_VERB_FOR(VERB_CALLBACK(src, /mob/proc/emote, "me", 1, message, TRUE), SSspeech_controller) ///Speak as a dead person (ghost etc) /mob/proc/say_dead(message) diff --git a/code/modules/mob/say_vr.dm b/code/modules/mob/say_vr.dm index 83bb19a33882..d2e6a4f0dda2 100644 --- a/code/modules/mob/say_vr.dm +++ b/code/modules/mob/say_vr.dm @@ -10,28 +10,22 @@ set src in usr if(usr != src) - usr << "No." + to_chat(usr, span_warning("You can't set someone else's flavour text!")) var/msg = sanitize(input(usr,"Set the flavor text in your 'examine' verb. Can also be used for OOC notes about your character.","Flavor Text",html_decode(flavor_text)) as message|null) - if(msg) //WS edit - "Cancel" does not clear flavor text + if(msg) msg = copytext(msg, 1, MAX_MESSAGE_LEN) msg = html_encode(msg) flavor_text = msg -/mob/proc/warn_flavor_changed() - if(flavor_text && flavor_text != "") // don't spam people that don't use it! - src << "

OOC Warning:

" - src << "Your flavor text is likely out of date! Change" - /mob/proc/print_flavor_text() if(flavor_text && flavor_text != "") var/msg = replacetext(flavor_text, "\n", " ") if(length(msg) <= 100) return "[msg]" else - return "[copytext(msg, 1, 97)]... More..." - + return "[copytext(msg, 1, 97)]... More..." /mob/proc/get_top_level_mob() if(istype(src.loc,/mob)&&src.loc!=src) diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index aa8a869da38a..59b64f63d139 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -19,7 +19,7 @@ new /obj/effect/temp_visual/monkeyify(loc) - transformation_timer = addtimer(CALLBACK(src, .proc/finish_monkeyize, tr_flags), TRANSFORMATION_DURATION, TIMER_UNIQUE) + transformation_timer = addtimer(CALLBACK(src, PROC_REF(finish_monkeyize), tr_flags), TRANSFORMATION_DURATION, TIMER_UNIQUE) /mob/living/carbon/proc/finish_monkeyize(tr_flags) transformation_timer = null @@ -189,7 +189,7 @@ invisibility = INVISIBILITY_MAXIMUM new /obj/effect/temp_visual/monkeyify/humanify(loc) - transformation_timer = addtimer(CALLBACK(src, .proc/finish_humanize, tr_flags), TRANSFORMATION_DURATION, TIMER_UNIQUE) + transformation_timer = addtimer(CALLBACK(src, PROC_REF(finish_humanize), tr_flags), TRANSFORMATION_DURATION, TIMER_UNIQUE) /mob/living/carbon/proc/finish_humanize(tr_flags) transformation_timer = null diff --git a/code/modules/modular_computers/file_system/programs/antagonist/revelation.dm b/code/modules/modular_computers/file_system/programs/antagonist/revelation.dm index 939cafb13f0c..8fdad6474636 100644 --- a/code/modules/modular_computers/file_system/programs/antagonist/revelation.dm +++ b/code/modules/modular_computers/file_system/programs/antagonist/revelation.dm @@ -21,7 +21,7 @@ if(istype(computer, /obj/item/modular_computer/tablet/integrated)) //If this is a borg's integrated tablet var/obj/item/modular_computer/tablet/integrated/modularInterface = computer to_chat(modularInterface.borgo,"SYSTEM PURGE DETECTED/") - addtimer(CALLBACK(modularInterface.borgo, /mob/living/silicon/robot/.proc/death), 2 SECONDS, TIMER_UNIQUE) + addtimer(CALLBACK(modularInterface.borgo, TYPE_PROC_REF(/mob/living/silicon/robot, death)), 2 SECONDS, TIMER_UNIQUE) return computer.visible_message("\The [computer]'s screen brightly flashes and loud electrical buzzing is heard.") diff --git a/code/modules/modular_computers/file_system/programs/sm_monitor.dm b/code/modules/modular_computers/file_system/programs/sm_monitor.dm index d1c6335587a4..1506d7512fe0 100644 --- a/code/modules/modular_computers/file_system/programs/sm_monitor.dm +++ b/code/modules/modular_computers/file_system/programs/sm_monitor.dm @@ -54,7 +54,7 @@ if (!isturf(S.loc) || !S.virtual_z() == T.virtual_z()) continue supermatters.Add(S) - RegisterSignal(S, COMSIG_PARENT_QDELETING, .proc/react_to_del) + RegisterSignal(S, COMSIG_PARENT_QDELETING, PROC_REF(react_to_del)) /datum/computer_file/program/supermatter_monitor/proc/get_status() . = SUPERMATTER_INACTIVE @@ -70,8 +70,8 @@ */ /datum/computer_file/program/supermatter_monitor/proc/set_signals() if(active) - RegisterSignal(active, COMSIG_SUPERMATTER_DELAM_ALARM, .proc/send_alert, override = TRUE) - RegisterSignal(active, COMSIG_SUPERMATTER_DELAM_START_ALARM, .proc/send_start_alert, override = TRUE) + RegisterSignal(active, COMSIG_SUPERMATTER_DELAM_ALARM, PROC_REF(send_alert), override = TRUE) + RegisterSignal(active, COMSIG_SUPERMATTER_DELAM_START_ALARM, PROC_REF(send_start_alert), override = TRUE) /** * Removes the signal listener for Supermatter delaminations from the selected supermatter. diff --git a/code/modules/modular_computers/laptop_vendor.dm b/code/modules/modular_computers/laptop_vendor.dm index f9ac4410f65d..7d518c0b2f6d 100644 --- a/code/modules/modular_computers/laptop_vendor.dm +++ b/code/modules/modular_computers/laptop_vendor.dm @@ -304,6 +304,6 @@ credits -= total_price say("Enjoy your new product!") state = 3 - addtimer(CALLBACK(src, .proc/reset_order), 100) + addtimer(CALLBACK(src, PROC_REF(reset_order)), 100) return TRUE return FALSE diff --git a/code/modules/movespeed/modifiers/items.dm b/code/modules/movespeed/modifiers/items.dm index 32f5756e0843..b10e25c84e7a 100644 --- a/code/modules/movespeed/modifiers/items.dm +++ b/code/modules/movespeed/modifiers/items.dm @@ -11,5 +11,9 @@ /datum/movespeed_modifier/die_of_fate multiplicative_slowdown = 1 +/datum/movespeed_modifier/gun + multiplicative_slowdown = 1 + variable = TRUE + /datum/movespeed_modifier/berserk multiplicative_slowdown = -0.2 diff --git a/code/modules/movespeed/modifiers/reagent.dm b/code/modules/movespeed/modifiers/reagent.dm index fb4994f00ad3..d6b0703ccb59 100644 --- a/code/modules/movespeed/modifiers/reagent.dm +++ b/code/modules/movespeed/modifiers/reagent.dm @@ -38,4 +38,4 @@ multiplicative_slowdown = -0.45 /datum/movespeed_modifier/reagent/shock_wine - multiplicative_slowdown = -0.15 + multiplicative_slowdown = -0.40 diff --git a/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm b/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm index 673283bb5d2a..db4267f6849f 100644 --- a/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm +++ b/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm @@ -16,7 +16,7 @@ a_boost-- to_chat(H, "There are [a_boost] adrenaline boosts remaining.") s_coold = 3 - addtimer(CALLBACK(src, .proc/ninjaboost_after), 70) + addtimer(CALLBACK(src, PROC_REF(ninjaboost_after)), 70) /obj/item/clothing/suit/space/space_ninja/proc/ninjaboost_after() var/mob/living/carbon/human/H = affecting diff --git a/code/modules/ninja/suit/suit_initialisation.dm b/code/modules/ninja/suit/suit_initialisation.dm index bb9f88646a40..cc30ddb9a882 100644 --- a/code/modules/ninja/suit/suit_initialisation.dm +++ b/code/modules/ninja/suit/suit_initialisation.dm @@ -81,7 +81,7 @@ GLOBAL_LIST_INIT(ninja_deinitialize_messages, list( playsound(U, 'sound/effects/sparks1.ogg', 10, TRUE) if (phase < NINJA_COMPLETE_PHASE) - addtimer(CALLBACK(src, .proc/ninitialize, delay, U, phase + 1), delay) + addtimer(CALLBACK(src, PROC_REF(ninitialize), delay, U, phase + 1), delay) /** * Deinitializes the ninja suit @@ -110,7 +110,7 @@ GLOBAL_LIST_INIT(ninja_deinitialize_messages, list( playsound(U, 'sound/items/deconstruct.ogg', 10, TRUE) if (phase < NINJA_COMPLETE_PHASE) - addtimer(CALLBACK(src, .proc/deinitialize, delay, U, phase + 1), delay) + addtimer(CALLBACK(src, PROC_REF(deinitialize), delay, U, phase + 1), delay) else unlock_suit() U.regenerate_icons() diff --git a/code/modules/overmap/_overmap_datum.dm b/code/modules/overmap/_overmap_datum.dm index 420b7aad4055..076188f6ec58 100644 --- a/code/modules/overmap/_overmap_datum.dm +++ b/code/modules/overmap/_overmap_datum.dm @@ -38,6 +38,9 @@ /// The icon state the token will be set to on init. var/token_icon_state = "object" + /// The current docking ticket of this object, if any + var/datum/docking_ticket/current_docking_ticket + /datum/overmap/New(position, ...) SHOULD_NOT_OVERRIDE(TRUE) // Use [/datum/overmap/proc/Initialize] instead. if(!position) @@ -64,6 +67,8 @@ /datum/overmap/Destroy(force, ...) SSovermap.overmap_objects -= src + if(current_docking_ticket) + QDEL_NULL(current_docking_ticket) if(docked_to) docked_to.post_undocked() docked_to.contents -= src @@ -219,22 +224,25 @@ if(docked_to) CRASH("Overmap datum [src] tried to dock to [docked_to] when it is already docked to another overmap datum.") - if(docking) - return + if(docking || current_docking_ticket) + return "Already docking!" docking = TRUE var/datum/docking_ticket/ticket = dock_target.pre_docked(src) - if(!ticket || ticket.docking_error) + var/ticket_error = ticket?.docking_error + if(!ticket || ticket_error) + qdel(ticket) docking = FALSE - return ticket?.docking_error || "Unknown docking error!" + return ticket_error || "Unknown docking error!" if(!pre_dock(dock_target, ticket)) + qdel(ticket) docking = FALSE - return + return ticket_error start_dock(dock_target, ticket) if(dock_time && !force) - dock_timer_id = addtimer(CALLBACK(src, .proc/complete_dock, dock_target, ticket), dock_time) + dock_timer_id = addtimer(CALLBACK(src, PROC_REF(complete_dock), dock_target, ticket), dock_time) else complete_dock(dock_target, ticket) @@ -289,6 +297,9 @@ dock_target.post_docked(src) docking = FALSE + //Clears the docking ticket from both sides + qdel(current_docking_ticket) + SEND_SIGNAL(src, COMSIG_OVERMAP_DOCK, dock_target) /** @@ -312,7 +323,7 @@ docking = TRUE if(dock_time && !force) - dock_timer_id = addtimer(CALLBACK(src, .proc/complete_undock), dock_time) + dock_timer_id = addtimer(CALLBACK(src, PROC_REF(complete_undock)), dock_time) else complete_undock() @@ -332,7 +343,7 @@ var/datum/overmap/old_docked_to = docked_to docked_to = null token.forceMove(OVERMAP_TOKEN_TURF(x, y)) - INVOKE_ASYNC(old_docked_to, .proc/post_undocked, src) + INVOKE_ASYNC(old_docked_to, PROC_REF(post_undocked), src) docking = FALSE SEND_SIGNAL(src, COMSIG_OVERMAP_UNDOCK, old_docked_to) diff --git a/code/modules/overmap/docking_ticket.dm b/code/modules/overmap/docking_ticket.dm index f32ffde39716..4e6465043246 100644 --- a/code/modules/overmap/docking_ticket.dm +++ b/code/modules/overmap/docking_ticket.dm @@ -9,7 +9,40 @@ var/docking_error /datum/docking_ticket/New(_target_port, _issuer, _target, _docking_error) + docking_error = _docking_error + if(docking_error) + return + + if(!_target_port) + docking_error = "No target port specified!" + return target_port = _target_port + if(target_port.current_docking_ticket) + docking_error = "[target_port] is already being docked to!" + return + target_port.current_docking_ticket = src + + if(!_issuer) + docking_error = "No issuer overmap datum specified!" + return issuer = _issuer + + if(!_target) + docking_error = "No target overmap datum specified!" + return target = _target - docking_error = _docking_error + if(target.current_docking_ticket) + docking_error = "[target] is already docking!" + return + target.current_docking_ticket = src + + +/datum/docking_ticket/Destroy(force, ...) + if(target) + target.current_docking_ticket = null + target = null + if(target_port) + target_port.current_docking_ticket = null + target_port = null + + return ..() diff --git a/code/modules/overmap/helm.dm b/code/modules/overmap/helm.dm index e39b6bc88866..59fdee827907 100644 --- a/code/modules/overmap/helm.dm +++ b/code/modules/overmap/helm.dm @@ -66,7 +66,7 @@ if(jump_state != JUMP_STATE_OFF && !inline) return // This exists to prefent Href exploits to call process_jump more than once by a client message_admins("[ADMIN_LOOKUPFLW(usr)] has initiated a bluespace jump in [ADMIN_VERBOSEJMP(src)]") - jump_timer = addtimer(CALLBACK(src, .proc/jump_sequence, TRUE), JUMP_CHARGEUP_TIME, TIMER_STOPPABLE) + jump_timer = addtimer(CALLBACK(src, PROC_REF(jump_sequence), TRUE), JUMP_CHARGEUP_TIME, TIMER_STOPPABLE) priority_announce("Bluespace jump calibration initialized. Calibration completion in [JUMP_CHARGEUP_TIME/600] minutes.", sender_override="[current_ship.name] Bluespace Pylon", zlevel=virtual_z()) calibrating = TRUE return TRUE @@ -99,9 +99,9 @@ if(JUMP_STATE_FIRING) jump_state = JUMP_STATE_FINALIZED priority_announce("Bluespace Pylon launched.", sender_override = "[current_ship.name] Bluespace Pylon", sound = 'sound/magic/lightning_chargeup.ogg', zlevel = virtual_z()) - addtimer(CALLBACK(src, .proc/do_jump), 10 SECONDS) + addtimer(CALLBACK(src, PROC_REF(do_jump)), 10 SECONDS) return - jump_timer = addtimer(CALLBACK(src, .proc/jump_sequence, TRUE), JUMP_CHARGE_DELAY, TIMER_STOPPABLE) + jump_timer = addtimer(CALLBACK(src, PROC_REF(jump_sequence), TRUE), JUMP_CHARGE_DELAY, TIMER_STOPPABLE) /obj/machinery/computer/helm/proc/do_jump() priority_announce("Bluespace Jump Initiated.", sender_override = "[current_ship.name] Bluespace Pylon", sound = 'sound/magic/lightningbolt.ogg', zlevel = virtual_z()) diff --git a/code/modules/overmap/missions.dm b/code/modules/overmap/missions.dm index e3461ced00de..135f6b53ce45 100644 --- a/code/modules/overmap/missions.dm +++ b/code/modules/overmap/missions.dm @@ -35,7 +35,7 @@ value = round(rand(value-val_mod, value+val_mod) * (dur_value_scaling ? old_dur / duration : 1), 50) source_outpost = _outpost - RegisterSignal(source_outpost, COMSIG_PARENT_QDELETING, .proc/on_vital_delete) + RegisterSignal(source_outpost, COMSIG_PARENT_QDELETING, PROC_REF(on_vital_delete)) return ..() /datum/mission/proc/accept(datum/overmap/ship/controlled/acceptor, turf/accept_loc) @@ -43,7 +43,7 @@ servant = acceptor LAZYREMOVE(source_outpost.missions, src) LAZYADD(servant.missions, src) - RegisterSignal(servant, COMSIG_PARENT_QDELETING, .proc/on_vital_delete) + RegisterSignal(servant, COMSIG_PARENT_QDELETING, PROC_REF(on_vital_delete)) dur_timer = addtimer(VARSET_CALLBACK(src, failed, TRUE), duration, TIMER_STOPPABLE) /datum/mission/proc/on_vital_delete() @@ -117,7 +117,7 @@ if(sparks) do_sparks(3, FALSE, get_turf(bound)) LAZYSET(bound_atoms, bound, list(fail_on_delete, destroy_cb)) - RegisterSignal(bound, COMSIG_PARENT_QDELETING, .proc/bound_deleted) + RegisterSignal(bound, COMSIG_PARENT_QDELETING, PROC_REF(bound_deleted)) return bound /** diff --git a/code/modules/overmap/missions/research_mission.dm b/code/modules/overmap/missions/research_mission.dm index c80686039f8d..0e4996f7719d 100644 --- a/code/modules/overmap/missions/research_mission.dm +++ b/code/modules/overmap/missions/research_mission.dm @@ -20,7 +20,7 @@ /datum/mission/research/accept(datum/overmap/ship/controlled/acceptor, turf/accept_loc) . = ..() scanner = spawn_bound(/obj/machinery/mission_scanner, accept_loc, VARSET_CALLBACK(src, scanner, null)) - RegisterSignal(servant, COMSIG_OVERMAP_MOVED, .proc/ship_moved) + RegisterSignal(servant, COMSIG_OVERMAP_MOVED, PROC_REF(ship_moved)) /datum/mission/research/Destroy() scanner = null @@ -129,7 +129,7 @@ use_power = NO_POWER_USE power_change() // calls update_appearance(), makes sure we're powered -/obj/machinery/mission_scanner/update_icon_state() +/obj/machinery/mission_scanner/update_appearance(updates) . = ..() if(is_operational) icon_state = "scanner_power" diff --git a/code/modules/overmap/objects/dynamic_datum.dm b/code/modules/overmap/objects/dynamic_datum.dm index c6f0ed4a193e..82b77b513469 100644 --- a/code/modules/overmap/objects/dynamic_datum.dm +++ b/code/modules/overmap/objects/dynamic_datum.dm @@ -27,6 +27,8 @@ var/ruin_type /// list of ruins and their target turf, indexed by name var/list/ruin_turfs + /// Whether or not the level is currently loading. + var/loading = FALSE /// The mapgenerator itself. SHOULD NOT BE NULL if the datum ever creates an encounter var/datum/map_generator/mapgen = /datum/map_generator/single_turf/space @@ -68,6 +70,8 @@ return get_turf(pick(reserve_docks)) /datum/overmap/dynamic/pre_docked(datum/overmap/ship/controlled/dock_requester) + if(loading) + return new /datum/docking_ticket(_docking_error = "[src] is currently being scanned for suitable docking locations by another ship. Please wait.") if(!load_level()) return new /datum/docking_ticket(_docking_error = "[src] cannot be docked to.") else @@ -177,15 +181,21 @@ return FALSE if(mapzone) return TRUE + + loading = TRUE log_shuttle("[src] [REF(src)] LEVEL_INIT") + // use the ruin type in template if it exists, or pick from ruin list if IT exists; otherwise null var/selected_ruin = template || (ruin_type ? pickweightAllowZero(SSmapping.ruin_types_probabilities[ruin_type]) : null) var/list/dynamic_encounter_values = SSovermap.spawn_dynamic_encounter(src, selected_ruin) if(!length(dynamic_encounter_values)) return FALSE + mapzone = dynamic_encounter_values[1] reserve_docks = dynamic_encounter_values[2] ruin_turfs = dynamic_encounter_values[3] + + loading = FALSE return TRUE /datum/overmap/dynamic/empty diff --git a/code/modules/overmap/objects/outpost/elevator/elevator_machines.dm b/code/modules/overmap/objects/outpost/elevator/elevator_machines.dm index e4e32492e1de..bcd6f98a4d8e 100644 --- a/code/modules/overmap/objects/outpost/elevator/elevator_machines.dm +++ b/code/modules/overmap/objects/outpost/elevator/elevator_machines.dm @@ -50,7 +50,7 @@ var/down_arrow = my_floor.calls & DOWN ? "green_arrow" : "red_arrow" opts["Down"] = image(icon = 'icons/misc/arrows.dmi', icon_state = down_arrow, dir = SOUTH) - var/result = show_radial_menu(user, src, opts, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = !(issilicon(user) || isAdminGhostAI(user)), tooltips = TRUE) + var/result = show_radial_menu(user, src, opts, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = !(issilicon(user) || isAdminGhostAI(user)), tooltips = TRUE) if(!result || !my_floor || !my_floor.master) return switch(result) diff --git a/code/modules/overmap/objects/outpost/elevator/elevator_master.dm b/code/modules/overmap/objects/outpost/elevator/elevator_master.dm index 9bbc5e29d25d..2c934bb94aab 100644 --- a/code/modules/overmap/objects/outpost/elevator/elevator_master.dm +++ b/code/modules/overmap/objects/outpost/elevator/elevator_master.dm @@ -174,7 +174,7 @@ if(next_move != NONE) // sets in motion a chain of procs that will, after a bit, call check_move() again. - addtimer(CALLBACK(src, .proc/move_elevator, next_move), floor_move_time) + addtimer(CALLBACK(src, PROC_REF(move_elevator), next_move), floor_move_time) return // This is the only way the elevator may become idle: if it does not find anywhere to go on check_move(). @@ -255,10 +255,10 @@ cur_floor.calls &= ~seeking_dir cur_floor.button?.update_icon() - addtimer(CALLBACK(src, .proc/open_doors, cur_floor), door_open_time) - addtimer(CALLBACK(src, .proc/close_doors, cur_floor), door_open_time+floor_idle_time) + addtimer(CALLBACK(src, PROC_REF(open_doors), cur_floor), door_open_time) + addtimer(CALLBACK(src, PROC_REF(close_doors), cur_floor), door_open_time+floor_idle_time) // Continue the check_move() chain. - addtimer(CALLBACK(src, .proc/check_move), door_open_time+floor_idle_time+(1 SECONDS)) + addtimer(CALLBACK(src, PROC_REF(check_move)), door_open_time+floor_idle_time+(1 SECONDS)) /datum/elevator_master/proc/open_doors(datum/floor/d_floor) for(var/obj/machinery/door/fl_door as anything in d_floor.doors) @@ -267,13 +267,13 @@ if(!fl_door.wires.is_cut(WIRE_BOLTS)) fl_door.unlock() fl_door.autoclose = FALSE - INVOKE_ASYNC(fl_door, /obj/machinery/door.proc/open) + INVOKE_ASYNC(fl_door, TYPE_PROC_REF(/obj/machinery/door, open)) /datum/elevator_master/proc/close_doors(datum/floor/d_floor) for(var/obj/machinery/door/fl_door as anything in d_floor.doors) // respect the cut wire fl_door.autoclose = fl_door.wires.is_cut(WIRE_TIMING) - INVOKE_ASYNC(fl_door, /obj/machinery/door.proc/close) + INVOKE_ASYNC(fl_door, TYPE_PROC_REF(/obj/machinery/door, close)) // bolts can be lowered without power, or a cut wire (since if wire is cut they're automatically down) fl_door.lock() @@ -350,7 +350,7 @@ // you can always lower the bolts; doors are locked on floor creation to ensure no entry into shaft fl_door.lock() // don't want door refs hanging around - RegisterSignal(fl_door, COMSIG_PARENT_QDELETING, .proc/door_qdelete) + RegisterSignal(fl_door, COMSIG_PARENT_QDELETING, PROC_REF(door_qdelete)) // Deletion via means other than /datum/elevator_master/remove_floor() are likely to cause nasty elevator desyncs. /datum/floor/Destroy() diff --git a/code/modules/overmap/objects/outpost/elevator/elevator_platform.dm b/code/modules/overmap/objects/outpost/elevator/elevator_platform.dm index b530ee7e0435..03c8c66e4838 100644 --- a/code/modules/overmap/objects/outpost/elevator/elevator_platform.dm +++ b/code/modules/overmap/objects/outpost/elevator/elevator_platform.dm @@ -30,9 +30,9 @@ . = ..() var/static/list/connections = list( - COMSIG_ATOM_ENTERED = .proc/AddItemOnPlat, - COMSIG_ATOM_CREATED = .proc/AddItemOnPlat, - COMSIG_ATOM_EXITED = .proc/RemoveItemFromPlat + COMSIG_ATOM_ENTERED = PROC_REF(AddItemOnPlat), + COMSIG_ATOM_CREATED = PROC_REF(AddItemOnPlat), + COMSIG_ATOM_EXITED = PROC_REF(RemoveItemFromPlat) ) AddElement(/datum/element/connect_loc, connections) @@ -62,7 +62,7 @@ if(AM in lift_load) return LAZYADD(lift_load, AM) - RegisterSignal(AM, COMSIG_PARENT_QDELETING, .proc/RemoveItemFromPlat) + RegisterSignal(AM, COMSIG_PARENT_QDELETING, PROC_REF(RemoveItemFromPlat)) /obj/structure/elevator_platform/proc/RemoveItemFromPlat(datum/source, atom/movable/AM) SIGNAL_HANDLER diff --git a/code/modules/overmap/objects/outpost/outpost.dm b/code/modules/overmap/objects/outpost/outpost.dm index 25da722e6509..2d493a12b64a 100644 --- a/code/modules/overmap/objects/outpost/outpost.dm +++ b/code/modules/overmap/objects/outpost/outpost.dm @@ -15,11 +15,11 @@ /// and tall hangars (with a greater height than width) in the list is discouraged; it is possible that a large hangar will "hide" a /// smaller one by appearing earlier in the sorted list. var/list/datum/map_template/outpost/hangar/hangar_templates = list( - /datum/map_template/outpost/hangar/test_20x20, - /datum/map_template/outpost/hangar/test_40x20, - /datum/map_template/outpost/hangar/test_40x40, - /datum/map_template/outpost/hangar/test_56x20, - /datum/map_template/outpost/hangar/test_56x40 + /datum/map_template/outpost/hangar/indie_space_20x20, + /datum/map_template/outpost/hangar/indie_space_40x20, + /datum/map_template/outpost/hangar/indie_space_40x40, + /datum/map_template/outpost/hangar/indie_space_56x20, + /datum/map_template/outpost/hangar/indie_space_56x40 ) // NOTE: "planetary" outposts should use baseturf specification and possibly different ztrait sun type, for both hangars and main level. var/list/main_level_ztraits = list( @@ -33,9 +33,6 @@ /// The mapzone used by the outpost level and hangars. Using a single mapzone means networked radio messages. var/datum/map_zone/mapzone var/list/datum/hangar_shaft/shaft_datums = list() - /// A list keeping track of the docks that're currently being landed at. Helps to prevent SGTs, - /// as at time of writing there's no protection against a ship docking with a port that's already being docked to. - var/list/landing_in_progress_docks = list() // TODO: generalize this approach to prevent simultaneous-dock ship-overlap SGTs /// The maximum number of missions that may be offered by the outpost at one time. /// Missions which have been accepted do not count against this limit. @@ -65,7 +62,7 @@ Rename(gen_outpost_name()) fill_missions() - addtimer(CALLBACK(src, .proc/fill_missions), 10 MINUTES, TIMER_STOPPABLE|TIMER_LOOP|TIMER_DELETE_ME) + addtimer(CALLBACK(src, PROC_REF(fill_missions)), 10 MINUTES, TIMER_STOPPABLE|TIMER_LOOP|TIMER_DELETE_ME) /datum/overmap/outpost/Destroy(...) // cleanup our data structures. behavior here is currently relatively restrained; may be made more expansive in the future @@ -214,14 +211,10 @@ ) return FALSE - landing_in_progress_docks += h_dock adjust_dock_to_shuttle(h_dock, dock_requester.shuttle_port) return new /datum/docking_ticket(h_dock, src, dock_requester) /datum/overmap/outpost/post_docked(datum/overmap/ship/controlled/dock_requester) - // removes the stationary dock from the list, so that we don't have to worry about it causing merge SGTs - landing_in_progress_docks -= dock_requester.shuttle_port.docked - for(var/mob/M as anything in GLOB.player_list) if(dock_requester.shuttle_port.is_in_shuttle_bounds(M)) M.play_screen_text("[name]
[station_time_timestamp_fancy("hh:mm")]") @@ -288,7 +281,7 @@ // a dock/undock cycle may leave the stationary port w/ flipped width and height, // due to adjust_dock_to_shuttle(). so we need to check both orderings of the list. if( \ - !(h_dock in landing_in_progress_docks) && !h_dock.docked && \ + !h_dock.current_docking_ticket && !h_dock.docked && \ ( \ (h_dock.width == h_template.dock_width && h_dock.height == h_template.dock_height) || \ (h_dock.width == h_template.dock_height && h_dock.height == h_template.dock_width) \ diff --git a/code/modules/overmap/objects/outpost/outpost_types.dm b/code/modules/overmap/objects/outpost/outpost_types.dm index 6a37077d0289..fb707213e5eb 100644 --- a/code/modules/overmap/objects/outpost/outpost_types.dm +++ b/code/modules/overmap/objects/outpost/outpost_types.dm @@ -9,90 +9,96 @@ var/dock_width var/dock_height - -/datum/map_template/outpost/outpost_test_1 - name = "outpost_test_1" - -/datum/map_template/outpost/outpost_test_2 - name = "outpost_test_2" - /datum/map_template/outpost/elevator_test name = "elevator_test" +/datum/map_template/outpost/elevator_indie + name = "elevator_indie" + + +/* + Independent Space Outpost //creative name! +*/ +/datum/map_template/outpost/indie_space + name = "indie_space" -/datum/map_template/outpost/hangar/test_20x20 - name = "hangar/test_20x20" +/datum/map_template/outpost/hangar/indie_space_20x20 + name = "hangar/indie_space_20x20" dock_width = 20 dock_height = 20 -/datum/map_template/outpost/hangar/test_40x20 - name = "hangar/test_40x20" +/datum/map_template/outpost/hangar/indie_space_40x20 + name = "hangar/indie_space_40x20" dock_width = 40 dock_height = 20 -/datum/map_template/outpost/hangar/test_40x40 - name = "hangar/test_40x40" +/datum/map_template/outpost/hangar/indie_space_40x40 + name = "hangar/indie_space_40x40" dock_width = 40 dock_height = 40 -/datum/map_template/outpost/hangar/test_56x20 - name = "hangar/test_56x20" +/datum/map_template/outpost/hangar/indie_space_56x20 + name = "hangar/indie_space_56x20" dock_width = 56 dock_height = 20 -/datum/map_template/outpost/hangar/test_56x40 - name = "hangar/test_56x40" +/datum/map_template/outpost/hangar/indie_space_56x40 + name = "hangar/indie_space_56x40" dock_width = 56 dock_height = 40 +/* + Nanotrasen Ice Asteroid +*/ +/datum/map_template/outpost/nt_asteroid + name = "nanotrasen_asteroid" -/datum/map_template/outpost/hangar/test_2_20x20 - name = "hangar/test_2_20x20" +/datum/map_template/outpost/hangar/nt_asteroid_20x20 + name = "hangar/nt_asteroid_20x20" dock_width = 20 dock_height = 20 -/datum/map_template/outpost/hangar/test_2_40x20 - name = "hangar/test_2_40x20" +/datum/map_template/outpost/hangar/nt_asteroid_40x20 + name = "hangar/nt_asteroid_40x20" dock_width = 40 dock_height = 20 -/datum/map_template/outpost/hangar/test_2_40x40 - name = "hangar/test_2_40x40" +/datum/map_template/outpost/hangar/nt_asteroid_40x40 + name = "hangar/nt_asteroid_40x40" dock_width = 40 dock_height = 40 -/datum/map_template/outpost/hangar/test_2_56x20 - name = "hangar/test_2_56x20" +/datum/map_template/outpost/hangar/nt_asteroid_56x20 + name = "hangar/nt_asteroid_56x20" dock_width = 56 dock_height = 20 -// does not currently exist -// /datum/map_template/outpost/hangar/test_2_56x40 -// name = "hangar/test_2_56x40" -// dock_width = 56 -// dock_height = 40 +/datum/map_template/outpost/hangar/nt_asteroid_56x40 + name = "hangar/nt_asteroid_56x40" + dock_width = 56 + dock_height = 40 /* /datum/overmap/outpost subtypes */ -/datum/overmap/outpost/test_1 +/datum/overmap/outpost/indie_space token_icon_state = "station_1" - main_template = /datum/map_template/outpost/outpost_test_1 - elevator_template = /datum/map_template/outpost/elevator_test - // Uses "test" hangars. + main_template = /datum/map_template/outpost/indie_space + elevator_template = /datum/map_template/outpost/elevator_indie + // Uses "default" hangars (indie_space). -/datum/overmap/outpost/test_2 +/datum/overmap/outpost/nanotrasen_asteroid token_icon_state = "station_asteroid_0" - main_template = /datum/map_template/outpost/outpost_test_2 + main_template = /datum/map_template/outpost/nt_asteroid elevator_template = /datum/map_template/outpost/elevator_test - // Using an (incomplete) second list of hangar templates. Note that the 56x40 hangar is the first skin. + // Using a second list of hangar templates. hangar_templates = list( - /datum/map_template/outpost/hangar/test_2_20x20, - /datum/map_template/outpost/hangar/test_2_40x20, - /datum/map_template/outpost/hangar/test_2_40x40, - /datum/map_template/outpost/hangar/test_2_56x20, - /datum/map_template/outpost/hangar/test_56x40 + /datum/map_template/outpost/hangar/nt_asteroid_20x20, + /datum/map_template/outpost/hangar/nt_asteroid_40x20, + /datum/map_template/outpost/hangar/nt_asteroid_40x40, + /datum/map_template/outpost/hangar/nt_asteroid_56x20, + /datum/map_template/outpost/hangar/nt_asteroid_56x40 ) /datum/overmap/outpost/no_main_level // For example and adminspawn. diff --git a/code/modules/overmap/ships/controlled_ship_datum.dm b/code/modules/overmap/ships/controlled_ship_datum.dm index a04355197dd6..4397919593aa 100644 --- a/code/modules/overmap/ships/controlled_ship_datum.dm +++ b/code/modules/overmap/ships/controlled_ship_datum.dm @@ -77,7 +77,9 @@ shuttle_area.rename_area("[new_name] [initial(shuttle_area.name)]") if(!force) COOLDOWN_START(src, rename_cooldown, 5 MINUTES) - priority_announce("The [oldname] has been renamed to the [new_name].", "Docking Announcement", sender_override = new_name, zlevel = shuttle_port.virtual_z()) + if(shuttle_port?.virtual_z() == null) + return TRUE + priority_announce("The [oldname] has been renamed to the [new_name].", "Docking Announcement", sender_override = new_name, zlevel = shuttle_port?.virtual_z()) return TRUE /** @@ -103,7 +105,7 @@ ship_account = new(name, source_template.starting_funds) #ifdef UNIT_TESTS - Rename("[source_template]") + Rename("[source_template]", TRUE) #else Rename("[source_template.prefix] [pick_list_replacements(SHIP_NAMES_FILE, pick(source_template.name_categories))]", TRUE) #endif @@ -139,8 +141,10 @@ /datum/overmap/ship/controlled/pre_dock(datum/overmap/to_dock, datum/docking_ticket/ticket) if(ticket.target != src || ticket.issuer != to_dock) + ticket.docking_error = "Invalid target." return FALSE if(!shuttle_port.check_dock(ticket.target_port)) + ticket.docking_error = "Targeted docking port invalid." return FALSE return TRUE @@ -285,7 +289,7 @@ ) LAZYSET(owner_candidates, H.mind, mind_info) H.mind.original_ship = WEAKREF(src) - RegisterSignal(H.mind, COMSIG_PARENT_QDELETING, .proc/crew_mind_deleting) + RegisterSignal(H.mind, COMSIG_PARENT_QDELETING, PROC_REF(crew_mind_deleting)) if(!owner_mob) set_owner_mob(H) @@ -312,7 +316,7 @@ // turns out that timers don't get added to active_timers if the datum is getting qdeleted. // so this timer was sitting around after deletion and clogging up runtime logs. thus, the QDELING() check. oops! if(!owner_check_timer_id && !QDELING(src)) - owner_check_timer_id = addtimer(CALLBACK(src, .proc/check_owner), 5 MINUTES, TIMER_STOPPABLE|TIMER_LOOP|TIMER_DELETE_ME) + owner_check_timer_id = addtimer(CALLBACK(src, PROC_REF(check_owner)), 5 MINUTES, TIMER_STOPPABLE|TIMER_LOOP|TIMER_DELETE_ME) return owner_mob = new_owner @@ -326,8 +330,8 @@ if(!(owner_mind in owner_candidates)) stack_trace("[src] tried to set ship owner to [new_owner] despite its mind [new_owner.mind] not being in owner_candidates!") - RegisterSignal(owner_mob, COMSIG_MOB_LOGOUT, .proc/owner_mob_logout) - RegisterSignal(owner_mob, COMSIG_MOB_GO_INACTIVE, .proc/owner_mob_afk) + RegisterSignal(owner_mob, COMSIG_MOB_LOGOUT, PROC_REF(owner_mob_logout)) + RegisterSignal(owner_mob, COMSIG_MOB_GO_INACTIVE, PROC_REF(owner_mob_afk)) if(!owner_act) owner_act = new(src) owner_act.Grant(owner_mob) diff --git a/code/modules/overmap/ships/ship_application.dm b/code/modules/overmap/ships/ship_application.dm index cd8a1f48f5e9..7389759ea7ed 100644 --- a/code/modules/overmap/ships/ship_application.dm +++ b/code/modules/overmap/ships/ship_application.dm @@ -26,8 +26,8 @@ // these are registered so we can cancel the application fill-out if the ship // gets deleted before the application is finalized, or the character spawns in. // your currently-open tgui windows don't get removed if you spawn into a body - RegisterSignal(app_mob, COMSIG_PARENT_QDELETING, .proc/applicant_deleting) - RegisterSignal(parent_ship, COMSIG_PARENT_QDELETING, .proc/important_deleting_during_apply) + RegisterSignal(app_mob, COMSIG_PARENT_QDELETING, PROC_REF(applicant_deleting)) + RegisterSignal(parent_ship, COMSIG_PARENT_QDELETING, PROC_REF(important_deleting_during_apply)) /datum/ship_application/Destroy() SStgui.close_uis(src) diff --git a/code/modules/overmap/ships/ship_datum.dm b/code/modules/overmap/ships/ship_datum.dm index 9c68b0ed8ae2..ed8f40a28f64 100644 --- a/code/modules/overmap/ships/ship_datum.dm +++ b/code/modules/overmap/ships/ship_datum.dm @@ -30,7 +30,7 @@ /datum/overmap/ship/Initialize(position, ...) . = ..() if(docked_to) - RegisterSignal(docked_to, COMSIG_OVERMAP_MOVED, .proc/on_docked_to_moved) + RegisterSignal(docked_to, COMSIG_OVERMAP_MOVED, PROC_REF(on_docked_to_moved)) /datum/overmap/ship/Destroy() if(movement_callback_id) @@ -40,7 +40,7 @@ /datum/overmap/ship/complete_dock(datum/overmap/dock_target, datum/docking_ticket/ticket) . = ..() // override prevents runtime on controlled ship init due to docking after initializing at a position - RegisterSignal(dock_target, COMSIG_OVERMAP_MOVED, .proc/on_docked_to_moved, override = TRUE) + RegisterSignal(dock_target, COMSIG_OVERMAP_MOVED, PROC_REF(on_docked_to_moved), override = TRUE) /datum/overmap/ship/complete_undock() UnregisterSignal(docked_to, COMSIG_OVERMAP_MOVED) @@ -83,7 +83,7 @@ return var/timer = 1 / MAGNITUDE(speed_x, speed_y) * offset - movement_callback_id = addtimer(CALLBACK(src, .proc/tick_move), timer, TIMER_STOPPABLE, SSovermap_movement) + movement_callback_id = addtimer(CALLBACK(src, PROC_REF(tick_move)), timer, TIMER_STOPPABLE, SSovermap_movement) /** * Called by [/datum/overmap/ship/proc/adjust_speed], this continually moves the ship according to its speed @@ -106,7 +106,7 @@ return var/timer = 1 / current_speed - movement_callback_id = addtimer(CALLBACK(src, .proc/tick_move), timer, TIMER_STOPPABLE, SSovermap_movement) + movement_callback_id = addtimer(CALLBACK(src, PROC_REF(tick_move)), timer, TIMER_STOPPABLE, SSovermap_movement) token.update_screen() /** diff --git a/code/modules/paperwork/contract.dm b/code/modules/paperwork/contract.dm index b919078a97f7..0dd736ce9936 100644 --- a/code/modules/paperwork/contract.dm +++ b/code/modules/paperwork/contract.dm @@ -244,7 +244,7 @@ user.visible_message("With a sudden blaze, [H] stands back up.") H.fakefire() fulfillContract(H, TRUE)//Revival contracts are always signed in blood - addtimer(CALLBACK(H, /mob/living/carbon/human.proc/fakefireextinguish), 5, TIMER_UNIQUE) + addtimer(CALLBACK(H, TYPE_PROC_REF(/mob/living/carbon/human, fakefireextinguish)), 5, TIMER_UNIQUE) addtimer(CALLBACK(src, "resetcooldown"), 300, TIMER_UNIQUE) else ..() diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index bd232fd566e3..f85bd0bc77f9 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -133,23 +133,23 @@ return FALSE // Basic paper if(istype(paper_copy, /obj/item/paper)) - do_copy_loop(CALLBACK(src, .proc/make_paper_copy), usr) + do_copy_loop(CALLBACK(src, PROC_REF(make_paper_copy)), usr) return TRUE // Devil contract paper. if(istype(paper_copy, /obj/item/paper/contract/employment)) - do_copy_loop(CALLBACK(src, .proc/make_devil_paper_copy), usr) + do_copy_loop(CALLBACK(src, PROC_REF(make_devil_paper_copy)), usr) return TRUE // Copying photo. if(photo_copy) - do_copy_loop(CALLBACK(src, .proc/make_photo_copy), usr) + do_copy_loop(CALLBACK(src, PROC_REF(make_photo_copy)), usr) return TRUE // Copying Documents. if(document_copy) - do_copy_loop(CALLBACK(src, .proc/make_document_copy), usr) + do_copy_loop(CALLBACK(src, PROC_REF(make_document_copy)), usr) return TRUE // ASS COPY. By Miauw if(ass) - do_copy_loop(CALLBACK(src, .proc/make_ass_copy), usr) + do_copy_loop(CALLBACK(src, PROC_REF(make_ass_copy)), usr) return TRUE // Remove the paper/photo/document from the photocopier. @@ -211,7 +211,7 @@ if (toner_cartridge.charges - PAPER_TONER_USE < 0) to_chat(usr, span_warning("There is not enough toner in [src] to print the form, please replace the cartridge.")) return FALSE - do_copy_loop(CALLBACK(src, .proc/make_blank_print), usr) + do_copy_loop(CALLBACK(src, PROC_REF(make_blank_print)), usr) var/obj/item/paper/printblank = new /obj/item/paper (loc) var/printname = params["name"] var/list/printinfo @@ -248,7 +248,7 @@ var/i for(i in 1 to copies) addtimer(copy_cb, i SECONDS) - addtimer(CALLBACK(src, .proc/reset_busy), i SECONDS) + addtimer(CALLBACK(src, PROC_REF(reset_busy)), i SECONDS) /** * Sets busy to `FALSE`. Created as a proc so it can be used in callbacks. diff --git a/code/modules/paperwork/ticketmachine.dm b/code/modules/paperwork/ticketmachine.dm index 24a256282fad..c645b3108b47 100644 --- a/code/modules/paperwork/ticketmachine.dm +++ b/code/modules/paperwork/ticketmachine.dm @@ -187,7 +187,7 @@ tickets += theirticket if(obj_flags & EMAGGED) //Emag the machine to destroy the HOP's life. ready = FALSE - addtimer(CALLBACK(src, .proc/reset_cooldown), cooldown)//Small cooldown to prevent piles of flaming tickets + addtimer(CALLBACK(src, PROC_REF(reset_cooldown)), cooldown)//Small cooldown to prevent piles of flaming tickets theirticket.fire_act() user.dropItemToGround(theirticket) user.adjust_fire_stacks(1) diff --git a/code/modules/photography/camera/camera.dm b/code/modules/photography/camera/camera.dm index 7ef48e8e8240..93b8319dbed7 100644 --- a/code/modules/photography/camera/camera.dm +++ b/code/modules/photography/camera/camera.dm @@ -144,11 +144,11 @@ var/mob/living/carbon/human/H = user if (HAS_TRAIT(H, TRAIT_PHOTOGRAPHER)) realcooldown *= 0.5 - addtimer(CALLBACK(src, .proc/cooldown), realcooldown) + addtimer(CALLBACK(src, PROC_REF(cooldown)), realcooldown) icon_state = state_off - INVOKE_ASYNC(src, .proc/captureimage, target, user, flag, picture_size_x - 1, picture_size_y - 1) + INVOKE_ASYNC(src, PROC_REF(captureimage), target, user, flag, picture_size_x - 1, picture_size_y - 1) /obj/item/camera/proc/cooldown() @@ -166,7 +166,7 @@ /obj/item/camera/proc/captureimage(atom/target, mob/user, flag, size_x = 1, size_y = 1) if(flash_enabled) set_light_on(TRUE) - addtimer(CALLBACK(src, .proc/flash_end), FLASH_LIGHT_DURATION, TIMER_OVERRIDE|TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(flash_end)), FLASH_LIGHT_DURATION, TIMER_OVERRIDE|TIMER_UNIQUE) blending = TRUE var/turf/target_turf = get_turf(target) if(!isturf(target_turf)) diff --git a/code/modules/plumbing/plumbers/_plumb_machinery.dm b/code/modules/plumbing/plumbers/_plumb_machinery.dm index 19bc21239ac4..5a9d9192dbbf 100644 --- a/code/modules/plumbing/plumbers/_plumb_machinery.dm +++ b/code/modules/plumbing/plumbers/_plumb_machinery.dm @@ -26,7 +26,7 @@ . = ..() anchored = bolt create_reagents(buffer, reagent_flags) - AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS, null, CALLBACK(src, .proc/can_be_rotated)) + AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS, null, CALLBACK(src, PROC_REF(can_be_rotated))) /obj/machinery/plumbing/proc/can_be_rotated(mob/user,rotation_type) return !anchored diff --git a/code/modules/plumbing/plumbers/grinder_chemical.dm b/code/modules/plumbing/plumbers/grinder_chemical.dm index 4a9be6160916..e192c54673c7 100644 --- a/code/modules/plumbing/plumbers/grinder_chemical.dm +++ b/code/modules/plumbing/plumbers/grinder_chemical.dm @@ -13,7 +13,7 @@ . = ..() AddComponent(/datum/component/plumbing/simple_supply, bolt) var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered + COMSIG_ATOM_ENTERED = PROC_REF(on_entered) ) AddElement(/datum/element/connect_loc, loc_connections) diff --git a/code/modules/point/point.dm b/code/modules/point/point.dm index 8e311c339fde..e959304efe4f 100644 --- a/code/modules/point/point.dm +++ b/code/modules/point/point.dm @@ -98,10 +98,19 @@ /mob/verb/pointed(atom/A as mob|obj|turf in view()) set name = "Point To" set category = "Object" - if(client && !(A in view(client.view, src))) - return FALSE + if(istype(A, /obj/effect/temp_visual/point)) return FALSE - point_at(A) - SEND_SIGNAL(src, COMSIG_MOB_POINTED, A) + + DEFAULT_QUEUE_OR_CALL_VERB(VERB_CALLBACK(src, PROC_REF(_pointed), A)) + +/// possibly delayed verb that finishes the pointing process starting in [/mob/verb/pointed()]. +/// either called immediately or in the tick after pointed() was called, as per the [DEFAULT_QUEUE_OR_CALL_VERB()] macro +/mob/proc/_pointed(atom/pointing_at) + if(client && !(pointing_at in view(client.view, src))) + return FALSE + + point_at(pointing_at) + + SEND_SIGNAL(src, COMSIG_MOB_POINTED, pointing_at) return TRUE diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index f8156a97a5d4..ec83de125baa 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -243,7 +243,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) name = "\improper [get_area_name(area, TRUE)] APC" set_machine_stat(machine_stat | MAINT) update_appearance() - addtimer(CALLBACK(src, .proc/update), 5) + addtimer(CALLBACK(src, PROC_REF(update)), 5) /obj/machinery/power/apc/Destroy() GLOB.apcs_list -= src @@ -307,7 +307,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) make_terminal() - addtimer(CALLBACK(src, .proc/update), 5) + addtimer(CALLBACK(src, PROC_REF(update)), 5) /obj/machinery/power/apc/examine(mob/user) . = ..() @@ -1083,7 +1083,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) for(var/obj/machinery/light/L in area) if(!initial(L.no_emergency)) //If there was an override set on creation, keep that override L.no_emergency = emergency_lights - INVOKE_ASYNC(L, /obj/machinery/light/.proc/update, FALSE) + INVOKE_ASYNC(L, TYPE_PROC_REF(/obj/machinery/light, update), FALSE) CHECK_TICK return 1 @@ -1106,7 +1106,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) return to_chat(malf, "Beginning override of APC systems. This takes some time, and you cannot perform other actions during the process.") malf.malfhack = src - malf.malfhacking = addtimer(CALLBACK(malf, /mob/living/silicon/ai/.proc/malfhacked, src), 600, TIMER_STOPPABLE) + malf.malfhacking = addtimer(CALLBACK(malf, TYPE_PROC_REF(/mob/living/silicon/ai, malfhacked), src), 600, TIMER_STOPPABLE) var/atom/movable/screen/alert/hackingapc/A A = malf.throw_alert("hackingapc", /atom/movable/screen/alert/hackingapc) @@ -1129,7 +1129,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) to_chat(malf, "Temporarily masking AI subroutines in APC. Expected duration: [duration] seconds") malf.malfhack = src - malf.malfhacking = addtimer(CALLBACK(src, /obj/machinery/power/apc/proc/malfunhidehack, malf), duration, TIMER_STOPPABLE) + malf.malfhacking = addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/machinery/power/apc, malfunhidehack), malf), duration, TIMER_STOPPABLE) var/atom/movable/screen/alert/hackingapc/A A = malf.throw_alert("hackingapc", /atom/movable/screen/alert/hackingapc) @@ -1146,7 +1146,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) malf.clear_alert("hackingapc") malfhackhide = -1 - malfhackhidecooldown = addtimer(CALLBACK(src, /obj/machinery/power/apc/proc/malfhiderestore, malf), 600, TIMER_STOPPABLE) + malfhackhidecooldown = addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/machinery/power/apc, malfhiderestore), malf), 600, TIMER_STOPPABLE) /obj/machinery/power/apc/proc/malfhiderestore(mob/living/silicon/ai/malf) if(src.machine_stat & BROKEN) @@ -1494,7 +1494,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) environ = APC_CHANNEL_OFF update_appearance() update() - addtimer(CALLBACK(src, .proc/reset, APC_RESET_EMP), 600) + addtimer(CALLBACK(src, PROC_REF(reset), APC_RESET_EMP), 600) /obj/machinery/power/apc/blob_act(obj/structure/blob/B) set_broken() @@ -1520,7 +1520,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) return if(cell && cell.charge>=20) cell.use(20) - INVOKE_ASYNC(src, .proc/break_lights) + INVOKE_ASYNC(src, PROC_REF(break_lights)) /obj/machinery/power/apc/proc/break_lights() for(var/obj/machinery/light/L in area) diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index cec3440d1319..3f85acdddfe6 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -457,7 +457,7 @@ GLOBAL_LIST_INIT(cable_colors, list( moveToNullspace() powernet.remove_cable(src) //remove the cut cable from its powernet - addtimer(CALLBACK(O, .proc/auto_propogate_cut_cable, O), 0) //so we don't rebuild the network X times when singulo/explosion destroys a line of X cables + addtimer(CALLBACK(O, PROC_REF(auto_propogate_cut_cable), O), 0) //so we don't rebuild the network X times when singulo/explosion destroys a line of X cables // Disconnect machines connected to nodes if(d1 == 0) // if we cut a node (O-X) cable diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index 66f1f74f11c1..0f84b5571382 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -412,7 +412,7 @@ maxcharge = 10000 custom_materials = list(/datum/material/glass=60) chargerate = 1500 - rating = 0 //gun batteries now incompatible with RPED WS edit + rating = 0 //Makes it incompatible with RPED /obj/item/stock_parts/cell/gun/empty/Initialize() . = ..() @@ -476,6 +476,19 @@ charge = 0 update_appearance() +/obj/item/stock_parts/cell/gun/kalix + name = "Etherbor EWC-5" + desc = "Brought to you by Etherbor Industries, proudly based within the PGF, is the EWC-5, an energy cell compatible with any Etherbor Industries energy weapons." + icon_state = "kalix-cell" + maxcharge = 12750 // 15 shots at 850 energy per + chargerate = 1750 + +/obj/item/stock_parts/cell/gun/pgf + name = "Etherbor EWC-6m" + desc = "Exclusive only to the PGF military, the EWC-6m is an Etherbor energy weapon cell designed for military-grade use, including expanded capacity and output." + icon_state = "pgf-cell" + maxcharge = 20000 // 20 shots at 1000 energy per + chargerate = 2000 #undef CELL_DRAIN_TIME #undef CELL_POWER_GAIN diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 7f2f3c3efbe9..24b106f0241f 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -357,7 +357,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/light/small/built, 28) brightness = 4 if(prob(5)) break_light_tube(1) - addtimer(CALLBACK(src, .proc/update, 0), 1) + addtimer(CALLBACK(src, PROC_REF(update), 0), 1) /obj/machinery/light/Destroy() var/area/A = get_area(src) @@ -451,7 +451,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/light/small/built, 28) if(!start_only) do_sparks(3, TRUE, src) var/delay = rand(BROKEN_SPARKS_MIN, BROKEN_SPARKS_MAX) - addtimer(CALLBACK(src, .proc/broken_sparks), delay, TIMER_UNIQUE | TIMER_NO_HASH_WAIT) + addtimer(CALLBACK(src, PROC_REF(broken_sparks)), delay, TIMER_UNIQUE | TIMER_NO_HASH_WAIT) /obj/machinery/light/process() if (!cell) @@ -877,7 +877,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/light/small/built, 28) . = ..() update() var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered + COMSIG_ATOM_ENTERED = PROC_REF(on_entered) ) AddElement(/datum/element/connect_loc, loc_connections) diff --git a/code/modules/power/multiz.dm b/code/modules/power/multiz.dm index 2ce27c356cfd..b98f107055cb 100644 --- a/code/modules/power/multiz.dm +++ b/code/modules/power/multiz.dm @@ -110,7 +110,7 @@ /obj/machinery/power/deck_relay/Initialize() . = ..() - addtimer(CALLBACK(src, .proc/find_relays), 30) + addtimer(CALLBACK(src, PROC_REF(find_relays)), 30) ///Handles re-acquiring + merging powernets found by find_relays() /obj/machinery/power/deck_relay/proc/refresh() @@ -152,5 +152,5 @@ above.below = src if(below) below.above = src - addtimer(CALLBACK(src, .proc/refresh), 20) //Wait a bit so we can find the one below, then get powering + addtimer(CALLBACK(src, PROC_REF(refresh)), 20) //Wait a bit so we can find the one below, then get powering return TRUE diff --git a/code/modules/power/rtg.dm b/code/modules/power/rtg.dm index b5c2a2a35b89..1645afe9832b 100644 --- a/code/modules/power/rtg.dm +++ b/code/modules/power/rtg.dm @@ -76,7 +76,7 @@ "You hear a loud electrical crack!") playsound(src.loc, 'sound/magic/lightningshock.ogg', 100, TRUE, extrarange = 5) tesla_zap(src, 5, power_gen * 0.05) - addtimer(CALLBACK(GLOBAL_PROC, .proc/explosion, get_turf(src), 2, 3, 4, 8), 100) // Not a normal explosion. + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(explosion), get_turf(src), 2, 3, 4, 8), 100) // Not a normal explosion. /obj/machinery/power/rtg/abductor/bullet_act(obj/projectile/Proj) . = ..() diff --git a/code/modules/power/singularity/boh_tear.dm b/code/modules/power/singularity/boh_tear.dm index a0a90a4a1045..7d870f8523c8 100644 --- a/code/modules/power/singularity/boh_tear.dm +++ b/code/modules/power/singularity/boh_tear.dm @@ -45,4 +45,4 @@ to_chat(user, "You don't feel like you are real anymore.") user.dust_animation() user.spawn_dust() - addtimer(CALLBACK(src, .proc/consume, user), 5) + addtimer(CALLBACK(src, PROC_REF(consume), user), 5) diff --git a/code/modules/power/singularity/containment_field.dm b/code/modules/power/singularity/containment_field.dm index 289c43c3e3bc..77c400ae2b07 100644 --- a/code/modules/power/singularity/containment_field.dm +++ b/code/modules/power/singularity/containment_field.dm @@ -22,7 +22,7 @@ air_update_turf(TRUE) var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered + COMSIG_ATOM_ENTERED = PROC_REF(on_entered) ) AddElement(/datum/element/connect_loc, loc_connections) @@ -149,4 +149,4 @@ do_sparks(5, TRUE, AM.loc) var/atom/target = get_edge_target_turf(AM, get_dir(src, get_step_away(AM, src))) AM.throw_at(target, 200, 4) - addtimer(CALLBACK(src, .proc/clear_shock), 5) + addtimer(CALLBACK(src, PROC_REF(clear_shock)), 5) diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index 05bd1e648032..0a38f45c49ad 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -113,7 +113,7 @@ /obj/machinery/power/emitter/ComponentInitialize() . = ..() - AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS, null, CALLBACK(src, .proc/can_be_rotated)) + AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS, null, CALLBACK(src, PROC_REF(can_be_rotated))) /obj/machinery/power/emitter/proc/can_be_rotated(mob/user,rotation_type) if (anchored) diff --git a/code/modules/power/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm index d11479a5ac74..d3e7a31d4cb9 100644 --- a/code/modules/power/singularity/field_generator.dm +++ b/code/modules/power/singularity/field_generator.dm @@ -193,8 +193,8 @@ field_generator power level display active = FG_OFFLINE CanAtmosPass = ATMOS_PASS_YES air_update_turf(TRUE) - INVOKE_ASYNC(src, .proc/cleanup) - addtimer(CALLBACK(src, .proc/cool_down), 50) + INVOKE_ASYNC(src, PROC_REF(cleanup)) + addtimer(CALLBACK(src, PROC_REF(cool_down)), 50) /obj/machinery/field/generator/proc/cool_down() if(active || warming_up <= 0) @@ -202,11 +202,11 @@ field_generator power level display warming_up-- update_appearance() if(warming_up > 0) - addtimer(CALLBACK(src, .proc/cool_down), 50) + addtimer(CALLBACK(src, PROC_REF(cool_down)), 50) /obj/machinery/field/generator/proc/turn_on() active = FG_CHARGING - addtimer(CALLBACK(src, .proc/warm_up), 50) + addtimer(CALLBACK(src, PROC_REF(warm_up)), 50) /obj/machinery/field/generator/proc/warm_up() if(!active) @@ -216,7 +216,7 @@ field_generator power level display if(warming_up >= 3) start_fields() else - addtimer(CALLBACK(src, .proc/warm_up), 50) + addtimer(CALLBACK(src, PROC_REF(warm_up)), 50) /obj/machinery/field/generator/proc/calc_power(set_power_draw) var/power_draw = 2 + fields.len @@ -271,10 +271,10 @@ field_generator power level display move_resist = INFINITY CanAtmosPass = ATMOS_PASS_NO air_update_turf(TRUE) - addtimer(CALLBACK(src, .proc/setup_field, 1), 1) - addtimer(CALLBACK(src, .proc/setup_field, 2), 2) - addtimer(CALLBACK(src, .proc/setup_field, 4), 3) - addtimer(CALLBACK(src, .proc/setup_field, 8), 4) + addtimer(CALLBACK(src, PROC_REF(setup_field), 1), 1) + addtimer(CALLBACK(src, PROC_REF(setup_field), 2), 2) + addtimer(CALLBACK(src, PROC_REF(setup_field), 4), 3) + addtimer(CALLBACK(src, PROC_REF(setup_field), 8), 4) addtimer(VARSET_CALLBACK(src, active, FG_ONLINE), 5) /obj/machinery/field/generator/proc/setup_field(NSEW) @@ -348,7 +348,7 @@ field_generator power level display //This is here to help fight the "hurr durr, release singulo cos nobody will notice before the //singulo eats the evidence". It's not fool-proof but better than nothing. //I want to avoid using global variables. - INVOKE_ASYNC(src, .proc/notify_admins) + INVOKE_ASYNC(src, PROC_REF(notify_admins)) move_resist = initial(move_resist) diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm index ee61bccbad51..81f12838c0d3 100644 --- a/code/modules/power/singularity/narsie.dm +++ b/code/modules/power/singularity/narsie.dm @@ -68,7 +68,7 @@ if(player.stat != DEAD && player.loc && !iscultist(player) && !isanimal(player)) souls_needed[player] = TRUE soul_goal = round(1 + LAZYLEN(souls_needed) * 0.75) - INVOKE_ASYNC(GLOBAL_PROC, .proc/begin_the_end) + INVOKE_ASYNC(GLOBAL_PROC, PROC_REF(begin_the_end)) /proc/begin_the_end() SSredbot.send_discord_message("admin","Nar'sie has been summoned.","round ending event") @@ -77,7 +77,7 @@ priority_announce("Status report? We detected a anomaly, but it disappeared almost immediately.","Central Command Higher Dimensional Affairs", 'sound/misc/notice1.ogg') GLOB.cult_narsie = null sleep(20) - INVOKE_ASYNC(GLOBAL_PROC, .proc/cult_ending_helper, 2) + INVOKE_ASYNC(GLOBAL_PROC, PROC_REF(cult_ending_helper), 2) return priority_announce("An acausal dimensional event has been detected in your sector. Event has been flagged EXTINCTION-CLASS. Directing all available assets toward simulating solutions. SOLUTION ETA: 60 SECONDS.","Central Command Higher Dimensional Affairs", 'sound/misc/airraid.ogg') sleep(500) @@ -85,7 +85,7 @@ priority_announce("Simulations aborted, sensors report that the acasual event is normalizing. Good work, crew.","Central Command Higher Dimensional Affairs", 'sound/misc/notice1.ogg') GLOB.cult_narsie = null sleep(20) - INVOKE_ASYNC(GLOBAL_PROC, .proc/cult_ending_helper, 2) + INVOKE_ASYNC(GLOBAL_PROC, PROC_REF(cult_ending_helper), 2) return priority_announce("Simulations on acausal dimensional event complete. Deploying solution package now. Deployment ETA: ONE MINUTE. ","Central Command Higher Dimensional Affairs") sleep(50) @@ -98,12 +98,12 @@ sleep(20) set_security_level("red") SSshuttle.lockdown = FALSE - INVOKE_ASYNC(GLOBAL_PROC, .proc/cult_ending_helper, 2) + INVOKE_ASYNC(GLOBAL_PROC, PROC_REF(cult_ending_helper), 2) return if(GLOB.cult_narsie.resolved == FALSE) GLOB.cult_narsie.resolved = TRUE sound_to_playing_players('sound/machines/alarm.ogg') - addtimer(CALLBACK(GLOBAL_PROC, .proc/cult_ending_helper), 120) + addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(cult_ending_helper)), 120) /obj/singularity/narsie/large/cult/Destroy() send_to_playing_players("\"[pick("Nooooo...", "Not die. How-", "Die. Mort-", "Sas tyen re-")]\"") @@ -125,11 +125,11 @@ /proc/cult_ending_helper(ending_type = 0) if(ending_type == 2) //narsie fukkin died - Cinematic(CINEMATIC_CULT_FAIL,world,CALLBACK(GLOBAL_PROC,/proc/ending_helper)) + Cinematic(CINEMATIC_CULT_FAIL,world,CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(ending_helper))) else if(ending_type) //no explosion - Cinematic(CINEMATIC_CULT,world,CALLBACK(GLOBAL_PROC,/proc/ending_helper)) + Cinematic(CINEMATIC_CULT,world,CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(ending_helper))) else // explosion - Cinematic(CINEMATIC_CULT_NUKE,world,CALLBACK(GLOBAL_PROC,/proc/ending_helper)) + Cinematic(CINEMATIC_CULT_NUKE,world,CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(ending_helper))) //ATTACK GHOST IGNORING PARENT RETURN VALUE /obj/singularity/narsie/large/attack_ghost(mob/dead/observer/user as mob) @@ -230,7 +230,7 @@ setDir(SOUTH) move_self = FALSE flick("narsie_spawn_anim",src) - addtimer(CALLBACK(src, .proc/narsie_spawn_animation_end), 3.5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(narsie_spawn_animation_end)), 3.5 SECONDS) /obj/singularity/narsie/proc/narsie_spawn_animation_end() move_self = TRUE diff --git a/code/modules/power/singularity/particle_accelerator/particle.dm b/code/modules/power/singularity/particle_accelerator/particle.dm index 01e4d0324857..b593d3f546bb 100644 --- a/code/modules/power/singularity/particle_accelerator/particle.dm +++ b/code/modules/power/singularity/particle_accelerator/particle.dm @@ -23,10 +23,10 @@ /obj/effect/accelerated_particle/Initialize() . = ..() - addtimer(CALLBACK(src, .proc/move), 1) + addtimer(CALLBACK(src, PROC_REF(move)), 1) var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered + COMSIG_ATOM_ENTERED = PROC_REF(on_entered) ) AddElement(/datum/element/connect_loc, loc_connections) diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index d14bacdf0a0e..93ed8a5d606d 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -45,9 +45,9 @@ target = singubeacon break AddElement(/datum/element/bsa_blocker) - RegisterSignal(src, COMSIG_ATOM_BSA_BEAM, .proc/bluespace_reaction) + RegisterSignal(src, COMSIG_ATOM_BSA_BEAM, PROC_REF(bluespace_reaction)) var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered + COMSIG_ATOM_ENTERED = PROC_REF(on_entered) ) AddElement(/datum/element/connect_loc, loc_connections) @@ -480,7 +480,7 @@ /obj/singularity/deadchat_controlled/Initialize(mapload, starting_energy) . = ..() AddComponent(/datum/component/deadchat_control, DEMOCRACY_MODE, list( - "up" = CALLBACK(GLOBAL_PROC, .proc/_step, src, NORTH), - "down" = CALLBACK(GLOBAL_PROC, .proc/_step, src, SOUTH), - "left" = CALLBACK(GLOBAL_PROC, .proc/_step, src, WEST), - "right" = CALLBACK(GLOBAL_PROC, .proc/_step, src, EAST))) + "up" = CALLBACK(GLOBAL_PROC, PROC_REF(_step), src, NORTH), + "down" = CALLBACK(GLOBAL_PROC, PROC_REF(_step), src, SOUTH), + "left" = CALLBACK(GLOBAL_PROC, PROC_REF(_step), src, WEST), + "right" = CALLBACK(GLOBAL_PROC, PROC_REF(_step), src, EAST))) diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index dfe24e46cb5b..6068b8725f10 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -440,7 +440,7 @@ . = ..() if(. & EMP_PROTECT_SELF) return - emp_timer = addtimer(CALLBACK(src, .proc/emp_end, output_attempt), SMESEMPTIME, TIMER_UNIQUE | TIMER_OVERRIDE) + emp_timer = addtimer(CALLBACK(src, PROC_REF(emp_end), output_attempt), SMESEMPTIME, TIMER_UNIQUE | TIMER_OVERRIDE) is_emped = TRUE input_attempt = rand(0,1) inputting = input_attempt diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm index b35974b8b930..8ca409051d6c 100644 --- a/code/modules/power/solar.dm +++ b/code/modules/power/solar.dm @@ -33,7 +33,7 @@ panel.layer = FLY_LAYER Make(S) connect_to_network() - RegisterSignal(SSsun, COMSIG_SUN_MOVED, .proc/queue_update_solar_exposure) + RegisterSignal(SSsun, COMSIG_SUN_MOVED, PROC_REF(queue_update_solar_exposure)) /obj/machinery/power/solar/Destroy() UnregisterSignal(SSsun, COMSIG_SUN_MOVED) @@ -343,7 +343,7 @@ /obj/machinery/power/solar_control/Initialize() . = ..() azimuth_rate = SSsun.base_rotation - RegisterSignal(SSsun, COMSIG_SUN_MOVED, .proc/timed_track) + RegisterSignal(SSsun, COMSIG_SUN_MOVED, PROC_REF(timed_track)) connect_to_network() if(powernet) set_panels(azimuth_target) diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index f34a268738d5..5593744219d0 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -285,7 +285,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) GLOB.main_supermatter_engine = src AddElement(/datum/element/bsa_blocker) - RegisterSignal(src, COMSIG_ATOM_BSA_BEAM, .proc/call_explode) + RegisterSignal(src, COMSIG_ATOM_BSA_BEAM, PROC_REF(call_explode)) soundloop = new(list(src), TRUE) @@ -1111,7 +1111,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) else if(isliving(target))//If we got a fleshbag on our hands var/mob/living/creature = target creature.set_shocked() - addtimer(CALLBACK(creature, /mob/living/proc/reset_shocked), 10) + addtimer(CALLBACK(creature, TYPE_PROC_REF(/mob/living, reset_shocked)), 10) //3 shots a human with no resistance. 2 to crit, one to death. This is at at least 10000 power. //There's no increase after that because the input power is effectivly capped at 10k //Does 1.5 damage at the least diff --git a/code/modules/power/tesla/coil.dm b/code/modules/power/tesla/coil.dm index f7ae1b53bb98..82372d221baf 100644 --- a/code/modules/power/tesla/coil.dm +++ b/code/modules/power/tesla/coil.dm @@ -101,7 +101,7 @@ D.adjust_money(min(power_produced, 1)) if(istype(linked_techweb) && (zap_flags & ZAP_GIVES_RESEARCH) && can_generate_research) linked_techweb.add_point_type(TECHWEB_POINT_TYPE_DEFAULT, min(power_produced, 3)) // x4 coils = 12 points a shock for RND, if they even bothered to link the server. - addtimer(CALLBACK(src, .proc/reset_shocked), 10) + addtimer(CALLBACK(src, PROC_REF(reset_shocked)), 10) zap_buckle_check(power) playsound(src.loc, 'sound/magic/lightningshock.ogg', 100, TRUE, extrarange = 5) return power_produced @@ -140,7 +140,7 @@ D.adjust_money(min(power_produced, 12)) if(istype(linked_techweb) && (zap_flags & ZAP_GIVES_RESEARCH)) linked_techweb.add_point_type(TECHWEB_POINT_TYPE_DEFAULT, min(power_produced, 25)) // x4 coils = 100 points per shock, which is a good reward for building a research tesla or electrical storm harvest ship - addtimer(CALLBACK(src, .proc/reset_shocked), 10) + addtimer(CALLBACK(src, PROC_REF(reset_shocked)), 10) zap_buckle_check(power) playsound(src.loc, 'sound/magic/lightningshock.ogg', 100, TRUE, extrarange = 5) return power_produced diff --git a/code/modules/power/tesla/energy_ball.dm b/code/modules/power/tesla/energy_ball.dm index 88762101c32f..fbece73764a4 100644 --- a/code/modules/power/tesla/energy_ball.dm +++ b/code/modules/power/tesla/energy_ball.dm @@ -107,7 +107,7 @@ energy_to_raise = energy_to_raise * 1.25 playsound(src.loc, 'sound/magic/lightning_chargeup.ogg', 100, TRUE, extrarange = 30) - addtimer(CALLBACK(src, .proc/new_mini_ball), 100) + addtimer(CALLBACK(src, PROC_REF(new_mini_ball)), 100) else if(energy < energy_to_lower && orbiting_balls.len) energy_to_raise = energy_to_raise / 1.25 @@ -313,7 +313,7 @@ if(closest_type == LIVING) var/mob/living/closest_mob = closest_atom closest_mob.set_shocked() - addtimer(CALLBACK(closest_mob, /mob/living/proc/reset_shocked), 10) + addtimer(CALLBACK(closest_mob, TYPE_PROC_REF(/mob/living, reset_shocked)), 10) var/shock_damage = (zap_flags & ZAP_MOB_DAMAGE) ? (min(round(power/600), 90) + rand(-5, 5)) : 0 closest_mob.electrocute_act(shock_damage, source, 1, SHOCK_TESLA | ((zap_flags & ZAP_MOB_STUN) ? NONE : SHOCK_NOSTUN)) if(issilicon(closest_mob)) diff --git a/code/modules/power/tracker.dm b/code/modules/power/tracker.dm index 4b3f9b760fd6..bfd0464f5e13 100644 --- a/code/modules/power/tracker.dm +++ b/code/modules/power/tracker.dm @@ -20,7 +20,7 @@ . = ..() Make(S) connect_to_network() - RegisterSignal(SSsun, COMSIG_SUN_MOVED, .proc/sun_update) + RegisterSignal(SSsun, COMSIG_SUN_MOVED, PROC_REF(sun_update)) /obj/machinery/power/tracker/Destroy() unset_control() //remove from control computer diff --git a/code/modules/projectiles/ammunition/_ammunition.dm b/code/modules/projectiles/ammunition/_ammunition.dm index 6222f147861e..e0b5c0608b9d 100644 --- a/code/modules/projectiles/ammunition/_ammunition.dm +++ b/code/modules/projectiles/ammunition/_ammunition.dm @@ -23,7 +23,7 @@ /// The sound played when this ammo is fired by an energy gun. var/fire_sound = null /// The visual effect that appears when the ammo is fired. - var/firing_effect_type = /obj/effect/temp_visual/dir_setting/firing_effect + var/firing_effect_type /// Enables casing spinning and sizzling after being ejected from a gun. var/heavy_metal = TRUE /// If true, the casing's sprite will automatically be transformed in Initialize(). @@ -36,6 +36,8 @@ var/delay = 0 //Delay for energy weapons var/click_cooldown_override = 0 //Override this to make your gun have a faster fire rate, in tenths of a second. 4 is the default gun cooldown. + var/list/bounce_sfx_override // if true, overrides the bouncing sfx from the turf to this one + /obj/item/ammo_casing/spent name = "spent bullet casing" @@ -104,7 +106,10 @@ update_appearance() SpinAnimation(10, 1) var/turf/T = get_turf(src) + if(bounce_sfx_override) + addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(playsound), src, pick(bounce_sfx_override), 20, 1), bounce_delay) //Soft / non-solid turfs that shouldn't make a sound when a shell casing is ejected over them. + return if(still_warm && T && T.bullet_sizzle) - addtimer(CALLBACK(GLOBAL_PROC, .proc/playsound, src, 'sound/items/welder.ogg', 20, 1), bounce_delay) //If the turf is made of water and the shell casing is still hot, make a sizzling sound when it's ejected. + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), src, 'sound/items/welder.ogg', 20, 1), bounce_delay) //If the turf is made of water and the shell casing is still hot, make a sizzling sound when it's ejected. else if(T && T.bullet_bounce_sound) - addtimer(CALLBACK(GLOBAL_PROC, .proc/playsound, src, T.bullet_bounce_sound, 20, 1), bounce_delay) //Soft / non-solid turfs that shouldn't make a sound when a shell casing is ejected over them. + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), src, pick(T.bullet_bounce_sound), 20, 1), bounce_delay) //Soft / non-solid turfs that shouldn't make a sound when a shell casing is ejected over them. diff --git a/code/modules/projectiles/ammunition/ballistic/pistol.dm b/code/modules/projectiles/ammunition/ballistic/pistol.dm index 15abfdb02e10..b9237ea91b4d 100644 --- a/code/modules/projectiles/ammunition/ballistic/pistol.dm +++ b/code/modules/projectiles/ammunition/ballistic/pistol.dm @@ -127,3 +127,11 @@ name = ".50 AE hollow point bullet casing" desc = "A .50 AE hollow point bullet casing." projectile_type = /obj/projectile/bullet/a50AE/hp + +// .22 LR (Himehabu) +/obj/item/ammo_casing/c22lr + name = ".22 LR bullet casing" + desc = "A .22 LR bullet casing." + projectile_type = /obj/projectile/bullet/c22lr + caliber = "22lr" + diff --git a/code/modules/projectiles/ammunition/ballistic/shotgun.dm b/code/modules/projectiles/ammunition/ballistic/shotgun.dm index 9f74727086e5..b297ee30e776 100644 --- a/code/modules/projectiles/ammunition/ballistic/shotgun.dm +++ b/code/modules/projectiles/ammunition/ballistic/shotgun.dm @@ -9,6 +9,8 @@ custom_materials = list(/datum/material/iron=4000) projectile_type = /obj/projectile/bullet/slug + bounce_sfx_override = 'sound/weapons/gun/general/bulletcasing_shotgun_bounce.ogg' + /obj/item/ammo_casing/shotgun/update_icon_state() icon_state = "[initial(icon_state)][BB ? "" : "-spent"]" return ..() diff --git a/code/modules/projectiles/ammunition/energy/laser.dm b/code/modules/projectiles/ammunition/energy/laser.dm index 05653dab0bd8..ef8d63ff65a8 100644 --- a/code/modules/projectiles/ammunition/energy/laser.dm +++ b/code/modules/projectiles/ammunition/energy/laser.dm @@ -7,7 +7,7 @@ e_cost = 830 select_name = "kill" -/obj/item/ammo_casing/energy/laser/smg //WS edit: fun +/obj/item/ammo_casing/energy/laser/smg projectile_type = /obj/projectile/beam/laser/weak/negative_ap e_cost = 799 //12 shots with a normal power cell, 25 with an upgraded select_name = "kill" @@ -151,4 +151,5 @@ select_name = "kill" projectile_type = /obj/projectile/beam/weak/penetrator variance = 0.8 + delay = 0.5 fire_sound = 'sound/weapons/laser4.ogg' diff --git a/code/modules/projectiles/boxes_magazines/_box_magazine.dm b/code/modules/projectiles/boxes_magazines/_box_magazine.dm index 932c438ff169..c3989e7a4952 100644 --- a/code/modules/projectiles/boxes_magazines/_box_magazine.dm +++ b/code/modules/projectiles/boxes_magazines/_box_magazine.dm @@ -127,7 +127,8 @@ return A.forceMove(drop_location()) - if(!user.is_holding(src) || !user.put_in_hands(A)) //incase they're using TK + var/mob/living/carbon/human/H = user + if(!(user.is_holding(src) || H.l_store == src || H.r_store == src) || !user.put_in_hands(A)) //incase they're using TK A.bounce_away(FALSE, NONE) playsound(src, 'sound/weapons/gun/general/mag_bullet_insert.ogg', 60, TRUE) to_chat(user, "You remove a round from [src]!") @@ -159,6 +160,19 @@ temp_materials[material] = (bullet_cost[material] * stored_ammo.len) + base_cost[material] set_custom_materials(temp_materials) +/obj/item/ammo_box/AltClick(mob/user) + if(ishuman(user)) + var/mob/living/carbon/human/H = user + if((user.is_holding(src) ||H.l_store == src || H.r_store == src) && !(caliber || istype(src, /obj/item/ammo_box/magazine) || instant_load)) //caliber because boxes have none, instant load because speedloaders use the base ammo box type with instant load on, and magazine for the obvious. + attack_self(user) + return + ..() + +/obj/item/ammo_box/examine(mob/user) + . = ..() + if(!(caliber || istype(src, /obj/item/ammo_box/magazine) || instant_load)) + . += "Alt-click on [src] while it in a pocket or your off-hand to take out a round while it is there." + /obj/item/ammo_box/magazine w_class = WEIGHT_CLASS_SMALL //Default magazine weight, only differs for tiny mags and drums diff --git a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm index 0336744ec748..e8c47f60f85b 100644 --- a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm +++ b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm @@ -150,6 +150,7 @@ max_ammo = 22 multiple_sprites = AMMO_BOX_FULL_EMPTY item_flags = NO_MAT_REDEMPTION + instant_load = TRUE // Ammo Boxes @@ -366,3 +367,21 @@ icon_state = "foambox_riot" ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot custom_materials = list(/datum/material/iron = 50000) + +/obj/item/ammo_box/c22lr_box + name = "ammo box (.22 LR)" + desc = "A box of standard .22 LR ammo." + icon_state = "22lrbox" + ammo_type = /obj/item/ammo_casing/c22lr + max_ammo = 75 + +/obj/item/ammo_box/c45_speedloader + name = "speed loader (.45)" + desc = "Designed to quickly reload revolvers." + icon_state = "38" + ammo_type = /obj/item/ammo_casing/c45 + max_ammo = 6 + multiple_sprites = AMMO_BOX_PER_BULLET + custom_materials = list(/datum/material/iron = 15000) + w_class = WEIGHT_CLASS_TINY + instant_load = TRUE diff --git a/code/modules/projectiles/boxes_magazines/external/gauss.dm b/code/modules/projectiles/boxes_magazines/external/gauss.dm index ca497d6560cb..fa3797707ce6 100644 --- a/code/modules/projectiles/boxes_magazines/external/gauss.dm +++ b/code/modules/projectiles/boxes_magazines/external/gauss.dm @@ -9,7 +9,7 @@ /obj/item/ammo_box/magazine/modelh name = "Model H magazine (ferromagnetic slugs)" - desc = "A 10-round magazine for the Model H pistol. Ferromagnetic slugs are slow, but do incredible damage with significant armor penetration." + desc = "A 10-round magazine for the Model H pistol. Ferromagnetic slugs are slow and incredibly powerful bullets, but are easily stopped by even a sliver of armor." icon_state = "smallmagmag" ammo_type = /obj/item/ammo_casing/caseless/gauss/slug caliber = "slug" diff --git a/code/modules/projectiles/boxes_magazines/external/lmg.dm b/code/modules/projectiles/boxes_magazines/external/lmg.dm index 192a9f723857..402db1502853 100644 --- a/code/modules/projectiles/boxes_magazines/external/lmg.dm +++ b/code/modules/projectiles/boxes_magazines/external/lmg.dm @@ -5,7 +5,7 @@ base_icon_state = "a762" ammo_type = /obj/item/ammo_casing/mm712x82 caliber = "7.12x82mm" - max_ammo = 50 + max_ammo = 100 w_class = WEIGHT_CLASS_NORMAL /obj/item/ammo_box/magazine/mm712x82/hollow @@ -30,4 +30,4 @@ /obj/item/ammo_box/magazine/mm712x82/update_icon_state() . = ..() - icon_state = "[base_icon_state]-[round(ammo_count(), 10)]" + icon_state = "[base_icon_state]-[round(ammo_count(), 20)]" diff --git a/code/modules/projectiles/boxes_magazines/external/pistol.dm b/code/modules/projectiles/boxes_magazines/external/pistol.dm index ca4702b641d7..cc92a758eba0 100644 --- a/code/modules/projectiles/boxes_magazines/external/pistol.dm +++ b/code/modules/projectiles/boxes_magazines/external/pistol.dm @@ -136,3 +136,12 @@ caliber = "9mm" max_ammo = 4 custom_materials = list(/datum/material/iron = 20000) + +/obj/item/ammo_box/magazine/m22lr + name = "pistol magazine (.22 LR)" + desc = "A single-stack handgun magazine designed to chamber .22 LR. It's rather tiny, all things considered." + icon_state = "pistol_22lr" + ammo_type = /obj/item/ammo_casing/c22lr + caliber = "22lr" + max_ammo = 10 + w_class = WEIGHT_CLASS_TINY diff --git a/code/modules/projectiles/boxes_magazines/external/rifle.dm b/code/modules/projectiles/boxes_magazines/external/rifle.dm index 86fef186652b..9ae63763593b 100644 --- a/code/modules/projectiles/boxes_magazines/external/rifle.dm +++ b/code/modules/projectiles/boxes_magazines/external/rifle.dm @@ -27,7 +27,7 @@ base_icon_state = "47x33mm" ammo_type = /obj/item/ammo_casing/caseless/c47x33mm caliber = "4.73x33mm caseless" - max_ammo = 50 //brrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr + max_ammo = 100 //brrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr w_class = WEIGHT_CLASS_NORMAL /obj/item/ammo_box/magazine/rifle47x33mm/update_icon_state() @@ -64,7 +64,7 @@ icon_state = "ak47_mag" ammo_type = /obj/item/ammo_casing/a762_39 caliber = "7.62x39mm" - max_ammo = 20 + max_ammo = 30 /obj/item/ammo_box/magazine/ak47/update_icon_state() . = ..() diff --git a/code/modules/projectiles/boxes_magazines/internal/gauss.dm b/code/modules/projectiles/boxes_magazines/internal/gauss.dm index 06527ae49197..6e561f6d26d5 100644 --- a/code/modules/projectiles/boxes_magazines/internal/gauss.dm +++ b/code/modules/projectiles/boxes_magazines/internal/gauss.dm @@ -3,3 +3,4 @@ ammo_type = /obj/item/ammo_casing/caseless/gauss caliber = "pellet" max_ammo = 22 + instant_load = TRUE diff --git a/code/modules/projectiles/boxes_magazines/internal/revolver.dm b/code/modules/projectiles/boxes_magazines/internal/revolver.dm index 13b007e229e0..7715d31b1323 100644 --- a/code/modules/projectiles/boxes_magazines/internal/revolver.dm +++ b/code/modules/projectiles/boxes_magazines/internal/revolver.dm @@ -32,3 +32,10 @@ /obj/item/ammo_box/magazine/internal/cylinder/pepperbox name = "pepperbox revolver cylinder" max_ammo = 5 + +/obj/item/ammo_box/magazine/internal/cylinder/rev45 + name = "cattleman revolver cylinder" + ammo_type = /obj/item/ammo_casing/c45 + caliber = ".45" + max_ammo = 6 + instant_load = TRUE diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index f91fa467cfef..628fd38d2e5e 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -25,28 +25,26 @@ var/vary_fire_sound = TRUE var/fire_sound_volume = 50 var/dry_fire_sound = 'sound/weapons/gun/general/dry_fire.ogg' - var/dry_fire_text = "click" //change this on non-gun things WS Edit - Dry firing + var/dry_fire_text = "click" //change this on non-gun things var/suppressed = null //whether or not a message is displayed when fired var/can_suppress = FALSE var/suppressed_sound = 'sound/weapons/gun/general/heavy_shot_suppressed.ogg' var/suppressed_volume = 60 var/can_unsuppress = TRUE - var/recoil = 0 //boom boom shake the room var/clumsy_check = TRUE var/obj/item/ammo_casing/chambered = null 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_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 + 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 var/weapon_weight = WEAPON_LIGHT var/dual_wield_spread = 24 //additional spread when dual wielding - var/spread = 0 //Spread induced by the gun itself. var/randomspread = 1 //Set to 0 for shotguns. This is used for weapons that don't fire all their bullets at once. - var/projectile_damage_multiplier = 1 //Alters projectile damage multiplicatively based on this value. Use it for "better" or "worse" weapons that use the same ammo. + var/projectile_damage_multiplier = 1 //Alters projectile damage multiplicatively based on this value. Use it for "better" or "worse" weapons that use the same ammo. lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi' @@ -77,14 +75,84 @@ var/pb_knockback = 0 + var/wielded = FALSE // true if the gun is wielded via twohanded component, shouldnt affect anything else + + var/wielded_fully = FALSE // true if the gun is wielded after delay, should affects accuracy + + ///How much the bullet scatters when fired while wielded. + var/spread = 4 + ///How much the bullet scatters when fired while unwielded. + var/spread_unwielded = 12 + + ///Screen shake when the weapon is fired while wielded. + var/recoil = 0 + ///Screen shake when the weapon is fired while unwielded. + var/recoil_unwielded = 0 + ///a multiplier of the duration the recoil takes to go back to normal view, this is (recoil*recoil_backtime_multiplier)+1 + var/recoil_backtime_multiplier = 2 + ///this is how much deviation the gun recoil can have, recoil pushes the screen towards the reverse angle you shot + some deviation which this is the max. + var/recoil_deviation = 22.5 + + ///Slowdown for wielding + var/wield_slowdown = 0.1 + ///How long between wielding and firing in tenths of seconds + var/wield_delay = 0.4 SECONDS + ///Storing value for above + var/wield_time = 0 + + ///Effect for the muzzle flash of the gun. + var/obj/effect/muzzle_flash/muzzle_flash + ///Icon state of the muzzle flash effect. + var/muzzleflash_iconstate + ///Brightness of the muzzle flash effect. + var/muzzle_flash_lum = 3 + ///Color of the muzzle flash effect. + var/muzzle_flash_color = COLOR_VERY_SOFT_YELLOW + + //gun saftey + ///Does this gun have a saftey and thus can toggle it? + var/has_safety = FALSE + ///If the saftey on? If so, we can't fire the weapon + var/safety = FALSE + /obj/item/gun/Initialize() . = ..() + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) if(pin) pin = new pin(src) if(gun_light) alight = new(src) + muzzle_flash = new(src, muzzleflash_iconstate) build_zooming() +/obj/item/gun/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed) + +/// triggered on wield of two handed item +/obj/item/gun/proc/on_wield(obj/item/source, mob/user) + wielded = TRUE + INVOKE_ASYNC(src, .proc.do_wield, user) + +/obj/item/gun/proc/do_wield(mob/user) + user.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/gun, multiplicative_slowdown = wield_slowdown) + wield_time = world.time + wield_delay + if(wield_time > 0) + if(do_mob(user, user, wield_delay, FALSE, TRUE, CALLBACK(src, PROC_REF(is_wielded)), ignore_loc_change = TRUE)) + wielded_fully = TRUE + else + wielded_fully = TRUE + +/obj/item/gun/proc/is_wielded() + return wielded + +/// triggered on unwield of two handed item +/obj/item/gun/proc/on_unwield(obj/item/source, mob/user) + wielded = FALSE + wielded_fully = FALSE + user.remove_movespeed_modifier(/datum/movespeed_modifier/gun) + /obj/item/gun/Destroy() if(isobj(pin)) //Can still be the initial path, then we skip QDEL_NULL(pin) @@ -98,6 +166,8 @@ QDEL_NULL(azoom) if(isatom(suppressed)) //SUPPRESSED IS USED AS BOTH A TRUE/FALSE AND AS A REF, WHAT THE FUCKKKKKKKKKKKKKKKKK QDEL_NULL(suppressed) + if(muzzle_flash) + QDEL_NULL(muzzle_flash) return ..() /obj/item/gun/handle_atom_del(atom/A) @@ -134,6 +204,9 @@ else if(can_bayonet) . += "It has a bayonet lug on it." + if(has_safety) + . += "The safety is [safety ? "ON" : "OFF"]. Ctrl-Click to toggle the safety." + /obj/item/gun/equipped(mob/living/user, slot) . = ..() if(zoomed && user.get_active_held_item() != src) @@ -146,16 +219,28 @@ //check if there's enough ammo/energy/whatever to shoot one time //i.e if clicking would make it shoot /obj/item/gun/proc/can_shoot() + if(safety) + return FALSE return TRUE /obj/item/gun/proc/shoot_with_empty_chamber(mob/living/user as mob|obj) - to_chat(user, "*[dry_fire_text]*") //WS Edit - Dry firing - playsound(src, dry_fire_sound, 30, TRUE) + if(!safety) + to_chat(user, "*[dry_fire_text]*") + playsound(src, dry_fire_sound, 30, TRUE) + return + to_chat(user, "Safeties are active on the [src]! Turn them off to fire!") /obj/item/gun/proc/shoot_live_shot(mob/living/user, pointblank = 0, atom/pbtarget = null, message = 1) - if(recoil) - shake_camera(user, recoil + 1, recoil) + var/actual_angle = get_angle_with_scatter((user || get_turf(src)), pbtarget, rand(-recoil_deviation, recoil_deviation) + 180) + var/muzzle_angle = Get_Angle(get_turf(src), pbtarget) + if(muzzle_flash && !muzzle_flash.applied) + handle_muzzle_flash(user, muzzle_angle) + + if(wielded_fully && recoil) + simulate_recoil(user, recoil, actual_angle) + else if(!wielded_fully && recoil_unwielded) + simulate_recoil(user, recoil_unwielded, actual_angle) if(suppressed) playsound(user, suppressed_sound, suppressed_volume, vary_fire_sound, ignore_walls = FALSE, extrarange = SILENCED_SOUND_EXTRARANGE, falloff_distance = 0) @@ -224,9 +309,8 @@ if(check_botched(user)) return - var/obj/item/bodypart/other_hand = user.has_hand_for_held_index(user.get_inactive_hand_index()) //returns non-disabled inactive hands - if(weapon_weight == WEAPON_HEAVY && (user.get_inactive_held_item() || !other_hand)) - to_chat(user, "You need two hands to fire [src]!") + if(weapon_weight == WEAPON_HEAVY && (!wielded)) + to_chat(user, "You need a more secure grip to fire [src]!") return //DUAL (or more!) WIELDING var/bonus_spread = 0 @@ -239,7 +323,7 @@ else if(G.can_trigger_gun(user)) bonus_spread += dual_wield_spread loop_counter++ - addtimer(CALLBACK(G, /obj/item/gun.proc/process_fire, target, user, TRUE, params, null, bonus_spread), loop_counter) + addtimer(CALLBACK(G, TYPE_PROC_REF(/obj/item/gun, process_fire), target, user, TRUE, params, null, bonus_spread), loop_counter) return process_fire(target, user, TRUE, params, null, bonus_spread) @@ -322,8 +406,12 @@ var/sprd = 0 var/randomized_gun_spread = 0 var/rand_spr = rand() - if(spread) + + if(wielded_fully && spread) randomized_gun_spread = rand(0,spread) + else if(!wielded_fully && spread_unwielded) + randomized_gun_spread = rand(0,spread_unwielded) + if(HAS_TRAIT(user, TRAIT_POOR_AIM)) //nice shootin' tex bonus_spread += 25 var/randomized_bonus_spread = rand(0, bonus_spread) @@ -331,7 +419,7 @@ 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)) + addtimer(CALLBACK(src, PROC_REF(process_burst), user, target, message, params, zone_override, sprd, randomized_gun_spread, randomized_bonus_spread, rand_spr, i), fire_delay * (i - 1)) else if(chambered) 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. @@ -353,8 +441,9 @@ return process_chamber() update_appearance() - semicd = TRUE - addtimer(CALLBACK(src, .proc/reset_semicd), fire_delay) + if(fire_delay) + semicd = TRUE + addtimer(CALLBACK(src, PROC_REF(reset_semicd)), fire_delay) if(user) user.update_inv_hands() @@ -409,6 +498,25 @@ else return ..() +/obj/item/gun/CtrlClick(mob/user) + . = ..() + if(!has_safety) + return + + if(src == !user.get_active_held_item()) + return + + playsound(user, 'sound/weapons/gun/general/selector.ogg', 100, TRUE) + safety = !safety + + user.visible_message( + span_notice("[user] turns the safety on [src] [safety ? "ON" : "OFF"]."), + span_notice("You turn the safety on [src] [safety ? "ON" : "OFF"]."), + vision_distance = COMBAT_MESSAGE_RANGE + ) + update_appearance() + + /obj/item/gun/screwdriver_act(mob/living/user, obj/item/I) . = ..() if(.) @@ -550,7 +658,7 @@ gun_light.update_brightness() to_chat(user, "You toggle the gunlight [gun_light.on ? "on":"off"].") - playsound(user, 'sound/weapons/empty.ogg', 100, TRUE) + playsound(user, gun_light.on ? gun_light.toggle_on_sound : gun_light.toggle_off_sound, 40, TRUE) update_gunlight() /obj/item/gun/proc/update_gunlight() @@ -559,13 +667,19 @@ var/datum/action/A = X A.UpdateButtonIcon() +/obj/item/gun/attack_hand(mob/user) + . = ..() + update_appearance() + /obj/item/gun/pickup(mob/user) - ..() + . = ..() + update_appearance() if(azoom) azoom.Grant(user) /obj/item/gun/dropped(mob/user) . = ..() + update_appearance() if(azoom) azoom.Remove(user) if(zoomed) @@ -594,6 +708,15 @@ knife_overlay.pixel_y = knife_y_offset . += knife_overlay + if(ismob(loc) && has_safety) + var/mutable_appearance/safety_overlay + safety_overlay = mutable_appearance('icons/obj/guns/safety.dmi') + if(safety) + safety_overlay.icon_state = "safety-on" + else + safety_overlay.icon_state = "safety-off" + . += safety_overlay + /obj/item/gun/proc/handle_suicide(mob/living/carbon/human/user, mob/living/carbon/human/target, params, bypass_timer) if(!ishuman(user) || !ishuman(target)) return @@ -637,6 +760,111 @@ /obj/item/gun/proc/before_firing(atom/target,mob/user) return +/obj/item/gun/proc/simulate_recoil(mob/living/user, recoil_bonus = 0, firing_angle) + var/total_recoil = recoil_bonus + + var/actual_angle = firing_angle + rand(-recoil_deviation, recoil_deviation) + 180 + if(actual_angle > 360) + actual_angle -= 360 + if(total_recoil > 0) + recoil_camera(user, total_recoil + 1, (total_recoil * recoil_backtime_multiplier)+1, total_recoil, actual_angle) + return TRUE + +/obj/item/gun/proc/handle_muzzle_flash(mob/living/user, firing_angle) + var/atom/movable/flash_loc = user + var/prev_light = light_range + if(!light_on && (light_range <= muzzle_flash_lum)) + set_light_range(muzzle_flash_lum) + set_light_color(muzzle_flash_color) + set_light_on(TRUE) + update_light() + addtimer(CALLBACK(src, PROC_REF(reset_light_range), prev_light), 1 SECONDS) + //Offset the pixels. + switch(firing_angle) + if(0, 360) + muzzle_flash.pixel_x = 0 + muzzle_flash.pixel_y = 8 + muzzle_flash.layer = initial(muzzle_flash.layer) + if(1 to 44) + muzzle_flash.pixel_x = round(4 * ((firing_angle) / 45)) + muzzle_flash.pixel_y = 8 + muzzle_flash.layer = initial(muzzle_flash.layer) + if(45) + muzzle_flash.pixel_x = 8 + muzzle_flash.pixel_y = 8 + muzzle_flash.layer = initial(muzzle_flash.layer) + if(46 to 89) + muzzle_flash.pixel_x = 8 + muzzle_flash.pixel_y = round(4 * ((90 - firing_angle) / 45)) + muzzle_flash.layer = initial(muzzle_flash.layer) + if(90) + muzzle_flash.pixel_x = 8 + muzzle_flash.pixel_y = 0 + muzzle_flash.layer = initial(muzzle_flash.layer) + if(91 to 134) + muzzle_flash.pixel_x = 8 + muzzle_flash.pixel_y = round(-3 * ((firing_angle - 90) / 45)) + muzzle_flash.layer = initial(muzzle_flash.layer) + if(135) + muzzle_flash.pixel_x = 8 + muzzle_flash.pixel_y = -6 + muzzle_flash.layer = initial(muzzle_flash.layer) + if(136 to 179) + muzzle_flash.pixel_x = round(4 * ((180 - firing_angle) / 45)) + muzzle_flash.pixel_y = -6 + muzzle_flash.layer = ABOVE_MOB_LAYER + if(180) + muzzle_flash.pixel_x = 0 + muzzle_flash.pixel_y = -6 + muzzle_flash.layer = ABOVE_MOB_LAYER + if(181 to 224) + muzzle_flash.pixel_x = round(-6 * ((firing_angle - 180) / 45)) + muzzle_flash.pixel_y = -6 + muzzle_flash.layer = ABOVE_MOB_LAYER + if(225) + muzzle_flash.pixel_x = -6 + muzzle_flash.pixel_y = -6 + muzzle_flash.layer = initial(muzzle_flash.layer) + if(226 to 269) + muzzle_flash.pixel_x = -6 + muzzle_flash.pixel_y = round(-6 * ((270 - firing_angle) / 45)) + muzzle_flash.layer = initial(muzzle_flash.layer) + if(270) + muzzle_flash.pixel_x = -6 + muzzle_flash.pixel_y = 0 + muzzle_flash.layer = initial(muzzle_flash.layer) + if(271 to 314) + muzzle_flash.pixel_x = -6 + muzzle_flash.pixel_y = round(8 * ((firing_angle - 270) / 45)) + muzzle_flash.layer = initial(muzzle_flash.layer) + if(315) + muzzle_flash.pixel_x = -6 + muzzle_flash.pixel_y = 8 + muzzle_flash.layer = initial(muzzle_flash.layer) + if(316 to 359) + muzzle_flash.pixel_x = round(-6 * ((360 - firing_angle) / 45)) + muzzle_flash.pixel_y = 8 + muzzle_flash.layer = initial(muzzle_flash.layer) + + muzzle_flash.transform = null + muzzle_flash.transform = turn(muzzle_flash.transform, firing_angle) + flash_loc.vis_contents += muzzle_flash + muzzle_flash.applied = TRUE + + addtimer(CALLBACK(src, PROC_REF(remove_muzzle_flash), flash_loc, muzzle_flash), 0.2 SECONDS) + +/obj/item/gun/proc/reset_light_range(lightrange) + set_light_range(lightrange) + set_light_color(initial(light_color)) + if(lightrange <= 0) + set_light_on(FALSE) + update_light() + +/obj/item/gun/proc/remove_muzzle_flash(atom/movable/flash_loc, obj/effect/muzzle_flash/muzzle_flash) + if(!QDELETED(flash_loc)) + flash_loc.vis_contents -= muzzle_flash + muzzle_flash.applied = FALSE + ///////////// // ZOOMING // ///////////// @@ -677,7 +905,7 @@ zoomed = forced_zoom if(zoomed) - RegisterSignal(user, COMSIG_ATOM_DIR_CHANGE, .proc/rotate) + RegisterSignal(user, COMSIG_ATOM_DIR_CHANGE, PROC_REF(rotate)) user.client.view_size.zoomOut(zoom_out_amt, zoom_amt, direc) else UnregisterSignal(user, COMSIG_ATOM_DIR_CHANGE) diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm index 9efbc6169b25..a8e2a201c81a 100644 --- a/code/modules/projectiles/guns/ballistic.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -6,6 +6,9 @@ icon_state = "pistol" w_class = WEIGHT_CLASS_NORMAL + has_safety = TRUE + safety = TRUE + ///sound when inserting magazine var/load_sound = 'sound/weapons/gun/general/magazine_insert_full.ogg' ///sound when inserting an empty magazine @@ -81,12 +84,15 @@ var/rack_delay = 5 ///time of the most recent rack, used for cooldown purposes var/recent_rack = 0 - ///Whether the gun can be tacloaded by slapping a fresh magazine directly on it - var/tac_reloads = TRUE //Snowflake mechanic no more. ///Whether the gun can be sawn off by sawing tools var/can_be_sawn_off = FALSE var/flip_cooldown = 0 + ///Whether the gun can be tacloaded by slapping a fresh magazine directly on it + var/tac_reloads = TRUE //Snowflake mechanic no more. + ///If we have the 'snowflake mechanic,' how long should it take to reload? + var/tactical_reload_delay = 1 SECONDS + /obj/item/gun/ballistic/Initialize() . = ..() if (!spawnwithmagazine) @@ -220,21 +226,27 @@ playsound(src, eject_empty_sound, eject_sound_volume, eject_sound_vary) magazine.forceMove(drop_location()) var/obj/item/ammo_box/magazine/old_mag = magazine - if (tac_load) - if (insert_magazine(user, tac_load, FALSE)) - to_chat(user, "You perform a tactical reload on \the [src].") - else - to_chat(user, "You dropped the old [magazine_wording], but the new one doesn't fit. How embarassing.") - magazine = null - else - magazine = null - user.put_in_hands(old_mag) old_mag.update_appearance() + magazine = null if (display_message) to_chat(user, "You pull the [magazine_wording] out of \the [src].") update_appearance() + if (tac_load) + if(do_after(user, tactical_reload_delay, TRUE, src)) + if (insert_magazine(user, tac_load, FALSE)) + to_chat(user, "You perform a tactical reload on \the [src].") + else + to_chat(user, "You dropped the old [magazine_wording], but the new one doesn't fit. How embarassing.") + else + to_chat(user, "Your reload was interupted!") + return + + user.put_in_hands(old_mag) + update_appearance() /obj/item/gun/ballistic/can_shoot() + if(safety) + return FALSE return chambered /obj/item/gun/ballistic/attackby(obj/item/A, mob/user, params) @@ -342,7 +354,7 @@ return return ..() -/obj/item/gun/ballistic/attack_self(mob/living/user) +/obj/item/gun/ballistic/unique_action(mob/living/user) if(HAS_TRAIT(user, TRAIT_GUNFLIP)) if(flip_cooldown <= world.time) if(HAS_TRAIT(user, TRAIT_CLUMSY) && prob(40)) @@ -352,13 +364,10 @@ user.dropItemToGround(src, TRUE) return flip_cooldown = (world.time + 30) + SpinAnimation(7,1) user.visible_message("[user] spins the [src] around their finger by the trigger. That’s pretty badass.") playsound(src, 'sound/items/handling/ammobox_pickup.ogg', 20, FALSE) return - if(!internal_magazine && magazine) - if(!magazine.ammo_count()) - eject_magazine(user) - return if(bolt_type == BOLT_TYPE_NO_BOLT) chambered = null var/num_unloaded = 0 diff --git a/code/modules/projectiles/guns/ballistic/assault.dm b/code/modules/projectiles/guns/ballistic/assault.dm index 7ec610bbc33c..5b3ced3e8100 100644 --- a/code/modules/projectiles/guns/ballistic/assault.dm +++ b/code/modules/projectiles/guns/ballistic/assault.dm @@ -1,12 +1,31 @@ /obj/item/gun/ballistic/automatic/assault burst_size = 1 actions_types = list() + wield_delay = 0.7 SECONDS + wield_slowdown = 0.6 + + fire_delay = 1 + + load_sound = 'sound/weapons/gun/rifle/ar_reload.ogg' + load_empty_sound = 'sound/weapons/gun/rifle/ar_reload.ogg' + eject_sound = 'sound/weapons/gun/rifle/ar_unload.ogg' + eject_empty_sound = 'sound/weapons/gun/rifle/ar_unload.ogg' + + rack_sound = 'sound/weapons/gun/rifle/ar_cock.ogg' + spread_unwielded = 20 /obj/item/gun/ballistic/automatic/assault/ak47 name = "\improper SVG-67" desc = "A Frontier-built assault rifle descended from a pattern of unknown provenance. Its low cost, ease of maintenance, and powerful 7.62x39mm cartridge make it a popular choice among a wide variety of outlaws." icon = 'icons/obj/guns/48x32guns.dmi' fire_sound = 'sound/weapons/gun/rifle/ak47.ogg' + + rack_sound = 'sound/weapons/gun/rifle/ak47_cocked.ogg' + load_sound = 'sound/weapons/gun/rifle/ak47_reload.ogg' + load_empty_sound = 'sound/weapons/gun/rifle/ak47_reload.ogg' + eject_sound = 'sound/weapons/gun/rifle/ak47_unload.ogg' + eject_empty_sound = 'sound/weapons/gun/rifle/ak47_unload.ogg' + icon_state = "ak47" item_state = "ak47" mag_display = TRUE @@ -14,6 +33,8 @@ w_class = WEIGHT_CLASS_BULKY slot_flags = ITEM_SLOT_BACK mag_type = /obj/item/ammo_box/magazine/ak47 + spread = 0 + wield_delay = 0.7 SECONDS /obj/item/gun/ballistic/automatic/assault/ak47/ComponentInitialize() . = ..() @@ -89,6 +110,13 @@ w_class = WEIGHT_CLASS_BULKY slot_flags = ITEM_SLOT_BACK mag_type = /obj/item/ammo_box/magazine/p16 + spread = 2 + wield_delay = 0.5 SECONDS + rack_sound = 'sound/weapons/gun/rifle/m16_cocked.ogg' + load_sound = 'sound/weapons/gun/rifle/m16_reload.ogg' + load_empty_sound = 'sound/weapons/gun/rifle/m16_reload.ogg' + eject_sound = 'sound/weapons/gun/rifle/m16_unload.ogg' + eject_empty_sound = 'sound/weapons/gun/rifle/m16_unload.ogg' /obj/item/gun/ballistic/automatic/assault/p16/ComponentInitialize() . = ..() @@ -133,6 +161,8 @@ slot_flags = ITEM_SLOT_BACK mag_type = /obj/item/ammo_box/magazine/swiss actions_types = list(/datum/action/item_action/toggle_firemode) + spread = 8 + spread_unwielded = 15 /obj/item/gun/ballistic/automatic/assault/swiss_cheese/ComponentInitialize() . = ..() @@ -157,7 +187,7 @@ fire_delay = initial(fire_delay) to_chat(user, "You switch to [burst_size]-rnd Matter.") - playsound(user, 'sound/weapons/empty.ogg', 100, TRUE) + playsound(user, 'sound/weapons/gun/general/selector.ogg', 100, TRUE) update_appearance() for(var/datum/action/action as anything in actions) action.UpdateButtonIcon() diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm index b159376b547b..ed45f24a7625 100644 --- a/code/modules/projectiles/guns/ballistic/automatic.dm +++ b/code/modules/projectiles/guns/ballistic/automatic.dm @@ -14,6 +14,13 @@ weapon_weight = WEAPON_MEDIUM pickup_sound = 'sound/items/handling/rifle_pickup.ogg' + wield_delay = 1 SECONDS + spread = 0 + spread_unwielded = 13 + recoil = 0 + recoil_unwielded = 4 + wield_slowdown = 0.35 + /obj/item/gun/ballistic/automatic/update_overlays() . = ..() if(!select) @@ -39,7 +46,7 @@ fire_delay = initial(fire_delay) to_chat(user, "You switch to [burst_size]-rnd burst.") - playsound(user, 'sound/weapons/empty.ogg', 100, TRUE) + playsound(user, 'sound/weapons/gun/general/selector.ogg', 100, TRUE) update_appearance() for(var/X in actions) var/datum/action/A = X @@ -71,6 +78,13 @@ actions_types = list() mag_display = TRUE + spread = -5 + spread_unwielded = 20 + recoil = 0 + recoil_unwielded = 4 + wield_slowdown = 1 + wield_delay = 1.3 SECONDS + /obj/item/gun/ballistic/automatic/sniper_rifle/syndicate name = "syndicate sniper rifle" desc = "A heavily-modified .50 BMG anti-material rifle utilized by Syndicate agents. Requires both hands to fire." @@ -117,7 +131,6 @@ icon = 'icons/obj/guns/48x32guns.dmi' lefthand_file = 'icons/mob/inhands/weapons/64x_guns_left.dmi' righthand_file = 'icons/mob/inhands/weapons/64x_guns_right.dmi' - fire_sound = 'sound/weapons/gun/rifle/shot.ogg' icon_state = "ebr" item_state = "ebr" mag_display = TRUE @@ -128,6 +141,9 @@ burst_size = 0 actions_types = list() + wield_slowdown = 2 + spread = -4 + /obj/item/gun/ballistic/automatic/gal name = "\improper CM-GAL-S" desc = "The standard issue DMR of the CMM. Dates back to the Xenofauna War, this particular model is in a carbine configuration, and, as such, is shorter than the standard model. Chambered in .308." @@ -143,6 +159,9 @@ burst_size = 0 actions_types = list() + wield_slowdown = 2 + spread = -4 + /obj/item/gun/ballistic/automatic/gal/inteq name = "\improper SsG-04" desc = "A marksman rifle purchased from the Colonial Minutemen and modified to suit IRMG's needs. Chambered in .308." diff --git a/code/modules/projectiles/guns/ballistic/gauss.dm b/code/modules/projectiles/guns/ballistic/gauss.dm index 993c616f885f..32cee65317cf 100644 --- a/code/modules/projectiles/guns/ballistic/gauss.dm +++ b/code/modules/projectiles/guns/ballistic/gauss.dm @@ -18,6 +18,13 @@ charge_sections = 4 ammo_x_offset = 2 + spread = 0 + spread_unwielded = 25 + recoil = 0 + recoil_unwielded = 4 + wield_slowdown = 0.75 + wield_delay = 1 SECONDS + /obj/item/gun/ballistic/automatic/powered/gauss/modelh name = "Model H" desc = "Standard-issue pistol of the Solarian Confederation. Fires slow ferromagnetic slugs at a high energy cost, though they rend flesh with ease." @@ -32,6 +39,11 @@ fire_delay = 0 //pistol mag_display = FALSE empty_indicator = FALSE + recoil = 1 + recoil_unwielded = 2 + spread = 3 + spread_unwielded = 6 + /obj/item/gun/ballistic/automatic/powered/gauss/claris name = "Claris" @@ -65,6 +77,9 @@ actions_types = list() empty_indicator = FALSE + wield_delay = 0.7 SECONDS + fire_delay = 1 + /obj/item/gun/ballistic/automatic/powered/gauss/gar/ComponentInitialize() . = ..() AddComponent(/datum/component/automatic_fire, 0.2 SECONDS) //setiting this to 0.1 breaks auotfire, not sure why, so we use the standard fire rate but in 2 shot bursts to shoot 'faster' diff --git a/code/modules/projectiles/guns/ballistic/hmg.dm b/code/modules/projectiles/guns/ballistic/hmg.dm index dfe8a52cde19..29d4b7914395 100644 --- a/code/modules/projectiles/guns/ballistic/hmg.dm +++ b/code/modules/projectiles/guns/ballistic/hmg.dm @@ -6,6 +6,13 @@ actions_types = list() slowdown = 1 drag_slowdown = 1.5 + fire_delay = 1 + + spread = 2 + spread_unwielded = 80 + recoil = 1 + recoil_unwielded = 4 + wield_slowdown = 4 // L6 SAW // @@ -29,7 +36,7 @@ /obj/item/gun/ballistic/automatic/hmg/l6_saw/ComponentInitialize() . = ..() - AddComponent(/datum/component/automatic_fire, 0.2 SECONDS) + AddComponent(/datum/component/automatic_fire, 0.1 SECONDS) /obj/item/gun/ballistic/automatic/hmg/l6_saw/examine(mob/user) . = ..() @@ -86,4 +93,4 @@ /obj/item/gun/ballistic/automatic/hmg/solar/ComponentInitialize() . = ..() - AddComponent(/datum/component/automatic_fire, 0.2 SECONDS) + AddComponent(/datum/component/automatic_fire, 0.1 SECONDS) diff --git a/code/modules/projectiles/guns/ballistic/launchers.dm b/code/modules/projectiles/guns/ballistic/launchers.dm index 18030833e6cd..eafe30f362a8 100644 --- a/code/modules/projectiles/guns/ballistic/launchers.dm +++ b/code/modules/projectiles/guns/ballistic/launchers.dm @@ -50,6 +50,7 @@ item_state = "rocketlauncher" mag_type = /obj/item/ammo_box/magazine/internal/rocketlauncher fire_sound = 'sound/weapons/gun/general/rocket_launch.ogg' + load_sound = 'sound/weapons/gun/general/rocket_load.ogg' w_class = WEIGHT_CLASS_BULKY can_suppress = FALSE pin = /obj/item/firing_pin diff --git a/code/modules/projectiles/guns/ballistic/pistol.dm b/code/modules/projectiles/guns/ballistic/pistol.dm index d03b3992b741..591bc7eafa3d 100644 --- a/code/modules/projectiles/guns/ballistic/pistol.dm +++ b/code/modules/projectiles/guns/ballistic/pistol.dm @@ -1,21 +1,21 @@ /obj/item/gun/ballistic/automatic/pistol - name = "stechkin pistol" + name = "Stechkin" desc = "A small, easily concealable 10mm handgun that bears Scarborough Arms stamps. Has a threaded barrel for suppressors." icon_state = "pistol" w_class = WEIGHT_CLASS_SMALL mag_type = /obj/item/ammo_box/magazine/m10mm can_suppress = TRUE burst_size = 1 - fire_delay = 0 + fire_delay = 0 //spam it as fast as you can actions_types = list() bolt_type = BOLT_TYPE_LOCKING fire_sound = 'sound/weapons/gun/pistol/shot.ogg' dry_fire_sound = 'sound/weapons/gun/pistol/dry_fire.ogg' suppressed_sound = 'sound/weapons/gun/pistol/shot_suppressed.ogg' - load_sound = 'sound/weapons/gun/pistol/mag_insert.ogg' - load_empty_sound = 'sound/weapons/gun/pistol/mag_insert.ogg' - eject_sound = 'sound/weapons/gun/pistol/mag_release.ogg' - eject_empty_sound = 'sound/weapons/gun/pistol/mag_release.ogg' + load_sound = 'sound/weapons/gun/pistol/mag_insert_alt.ogg' + load_empty_sound = 'sound/weapons/gun/pistol/mag_insert_alt.ogg' + eject_sound = 'sound/weapons/gun/pistol/mag_release_alt.ogg' + eject_empty_sound = 'sound/weapons/gun/pistol/mag_release_alt.ogg' vary_fire_sound = FALSE rack_sound = 'sound/weapons/gun/pistol/rack_small.ogg' lock_back_sound = 'sound/weapons/gun/pistol/lock_small.ogg' @@ -24,7 +24,13 @@ bolt_wording = "slide" weapon_weight = WEAPON_LIGHT pickup_sound = 'sound/items/handling/gun_pickup.ogg' - fire_delay = 1 + + wield_delay = 0.2 SECONDS + spread = -2 + spread_unwielded = 4 + wield_slowdown = 0.15 + + muzzleflash_iconstate = "muzzle_flash_light" /obj/item/gun/ballistic/automatic/pistol/no_mag spawnwithmagazine = FALSE @@ -35,16 +41,21 @@ install_suppressor(S) /obj/item/gun/ballistic/automatic/pistol/m1911 - name = "\improper M1911" + name = "\improper M1911A8" desc = "A classic .45 handgun. An engraving on the slide marks it as a product of Hunter's Pride." icon_state = "m1911" w_class = WEIGHT_CLASS_NORMAL mag_type = /obj/item/ammo_box/magazine/m45 can_suppress = FALSE - fire_sound = 'sound/weapons/gun/pistol/shot.ogg' - rack_sound = 'sound/weapons/gun/pistol/rack.ogg' + fire_sound = 'sound/weapons/gun/pistol/m1911.ogg' + rack_sound = 'sound/weapons/gun/pistol/m1911_cocked.ogg' lock_back_sound = 'sound/weapons/gun/pistol/slide_lock.ogg' bolt_drop_sound = 'sound/weapons/gun/pistol/slide_drop.ogg' + load_sound = 'sound/weapons/gun/pistol/m1911_reload.ogg' + load_empty_sound = 'sound/weapons/gun/pistol/m1911_reload.ogg' + eject_sound = 'sound/weapons/gun/pistol/m1911_unload.ogg' + eject_empty_sound = 'sound/weapons/gun/pistol/m1911_unload.ogg' + recoil = -2 /obj/item/gun/ballistic/automatic/pistol/m1911/no_mag spawnwithmagazine = FALSE @@ -57,10 +68,19 @@ mag_type = /obj/item/ammo_box/magazine/m50 can_suppress = FALSE mag_display = TRUE - fire_sound = 'sound/weapons/gun/rifle/shot_alt.ogg' + fire_sound = 'sound/weapons/gun/pistol/deagle.ogg' rack_sound = 'sound/weapons/gun/pistol/rack.ogg' lock_back_sound = 'sound/weapons/gun/pistol/slide_lock.ogg' bolt_drop_sound = 'sound/weapons/gun/pistol/slide_drop.ogg' + load_sound = 'sound/weapons/gun/pistol/deagle_reload.ogg' + load_empty_sound = 'sound/weapons/gun/pistol/deagle_reload.ogg' + eject_sound = 'sound/weapons/gun/pistol/deagle_unload.ogg' + eject_empty_sound = 'sound/weapons/gun/pistol/deagle_unload.ogg' + fire_delay = 0.7 SECONDS + recoil = 1 + recoil_unwielded = 2 + spread = 4 + spread_unwielded = 7 /obj/item/gun/ballistic/automatic/pistol/deagle/gold desc = "A gold-plated Desert Eagle folded over a million times by superior Martian gunsmiths. Uses .50 AE ammo." @@ -106,6 +126,11 @@ w_class = WEIGHT_CLASS_NORMAL mag_type = /obj/item/ammo_box/magazine/co9mm can_suppress = FALSE + fire_sound = 'sound/weapons/gun/pistol/commander.ogg' + load_sound = 'sound/weapons/gun/pistol/mag_insert.ogg' + load_empty_sound = 'sound/weapons/gun/pistol/mag_insert.ogg' + eject_sound = 'sound/weapons/gun/pistol/mag_release.ogg' + eject_empty_sound = 'sound/weapons/gun/pistol/mag_release.ogg' /obj/item/gun/ballistic/automatic/pistol/commander/no_mag spawnwithmagazine = FALSE @@ -128,6 +153,10 @@ can_suppress = FALSE var/funnysounds = TRUE var/cooldown = 0 + load_sound = 'sound/weapons/gun/pistol/mag_insert.ogg' + load_empty_sound = 'sound/weapons/gun/pistol/mag_insert.ogg' + eject_sound = 'sound/weapons/gun/pistol/mag_release.ogg' + eject_empty_sound = 'sound/weapons/gun/pistol/mag_release.ogg' /obj/item/gun/ballistic/automatic/pistol/commissar/equipped(mob/living/user, slot) ..() @@ -177,6 +206,10 @@ w_class = WEIGHT_CLASS_SMALL mag_type = /obj/item/ammo_box/magazine/pistol556mm fire_sound = 'sound/weapons/gun/pistol/pistolec.ogg' + load_sound = 'sound/weapons/gun/pistol/mag_insert.ogg' + load_empty_sound = 'sound/weapons/gun/pistol/mag_insert.ogg' + eject_sound = 'sound/weapons/gun/pistol/mag_release.ogg' + eject_empty_sound = 'sound/weapons/gun/pistol/mag_release.ogg' /obj/item/gun/ballistic/automatic/pistol/solgov/old icon_state = "pistole-c-old" @@ -189,6 +222,10 @@ w_class = WEIGHT_CLASS_SMALL mag_type = /obj/item/ammo_box/magazine/tec9 mag_display = TRUE + load_sound = 'sound/weapons/gun/pistol/mag_insert.ogg' + load_empty_sound = 'sound/weapons/gun/pistol/mag_insert.ogg' + eject_sound = 'sound/weapons/gun/pistol/mag_release.ogg' + eject_empty_sound = 'sound/weapons/gun/pistol/mag_release.ogg' /obj/item/gun/ballistic/automatic/pistol/disposable name = "disposable gun" @@ -200,6 +237,9 @@ can_suppress = FALSE var/random_icon = TRUE + has_safety = FALSE //thing barely costs anything, why would it have a safety? + safety = FALSE + /obj/item/gun/ballistic/automatic/pistol/disposable/Initialize() . = ..() var/picked = pick("none","red","purple","yellow","green","dark") @@ -265,3 +305,17 @@ desc = "The golden sheen is somewhat counter-intuitive on a holdout weapon, but it looks cool. Uses .357 ammo." icon_state = "derringer_gold" mag_type = /obj/item/ammo_box/magazine/internal/derr357 + +/obj/item/gun/ballistic/automatic/pistol/himehabu + name = "\improper Himehabu" + desc = "A very small .22 LR pistol. The long awaited successor to the Stechkin; It has become a favorite among syndicate spies. Chambered in .22 LR." + icon_state = "himehabu" + w_class = WEIGHT_CLASS_TINY + mag_type = /obj/item/ammo_box/magazine/m22lr + can_suppress = FALSE + fire_sound = 'sound/weapons/gun/pistol/himehabu.ogg' + + recoil = -2 + recoil_unwielded = -2 + spread_unwielded = 0 + wield_slowdown = 0 diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm index b1c70e7a73b6..74c7f95d0db2 100644 --- a/code/modules/projectiles/guns/ballistic/revolver.dm +++ b/code/modules/projectiles/guns/ballistic/revolver.dm @@ -4,6 +4,7 @@ icon_state = "revolver" mag_type = /obj/item/ammo_box/magazine/internal/cylinder fire_sound = 'sound/weapons/gun/revolver/shot.ogg' + rack_sound = 'sound/weapons/gun/revolver/revolver_prime.ogg' load_sound = 'sound/weapons/gun/revolver/load_bullet.ogg' eject_sound = 'sound/weapons/gun/revolver/empty.ogg' vary_fire_sound = FALSE @@ -15,7 +16,53 @@ tac_reloads = FALSE var/spin_delay = 10 var/recent_spin = 0 - fire_delay = 7 + fire_delay = 2 + spread_unwielded = 15 + recoil = 0.5 + recoil_unwielded = 1 + semi_auto = FALSE + bolt_wording = "hammer" + wield_slowdown = 0.3 + + has_safety = FALSE //irl revolvers dont have safetys. i think. maybe + safety = FALSE + +/obj/item/gun/ballistic/revolver/examine(mob/user) + . = ..() + . += "You can use the revolver with your other empty hand to empty the cylinder." + +/obj/item/gun/ballistic/revolver/attack_hand(mob/user) + if(loc == user && user.is_holding(src)) + chambered = null + var/num_unloaded = 0 + for(var/obj/item/ammo_casing/CB in get_ammo_list(FALSE, TRUE)) + CB.forceMove(drop_location()) + CB.bounce_away(FALSE, NONE) + num_unloaded++ + SSblackbox.record_feedback("tally", "station_mess_created", 1, CB.name) + if (num_unloaded) + to_chat(user, "You unload [num_unloaded] [cartridge_wording]\s from [src].") + playsound(user, eject_sound, eject_sound_volume, eject_sound_vary) + update_appearance() + return + else + return ..() + else + return ..() + + +/obj/item/gun/ballistic/revolver/unique_action(mob/living/user) + rack(user) + return + +///updates a bunch of racking related stuff and also handles the sound effects and the like +/obj/item/gun/ballistic/revolver/rack(mob/user = null) + if(user) + to_chat(user, "You rack the [bolt_wording] of \the [src].") + chamber_round(TRUE) + playsound(src, rack_sound, rack_sound_volume, rack_sound_vary) + update_appearance() + /obj/item/gun/ballistic/revolver/chamber_round(spin_cylinder = TRUE) if(spin_cylinder) @@ -23,10 +70,6 @@ else chambered = magazine.stored_ammo[1] -/obj/item/gun/ballistic/revolver/shoot_with_empty_chamber(mob/living/user as mob|obj) - ..() - chamber_round(TRUE) - /obj/item/gun/ballistic/revolver/AltClick(mob/user) ..() spin() @@ -76,7 +119,7 @@ /obj/item/gun/ballistic/revolver/detective name = "\improper Colt Detective Special" desc = "A compact and ridiculously old-fashioned law enforcement firearm. Uses .38 special rounds." - fire_sound = 'sound/weapons/gun/revolver/shot.ogg' + fire_sound = 'sound/weapons/gun/revolver/shot_light.ogg' icon_state = "detective" mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev38 obj_flags = UNIQUE_RENAME @@ -91,6 +134,8 @@ "Black Panther" = "detective_panther" ) + recoil = 0 //weaker than normal revovler, no recoil + /obj/item/gun/ballistic/revolver/detective/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) if(magazine.caliber != initial(magazine.caliber)) if(prob(100 - (magazine.ammo_count() * 5))) //minimum probability of 70, maximum of 95 @@ -140,6 +185,9 @@ name = "\improper Unica 6 auto-revolver" desc = "A high-powered revolver with a unique auto-reloading system. Uses .357 ammo." icon_state = "mateba" + semi_auto = TRUE + spread = 0 + spread_unwielded = 7 /obj/item/gun/ballistic/revolver/golden name = "\improper Golden revolver" @@ -154,6 +202,9 @@ desc = "An ancient model of revolver with notoriously poor ergonomics, chambered in 7.62x38mmR. Uniquely able to be suppressed." icon_state = "nagant" can_suppress = TRUE + spread_unwielded = 12 + recoil = 0 + recoil_unwielded = 0 mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev762 @@ -163,6 +214,12 @@ desc = "A massive, long-barreled revolver designed for the most dangerous game. Can only be reloaded one cartridge at a time due to its reinforced frame. Uses .45-70 ammo." icon_state = "hunting" mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev4570 + fire_sound = 'sound/weapons/gun/revolver/shot_hunting.ogg' + wield_slowdown = 0.5 + spread_unwielded = 5 + spread = 2 + recoil = 2 + recoil_unwielded = 3 // A gun to play Russian Roulette! // You can spin the chamber to randomize the position of the bullet. @@ -277,4 +334,21 @@ icon_state = "pepperbox" mag_type = /obj/item/ammo_box/magazine/internal/cylinder/pepperbox spread = 20 - fire_delay = 4 + spread_unwielded = 50 + fire_delay = 0 + semi_auto = TRUE + +/obj/item/gun/ballistic/revolver/cattleman + name = "\improper Cattleman" + desc = "A strangely ancient revolver. Despite the age, it is a favorite of fast drawing spacers and officers in various militaries, but sometimes very rarely used in small colonial police units. Uses .45 ACP." + fire_sound = 'sound/weapons/gun/revolver/cattleman.ogg' + icon = 'icons/obj/guns/48x32guns.dmi' + icon_state = "cattleman" + mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev45 + obj_flags = UNIQUE_RENAME + unique_reskin = list("Default" = "cattleman", + "Army" = "cattleman_army", + "General" = "cattleman_general" + ) + + recoil = 0 //weaker than normal revovler, no recoil diff --git a/code/modules/projectiles/guns/ballistic/rifle.dm b/code/modules/projectiles/guns/ballistic/rifle.dm index ac80dc47e890..5d29a26a84a8 100644 --- a/code/modules/projectiles/guns/ballistic/rifle.dm +++ b/code/modules/projectiles/guns/ballistic/rifle.dm @@ -17,6 +17,13 @@ weapon_weight = WEAPON_MEDIUM pickup_sound = 'sound/items/handling/rifle_pickup.ogg' + spread = -1 + spread_unwielded = 12 + recoil = -3 + recoil_unwielded = 4 + wield_slowdown = 1 + wield_delay = 1.2 SECONDS + /obj/item/gun/ballistic/rifle/update_overlays() . = ..() . += "[icon_state]_bolt[bolt_locked ? "_locked" : ""]" @@ -89,6 +96,13 @@ fire_sound = 'sound/weapons/gun/rifle/ssg669c.ogg' can_be_sawn_off = FALSE + spread = -5 + spread_unwielded = 20 + recoil = 0 + recoil_unwielded = 4 + wield_slowdown = 1 + wield_delay = 1.3 SECONDS + /obj/item/gun/ballistic/rifle/boltaction/roumain name = "standard-issue 'Smile' rifle" desc = "A bolt-action rifle usually given to mercenary hunters of the Saint-Roumain Militia. Chambered in .300 Magnum." diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index e333122e2e0a..5f9db248d6af 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -27,6 +27,14 @@ fire_delay = 7 pb_knockback = 2 + wield_slowdown = 0.45 + wield_delay = 0.6 SECONDS //Shotguns are really easy to put up to fire, since they are designed for CQC (at least compared to a rifle) + + spread = 4 + spread_unwielded = 10 + recoil = 2 + recoil_unwielded = 4 + /obj/item/gun/ballistic/shotgun/blow_up(mob/user) . = 0 if(chambered && chambered.BB) @@ -41,13 +49,34 @@ /obj/item/gun/ballistic/shotgun/riot //for spawn in the armory name = "riot shotgun" desc = "A sturdy shotgun with a six-shell tube and a fixed wooden stock designed for non-lethal riot control." + icon = 'icons/obj/guns/48x32guns.dmi' icon_state = "riotshotgun" item_state = "shotgun" mag_type = /obj/item/ammo_box/magazine/internal/shot/riot sawn_desc = "Come with me if you want to live." can_be_sawn_off = TRUE + rack_sound = 'sound/weapons/gun/shotgun/rack_alt.ogg' + fire_delay = 1 + +/obj/item/gun/ballistic/shotgun/riot/sawoff(mob/user) + . = ..() + if(.) + weapon_weight = WEAPON_MEDIUM + wield_slowdown = 0.25 + wield_delay = 0.3 SECONDS //OP? maybe + + spread = 8 + spread_unwielded = 15 + recoil = 3 //or not + recoil_unwielded = 5 // Automatic Shotguns// +/obj/item/gun/ballistic/shotgun/automatic + spread = 4 + spread_unwielded = 16 + recoil = 1 + recoil_unwielded = 4 + wield_delay = 0.65 SECONDS /obj/item/gun/ballistic/shotgun/automatic/shoot_live_shot(mob/living/user) ..() @@ -146,6 +175,13 @@ tac_reloads = TRUE pickup_sound = 'sound/items/handling/rifle_pickup.ogg' + spread = 4 + spread_unwielded = 16 + recoil = 1 + recoil_unwielded = 4 + wield_slowdown = 0.6 + wield_delay = 0.65 SECONDS + /obj/item/gun/ballistic/shotgun/bulldog/unrestricted pin = /obj/item/firing_pin @@ -208,6 +244,13 @@ . = ..() if(.) weapon_weight = WEAPON_MEDIUM + wield_slowdown = 0.25 + wield_delay = 0.3 SECONDS //OP? maybe + + spread = 8 + spread_unwielded = 15 + recoil = 3 //or not + recoil_unwielded = 5 // IMPROVISED SHOTGUN // @@ -372,6 +415,7 @@ attack_verb = list("bludgeoned", "smashed") mag_type = /obj/item/ammo_box/magazine/internal/shot/sex burst_size = 6 + fire_delay = 0.1 pb_knockback = 12 unique_reskin = null recoil = 10 @@ -420,10 +464,21 @@ inhand_y_dimension = 32 mag_type = /obj/item/ammo_box/magazine/internal/shot/winchester fire_sound = 'sound/weapons/gun/rifle/shot.ogg' - rack_sound = 'sound/weapons/gun/rifle/winchester_cocked.ogg' + rack_sound = 'sound/weapons/gun/rifle/ak47_cocked.ogg' bolt_wording = "lever" cartridge_wording = "bullet" + spread = -5 + spread_unwielded = 7 + recoil = 0 + recoil_unwielded = 2 + wield_slowdown = 0.5 + +/obj/item/gun/ballistic/shotgun/winchester/rack(mob/user = null) + . = ..() + if(!wielded) + SpinAnimation(7,1) + /obj/item/gun/ballistic/shotgun/winchester/mk1 name = "Winchester MK.1" desc = "A sturdy lever-action rifle. This antique pattern appears to be in excellent condition despite its age." @@ -469,7 +524,7 @@ inhand_x_dimension = 32 inhand_y_dimension = 32 mag_type = /obj/item/ammo_box/magazine/internal/shot/contender - fire_sound = 'sound/weapons/gun/rifle/shot.ogg' + fire_sound = 'sound/weapons/gun/revolver/shot_hunting.ogg' can_be_sawn_off=TRUE sawn_desc= "A single-shot pistol. It's hard to aim without a front sight." w_class = WEIGHT_CLASS_BULKY @@ -483,9 +538,22 @@ bolt_type = BOLT_TYPE_NO_BOLT can_be_sawn_off = TRUE pb_knockback = 3 + wield_slowdown = 0.7 + spread_unwielded = 15 + spread = 0 + recoil = 0 + recoil_unwielded = 5 + /obj/item/gun/ballistic/shotgun/contender/sawoff(mob/user) . = ..() if(.) item_state = "contender_sawn" + wield_slowdown = 0.5 + wield_delay = 0.5 SECONDS + + spread_unwielded = 5 //mostly the hunting revolver stats + spread = 2 + recoil = 2 + recoil_unwielded = 3 diff --git a/code/modules/projectiles/guns/ballistic/smg.dm b/code/modules/projectiles/guns/ballistic/smg.dm index e617173c932e..8ffe9be41bf2 100644 --- a/code/modules/projectiles/guns/ballistic/smg.dm +++ b/code/modules/projectiles/guns/ballistic/smg.dm @@ -1,6 +1,16 @@ /obj/item/gun/ballistic/automatic/smg burst_size = 1 actions_types = list() + fire_delay = 1 + spread = 4 + spread_unwielded = 10 + wield_slowdown = 0.35 + recoil_unwielded = 0.5 + + load_sound = 'sound/weapons/gun/smg/smg_reload.ogg' + load_empty_sound = 'sound/weapons/gun/smg/smg_reload.ogg' + eject_sound = 'sound/weapons/gun/smg/smg_unload.ogg' + eject_empty_sound = 'sound/weapons/gun/smg/smg_unload.ogg' /obj/item/gun/ballistic/automatic/smg/proto name = "\improper Nanotrasen Saber SMG" @@ -14,7 +24,7 @@ /obj/item/gun/ballistic/automatic/smg/proto/ComponentInitialize() . = ..() - AddComponent(/datum/component/automatic_fire, 0.25 SECONDS) + AddComponent(/datum/component/automatic_fire, 0.15 SECONDS) /obj/item/gun/ballistic/automatic/smg/proto/unrestricted pin = /obj/item/firing_pin @@ -35,7 +45,7 @@ /obj/item/gun/ballistic/automatic/smg/c20r/ComponentInitialize() . = ..() - AddComponent(/datum/component/automatic_fire, 0.25 SECONDS) + AddComponent(/datum/component/automatic_fire, 0.15 SECONDS) /obj/item/gun/ballistic/automatic/smg/c20r/unrestricted pin = /obj/item/firing_pin @@ -56,6 +66,7 @@ desc = "An extreme modification of an obsolete assault rifle, converted into a compact submachine gun by IRMG. Chambered in 10mm." icon_state = "inteqsmg" item_state = "inteqsmg" + fire_sound = 'sound/weapons/gun/smg/vector_fire.ogg' mag_type = /obj/item/ammo_box/magazine/smgm10mm can_bayonet = FALSE can_flashlight = TRUE @@ -66,7 +77,7 @@ /obj/item/gun/ballistic/automatic/smg/inteq/ComponentInitialize() . = ..() - AddComponent(/datum/component/automatic_fire, 0.25 SECONDS) + AddComponent(/datum/component/automatic_fire, 0.15 SECONDS) /obj/item/gun/ballistic/automatic/smg/wt550 name = "\improper WT-550 Automatic Rifle" @@ -84,38 +95,51 @@ mag_display = TRUE mag_display_ammo = TRUE empty_indicator = TRUE + fire_sound = 'sound/weapons/gun/smg/smg_heavy.ogg' /obj/item/gun/ballistic/automatic/smg/wt550/ComponentInitialize() . = ..() - AddComponent(/datum/component/automatic_fire, 0.25 SECONDS) + AddComponent(/datum/component/automatic_fire, 0.15 SECONDS) /obj/item/gun/ballistic/automatic/smg/mini_uzi name = "\improper Type U3 Uzi" desc = "A lightweight submachine gun, for when you really want someone dead. Uses 9mm rounds." icon_state = "uzi" mag_type = /obj/item/ammo_box/magazine/uzim9mm - burst_size = 2 bolt_type = BOLT_TYPE_OPEN mag_display = TRUE - rack_sound = 'sound/weapons/gun/pistol/slide_lock.ogg' + + fire_sound = 'sound/weapons/gun/smg/uzi.ogg' + rack_sound = 'sound/weapons/gun/smg/uzi_cocked.ogg' + + load_sound = 'sound/weapons/gun/smg/uzi_reload.ogg' + load_empty_sound = 'sound/weapons/gun/smg/uzi_reload.ogg' + eject_sound = 'sound/weapons/gun/smg/uzi_unload.ogg' + eject_empty_sound = 'sound/weapons/gun/smg/uzi_unload.ogg' + + spread = 4 + spread_unwielded = 8 + wield_slowdown = 0.25 + wield_delay = 0.2 SECONDS /obj/item/gun/ballistic/automatic/smg/mini_uzi/ComponentInitialize() . = ..() - AddComponent(/datum/component/automatic_fire, 0.25 SECONDS) + AddComponent(/datum/component/automatic_fire, 0.1 SECONDS) /obj/item/gun/ballistic/automatic/smg/vector name = "\improper Vector carbine" desc = "A police carbine based on a pre-Night of Fire SMG design. Most of the complex workings have been removed for reliability. Chambered in 9mm." icon_state = "vector" item_state = "vector" - mag_type = /obj/item/ammo_box/magazine/smgm9mm/rubber //you guys remember when the autorifle was chambered in 9mm + mag_type = /obj/item/ammo_box/magazine/smgm9mm //you guys remember when the autorifle was chambered in 9mm bolt_type = BOLT_TYPE_LOCKING mag_display = TRUE weapon_weight = WEAPON_LIGHT + fire_sound = 'sound/weapons/gun/smg/vector_fire.ogg' /obj/item/gun/ballistic/automatic/smg/vector/ComponentInitialize() . = ..() - AddComponent(/datum/component/automatic_fire, 0.25 SECONDS) + AddComponent(/datum/component/automatic_fire, 0.15 SECONDS) /obj/item/gun/ballistic/automatic/smg/m90 name = "\improper M-90gl Carbine" @@ -133,6 +157,10 @@ empty_indicator = TRUE fire_sound = 'sound/weapons/gun/rifle/shot_alt.ogg' + spread = 1 + spread_unwielded = 8 + wield_slowdown = 0.4 + /obj/item/gun/ballistic/automatic/smg/m90/Initialize() . = ..() underbarrel = new /obj/item/gun/ballistic/revolver/grenadelauncher(src) @@ -186,7 +214,7 @@ burst_size = 1 fire_delay = 0 to_chat(user, "You switch to semi-auto.") - playsound(user, 'sound/weapons/empty.ogg', 100, TRUE) + playsound(user, 'sound/weapons/gun/general/selector.ogg', 100, TRUE) update_appearance() return @@ -203,10 +231,11 @@ actions_types = list() fire_delay = 1 bolt_type = BOLT_TYPE_OPEN + wield_slowdown = 0.4 /obj/item/gun/ballistic/automatic/smg/thompson/Initialize() . = ..() - AddComponent(/datum/component/automatic_fire, 0.25 SECONDS) + AddComponent(/datum/component/automatic_fire, 0.15 SECONDS) /obj/item/gun/ballistic/automatic/smg/thompson/drum name = "\improper Chicago Typewriter" @@ -220,11 +249,11 @@ item_state = "cm5" mag_type = /obj/item/ammo_box/magazine/smgm9mm weapon_weight = WEAPON_LIGHT - fire_sound = 'sound/weapons/gun/smg/smg_light.ogg' + fire_sound = 'sound/weapons/gun/smg/smg_heavy.ogg' /obj/item/gun/ballistic/automatic/smg/cm5/ComponentInitialize() . = ..() - AddComponent(/datum/component/automatic_fire, 0.25 SECONDS) + AddComponent(/datum/component/automatic_fire, 0.15 SECONDS) /obj/item/gun/ballistic/automatic/smg/aks74u name = "\improper AKS-74U" diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index b186569afad4..681d79338a52 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -4,6 +4,12 @@ desc = "A basic energy-based gun." icon = 'icons/obj/guns/energy.dmi' + muzzleflash_iconstate = "muzzle_flash_laser" + muzzle_flash_color = COLOR_SOFT_RED + + has_safety = TRUE + safety = TRUE + var/obj/item/stock_parts/cell/gun/cell //What type of power cell this uses var/cell_type = /obj/item/stock_parts/cell/gun var/modifystate = 0 @@ -93,7 +99,7 @@ recharge_newshot(TRUE) update_appearance() -/obj/item/gun/energy/attack_self(mob/living/user as mob) +/obj/item/gun/energy/unique_action(mob/living/user) if(ammo_type.len > 1) select_fire(user) update_appearance() @@ -144,7 +150,9 @@ eject_cell(user) return ..() -/obj/item/gun/energy/can_shoot() +/obj/item/gun/energy/can_shoot(visuals) + if(safety && !visuals) + return FALSE var/obj/item/ammo_casing/energy/shot = ammo_type[select] return !QDELETED(cell) ? (cell.charge >= shot.e_cost) : FALSE @@ -196,6 +204,7 @@ if (shot.select_name) to_chat(user, "[src] is now set to [shot.select_name].") chambered = null + playsound(user, 'sound/weapons/gun/general/selector.ogg', 100, TRUE) recharge_newshot(TRUE) update_appearance() return @@ -217,10 +226,15 @@ . = ..() if(!automatic_charge_overlays || QDELETED(src)) return - // Every time I see code this "flexible", a kitten fucking dies + // Every time I see code this "flexible", a kitten fucking dies //it got worse + //todo: refactor this a bit to allow showing of charge on a gun's cell var/overlay_icon_state = "[icon_state]_charge" var/obj/item/ammo_casing/energy/shot = ammo_type[modifystate ? select : 1] var/ratio = get_charge_ratio() + if(cell) + . += "[icon_state]_cell" + if(ratio == 0) + . += "[icon_state]_cellempty" if(ratio == 0) if(modifystate) . += "[icon_state]_[shot.select_name]" @@ -243,7 +257,7 @@ ///Used by update_icon_state() and update_overlays() /obj/item/gun/energy/proc/get_charge_ratio() - return can_shoot() ? CEILING(clamp(cell.charge / cell.maxcharge, 0, 1) * charge_sections, 1) : 0 + return can_shoot(visuals = TRUE) ? CEILING(clamp(cell.charge / cell.maxcharge, 0, 1) * charge_sections, 1) : 0 // Sets the ratio to 0 if the gun doesn't have enough charge to fire, or if its power cell is removed. /obj/item/gun/energy/vv_edit_var(var_name, var_value) @@ -268,18 +282,18 @@ else if(BB.nodamage || !BB.damage || BB.damage_type == STAMINA) user.visible_message("[user] tries to light [user.p_their()] [A.name] with [src], but it doesn't do anything. Dumbass.") playsound(user, E.fire_sound, 50, TRUE) - playsound(user, BB.hitsound, 50, TRUE) + playsound(user, BB.hitsound_non_living, 50, TRUE) cell.use(E.e_cost) . = "" else if(BB.damage_type != BURN) user.visible_message("[user] tries to light [user.p_their()] [A.name] with [src], but only succeeds in utterly destroying it. Dumbass.") playsound(user, E.fire_sound, 50, TRUE) - playsound(user, BB.hitsound, 50, TRUE) + playsound(user, BB.hitsound_non_living, 50, TRUE) cell.use(E.e_cost) qdel(A) . = "" else playsound(user, E.fire_sound, 50, TRUE) - playsound(user, BB.hitsound, 50, TRUE) + playsound(user, BB.hitsound_non_living, 50, TRUE) cell.use(E.e_cost) . = "[user] casually lights their [A.name] with [src]. Damn." diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm index 7928094cab13..8a829153fcfd 100644 --- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm +++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm @@ -18,6 +18,10 @@ internal_cell = TRUE custom_price = 750 w_class = WEIGHT_CLASS_BULKY + + muzzleflash_iconstate = "muzzle_flash_light" + muzzle_flash_color = COLOR_WHITE + var/overheat_time = 16 var/holds_charge = FALSE var/unique_frequency = FALSE // modified by KA modkits @@ -113,7 +117,7 @@ if(!QDELING(src) && !holds_charge) // Put it on a delay because moving item from slot to hand // calls dropped(). - addtimer(CALLBACK(src, .proc/empty_if_not_held), 2) + addtimer(CALLBACK(src, PROC_REF(empty_if_not_held)), 2) /obj/item/gun/energy/kinetic_accelerator/proc/empty_if_not_held() if(!ismob(loc)) @@ -144,7 +148,7 @@ carried = 1 deltimer(recharge_timerid) - recharge_timerid = addtimer(CALLBACK(src, .proc/reload), recharge_time * carried, TIMER_STOPPABLE) + recharge_timerid = addtimer(CALLBACK(src, PROC_REF(reload)), recharge_time * carried, TIMER_STOPPABLE) /obj/item/gun/energy/kinetic_accelerator/emp_act(severity) return diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 4551014cafea..5a4caeefc373 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -10,6 +10,9 @@ shaded_charge = 1 supports_variations = VOX_VARIATION + spread = 0 + spread_unwielded = 10 + /obj/item/gun/energy/laser/practice name = "practice laser gun" desc = "A modified version of the basic laser gun, this one fires less concentrated energy bolts designed for target practice." diff --git a/code/modules/projectiles/guns/energy/laser_gatling.dm b/code/modules/projectiles/guns/energy/laser_gatling.dm index 029c5f8a2693..b21e176b92e8 100644 --- a/code/modules/projectiles/guns/energy/laser_gatling.dm +++ b/code/modules/projectiles/guns/energy/laser_gatling.dm @@ -22,6 +22,7 @@ . = ..() gun = new(src) battery = new(src) + gun.cell = battery START_PROCESSING(SSobj, src) /obj/item/minigunpack/Destroy() @@ -107,7 +108,7 @@ slot_flags = null w_class = WEIGHT_CLASS_HUGE custom_materials = null - weapon_weight = WEAPON_HEAVY + weapon_weight = WEAPON_MEDIUM ammo_type = list(/obj/item/ammo_casing/energy/laser/minigun) cell_type = /obj/item/stock_parts/cell/crap item_flags = NEEDS_PERMIT | SLOWS_WHILE_IN_HAND @@ -120,7 +121,7 @@ ammo_pack = loc AddElement(/datum/element/update_icon_blocker) - AddComponent(/datum/component/automatic_fire, 0.2 SECONDS) + AddComponent(/datum/component/automatic_fire, 0.15 SECONDS) return ..() /obj/item/gun/energy/minigun/Destroy() diff --git a/code/modules/projectiles/guns/energy/pulse.dm b/code/modules/projectiles/guns/energy/pulse.dm index a4d252107fc6..83a33691008b 100644 --- a/code/modules/projectiles/guns/energy/pulse.dm +++ b/code/modules/projectiles/guns/energy/pulse.dm @@ -12,6 +12,11 @@ internal_cell = TRUE //prevents you from giving it an OP cell - WS Edit cell_type = "/obj/item/stock_parts/cell/pulse" + spread_unwielded = 25 + + muzzleflash_iconstate = "muzzle_flash_pulse" + muzzle_flash_color = COLOR_BRIGHT_BLUE + /obj/item/gun/energy/pulse/emp_act(severity) return diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 44c667892e4a..2037e77fbed0 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -260,7 +260,7 @@ /obj/item/gun/energy/wormhole_projector/proc/create_portal(obj/projectile/beam/wormhole/W, turf/target) var/obj/effect/portal/P = new /obj/effect/portal(target, 300, null, FALSE, null, atmos_link) - RegisterSignal(P, COMSIG_PARENT_QDELETING, .proc/on_portal_destroy) + RegisterSignal(P, COMSIG_PARENT_QDELETING, PROC_REF(on_portal_destroy)) if(istype(W, /obj/projectile/beam/wormhole/orange)) qdel(p_orange) p_orange = P @@ -384,7 +384,7 @@ return return ..() -/obj/item/gun/energy/gravity_gun/can_shoot() +/obj/item/gun/energy/gravity_gun/can_shoot(visuals) if(!firing_core) return FALSE return ..() diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm index 2caeca6f3a16..1d8f78213707 100644 --- a/code/modules/projectiles/guns/energy/stun.dm +++ b/code/modules/projectiles/guns/energy/stun.dm @@ -6,6 +6,9 @@ ammo_type = list(/obj/item/ammo_casing/energy/electrode) ammo_x_offset = 3 + spread = 2 + spread_unwielded = 4 + /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." @@ -13,6 +16,9 @@ ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/disabler) ammo_x_offset = 2 + spread = 2 + spread_unwielded = 4 + /obj/item/gun/energy/e_gun/advtaser/cyborg name = "cyborg taser" desc = "An integrated hybrid taser that draws directly from a cyborg's power cell. The weapon contains a limiter to prevent the cyborg's power cell from overheating." @@ -31,6 +37,9 @@ flight_x_offset = 15 flight_y_offset = 10 + spread = 2 + spread_unwielded = 4 + /obj/item/gun/energy/disabler/cyborg name = "cyborg disabler" desc = "An integrated disabler that draws from a cyborg's power cell. This weapon contains a limiter to prevent the cyborg's power cell from overheating." diff --git a/code/modules/projectiles/guns/faction/gezena/energy_gunsword.dm b/code/modules/projectiles/guns/faction/gezena/energy_gunsword.dm new file mode 100644 index 000000000000..71fcfd3e0f87 --- /dev/null +++ b/code/modules/projectiles/guns/faction/gezena/energy_gunsword.dm @@ -0,0 +1,77 @@ +/obj/item/gun/energy/kalix //blue //todo: fix up belt_mirror.dmi, it's incomprehensible + name = "Etherbor BG-12" + desc = "Brought to you by Etherbor Industries, proudly based within the PGF, is the BG-12 energy beam gun! The BG-12 is Etherbor's current newest civilian energy weapon model." + icon_state = "kalixgun" + item_state = "kalixgun" + icon = 'icons/obj/guns/faction/gezena/energy.dmi' + lefthand_file = 'icons/obj/guns/faction/gezena/lefthand.dmi' + righthand_file = 'icons/obj/guns/faction/gezena/righthand.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/gezena/belt.dmi' + w_class = WEIGHT_CLASS_BULKY + + cell_type = /obj/item/stock_parts/cell/gun/pgf + ammo_type = list(/obj/item/ammo_casing/energy/kalix) + + load_sound = 'sound/weapons/gun/gauss/pistol_reload.ogg' + +/obj/projectile/beam/hitscan/kalix + name = "concentrated energy" + tracer_type = /obj/effect/projectile/tracer/kalix + muzzle_type = /obj/effect/projectile/muzzle/kalix + impact_type = /obj/effect/projectile/impact/kalix + hitscan_light_color_override = LIGHT_COLOR_ELECTRIC_CYAN + muzzle_flash_color_override = LIGHT_COLOR_ELECTRIC_CYAN + impact_light_color_override = LIGHT_COLOR_ELECTRIC_CYAN + range = 10 + +/obj/item/ammo_casing/energy/kalix + projectile_type = /obj/projectile/beam/hitscan/kalix + fire_sound = 'sound/weapons/gun/energy/laserpistol.ogg' + e_cost = 850 + +/obj/item/gun/energy/kalix/pgf + name = "Etherbor BG-16" + desc = "An advanced variant of the BG-12, the BG-16 is the military-grade beam gun designed and manufactured by Etherbor Industries as the standard-issue weapon of the PGF." + icon_state = "pgfgun" + item_state = "pgfgun" + + cell_type = /obj/item/stock_parts/cell/gun/pgf + ammo_type = list(/obj/item/ammo_casing/energy/pgf) + +/obj/projectile/beam/hitscan/pgf + name = "concentrated energy" + tracer_type = /obj/effect/projectile/tracer/pgf + muzzle_type = /obj/effect/projectile/muzzle/pgf + impact_type = /obj/effect/projectile/impact/pgf + hitscan_light_color_override = LIGHT_COLOR_ELECTRIC_GREEN + muzzle_flash_color_override = LIGHT_COLOR_ELECTRIC_GREEN + impact_light_color_override = LIGHT_COLOR_ELECTRIC_GREEN + damage_constant = 0.9 + damage = 25 + range = 6 + +/obj/item/ammo_casing/energy/pgf + projectile_type = /obj/projectile/beam/hitscan/pgf + fire_sound = 'sound/weapons/gun/energy/laserpistol.ogg' + e_cost = 1000 + +/obj/item/gun/energy/kalix/pgf/heavy + name = "Etherbor HBG-7" + desc = "For when a BG-16 doesn’t cut it, the far bulkier HBG-7, provided by your friends at Etherbor Industries, has the stopping power and fire rate to bring down any target where a smaller caliber weapon just wouldn't cut it." + icon_state = "pgfheavy" + item_state = "pgfheavy" + icon = 'icons/obj/guns/faction/gezena/48x32.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/gezena/back.dmi' + w_class = WEIGHT_CLASS_HUGE + slot_flags = ITEM_SLOT_BACK + + ammo_type = list(/obj/item/ammo_casing/energy/pgf/heavy) + +/obj/projectile/beam/hitscan/pgf/heavy + damage = 35 + range = 12 + +/obj/item/ammo_casing/energy/pgf/heavy + projectile_type = /obj/projectile/beam/hitscan/pgf/heavy + fire_sound = 'sound/weapons/gun/energy/lasersniper.ogg' + e_cost = 2000 diff --git a/code/modules/projectiles/guns/misc/beam_rifle.dm b/code/modules/projectiles/guns/misc/beam_rifle.dm index 4822e2b59ba7..fad4f485aa88 100644 --- a/code/modules/projectiles/guns/misc/beam_rifle.dm +++ b/code/modules/projectiles/guns/misc/beam_rifle.dm @@ -148,7 +148,7 @@ current_zoom_x = 0 current_zoom_y = 0 -/obj/item/gun/energy/beam_rifle/attack_self(mob/user) +/obj/item/gun/energy/beam_rifle/unique_action(mob/living/user) projectile_setting_pierce = !projectile_setting_pierce to_chat(user, "You set \the [src] to [projectile_setting_pierce? "pierce":"impact"] mode.") aiming_beam() @@ -265,7 +265,7 @@ current_user = null if(istype(user)) current_user = user - RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/on_mob_move) + RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(on_mob_move)) listeningTo = user /obj/item/gun/energy/beam_rifle/onMouseDrag(src_object, over_object, src_location, over_location, params, mob) @@ -521,7 +521,7 @@ tracer_type = /obj/effect/projectile/tracer/tracer/aiming name = "aiming beam" hitsound = null - hitsound_wall = null + hitsound_non_living = null nodamage = TRUE damage = 0 constant_tracer = TRUE diff --git a/code/modules/projectiles/guns/misc/blastcannon.dm b/code/modules/projectiles/guns/misc/blastcannon.dm index d2a8c80827fc..888e680479ea 100644 --- a/code/modules/projectiles/guns/misc/blastcannon.dm +++ b/code/modules/projectiles/guns/misc/blastcannon.dm @@ -35,7 +35,7 @@ QDEL_NULL(bomb) return ..() -/obj/item/gun/blastcannon/attack_self(mob/user) +/obj/item/gun/blastcannon/unique_action(mob/living/user) if(bomb) bomb.forceMove(user.loc) user.put_in_hands(bomb) diff --git a/code/modules/projectiles/guns/misc/bow.dm b/code/modules/projectiles/guns/misc/bow.dm index df30f5a89022..9f2957ba40cd 100644 --- a/code/modules/projectiles/guns/misc/bow.dm +++ b/code/modules/projectiles/guns/misc/bow.dm @@ -28,7 +28,7 @@ chambered = magazine.get_round(TRUE) chambered.forceMove(src) -/obj/item/gun/ballistic/bow/attack_self(mob/user) +/obj/item/gun/ballistic/bow/unique_action(mob/living/user) if(chambered) to_chat(user, "You [drawn ? "release" : "draw"] [src]'s string.") if(!drawn) @@ -51,7 +51,7 @@ /obj/item/ammo_casing/caseless/arrow/despawning/dropped() . = ..() - addtimer(CALLBACK(src, .proc/floor_vanish), 5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(floor_vanish)), 5 SECONDS) /obj/item/ammo_casing/caseless/arrow/despawning/proc/floor_vanish() if(isturf(loc)) diff --git a/code/modules/projectiles/guns/misc/grenade_launcher.dm b/code/modules/projectiles/guns/misc/grenade_launcher.dm index 588e697c28c5..b381c8267738 100644 --- a/code/modules/projectiles/guns/misc/grenade_launcher.dm +++ b/code/modules/projectiles/guns/misc/grenade_launcher.dm @@ -43,4 +43,4 @@ F.active = 1 F.icon_state = initial(F.icon_state) + "_active" playsound(user.loc, 'sound/weapons/armbomb.ogg', 75, TRUE, -3) - addtimer(CALLBACK(F, /obj/item/grenade.proc/prime), 15) + addtimer(CALLBACK(F, TYPE_PROC_REF(/obj/item/grenade, prime)), 15) diff --git a/code/modules/projectiles/guns/misc/medbeam.dm b/code/modules/projectiles/guns/misc/medbeam.dm index 7061d7769ba4..dd676a46d068 100644 --- a/code/modules/projectiles/guns/misc/medbeam.dm +++ b/code/modules/projectiles/guns/misc/medbeam.dm @@ -67,7 +67,7 @@ current_target = target active = TRUE current_beam = user.Beam(current_target, icon_state="medbeam", time = 10 MINUTES, maxdistance = max_range, beam_type = /obj/effect/ebeam/medical) - RegisterSignal(current_beam, COMSIG_PARENT_QDELETING, .proc/beam_died)//this is a WAY better rangecheck than what was done before (process check) + RegisterSignal(current_beam, COMSIG_PARENT_QDELETING, PROC_REF(beam_died))//this is a WAY better rangecheck than what was done before (process check) SSblackbox.record_feedback("tally", "gun_fired", 1, type) diff --git a/code/modules/projectiles/guns/misc/syringe_gun.dm b/code/modules/projectiles/guns/misc/syringe_gun.dm index efd99b2d5b49..34af73b855c6 100644 --- a/code/modules/projectiles/guns/misc/syringe_gun.dm +++ b/code/modules/projectiles/guns/misc/syringe_gun.dm @@ -38,7 +38,7 @@ . = ..() . += "Can hold [max_syringes] syringe\s. Has [syringes.len] syringe\s remaining." -/obj/item/gun/syringe/attack_self(mob/living/user) +/obj/item/gun/syringe/unique_action(mob/living/user) if(!syringes.len) to_chat(user, "[src] is empty!") return 0 diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index a50b6eed4ae6..7cc9b1c6ebb4 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -13,7 +13,17 @@ generic_canpass = FALSE //The sound this plays on impact. var/hitsound = 'sound/weapons/pierce.ogg' - var/hitsound_wall = "" + var/hitsound_non_living = "" + var/hitsound_glass + var/hitsound_stone + var/hitsound_metal + var/hitsound_wood + var/hitsound_snow + + var/near_miss_sound = "" + var/ricochet_sound = "" + + resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF var/def_zone = "" //Aiming at @@ -158,7 +168,7 @@ var/can_hit_turfs = FALSE var/static/list/projectile_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) /obj/projectile/Initialize() @@ -223,11 +233,6 @@ if(!isliving(target)) if(impact_effect_type && !hitscan) new impact_effect_type(target_loca, hitx, hity) - if(isturf(target) && hitsound_wall) - var/volume = clamp(vol_by_damage() + 20, 0, 100) - if(suppressed) - volume = 5 - playsound(loc, hitsound_wall, volume, TRUE, -1) return BULLET_ACT_HIT var/mob/living/L = target @@ -264,8 +269,7 @@ to_chat(L, "You're shot by \a [src][organ_hit_text]!") else if(hitsound) - var/volume = vol_by_damage() - playsound(src, hitsound, volume, TRUE, -1) + playsound(get_turf(L), hitsound, 100, TRUE, -1) L.visible_message("[L] is hit by \a [src][organ_hit_text]!", \ "You're hit by \a [src][organ_hit_text]!", null, COMBAT_MESSAGE_RANGE) L.on_hit(src) @@ -350,6 +354,8 @@ range = decayedRange if(hitscan) store_hitscan_collision(pcache) + if(ricochet_sound) + playsound(get_turf(src), ricochet_sound, 120, TRUE, 2) //make it loud, we want to make it known when a ricochet happens. for aesthetic reasons mostly 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. @@ -521,6 +527,16 @@ if(can_hit_target(M, M == original, TRUE)) Impact(M) break + if(!near_miss_sound) + return FALSE + if(decayedRange <= range+2) + return FALSE + for(var/mob/misser in range(1,src)) + if(!(misser.stat <= SOFT_CRIT)) + continue + misser.playsound_local(get_turf(src), near_miss_sound, 100, FALSE) + misser.shake_animation(damage) + /** * Projectile crossed: When something enters a projectile's tile, make sure the projectile hits it if it should be hitting it. diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index d17f94af19ae..d0fa95841ab4 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -4,8 +4,18 @@ pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE damage = 20 damage_type = BURN - hitsound = 'sound/weapons/sear.ogg' - hitsound_wall = 'sound/weapons/effects/searwall.ogg' + + hitsound = 'sound/weapons/gun/hit/energy_impact1.ogg' + hitsound_non_living = 'sound/weapons/effects/searwall.ogg' + hitsound_glass = 'sound/weapons/effects/searwall.ogg' + hitsound_stone = 'sound/weapons/sear.ogg' + hitsound_metal = 'sound/weapons/effects/searwall.ogg' + hitsound_wood = 'sound/weapons/sear.ogg' + hitsound_snow = 'sound/weapons/sear.ogg' + + near_miss_sound = 'sound/weapons/gun/hit/energy_miss1.ogg' + ricochet_sound = 'sound/weapons/gun/hit/energy_ricochet1.ogg' + flag = "laser" eyeblur = 2 impact_effect_type = /obj/effect/temp_visual/impact_effect/red_laser @@ -14,7 +24,7 @@ light_power = 1 light_color = COLOR_SOFT_RED ricochets_max = 50 //Honk! - ricochet_chance = 80 + ricochet_chance = 90 reflectable = REFLECT_NORMAL /obj/projectile/beam/throw_atom_into_space() diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index 6123789df438..43106f97deec 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -6,5 +6,20 @@ damage_type = BRUTE nodamage = FALSE flag = "bullet" - hitsound_wall = "ricochet" + + hitsound = "bullet_hit" + hitsound_non_living = "bullet_impact" + hitsound_glass = "bullet_hit_glass" + hitsound_stone = "bullet_hit_stone" + hitsound_metal = "bullet_hit_metal" + hitsound_wood = "bullet_hit_wood" + hitsound_snow = "bullet_hit_snow" + + near_miss_sound = "bullet_miss" + ricochet_sound = "bullet_bounce" + + impact_effect_type = /obj/effect/temp_visual/impact_effect + ricochets_max = 5 //should be enough to scare the shit out of someone + ricochet_chance = 30 + ricochet_decay_damage = 0.5 //shouldnt being reliable, but deadly enough to be careful if you accidentally hit an ally diff --git a/code/modules/projectiles/projectile/bullets/dnainjector.dm b/code/modules/projectiles/projectile/bullets/dnainjector.dm index ad20c47eeb71..b8cd6f92b10d 100644 --- a/code/modules/projectiles/projectile/bullets/dnainjector.dm +++ b/code/modules/projectiles/projectile/bullets/dnainjector.dm @@ -3,7 +3,7 @@ icon_state = "syringeproj" var/obj/item/dnainjector/injector damage = 5 - hitsound_wall = "shatter" + hitsound_non_living = "shatter" /obj/projectile/bullet/dnainjector/on_hit(atom/target, blocked = FALSE) if(iscarbon(target)) diff --git a/code/modules/projectiles/projectile/bullets/gauss.dm b/code/modules/projectiles/projectile/bullets/gauss.dm index d057213f92e7..0955745ed798 100644 --- a/code/modules/projectiles/projectile/bullets/gauss.dm +++ b/code/modules/projectiles/projectile/bullets/gauss.dm @@ -3,8 +3,7 @@ /obj/projectile/bullet/gauss name = "ferromagnetic pellet" icon_state = "gauss-pellet" - damage = 20 - armour_penetration = 40 + damage = 25 range = 35 light_color = COLOR_SOFT_RED light_range = 3 @@ -15,6 +14,7 @@ name = "ferromagnetic lance" icon_state = "redtrac" damage = 30 + armour_penetration = 20 // Ferromagnetic Slug (Model H) @@ -22,4 +22,5 @@ name = "ferromagnetic slug" icon_state = "gauss-slug" damage = 50 + armour_penetration = -60 speed = 0.8 diff --git a/code/modules/projectiles/projectile/bullets/revolver.dm b/code/modules/projectiles/projectile/bullets/revolver.dm index dcf8bb682387..ecd8b5abbbb9 100644 --- a/code/modules/projectiles/projectile/bullets/revolver.dm +++ b/code/modules/projectiles/projectile/bullets/revolver.dm @@ -19,13 +19,9 @@ // .38 (Colt Detective Special & Winchester) /obj/projectile/bullet/c38 - name = ".38 special bullet" + name = ".38 bullet" damage = 25 - armour_penetration = -30 - ricochets_max = 2 - ricochet_chance = 50 - ricochet_auto_aim_angle = 10 - ricochet_auto_aim_range = 3 + armour_penetration = -20 /obj/projectile/bullet/c38/match name = ".38 match bullet" @@ -126,7 +122,7 @@ /obj/projectile/bullet/a4570 name = ".45-70 bullet" - damage = 40 //crits in 3-4 taps depending on armor + damage = 45 //crits in 3-4 taps depending on armor /obj/projectile/bullet/a4570/match name = ".45-70 match bullet" @@ -152,3 +148,11 @@ ..() explosion(target, -1, 0, 1) return BULLET_ACT_HIT + + +/obj/projectile/bullet/c22lr + name = ".22LR bullet" + damage = 20 + armour_penetration = -45 + ricochet_incidence_leeway = 20 + ricochet_chance = 45 diff --git a/code/modules/projectiles/projectile/bullets/shotgun.dm b/code/modules/projectiles/projectile/bullets/shotgun.dm index 0f2d43206fc8..0979a268ee16 100644 --- a/code/modules/projectiles/projectile/bullets/shotgun.dm +++ b/code/modules/projectiles/projectile/bullets/shotgun.dm @@ -1,6 +1,7 @@ /obj/projectile/bullet/slug name = "12g shotgun slug" damage = 40 + armour_penetration = -10 speed = 0.5 /obj/projectile/bullet/slug/beanbag @@ -11,7 +12,8 @@ /obj/projectile/bullet/incendiary/shotgun name = "incendiary slug" - damage = 20 + damage = 25 + armour_penetration = -10 speed = 0.5 /obj/projectile/bullet/incendiary/shotgun/dragonsbreath @@ -65,12 +67,14 @@ ///How much stamina damage is subtracted per tile? var/tile_dropoff_stamina = 1.5 //As above + icon_state = "pellet" armour_penetration = -35 speed = 0.5 /obj/projectile/bullet/pellet/buckshot name = "buckshot pellet" - damage = 10 + damage = 20 + armour_penetration = -10 /obj/projectile/bullet/pellet/rubbershot name = "rubbershot pellet" diff --git a/code/modules/projectiles/projectile/energy/net_snare.dm b/code/modules/projectiles/projectile/energy/net_snare.dm index 2a9196ce9ef8..0e1dff3d1e72 100644 --- a/code/modules/projectiles/projectile/energy/net_snare.dm +++ b/code/modules/projectiles/projectile/energy/net_snare.dm @@ -37,7 +37,7 @@ if(com.power_station && com.power_station.teleporter_hub && com.power_station.engaged) teletarget = com.target - addtimer(CALLBACK(src, .proc/pop, teletarget), 30) + addtimer(CALLBACK(src, PROC_REF(pop), teletarget), 30) /obj/effect/nettingportal/proc/pop(teletarget) if(teletarget) diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm index 00f323d995fa..458c19d053da 100644 --- a/code/modules/projectiles/projectile/magic.dm +++ b/code/modules/projectiles/projectile/magic.dm @@ -438,8 +438,8 @@ /obj/structure/closet/decay/Initialize() . = ..() if(auto_destroy) - addtimer(CALLBACK(src, .proc/bust_open), 5 MINUTES) - addtimer(CALLBACK(src, .proc/magicly_lock), 5) + addtimer(CALLBACK(src, PROC_REF(bust_open)), 5 MINUTES) + addtimer(CALLBACK(src, PROC_REF(magicly_lock)), 5) /obj/structure/closet/decay/proc/magicly_lock() if(!welded) @@ -453,7 +453,7 @@ /obj/structure/closet/decay/proc/decay() animate(src, alpha = 0, time = 30) - addtimer(CALLBACK(GLOBAL_PROC, .proc/qdel, src), 30) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), src), 30) /obj/structure/closet/decay/open(mob/living/user, force = FALSE) . = ..() @@ -461,12 +461,12 @@ if(icon_state == magic_icon) //check if we used the magic icon at all before giving it the lesser magic icon unmagify() else - addtimer(CALLBACK(src, .proc/decay), 15 SECONDS) + addtimer(CALLBACK(src, PROC_REF(decay)), 15 SECONDS) /obj/structure/closet/decay/proc/unmagify() icon_state = weakened_icon update_appearance() - addtimer(CALLBACK(src, .proc/decay), 15 SECONDS) + addtimer(CALLBACK(src, PROC_REF(decay)), 15 SECONDS) icon_welded = "welded" /obj/projectile/magic/flying @@ -718,7 +718,7 @@ return BULLET_ACT_BLOCK var/turf/T = get_turf(target) for(var/i=0, i<50, i+=10) - addtimer(CALLBACK(GLOBAL_PROC, .proc/explosion, T, -1, exp_heavy, exp_light, exp_flash, FALSE, FALSE, exp_fire), i) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(explosion), T, -1, exp_heavy, exp_light, exp_flash, FALSE, FALSE, exp_fire), i) //still magic related, but a different path diff --git a/code/modules/projectiles/projectile/special/hallucination.dm b/code/modules/projectiles/projectile/special/hallucination.dm index 74fa2b2ad17a..c146932df085 100644 --- a/code/modules/projectiles/projectile/special/hallucination.dm +++ b/code/modules/projectiles/projectile/special/hallucination.dm @@ -100,7 +100,7 @@ layer = ABOVE_MOB_LAYER hal_target.client.images += blood animate(blood, pixel_x = target_pixel_x, pixel_y = target_pixel_y, alpha = 0, time = 5) - addtimer(CALLBACK(src, .proc/cleanup_blood), 5) + addtimer(CALLBACK(src, PROC_REF(cleanup_blood)), 5) /obj/projectile/hallucination/proc/cleanup_blood(image/blood) hal_target.client.images -= blood @@ -128,7 +128,7 @@ hal_icon_state = "bullet" hal_fire_sound = "gunshot" hal_hitsound = 'sound/weapons/pierce.ogg' - hal_hitsound_wall = "ricochet" + hal_hitsound_wall = "bullet_impact" hal_impact_effect = "impact_bullet" hal_impact_effect_wall = "impact_bullet" hit_duration = 5 @@ -171,7 +171,7 @@ if(hal_target.dna && hal_target.dna.check_mutation(HULK)) hal_target.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ), forced = "hulk") else if((hal_target.status_flags & CANKNOCKDOWN) && !HAS_TRAIT(hal_target, TRAIT_STUNIMMUNE)) - addtimer(CALLBACK(hal_target, /mob/living/carbon.proc/do_jitter_animation, 20), 5) + addtimer(CALLBACK(hal_target, TYPE_PROC_REF(/mob/living/carbon, do_jitter_animation), 20), 5) /obj/projectile/hallucination/disabler name = "disabler beam" diff --git a/code/modules/projectiles/projectile/special/rocket.dm b/code/modules/projectiles/projectile/special/rocket.dm index d86f90b9368e..0680c62279fd 100644 --- a/code/modules/projectiles/projectile/special/rocket.dm +++ b/code/modules/projectiles/projectile/special/rocket.dm @@ -19,7 +19,7 @@ /obj/projectile/bullet/a84mm/on_hit(atom/target, blocked = FALSE) ..() - explosion(target, -1, 1, 3, 1, 0, flame_range = 4) + explosion(target, 1, 1, 2, 1, 0, flame_range = 4) if(ismecha(target)) var/obj/mecha/M = target @@ -69,7 +69,7 @@ ..() for(var/i in sturdy) if(istype(target, i)) - explosion(target, 0, 1, 1, 2) + explosion(target, 1, 1, 1, 2) return BULLET_ACT_HIT //if(istype(target, /turf/closed) || ismecha(target)) new /obj/item/broken_missile(get_turf(src), 1) diff --git a/code/modules/reagents/chemistry/machinery/pandemic.dm b/code/modules/reagents/chemistry/machinery/pandemic.dm index eb01cf28b714..1fefd1d55031 100644 --- a/code/modules/reagents/chemistry/machinery/pandemic.dm +++ b/code/modules/reagents/chemistry/machinery/pandemic.dm @@ -217,7 +217,7 @@ update_appearance() 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) + addtimer(CALLBACK(src, PROC_REF(reset_replicator_cooldown)), 50) . = TRUE if("create_vaccine_bottle") if (wait) @@ -229,7 +229,7 @@ B.reagents.add_reagent(/datum/reagent/vaccine, 15, list(id)) wait = TRUE update_appearance() - addtimer(CALLBACK(src, .proc/reset_replicator_cooldown), 200) + addtimer(CALLBACK(src, PROC_REF(reset_replicator_cooldown)), 200) . = TRUE diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm index b638c82fef78..5e5bd21747dc 100644 --- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm +++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm @@ -241,7 +241,7 @@ var/offset = prob(50) ? -2 : 2 var/old_pixel_x = pixel_x animate(src, pixel_x = pixel_x + offset, time = 0.2, loop = -1) //start shaking - addtimer(CALLBACK(src, .proc/stop_shaking, old_pixel_x), duration) + addtimer(CALLBACK(src, PROC_REF(stop_shaking), old_pixel_x), duration) /obj/machinery/reagentgrinder/proc/stop_shaking(old_px) animate(src) @@ -255,7 +255,7 @@ playsound(src, 'sound/machines/blender.ogg', 50, TRUE) else playsound(src, 'sound/machines/juicer.ogg', 20, TRUE) - addtimer(CALLBACK(src, .proc/stop_operating), time / speed) + addtimer(CALLBACK(src, PROC_REF(stop_operating)), time / speed) /obj/machinery/reagentgrinder/proc/stop_operating() operating = FALSE @@ -314,7 +314,7 @@ if(!beaker || machine_stat & (NOPOWER|BROKEN)) return operate_for(50, juicing = TRUE) - addtimer(CALLBACK(src, /obj/machinery/reagentgrinder/proc/mix_complete), 50) + addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/machinery/reagentgrinder, mix_complete)), 50) /obj/machinery/reagentgrinder/proc/mix_complete() if(beaker?.reagents.total_volume) diff --git a/code/modules/reagents/chemistry/reagents.dm b/code/modules/reagents/chemistry/reagents.dm index bf22e6967862..a35a8c91542a 100644 --- a/code/modules/reagents/chemistry/reagents.dm +++ b/code/modules/reagents/chemistry/reagents.dm @@ -101,6 +101,7 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent()) var/amount = round(reac_volume*modifier, 0.1) if(amount >= 0.5) M.reagents.add_reagent(type, amount) + SSblackbox.record_feedback("nested tally", "reagent expose mob", 1, list("[name]", "[M]", "[method]", "[reac_volume]")) return 1 /// Applies this reagent to an [/obj] diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index 843297c9307d..0e6b166ff810 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -73,7 +73,7 @@ All effects don't start immediately, but rather get worse over time; the rate is if(!isliving(M)) return - if(method in list(TOUCH, VAPOR, PATCH)) + if(method in list(TOUCH, SMOKE, VAPOR, PATCH)) M.adjust_fire_stacks(reac_volume / 15) if(iscarbon(M)) @@ -265,7 +265,7 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/vodka name = "Vodka" - description = "Number one drink AND fueling choice for Russians worldwide." + description = "Number one drink that also serves as fuel." color = "#0064C8" // rgb: 0, 100, 200 boozepwr = 65 taste_description = "grain alcohol" @@ -365,8 +365,8 @@ All effects don't start immediately, but rather get worse over time; the rate is shot_glass_icon_state = "shotglassred" /datum/reagent/consumable/ethanol/lizardwine - name = "lizard wine" - description = "An alcoholic beverage from Space China, made by infusing lizard tails in ethanol." + name = "Kalixcis Wine" + description = "A relatively popular Kalixcane beverage, made by infusing cacti in ethanol." color = "#7E4043" // rgb: 126, 64, 67 boozepwr = 45 quality = DRINK_FANTASTIC @@ -1939,7 +1939,8 @@ All effects don't start immediately, but rather get worse over time; the rate is generate_data_info(data) /datum/reagent/consumable/ethanol/fruit_wine/proc/generate_data_info(list/data) - var/minimum_percent = 0.15 //Percentages measured between 0 and 1. + // BYOND's compiler fails to catch non-consts in a ranged switch case, and it causes incorrect behavior. So this needs to explicitly be a constant. + var/const/minimum_percent = 0.15 //Percentages measured between 0 and 1. var/list/primary_tastes = list() var/list/secondary_tastes = list() glass_name = "glass of [name]" @@ -2433,7 +2434,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_desc = "A spin on the classic. Artists and street fighters swear by this stuff." /datum/reagent/consumable/ethanol/out_of_lime/expose_mob(mob/living/carbon/human/consumer, method=INGEST, reac_volume) - if(method == INGEST || method == TOUCH) + if(method == INGEST || method == TOUCH || method == SMOKE) if(istype(consumer)) consumer.hair_color = pick("0ad","a0f","f73","d14","0b5","fc2","084","05e","d22","fa0") consumer.facial_hair_color = pick("0ad","a0f","f73","d14","0b5","fc2","084","05e","d22","fa0") @@ -2454,89 +2455,3 @@ All effects don't start immediately, but rather get worse over time; the rate is M.clockcultslurring = min(M.clockcultslurring + 3, 3) M.stuttering = min(M.stuttering + 3, 3) ..() - -/datum/reagent/consumable/ethanol/ash_wine - name = "Ashwine" - description = "A traditional sacrament for members of the Saint-Roumain Militia. Known to grant visions, and is used both for ritual and entertainment purposes aboard Saint-Roumain vessels." - color = "#293D25" - boozepwr = 80 - quality = DRINK_VERYGOOD - taste_description = "devotional energy and a hint of high-potency hallucinogens" - glass_name = "Ashwine" - glass_desc = "A traditional sacrament for members of the Saint-Roumain Militia. Known to grant visions, and is used both for ritual and entertainment purposes aboard Saint-Roumain vessels." - breakaway_flask_icon_state = "baflaskashwine" - -/datum/reagent/consumable/ethanol/ash_wine/on_mob_life(mob/living/M) - var/high_message = pick("you feel far more devoted to the cause", "you feel like you should go on a hunt") - var/cleanse_message = pick("divine light purifies you", "you are purged of foul spirts") - //needs to get updated anytime someone adds a srm job - var/static/list/increased_toxin_loss = list("Hunter Montagne", "Hunter Doctor", "Hunter", "Shadow") - if(prob(10)) - M.set_drugginess(10) - to_chat(M, "[high_message]") - if(M.mind && (M.mind.assigned_role in increased_toxin_loss)) - M.adjustToxLoss(-2) - if(prob(10)) - to_chat(M, "[cleanse_message]") - ..() - . = 1 - -/datum/reagent/consumable/ethanol/ash_wine/expose_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1) - if(method == TOUCH) - if(!iscarbon(M)) - reac_volume = reac_volume * 2 - M.Jitter(3 * reac_volume) - M.Dizzy(2 * reac_volume) - M.set_drugginess(3 * reac_volume) - M.emote(pick("twitch","giggle")) - -/datum/reagent/consumable/ethanol/ice_wine - name = "Icewine" - description = "A specialized brew utilized by members of the Saint-Roumain Militia, designed to assist in temperature regulation while working in hot environments. Known to give one the cold shoulder when thrown." - color = "#21EFEB" - boozepwr = 70 - taste_description = "a cold night on the hunt" - glass_name = "Icewine" - glass_desc = "A specialized brew utilized by members of the Saint-Roumain Militia, designed to assist in temperature regulation while working in hot environments. Known to give one the cold shoulder when thrown." - breakaway_flask_icon_state = "baflaskicewine" - -/datum/reagent/consumable/ethanol/ice_wine/on_mob_life(mob/living/M) - M.adjust_bodytemperature(-10 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal()) - M.adjustFireLoss(-1) - ..() - return TRUE - -/datum/reagent/consumable/ethanol/ice_wine/expose_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1) - if(method == TOUCH) - if(!iscarbon(M)) - reac_volume = reac_volume * 2 - M.adjust_bodytemperature((-20*reac_volume) * TEMPERATURE_DAMAGE_COEFFICIENT) - M.Paralyze(reac_volume) - walk(M, 0) //stops them mid pathing even if they're stunimmunee - M.apply_status_effect(/datum/status_effect/ice_block_talisman, (0.1 * reac_volume) SECONDS) - -/datum/reagent/consumable/ethanol/shock_wine - name = "Shock Wine" - description = "A stimulating brew utilized by members of the Saint-Roumain Militia, created to allow trackers to keep up with highly mobile prey. Known to have a shocking effect when thrown" - color = "#00008b" - taste_description = "the adrenaline of the chase" - glass_name = "Shock Wine" - glass_desc = "A stimulating brew utilized by members of the Saint-Roumain Militia, created to allow trackers to keep up with highly mobile prey. Known to have a shocking effect when thrown" - breakaway_flask_icon_state = "baflaskshockwine" - -/datum/reagent/consumable/ethanol/shock_wine/on_mob_metabolize(mob/living/M) - ..() - M.add_movespeed_modifier(/datum/movespeed_modifier/reagent/shock_wine) - -/datum/reagent/consumable/ethanol/shock_wine/on_mob_end_metabolize(mob/living/M) - M.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/shock_wine) - ..() - -/datum/reagent/consumable/ethanol/shock_wine/expose_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1) - if(method == TOUCH) - //simple mobs are so tanky and i want this to be useful on them - if(iscarbon(M)) - reac_volume = reac_volume / 4 - M.electrocute_act(reac_volume, src, siemens_coeff = 1, flags = SHOCK_NOSTUN|SHOCK_TESLA) - do_sparks(5, FALSE, M) - playsound(M, 'sound/machines/defib_zap.ogg', 100, TRUE) diff --git a/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm index 4fc71a1eba0d..88ce3870e575 100644 --- a/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm @@ -425,7 +425,7 @@ WS End*/ var/mob/living/carbon/carbies = M if (carbies.stat == DEAD) show_message = 0 - if(method in list(PATCH, TOUCH)) + if(method in list(PATCH, TOUCH, SMOKE)) var/harmies = min(carbies.getBruteLoss(),carbies.adjustBruteLoss(-1.25 * reac_volume)*-1) var/burnies = min(carbies.getFireLoss(),carbies.adjustFireLoss(-1.25 * reac_volume)*-1) carbies.adjustToxLoss((harmies+burnies)*0.66) diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index 984378477292..e4e6bdd1d620 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -118,18 +118,18 @@ F.fry(volume) F.reagents.add_reagent(/datum/reagent/consumable/cooking_oil, reac_volume) -/datum/reagent/consumable/cooking_oil/expose_mob(mob/living/M, method = TOUCH, reac_volume, show_message = 1, touch_protection = 0) +/datum/reagent/consumable/cooking_oil/expose_mob(mob/living/M, method = TOUCH, method = SMOKE, reac_volume, show_message = 1, touch_protection = 0) if(!istype(M)) return var/boiling = FALSE if(holder && holder.chem_temp >= fry_temperature) boiling = TRUE - if(method != VAPOR && method != TOUCH) //Directly coats the mob, and doesn't go into their bloodstream + if(method != VAPOR && method != TOUCH && method != SMOKE) //Directly coats the mob, and doesn't go into their bloodstream return ..() if(!boiling) return TRUE var/oil_damage = ((holder.chem_temp / fry_temperature) * 0.33) //Damage taken per unit - if(method == TOUCH) + if(method == TOUCH || method == SMOKE) oil_damage *= 1 - M.get_permeability_protection() var/FryLoss = round(min(38, oil_damage * reac_volume)) if(!HAS_TRAIT(M, TRAIT_OIL_FRIED)) @@ -139,7 +139,7 @@ M.emote("scream") playsound(M, 'sound/machines/fryer/deep_fryer_emerge.ogg', 25, TRUE) ADD_TRAIT(M, TRAIT_OIL_FRIED, "cooking_oil_react") - addtimer(CALLBACK(M, /mob/living/proc/unfry_mob), 3) + addtimer(CALLBACK(M, TYPE_PROC_REF(/mob/living, unfry_mob)), 3) if(FryLoss) M.adjustFireLoss(FryLoss) return TRUE @@ -287,7 +287,7 @@ return var/mob/living/carbon/victim = M - if(method == TOUCH || method == VAPOR) + if(method == TOUCH || method == SMOKE || method == VAPOR) var/pepper_proof = victim.is_pepper_proof() //check for protection @@ -300,7 +300,7 @@ victim.confused = max(M.confused, 5) // 10 seconds victim.Knockdown(3 SECONDS) victim.add_movespeed_modifier(/datum/movespeed_modifier/reagent/pepperspray) - addtimer(CALLBACK(victim, /mob.proc/remove_movespeed_modifier, /datum/movespeed_modifier/reagent/pepperspray), 10 SECONDS) + addtimer(CALLBACK(victim, TYPE_PROC_REF(/mob, remove_movespeed_modifier), /datum/movespeed_modifier/reagent/pepperspray), 10 SECONDS) victim.update_damage_hud() if(method == INGEST) if(!holder.has_reagent(/datum/reagent/consumable/milk)) @@ -561,7 +561,7 @@ ..() /datum/reagent/consumable/honey/expose_mob(mob/living/M, method=TOUCH, reac_volume) - if(iscarbon(M) && (method in list(TOUCH, VAPOR, PATCH))) + if(iscarbon(M) && (method in list(TOUCH, VAPOR, PATCH, SMOKE))) var/mob/living/carbon/C = M for(var/s in C.surgeries) var/datum/surgery/S = s @@ -673,7 +673,7 @@ /datum/reagent/consumable/tinlux/proc/add_reagent_light(mob/living/living_holder) var/obj/effect/dummy/lighting_obj/moblight/mob_light_obj = living_holder.mob_light(2) LAZYSET(mobs_affected, living_holder, mob_light_obj) - RegisterSignal(living_holder, COMSIG_PARENT_QDELETING, .proc/on_living_holder_deletion) + RegisterSignal(living_holder, COMSIG_PARENT_QDELETING, PROC_REF(on_living_holder_deletion)) /datum/reagent/consumable/tinlux/proc/remove_reagent_light(mob/living/living_holder) UnregisterSignal(living_holder, COMSIG_PARENT_QDELETING) @@ -821,7 +821,7 @@ ingested = TRUE return SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "pyre_elementum", /datum/mood_event/irritate, name) // Applied if not eaten - if(method == TOUCH || method == VAPOR) + if(method == TOUCH || method == SMOKE || method == VAPOR) M.adjust_fire_stacks(reac_volume / 5) return ..() diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 98d72d1fd5c6..24be546cb3f6 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -415,7 +415,7 @@ if(iscarbon(M)) if (M.stat == DEAD) show_message = 0 - if(method in list(PATCH, TOUCH)) + if(method in list(PATCH, TOUCH, SMOKE)) M.adjustBruteLoss(-1.25 * reac_volume) M.adjustFireLoss(-1.25 * reac_volume) if(show_message) @@ -942,9 +942,9 @@ M.notify_ghost_cloning("Your body is being revived with Strange Reagent!") M.do_jitter_animation(10) var/excess_healing = 5*(reac_volume-amount_to_revive) //excess reagent will heal blood and organs across the board - addtimer(CALLBACK(M, /mob/living/carbon.proc/do_jitter_animation, 10), 40) //jitter immediately, then again after 4 and 8 seconds - addtimer(CALLBACK(M, /mob/living/carbon.proc/do_jitter_animation, 10), 80) - addtimer(CALLBACK(M, /mob/living.proc/revive, FALSE, FALSE, excess_healing), 79) + addtimer(CALLBACK(M, TYPE_PROC_REF(/mob/living/carbon, do_jitter_animation), 10), 40) //jitter immediately, then again after 4 and 8 seconds + addtimer(CALLBACK(M, TYPE_PROC_REF(/mob/living/carbon, do_jitter_animation), 10), 80) + addtimer(CALLBACK(M, TYPE_PROC_REF(/mob/living, revive), FALSE, FALSE, excess_healing), 79) ..() /datum/reagent/medicine/strange_reagent/on_mob_life(mob/living/carbon/M) @@ -1642,7 +1642,7 @@ . = 1 /datum/reagent/medicine/polypyr/expose_mob(mob/living/M, method=TOUCH, reac_volume) - if(method == TOUCH || method == VAPOR) + if(method == TOUCH || method == SMOKE || method == VAPOR) if(M && ishuman(M) && reac_volume >= 0.5) var/mob/living/carbon/human/H = M H.hair_color = "92f" diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 753d0f1408a6..9915ca9c4d24 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -18,7 +18,7 @@ if((D.spread_flags & DISEASE_SPREAD_SPECIAL) || (D.spread_flags & DISEASE_SPREAD_NON_CONTAGIOUS)) continue - if((method == TOUCH || method == VAPOR) && (D.spread_flags & DISEASE_SPREAD_CONTACT_FLUIDS)) + if(((method == TOUCH || method == SMOKE) || method == VAPOR) && (D.spread_flags & DISEASE_SPREAD_CONTACT_FLUIDS)) L.ContactContractDisease(D) else //ingest, patch or inject L.ForceContractDisease(D) @@ -198,7 +198,7 @@ /datum/reagent/water/expose_mob(mob/living/M, method=TOUCH, reac_volume)//Splashing people with water can help put them out! if(!istype(M)) return - if(method == TOUCH) + if(method == TOUCH || method == SMOKE) M.adjust_fire_stacks(-(reac_volume / 10)) M.ExtinguishMob() ..() @@ -330,7 +330,7 @@ /datum/reagent/hydrogen_peroxide/expose_mob(mob/living/M, method=TOUCH, reac_volume)//Splashing people with h2o2 can burn them ! if(!istype(M)) return - if(method == TOUCH) + if(method == TOUCH || method == SMOKE) M.adjustFireLoss(2, 0) // burns ..() @@ -340,7 +340,7 @@ taste_description = "suffering" /datum/reagent/fuel/unholywater/expose_mob(mob/living/M, method=TOUCH, reac_volume) - if(method == TOUCH || method == VAPOR) + if((method == TOUCH || method == SMOKE) || method == VAPOR) M.reagents.add_reagent(type,reac_volume/4) return return ..() @@ -750,7 +750,7 @@ taste_description = "slime" /datum/reagent/aslimetoxin/expose_mob(mob/living/L, method=TOUCH, reac_volume) - if(method != TOUCH) + if(method != TOUCH && method != SMOKE) L.ForceContractDisease(new /datum/disease/transformation/slime(), FALSE, TRUE) /datum/reagent/gluttonytoxin @@ -998,7 +998,7 @@ taste_description = "bitterness" /datum/reagent/space_cleaner/sterilizine/expose_mob(mob/living/carbon/C, method=TOUCH, reac_volume) - if(method in list(TOUCH, VAPOR, PATCH)) + if(method in list(TOUCH, VAPOR, PATCH, SMOKE)) for(var/s in C.surgeries) var/datum/surgery/S = s S.speed_modifier = max(0.2, S.speed_modifier) @@ -1119,7 +1119,7 @@ //WS End /datum/reagent/bluespace/expose_mob(mob/living/M, method=TOUCH, reac_volume) - if(method == TOUCH || method == VAPOR) + if((method == TOUCH || method == SMOKE) || method == VAPOR) do_teleport(M, get_turf(M), (reac_volume / 5), asoundin = 'sound/effects/phasein.ogg', channel = TELEPORT_CHANNEL_BLUESPACE) //4 tiles per crystal ..() @@ -1128,7 +1128,7 @@ to_chat(M, "You feel unstable...") M.Jitter(2) current_cycle = 1 - addtimer(CALLBACK(M, /mob/living/proc/bluespace_shuffle), 30) + addtimer(CALLBACK(M, TYPE_PROC_REF(/mob/living, bluespace_shuffle)), 30) ..() /mob/living/proc/bluespace_shuffle() @@ -1179,7 +1179,7 @@ accelerant_quality = 10 /datum/reagent/fuel/expose_mob(mob/living/M, method=TOUCH, reac_volume)//Splashing people with welding fuel to make them easy to ignite! - if(method == TOUCH || method == VAPOR) + if((method == TOUCH || method == SMOKE) || method == VAPOR) M.adjust_fire_stacks(reac_volume / 10) return ..() @@ -1212,7 +1212,7 @@ M.adjustToxLoss(rand(5,10)) /datum/reagent/space_cleaner/expose_mob(mob/living/M, method=TOUCH, reac_volume) - if(method == TOUCH || method == VAPOR) + if((method == TOUCH || method == SMOKE) || method == VAPOR) M.wash(clean_types) /datum/reagent/space_cleaner/ez_clean @@ -1229,7 +1229,7 @@ /datum/reagent/space_cleaner/ez_clean/expose_mob(mob/living/M, method=TOUCH, reac_volume) ..() - if((method == TOUCH || method == VAPOR) && !issilicon(M)) + if(((method == TOUCH || method == SMOKE) || method == VAPOR) && !issilicon(M)) M.adjustBruteLoss(1.5) M.adjustFireLoss(1.5) @@ -1870,7 +1870,7 @@ /datum/reagent/acetone_oxide/expose_mob(mob/living/M, method=TOUCH, reac_volume)//Splashing people kills people! if(!istype(M)) return - if(method == TOUCH) + if(method == TOUCH || method == SMOKE) M.adjustFireLoss(2, FALSE) // burns, M.adjust_fire_stacks((reac_volume / 10)) ..() @@ -1919,7 +1919,7 @@ var/can_colour_mobs = TRUE /datum/reagent/colorful_reagent/New() - SSticker.OnRoundstart(CALLBACK(src,.proc/UpdateColor)) + SSticker.OnRoundstart(CALLBACK(src, PROC_REF(UpdateColor))) /datum/reagent/colorful_reagent/proc/UpdateColor() color = pick(random_color_list) @@ -1944,13 +1944,13 @@ taste_description = "sourness" /datum/reagent/hair_dye/New() - SSticker.OnRoundstart(CALLBACK(src,.proc/UpdateColor)) + SSticker.OnRoundstart(CALLBACK(src, PROC_REF(UpdateColor))) /datum/reagent/hair_dye/proc/UpdateColor() color = pick(potential_colors) /datum/reagent/hair_dye/expose_mob(mob/living/M, method=TOUCH, reac_volume) - if(method == TOUCH || method == VAPOR) + if((method == TOUCH || method == SMOKE) || method == VAPOR) if(M && ishuman(M)) var/mob/living/carbon/human/H = M H.hair_color = pick(potential_colors) @@ -1965,7 +1965,7 @@ taste_description = "sourness" /datum/reagent/barbers_aid/expose_mob(mob/living/M, method=TOUCH, reac_volume) - if(method == TOUCH || method == VAPOR) + if((method == TOUCH || method == SMOKE) || method == VAPOR) if(M && ishuman(M) && !HAS_TRAIT(M, TRAIT_BALD)) var/mob/living/carbon/human/H = M var/datum/sprite_accessory/hair/picked_hair = pick(GLOB.hairstyles_list) @@ -1983,7 +1983,7 @@ taste_description = "sourness" /datum/reagent/concentrated_barbers_aid/expose_mob(mob/living/M, method=TOUCH, reac_volume) - if(method == TOUCH || method == VAPOR) + if((method == TOUCH || method == SMOKE) || method == VAPOR) if(M && ishuman(M) && !HAS_TRAIT(M, TRAIT_BALD)) var/mob/living/carbon/human/H = M to_chat(H, "Your hair starts growing at an incredible speed!") @@ -1999,7 +1999,7 @@ taste_description = "bitterness" /datum/reagent/baldium/expose_mob(mob/living/M, method=TOUCH, reac_volume) - if(method == TOUCH || method == VAPOR) + if((method == TOUCH || method == SMOKE) || method == VAPOR) if(M && ishuman(M)) var/mob/living/carbon/human/H = M to_chat(H, "Your hair is falling out in clumps!") @@ -2414,7 +2414,7 @@ /datum/reagent/gravitum/expose_obj(obj/O, volume) O.AddElement(/datum/element/forced_gravity, 0) - addtimer(CALLBACK(O, .proc/_RemoveElement, list(/datum/element/forced_gravity, 0)), volume * time_multiplier) + addtimer(CALLBACK(O, PROC_REF(_RemoveElement), list(/datum/element/forced_gravity, 0)), volume * time_multiplier) /datum/reagent/gravitum/on_mob_add(mob/living/L) L.AddElement(/datum/element/forced_gravity, 0) //0 is the gravity, and in this case weightless @@ -2565,14 +2565,14 @@ ) /datum/reagent/three_eye/on_mob_metabolize(mob/living/L) . = ..() - //addtimer(CALLBACK(L, /mob.proc/add_client_colour, /datum/client_colour/thirdeye), 1.5 SECONDS) + //addtimer(CALLBACK(L, TYPE_PROC_REF(/mob, add_client_colour), /datum/client_colour/thirdeye), 1.5 SECONDS) L.add_client_colour(/datum/client_colour/thirdeye) if(L.client?.holder) //You are worthy. worthy = TRUE L.visible_message("Grips their head and dances around, collapsing to the floor!", \ "Visions of a realm BYOND your own flash across your eyes, before it all goes black...") - addtimer(CALLBACK(L, /mob/living.proc/SetSleeping, 40 SECONDS), 10 SECONDS) - addtimer(CALLBACK(L.reagents, /datum/reagents.proc/remove_reagent, src.type, src.volume,), 10 SECONDS) + addtimer(CALLBACK(L, TYPE_PROC_REF(/mob/living, SetSleeping), 40 SECONDS), 10 SECONDS) + addtimer(CALLBACK(L.reagents, TYPE_PROC_REF(/datum/reagents, remove_reagent), src.type, src.volume,), 10 SECONDS) return /datum/reagent/three_eye/on_mob_life(mob/living/carbon/M) @@ -2600,7 +2600,7 @@ if(ishuman(M)) var/mob/living/carbon/human/H = M - addtimer(CALLBACK(H, /mob/living.proc/seizure), rand(1 SECONDS, 5 SECONDS)) + addtimer(CALLBACK(H, TYPE_PROC_REF(/mob/living, seizure)), rand(1 SECONDS, 5 SECONDS)) /datum/reagent/three_eye/overdose_process(mob/living/M) . = ..() @@ -2620,9 +2620,9 @@ to_chat(L, "Your mind reels and the world begins to fade away...") if(iscarbon(L)) var/mob/living/carbon/C = L - addtimer(CALLBACK(C, /mob/living/carbon.proc/adjustOrganLoss, ORGAN_SLOT_BRAIN, 200), 5 SECONDS) //Deathblow to the brain + addtimer(CALLBACK(C, TYPE_PROC_REF(/mob/living/carbon, adjustOrganLoss), ORGAN_SLOT_BRAIN, 200), 5 SECONDS) //Deathblow to the brain else - addtimer(CALLBACK(L, /mob/living.proc/gib), 5 SECONDS) + addtimer(CALLBACK(L, TYPE_PROC_REF(/mob/living, gib)), 5 SECONDS) /datum/reagent/cement name = "Cement" @@ -2786,3 +2786,9 @@ description = "Fur obtained from griding up a polar bears hide" reagent_state = SOLID color = "#eeeeee" // rgb: 238, 238, 238 + +/datum/reagent/srm_bacteria + name = "Illestren Bacteria" + description = "Bacteria native to the Saint-Roumain Militia home planet." + color = "#5a4f42" + taste_description = "sour" diff --git a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm index 0445138a4e20..62c743558e13 100644 --- a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm @@ -319,7 +319,7 @@ O.extinguish() /datum/reagent/firefighting_foam/expose_mob(mob/living/M, method=TOUCH, reac_volume) - if(method in list(VAPOR, TOUCH)) + if(method in list(VAPOR, TOUCH, SMOKE)) M.adjust_fire_stacks(-reac_volume) M.ExtinguishMob() ..() diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index 9cde25afcac0..6af26706b9f8 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -104,7 +104,7 @@ T.atmos_spawn_air("plasma=[reac_volume];TEMP=[temp]") /datum/reagent/toxin/plasma/expose_mob(mob/living/M, method=TOUCH, reac_volume)//Splashing people with plasma is stronger than fuel! - if(method == TOUCH || method == VAPOR) + if((method == TOUCH || method == SMOKE) || method == VAPOR) M.adjust_fire_stacks(reac_volume / 5) return ..() @@ -574,7 +574,7 @@ toxpwr = 0 /datum/reagent/toxin/itching_powder/expose_mob(mob/living/M, method=TOUCH, reac_volume) - if(method == TOUCH || method == VAPOR) + if((method == TOUCH || method == SMOKE) || method == VAPOR) 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/reagents/trickwine_reagents.dm b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm new file mode 100644 index 000000000000..8b13d62e72b0 --- /dev/null +++ b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm @@ -0,0 +1,207 @@ +/datum/reagent/consumable/ethanol/trickwine + name = "Trickwine" + description = "How is this even possible" + +/datum/reagent/consumable/ethanol/trickwine/ash_wine + name = "Ashwine" + description = "A traditional sacrament for members of the Saint-Roumain Militia. Known to grant visions, and is used both for ritual and entertainment purposes aboard Saint-Roumain vessels." + color = "#293D25" + boozepwr = 80 + quality = DRINK_VERYGOOD + taste_description = "devotional energy and a hint of high-potency hallucinogens" + glass_name = "Ashwine" + glass_desc = "A traditional sacrament for members of the Saint-Roumain Militia. Known to grant visions, and is used both for ritual and entertainment purposes aboard Saint-Roumain vessels." + breakaway_flask_icon_state = "baflaskashwine" + +/datum/reagent/consumable/ethanol/trickwine/ash_wine/on_mob_life(mob/living/M) + var/high_message = pick("You feel far more devoted to the cause", "You feel like you should go on a hunt") + var/cleanse_message = pick("Divine light purifies you.", "You are purged of foul spirts.") + if(prob(10)) + M.set_drugginess(10) + to_chat(M, "[high_message]") + if(M.faction && ("roumain" in M.faction)) + M.adjustToxLoss(-2) + if(prob(10)) + to_chat(M, "[cleanse_message]") + return ..() + +/datum/reagent/consumable/ethanol/trickwine/ash_wine/expose_mob(mob/living/M, method=TOUCH, reac_volume) + if(method == TOUCH) + if(!iscarbon(M)) + var/mob/living/simple_animal/hostile/hostile_target = M + var/hostile_ai_status = hostile_target.AIStatus + hostile_target.AIStatus = AI_OFF + addtimer(VARSET_CALLBACK(hostile_target, AIStatus, hostile_ai_status),reac_volume) + M.Jitter(3 * reac_volume) + M.Dizzy(2 * reac_volume) + M.set_drugginess(3 * reac_volume) + M.emote(pick("twitch","giggle")) + return ..() + +/datum/reagent/consumable/ethanol/trickwine/ice_wine + name = "Icewine" + description = "A specialized brew utilized by members of the Saint-Roumain Militia, designed to assist in temperature regulation while working in hot environments. Known to give one the cold shoulder when thrown." + color = "#21EFEB" + boozepwr = 70 + taste_description = "a cold night on the hunt" + glass_name = "Icewine" + glass_desc = "A specialized brew utilized by members of the Saint-Roumain Militia, designed to assist in temperature regulation while working in hot environments. Known to give one the cold shoulder when thrown." + breakaway_flask_icon_state = "baflaskicewine" + +/datum/reagent/consumable/ethanol/trickwine/ice_wine/on_mob_life(mob/living/M) + M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal()) + M.adjustFireLoss(-1) + return ..() + + +/datum/reagent/consumable/ethanol/trickwine/ice_wine/expose_mob(mob/living/M, method=TOUCH, reac_volume) + if(method == TOUCH) + var/paralyze_dur + if(!iscarbon(M)) + reac_volume = reac_volume * 2 + paralyze_dur = reac_volume + else + if(reac_volume <= 50) + paralyze_dur = reac_volume + else + paralyze_dur = 50 + ((reac_volume - 50) / 4) + M.adjust_bodytemperature((-20*reac_volume) * TEMPERATURE_DAMAGE_COEFFICIENT, 50) + M.Paralyze(paralyze_dur) + walk(M, 0) //stops them mid pathing even if they're stunimmunee + M.apply_status_effect(/datum/status_effect/ice_block_talisman, paralyze_dur) + return ..() + +/datum/reagent/consumable/ethanol/trickwine/shock_wine + name = "Shockwine" + description = "A stimulating brew utilized by members of the Saint-Roumain Militia, created to allow trackers to keep up with highly mobile prey. Known to have a shocking effect when thrown" + color = "#00008b" + boozepwr = 70 + taste_description = "the adrenaline of the chase" + glass_name = "Shockwine" + glass_desc = "A stimulating brew utilized by members of the Saint-Roumain Militia, created to allow trackers to keep up with highly mobile prey. Known to have a shocking effect when thrown" + breakaway_flask_icon_state = "baflaskshockwine" + +/datum/reagent/consumable/ethanol/trickwine/shock_wine/on_mob_metabolize(mob/living/M) + ..() + M.add_movespeed_modifier(/datum/movespeed_modifier/reagent/shock_wine) + to_chat(M, "You feel faster the lightning!") + +/datum/reagent/consumable/ethanol/trickwine/shock_wine/on_mob_end_metabolize(mob/living/M) + M.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/shock_wine) + to_chat(M, "You slow to a crawl...") + ..() + +/datum/reagent/consumable/ethanol/trickwine/shock_wine/expose_mob(mob/living/M, method=TOUCH, reac_volume) + if(method == TOUCH) + //simple mobs are so tanky and i want this to be useful on them + if(iscarbon(M)) + reac_volume = reac_volume / 4 + M.electrocute_act(reac_volume, src, siemens_coeff = 1, flags = SHOCK_NOSTUN|SHOCK_TESLA) + do_sparks(5, FALSE, M) + playsound(M, 'sound/machines/defib_zap.ogg', 100, TRUE) + return ..() + +/datum/reagent/consumable/ethanol/trickwine/hearth_wine + name = "Hearthwine" + description = "A fiery brew utilized by members of the Saint-Roumain Militia, engineered to cauterize wounds in the field. Goes out in a blaze of glory when thrown." + color = "#ff8c00" + boozepwr = 70 + taste_description = "the heat of battle" + glass_name = "Hearthwine" + glass_desc = "Fiery brew utilized by members of the Saint-Roumain Militia, engineered to cauterize wounds in the field. Goes out in a blaze of glory when thrown." + breakaway_flask_icon_state = "baflaskhearthwine" + +/datum/reagent/consumable/ethanol/trickwine/hearth_wine/on_mob_life(mob/living/M) + M.adjust_bodytemperature(5 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal()) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + H.bleed_rate = max(H.bleed_rate - 0.25, 0) + return ..() + +/datum/reagent/consumable/ethanol/trickwine/hearth_wine/expose_mob(mob/living/M, method=TOUCH, reac_volume) + if(method == TOUCH) + if(!iscarbon(M)) + reac_volume = reac_volume * 2 + M.fire_act() + var/turf/T = get_turf(M) + T.IgniteTurf(reac_volume) + new /obj/effect/hotspot(T, reac_volume * 1, FIRE_MINIMUM_TEMPERATURE_TO_EXIST + reac_volume * 10) + var/turf/otherT + for(var/direction in GLOB.cardinals) + otherT = get_step(T, direction) + otherT.IgniteTurf(reac_volume) + new /obj/effect/hotspot(otherT, reac_volume * 1, FIRE_MINIMUM_TEMPERATURE_TO_EXIST + reac_volume * 10) + return ..() + +/datum/reagent/consumable/ethanol/trickwine/force_wine + name = "Forcewine" + description = "A fortifying brew utilized by members of the Saint-Roumain Militia, created to protect against the esoteric. Known to act defensively when thrown." + color = "#8b009b" + boozepwr = 70 + taste_description = "the strength of your convictions" + glass_name = "Forcewine" + glass_desc = "A fortifying brew utilized by members of the Saint-Roumain Militia, created to protect against the esoteric. Known to act defensively when thrown." + breakaway_flask_icon_state = "baflaskforcewine" + +/datum/reagent/consumable/ethanol/trickwine/force_wine/on_mob_metabolize(mob/living/M) + ..() + ADD_TRAIT(M, TRAIT_ANTIMAGIC, "trickwine") + ADD_TRAIT(M, TRAIT_MINDSHIELD, "trickwine") + M.visible_message("[M] glows a dim grey aura") + +/datum/reagent/consumable/ethanol/trickwine/force_wine/on_mob_end_metabolize(mob/living/M) + M.visible_message("[M]'s aura fades away ") + REMOVE_TRAIT(M, TRAIT_ANTIMAGIC, "trickwine") + REMOVE_TRAIT(M, TRAIT_MINDSHIELD, "trickwine") + ..() + +/datum/reagent/consumable/ethanol/trickwine/force_wine/expose_mob(mob/living/M, method=TOUCH, reac_volume) + if(method == TOUCH) + if(!iscarbon(M)) + reac_volume = reac_volume * 2 + var/turf/T = get_turf(M) + var/turf/otherT + new /obj/effect/forcefield/resin(T, reac_volume * 4) + for(var/direction in GLOB.cardinals) + otherT = get_step(T, direction) + new /obj/effect/forcefield/resin(otherT, reac_volume * 4) + return ..() + +/datum/reagent/consumable/ethanol/trickwine/prism_wine + name = "Prismwine" + description = "A glittering brew utilized by members of the Saint-Roumain Militia, mixed to provide defense against the blasts and burns of foes and fauna alike. Softens targets against your own burns when thrown." + color = "#add8e6" + boozepwr = 70 + taste_description = "the reflective quality of meditation" + glass_name = "Prismwine" + glass_desc = "A glittering brew utilized by members of the Saint-Roumain Militia, mixed to provide defense against the blasts and burns of foes and fauna alike. Softens targets against your own burns when thrown." + breakaway_flask_icon_state = "baflaskprismwine" + +/datum/reagent/consumable/ethanol/trickwine/prism_wine/on_mob_metabolize(mob/living/carbon/human/M) + ..() + if(M.physiology.burn_mod <= initial(M.physiology.burn_mod)) + M.physiology.burn_mod *= 0.5 + M.visible_message("[M] seems to shimmer with power!") + +/datum/reagent/consumable/ethanol/trickwine/prism_wine/on_mob_end_metabolize(mob/living/carbon/human/M) + if(M.physiology.burn_mod > initial(M.physiology.burn_mod)) + M.physiology.burn_mod *= 2 + M.visible_message("[M] has returned to normal!") + ..() + +/datum/reagent/consumable/ethanol/trickwine/prism_wine/expose_mob(mob/living/M, method=TOUCH, reac_volume) + if(method == TOUCH) + if(istype(M, /mob/living/simple_animal/hostile/asteroid)) + var/mob/living/simple_animal/hostile/asteroid/the_animal = M + the_animal.armor.modifyRating(energy = -50) + spawn(reac_volume SECONDS) + the_animal.armor.modifyRating(energy = 50) + if(ishuman(M)) + var/mob/living/carbon/human/the_human = M + if(the_human.physiology.burn_mod < 2) + the_human.physiology.burn_mod *= 2 + the_human.visible_message("[the_human] seemed weakend!") + spawn(reac_volume SECONDS) + the_human.physiology.burn_mod *= 0.5 + the_human.visible_message("[the_human] has returned to normal!") + return ..() diff --git a/code/modules/reagents/chemistry/recipes.dm b/code/modules/reagents/chemistry/recipes.dm index 57df3331c799..4aa0bbc2fe94 100644 --- a/code/modules/reagents/chemistry/recipes.dm +++ b/code/modules/reagents/chemistry/recipes.dm @@ -68,7 +68,7 @@ else if(setting_type) if(step_away(X, T) && moving_power > 1) //Can happen twice at most. So this is fine. - addtimer(CALLBACK(GLOBAL_PROC, .proc/_step_away, X, T), 2) + addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(_step_away), X, T), 2) else if(step_towards(X, T) && moving_power > 1) - addtimer(CALLBACK(GLOBAL_PROC, .proc/_step_towards, X, T), 2) + addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(_step_towards), X, T), 2) diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm index 82be8a075cc1..f6f46d3c3970 100644 --- a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm +++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm @@ -92,7 +92,7 @@ strengthdiv = 3 /datum/chemical_reaction/reagent_explosion/tatp/New() - SSticker.OnRoundstart(CALLBACK(src,.proc/UpdateInfo)) //method used by secret sauce. + SSticker.OnRoundstart(CALLBACK(src, PROC_REF(UpdateInfo))) //method used by secret sauce. /datum/chemical_reaction/reagent_explosion/tatp/proc/UpdateInfo() //note to the future: find the PR that refactors this so that we can port more of https://github.com/tgstation/tgstation/pull/50775 required_temp = 450 + rand(-49,49) //this gets loaded only on round start @@ -109,7 +109,7 @@ strengthdiv = 3 /datum/chemical_reaction/reagent_explosion/tatp_explosion/New() //did i mention i have no idea what i am doing? - zeta - SSticker.OnRoundstart(CALLBACK(src,.proc/UpdateInfo)) + SSticker.OnRoundstart(CALLBACK(src, PROC_REF(UpdateInfo))) /datum/chemical_reaction/reagent_explosion/tatp_explosion/on_reaction(datum/reagents/holder, created_volume) var/strengthdiv_adjust = created_volume / (2100 / initial(strengthdiv)) @@ -151,7 +151,7 @@ R.stun(20) R.reveal(100) R.adjustHealth(50) - addtimer(CALLBACK(src, .proc/divine_explosion, round(created_volume/48,1),get_turf(holder.my_atom)), 2 SECONDS) + addtimer(CALLBACK(src, PROC_REF(divine_explosion), round(created_volume/48,1),get_turf(holder.my_atom)), 2 SECONDS) ..() /datum/chemical_reaction/reagent_explosion/potassium_explosion/holyboom/proc/divine_explosion(size, turf/T) @@ -175,7 +175,7 @@ /datum/chemical_reaction/reagent_explosion/gunpowder_explosion/on_reaction(datum/reagents/holder, created_volume) - addtimer(CALLBACK(src, .proc/explode, holder, created_volume), rand(5,10) SECONDS) + addtimer(CALLBACK(src, PROC_REF(explode), holder, created_volume), rand(5,10) SECONDS) /datum/chemical_reaction/thermite results = list(/datum/reagent/thermite = 3) @@ -460,14 +460,14 @@ var/T3 = created_volume * 120 var/added_delay = 0.5 SECONDS if(created_volume >= 75) - addtimer(CALLBACK(src, .proc/zappy_zappy, holder, T1), added_delay) + addtimer(CALLBACK(src, PROC_REF(zappy_zappy), holder, T1), added_delay) added_delay += 1.5 SECONDS if(created_volume >= 40) - addtimer(CALLBACK(src, .proc/zappy_zappy, holder, T2), added_delay) + addtimer(CALLBACK(src, PROC_REF(zappy_zappy), holder, T2), added_delay) added_delay += 1.5 SECONDS if(created_volume >= 10) //10 units minimum for lightning, 40 units for secondary blast, 75 units for tertiary blast. - addtimer(CALLBACK(src, .proc/zappy_zappy, holder, T3), added_delay) - addtimer(CALLBACK(src, .proc/explode, holder, created_volume), added_delay) + addtimer(CALLBACK(src, PROC_REF(zappy_zappy), holder, T3), added_delay) + addtimer(CALLBACK(src, PROC_REF(explode), holder, created_volume), added_delay) /datum/chemical_reaction/reagent_explosion/teslium_lightning/proc/zappy_zappy(datum/reagents/holder, power) if(QDELETED(holder.my_atom)) diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm index bf2f58b146ad..07753cea4a15 100644 --- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm +++ b/code/modules/reagents/chemistry/recipes/slime_extracts.dm @@ -92,32 +92,32 @@ var/obj/item/slime_extract/M = holder.my_atom deltimer(M.qdel_timer) ..() - M.qdel_timer = addtimer(CALLBACK(src, .proc/delete_extract, holder), 55, TIMER_STOPPABLE) + M.qdel_timer = addtimer(CALLBACK(src, PROC_REF(delete_extract), holder), 55, TIMER_STOPPABLE) /datum/chemical_reaction/slime/slimemobspawn/proc/summon_mobs(datum/reagents/holder, turf/T) T.visible_message("The slime extract begins to vibrate violently!") - addtimer(CALLBACK(src, .proc/chemical_mob_spawn, holder, 5, "Gold Slime", HOSTILE_SPAWN), 50) + addtimer(CALLBACK(src, PROC_REF(chemical_mob_spawn), holder, 5, "Gold Slime", HOSTILE_SPAWN), 50) /datum/chemical_reaction/slime/slimemobspawn/lesser required_reagents = list(/datum/reagent/blood = 1) /datum/chemical_reaction/slime/slimemobspawn/lesser/summon_mobs(datum/reagents/holder, turf/T) T.visible_message("The slime extract begins to vibrate violently!") - addtimer(CALLBACK(src, .proc/chemical_mob_spawn, holder, 3, "Lesser Gold Slime", HOSTILE_SPAWN, "neutral"), 50) + addtimer(CALLBACK(src, PROC_REF(chemical_mob_spawn), holder, 3, "Lesser Gold Slime", HOSTILE_SPAWN, "neutral"), 50) /datum/chemical_reaction/slime/slimemobspawn/friendly required_reagents = list(/datum/reagent/water = 1) /datum/chemical_reaction/slime/slimemobspawn/friendly/summon_mobs(datum/reagents/holder, turf/T) T.visible_message("The slime extract begins to vibrate adorably!") - addtimer(CALLBACK(src, .proc/chemical_mob_spawn, holder, 1, "Friendly Gold Slime", FRIENDLY_SPAWN, "neutral"), 50) + addtimer(CALLBACK(src, PROC_REF(chemical_mob_spawn), holder, 1, "Friendly Gold Slime", FRIENDLY_SPAWN, "neutral"), 50) /datum/chemical_reaction/slime/slimemobspawn/spider required_reagents = list(/datum/reagent/spider_extract = 1) /datum/chemical_reaction/slime/slimemobspawn/spider/summon_mobs(datum/reagents/holder, turf/T) T.visible_message("The slime extract begins to vibrate crikey-ingly!") - addtimer(CALLBACK(src, .proc/chemical_mob_spawn, holder, 3, "Traitor Spider Slime", /mob/living/simple_animal/hostile/poison/giant_spider/nurse/midwife, "neutral", FALSE), 50) + addtimer(CALLBACK(src, PROC_REF(chemical_mob_spawn), holder, 3, "Traitor Spider Slime", /mob/living/simple_animal/hostile/poison/giant_spider/nurse/midwife, "neutral", FALSE), 50) //Silver @@ -191,11 +191,11 @@ /datum/chemical_reaction/slime/slimefreeze/on_reaction(datum/reagents/holder) var/turf/T = get_turf(holder.my_atom) T.visible_message("The slime extract starts to feel extremely cold!") - addtimer(CALLBACK(src, .proc/freeze, holder), 50) + addtimer(CALLBACK(src, PROC_REF(freeze), holder), 50) var/obj/item/slime_extract/M = holder.my_atom deltimer(M.qdel_timer) ..() - M.qdel_timer = addtimer(CALLBACK(src, .proc/delete_extract, holder), 55, TIMER_STOPPABLE) + M.qdel_timer = addtimer(CALLBACK(src, PROC_REF(delete_extract), holder), 55, TIMER_STOPPABLE) /datum/chemical_reaction/slime/slimefreeze/proc/freeze(datum/reagents/holder) if(holder && holder.my_atom) @@ -228,11 +228,11 @@ /datum/chemical_reaction/slime/slimefire/on_reaction(datum/reagents/holder) var/turf/T = get_turf(holder.my_atom) T.visible_message("The slime extract begins to vibrate adorably!") - addtimer(CALLBACK(src, .proc/slime_burn, holder), 50) + addtimer(CALLBACK(src, PROC_REF(slime_burn), holder), 50) var/obj/item/slime_extract/M = holder.my_atom deltimer(M.qdel_timer) ..() - M.qdel_timer = addtimer(CALLBACK(src, .proc/delete_extract, holder), 55, TIMER_STOPPABLE) + M.qdel_timer = addtimer(CALLBACK(src, PROC_REF(delete_extract), holder), 55, TIMER_STOPPABLE) /datum/chemical_reaction/slime/slimefire/proc/slime_burn(datum/reagents/holder) if(holder && holder.my_atom) @@ -381,11 +381,11 @@ message_admins("Slime Explosion reaction started at [ADMIN_VERBOSEJMP(T)]. Last Fingerprint: [touch_msg]") log_game("Slime Explosion reaction started at [AREACOORD(T)]. Last Fingerprint: [lastkey ? lastkey : "N/A"].") T.visible_message("The slime extract begins to vibrate violently !") - addtimer(CALLBACK(src, .proc/boom, holder), 50) + addtimer(CALLBACK(src, PROC_REF(boom), holder), 50) var/obj/item/slime_extract/M = holder.my_atom deltimer(M.qdel_timer) ..() - M.qdel_timer = addtimer(CALLBACK(src, .proc/delete_extract, holder), 55, TIMER_STOPPABLE) + M.qdel_timer = addtimer(CALLBACK(src, PROC_REF(delete_extract), holder), 55, TIMER_STOPPABLE) /datum/chemical_reaction/slime/slimeexplosion/proc/boom(datum/reagents/holder) if(holder && holder.my_atom) @@ -484,7 +484,7 @@ required_other = TRUE /datum/chemical_reaction/slime/slimestop/on_reaction(datum/reagents/holder) - addtimer(CALLBACK(src, .proc/slime_stop, holder), 5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(slime_stop), holder), 5 SECONDS) /datum/chemical_reaction/slime/slimestop/proc/slime_stop(datum/reagents/holder) var/obj/item/slime_extract/sepia/extract = holder.my_atom @@ -549,7 +549,7 @@ S.visible_message("Infused with plasma, the core begins to expand uncontrollably!") S.icon_state = "[S.base_state]_active" S.active = TRUE - addtimer(CALLBACK(S, /obj/item/grenade.proc/prime), rand(15,60)) + addtimer(CALLBACK(S, TYPE_PROC_REF(/obj/item/grenade, prime)), rand(15,60)) else var/mob/living/simple_animal/slime/random/S = new (get_turf(holder.my_atom)) S.visible_message("Infused with plasma, the core begins to quiver and grow, and a new baby slime emerges from it!") @@ -566,7 +566,7 @@ S.visible_message("Infused with slime jelly, the core begins to expand uncontrollably!") S.icon_state = "[S.base_state]_active" S.active = TRUE - addtimer(CALLBACK(S, /obj/item/grenade.proc/prime), rand(15,60)) + addtimer(CALLBACK(S, TYPE_PROC_REF(/obj/item/grenade, prime)), rand(15,60)) var/lastkey = holder.my_atom.fingerprintslast var/touch_msg = "N/A" if(lastkey) diff --git a/code/modules/reagents/chemistry/recipes/special.dm b/code/modules/reagents/chemistry/recipes/special.dm index f0aeaf8504cd..e95dc19c56b2 100644 --- a/code/modules/reagents/chemistry/recipes/special.dm +++ b/code/modules/reagents/chemistry/recipes/special.dm @@ -177,7 +177,7 @@ GLOBAL_LIST_INIT(food_reagents, build_reagents_to_food()) //reagentid = related if(SSpersistence.initialized) UpdateInfo() else - SSticker.OnRoundstart(CALLBACK(src,.proc/UpdateInfo)) + SSticker.OnRoundstart(CALLBACK(src, PROC_REF(UpdateInfo))) /obj/item/paper/secretrecipe/proc/UpdateInfo() var/datum/chemical_reaction/recipe = get_chemical_reaction(recipe_id) diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 332decf03e38..e5f5f22db67a 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -49,7 +49,7 @@ log_combat(user, M, "fed", reagents.log_list()) else to_chat(user, "You swallow a gulp of [src].") - addtimer(CALLBACK(reagents, /datum/reagents.proc/trans_to, M, 5, TRUE, TRUE, FALSE, user, FALSE, INGEST), 5) + addtimer(CALLBACK(reagents, TYPE_PROC_REF(/datum/reagents, trans_to), M, 5, TRUE, TRUE, FALSE, user, FALSE, INGEST), 5) playsound(M.loc,'sound/items/drink.ogg', rand(10,50), TRUE) /obj/item/reagent_containers/glass/afterattack(obj/target, mob/user, proximity) diff --git a/code/modules/reagents/reagent_containers/mortar.dm b/code/modules/reagents/reagent_containers/mortar.dm index 6fc3cd85e0d9..3c1443bfb9d2 100644 --- a/code/modules/reagents/reagent_containers/mortar.dm +++ b/code/modules/reagents/reagent_containers/mortar.dm @@ -3,6 +3,9 @@ Originally in glass.dm, moved here to accommodate additional materials. \*/ +#define MORTAR_STAMINA_MINIMUM 50 //What is the amount of stam damage that we prevent mortar use at +#define MORTAR_STAMINA_USE 40 //How much stam damage is given to people when the mortar is used + /obj/item/pestle name = "pestle" desc = "An ancient, simple tool used in conjunction with a mortar to grind or juice items." @@ -33,41 +36,83 @@ to accommodate additional materials. grinded = null to_chat(user, "You eject the item inside.") -/obj/item/reagent_containers/glass/mortar/attackby(obj/item/I, mob/living/carbon/human/user) +/obj/item/reagent_containers/glass/mortar/attackby(obj/item/attacking_item, mob/living/carbon/human/user) ..() - if(istype(I,/obj/item/pestle)) - if(grinded) - if(user.getStaminaLoss() > 50) - to_chat(user, "You are too tired to work!") - return - to_chat(user, "You start grinding...") - if((do_after(user, 25, target = src)) && grinded) - user.adjustStaminaLoss(40) - if(grinded.juice_results) //prioritize juicing - grinded.on_juice() - reagents.add_reagent_list(grinded.juice_results) - to_chat(user, "You juice [grinded] into a fine liquid.") - QDEL_NULL(grinded) - return - grinded.on_grind() - reagents.add_reagent_list(grinded.grind_results) - if(grinded.reagents) //food and pills - grinded.reagents.trans_to(src, grinded.reagents.total_volume, transfered_by = user) - to_chat(user, "You break [grinded] into powder.") - QDEL_NULL(grinded) - return + if(istype(attacking_item, /obj/item/pestle)) + if(!grinded) + balloon_alert(user, "nothing to grind") return - else - to_chat(user, "There is nothing to grind!") + + if(user.getStaminaLoss() > MORTAR_STAMINA_MINIMUM) + balloon_alert(user, "too tired") return - if(grinded) - to_chat(user, "There is something inside already!") + + var/list/choose_options = list( + "Grind" = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_grind"), + "Juice" = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_juice") + ) + var/picked_option = show_radial_menu(user, src, choose_options, radius = 38, require_near = TRUE) + + if(!grinded || !in_range(src, user) || !user.is_holding(attacking_item) || !picked_option) + return + + balloon_alert(user, "grinding...") + if(!do_after(user, grind_speed, target = src)) + balloon_alert(user, "stopped grinding") + return + + user.adjustStaminaLoss(MORTAR_STAMINA_USE) + switch(picked_option) + if("Juice") + if(grinded.juice_results) + juice_target_item(grinded, user) + else + grind_target_item(grinded, user) + grinded = null + + if("Grind") + if(grinded.grind_results) + grind_target_item(grinded, user) + else + juice_target_item(grinded, user) + grinded = null return - if(I.juice_results || I.grind_results) - I.forceMove(src) - grinded = I + + if(!attacking_item.juice_results && !attacking_item.grind_results) + balloon_alert(user, "can't grind this") + return ..() + + if(grinded) + balloon_alert(user, "already full") return - to_chat(user, "You can't grind this!") + + attacking_item.forceMove(src) + grinded = attacking_item + +///Juices the passed target item, and transfers any contained chems to the mortar as well +/obj/item/reagent_containers/glass/mortar/proc/juice_target_item(obj/item/to_be_juiced, mob/living/carbon/human/user) + to_be_juiced.on_juice() + reagents.add_reagent_list(to_be_juiced.juice_results) + + if(to_be_juiced.reagents) //If juiced item has reagents within, transfer them to the mortar + to_be_juiced.reagents.trans_to(src, to_be_juiced.reagents.total_volume, transfered_by = user) + + to_chat(user, span_notice("You juice [to_be_juiced] into a fine liquid.")) + QDEL_NULL(to_be_juiced) + +///Grinds the passed target item, and transfers any contained chems to the mortar as well +/obj/item/reagent_containers/glass/mortar/proc/grind_target_item(obj/item/to_be_ground, mob/living/carbon/human/user) + to_be_ground.on_grind() + reagents.add_reagent_list(to_be_ground.grind_results) + + if(to_be_ground.reagents) //If grinded item has reagents within, transfer them to the mortar + to_be_ground.reagents.trans_to(src, to_be_ground.reagents.total_volume, transfered_by = user) + + to_chat(user, span_notice("You break [to_be_ground] into powder.")) + QDEL_NULL(to_be_ground) + +#undef MORTAR_STAMINA_MINIMUM +#undef MORTAR_STAMINA_USE /obj/item/reagent_containers/glass/mortar/glass //mmm yes... this glass is made of glass icon_state = "mortar_glass" diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index 50436b8ee9e6..187935fa0b25 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -47,7 +47,7 @@ "[user] forces you to [apply_method] [src].") if(icon_state == "pill4" && prob(5)) //you take the red pill - you stay in Wonderland, and I show you how deep the rabbit hole goes - addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, M, "[pick(strings(REDPILL_FILE, "redpill_questions"))]"), 50) + addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(to_chat), M, "[pick(strings(REDPILL_FILE, "redpill_questions"))]"), 50) if(reagents.total_volume) reagents.trans_to(M, reagents.total_volume, transfered_by = user, method = apply_type) diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 021d37cd61b0..f0901e416b25 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -86,7 +86,7 @@ target.visible_message("[user] is trying to take a blood sample from [target]!", \ "[user] is trying to take a blood sample from you!") busy = TRUE - if(!do_mob(user, target, extra_checks=CALLBACK(L, /mob/living/proc/can_inject, user, TRUE))) + if(!do_mob(user, target, extra_checks=CALLBACK(L, TYPE_PROC_REF(/mob/living, can_inject), user, TRUE))) busy = FALSE return if(reagents.total_volume >= reagents.maximum_volume) @@ -136,7 +136,7 @@ if(L != user) L.visible_message("[user] is trying to inject [L]!", \ "[user] is trying to inject you!") - if(!do_mob(user, L, extra_checks=CALLBACK(L, /mob/living/proc/can_inject, user, TRUE))) + if(!do_mob(user, L, extra_checks=CALLBACK(L, TYPE_PROC_REF(/mob/living, can_inject), user, TRUE))) return if(!reagents.total_volume) return diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index c11906bf9c0d..b8b08486f20d 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -146,7 +146,7 @@ GLOBAL_LIST_EMPTY(conveyors_by_id) affecting.Add(item) conveying = TRUE - addtimer(CALLBACK(src, .proc/convey, affecting), 1) + addtimer(CALLBACK(src, PROC_REF(convey), affecting), 1) /obj/machinery/conveyor/proc/convey(list/affecting) for(var/atom/movable/A in affecting) diff --git a/code/modules/recycling/disposal/construction.dm b/code/modules/recycling/disposal/construction.dm index 7ffc4e3b9db1..13158e86daad 100644 --- a/code/modules/recycling/disposal/construction.dm +++ b/code/modules/recycling/disposal/construction.dm @@ -87,7 +87,7 @@ /obj/structure/disposalconstruct/ComponentInitialize() . = ..() - AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_FLIP | ROTATION_VERBS ,null,CALLBACK(src, .proc/can_be_rotated), CALLBACK(src, .proc/after_rot)) + AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_FLIP | ROTATION_VERBS ,null,CALLBACK(src, PROC_REF(can_be_rotated)), CALLBACK(src, PROC_REF(after_rot))) /obj/structure/disposalconstruct/proc/after_rot(mob/user,rotation_type) if(rotation_type == ROTATION_FLIP) diff --git a/code/modules/recycling/disposal/outlet.dm b/code/modules/recycling/disposal/outlet.dm index aa516b91fab3..2de8ff057405 100644 --- a/code/modules/recycling/disposal/outlet.dm +++ b/code/modules/recycling/disposal/outlet.dm @@ -44,9 +44,9 @@ if((start_eject + 30) < world.time) start_eject = world.time playsound(src, 'sound/machines/warning-buzzer.ogg', 50, FALSE, FALSE) - addtimer(CALLBACK(src, .proc/expel_holder, H, TRUE), 20) + addtimer(CALLBACK(src, PROC_REF(expel_holder), H, TRUE), 20) else - addtimer(CALLBACK(src, .proc/expel_holder, H), 20) + addtimer(CALLBACK(src, PROC_REF(expel_holder), H), 20) /obj/structure/disposaloutlet/proc/expel_holder(obj/structure/disposalholder/H, playsound=FALSE) if(playsound) diff --git a/code/modules/recycling/disposal/pipe.dm b/code/modules/recycling/disposal/pipe.dm index 21cc7a7feeb4..c4722c40fd2f 100644 --- a/code/modules/recycling/disposal/pipe.dm +++ b/code/modules/recycling/disposal/pipe.dm @@ -90,7 +90,7 @@ if(isfloorturf(T)) //intact floor, pop the tile floorturf = T - if(floorturf.floor_tile) + if(floorturf.floor_tile && !istype(floorturf, /turf/open/floor/engine)) new floorturf.floor_tile(T) floorturf.make_plating() diff --git a/code/modules/research/designs/limbgrower_designs.dm b/code/modules/research/designs/limbgrower_designs.dm index 4f48995190dc..16bf2a9241cb 100644 --- a/code/modules/research/designs/limbgrower_designs.dm +++ b/code/modules/research/designs/limbgrower_designs.dm @@ -116,7 +116,7 @@ build_path = /obj/item/organ/tongue category = list("initial",SPECIES_HUMAN) -// Grows a fake lizard tail - not usable in lizard wine and other similar recipes. +// Grows a fake lizard tail /datum/design/lizard_tail name = "Lizard Tail" id = "liztail" diff --git a/code/modules/research/destructive_analyzer.dm b/code/modules/research/destructive_analyzer.dm index 8c2b53b624bc..ab2933c60bcc 100644 --- a/code/modules/research/destructive_analyzer.dm +++ b/code/modules/research/destructive_analyzer.dm @@ -44,7 +44,7 @@ Note: Must be placed within 3 tiles of the R&D Console loaded_item = O to_chat(user, "You add the [O.name] to the [src.name]!") flick("d_analyzer_la", src) - addtimer(CALLBACK(src, .proc/finish_loading), 10) + addtimer(CALLBACK(src, PROC_REF(finish_loading)), 10) if (linked_console) linked_console.updateUsrDialog() @@ -82,7 +82,7 @@ Note: Must be placed within 3 tiles of the R&D Console if(!innermode) flick("d_analyzer_process", src) busy = TRUE - addtimer(CALLBACK(src, .proc/reset_busy), 24) + addtimer(CALLBACK(src, PROC_REF(reset_busy)), 24) use_power(250) if(thing == loaded_item) loaded_item = null diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index dd9003a52014..f714f65f154d 100644 --- a/code/modules/research/experimentor.dm +++ b/code/modules/research/experimentor.dm @@ -510,12 +510,12 @@ investigate_log("Experimentor has drained power from its APC", INVESTIGATE_EXPERIMENTOR) if(globalMalf == 99) visible_message("[src] begins to glow and vibrate. It's going to blow!") - addtimer(CALLBACK(src, .proc/boom), 50) + addtimer(CALLBACK(src, PROC_REF(boom)), 50) if(globalMalf == 100) visible_message("[src] begins to glow and vibrate. It's going to blow!") - addtimer(CALLBACK(src, .proc/honk), 50) + addtimer(CALLBACK(src, PROC_REF(honk)), 50) - addtimer(CALLBACK(src, .proc/reset_exp), resetTime) + addtimer(CALLBACK(src, PROC_REF(reset_exp)), resetTime) /obj/machinery/rnd/experimentor/proc/boom() explosion(src, 1, 5, 10, 5, 1) @@ -578,7 +578,7 @@ revealed = TRUE name = realName cooldownMax = rand(60,300) - realProc = pick(.proc/teleport,.proc/explode,.proc/rapidDupe,.proc/petSpray,.proc/flash,.proc/clean,.proc/corgicannon) + realProc = pick(PROC_REF(teleport), PROC_REF(explode), PROC_REF(rapidDupe), PROC_REF(petSpray), PROC_REF(flash), PROC_REF(clean), PROC_REF(corgicannon)) /obj/item/relic/attack_self(mob/user) if(revealed) @@ -589,7 +589,7 @@ cooldown = TRUE call(src,realProc)(user) if(!QDELETED(src)) - addtimer(CALLBACK(src, .proc/cd), cooldownMax) + addtimer(CALLBACK(src, PROC_REF(cd)), cooldownMax) else to_chat(user, "You aren't quite sure what this is. Maybe R&D knows what to do with it?") @@ -606,7 +606,7 @@ /obj/item/relic/proc/corgicannon(mob/user) playsound(src, "sparks", rand(25,50), TRUE, SHORT_RANGE_SOUND_EXTRARANGE) var/mob/living/simple_animal/pet/dog/corgi/C = new/mob/living/simple_animal/pet/dog/corgi(get_turf(user)) - C.throw_at(pick(oview(10,user)), 10, rand(3,8), callback = CALLBACK(src, .proc/throwSmoke, C)) + C.throw_at(pick(oview(10,user)), 10, rand(3,8), callback = CALLBACK(src, PROC_REF(throwSmoke), C)) warn_admins(user, "Corgi Cannon", 0) /obj/item/relic/proc/clean(mob/user) @@ -656,7 +656,7 @@ /obj/item/relic/proc/explode(mob/user) to_chat(user, "[src] begins to heat up!") - addtimer(CALLBACK(src, .proc/do_explode, user), rand(35, 100)) + addtimer(CALLBACK(src, PROC_REF(do_explode), user), rand(35, 100)) /obj/item/relic/proc/do_explode(mob/user) if(loc == user) @@ -667,7 +667,7 @@ /obj/item/relic/proc/teleport(mob/user) to_chat(user, "[src] begins to vibrate!") - addtimer(CALLBACK(src, .proc/do_the_teleport, user), rand(10, 30)) + addtimer(CALLBACK(src, PROC_REF(do_the_teleport), user), rand(10, 30)) /obj/item/relic/proc/do_the_teleport(mob/user) var/turf/userturf = get_turf(user) diff --git a/code/modules/research/machinery/_production.dm b/code/modules/research/machinery/_production.dm index 5a1e9303b013..36a22dac2cc7 100644 --- a/code/modules/research/machinery/_production.dm +++ b/code/modules/research/machinery/_production.dm @@ -23,7 +23,7 @@ matching_designs = list() cached_designs = list() stored_research = new - INVOKE_ASYNC(src, .proc/update_research) + INVOKE_ASYNC(src, PROC_REF(update_research)) materials = AddComponent(/datum/component/remote_materials, "lathe", mapload) RefreshParts() @@ -167,8 +167,8 @@ if(production_animation) flick(production_animation, src) var/timecoeff = D.lathe_time_factor / efficiency_coeff - addtimer(CALLBACK(src, .proc/reset_busy), (30 * timecoeff * amount) ** 0.5) - addtimer(CALLBACK(src, .proc/do_print, D.build_path, amount, efficient_mats, D.dangerous_construction), (32 * timecoeff * amount) ** 0.8) + addtimer(CALLBACK(src, PROC_REF(reset_busy)), (30 * timecoeff * amount) ** 0.5) + addtimer(CALLBACK(src, PROC_REF(do_print), D.build_path, amount, efficient_mats, D.dangerous_construction), (32 * timecoeff * amount) ** 0.8) return TRUE /obj/machinery/rnd/production/proc/search(string) diff --git a/code/modules/research/nanites/nanite_chamber.dm b/code/modules/research/nanites/nanite_chamber.dm index 30be4869d1bc..d5d5fa79e8ca 100644 --- a/code/modules/research/nanites/nanite_chamber.dm +++ b/code/modules/research/nanites/nanite_chamber.dm @@ -68,11 +68,11 @@ //TODO OMINOUS MACHINE SOUNDS set_busy(TRUE, "Initializing injection 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, "Priming nanites...", "[initial(icon_state)]_active"),40) - addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Injecting...", "[initial(icon_state)]_active"),70) - addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Activating nanites...", "[initial(icon_state)]_falling"),110) - addtimer(CALLBACK(src, .proc/complete_injection, locked_state),130) + addtimer(CALLBACK(src, PROC_REF(set_busy), TRUE, "Analyzing host bio-structure...", "[initial(icon_state)]_active"),20) + addtimer(CALLBACK(src, PROC_REF(set_busy), TRUE, "Priming nanites...", "[initial(icon_state)]_active"),40) + addtimer(CALLBACK(src, PROC_REF(set_busy), TRUE, "Injecting...", "[initial(icon_state)]_active"),70) + addtimer(CALLBACK(src, PROC_REF(set_busy), TRUE, "Activating nanites...", "[initial(icon_state)]_falling"),110) + addtimer(CALLBACK(src, PROC_REF(complete_injection), locked_state),130) /obj/machinery/nanite_chamber/proc/complete_injection(locked_state) //TODO MACHINE DING @@ -95,11 +95,11 @@ //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) + addtimer(CALLBACK(src, PROC_REF(set_busy), TRUE, "Analyzing host bio-structure...", "[initial(icon_state)]_active"),20) + addtimer(CALLBACK(src, PROC_REF(set_busy), TRUE, "Pinging nanites...", "[initial(icon_state)]_active"),40) + addtimer(CALLBACK(src, PROC_REF(set_busy), TRUE, "Initiating graceful self-destruct sequence...", "[initial(icon_state)]_active"),70) + addtimer(CALLBACK(src, PROC_REF(set_busy), TRUE, "Removing debris...", "[initial(icon_state)]_falling"),110) + addtimer(CALLBACK(src, PROC_REF(complete_removal), locked_state),130) /obj/machinery/nanite_chamber/proc/complete_removal(locked_state) //TODO MACHINE DING diff --git a/code/modules/research/nanites/nanite_chamber_computer.dm b/code/modules/research/nanites/nanite_chamber_computer.dm index c18364de1a2d..3a41e394b1dc 100644 --- a/code/modules/research/nanites/nanite_chamber_computer.dm +++ b/code/modules/research/nanites/nanite_chamber_computer.dm @@ -101,7 +101,7 @@ UnregisterSignal(chamber, COMSIG_PARENT_QDELETING) chamber = new_chamber if(chamber) - RegisterSignal(chamber, COMSIG_PARENT_QDELETING, .proc/react_to_chamber_del) + RegisterSignal(chamber, COMSIG_PARENT_QDELETING, PROC_REF(react_to_chamber_del)) /obj/machinery/computer/nanite_chamber_control/proc/react_to_chamber_del(datum/source) SIGNAL_HANDLER diff --git a/code/modules/research/nanites/nanite_programs/healing.dm b/code/modules/research/nanites/nanite_programs/healing.dm index a33f42f5f848..11b862e4a751 100644 --- a/code/modules/research/nanites/nanite_programs/healing.dm +++ b/code/modules/research/nanites/nanite_programs/healing.dm @@ -217,7 +217,7 @@ /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) + addtimer(CALLBACK(src, PROC_REF(zap)), 50) /datum/nanite_program/defib/proc/check_revivable() if(!iscarbon(host_mob)) //nonstandard biology diff --git a/code/modules/research/nanites/nanite_programs/sensor.dm b/code/modules/research/nanites/nanite_programs/sensor.dm index ff42a5fe099c..dacdc0481408 100644 --- a/code/modules/research/nanites/nanite_programs/sensor.dm +++ b/code/modules/research/nanites/nanite_programs/sensor.dm @@ -36,7 +36,7 @@ /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) + addtimer(CALLBACK(src, PROC_REF(send_code)), ES.get_value() * 10) /datum/nanite_program/sensor/relay_repeat name = "Relay Signal Repeater" @@ -53,7 +53,7 @@ /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) + addtimer(CALLBACK(src, PROC_REF(send_code)), ES.get_value() * 10) /datum/nanite_program/sensor/relay_repeat/send_code() var/datum/nanite_extra_setting/relay = extra_settings[NES_RELAY_CHANNEL] @@ -244,10 +244,10 @@ /datum/nanite_program/sensor/voice/on_mob_add() . = ..() - RegisterSignal(host_mob, COMSIG_MOVABLE_HEAR, .proc/on_hear) + RegisterSignal(host_mob, COMSIG_MOVABLE_HEAR, PROC_REF(on_hear)) /datum/nanite_program/sensor/voice/on_mob_remove() - UnregisterSignal(host_mob, COMSIG_MOVABLE_HEAR, .proc/on_hear) + UnregisterSignal(host_mob, COMSIG_MOVABLE_HEAR, PROC_REF(on_hear)) /datum/nanite_program/sensor/voice/proc/on_hear(datum/source, list/hearing_args) var/datum/nanite_extra_setting/sentence = extra_settings[NES_SENTENCE] diff --git a/code/modules/research/nanites/nanite_programs/suppression.dm b/code/modules/research/nanites/nanite_programs/suppression.dm index 848c5b2e4610..76bddd35c066 100644 --- a/code/modules/research/nanites/nanite_programs/suppression.dm +++ b/code/modules/research/nanites/nanite_programs/suppression.dm @@ -11,7 +11,7 @@ /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)) + addtimer(CALLBACK(host_mob, TYPE_PROC_REF(/mob/living, Sleeping), 200), rand(60,200)) /datum/nanite_program/paralyzing name = "Paralysis" diff --git a/code/modules/research/nanites/nanite_programs/weapon.dm b/code/modules/research/nanites/nanite_programs/weapon.dm index 16f87bc6bdee..5f166d4d610a 100644 --- a/code/modules/research/nanites/nanite_programs/weapon.dm +++ b/code/modules/research/nanites/nanite_programs/weapon.dm @@ -84,7 +84,7 @@ /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)) + addtimer(CALLBACK(src, PROC_REF(boom)), clamp((nanites.nanite_volume * 0.35), 25, 150)) /datum/nanite_program/explosive/proc/boom() var/nanite_amount = nanites.nanite_volume @@ -179,7 +179,7 @@ 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 '[sent_directive]'.") - addtimer(CALLBACK(src, .proc/end_brainwashing), 600) + addtimer(CALLBACK(src, PROC_REF(end_brainwashing)), 600) /datum/nanite_program/comm/mind_control/proc/end_brainwashing() if(host_mob.mind && host_mob.mind.has_antag_datum(/datum/antagonist/brainwashed)) diff --git a/code/modules/research/nanites/public_chamber.dm b/code/modules/research/nanites/public_chamber.dm index f53707206a38..9e39486c2052 100644 --- a/code/modules/research/nanites/public_chamber.dm +++ b/code/modules/research/nanites/public_chamber.dm @@ -50,9 +50,9 @@ //TODO OMINOUS MACHINE SOUNDS 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, attacker),80) + addtimer(CALLBACK(src, PROC_REF(set_busy), TRUE, "[initial(icon_state)]_active"),20) + addtimer(CALLBACK(src, PROC_REF(set_busy), TRUE, "[initial(icon_state)]_falling"),60) + addtimer(CALLBACK(src, PROC_REF(complete_injection), locked_state, attacker),80) /obj/machinery/public_nanite_chamber/proc/complete_injection(locked_state, mob/living/attacker) //TODO MACHINE DING @@ -77,9 +77,9 @@ 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) + addtimer(CALLBACK(src, PROC_REF(set_busy), TRUE, "[initial(icon_state)]_active"),20) + addtimer(CALLBACK(src, PROC_REF(set_busy), TRUE, "[initial(icon_state)]_falling"),40) + addtimer(CALLBACK(src, PROC_REF(complete_cloud_change), locked_state, attacker),60) /obj/machinery/public_nanite_chamber/proc/complete_cloud_change(locked_state, mob/living/attacker) locked = locked_state @@ -157,7 +157,7 @@ . = TRUE - 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 + addtimer(CALLBACK(src, PROC_REF(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(mob/living/attacker) if(occupant) diff --git a/code/modules/research/rdmachines.dm b/code/modules/research/rdmachines.dm index 90094f64594f..7c46ac61d784 100644 --- a/code/modules/research/rdmachines.dm +++ b/code/modules/research/rdmachines.dm @@ -111,4 +111,4 @@ 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) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, cut_overlay), "protolathe_[stack_name]"), 10) diff --git a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm index 4626e4154cc8..651eb2fece14 100644 --- a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm +++ b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm @@ -66,7 +66,7 @@ var/icon/bluespace /datum/status_effect/slimerecall/on_apply() - RegisterSignal(owner, COMSIG_LIVING_RESIST, .proc/resistField) + RegisterSignal(owner, COMSIG_LIVING_RESIST, PROC_REF(resistField)) to_chat(owner, "You feel a sudden tug from an unknown force, and feel a pull to bluespace!") to_chat(owner, "Resist if you wish avoid the force!") bluespace = icon('icons/effects/effects.dmi',"chronofield") @@ -98,7 +98,7 @@ var/obj/structure/ice_stasis/cube /datum/status_effect/frozenstasis/on_apply() - RegisterSignal(owner, COMSIG_LIVING_RESIST, .proc/breakCube) + RegisterSignal(owner, COMSIG_LIVING_RESIST, PROC_REF(breakCube)) cube = new /obj/structure/ice_stasis(get_turf(owner)) owner.forceMove(cube) owner.status_flags |= GODMODE diff --git a/code/modules/research/xenobiology/crossbreeding/burning.dm b/code/modules/research/xenobiology/crossbreeding/burning.dm index 60a54c461bf1..e9fd98232e2c 100644 --- a/code/modules/research/xenobiology/crossbreeding/burning.dm +++ b/code/modules/research/xenobiology/crossbreeding/burning.dm @@ -261,7 +261,7 @@ Burning extracts: /obj/item/slimecross/burning/oil/do_effect(mob/user) user.visible_message("[user] activates [src]. It's going to explode!", "You activate [src]. It crackles in anticipation") - addtimer(CALLBACK(src, .proc/boom), 50) + addtimer(CALLBACK(src, PROC_REF(boom)), 50) /obj/item/slimecross/burning/oil/proc/boom() var/turf/T = get_turf(src) diff --git a/code/modules/research/xenobiology/crossbreeding/charged.dm b/code/modules/research/xenobiology/crossbreeding/charged.dm index a2853592e4d2..d44f1bd4ad8b 100644 --- a/code/modules/research/xenobiology/crossbreeding/charged.dm +++ b/code/modules/research/xenobiology/crossbreeding/charged.dm @@ -195,7 +195,7 @@ Charged extracts: /obj/item/slimecross/charged/gold/do_effect(mob/user) user.visible_message("[src] starts shuddering violently!") - addtimer(CALLBACK(src, .proc/startTimer), 50) + addtimer(CALLBACK(src, PROC_REF(startTimer)), 50) /obj/item/slimecross/charged/gold/proc/startTimer() START_PROCESSING(SSobj, src) @@ -220,7 +220,7 @@ Charged extracts: /obj/item/slimecross/charged/oil/do_effect(mob/user) user.visible_message("[src] begins to shake with rapidly increasing force!") - addtimer(CALLBACK(src, .proc/boom), 50) + addtimer(CALLBACK(src, PROC_REF(boom)), 50) /obj/item/slimecross/charged/oil/proc/boom() explosion(get_turf(src), 2, 3, 4) //Much smaller effect than normal oils, but devastatingly strong where it does hit. diff --git a/code/modules/research/xenobiology/crossbreeding/chilling.dm b/code/modules/research/xenobiology/crossbreeding/chilling.dm index e4f19c892a12..085f8486ac32 100644 --- a/code/modules/research/xenobiology/crossbreeding/chilling.dm +++ b/code/modules/research/xenobiology/crossbreeding/chilling.dm @@ -282,7 +282,7 @@ Chilling extracts: /obj/item/slimecross/chilling/oil/do_effect(mob/user) user.visible_message("[src] begins to shake with muted intensity!") - addtimer(CALLBACK(src, .proc/boom), 50) + addtimer(CALLBACK(src, PROC_REF(boom)), 50) /obj/item/slimecross/chilling/oil/proc/boom() explosion(get_turf(src), -1, -1, 10, 0) //Large radius, but mostly light damage, and no flash. diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm index d2b1d49f78fe..81ac7db98b01 100644 --- a/code/modules/research/xenobiology/xenobio_camera.dm +++ b/code/modules/research/xenobiology/xenobio_camera.dm @@ -119,12 +119,12 @@ hotkey_help.Grant(user) actions += hotkey_help - RegisterSignal(user, COMSIG_XENO_SLIME_CLICK_CTRL, .proc/XenoSlimeClickCtrl) - RegisterSignal(user, COMSIG_XENO_SLIME_CLICK_ALT, .proc/XenoSlimeClickAlt) - RegisterSignal(user, COMSIG_XENO_SLIME_CLICK_SHIFT, .proc/XenoSlimeClickShift) - RegisterSignal(user, COMSIG_XENO_TURF_CLICK_SHIFT, .proc/XenoTurfClickShift) - RegisterSignal(user, COMSIG_XENO_TURF_CLICK_CTRL, .proc/XenoTurfClickCtrl) - RegisterSignal(user, COMSIG_XENO_MONKEY_CLICK_CTRL, .proc/XenoMonkeyClickCtrl) + RegisterSignal(user, COMSIG_XENO_SLIME_CLICK_CTRL, PROC_REF(XenoSlimeClickCtrl)) + RegisterSignal(user, COMSIG_XENO_SLIME_CLICK_ALT, PROC_REF(XenoSlimeClickAlt)) + RegisterSignal(user, COMSIG_XENO_SLIME_CLICK_SHIFT, PROC_REF(XenoSlimeClickShift)) + RegisterSignal(user, COMSIG_XENO_TURF_CLICK_SHIFT, PROC_REF(XenoTurfClickShift)) + RegisterSignal(user, COMSIG_XENO_TURF_CLICK_CTRL, PROC_REF(XenoTurfClickCtrl)) + RegisterSignal(user, COMSIG_XENO_MONKEY_CLICK_CTRL, PROC_REF(XenoMonkeyClickCtrl)) //Checks for recycler on every interact, prevents issues with load order on certain maps. if(!connected_recycler) diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm index 9a1c98ad6212..939c14589586 100644 --- a/code/modules/research/xenobiology/xenobiology.dm +++ b/code/modules/research/xenobiology/xenobiology.dm @@ -278,7 +278,7 @@ to_chat(user, "Your glow is already enhanced!") return species.update_glow(user, 5) - addtimer(CALLBACK(species, /datum/species/jelly/luminescent.proc/update_glow, user, LUMINESCENT_DEFAULT_GLOW), 600) + addtimer(CALLBACK(species, TYPE_PROC_REF(/datum/species/jelly/luminescent, update_glow), user, LUMINESCENT_DEFAULT_GLOW), 600) to_chat(user, "You start glowing brighter.") if(SLIME_ACTIVATE_MAJOR) @@ -494,7 +494,7 @@ return to_chat(user, "You feel your skin harden and become more resistant.") species.armor += 25 - addtimer(CALLBACK(src, .proc/reset_armor, species), 1200) + addtimer(CALLBACK(src, PROC_REF(reset_armor), species), 1200) return 450 if(SLIME_ACTIVATE_MAJOR) diff --git a/code/modules/ruins/icemoonruin_code/hotsprings.dm b/code/modules/ruins/icemoonruin_code/hotsprings.dm index a318f5bb1a48..dd4d39e91a20 100644 --- a/code/modules/ruins/icemoonruin_code/hotsprings.dm +++ b/code/modules/ruins/icemoonruin_code/hotsprings.dm @@ -27,7 +27,7 @@ GLOBAL_LIST_EMPTY(cursed_minds) if(GLOB.cursed_minds[L.mind]) return GLOB.cursed_minds[L.mind] = TRUE - RegisterSignal(L.mind, COMSIG_PARENT_QDELETING, .proc/remove_from_cursed) + RegisterSignal(L.mind, COMSIG_PARENT_QDELETING, PROC_REF(remove_from_cursed)) var/random_choice = pick("Mob", "Appearance") switch(random_choice) if("Mob") diff --git a/code/modules/ruins/icemoonruin_code/wrath.dm b/code/modules/ruins/icemoonruin_code/wrath.dm index d43a72d80c96..11e7e24e6547 100644 --- a/code/modules/ruins/icemoonruin_code/wrath.dm +++ b/code/modules/ruins/icemoonruin_code/wrath.dm @@ -14,7 +14,7 @@ /obj/item/clothing/gloves/butchering/equipped(mob/user, slot, initial = FALSE) . = ..() - RegisterSignal(user, COMSIG_HUMAN_EARLY_UNARMED_ATTACK, .proc/butcher_target) + RegisterSignal(user, COMSIG_HUMAN_EARLY_UNARMED_ATTACK, PROC_REF(butcher_target)) var/datum/component/butchering/butchering = src.GetComponent(/datum/component/butchering) butchering.butchering_enabled = TRUE diff --git a/code/modules/ruins/lavaland_ruin_code.dm b/code/modules/ruins/lavaland_ruin_code.dm index cb5465f881fd..bf583bcd2157 100644 --- a/code/modules/ruins/lavaland_ruin_code.dm +++ b/code/modules/ruins/lavaland_ruin_code.dm @@ -86,9 +86,7 @@ /obj/item/stack/sheet/bone = /datum/species/golem/bone, /obj/item/stack/sheet/durathread = /datum/species/golem/durathread, /obj/item/stack/sheet/cotton/durathread = /datum/species/golem/durathread, - /obj/item/stack/sheet/mineral/snow = /datum/species/golem/snow, - /obj/item/stack/sheet/capitalisium = /datum/species/golem/capitalist, - /obj/item/stack/sheet/stalinium = /datum/species/golem/soviet) + /obj/item/stack/sheet/mineral/snow = /datum/species/golem/snow) if(istype(I, /obj/item/stack)) var/obj/item/stack/O = I diff --git a/code/modules/ruins/lavalandruin_code/syndicate_base.dm b/code/modules/ruins/lavalandruin_code/syndicate_base.dm index 5d6295f54d0c..bbcce202096b 100644 --- a/code/modules/ruins/lavalandruin_code/syndicate_base.dm +++ b/code/modules/ruins/lavalandruin_code/syndicate_base.dm @@ -1,11 +1,9 @@ -//lavaland_surface_syndicate_base1.dmm - /obj/machinery/vending/syndichem name = "\improper SyndiChem" desc = "A vending machine full of grenades and grenade accessories. Sponsored by DonkCo(tm)." req_access = list(ACCESS_SYNDICATE) products = list( - /obj/item/stack/cable_coil/random = 5, //WS Edit - Random added from Smartwire Revert + /obj/item/stack/cable_coil/random = 5, /obj/item/assembly/igniter = 20, /obj/item/assembly/prox_sensor = 5, /obj/item/assembly/signaler = 5, diff --git a/code/modules/ruins/objects_and_mobs/ash_walker_den.dm b/code/modules/ruins/objects_and_mobs/ash_walker_den.dm index 31a6ee6f0c0f..b231ea902371 100644 --- a/code/modules/ruins/objects_and_mobs/ash_walker_den.dm +++ b/code/modules/ruins/objects_and_mobs/ash_walker_den.dm @@ -67,7 +67,7 @@ deadmind = H.get_ghost(FALSE, TRUE) to_chat(deadmind, "Your body has been returned to the nest. You are being remade anew, and will awaken shortly.
Your memories will remain intact in your new body, as your soul is being salvaged") SEND_SOUND(deadmind, sound('sound/magic/enter_blood.ogg',volume=100)) - addtimer(CALLBACK(src, .proc/remake_walker, H.mind, H.real_name), 20 SECONDS) + addtimer(CALLBACK(src, PROC_REF(remake_walker), H.mind, H.real_name), 20 SECONDS) new /obj/effect/gibspawner/generic(get_turf(H)) qdel(H) return diff --git a/code/modules/ruins/objects_and_mobs/necropolis_gate.dm b/code/modules/ruins/objects_and_mobs/necropolis_gate.dm index 7b900dc579d7..bc0e8a9d401d 100644 --- a/code/modules/ruins/objects_and_mobs/necropolis_gate.dm +++ b/code/modules/ruins/objects_and_mobs/necropolis_gate.dm @@ -47,7 +47,7 @@ add_overlay(dais_overlay) var/static/list/loc_connections = list( - COMSIG_ATOM_EXIT = .proc/on_exit + COMSIG_ATOM_EXIT = PROC_REF(on_exit) ) AddElement(/datum/element/connect_loc, loc_connections) @@ -268,7 +268,7 @@ GLOBAL_DATUM(necropolis_gate, /obj/structure/necropolis_gate/legion_gate) icon_state = "[tile_key][rand(1, tile_random_sprite_max)]" var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered + COMSIG_ATOM_ENTERED = PROC_REF(on_entered) ) AddElement(/datum/element/connect_loc, loc_connections) @@ -297,7 +297,7 @@ GLOBAL_DATUM(necropolis_gate, /obj/structure/necropolis_gate/legion_gate) switch(fall_on_cross) if(COLLAPSE_ON_CROSS, DESTROY_ON_CROSS) if((I && I.w_class >= WEIGHT_CLASS_BULKY) || (L && !(L.movement_type & FLYING) && L.mob_size >= MOB_SIZE_HUMAN)) //too heavy! too big! aaah! - INVOKE_ASYNC(src, .proc/collapse) + INVOKE_ASYNC(src, PROC_REF(collapse)) if(UNIQUE_EFFECT) crossed_effect(AM) @@ -316,7 +316,7 @@ GLOBAL_DATUM(necropolis_gate, /obj/structure/necropolis_gate/legion_gate) if(break_that_sucker) QDEL_IN(src, 10) else - addtimer(CALLBACK(src, .proc/rebuild), 55) + addtimer(CALLBACK(src, PROC_REF(rebuild)), 55) /obj/structure/stone_tile/proc/rebuild() pixel_x = initial(pixel_x) diff --git a/code/modules/ruins/objects_and_mobs/sin_ruins.dm b/code/modules/ruins/objects_and_mobs/sin_ruins.dm index e388a577fe1d..fbdf03eff183 100644 --- a/code/modules/ruins/objects_and_mobs/sin_ruins.dm +++ b/code/modules/ruins/objects_and_mobs/sin_ruins.dm @@ -29,7 +29,7 @@ know it'll be worth it.
") icon_state = "slots2" playsound(src, 'sound/lavaland/cursed_slot_machine.ogg', 50, FALSE) - addtimer(CALLBACK(src, .proc/determine_victor, user), 50) + addtimer(CALLBACK(src, PROC_REF(determine_victor), user), 50) /obj/structure/cursed_slot_machine/proc/determine_victor(mob/living/user) icon_state = "slots1" @@ -55,7 +55,7 @@ /obj/structure/cursed_money/Initialize() . = ..() - addtimer(CALLBACK(src, .proc/collapse), 600) + addtimer(CALLBACK(src, PROC_REF(collapse)), 600) /obj/structure/cursed_money/proc/collapse() visible_message("[src] falls in on itself, \ diff --git a/code/modules/screen_alerts/_screen_alerts.dm b/code/modules/screen_alerts/_screen_alerts.dm index 3cf3dd376795..08a21635ea93 100644 --- a/code/modules/screen_alerts/_screen_alerts.dm +++ b/code/modules/screen_alerts/_screen_alerts.dm @@ -12,7 +12,7 @@ text_box.text_to_play = text LAZYADD(client.screen_texts, text_box) if(LAZYLEN(client.screen_texts) == 1) //lets only play one at a time, for thematic effect and prevent overlap - INVOKE_ASYNC(text_box, /atom/movable/screen/text/screen_text.proc/play_to_mob, src) + INVOKE_ASYNC(text_box, TYPE_PROC_REF(/atom/movable/screen/text/screen_text, play_to_mob), src) return client.screen_texts += text_box @@ -79,7 +79,7 @@ continue maptext = "[style_open][copytext_char(text_to_play, 1, letter)][style_close]" sleep(play_delay) - addtimer(CALLBACK(src, .proc/after_play, user), fade_out_delay) + addtimer(CALLBACK(src, PROC_REF(after_play), user), fade_out_delay) ///handles post-play effects like fade out after the fade out delay /atom/movable/screen/text/screen_text/proc/after_play(mob/user) @@ -87,7 +87,7 @@ end_play(user) return animate(src, alpha = 0, time = fade_out_time) - addtimer(CALLBACK(src, .proc/end_play, user), fade_out_time) + addtimer(CALLBACK(src, PROC_REF(end_play), user), fade_out_time) ///ends the play then deletes this screen object and plalys the next one in queue if it exists /atom/movable/screen/text/screen_text/proc/end_play(mob/user) diff --git a/code/modules/security_levels/keycard_authentication.dm b/code/modules/security_levels/keycard_authentication.dm index be021492b2de..7f3693e98760 100644 --- a/code/modules/security_levels/keycard_authentication.dm +++ b/code/modules/security_levels/keycard_authentication.dm @@ -24,7 +24,7 @@ GLOBAL_DATUM_INIT(keycard_events, /datum/events, new) /obj/machinery/keycard_auth/Initialize() . = ..() - ev = GLOB.keycard_events.addEvent("triggerEvent", CALLBACK(src, .proc/triggerEvent)) + ev = GLOB.keycard_events.addEvent("triggerEvent", CALLBACK(src, PROC_REF(triggerEvent))) /obj/machinery/keycard_auth/Destroy() GLOB.keycard_events.clearEvent("triggerEvent", ev) @@ -86,7 +86,7 @@ GLOBAL_DATUM_INIT(keycard_events, /datum/events, new) event = event_type waiting = 1 GLOB.keycard_events.fireEvent("triggerEvent", src) - addtimer(CALLBACK(src, .proc/eventSent), 20) + addtimer(CALLBACK(src, PROC_REF(eventSent)), 20) /obj/machinery/keycard_auth/proc/eventSent() triggerer = null @@ -96,7 +96,7 @@ GLOBAL_DATUM_INIT(keycard_events, /datum/events, new) /obj/machinery/keycard_auth/proc/triggerEvent(source) icon_state = "auth_on" event_source = source - addtimer(CALLBACK(src, .proc/eventTriggered), 20) + addtimer(CALLBACK(src, PROC_REF(eventTriggered)), 20) /obj/machinery/keycard_auth/proc/eventTriggered() icon_state = "auth_off" diff --git a/code/modules/shuttle/on_move.dm b/code/modules/shuttle/on_move.dm index 2ca64fcd35fc..2d48fc3a82a3 100644 --- a/code/modules/shuttle/on_move.dm +++ b/code/modules/shuttle/on_move.dm @@ -211,7 +211,7 @@ All ShuttleMove procs go here for(var/obj/machinery/door/airlock/A in range(1, src)) // includes src A.shuttledocked = FALSE A.air_tight = TRUE - INVOKE_ASYNC(A, /obj/machinery/door/.proc/close) + INVOKE_ASYNC(A, TYPE_PROC_REF(/obj/machinery/door, close)) /obj/machinery/door/airlock/afterShuttleMove(turf/oldT, list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir, rotation) . = ..() diff --git a/code/modules/shuttle/ripple.dm b/code/modules/shuttle/ripple.dm index 4bf6eac0ebed..824c1843bac7 100644 --- a/code/modules/shuttle/ripple.dm +++ b/code/modules/shuttle/ripple.dm @@ -14,7 +14,7 @@ /obj/effect/abstract/ripple/Initialize(mapload, time_left) . = ..() animate(src, alpha=255, time=time_left) - addtimer(CALLBACK(src, .proc/stop_animation), 8, TIMER_CLIENT_TIME) + addtimer(CALLBACK(src, PROC_REF(stop_animation)), 8, TIMER_CLIENT_TIME) /obj/effect/abstract/ripple/proc/stop_animation() icon_state = "medi_holo_no_anim" diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index b89a07efdac5..f706bc87a491 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -211,6 +211,8 @@ var/json_key //Setting this to false will prevent the roundstart_template from being loaded on Initiallize(). You should set this to false if this loads a subship on a ship map template var/load_template_on_initialize = TRUE + /// The docking ticket of the ship docking to this port. + var/datum/docking_ticket/current_docking_ticket /obj/docking_port/stationary/Initialize(mapload) . = ..() @@ -222,7 +224,7 @@ for(var/turf/T in return_turfs()) T.flags_1 |= NO_RUINS_1 if(SSshuttle.initialized && load_template_on_initialize) // If the docking port is loaded via map but SSshuttle has already init (therefore this would never be called) - INVOKE_ASYNC(src, .proc/load_roundstart) + INVOKE_ASYNC(src, PROC_REF(load_roundstart)) #ifdef DOCKING_PORT_HIGHLIGHT highlight("#f00") diff --git a/code/modules/shuttle/special.dm b/code/modules/shuttle/special.dm index 16abb651b97c..fd18f0c5a1ee 100644 --- a/code/modules/shuttle/special.dm +++ b/code/modules/shuttle/special.dm @@ -93,7 +93,7 @@ L.visible_message("A strange purple glow wraps itself around [L] as [L.p_they()] suddenly fall[L.p_s()] unconscious.", "[desc]") // Don't let them sit suround unconscious forever - addtimer(CALLBACK(src, .proc/sleeper_dreams, L), 100) + addtimer(CALLBACK(src, PROC_REF(sleeper_dreams), L), 100) // Existing sleepers for(var/i in found) @@ -145,7 +145,7 @@ /mob/living/simple_animal/drone/snowflake/bardrone/Initialize() . = ..() access_card.access |= ACCESS_CENT_BAR - RegisterSignal(src, COMSIG_ENTER_AREA, .proc/check_barstaff_godmode) + RegisterSignal(src, COMSIG_ENTER_AREA, PROC_REF(check_barstaff_godmode)) check_barstaff_godmode() /mob/living/simple_animal/hostile/alien/maid/barmaid @@ -165,7 +165,7 @@ access_card.access = C.get_access() access_card.access |= ACCESS_CENT_BAR ADD_TRAIT(access_card, TRAIT_NODROP, ABSTRACT_ITEM_TRAIT) - RegisterSignal(src, COMSIG_ENTER_AREA, .proc/check_barstaff_godmode) + RegisterSignal(src, COMSIG_ENTER_AREA, PROC_REF(check_barstaff_godmode)) check_barstaff_godmode() /mob/living/simple_animal/hostile/alien/maid/barmaid/Destroy() @@ -193,7 +193,7 @@ /obj/structure/table/wood/bar/Initialize() . = ..() var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered + COMSIG_ATOM_ENTERED = PROC_REF(on_entered) ) AddElement(/datum/element/connect_loc, loc_connections) @@ -363,7 +363,7 @@ /mob/living/simple_animal/hostile/bear/fightpit name = "fight pit bear" - desc = "This bear's trained through ancient Russian secrets to fear the walls of its glass prison." + desc = "This bear's trained through ancient Solarian secrets to fear the walls of its glass prison." environment_smash = ENVIRONMENT_SMASH_NONE /obj/effect/decal/hammerandsickle diff --git a/code/modules/spells/spell_types/aimed.dm b/code/modules/spells/spell_types/aimed.dm index 66c0c232c06c..9e30c708774d 100644 --- a/code/modules/spells/spell_types/aimed.dm +++ b/code/modules/spells/spell_types/aimed.dm @@ -156,7 +156,7 @@ /obj/effect/proc_holder/spell/aimed/spell_cards/on_activation(mob/M) QDEL_NULL(lockon_component) - lockon_component = M.AddComponent(/datum/component/lockon_aiming, 5, typecacheof(list(/mob/living)), 1, null, CALLBACK(src, .proc/on_lockon_component)) + lockon_component = M.AddComponent(/datum/component/lockon_aiming, 5, typecacheof(list(/mob/living)), 1, null, CALLBACK(src, PROC_REF(on_lockon_component))) /obj/effect/proc_holder/spell/aimed/spell_cards/proc/on_lockon_component(list/locked_weakrefs) if(!length(locked_weakrefs)) diff --git a/code/modules/spells/spell_types/area_teleport.dm b/code/modules/spells/spell_types/area_teleport.dm index f8d5af4e2824..73014c5b3f47 100644 --- a/code/modules/spells/spell_types/area_teleport.dm +++ b/code/modules/spells/spell_types/area_teleport.dm @@ -17,7 +17,7 @@ return invocation(thearea,user) if(charge_type == "recharge" && recharge) - INVOKE_ASYNC(src, .proc/start_recharge) + INVOKE_ASYNC(src, PROC_REF(start_recharge)) cast(targets,thearea,user) after_cast(targets) diff --git a/code/modules/spells/spell_types/construct_spells.dm b/code/modules/spells/spell_types/construct_spells.dm index 02e3532175a7..5f6403ca3cdd 100644 --- a/code/modules/spells/spell_types/construct_spells.dm +++ b/code/modules/spells/spell_types/construct_spells.dm @@ -210,7 +210,7 @@ target.playsound_local(get_turf(target), 'sound/hallucinations/i_see_you1.ogg', 50, 1) user.playsound_local(get_turf(user), 'sound/effects/ghost2.ogg', 50, 1) target.become_blind(ABYSSAL_GAZE_BLIND) - addtimer(CALLBACK(src, .proc/cure_blindness, target), 40) + addtimer(CALLBACK(src, PROC_REF(cure_blindness), target), 40) target.adjust_bodytemperature(-200) /** diff --git a/code/modules/spells/spell_types/devil.dm b/code/modules/spells/spell_types/devil.dm index eaa8eae9731b..6631d943a3aa 100644 --- a/code/modules/spells/spell_types/devil.dm +++ b/code/modules/spells/spell_types/devil.dm @@ -161,7 +161,7 @@ client.eye = src visible_message("[src] appears in a fiery blaze!") playsound(get_turf(src), 'sound/magic/exit_blood.ogg', 100, TRUE, -1) - addtimer(CALLBACK(src, .proc/fakefireextinguish), 15, TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(fakefireextinguish)), 15, TIMER_UNIQUE) /obj/effect/proc_holder/spell/targeted/sintouch name = "Sin Touch" diff --git a/code/modules/spells/spell_types/ethereal_jaunt.dm b/code/modules/spells/spell_types/ethereal_jaunt.dm index 11dc1ca1a690..8b948802a7ac 100644 --- a/code/modules/spells/spell_types/ethereal_jaunt.dm +++ b/code/modules/spells/spell_types/ethereal_jaunt.dm @@ -20,7 +20,7 @@ /obj/effect/proc_holder/spell/targeted/ethereal_jaunt/cast(list/targets,mob/user = usr) //magnets, so mostly hardcoded playsound(get_turf(user), 'sound/magic/ethereal_enter.ogg', 50, TRUE, -1) for(var/mob/living/target in targets) - INVOKE_ASYNC(src, .proc/do_jaunt, target) + INVOKE_ASYNC(src, PROC_REF(do_jaunt), target) /obj/effect/proc_holder/spell/targeted/ethereal_jaunt/proc/do_jaunt(mob/living/target) target.notransform = 1 diff --git a/code/modules/spells/spell_types/forcewall.dm b/code/modules/spells/spell_types/forcewall.dm index 62bd538120e1..e4da9b63aa6d 100644 --- a/code/modules/spells/spell_types/forcewall.dm +++ b/code/modules/spells/spell_types/forcewall.dm @@ -14,19 +14,19 @@ var/wall_type = /obj/effect/forcefield/wizard /obj/effect/proc_holder/spell/targeted/forcewall/cast(list/targets,mob/user = usr) - new wall_type(get_turf(user),user) + new wall_type(get_turf(user), null, user) if(user.dir == SOUTH || user.dir == NORTH) - new wall_type(get_step(user, EAST),user) - new wall_type(get_step(user, WEST),user) + new wall_type(get_step(user, EAST), null, user) + new wall_type(get_step(user, WEST), null, user) else - new wall_type(get_step(user, NORTH),user) - new wall_type(get_step(user, SOUTH),user) + new wall_type(get_step(user, NORTH), null, user) + new wall_type(get_step(user, SOUTH), null, user) /obj/effect/forcefield/wizard var/mob/wizard -/obj/effect/forcefield/wizard/Initialize(mapload, mob/summoner) +/obj/effect/forcefield/wizard/Initialize(mapload, new_timeleft, mob/summoner) . = ..() wizard = summoner diff --git a/code/modules/spells/spell_types/genetic.dm b/code/modules/spells/spell_types/genetic.dm index 9397484aeb6b..fea675fdc17d 100644 --- a/code/modules/spells/spell_types/genetic.dm +++ b/code/modules/spells/spell_types/genetic.dm @@ -29,7 +29,7 @@ ADD_TRAIT(target, A, GENETICS_SPELL) active_on += target if(duration < charge_max) - addtimer(CALLBACK(src, .proc/remove, target), duration, TIMER_OVERRIDE|TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(remove), target), duration, TIMER_OVERRIDE|TIMER_UNIQUE) /obj/effect/proc_holder/spell/targeted/genetic/Destroy() . = ..() diff --git a/code/modules/spells/spell_types/knock.dm b/code/modules/spells/spell_types/knock.dm index 28430fd86220..6fe24f5d3874 100644 --- a/code/modules/spells/spell_types/knock.dm +++ b/code/modules/spells/spell_types/knock.dm @@ -16,9 +16,9 @@ SEND_SOUND(user, sound('sound/magic/knock.ogg')) for(var/turf/T in targets) for(var/obj/machinery/door/door in T.contents) - INVOKE_ASYNC(src, .proc/open_door, door) + INVOKE_ASYNC(src, PROC_REF(open_door), door) for(var/obj/structure/closet/C in T.contents) - INVOKE_ASYNC(src, .proc/open_closet, C) + INVOKE_ASYNC(src, PROC_REF(open_closet), C) /obj/effect/proc_holder/spell/aoe_turf/knock/proc/open_door(obj/machinery/door/door) if(istype(door, /obj/machinery/door/airlock)) diff --git a/code/modules/spells/spell_types/lichdom.dm b/code/modules/spells/spell_types/lichdom.dm index db92e6530000..c8d1c4a7c027 100644 --- a/code/modules/spells/spell_types/lichdom.dm +++ b/code/modules/spells/spell_types/lichdom.dm @@ -118,7 +118,7 @@ return if(!mind.current || (mind.current && mind.current.stat == DEAD)) - addtimer(CALLBACK(src, .proc/rise), respawn_time, TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(rise)), respawn_time, TIMER_UNIQUE) /obj/item/phylactery/proc/rise() if(mind.current && mind.current.stat != DEAD) diff --git a/code/modules/spells/spell_types/mime.dm b/code/modules/spells/spell_types/mime.dm index 1f6302b89637..0e56c1112488 100644 --- a/code/modules/spells/spell_types/mime.dm +++ b/code/modules/spells/spell_types/mime.dm @@ -92,7 +92,7 @@ for (var/obj/item/storage/box/mime/B in T) user.put_in_hands(B) B.alpha = 255 - addtimer(CALLBACK(B, /obj/item/storage/box/mime/.proc/emptyStorage, FALSE), (summon_lifespan - 1)) + addtimer(CALLBACK(B, TYPE_PROC_REF(/obj/item/storage/box/mime, emptyStorage), FALSE), (summon_lifespan - 1)) /obj/effect/proc_holder/spell/aoe_turf/conjure/mime_box/Click() if(usr && usr.mind) diff --git a/code/modules/spells/spell_types/spacetime_distortion.dm b/code/modules/spells/spell_types/spacetime_distortion.dm index def36f4c8b12..a45f2afdaad5 100644 --- a/code/modules/spells/spell_types/spacetime_distortion.dm +++ b/code/modules/spells/spell_types/spacetime_distortion.dm @@ -36,7 +36,7 @@ perform(turf_steps,user=user) /obj/effect/proc_holder/spell/spacetime_dist/after_cast(list/targets) - addtimer(CALLBACK(src, .proc/clean_turfs), duration) + addtimer(CALLBACK(src, PROC_REF(clean_turfs)), duration) /obj/effect/proc_holder/spell/spacetime_dist/cast(list/targets, mob/user = usr) effects = list() @@ -84,7 +84,7 @@ . = ..() setDir(pick(GLOB.cardinals)) var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) AddElement(/datum/element/connect_loc, loc_connections) diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index 92b51e0f2049..366fb41790ab 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -125,8 +125,8 @@ /obj/item/bodypart/Initialize(mapload) . = ..() if(can_be_disabled) - RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS), .proc/on_paralysis_trait_gain) - RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS), .proc/on_paralysis_trait_loss) + RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS), PROC_REF(on_paralysis_trait_gain)) + RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS), PROC_REF(on_paralysis_trait_loss)) /obj/item/bodypart/Destroy() @@ -338,7 +338,7 @@ if(total_damage >= max_damage * disable_threshold) //Easy limb disable disables the limb at 40% health instead of 0% if(!last_maxed) if(owner.stat < UNCONSCIOUS) - INVOKE_ASYNC(owner, /mob.proc/emote, "scream") + INVOKE_ASYNC(owner, TYPE_PROC_REF(/mob, emote), "scream") last_maxed = TRUE set_disabled(TRUE) return @@ -390,14 +390,14 @@ if(HAS_TRAIT(owner, TRAIT_EASYLIMBDISABLE)) disable_threshold = 0.6 needs_update_disabled = TRUE - RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_EASYLIMBDISABLE), .proc/on_owner_easylimbwound_trait_loss) - RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_EASYLIMBDISABLE), .proc/on_owner_easylimbwound_trait_gain) + RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_EASYLIMBDISABLE), PROC_REF(on_owner_easylimbwound_trait_loss)) + RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_EASYLIMBDISABLE), PROC_REF(on_owner_easylimbwound_trait_gain)) if(initial(can_be_disabled)) if(HAS_TRAIT(owner, TRAIT_NOLIMBDISABLE)) set_can_be_disabled(FALSE) needs_update_disabled = FALSE - RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_NOLIMBDISABLE), .proc/on_owner_nolimbdisable_trait_loss) - RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_NOLIMBDISABLE), .proc/on_owner_nolimbdisable_trait_gain) + RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_NOLIMBDISABLE), PROC_REF(on_owner_nolimbdisable_trait_loss)) + RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_NOLIMBDISABLE), PROC_REF(on_owner_nolimbdisable_trait_gain)) if(needs_update_disabled) update_disabled() @@ -412,12 +412,12 @@ if(owner) if(HAS_TRAIT(owner, TRAIT_NOLIMBDISABLE)) CRASH("set_can_be_disabled to TRUE with for limb whose owner has TRAIT_NOLIMBDISABLE") - RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS), .proc/on_paralysis_trait_gain) - RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS), .proc/on_paralysis_trait_loss) + RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS), PROC_REF(on_paralysis_trait_gain)) + RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS), PROC_REF(on_paralysis_trait_loss)) if(HAS_TRAIT(owner, TRAIT_EASYLIMBDISABLE)) disable_threshold = 0.6 - RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_EASYLIMBDISABLE), .proc/on_owner_easylimbwound_trait_loss) - RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_EASYLIMBDISABLE), .proc/on_owner_easylimbwound_trait_gain) + RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_EASYLIMBDISABLE), PROC_REF(on_owner_easylimbwound_trait_loss)) + RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_EASYLIMBDISABLE), PROC_REF(on_owner_easylimbwound_trait_gain)) update_disabled() else if(.) if(owner) @@ -581,7 +581,7 @@ bone_status = BONE_FLAG_NO_BONES else bone_status = BONE_FLAG_NORMAL - RegisterSignal(owner, COMSIG_MOVABLE_MOVED, .proc/on_mob_move) + RegisterSignal(owner, COMSIG_MOVABLE_MOVED, PROC_REF(on_mob_move)) draw_color = mutation_color @@ -736,7 +736,7 @@ if (bone_status == BONE_FLAG_NORMAL && body_part & LEGS) // Because arms are not legs owner.set_broken_legs(owner.broken_legs + 1) bone_status = BONE_FLAG_BROKEN - addtimer(CALLBACK(owner, /atom/.proc/visible_message, "You hear a cracking sound coming from [owner]'s [name].", "You feel something crack in your [name]!", "You hear an awful cracking sound."), 1 SECONDS) + addtimer(CALLBACK(owner, TYPE_PROC_REF(/atom, visible_message), "You hear a cracking sound coming from [owner]'s [name].", "You feel something crack in your [name]!", "You hear an awful cracking sound."), 1 SECONDS) /obj/item/bodypart/proc/fix_bone() // owner.update_inv_splints() breaks diff --git a/code/modules/surgery/bodyparts/dismemberment.dm b/code/modules/surgery/bodyparts/dismemberment.dm index b063d01f8048..7c292ac21fc4 100644 --- a/code/modules/surgery/bodyparts/dismemberment.dm +++ b/code/modules/surgery/bodyparts/dismemberment.dm @@ -20,7 +20,7 @@ if(C.stat <= SOFT_CRIT)//No more screaming while unconsious if(IS_ORGANIC_LIMB(affecting))//Chest is a good indicator for if a carbon is robotic in nature or not. - INVOKE_ASYNC(C, /mob.proc/emote, "scream") + INVOKE_ASYNC(C, TYPE_PROC_REF(/mob, emote), "scream") SEND_SIGNAL(C, COMSIG_ADD_MOOD_EVENT, "dismembered", /datum/mood_event/dismembered) diff --git a/code/modules/surgery/bodyparts/parts.dm b/code/modules/surgery/bodyparts/parts.dm index 8a101112377f..57d20bc3952a 100644 --- a/code/modules/surgery/bodyparts/parts.dm +++ b/code/modules/surgery/bodyparts/parts.dm @@ -85,10 +85,10 @@ if(owner) if(HAS_TRAIT(owner, TRAIT_PARALYSIS_L_ARM)) ADD_TRAIT(src, TRAIT_PARALYSIS, TRAIT_PARALYSIS_L_ARM) - RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS_L_ARM), .proc/on_owner_paralysis_loss) + RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS_L_ARM), PROC_REF(on_owner_paralysis_loss)) else REMOVE_TRAIT(src, TRAIT_PARALYSIS, TRAIT_PARALYSIS_L_ARM) - RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_L_ARM), .proc/on_owner_paralysis_gain) + RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_L_ARM), PROC_REF(on_owner_paralysis_gain)) if(.) var/mob/living/carbon/old_owner = . if(HAS_TRAIT(old_owner, TRAIT_PARALYSIS_L_ARM)) @@ -104,7 +104,7 @@ SIGNAL_HANDLER ADD_TRAIT(src, TRAIT_PARALYSIS, TRAIT_PARALYSIS_L_ARM) UnregisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_L_ARM)) - RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS_L_ARM), .proc/on_owner_paralysis_loss) + RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS_L_ARM), PROC_REF(on_owner_paralysis_loss)) ///Proc to react to the owner losing the TRAIT_PARALYSIS_L_ARM trait. @@ -112,7 +112,7 @@ SIGNAL_HANDLER REMOVE_TRAIT(src, TRAIT_PARALYSIS, TRAIT_PARALYSIS_L_ARM) UnregisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS_L_ARM)) - RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_L_ARM), .proc/on_owner_paralysis_gain) + RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_L_ARM), PROC_REF(on_owner_paralysis_gain)) /obj/item/bodypart/l_arm/set_disabled(new_disabled) @@ -187,10 +187,10 @@ if(owner) if(HAS_TRAIT(owner, TRAIT_PARALYSIS_R_ARM)) ADD_TRAIT(src, TRAIT_PARALYSIS, TRAIT_PARALYSIS_R_ARM) - RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS_R_ARM), .proc/on_owner_paralysis_loss) + RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS_R_ARM), PROC_REF(on_owner_paralysis_loss)) else REMOVE_TRAIT(src, TRAIT_PARALYSIS, TRAIT_PARALYSIS_R_ARM) - RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_R_ARM), .proc/on_owner_paralysis_gain) + RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_R_ARM), PROC_REF(on_owner_paralysis_gain)) if(.) var/mob/living/carbon/old_owner = . if(HAS_TRAIT(old_owner, TRAIT_PARALYSIS_R_ARM)) @@ -206,7 +206,7 @@ SIGNAL_HANDLER ADD_TRAIT(src, TRAIT_PARALYSIS, TRAIT_PARALYSIS_R_ARM) UnregisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_R_ARM)) - RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS_R_ARM), .proc/on_owner_paralysis_loss) + RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS_R_ARM), PROC_REF(on_owner_paralysis_loss)) ///Proc to react to the owner losing the TRAIT_PARALYSIS_R_ARM trait. @@ -214,7 +214,7 @@ SIGNAL_HANDLER REMOVE_TRAIT(src, TRAIT_PARALYSIS, TRAIT_PARALYSIS_R_ARM) UnregisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS_R_ARM)) - RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_R_ARM), .proc/on_owner_paralysis_gain) + RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_R_ARM), PROC_REF(on_owner_paralysis_gain)) /obj/item/bodypart/r_arm/set_disabled(new_disabled) @@ -285,10 +285,10 @@ if(owner) if(HAS_TRAIT(owner, TRAIT_PARALYSIS_L_LEG)) ADD_TRAIT(src, TRAIT_PARALYSIS, TRAIT_PARALYSIS_L_LEG) - RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS_L_LEG), .proc/on_owner_paralysis_loss) + RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS_L_LEG), PROC_REF(on_owner_paralysis_loss)) else REMOVE_TRAIT(src, TRAIT_PARALYSIS, TRAIT_PARALYSIS_L_LEG) - RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_L_LEG), .proc/on_owner_paralysis_gain) + RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_L_LEG), PROC_REF(on_owner_paralysis_gain)) if(.) var/mob/living/carbon/old_owner = . if(HAS_TRAIT(old_owner, TRAIT_PARALYSIS_L_LEG)) @@ -304,7 +304,7 @@ SIGNAL_HANDLER ADD_TRAIT(src, TRAIT_PARALYSIS, TRAIT_PARALYSIS_L_LEG) UnregisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_L_LEG)) - RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS_L_LEG), .proc/on_owner_paralysis_loss) + RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS_L_LEG), PROC_REF(on_owner_paralysis_loss)) ///Proc to react to the owner losing the TRAIT_PARALYSIS_L_LEG trait. @@ -312,7 +312,7 @@ SIGNAL_HANDLER REMOVE_TRAIT(src, TRAIT_PARALYSIS, TRAIT_PARALYSIS_L_LEG) UnregisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS_L_LEG)) - RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_L_LEG), .proc/on_owner_paralysis_gain) + RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_L_LEG), PROC_REF(on_owner_paralysis_gain)) /obj/item/bodypart/leg/left/set_disabled(new_disabled) @@ -378,10 +378,10 @@ if(owner) if(HAS_TRAIT(owner, TRAIT_PARALYSIS_R_LEG)) ADD_TRAIT(src, TRAIT_PARALYSIS, TRAIT_PARALYSIS_R_LEG) - RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS_R_LEG), .proc/on_owner_paralysis_loss) + RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS_R_LEG), PROC_REF(on_owner_paralysis_loss)) else REMOVE_TRAIT(src, TRAIT_PARALYSIS, TRAIT_PARALYSIS_R_LEG) - RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_R_LEG), .proc/on_owner_paralysis_gain) + RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_R_LEG), PROC_REF(on_owner_paralysis_gain)) if(.) var/mob/living/carbon/old_owner = . if(HAS_TRAIT(old_owner, TRAIT_PARALYSIS_R_LEG)) @@ -397,7 +397,7 @@ SIGNAL_HANDLER ADD_TRAIT(src, TRAIT_PARALYSIS, TRAIT_PARALYSIS_R_LEG) UnregisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_R_LEG)) - RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS_R_LEG), .proc/on_owner_paralysis_loss) + RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS_R_LEG), PROC_REF(on_owner_paralysis_loss)) ///Proc to react to the owner losing the TRAIT_PARALYSIS_R_LEG trait. @@ -405,7 +405,7 @@ SIGNAL_HANDLER REMOVE_TRAIT(src, TRAIT_PARALYSIS, TRAIT_PARALYSIS_R_LEG) UnregisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_PARALYSIS_R_LEG)) - RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_R_LEG), .proc/on_owner_paralysis_gain) + RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_PARALYSIS_R_LEG), PROC_REF(on_owner_paralysis_gain)) /obj/item/bodypart/leg/right/set_disabled(new_disabled) diff --git a/code/modules/surgery/bodyparts/species_parts/rachnid_bodyparts.dm b/code/modules/surgery/bodyparts/species_parts/rachnid_bodyparts.dm index 163b94385dea..367c07a54970 100644 --- a/code/modules/surgery/bodyparts/species_parts/rachnid_bodyparts.dm +++ b/code/modules/surgery/bodyparts/species_parts/rachnid_bodyparts.dm @@ -1,31 +1,34 @@ /obj/item/bodypart/head/rachnid - icon = 'icons/mob/species/rachnid/bodyparts.dmi' + static_icon = 'icons/mob/species/rachnid/bodyparts.dmi' limb_id = SPECIES_RACHNID - is_dimorphic = FALSE should_draw_greyscale = FALSE + overlay_icon_state = TRUE /obj/item/bodypart/chest/rachnid - icon = 'icons/mob/species/rachnid/bodyparts.dmi' + static_icon = 'icons/mob/species/rachnid/bodyparts.dmi' limb_id = SPECIES_RACHNID is_dimorphic = FALSE should_draw_greyscale = FALSE + overlay_icon_state = TRUE /obj/item/bodypart/l_arm/rachnid - icon = 'icons/mob/species/rachnid/bodyparts.dmi' + static_icon = 'icons/mob/species/rachnid/bodyparts.dmi' limb_id = SPECIES_RACHNID should_draw_greyscale = FALSE /obj/item/bodypart/r_arm/rachnid - icon = 'icons/mob/species/rachnid/bodyparts.dmi' + static_icon = 'icons/mob/species/rachnid/bodyparts.dmi' limb_id = SPECIES_RACHNID should_draw_greyscale = FALSE /obj/item/bodypart/leg/left/rachnid - icon = 'icons/mob/species/rachnid/bodyparts.dmi' + static_icon = 'icons/mob/species/rachnid/bodyparts.dmi' limb_id = SPECIES_RACHNID should_draw_greyscale = FALSE + overlay_icon_state = TRUE /obj/item/bodypart/leg/right/rachnid - icon = 'icons/mob/species/rachnid/bodyparts.dmi' + static_icon = 'icons/mob/species/rachnid/bodyparts.dmi' limb_id = SPECIES_RACHNID should_draw_greyscale = FALSE + overlay_icon_state = TRUE diff --git a/code/modules/surgery/organs/augments_chest.dm b/code/modules/surgery/organs/augments_chest.dm index f8314a7c6dfa..dc95ab97cece 100644 --- a/code/modules/surgery/organs/augments_chest.dm +++ b/code/modules/surgery/organs/augments_chest.dm @@ -23,7 +23,7 @@ synthesizing = TRUE to_chat(owner, "You feel less hungry...") owner.adjust_nutrition(50) - addtimer(CALLBACK(src, .proc/synth_cool), 50) + addtimer(CALLBACK(src, PROC_REF(synth_cool)), 50) /obj/item/organ/cyberimp/chest/nutriment/proc/synth_cool() synthesizing = FALSE @@ -59,7 +59,7 @@ if(reviving) switch(owner.stat) if(UNCONSCIOUS, HARD_CRIT) - addtimer(CALLBACK(src, .proc/heal), 3 SECONDS) + addtimer(CALLBACK(src, PROC_REF(heal)), 3 SECONDS) else COOLDOWN_START(src, reviver_cooldown, revive_cost) reviving = FALSE @@ -105,7 +105,7 @@ if(H.stat != DEAD && prob(50 / severity) && H.can_heartattack()) H.set_heartattack(TRUE) to_chat(H, "You feel a horrible agony in your chest!") - addtimer(CALLBACK(src, .proc/undo_heart_attack), 600 / severity) + addtimer(CALLBACK(src, PROC_REF(undo_heart_attack)), 600 / severity) /obj/item/organ/cyberimp/chest/reviver/proc/undo_heart_attack() var/mob/living/carbon/human/H = owner @@ -154,9 +154,9 @@ if(allow_thrust(0.01)) on = TRUE ion_trail.start() - RegisterSignal(owner, COMSIG_MOVABLE_MOVED, .proc/move_react) + RegisterSignal(owner, COMSIG_MOVABLE_MOVED, PROC_REF(move_react)) owner.add_movespeed_modifier(/datum/movespeed_modifier/jetpack/cybernetic) - RegisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE, .proc/pre_move_react) + RegisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(pre_move_react)) if(!silent) to_chat(owner, "You turn your thrusters set on.") else diff --git a/code/modules/surgery/organs/augments_internal.dm b/code/modules/surgery/organs/augments_internal.dm index a7a383927b0e..ae6f1cf43d39 100644 --- a/code/modules/surgery/organs/augments_internal.dm +++ b/code/modules/surgery/organs/augments_internal.dm @@ -115,11 +115,11 @@ /obj/item/organ/cyberimp/brain/anti_stun/Insert() . = ..() - RegisterSignal(owner, signalCache, .proc/on_signal) + RegisterSignal(owner, signalCache, PROC_REF(on_signal)) /obj/item/organ/cyberimp/brain/anti_stun/proc/on_signal(datum/source, amount) if(!(organ_flags & ORGAN_FAILING) && amount > 0) - addtimer(CALLBACK(src, .proc/clear_stuns), stun_cap_amount, TIMER_UNIQUE|TIMER_OVERRIDE) + addtimer(CALLBACK(src, PROC_REF(clear_stuns)), stun_cap_amount, TIMER_UNIQUE|TIMER_OVERRIDE) /obj/item/organ/cyberimp/brain/anti_stun/proc/clear_stuns() if(owner || !(organ_flags & ORGAN_FAILING)) @@ -133,7 +133,7 @@ if((organ_flags & ORGAN_FAILING) || . & EMP_PROTECT_SELF) return organ_flags |= ORGAN_FAILING - addtimer(CALLBACK(src, .proc/reboot), 90 / severity) + addtimer(CALLBACK(src, PROC_REF(reboot)), 90 / severity) /obj/item/organ/cyberimp/brain/anti_stun/proc/reboot() organ_flags &= ~ORGAN_FAILING diff --git a/code/modules/surgery/organs/eyes.dm b/code/modules/surgery/organs/eyes.dm index 0bd9ed46d1a9..de0ebac6eddb 100644 --- a/code/modules/surgery/organs/eyes.dm +++ b/code/modules/surgery/organs/eyes.dm @@ -301,7 +301,7 @@ /obj/item/organ/eyes/robotic/glow/Insert(mob/living/carbon/M, special = FALSE, drop_if_replaced = FALSE) . = ..() - RegisterSignal(M, COMSIG_ATOM_DIR_CHANGE, .proc/update_visuals) + RegisterSignal(M, COMSIG_ATOM_DIR_CHANGE, PROC_REF(update_visuals)) /obj/item/organ/eyes/robotic/glow/Remove(mob/living/carbon/M, special = FALSE) . = ..() diff --git a/code/modules/surgery/organs/heart.dm b/code/modules/surgery/organs/heart.dm index cafcc0196b1b..26b93d2c4642 100644 --- a/code/modules/surgery/organs/heart.dm +++ b/code/modules/surgery/organs/heart.dm @@ -31,7 +31,7 @@ /obj/item/organ/heart/Remove(mob/living/carbon/M, special = 0) ..() if(!special) - addtimer(CALLBACK(src, .proc/stop_if_unowned), 120) + addtimer(CALLBACK(src, PROC_REF(stop_if_unowned)), 120) /obj/item/organ/heart/proc/stop_if_unowned() if(!owner) @@ -43,7 +43,7 @@ user.visible_message("[user] squeezes [src] to \ make it beat again!","You squeeze [src] to make it beat again!") Restart() - addtimer(CALLBACK(src, .proc/stop_if_unowned), 80) + addtimer(CALLBACK(src, PROC_REF(stop_if_unowned)), 80) /obj/item/organ/heart/proc/Stop() beating = 0 diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index 51d857aaeff6..4b5dd9a49717 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -38,7 +38,7 @@ /obj/item/organ/Initialize() . = ..() if(organ_flags & ORGAN_EDIBLE) - AddComponent(/datum/component/edible, food_reagents, null, RAW | MEAT | GORE, null, 10, null, null, null, CALLBACK(src, .proc/OnEatFrom)) + AddComponent(/datum/component/edible, food_reagents, null, RAW | MEAT | GORE, null, 10, null, null, null, CALLBACK(src, PROC_REF(OnEatFrom))) ///When you take a bite you cant jam it in for surgery anymore. /obj/item/organ/proc/Insert(mob/living/carbon/M, special = 0, drop_if_replaced = TRUE) diff --git a/code/modules/surgery/organs/stomach.dm b/code/modules/surgery/organs/stomach.dm index 10cc049eb806..2e2403db14c6 100644 --- a/code/modules/surgery/organs/stomach.dm +++ b/code/modules/surgery/organs/stomach.dm @@ -109,8 +109,8 @@ /obj/item/organ/stomach/ethereal/Insert(mob/living/carbon/M, special = 0) ..() - RegisterSignal(owner, COMSIG_PROCESS_BORGCHARGER_OCCUPANT, .proc/charge) - RegisterSignal(owner, COMSIG_LIVING_ELECTROCUTE_ACT, .proc/on_electrocute) + RegisterSignal(owner, COMSIG_PROCESS_BORGCHARGER_OCCUPANT, PROC_REF(charge)) + RegisterSignal(owner, COMSIG_LIVING_ELECTROCUTE_ACT, PROC_REF(on_electrocute)) /obj/item/organ/stomach/ethereal/Remove(mob/living/carbon/M, special = 0) UnregisterSignal(owner, COMSIG_PROCESS_BORGCHARGER_OCCUPANT) diff --git a/code/modules/surgery/organs/tails.dm b/code/modules/surgery/organs/tails.dm index f587a26d8404..2d3e402150a2 100644 --- a/code/modules/surgery/organs/tails.dm +++ b/code/modules/surgery/organs/tails.dm @@ -83,7 +83,7 @@ /obj/item/organ/tail/lizard/fake name = "fabricated lizard tail" - desc = "A fabricated severed lizard tail. This one's made of synthflesh. Probably not usable for lizard wine." + desc = "A fabricated severed lizard tail. This one's made of synthflesh." /obj/item/organ/tail/elzu name = "\improper Elzuose tail" diff --git a/code/modules/surgery/organs/tongue.dm b/code/modules/surgery/organs/tongue.dm index 77fae8c0bb87..40920cc5d21a 100644 --- a/code/modules/surgery/organs/tongue.dm +++ b/code/modules/surgery/organs/tongue.dm @@ -34,13 +34,13 @@ /obj/item/organ/tongue/Insert(mob/living/carbon/M, special = 0) ..() if (modifies_speech) - RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(M, COMSIG_MOB_SAY, PROC_REF(handle_speech)) M.UnregisterSignal(M, COMSIG_MOB_SAY) /obj/item/organ/tongue/Remove(mob/living/carbon/M, special = 0) ..() - UnregisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech) - M.RegisterSignal(M, COMSIG_MOB_SAY, /mob/living/carbon/.proc/handle_tongueless_speech) + UnregisterSignal(M, COMSIG_MOB_SAY, PROC_REF(handle_speech)) + M.RegisterSignal(M, COMSIG_MOB_SAY, TYPE_PROC_REF(/mob/living/carbon, handle_tongueless_speech)) /obj/item/organ/tongue/could_speak_language(language) return is_type_in_typecache(language, languages_possible) diff --git a/code/modules/surgery/organs/vocal_cords.dm b/code/modules/surgery/organs/vocal_cords.dm index 7fdf9532de17..1a0f1ea60f3d 100644 --- a/code/modules/surgery/organs/vocal_cords.dm +++ b/code/modules/surgery/organs/vocal_cords.dm @@ -368,7 +368,7 @@ text = devilinfo.truename else text = L.real_name - addtimer(CALLBACK(L, /atom/movable/proc/say, text), 5 * i) + addtimer(CALLBACK(L, TYPE_PROC_REF(/atom/movable, say), text), 5 * i) i++ //SAY MY NAME @@ -376,7 +376,7 @@ cooldown = COOLDOWN_MEME for(var/V in listeners) var/mob/living/L = V - addtimer(CALLBACK(L, /atom/movable/proc/say, user.name), 5 * i) + addtimer(CALLBACK(L, TYPE_PROC_REF(/atom/movable, say), user.name), 5 * i) i++ //KNOCK KNOCK @@ -384,7 +384,7 @@ cooldown = COOLDOWN_MEME for(var/V in listeners) var/mob/living/L = V - addtimer(CALLBACK(L, /atom/movable/proc/say, "Who's there?"), 5 * i) + addtimer(CALLBACK(L, TYPE_PROC_REF(/atom/movable, say), "Who's there?"), 5 * i) i++ //STATE LAWS @@ -408,7 +408,7 @@ for(var/iter in 1 to 5 * power_multiplier) for(var/V in listeners) var/mob/living/L = V - addtimer(CALLBACK(GLOBAL_PROC, .proc/_step, L, direction? direction : pick(GLOB.cardinals)), 10 * (iter - 1)) + addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(_step), L, direction? direction : pick(GLOB.cardinals)), 10 * (iter - 1)) //WALK else if((findtext(message, walk_words))) @@ -431,7 +431,7 @@ cooldown = COOLDOWN_MEME for(var/mob/living/carbon/human/H in listeners) addtimer(CALLBACK(H, /mob/verb/a_intent_change, INTENT_HELP), i * 2) - addtimer(CALLBACK(H, /mob/proc/click_random_mob), i * 2) + addtimer(CALLBACK(H, TYPE_PROC_REF(/mob, click_random_mob)), i * 2) i++ //DISARM INTENT @@ -439,7 +439,7 @@ cooldown = COOLDOWN_MEME for(var/mob/living/carbon/human/H in listeners) addtimer(CALLBACK(H, /mob/verb/a_intent_change, INTENT_DISARM), i * 2) - addtimer(CALLBACK(H, /mob/proc/click_random_mob), i * 2) + addtimer(CALLBACK(H, TYPE_PROC_REF(/mob, click_random_mob)), i * 2) i++ //GRAB INTENT @@ -447,7 +447,7 @@ cooldown = COOLDOWN_MEME for(var/mob/living/carbon/human/H in listeners) addtimer(CALLBACK(H, /mob/verb/a_intent_change, INTENT_GRAB), i * 2) - addtimer(CALLBACK(H, /mob/proc/click_random_mob), i * 2) + addtimer(CALLBACK(H, TYPE_PROC_REF(/mob, click_random_mob)), i * 2) i++ //HARM INTENT @@ -455,7 +455,7 @@ cooldown = COOLDOWN_MEME for(var/mob/living/carbon/human/H in listeners) addtimer(CALLBACK(H, /mob/verb/a_intent_change, INTENT_HARM), i * 2) - addtimer(CALLBACK(H, /mob/proc/click_random_mob), i * 2) + addtimer(CALLBACK(H, TYPE_PROC_REF(/mob, click_random_mob)), i * 2) i++ //THROW/CATCH @@ -476,7 +476,7 @@ cooldown = COOLDOWN_MEME for(var/V in listeners) var/mob/living/L = V - addtimer(CALLBACK(L, /atom/movable/proc/say, pick_list_replacements(BRAIN_DAMAGE_FILE, "brain_damage")), 5 * i) + addtimer(CALLBACK(L, TYPE_PROC_REF(/atom/movable, say), pick_list_replacements(BRAIN_DAMAGE_FILE, "brain_damage")), 5 * i) i++ //GET UP @@ -509,7 +509,7 @@ cooldown = COOLDOWN_MEME for(var/V in listeners) var/mob/living/L = V - addtimer(CALLBACK(L, /mob/living/.proc/emote, "dance"), 5 * i) + addtimer(CALLBACK(L, TYPE_PROC_REF(/mob/living, emote), "dance"), 5 * i) i++ //JUMP @@ -518,8 +518,8 @@ for(var/V in listeners) var/mob/living/L = V if(prob(25)) - addtimer(CALLBACK(L, /atom/movable/proc/say, "HOW HIGH?!!"), 5 * i) - addtimer(CALLBACK(L, /mob/living/.proc/emote, "jump"), 5 * i) + addtimer(CALLBACK(L, TYPE_PROC_REF(/atom/movable, say), "HOW HIGH?!!"), 5 * i) + addtimer(CALLBACK(L, TYPE_PROC_REF(/mob/living, emote), "jump"), 5 * i) i++ //SALUTE @@ -527,7 +527,7 @@ cooldown = COOLDOWN_MEME for(var/V in listeners) var/mob/living/L = V - addtimer(CALLBACK(L, /mob/living/.proc/emote, "salute"), 5 * i) + addtimer(CALLBACK(L, TYPE_PROC_REF(/mob/living, emote), "salute"), 5 * i) i++ //PLAY DEAD @@ -535,7 +535,7 @@ cooldown = COOLDOWN_MEME for(var/V in listeners) var/mob/living/L = V - addtimer(CALLBACK(L, /mob/living/.proc/emote, "deathgasp"), 5 * i) + addtimer(CALLBACK(L, TYPE_PROC_REF(/mob/living, emote), "deathgasp"), 5 * i) i++ //PLEASE CLAP @@ -543,13 +543,13 @@ cooldown = COOLDOWN_MEME for(var/V in listeners) var/mob/living/L = V - addtimer(CALLBACK(L, /mob/living/.proc/emote, "clap"), 5 * i) + addtimer(CALLBACK(L, TYPE_PROC_REF(/mob/living, emote), "clap"), 5 * i) i++ //HONK else if((findtext(message, honk_words))) cooldown = COOLDOWN_MEME - addtimer(CALLBACK(GLOBAL_PROC, .proc/playsound, get_turf(user), 'sound/items/bikehorn.ogg', 300, 1), 25) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), get_turf(user), 'sound/items/bikehorn.ogg', 300, 1), 25) if(user.mind && user.mind.assigned_role == "Clown") for(var/mob/living/carbon/C in listeners) C.slip(140 * power_multiplier) diff --git a/code/modules/tgs/core/core.dm b/code/modules/tgs/core/core.dm index 41a047339452..b9a9f27a28ae 100644 --- a/code/modules/tgs/core/core.dm +++ b/code/modules/tgs/core/core.dm @@ -153,4 +153,9 @@ /world/TgsSecurityLevel() var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) if(api) - api.SecurityLevel() + return api.SecurityLevel() + +/world/TgsVisibility() + var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) + if(api) + return api.Visibility() diff --git a/code/modules/tgs/core/datum.dm b/code/modules/tgs/core/datum.dm index 68b0330fe860..07ce3b684584 100644 --- a/code/modules/tgs/core/datum.dm +++ b/code/modules/tgs/core/datum.dm @@ -11,6 +11,15 @@ TGS_DEFINE_AND_SET_GLOBAL(tgs, null) src.event_handler = event_handler src.version = version +/datum/tgs_api/proc/TerminateWorld() + while(TRUE) + TGS_DEBUG_LOG("About to terminate world. Tick: [world.time], sleep_offline: [world.sleep_offline]") + world.sleep_offline = FALSE // https://www.byond.com/forum/post/2894866 + del(world) + world.sleep_offline = FALSE // just in case, this is BYOND after all... + sleep(1) + TGS_DEBUG_LOG("BYOND DIDN'T TERMINATE THE WORLD!!! TICK IS: [world.time], sleep_offline: [world.sleep_offline]") + /datum/tgs_api/latest parent_type = /datum/tgs_api/v5 @@ -57,3 +66,6 @@ TGS_PROTECT_DATUM(/datum/tgs_api) /datum/tgs_api/proc/SecurityLevel() return TGS_UNIMPLEMENTED + +/datum/tgs_api/proc/Visibility() + return TGS_UNIMPLEMENTED diff --git a/code/modules/tgs/v4/api.dm b/code/modules/tgs/v4/api.dm index b9a75c4abb48..945e2e411767 100644 --- a/code/modules/tgs/v4/api.dm +++ b/code/modules/tgs/v4/api.dm @@ -73,7 +73,7 @@ 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) + TerminateWorld() security_level = cached_json["securityLevel"] chat_channels_json_path = cached_json["chatChannelsJson"] @@ -188,7 +188,7 @@ 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) + TerminateWorld() //request a new port export_lock = FALSE @@ -196,16 +196,16 @@ if(!new_port_json) TGS_ERROR_LOG("No new port response from server![TGS4_PORT_CRITFAIL_MESSAGE]") - del(world) + TerminateWorld() 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) + TerminateWorld() if(new_port != world.port && !world.OpenPort(new_port)) TGS_ERROR_LOG("Unable to open port [new_port]![TGS4_PORT_CRITFAIL_MESSAGE]") - del(world) + TerminateWorld() requesting_new_port = FALSE while(export_lock) diff --git a/code/modules/tgs/v5/__interop_version.dm b/code/modules/tgs/v5/__interop_version.dm index 5d3d491a7362..1b52b31d6a73 100644 --- a/code/modules/tgs/v5/__interop_version.dm +++ b/code/modules/tgs/v5/__interop_version.dm @@ -1 +1 @@ -"5.6.1" +"5.6.2" diff --git a/code/modules/tgs/v5/_defines.dm b/code/modules/tgs/v5/_defines.dm index f973338daa03..bdcd4e4dd58e 100644 --- a/code/modules/tgs/v5/_defines.dm +++ b/code/modules/tgs/v5/_defines.dm @@ -48,6 +48,7 @@ #define DMAPI5_RUNTIME_INFORMATION_REVISION "revision" #define DMAPI5_RUNTIME_INFORMATION_TEST_MERGES "testMerges" #define DMAPI5_RUNTIME_INFORMATION_SECURITY_LEVEL "securityLevel" +#define DMAPI5_RUNTIME_INFORMATION_VISIBILITY "visibility" #define DMAPI5_CHAT_UPDATE_CHANNELS "channels" diff --git a/code/modules/tgs/v5/api.dm b/code/modules/tgs/v5/api.dm index 34cc43f8762f..7226f29bba60 100644 --- a/code/modules/tgs/v5/api.dm +++ b/code/modules/tgs/v5/api.dm @@ -4,6 +4,7 @@ var/instance_name var/security_level + var/visibility var/reboot_mode = TGS_REBOOT_MODE_NORMAL @@ -50,10 +51,11 @@ if(runtime_information[DMAPI5_RUNTIME_INFORMATION_API_VALIDATE_ONLY]) TGS_INFO_LOG("DMAPI validation, exiting...") - del(world) + TerminateWorld() version = new /datum/tgs_version(runtime_information[DMAPI5_RUNTIME_INFORMATION_SERVER_VERSION]) security_level = runtime_information[DMAPI5_RUNTIME_INFORMATION_SECURITY_LEVEL] + visibility = runtime_information[DMAPI5_RUNTIME_INFORMATION_VISIBILITY] instance_name = runtime_information[DMAPI5_RUNTIME_INFORMATION_INSTANCE_NAME] var/list/revisionData = runtime_information[DMAPI5_RUNTIME_INFORMATION_REVISION] @@ -252,3 +254,7 @@ /datum/tgs_api/v5/SecurityLevel() RequireInitialBridgeResponse() return security_level + +/datum/tgs_api/v5/Visibility() + RequireInitialBridgeResponse() + return visibility diff --git a/code/modules/tgs/v5/undefs.dm b/code/modules/tgs/v5/undefs.dm index c679737dfc49..f163adaaafe3 100644 --- a/code/modules/tgs/v5/undefs.dm +++ b/code/modules/tgs/v5/undefs.dm @@ -48,6 +48,7 @@ #undef DMAPI5_RUNTIME_INFORMATION_REVISION #undef DMAPI5_RUNTIME_INFORMATION_TEST_MERGES #undef DMAPI5_RUNTIME_INFORMATION_SECURITY_LEVEL +#undef DMAPI5_RUNTIME_INFORMATION_VISIBILITY #undef DMAPI5_CHAT_UPDATE_CHANNELS diff --git a/code/modules/tgui/tgui.dm b/code/modules/tgui/tgui.dm index de912957a0ac..a79966f69ba1 100644 --- a/code/modules/tgui/tgui.dm +++ b/code/modules/tgui/tgui.dm @@ -312,8 +312,7 @@ window = window, src_object = src_object) process_status() - if(src_object.ui_act(act_type, payload, src, state)) - SStgui.update_uis(src_object) + DEFAULT_QUEUE_OR_CALL_VERB(VERB_CALLBACK(src, PROC_REF(on_act_message), act_type, payload, state)) return FALSE switch(type) if("ready") @@ -332,3 +331,10 @@ return LAZYSET(src_object.tgui_shared_states, href_list["key"], href_list["value"]) SStgui.update_uis(src_object) + +/// Wrapper for behavior to potentially wait until the next tick if the server is overloaded +/datum/tgui/proc/on_act_message(act_type, payload, state) + if(QDELETED(src) || QDELETED(src_object)) + return + if(src_object.ui_act(act_type, payload, src, state)) + SStgui.update_uis(src_object) diff --git a/code/modules/tgui_panel/tgui_panel.dm b/code/modules/tgui_panel/tgui_panel.dm index 8327fb838eb7..fdd74389c837 100644 --- a/code/modules/tgui_panel/tgui_panel.dm +++ b/code/modules/tgui_panel/tgui_panel.dm @@ -16,7 +16,7 @@ /datum/tgui_panel/New(client/client) src.client = client window = new(client, "browseroutput") - window.subscribe(src, .proc/on_message) + window.subscribe(src, PROC_REF(on_message)) /datum/tgui_panel/Del() window.unsubscribe(src) @@ -49,7 +49,7 @@ window.send_asset(get_asset_datum(/datum/asset/simple/namespaced/fontawesome)) window.send_asset(get_asset_datum(/datum/asset/spritesheet/chat)) request_telemetry() - addtimer(CALLBACK(src, .proc/on_initialize_timed_out), 5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(on_initialize_timed_out)), 5 SECONDS) /** * private diff --git a/code/modules/tooltip/tooltip.dm b/code/modules/tooltip/tooltip.dm index 31e570cd9431..f0cb3562bdf2 100644 --- a/code/modules/tooltip/tooltip.dm +++ b/code/modules/tooltip/tooltip.dm @@ -88,7 +88,7 @@ Notes: /datum/tooltip/proc/hide() if (queueHide) - addtimer(CALLBACK(src, .proc/do_hide), 1) + addtimer(CALLBACK(src, PROC_REF(do_hide)), 1) else do_hide() diff --git a/code/modules/unit_tests/biome_lists.dm b/code/modules/unit_tests/biome_lists.dm index 7c7500155235..18334cc8a15d 100644 --- a/code/modules/unit_tests/biome_lists.dm +++ b/code/modules/unit_tests/biome_lists.dm @@ -2,9 +2,14 @@ for(var/biome_type as anything in SSmapping.biomes) var/datum/biome/biome = SSmapping.biomes[biome_type] + validate_chance(biome.open_turf_types, "open turf", biome_type) validate_chance(biome.mob_spawn_list, "mob spawn", biome_type) validate_chance(biome.flora_spawn_list, "flora spawn", biome_type) validate_chance(biome.feature_spawn_list, "feature spawn", biome_type) + if(!istype(biome, /datum/biome/cave)) + continue + var/datum/biome/cave/cave = biome + validate_chance(cave.closed_turf_types, "closed turf", biome_type) /datum/unit_test/biome_lists/proc/validate_chance(list/to_check, name, biome) if(to_check && !islist(to_check)) @@ -14,5 +19,5 @@ if(!value) TEST_FAIL("Biome [biome] has no [name] weight for [type]") return - if(!isnum(value) || value < 1 || value != round(value)) + if(!isnum(value) || value < 1 || value != round(value)) //ensures natural numbers TEST_FAIL("Biome [biome] has invalid [name] chance for [type] ([value])") diff --git a/code/modules/unit_tests/combat.dm b/code/modules/unit_tests/combat.dm index 30bad7217514..0ad01c2cb9f8 100644 --- a/code/modules/unit_tests/combat.dm +++ b/code/modules/unit_tests/combat.dm @@ -53,9 +53,9 @@ var/mob/living/carbon/human/victim = allocate(/mob/living/carbon/human) var/obj/item/storage/toolbox/toolbox = allocate(/obj/item/storage/toolbox) - RegisterSignal(toolbox, COMSIG_ITEM_PRE_ATTACK, .proc/pre_attack_hit) - RegisterSignal(toolbox, COMSIG_ITEM_ATTACK, .proc/attack_hit) - RegisterSignal(toolbox, COMSIG_ITEM_AFTERATTACK, .proc/post_attack_hit) + RegisterSignal(toolbox, COMSIG_ITEM_PRE_ATTACK, PROC_REF(pre_attack_hit)) + RegisterSignal(toolbox, COMSIG_ITEM_ATTACK, PROC_REF(attack_hit)) + RegisterSignal(toolbox, COMSIG_ITEM_AFTERATTACK, PROC_REF(post_attack_hit)) attacker.put_in_active_hand(toolbox, forced = TRUE) attacker.a_intent_change(INTENT_HARM) diff --git a/code/modules/unit_tests/connect_loc.dm b/code/modules/unit_tests/connect_loc.dm index 511e1745a73a..e169cab1be5d 100644 --- a/code/modules/unit_tests/connect_loc.dm +++ b/code/modules/unit_tests/connect_loc.dm @@ -63,7 +63,7 @@ . = ..() var/static/list/connections = list( - COMSIG_MOCK_SIGNAL = .proc/on_receive_mock_signal, + COMSIG_MOCK_SIGNAL = PROC_REF(on_receive_mock_signal), ) AddElement(/datum/element/connect_loc, connections) diff --git a/code/modules/unit_tests/emoting.dm b/code/modules/unit_tests/emoting.dm index 5795ab34374f..7111107b709b 100644 --- a/code/modules/unit_tests/emoting.dm +++ b/code/modules/unit_tests/emoting.dm @@ -3,7 +3,7 @@ /datum/unit_test/emoting/Run() var/mob/living/carbon/human/human = allocate(/mob/living/carbon/human) - RegisterSignal(human, COMSIG_MOB_EMOTE, .proc/on_emote_used) + RegisterSignal(human, COMSIG_MOB_EMOTE, PROC_REF(on_emote_used)) human.say("*shrug") TEST_ASSERT_EQUAL(emotes_used, 1, "Human did not shrug") diff --git a/code/modules/unit_tests/projectiles.dm b/code/modules/unit_tests/projectiles.dm index 4950be10c1a6..e93d20910af0 100644 --- a/code/modules/unit_tests/projectiles.dm +++ b/code/modules/unit_tests/projectiles.dm @@ -19,6 +19,7 @@ gunner.put_in_hands(test_gun, forced=TRUE) var/expected_damage = loaded_bullet.damage loaded_bullet.def_zone = BODY_ZONE_CHEST + test_gun.safety = FALSE //So we can shoot the gun var/did_we_shoot = test_gun.afterattack(victim, gunner) TEST_ASSERT(did_we_shoot, "Gun does not appeared to have successfully fired.") TEST_ASSERT_EQUAL(victim.getBruteLoss(), expected_damage, "Victim took incorrect amount of damage, expected [expected_damage], got [victim.getBruteLoss()].") diff --git a/code/modules/unit_tests/resist.dm b/code/modules/unit_tests/resist.dm index 265c0bd74991..542ad40ef1e1 100644 --- a/code/modules/unit_tests/resist.dm +++ b/code/modules/unit_tests/resist.dm @@ -12,4 +12,8 @@ // Stop, drop, and roll has a sleep call. This would delay the test, and is not necessary. CallAsync(human, /mob/living/verb/resist) + //since resist() is a verb that possibly queues its actual execution for the next tick, we need to make the subsystem that handles the delayed execution process + //the callback. either that or sleep ourselves and see if it ran. + SSverb_manager.run_verb_queue() + TEST_ASSERT(human.fire_stacks < 5, "Human did not lower fire stacks after resisting") diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 6eea344afde0..53b49ab30f0b 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -197,9 +197,8 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/bundles_TC/firestarter name = "Spetsnaz Pyro bundle" - desc = "For systematic suppression of carbon lifeforms in close quarters: Contains a lethal New Russian backpack spray, Elite hardsuit, \ - Stechkin APS pistol, two magazines, a minibomb and a stimulant syringe. \ - Order NOW and comrade Boris will throw in an extra tracksuit." + desc = "For systematic suppression of carbon lifeforms in close quarters: Contains a lethal backpack spray, Elite hardsuit, \ + Stechkin APS pistol, two magazines, a minibomb and a stimulant syringe." item = /obj/item/storage/backpack/duffelbag/syndie/firestarter cost = 30 include_modes = list(/datum/game_mode/nuclear) diff --git a/code/modules/vehicles/cars/car.dm b/code/modules/vehicles/cars/car.dm index 4fde603ee8c7..6b53fa9a02c3 100644 --- a/code/modules/vehicles/cars/car.dm +++ b/code/modules/vehicles/cars/car.dm @@ -80,7 +80,7 @@ if(occupant_amount() >= max_occupants) return FALSE var/atom/old_loc = loc - if(do_mob(forcer, M, get_enter_delay(M), extra_checks=CALLBACK(src, /obj/vehicle/sealed/car/proc/is_car_stationary, old_loc))) + if(do_mob(forcer, M, get_enter_delay(M), extra_checks=CALLBACK(src, TYPE_PROC_REF(/obj/vehicle/sealed/car, is_car_stationary), old_loc))) mob_forced_enter(M, silent) return TRUE return FALSE diff --git a/code/modules/vehicles/cars/clowncar.dm b/code/modules/vehicles/cars/clowncar.dm index 80511d5ea153..e9addbd2d5bf 100644 --- a/code/modules/vehicles/cars/clowncar.dm +++ b/code/modules/vehicles/cars/clowncar.dm @@ -27,7 +27,7 @@ var/mob/living/carbon/human/H = M if(H.mind && H.mind.assigned_role == "Clown") //Ensures only clowns can drive the car. (Including more at once) add_control_flags(H, VEHICLE_CONTROL_DRIVE|VEHICLE_CONTROL_PERMISSION) - RegisterSignal(H, COMSIG_MOB_CLICKON, .proc/FireCannon) + RegisterSignal(H, COMSIG_MOB_CLICKON, PROC_REF(FireCannon)) M.log_message("has entered [src] as a possible driver", LOG_ATTACK) return add_control_flags(M, VEHICLE_CONTROL_KIDNAPPED) @@ -125,7 +125,7 @@ visible_message("[user] presses one of the colorful buttons on [src], and the clown car turns on its singularity disguise system.") icon = 'icons/obj/singularity.dmi' icon_state = "singularity_s1" - addtimer(CALLBACK(src, .proc/ResetIcon), 100) + addtimer(CALLBACK(src, PROC_REF(ResetIcon)), 100) if(4) visible_message("[user] presses one of the colorful buttons on [src], and the clown car spews out a cloud of laughing gas.") var/datum/reagents/R = new/datum/reagents(300) @@ -138,7 +138,7 @@ if(5) visible_message("[user] presses one of the colorful buttons on [src], and the clown car starts dropping an oil trail.") droppingoil = TRUE - addtimer(CALLBACK(src, .proc/StopDroppingOil), 30) + addtimer(CALLBACK(src, PROC_REF(StopDroppingOil)), 30) if(6) visible_message("[user] presses one of the colorful buttons on [src], and the clown car lets out a comedic toot.") playsound(src, 'sound/vehicles/clowncar_fart.ogg', 100) @@ -160,7 +160,7 @@ cannonmode = FALSE flick("clowncar_fromfire", src) icon_state = "clowncar" - addtimer(CALLBACK(src, .proc/LeaveCannonMode), 20) + addtimer(CALLBACK(src, PROC_REF(LeaveCannonMode)), 20) playsound(src, 'sound/vehicles/clowncar_cannonmode2.ogg', 75) visible_message("The [src] starts going back into mobile mode.") else @@ -168,7 +168,7 @@ flick("clowncar_tofire", src) icon_state = "clowncar_fire" visible_message("The [src] opens up and reveals a large cannon.") - addtimer(CALLBACK(src, .proc/EnterCannonMode), 20) + addtimer(CALLBACK(src, PROC_REF(EnterCannonMode)), 20) playsound(src, 'sound/vehicles/clowncar_cannonmode1.ogg', 75) diff --git a/code/modules/vehicles/scooter.dm b/code/modules/vehicles/scooter.dm index b70ea004fd37..6dee79d6e69a 100644 --- a/code/modules/vehicles/scooter.dm +++ b/code/modules/vehicles/scooter.dm @@ -141,7 +141,7 @@ if(location) location.hotspot_expose(1000,1000) sparks.start() //the most radical way to start plasma fires - addtimer(CALLBACK(src, .proc/grind), 2) + addtimer(CALLBACK(src, PROC_REF(grind)), 2) return else grinding = FALSE diff --git a/code/modules/vehicles/vehicle_actions.dm b/code/modules/vehicles/vehicle_actions.dm index 26335d43f03d..18841271cfc0 100644 --- a/code/modules/vehicles/vehicle_actions.dm +++ b/code/modules/vehicles/vehicle_actions.dm @@ -225,5 +225,5 @@ if(locate(/obj/structure/table) in V.loc.contents) V.grinding = TRUE V.icon_state = "[V.board_icon]-grind" - addtimer(CALLBACK(V, /obj/vehicle/ridden/scooter/skateboard/.proc/grind), 2) + addtimer(CALLBACK(V, TYPE_PROC_REF(/obj/vehicle/ridden/scooter/skateboard, grind)), 2) next_ollie = world.time + 5 diff --git a/code/modules/vehicles/wheelchair.dm b/code/modules/vehicles/wheelchair.dm index e9dc5d9b6488..1f6c96bc0c01 100644 --- a/code/modules/vehicles/wheelchair.dm +++ b/code/modules/vehicles/wheelchair.dm @@ -23,7 +23,7 @@ /obj/vehicle/ridden/wheelchair/ComponentInitialize() //Since it's technically a chair I want it to have chair properties . = ..() - AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE, CALLBACK(src, .proc/can_user_rotate),CALLBACK(src, .proc/can_be_rotated),null) + AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE, CALLBACK(src, PROC_REF(can_user_rotate)),CALLBACK(src, PROC_REF(can_be_rotated)),null) /obj/vehicle/ridden/wheelchair/obj_destruction(damage_flag) new /obj/item/stack/rods(drop_location(), 1) diff --git a/code/modules/vending/autodrobe.dm b/code/modules/vending/autodrobe.dm index 6eed73786620..4bca9034dd9b 100644 --- a/code/modules/vending/autodrobe.dm +++ b/code/modules/vending/autodrobe.dm @@ -52,7 +52,6 @@ /obj/item/clothing/head/pirate = 1, /obj/item/clothing/head/bandana = 1, /obj/item/clothing/head/bandana = 1, - /obj/item/clothing/under/costume/soviet = 1, /obj/item/clothing/head/trapper = 1, /obj/item/clothing/suit/imperium_monk = 1, /obj/item/clothing/mask/gas/cyborg = 1, diff --git a/code/modules/vending/clothesmate.dm b/code/modules/vending/clothesmate.dm index 13598f2bc13a..140d8c42a283 100644 --- a/code/modules/vending/clothesmate.dm +++ b/code/modules/vending/clothesmate.dm @@ -45,7 +45,6 @@ /obj/item/storage/belt/fannypack/blue = 3, /obj/item/storage/belt/fannypack/red = 3, /obj/item/clothing/under/pants/jeans = 2, - /obj/item/clothing/under/pants/classicjeans = 2, /obj/item/clothing/under/pants/camo = 2, /obj/item/clothing/under/pants/blackjeans = 2, /obj/item/clothing/under/pants/khaki = 2, @@ -111,7 +110,6 @@ /obj/item/clothing/under/syndicate/tacticool/skirt = 1, /obj/item/clothing/mask/balaclava = 1, /obj/item/clothing/head/trapper = 1, - /obj/item/clothing/under/costume/soviet = 1, /obj/item/storage/belt/fannypack/black = 2, /obj/item/clothing/suit/jacket/letterman_syndie = 1, /obj/item/clothing/under/costume/jabroni = 1, @@ -123,7 +121,6 @@ /obj/item/clothing/under/suit/checkered = 1, /obj/item/clothing/suit/jacket/leather = 1, /obj/item/clothing/suit/jacket/leather/overcoat = 1, - /obj/item/clothing/under/pants/mustangjeans = 1, /obj/item/clothing/neck/necklace/dope = 3, /obj/item/clothing/suit/jacket/letterman_nanotrasen = 1, /obj/item/instrument/piano_synth/headphones/spacepods = 1) diff --git a/code/modules/vending/sovietsoda.dm b/code/modules/vending/sovietsoda.dm index 599e2d22bbdb..0f80bf5324bc 100644 --- a/code/modules/vending/sovietsoda.dm +++ b/code/modules/vending/sovietsoda.dm @@ -3,7 +3,7 @@ desc = "Old sweet water vending machine." icon_state = "sovietsoda" light_mask = "soviet-light-mask" - product_ads = "For Tsar and Country.;Have you fulfilled your nutrition quota today?;Very nice!;We are simple people, for this is all we eat.;If there is a person, there is a problem. If there is no person, then there is no problem." + product_ads = "Have you fulfilled your nutrition quota today?;Very nice!;We are simple people, for this is all we eat.;If there is a person, there is a problem. If there is no person, then there is no problem." products = list(/obj/item/reagent_containers/food/drinks/drinkingglass/filled/soda = 30) contraband = list(/obj/item/reagent_containers/food/drinks/drinkingglass/filled/cola = 20) resistance_flags = FIRE_PROOF diff --git a/code/modules/zombie/organs.dm b/code/modules/zombie/organs.dm index 30f94b56c1ca..dbd88b20c582 100644 --- a/code/modules/zombie/organs.dm +++ b/code/modules/zombie/organs.dm @@ -63,7 +63,7 @@ not even death can stop, you will rise again!") var/revive_time = rand(revive_time_min, revive_time_max) var/flags = TIMER_STOPPABLE - timer_id = addtimer(CALLBACK(src, .proc/zombify, owner), revive_time, flags) + timer_id = addtimer(CALLBACK(src, PROC_REF(zombify), owner), revive_time, flags) /obj/item/organ/zombie_infection/proc/zombify(mob/living/carbon/C) timer_id = null diff --git a/config/atmos_mix.txt b/config/atmos_mix.txt deleted file mode 100644 index f7b21b503dd7..000000000000 --- a/config/atmos_mix.txt +++ /dev/null @@ -1,14 +0,0 @@ -## HOW TO MIX A BATCH -## First, unzip... wait, wrong docs - -## How to configure an atmos mix for a planet: -## each entry is designed as follows: -## WHITESANDS_ATMOS_MIX <% of mix> - -## White Sands Atmospheric mix configuration - -WHITESANDS_ATMOS_MOLES 103.98 - -WHITESANDS_ATMOS_MIX o2 0.105 -WHITESANDS_ATMOS_MIX co2 0.105 -WHITESANDS_ATMOS_MIX n2 0.79 diff --git a/config/awaymissionconfig.txt b/config/awaymissionconfig.txt deleted file mode 100644 index 5c685d825e0a..000000000000 --- a/config/awaymissionconfig.txt +++ /dev/null @@ -1,23 +0,0 @@ -#List the potential random Z-levels here. -#Maps must be the full path to them -#Maps should be 255x255 or smaller and be bounded. Falling off the edge of the map will result in undefined behavior. -#SPECIFYING AN INVALID MAP WILL RESULT IN RUNTIMES ON GAME START - -#!!IMPORTANT NOTES FOR HOSTING AWAY MISSIONS!!: -#Do NOT tick the maps during compile -- the game uses this list to decide which map to load. Ticking the maps will result in them ALL being loaded at once. -#DO tick the associated code file for the away mission you are enabling. Otherwise, the map will be trying to reference objects which do not exist, which will cause runtime errors! - -#_maps/RandomZLevels/blackmarketpackers.dmm -#_maps/RandomZLevels/spacebattle.dmm -#_maps/RandomZLevels/TheBeach.dmm -#_maps/RandomZLevels/Academy.dmm -#_maps/RandomZLevels/wildwest.dmm -#_maps/RandomZLevels/challenge.dmm -#_maps/RandomZLevels/centcomAway.dmm -#_maps/RandomZLevels/moonoutpost19.dmm -#_maps/RandomZLevels/undergroundoutpost45.dmm -#_maps/RandomZLevels/caves.dmm -#_maps/RandomZLevels/snowdin.dmm -#_maps/RandomZLevels/research.dmm -#_maps/RandomZLevels/SnowCabin.dmm -_maps/RandomZLevels/VR/snowdin_VR.dmm diff --git a/config/external_rsc_urls.txt b/config/external_rsc_urls.txt deleted file mode 100644 index 16d6faf653e8..000000000000 --- a/config/external_rsc_urls.txt +++ /dev/null @@ -1 +0,0 @@ -http://url_goes_here/shiptest.zip diff --git a/config/iceruinblacklist.txt b/config/iceruinblacklist.txt deleted file mode 100644 index 031188b80de3..000000000000 --- a/config/iceruinblacklist.txt +++ /dev/null @@ -1,18 +0,0 @@ -#Listing maps here will blacklist them from generating in the ice moon. -#Maps must be the full path to them -#A list of maps valid to blacklist can be found in _maps\RandomRuins\IceRuins -#SPECIFYING AN INVALID MAP WILL RESULT IN RUNTIMES ON GAME START - -##RESPAWN -#_maps/RandomRuins/IceRuins/icemoon_surface_slimerancher.dmm -#_maps/RandomRuins/IceRuins/icemoon_underground_hermit.dmm -#_maps/RandomRuins/IceRuins/icemoon_underground_drakelair.dmm -#_maps/RandomRuins/IceRuins/icemoon_underground_oldstation.dmm - -##MISC -#_maps/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm -#_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_newcops.dmm -#_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm -#_maps/RandomRuins/IceRuins/icemoon_underground_brazillianlab.dmm -#_maps/RandomRuins/IceRuins/icemoon_underground_burnies_lair.dmm -#_maps/RandomRuins/IceRuins/icemoon_underground_wendigo_cave.dmm diff --git a/config/jobs.txt b/config/jobs.txt deleted file mode 100644 index a266110233d0..000000000000 --- a/config/jobs.txt +++ /dev/null @@ -1,50 +0,0 @@ -#This allows easy configuration of the number of positions allowed for each job -#Format is: [Job name]=[total positions],[spawn positions] -#Job names must be identical to the title var of each job datum -#Positions can be set to -1 to allow unlimited slots -Captain=1,1 -Head of Personnel=1,1 -Head of Security=1,1 -Chief Engineer=1,1 -Research Director=1,1 -Chief Medical Officer=1,1 - -Assistant=-1,-1 -Prisoner=0,2 - -Quartermaster=1,1 -Cargo Technician=3,2 -Shaft Miner=3,3 - -Bartender=1,1 -Cook=2,1 -Botanist=3,2 -Janitor=2,1 - -Clown=1,1 -Mime=1,1 -Curator=1,1 -Lawyer=2,2 - -Chaplain=1,1 - -Station Engineer=5,5 -Atmospheric Technician=3,2 - -Medical Doctor=5,3 -Paramedic=2,2 -Chemist=2,2 -Geneticist=2,2 -Virologist=1,1 -Psychologist=1,1 - -Scientist=5,3 -Roboticist=2,2 - -Warden=1,1 -Detective=1,1 -Security Officer=5,5 -Brig Physician=1,1 - -AI=0,1 -Cyborg=0,1 diff --git a/config/jungleruinblacklist.txt b/config/jungleruinblacklist.txt deleted file mode 100644 index faf518fde632..000000000000 --- a/config/jungleruinblacklist.txt +++ /dev/null @@ -1,27 +0,0 @@ -#Listing maps here will blacklist them from generating in jungle planets -#Maps must be the full path to them -#A list of maps valid to blacklist can be found in _maps\RandomRuins\JungleRuins -#SPECIFYING AN INVALID MAP WILL RESULT IN RUNTIMES ON GAME START - -#_maps/RandomRuins/JungleRuins/jungle_botany.dmm -#_maps/RandomRuins/JungleRuins/jungle_demon.dmm -#_maps/RandomRuins/JungleRuins/jungle_hangar.dmm -#_maps/RandomRuins/JungleRuins/jungle_nest.dmm -#_maps/RandomRuins/JungleRuins/jungle_pirate.dmm -#_maps/RandomRuins/JungleRuins/jungle_pizzawave.dmm -#_maps/RandomRuins/JungleRuins/jungle_seedling.dmm -#_maps/RandomRuins/JungleRuins/jungle_spider.dmm -#_maps/RandomRuins/JungleRuins/jungle_surface_abandonedsolgov.dmm -#_maps/RandomRuins/JungleRuins/jungle_surface_coffinpirate.dmm -#_maps/RandomRuins/JungleRuins/jungle_surface_ikea_ai.dmm -#_maps/RandomRuins/JungleRuins/jungle_surface_ninjashrine.dmm -#_maps/RandomRuins/JungleRuins/jungle_surface_roommates.dmm -#_maps/RandomRuins/JungleRuins/jungle_surface_tumblr_sexyman.dmm -#_maps/RandomRuins/JungleRuins/jungle_surface_unabomber_cabin.dmm -#_maps/RandomRuins/JungleRuins/jungle_surface_weed_shack.dmm -#_maps/RandomRuins/JungleRuins/jungle_syndicate.dmm -#_maps/RandomRuins/JungleRuins/jungle_village.dmm -#_maps/RandomRuins/JungleRuins/jungle_witch.dmm -#_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm -#_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm -#_maps/RandomRuins/JungleRuins/jungle_paradise.dmm diff --git a/config/lavaruinblacklist.txt b/config/lavaruinblacklist.txt deleted file mode 100644 index 973b402ba7a1..000000000000 --- a/config/lavaruinblacklist.txt +++ /dev/null @@ -1,43 +0,0 @@ -#Listing maps here will blacklist them from generating in lavaland. -#Maps must be the full path to them -#A list of maps valid to blacklist can be found in _maps\RandomRuins\LavaRuins -#SPECIFYING AN INVALID MAP WILL RESULT IN RUNTIMES ON GAME START - -##BIODOMES -#_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm -#_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm -#_maps/RandomRuins/LavaRuins/lavaland_biodome_clown_planet.dmm -#_maps/RandomRuins/LavaRuins/lavaland_surface_cube.dmm - -##RESPAWN -#_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm -#_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm -#_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm -#_maps/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm - -##SIN -#_maps/RandomRuins/LavaRuins/lavaland_surface_envy.dmm -#_maps/RandomRuins/LavaRuins/lavaland_surface_gluttony.dmm -#_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm -#_maps/RandomRuins/LavaRuins/lavaland_surface_pride.dmm -#_maps/RandomRuins/LavaRuins/lavaland_surface_sloth.dmm - -##MISC -#_maps/RandomRuins/LavaRuins/lavaland_surface_automated_trade_outpost.dmm -#_maps/RandomRuins/LavaRuins/lavaland_surface_ufo_crash.dmm -#_maps/RandomRuins/LavaRuins/lavaland_surface_ww_vault.dmm -#_maps/RandomRuins/LavaRuins/lavaland_surface_automated_trade_outpost.dmm -#_maps/RandomRuins/LavaRuins/lavaland_surface_xeno_nest.dmm -#_maps/RandomRuins/LavaRuins/lavaland_surface_survivalpod.dmm -#_maps/RandomRuins/LavaRuins/lavaland_surface_wwiioutpost.dmm -#_maps/RandomRuins/LavaRuins/lavaland_surface_tomb.dmm -#_maps/RandomRuins/LavaRuins/lavaland_surface_hierophant.dmm -#_maps/RandomRuins/LavaRuins/lavaland_surface_fountain_hall.dmm -#_maps/RandomRuins/LavaRuins/lavaland_surface_comm_outpost.dmm -#_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm -#_maps/RandomRuins/LavaRuins/lavaland_surface_cultaltar.dmm -#_maps/RandomRuins/LavaRuins/lavaland_surface_hermit.dmm -#_maps/RandomRuins/LavaRuins/lavaland_surface_swarmer_crash.dmm -#_maps/RandomRuins/LavaRuins/lavaland_surface_gaia.dmm -#_maps/RandomRuins/LavaRuins/lavaland_surface_elephant_graveyard.dmm -#_maps/RandomRuins/LavaRuins/lavaland_surface_crashed_pinnance.dmm diff --git a/config/maps.txt b/config/maps.txt deleted file mode 100644 index 23a0a19dcd45..000000000000 --- a/config/maps.txt +++ /dev/null @@ -1,66 +0,0 @@ -This file contains a list of maps for use in map rotation. -#Lines starting with # are ignored. -Lines not inside map blocks are also ignored -Duplicated entries use the latter one. -All whitespace at the start and end of lines is ignored. (including indentation, thats just for show) -Format: -#map [map name] (name of .json file in _maps folder without the .json part) - minplayers [number] (0 or less disables this requirement) - maxplayers [number] (0 or less disables this requirement) - default (The last map with this defined will get all votes of players who have not explicitly voted for a map) - voteweight [number] (How much to count each player vote as, defaults to 1, setting to 0.5 counts each vote as half a vote, 2 as double, etc, Setting to 0 disables the map but allows players to still pick it) - disabled (disables the map) - votable (is this map votable) -endmap - -map salvage - default - votable -endmap - -map amogus - votable -endmap - -map diner - votable -endmap - -map minigalaxy - votable -endmap - -map engineergaming - votable -endmap - -map bubble - votable -endmap - - -# Whiteships - -map boxship - votable -endmap - -map deltaship - votable -endmap - -map metaship - votable -endmap - -map midwayship - votable -endmap - -map pubbyship - votable -endmap - -map skipper - votable -endmap diff --git a/config/resources.txt b/config/resources.txt index 9cf9bea30a06..3a852e483ad8 100644 --- a/config/resources.txt +++ b/config/resources.txt @@ -3,7 +3,7 @@ # If you set this mutiple times, the server will rotate between the links. # To use this, the compile option PRELOAD_RSC must be set to 0 to keep byond from preloading resources -EXTERNAL_RSC_URLS http://cdn.white-sands.space/rsc/tgstation.rsc +#EXTERNAL_RSC_URLS http://url_goes_here/shiptest.zip ######################## diff --git a/config/rockruinblacklist.txt b/config/rockruinblacklist.txt deleted file mode 100644 index e38e248cd109..000000000000 --- a/config/rockruinblacklist.txt +++ /dev/null @@ -1,29 +0,0 @@ -#Listing maps here will blacklist them from generating in rock planets -#Maps must be the full path to them -#A list of maps valid to blacklist can be found in _maps\RandomRuins\RockRuins -#SPECIFYING AN INVALID MAP WILL RESULT IN RUNTIMES ON GAME START - -#_maps/RandomRuins/RockRuins/rockplanet_boxsci.dmm -#_maps/RandomRuins/RockRuins/rockplanet_chaosmarine.dmm -#_maps/RandomRuins/RockRuins/rockplanet_clock.dmm -#_maps/RandomRuins/RockRuins/rockplanet_clowncrash.dmm -#_maps/RandomRuins/RockRuins/rockplanet_crash_cult.dmm -#_maps/RandomRuins/RockRuins/rockplanet_crash_kitchen.dmm -#_maps/RandomRuins/RockRuins/rockplanet_cult.dmm -#_maps/RandomRuins/RockRuins/rockplanet_dangerpod.dmm -#_maps/RandomRuins/RockRuins/rockplanet_daniel.dmm -#_maps/RandomRuins/RockRuins/rockplanet_fortress_of_solitide.dmm -#_maps/RandomRuins/RockRuins/rockplanet_heirophant.dmm -#_maps/RandomRuins/RockRuins/rockplanet_house.dmm -#_maps/RandomRuins/RockRuins/rockplanet_lab.dmm -#_maps/RandomRuins/RockRuins/rockplanet_miningexpedition.dmm -#_maps/RandomRuins/RockRuins/rockplanet_moth.dmm -#_maps/RandomRuins/RockRuins/rockplanet_ore_proccessing_facility.dmm -#_maps/RandomRuins/RockRuins/rockplanet_pandora.dmm -#_maps/RandomRuins/RockRuins/rockplanet_pioneer.dmm -#_maps/RandomRuins/RockRuins/rockplanet_pod.dmm -#_maps/RandomRuins/RockRuins/rockplanet_rd_god.dmm -#_maps/RandomRuins/RockRuins/rockplanet_soviet.dmm -#_maps/RandomRuins/RockRuins/rockplanet_tradepost.dmm -#_maps/RandomRuins/RockRuins/rockplanet_unhonorable.dmm -#_maps/RandomRuins/RockRuins/rockplanet_wizard.dmm diff --git a/config/sandruinblacklist.txt b/config/sandruinblacklist.txt deleted file mode 100644 index f54299fc4e44..000000000000 --- a/config/sandruinblacklist.txt +++ /dev/null @@ -1,12 +0,0 @@ -#Listing maps here will blacklist them from generating on the sand planet. -#Maps must be the full path to them -#A list of maps valid to blacklist can be found in _maps\RandomRuins\IceRuins -#SPECIFYING AN INVALID MAP WILL RESULT IN RUNTIMES ON GAME START - -##MISC -#_maps/RandomRuins/SandRuins/whitesands_surface_hermit.dmm -#_maps/RandomRuins/SandRuins/whitesands_surface_solgovcrash.dmm -#_maps/RandomRuins/SandRuins/crash_kitchen.dmm -#_maps/RandomRuins/SandRuins/crash_bar.dmm -#_maps/RandomRuins/SandRuins/crash_cargo.dmm -#_maps/RandomRuins/SandRuins/crash_cult.dmm diff --git a/config/spaceruinblacklist.txt b/config/spaceruinblacklist.txt deleted file mode 100644 index f7116456ed5f..000000000000 --- a/config/spaceruinblacklist.txt +++ /dev/null @@ -1,42 +0,0 @@ -#Listing maps here will blacklist them from generating in space. -#Maps must be the full path to them -#A list of maps valid to blacklist can be found in _maps\RandomRuins\SpaceRuins -#SPECIFYING AN INVALID MAP WILL RESULT IN RUNTIMES ON GAME START - -#_maps/RandomRuins/SpaceRuins/abandonedteleporter.dmm -#_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm -#_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/clownplanet.dmm -#_maps/RandomRuins/SpaceRuins/crashedclownship.dmm -#_maps/RandomRuins/SpaceRuins/crashedship.dmm -#_maps/RandomRuins/SpaceRuins/deepstorage.dmm -#_maps/RandomRuins/SpaceRuins/djstation.dmm -#_maps/RandomRuins/SpaceRuins/emptyshell.dmm -#_maps/RandomRuins/SpaceRuins/Fast_Food.dmm -#_maps/RandomRuins/SpaceRuins/gasthelizards.dmm -#_maps/RandomRuins/SpaceRuins/gondolaasteroid.dmm -#_maps/RandomRuins/SpaceRuins/hilbertshoteltestingsite.dmm -#_maps/RandomRuins/SpaceRuins/intactemptyship.dmm -#_maps/RandomRuins/SpaceRuins/listeningstation.dmm -#_maps/RandomRuins/SpaceRuins/mechtransport.dmm -#_maps/RandomRuins/SpaceRuins/mrow_thats_right -#_maps/RandomRuins/SpaceRuins/oldAIsat.dmm -#_maps/RandomRuins/SpaceRuins/oldstation.dmm -#_maps/RandomRuins/SpaceRuins/oldteleporter.dmm -#_maps/RandomRuins/SpaceRuins/onehalf.dmm -#_maps/RandomRuins/SpaceRuins/power_puzzle.dmm -#_maps/RandomRuins/SpaceRuins/scav_mining.dmm -#_maps/RandomRuins/SpaceRuins/shuttlerelic.dmm -#_maps/RandomRuins/SpaceRuins/spacegym.dmm -#_maps/RandomRuins/SpaceRuins/spacehotel.dmm -#_maps/RandomRuins/SpaceRuins/thederelict.dmm -#_maps/RandomRuins/SpaceRuins/turretedoutpost.dmm -#_maps/RandomRuins/SpaceRuins/vaporwave.dmm -#_maps/RandomRuins/SpaceRuins/way_home.dmm -#_maps/RandomRuins/SpaceRuins/whiteshipdock.dmm -#_maps/RandomRuins/SpaceRuins/whiteshipruin_box.dmm -#_maps/RandomRuins/SpaceRuins/forgottenship.dmm diff --git a/dependencies.sh b/dependencies.sh index ad77caaddd75..84ba6b96feab 100755 --- a/dependencies.sh +++ b/dependencies.sh @@ -11,7 +11,7 @@ export BYOND_MINOR=1588 export RUST_VERSION=1.67.0 #rust_g git tag -export RUST_G_VERSION=1.2.0 +export RUST_G_VERSION=3.0.0 #node version export NODE_VERSION=16 @@ -27,4 +27,4 @@ export PYTHON_VERSION=3.7.9 export AUXMOS_REPO=https://github.com/shiptest-ss13/auxmos #auxmos version -export AUXMOS_VERSION=v1.1.0 +export AUXMOS_VERSION=v1.2.6 diff --git a/html/changelogs/AutoChangeLog-pr-2334.yml b/html/changelogs/AutoChangeLog-pr-2334.yml new file mode 100644 index 000000000000..e3996c84b408 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2334.yml @@ -0,0 +1,21 @@ +author: Zevotech +changes: + - {rscadd: 'departmental RND lootdrop spawners for imprinters, protolathes and techfabs'} + - {bugfix: dangerous_research.dmm now no longer has a space tile under a door and + a medical lathe instead of an omnilathe} + - {bugfix: whitesands_surface_camp_saloon can now spawn again after its remap into + a functional ruin} + - {bugfix: harmfactory.dmm's traps now work and loot has been adjusted to fit the + ruin better} + - {bugfix: provinggrounds.dmm now has a working SMES and power} + - {bugfix: singularity_lab fire extinguishers and a few poddoors now have correct + dirs} + - {rscdel: mechtransport.dmm and associated code} + - {rscdel: gasthelizards areas} + - {rscdel: nucleardump.dmm and associated code} + - {rscdel: gondolaasteroid.dmm and associated code} + - {rscdel: jungle_spider.dmm and associated code} + - {rscdel: whitesands_golem_hijack.dmm and associated code} + - {rscdel: rockplanet_clock.dmm and associated code} + - {rscdel: whitesands_surface_youreinsane.dmm and associated code} +delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-2415.yml b/html/changelogs/AutoChangeLog-pr-2415.yml new file mode 100644 index 000000000000..8a04cb8c6af1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2415.yml @@ -0,0 +1,5 @@ +author: Doubleumc +changes: + - {tweak: Bubble now consistently faces east} + - {rscadd: added Bubble subshuttle dock} +delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-2491.yml b/html/changelogs/AutoChangeLog-pr-2491.yml new file mode 100644 index 000000000000..147acd9226b7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2491.yml @@ -0,0 +1,4 @@ +author: Hibou48888 +changes: + - {bugfix: added a sprite for strange plant fruit} +delete-after: true diff --git a/html/changelogs/archive/2023-10.yml b/html/changelogs/archive/2023-10.yml index 01caa0c7f8e5..34dc45ee6419 100644 --- a/html/changelogs/archive/2023-10.yml +++ b/html/changelogs/archive/2023-10.yml @@ -36,3 +36,66 @@ - rscadd: adds the Heron Class Dreadnaught thgvr: - bugfix: Lugol is now admin spawn only +2023-10-17: + Zytolg: + - rscadd: Added the Floating Resort to Beaches. Enjoy your moment in paradise! +2023-10-18: + Auris456852: + - tweak: You can now take individual rounds out of an ammo box in your pocket by + alt-clicking! + Bjarl: + - balance: The cepheus's starting gear has been nerfed. + BogCreature: + - tweak: fish should no longer starve to death + - bugfix: the mech equipment panel works again + - bugfix: limbgrower legs should no longer runtime instead of spawning + - bugfix: crystal legion hearts inheriting the wrong sprites + - bugfix: vending machines falsely listing their prices as "free" + - bugfix: normal fulltile firelocks should build properly now + - bugfix: disposal pipes no longer generate metal when ejecting items through reinforced + plating + - bugfix: jukebox sprites + - bugfix: players can no longer telepathically fiddle with the zippers of bags + Doubleumc: + - tweak: Replaced Boyardee tiny fans with a holofield + meemofcourse: + - rscdel: Russian Battle Coat, Russian Uniform, Russian Officer Uniform, Russian + Helmet, Russian Boots, Russian Balaclava + - imagedel: Deleted sprites relating to the outfits above. + - rscdel: Stalinium and Capitalist Golems + - rscdel: Derelict Drones + - tweak: The butterbear is now on the Frontiersmen team. + - tweak: Modified the list of laws that an AI may recieve from being ioned. + - sounddel: The Soviet Anthem and the US Anthem. +2023-10-19: + goober3: + - rscadd: the nt asteroid outpost now has a 56x40 hangar. + - bugfix: outpost hangars should no longer depressurize upon ship docking. + - bugfix: outpost wallmounts and doors have been fixed. please report any floating + extinguishers & hovering intercoms. + - bugfix: the independent outpost should stay powered forever. +2023-10-21: + Skies-Of-Blue: + - bugfix: moth language bind now works as intended + retlaw34: + - rscadd: Two new barsigns +2023-10-22: + spockye: + - rscadd: Added a new jungle ruin "jungle_cavecrew" + - rscadd: Added a new subshuttle "frontiersmen_gut" + - rscadd: Added a neutered subtype of all frontiersmen (doesn't drop guns) + - rscadd: Added new areas for the ruin + - rscadd: Added a subtype of the heavy frontiersmen corpse that lacks the minigun + pack +2023-10-29: + retlaw34: + - rscadd: 22lr and cattleman revolver + - rscadd: many gun sounds + - balance: guns reworked +2023-10-30: + thgvr: + - rscdel: Halloween no longer allows different species in prefs +2023-10-31: + thgvr: + - imageadd: New rachnid sprites! + - imagedel: Removed Rachnid mandibles. diff --git a/html/changelogs/archive/2023-11.yml b/html/changelogs/archive/2023-11.yml new file mode 100644 index 000000000000..0f42d6a053ca --- /dev/null +++ b/html/changelogs/archive/2023-11.yml @@ -0,0 +1,92 @@ +2023-11-01: + Zevotech: + - rscdel: Ruin blacklist text files. + - rscdel: Misc. deprecated text files. + Zytolg: + - rscadd: New Rockplanet Ruin + - rscadd: New ship manufacturer sprites. + - code_imp: Repaths areas in rockplanet.dmm to be in line with other ruins. Starts + using rockplanet.dmm. + - code_imp: Code support for Arrow & Axe Dockyard sprites. +2023-11-05: + MarkSuckerberg: + - code_imp: 515 is now supported. + PositiveEntropy: + - imageadd: The leather duster now has a new color palette to match up with the + cowboy hat! +2023-11-08: + PositiveEntropy: + - imageadd: Outfits for independent and Nanotrasen captains have been violently + reworked. + Zevotech: + - bugfix: Fixed snow siding decal pathing + - rscadd: Surrounded snow siding turf decal + meemofcourse: + - rscadd: You can no longer late-join as a character with a repeated name +2023-11-09: + PositiveEntropy, AxieTheAxolotl: + - imageadd: The syndicate operator vest and helmet, the syndicate captain's garb, + and the hunter montagne's garb have been adjusted with better colors. + thgvr: + - rscadd: Digi sprites for loadout pants and CMM jumpsuit added + - rscadd: Pan-Gezenan Federation Asset Pack (Part One) +2023-11-10: + MarkSuckerberg: + - rscadd: There's a few more descriptive docking errors now. + PositiveEntropy: + - rscadd: The Solarian Port Authority Has Now Permitted Inkwell-class Vessels To + Explore The Stars! + retlaw34: + - rscadd: redoes about 9 hairs + - rscdel: about 3 hairs +2023-11-11: + MemedHams: + - bugfix: bloodstains no longer steal the shape of the first item to spill blood + retlaw34: + - rscadd: Adds gun safetys + - balance: Tacitcal reload time adjusted from 1.2 seconds to 1 second +2023-11-14: + Bjarl: + - rscdel: the syndicate lavaland base has been removed. + - code_imp: syndicate outfits have been repathed. Please report anything weird. + retlaw34: + - rscadd: Adds a lot of new pAI faces! pAIs rejoice! +2023-11-15: + Bjarl: + - rscadd: Syndicate groups have reported new models of turrets being attached to + their ships. + - rscadd: Static Anomalies are now even WORSE. Not balance wise. Roleplay wise. + FalloutFalcon: + - rscadd: 3 new Trickwines! Prism, Hearth, and Force + - tweak: tweaked the old Trickwines to be slightly more balanced + - rscadd: srm tree and Trickwine distiller + - tweak: copy big mortar code to small mortar so you can chose between grinding + and juicing + - refactor: splits smoke flags for more control over chemical reactions + - server: Blackbox now records more info about chems + GenericDM: + - tweak: you will now be warned before succumbing when talking in hardcrit + thgvr: + - rscadd: Gas overlays should now look normal on turfs with a color var set. + - rscadd: Saunas, craftable with wooden planks. Uses wood for fuel, and requires + water splashed on the sauna. + - rscadd: Towels. You can use them in-hand to change it from waist, chest, or head. + - bugfix: PGF items now have real names and descriptions. +2023-11-16: + Bjarl: + - bugfix: The polymodial sensor array now properly changes icon_state. + PositiveEntropy: + - bugfix: Cybersun outfits have been adjusted to be less syndicate-generalist and + more Cybersun. + - imageadd: Cybersun has received a full visual overhaul, as well as new goodies! +2023-11-17: + Bjarl: + - balance: passive plasmasoul gas making is gone + - bugfix: plasmasouls no longer make infinite free lag + Erika Fox: + - rscadd: Outpost 1 has been remapped into something fathomably less ass. It's a + bit smaller, probably, but I'm going to call that a good thing. + - rscadd: random number spawner. It's good for hull numbers that shouldn't be static. + - imageadd: a really bad sprite for a service directions sign. + - rscadd: Another elevator template (coincidentally demonstrating how that system + works in code) diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index 610c8768cd75..0aa256c631e4 100644 Binary files a/icons/effects/effects.dmi and b/icons/effects/effects.dmi differ diff --git a/icons/hud/screen_alert.dmi b/icons/hud/screen_alert.dmi index 4d8c0f925b41..1e03d316c2e3 100644 Binary files a/icons/hud/screen_alert.dmi and b/icons/hud/screen_alert.dmi differ diff --git a/icons/mob/clothing/back.dmi b/icons/mob/clothing/back.dmi index 105b302b7ffb..a82a1e208f85 100644 Binary files a/icons/mob/clothing/back.dmi and b/icons/mob/clothing/back.dmi differ diff --git a/icons/mob/clothing/belt_mirror.dmi b/icons/mob/clothing/belt_mirror.dmi index 02e39b1a0ae4..377d505a5e05 100644 Binary files a/icons/mob/clothing/belt_mirror.dmi and b/icons/mob/clothing/belt_mirror.dmi differ diff --git a/icons/mob/clothing/faction/gezena/back.dmi b/icons/mob/clothing/faction/gezena/back.dmi new file mode 100644 index 000000000000..1c5ef723b094 Binary files /dev/null and b/icons/mob/clothing/faction/gezena/back.dmi differ diff --git a/icons/mob/clothing/faction/gezena/belt.dmi b/icons/mob/clothing/faction/gezena/belt.dmi new file mode 100644 index 000000000000..cdd27bcf1e96 Binary files /dev/null and b/icons/mob/clothing/faction/gezena/belt.dmi differ diff --git a/icons/mob/clothing/faction/gezena/feet.dmi b/icons/mob/clothing/faction/gezena/feet.dmi new file mode 100644 index 000000000000..f0d1fb0a6550 Binary files /dev/null and b/icons/mob/clothing/faction/gezena/feet.dmi differ diff --git a/icons/mob/clothing/faction/gezena/hands.dmi b/icons/mob/clothing/faction/gezena/hands.dmi new file mode 100644 index 000000000000..8e9a99d30dab Binary files /dev/null and b/icons/mob/clothing/faction/gezena/hands.dmi differ diff --git a/icons/mob/clothing/faction/gezena/head.dmi b/icons/mob/clothing/faction/gezena/head.dmi new file mode 100644 index 000000000000..c2c20b63e559 Binary files /dev/null and b/icons/mob/clothing/faction/gezena/head.dmi differ diff --git a/icons/mob/clothing/faction/gezena/neck.dmi b/icons/mob/clothing/faction/gezena/neck.dmi new file mode 100644 index 000000000000..9b3fa0c9bbab Binary files /dev/null and b/icons/mob/clothing/faction/gezena/neck.dmi differ diff --git a/icons/mob/clothing/faction/gezena/suits.dmi b/icons/mob/clothing/faction/gezena/suits.dmi new file mode 100644 index 000000000000..c76b3368c644 Binary files /dev/null and b/icons/mob/clothing/faction/gezena/suits.dmi differ diff --git a/icons/mob/clothing/faction/gezena/uniforms.dmi b/icons/mob/clothing/faction/gezena/uniforms.dmi new file mode 100644 index 000000000000..4f3d45acbed2 Binary files /dev/null and b/icons/mob/clothing/faction/gezena/uniforms.dmi differ diff --git a/icons/mob/clothing/feet.dmi b/icons/mob/clothing/feet.dmi index fe964b935915..d9580eff1b42 100644 Binary files a/icons/mob/clothing/feet.dmi and b/icons/mob/clothing/feet.dmi differ diff --git a/icons/mob/clothing/hands.dmi b/icons/mob/clothing/hands.dmi index cff3d7ac5c34..0afcd0ad26c5 100644 Binary files a/icons/mob/clothing/hands.dmi and b/icons/mob/clothing/hands.dmi differ diff --git a/icons/mob/clothing/head.dmi b/icons/mob/clothing/head.dmi index 12c3ce8027de..430ddef0699e 100644 Binary files a/icons/mob/clothing/head.dmi and b/icons/mob/clothing/head.dmi differ diff --git a/icons/mob/clothing/mask.dmi b/icons/mob/clothing/mask.dmi index 90a54af8fa9e..9d430d39a7a7 100644 Binary files a/icons/mob/clothing/mask.dmi and b/icons/mob/clothing/mask.dmi differ diff --git a/icons/mob/clothing/suit.dmi b/icons/mob/clothing/suit.dmi index d94f3a98d4f0..9ce60cc531ee 100644 Binary files a/icons/mob/clothing/suit.dmi and b/icons/mob/clothing/suit.dmi differ diff --git a/icons/mob/clothing/suits/armor.dmi b/icons/mob/clothing/suits/armor.dmi index 2bd6aa565fb3..bc8daf14abd6 100644 Binary files a/icons/mob/clothing/suits/armor.dmi and b/icons/mob/clothing/suits/armor.dmi differ diff --git a/icons/mob/clothing/suits/spacesuits.dmi b/icons/mob/clothing/suits/spacesuits.dmi index 6e97b33cd1b7..8f6e380f3a3b 100644 Binary files a/icons/mob/clothing/suits/spacesuits.dmi and b/icons/mob/clothing/suits/spacesuits.dmi differ diff --git a/icons/mob/clothing/towel.dmi b/icons/mob/clothing/towel.dmi new file mode 100644 index 000000000000..fddf3762b61a Binary files /dev/null and b/icons/mob/clothing/towel.dmi differ diff --git a/icons/mob/clothing/under/command.dmi b/icons/mob/clothing/under/command.dmi index 4793c609aed9..fd5f1af01e88 100644 Binary files a/icons/mob/clothing/under/command.dmi and b/icons/mob/clothing/under/command.dmi differ diff --git a/icons/mob/clothing/under/costume.dmi b/icons/mob/clothing/under/costume.dmi index 9757ce544e24..87605b634fa8 100644 Binary files a/icons/mob/clothing/under/costume.dmi and b/icons/mob/clothing/under/costume.dmi differ diff --git a/icons/mob/clothing/under/shorts_pants.dmi b/icons/mob/clothing/under/shorts_pants.dmi index 4a5978b9f7f3..3d9b1e41a3b0 100644 Binary files a/icons/mob/clothing/under/shorts_pants.dmi and b/icons/mob/clothing/under/shorts_pants.dmi differ diff --git a/icons/mob/clothing/under/syndicate.dmi b/icons/mob/clothing/under/syndicate.dmi index 3eb82401831c..27c030aa4b43 100644 Binary files a/icons/mob/clothing/under/syndicate.dmi and b/icons/mob/clothing/under/syndicate.dmi differ diff --git a/icons/mob/hair_extensions.dmi b/icons/mob/hair_extensions.dmi index 4e109e922697..cafc9fab781c 100644 Binary files a/icons/mob/hair_extensions.dmi and b/icons/mob/hair_extensions.dmi differ diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi index bd508c89ebd0..d130ba2cf2e3 100644 Binary files a/icons/mob/human_face.dmi and b/icons/mob/human_face.dmi differ diff --git a/icons/mob/human_parts.dmi b/icons/mob/human_parts.dmi index f9a4f9cc7874..115688eeca5e 100644 Binary files a/icons/mob/human_parts.dmi and b/icons/mob/human_parts.dmi differ diff --git a/icons/mob/inhands/faction/gezena/gezena_lefthand.dmi b/icons/mob/inhands/faction/gezena/gezena_lefthand.dmi new file mode 100644 index 000000000000..002fd97dafa0 Binary files /dev/null and b/icons/mob/inhands/faction/gezena/gezena_lefthand.dmi differ diff --git a/icons/mob/inhands/faction/gezena/gezena_righthand.dmi b/icons/mob/inhands/faction/gezena/gezena_righthand.dmi new file mode 100644 index 000000000000..0c2bd0479004 Binary files /dev/null and b/icons/mob/inhands/faction/gezena/gezena_righthand.dmi differ diff --git a/icons/mob/inhands/misc/food_lefthand.dmi b/icons/mob/inhands/misc/food_lefthand.dmi index da4f2fa1826c..a26002a20b9a 100644 Binary files a/icons/mob/inhands/misc/food_lefthand.dmi and b/icons/mob/inhands/misc/food_lefthand.dmi differ diff --git a/icons/mob/inhands/misc/food_righthand.dmi b/icons/mob/inhands/misc/food_righthand.dmi index b6426e836780..1e90ac3cb75a 100644 Binary files a/icons/mob/inhands/misc/food_righthand.dmi and b/icons/mob/inhands/misc/food_righthand.dmi differ diff --git a/icons/mob/species/kepori/onmob_uniform_kepori.dmi b/icons/mob/species/kepori/onmob_uniform_kepori.dmi index 1e0416588ae3..6f28d759ba5f 100644 Binary files a/icons/mob/species/kepori/onmob_uniform_kepori.dmi and b/icons/mob/species/kepori/onmob_uniform_kepori.dmi differ diff --git a/icons/mob/species/lizard/frills.dmi b/icons/mob/species/lizard/frills.dmi index 6d661308c093..b8587a7bd8e2 100644 Binary files a/icons/mob/species/lizard/frills.dmi and b/icons/mob/species/lizard/frills.dmi differ diff --git a/icons/mob/species/misc/cat.dmi b/icons/mob/species/misc/cat.dmi index 685110a16114..aaab4f1b8637 100644 Binary files a/icons/mob/species/misc/cat.dmi and b/icons/mob/species/misc/cat.dmi differ diff --git a/icons/mob/species/misc/digitigrade.dmi b/icons/mob/species/misc/digitigrade.dmi index 37ff2b130323..104387630acb 100644 Binary files a/icons/mob/species/misc/digitigrade.dmi and b/icons/mob/species/misc/digitigrade.dmi differ diff --git a/icons/mob/species/misc/digitigrade_shoes.dmi b/icons/mob/species/misc/digitigrade_shoes.dmi index c5316bab988f..9ad6cc1827ed 100644 Binary files a/icons/mob/species/misc/digitigrade_shoes.dmi and b/icons/mob/species/misc/digitigrade_shoes.dmi differ diff --git a/icons/mob/species/misc/digitigrade_suits.dmi b/icons/mob/species/misc/digitigrade_suits.dmi index eaca5e34a629..31dd9ad9c8e6 100644 Binary files a/icons/mob/species/misc/digitigrade_suits.dmi and b/icons/mob/species/misc/digitigrade_suits.dmi differ diff --git a/icons/mob/species/misc/fox.dmi b/icons/mob/species/misc/fox.dmi index 6971b406bce7..da344bb33a3b 100644 Binary files a/icons/mob/species/misc/fox.dmi and b/icons/mob/species/misc/fox.dmi differ diff --git a/icons/mob/species/rachnid/bodyparts.dmi b/icons/mob/species/rachnid/bodyparts.dmi index cef6559f29e7..94fe73ee6a0a 100644 Binary files a/icons/mob/species/rachnid/bodyparts.dmi and b/icons/mob/species/rachnid/bodyparts.dmi differ diff --git a/icons/mob/species/rachnid/spider_legs.dmi b/icons/mob/species/rachnid/spider_legs.dmi index d04b5a719e30..907614753ddd 100644 Binary files a/icons/mob/species/rachnid/spider_legs.dmi and b/icons/mob/species/rachnid/spider_legs.dmi differ diff --git a/icons/mob/species/rachnid/spider_mandibles.dmi b/icons/mob/species/rachnid/spider_mandibles.dmi deleted file mode 100644 index 81b4b29a1262..000000000000 Binary files a/icons/mob/species/rachnid/spider_mandibles.dmi and /dev/null differ diff --git a/icons/mob/species/rachnid/spider_spinneret.dmi b/icons/mob/species/rachnid/spider_spinneret.dmi index 9adf49f05837..6f7fcc9f965c 100644 Binary files a/icons/mob/species/rachnid/spider_spinneret.dmi and b/icons/mob/species/rachnid/spider_spinneret.dmi differ diff --git a/icons/obj/aicards.dmi b/icons/obj/aicards.dmi index f6847dfe2d7a..5698962eb9fb 100644 Binary files a/icons/obj/aicards.dmi and b/icons/obj/aicards.dmi differ diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index 96528874fee3..c911e872b62d 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 7519969765c6..389dab6b1d87 100644 Binary files a/icons/obj/barsigns.dmi and b/icons/obj/barsigns.dmi differ diff --git a/icons/obj/clothing/faction/gezena/belt.dmi b/icons/obj/clothing/faction/gezena/belt.dmi new file mode 100644 index 000000000000..b07676386259 Binary files /dev/null and b/icons/obj/clothing/faction/gezena/belt.dmi differ diff --git a/icons/obj/clothing/faction/gezena/feet.dmi b/icons/obj/clothing/faction/gezena/feet.dmi new file mode 100644 index 000000000000..f3a23a70de35 Binary files /dev/null and b/icons/obj/clothing/faction/gezena/feet.dmi differ diff --git a/icons/obj/clothing/faction/gezena/hands.dmi b/icons/obj/clothing/faction/gezena/hands.dmi new file mode 100644 index 000000000000..3daa7c762d38 Binary files /dev/null and b/icons/obj/clothing/faction/gezena/hands.dmi differ diff --git a/icons/obj/clothing/faction/gezena/head.dmi b/icons/obj/clothing/faction/gezena/head.dmi new file mode 100644 index 000000000000..11454b333921 Binary files /dev/null and b/icons/obj/clothing/faction/gezena/head.dmi differ diff --git a/icons/obj/clothing/faction/gezena/neck.dmi b/icons/obj/clothing/faction/gezena/neck.dmi new file mode 100644 index 000000000000..19d51f6a64ae Binary files /dev/null and b/icons/obj/clothing/faction/gezena/neck.dmi differ diff --git a/icons/obj/clothing/faction/gezena/suits.dmi b/icons/obj/clothing/faction/gezena/suits.dmi new file mode 100644 index 000000000000..09e00adf3289 Binary files /dev/null and b/icons/obj/clothing/faction/gezena/suits.dmi differ diff --git a/icons/obj/clothing/faction/gezena/uniforms.dmi b/icons/obj/clothing/faction/gezena/uniforms.dmi new file mode 100644 index 000000000000..ed9a863e3d57 Binary files /dev/null and b/icons/obj/clothing/faction/gezena/uniforms.dmi differ diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi index e74978adb047..ff36ce0bce5e 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 3b37b555f4df..642e21ea3e09 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/masks.dmi b/icons/obj/clothing/masks.dmi index 89d5ed3328bd..5f0cb3b84fed 100644 Binary files a/icons/obj/clothing/masks.dmi and b/icons/obj/clothing/masks.dmi differ diff --git a/icons/obj/clothing/shoes.dmi b/icons/obj/clothing/shoes.dmi index 2f8bf359a59e..a17d4b5b2bff 100644 Binary files a/icons/obj/clothing/shoes.dmi and b/icons/obj/clothing/shoes.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index 32714635d084..c464ebddf84e 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/icons/obj/clothing/suits/armor.dmi b/icons/obj/clothing/suits/armor.dmi index 7d5b69ab1fc2..758c4836aeb0 100644 Binary files a/icons/obj/clothing/suits/armor.dmi and b/icons/obj/clothing/suits/armor.dmi differ diff --git a/icons/obj/clothing/suits/spacesuits.dmi b/icons/obj/clothing/suits/spacesuits.dmi index 7ab05863bf05..d467eac36a5a 100644 Binary files a/icons/obj/clothing/suits/spacesuits.dmi and b/icons/obj/clothing/suits/spacesuits.dmi differ diff --git a/icons/obj/clothing/towel.dmi b/icons/obj/clothing/towel.dmi new file mode 100644 index 000000000000..93001ef29bc3 Binary files /dev/null and b/icons/obj/clothing/towel.dmi differ diff --git a/icons/obj/clothing/under/command.dmi b/icons/obj/clothing/under/command.dmi index 761796ada9e5..d5d48999bec3 100644 Binary files a/icons/obj/clothing/under/command.dmi and b/icons/obj/clothing/under/command.dmi differ diff --git a/icons/obj/clothing/under/security.dmi b/icons/obj/clothing/under/security.dmi index 84d90c19d79a..5572325faaf8 100644 Binary files a/icons/obj/clothing/under/security.dmi and b/icons/obj/clothing/under/security.dmi differ diff --git a/icons/obj/clothing/under/syndicate.dmi b/icons/obj/clothing/under/syndicate.dmi index 9b1630feb16b..9ae89d62123f 100644 Binary files a/icons/obj/clothing/under/syndicate.dmi and b/icons/obj/clothing/under/syndicate.dmi differ diff --git a/icons/obj/decals.dmi b/icons/obj/decals.dmi index b3fe3b860e70..b0d9bd53a345 100644 Binary files a/icons/obj/decals.dmi and b/icons/obj/decals.dmi differ diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi index 5083b4acc226..dbc04307a37a 100644 Binary files a/icons/obj/drinks.dmi and b/icons/obj/drinks.dmi differ diff --git a/icons/obj/guns/48x32guns.dmi b/icons/obj/guns/48x32guns.dmi index 732e37318768..88dc73290622 100644 Binary files a/icons/obj/guns/48x32guns.dmi and b/icons/obj/guns/48x32guns.dmi differ diff --git a/icons/obj/guns/faction/gezena/48x32.dmi b/icons/obj/guns/faction/gezena/48x32.dmi new file mode 100644 index 000000000000..91e2ef30d785 Binary files /dev/null and b/icons/obj/guns/faction/gezena/48x32.dmi differ diff --git a/icons/obj/guns/faction/gezena/energy.dmi b/icons/obj/guns/faction/gezena/energy.dmi new file mode 100644 index 000000000000..92d88bbab4e6 Binary files /dev/null and b/icons/obj/guns/faction/gezena/energy.dmi differ diff --git a/icons/obj/guns/faction/gezena/lefthand.dmi b/icons/obj/guns/faction/gezena/lefthand.dmi new file mode 100644 index 000000000000..9bec84cd36bb Binary files /dev/null and b/icons/obj/guns/faction/gezena/lefthand.dmi differ diff --git a/icons/obj/guns/faction/gezena/righthand.dmi b/icons/obj/guns/faction/gezena/righthand.dmi new file mode 100644 index 000000000000..d2d76ebb433d Binary files /dev/null and b/icons/obj/guns/faction/gezena/righthand.dmi differ diff --git a/icons/obj/guns/projectile.dmi b/icons/obj/guns/projectile.dmi index 24b209d6ab2b..02e7d3812dcb 100644 Binary files a/icons/obj/guns/projectile.dmi and b/icons/obj/guns/projectile.dmi differ diff --git a/icons/obj/guns/safety.dmi b/icons/obj/guns/safety.dmi new file mode 100644 index 000000000000..072a483fa795 Binary files /dev/null and b/icons/obj/guns/safety.dmi differ diff --git a/icons/obj/hydroponics/harvest.dmi b/icons/obj/hydroponics/harvest.dmi index aeae4b17a44e..b07ae679471d 100644 Binary files a/icons/obj/hydroponics/harvest.dmi and b/icons/obj/hydroponics/harvest.dmi differ diff --git a/icons/obj/lighting.dmi b/icons/obj/lighting.dmi index 25a990b61d01..ae86489bb340 100644 Binary files a/icons/obj/lighting.dmi and b/icons/obj/lighting.dmi differ diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi index d779a15bc717..340bc0f9a5c6 100644 Binary files a/icons/obj/objects.dmi and b/icons/obj/objects.dmi differ diff --git a/icons/obj/power.dmi b/icons/obj/power.dmi index e58811689631..8ce2ccae3973 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 1ac2c63ed367..90854a704525 100644 Binary files a/icons/obj/projectiles.dmi and b/icons/obj/projectiles.dmi differ diff --git a/icons/obj/projectiles_impact.dmi b/icons/obj/projectiles_impact.dmi index bac35e68e147..ee2ddf8568e0 100644 Binary files a/icons/obj/projectiles_impact.dmi and b/icons/obj/projectiles_impact.dmi differ diff --git a/icons/obj/projectiles_muzzle.dmi b/icons/obj/projectiles_muzzle.dmi index 2f1d6d90c6bf..4b23b27a8f35 100644 Binary files a/icons/obj/projectiles_muzzle.dmi and b/icons/obj/projectiles_muzzle.dmi differ diff --git a/icons/obj/projectiles_tracer.dmi b/icons/obj/projectiles_tracer.dmi index 56442452e724..be82f0d319d2 100644 Binary files a/icons/obj/projectiles_tracer.dmi and b/icons/obj/projectiles_tracer.dmi differ diff --git a/icons/obj/stack_objects.dmi b/icons/obj/stack_objects.dmi index 1fc4f14abbca..0989e1834f70 100644 Binary files a/icons/obj/stack_objects.dmi and b/icons/obj/stack_objects.dmi differ diff --git a/icons/obj/structures.dmi b/icons/obj/structures.dmi index 7c265737266a..a984d69cf030 100644 Binary files a/icons/obj/structures.dmi and b/icons/obj/structures.dmi differ diff --git a/icons/turf/decals.dmi b/icons/turf/decals.dmi index e14d164289bc..c670e677d226 100644 Binary files a/icons/turf/decals.dmi and b/icons/turf/decals.dmi differ diff --git a/icons/turf/snow.dmi b/icons/turf/snow.dmi index 594a4f91e6c2..6801384e0182 100644 Binary files a/icons/turf/snow.dmi and b/icons/turf/snow.dmi differ diff --git a/rust_g.dll b/rust_g.dll index 059c79e34029..72a27df14403 100644 Binary files a/rust_g.dll and b/rust_g.dll differ diff --git a/shiptest.dme b/shiptest.dme index b56709e8b98b..872f257480d5 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -56,6 +56,7 @@ #include "code\__DEFINES\economy.dm" #include "code\__DEFINES\events.dm" #include "code\__DEFINES\exports.dm" +#include "code\__DEFINES\factions.dm" #include "code\__DEFINES\fantasy_affixes.dm" #include "code\__DEFINES\fastdmm2.dm" #include "code\__DEFINES\fishing.dm" @@ -67,6 +68,7 @@ #include "code\__DEFINES\hud.dm" #include "code\__DEFINES\icon_smoothing.dm" #include "code\__DEFINES\important_recursive_contents.dm" +#include "code\__DEFINES\input.dm" #include "code\__DEFINES\instruments.dm" #include "code\__DEFINES\interaction_flags.dm" #include "code\__DEFINES\inventory.dm" @@ -142,6 +144,7 @@ #include "code\__DEFINES\turfs.dm" #include "code\__DEFINES\typeids.dm" #include "code\__DEFINES\vehicles.dm" +#include "code\__DEFINES\verb_manager.dm" #include "code\__DEFINES\vv.dm" #include "code\__DEFINES\wall_dents.dm" #include "code\__DEFINES\wires.dm" @@ -173,6 +176,7 @@ #include "code\__HELPERS\matrices.dm" #include "code\__HELPERS\mobs.dm" #include "code\__HELPERS\mouse_control.dm" +#include "code\__HELPERS\nameof.dm" #include "code\__HELPERS\names.dm" #include "code\__HELPERS\priority_announce.dm" #include "code\__HELPERS\pronouns.dm" @@ -362,6 +366,7 @@ #include "code\controllers\subsystem\title.dm" #include "code\controllers\subsystem\traumas.dm" #include "code\controllers\subsystem\turf_fire.dm" +#include "code\controllers\subsystem\verb_manager.dm" #include "code\controllers\subsystem\vis_overlays.dm" #include "code\controllers\subsystem\vote.dm" #include "code\controllers\subsystem\weather.dm" @@ -416,6 +421,7 @@ #include "code\datums\soullink.dm" #include "code\datums\spawners_menu.dm" #include "code\datums\tgs_event_handler.dm" +#include "code\datums\verb_callbacks.dm" #include "code\datums\verbs.dm" #include "code\datums\view.dm" #include "code\datums\weakrefs.dm" @@ -1305,6 +1311,7 @@ #include "code\game\objects\structures\barsigns.dm" #include "code\game\objects\structures\bedsheet_bin.dm" #include "code\game\objects\structures\catwalk.dm" +#include "code\game\objects\structures\crateshelf.dm" #include "code\game\objects\structures\curtains.dm" #include "code\game\objects\structures\destructible_structures.dm" #include "code\game\objects\structures\displaycase.dm" @@ -1350,6 +1357,7 @@ #include "code\game\objects\structures\reflector.dm" #include "code\game\objects\structures\safe.dm" #include "code\game\objects\structures\salvaging.dm" +#include "code\game\objects\structures\sauna.dm" #include "code\game\objects\structures\showcase.dm" #include "code\game\objects\structures\shower.dm" #include "code\game\objects\structures\signs.dm" @@ -1438,6 +1446,7 @@ #include "code\game\turfs\open\floor\catwalk_plating.dm" #include "code\game\turfs\open\floor\conc_floor.dm" #include "code\game\turfs\open\floor\fancy_floor.dm" +#include "code\game\turfs\open\floor\hangar.dm" #include "code\game\turfs\open\floor\hull.dm" #include "code\game\turfs\open\floor\light_floor.dm" #include "code\game\turfs\open\floor\mineral_floor.dm" @@ -1660,10 +1669,7 @@ #include "code\modules\antagonists\disease\disease_event.dm" #include "code\modules\antagonists\disease\disease_mob.dm" #include "code\modules\antagonists\ert\ert.dm" -#include "code\modules\antagonists\fugitive\fugitive.dm" #include "code\modules\antagonists\fugitive\fugitive_outfits.dm" -#include "code\modules\antagonists\fugitive\fugitive_ship.dm" -#include "code\modules\antagonists\fugitive\hunter.dm" #include "code\modules\antagonists\gang\outfits.dm" #include "code\modules\antagonists\greentext\greentext.dm" #include "code\modules\antagonists\magic_servant\servant.dm" @@ -1678,7 +1684,6 @@ #include "code\modules\antagonists\nukeop\equipment\nuclearbomb.dm" #include "code\modules\antagonists\nukeop\equipment\pinpointer.dm" #include "code\modules\antagonists\official\official.dm" -#include "code\modules\antagonists\pirate\pirate.dm" #include "code\modules\antagonists\revenant\revenant.dm" #include "code\modules\antagonists\revenant\revenant_abilities.dm" #include "code\modules\antagonists\revenant\revenant_antag.dm" @@ -1916,7 +1921,9 @@ #include "code\modules\client\verbs\who.dm" #include "code\modules\clothing\chameleon.dm" #include "code\modules\clothing\clothing.dm" +#include "code\modules\clothing\towels.dm" #include "code\modules\clothing\ears\_ears.dm" +#include "code\modules\clothing\factions\gezena.dm" #include "code\modules\clothing\glasses\_glasses.dm" #include "code\modules\clothing\glasses\engine_goggles.dm" #include "code\modules\clothing\glasses\hud.dm" @@ -1944,10 +1951,11 @@ #include "code\modules\clothing\neck\_neck.dm" #include "code\modules\clothing\outfits\ert.dm" #include "code\modules\clothing\outfits\event.dm" +#include "code\modules\clothing\outfits\gezena.dm" #include "code\modules\clothing\outfits\plasmaman.dm" #include "code\modules\clothing\outfits\solgov.dm" +#include "code\modules\clothing\outfits\syndicate.dm" #include "code\modules\clothing\outfits\standard.dm" -#include "code\modules\clothing\outfits\vr.dm" #include "code\modules\clothing\outfits\vv_outfit.dm" #include "code\modules\clothing\shoes\_shoes.dm" #include "code\modules\clothing\shoes\bananashoes.dm" @@ -2034,7 +2042,6 @@ #include "code\modules\events\electrical_storm.dm" #include "code\modules\events\fake_virus.dm" #include "code\modules\events\false_alarm.dm" -#include "code\modules\events\fugitive_spawning.dm" #include "code\modules\events\ghost_role.dm" #include "code\modules\events\grid_check.dm" #include "code\modules\events\heart_attack.dm" @@ -2047,7 +2054,6 @@ #include "code\modules\events\meteor_wave.dm" #include "code\modules\events\nightmare.dm" #include "code\modules\events\operative.dm" -#include "code\modules\events\pirates.dm" #include "code\modules\events\prison_break.dm" #include "code\modules\events\processor_overload.dm" #include "code\modules\events\radiation_storm.dm" @@ -2098,6 +2104,7 @@ #include "code\modules\food_and_drinks\pizzabox.dm" #include "code\modules\food_and_drinks\drinks\drinks.dm" #include "code\modules\food_and_drinks\drinks\drinks\bottle.dm" +#include "code\modules\food_and_drinks\drinks\drinks\breakawayflask.dm" #include "code\modules\food_and_drinks\drinks\drinks\drinkingglass.dm" #include "code\modules\food_and_drinks\drinks\drinks\modglass.dm" #include "code\modules\food_and_drinks\food\bait.dm" @@ -2995,6 +3002,7 @@ #include "code\modules\projectiles\guns\energy\pulse.dm" #include "code\modules\projectiles\guns\energy\special.dm" #include "code\modules\projectiles\guns\energy\stun.dm" +#include "code\modules\projectiles\guns\faction\gezena\energy_gunsword.dm" #include "code\modules\projectiles\guns\magic\staff.dm" #include "code\modules\projectiles\guns\magic\wand.dm" #include "code\modules\projectiles\guns\misc\beam_rifle.dm" @@ -3068,6 +3076,7 @@ #include "code\modules\reagents\chemistry\reagents\other_reagents.dm" #include "code\modules\reagents\chemistry\reagents\pyrotechnic_reagents.dm" #include "code\modules\reagents\chemistry\reagents\toxin_reagents.dm" +#include "code\modules\reagents\chemistry\reagents\trickwine_reagents.dm" #include "code\modules\reagents\chemistry\recipes\cat2_medicines.dm" #include "code\modules\reagents\chemistry\recipes\drugs.dm" #include "code\modules\reagents\chemistry\recipes\medicine.dm" diff --git a/sound/misc/Cyka Blyat.ogg b/sound/misc/Cyka Blyat.ogg deleted file mode 100644 index ca5c8fd49bef..000000000000 Binary files a/sound/misc/Cyka Blyat.ogg and /dev/null differ diff --git a/sound/misc/Russian_Anthem_chorus.ogg b/sound/misc/Russian_Anthem_chorus.ogg deleted file mode 100644 index 0105eb7f22af..000000000000 Binary files a/sound/misc/Russian_Anthem_chorus.ogg and /dev/null differ diff --git a/sound/misc/capitialism.ogg b/sound/misc/capitialism.ogg deleted file mode 100644 index 8645fc6ed72b..000000000000 Binary files a/sound/misc/capitialism.ogg and /dev/null differ diff --git a/sound/weapons/effects/deflect.ogg b/sound/weapons/effects/deflect.ogg new file mode 100644 index 000000000000..a4e9ed6ba4c0 Binary files /dev/null and b/sound/weapons/effects/deflect.ogg differ diff --git a/sound/weapons/effects/ric1.ogg b/sound/weapons/effects/ric1.ogg deleted file mode 100644 index b7f7bd99ca5a..000000000000 Binary files a/sound/weapons/effects/ric1.ogg and /dev/null differ diff --git a/sound/weapons/effects/ric2.ogg b/sound/weapons/effects/ric2.ogg deleted file mode 100644 index dcd44b07329e..000000000000 Binary files a/sound/weapons/effects/ric2.ogg and /dev/null differ diff --git a/sound/weapons/effects/ric3.ogg b/sound/weapons/effects/ric3.ogg deleted file mode 100644 index c538a97e35a6..000000000000 Binary files a/sound/weapons/effects/ric3.ogg and /dev/null differ diff --git a/sound/weapons/effects/ric4.ogg b/sound/weapons/effects/ric4.ogg deleted file mode 100644 index ac872734beaa..000000000000 Binary files a/sound/weapons/effects/ric4.ogg and /dev/null differ diff --git a/sound/weapons/effects/ric5.ogg b/sound/weapons/effects/ric5.ogg deleted file mode 100644 index 2c946c457d6b..000000000000 Binary files a/sound/weapons/effects/ric5.ogg and /dev/null differ diff --git a/sound/weapons/gun/energy/laserpistol.ogg b/sound/weapons/gun/energy/laserpistol.ogg new file mode 100644 index 000000000000..2eb881d0c4ab Binary files /dev/null and b/sound/weapons/gun/energy/laserpistol.ogg differ diff --git a/sound/weapons/gun/energy/lasersniper.ogg b/sound/weapons/gun/energy/lasersniper.ogg new file mode 100644 index 000000000000..a773bd203d12 Binary files /dev/null and b/sound/weapons/gun/energy/lasersniper.ogg differ diff --git a/sound/weapons/gun/general/bulletcasing_bounce1.ogg b/sound/weapons/gun/general/bulletcasing_bounce1.ogg new file mode 100644 index 000000000000..c33a27fa5007 Binary files /dev/null and b/sound/weapons/gun/general/bulletcasing_bounce1.ogg differ diff --git a/sound/weapons/gun/general/bulletcasing_bounce2.ogg b/sound/weapons/gun/general/bulletcasing_bounce2.ogg new file mode 100644 index 000000000000..f8d516643b25 Binary files /dev/null and b/sound/weapons/gun/general/bulletcasing_bounce2.ogg differ diff --git a/sound/weapons/gun/general/bulletcasing_bounce3.ogg b/sound/weapons/gun/general/bulletcasing_bounce3.ogg new file mode 100644 index 000000000000..84e670706284 Binary files /dev/null and b/sound/weapons/gun/general/bulletcasing_bounce3.ogg differ diff --git a/sound/weapons/gun/general/bulletcasing_shotgun_bounce.ogg b/sound/weapons/gun/general/bulletcasing_shotgun_bounce.ogg new file mode 100644 index 000000000000..324543b62587 Binary files /dev/null and b/sound/weapons/gun/general/bulletcasing_shotgun_bounce.ogg differ diff --git a/sound/weapons/gun/general/rocket_load.ogg b/sound/weapons/gun/general/rocket_load.ogg new file mode 100644 index 000000000000..4c5a2ec6911d Binary files /dev/null and b/sound/weapons/gun/general/rocket_load.ogg differ diff --git a/sound/weapons/gun/general/selector.ogg b/sound/weapons/gun/general/selector.ogg new file mode 100644 index 000000000000..298181609e49 Binary files /dev/null and b/sound/weapons/gun/general/selector.ogg differ diff --git a/sound/weapons/gun/hit/bullet_bounce1.ogg b/sound/weapons/gun/hit/bullet_bounce1.ogg new file mode 100644 index 000000000000..a8a1fb36f385 Binary files /dev/null and b/sound/weapons/gun/hit/bullet_bounce1.ogg differ diff --git a/sound/weapons/gun/hit/bullet_bounce2.ogg b/sound/weapons/gun/hit/bullet_bounce2.ogg new file mode 100644 index 000000000000..a06a0c320e9e Binary files /dev/null and b/sound/weapons/gun/hit/bullet_bounce2.ogg differ diff --git a/sound/weapons/gun/hit/bullet_bounce3.ogg b/sound/weapons/gun/hit/bullet_bounce3.ogg new file mode 100644 index 000000000000..4313703c760b Binary files /dev/null and b/sound/weapons/gun/hit/bullet_bounce3.ogg differ diff --git a/sound/weapons/gun/hit/bullet_bounce4.ogg b/sound/weapons/gun/hit/bullet_bounce4.ogg new file mode 100644 index 000000000000..a3c2c34ec018 Binary files /dev/null and b/sound/weapons/gun/hit/bullet_bounce4.ogg differ diff --git a/sound/weapons/gun/hit/bullet_bounce5.ogg b/sound/weapons/gun/hit/bullet_bounce5.ogg new file mode 100644 index 000000000000..35b8be603534 Binary files /dev/null and b/sound/weapons/gun/hit/bullet_bounce5.ogg differ diff --git a/sound/weapons/gun/hit/bullet_glass_01.ogg b/sound/weapons/gun/hit/bullet_glass_01.ogg new file mode 100644 index 000000000000..30f6f1fb612b Binary files /dev/null and b/sound/weapons/gun/hit/bullet_glass_01.ogg differ diff --git a/sound/weapons/gun/hit/bullet_glass_02.ogg b/sound/weapons/gun/hit/bullet_glass_02.ogg new file mode 100644 index 000000000000..472f98e9801a Binary files /dev/null and b/sound/weapons/gun/hit/bullet_glass_02.ogg differ diff --git a/sound/weapons/gun/hit/bullet_glass_03.ogg b/sound/weapons/gun/hit/bullet_glass_03.ogg new file mode 100644 index 000000000000..25c6df47a921 Binary files /dev/null and b/sound/weapons/gun/hit/bullet_glass_03.ogg differ diff --git a/sound/weapons/gun/hit/bullet_glass_04.ogg b/sound/weapons/gun/hit/bullet_glass_04.ogg new file mode 100644 index 000000000000..b525f665c414 Binary files /dev/null and b/sound/weapons/gun/hit/bullet_glass_04.ogg differ diff --git a/sound/weapons/gun/hit/bullet_glass_05.ogg b/sound/weapons/gun/hit/bullet_glass_05.ogg new file mode 100644 index 000000000000..89ff21723aac Binary files /dev/null and b/sound/weapons/gun/hit/bullet_glass_05.ogg differ diff --git a/sound/weapons/gun/hit/bullet_glass_06.ogg b/sound/weapons/gun/hit/bullet_glass_06.ogg new file mode 100644 index 000000000000..26cacb990766 Binary files /dev/null and b/sound/weapons/gun/hit/bullet_glass_06.ogg differ diff --git a/sound/weapons/gun/hit/bullet_glass_07.ogg b/sound/weapons/gun/hit/bullet_glass_07.ogg new file mode 100644 index 000000000000..110a45074d17 Binary files /dev/null and b/sound/weapons/gun/hit/bullet_glass_07.ogg differ diff --git a/sound/weapons/gun/hit/bullet_impact1.ogg b/sound/weapons/gun/hit/bullet_impact1.ogg new file mode 100644 index 000000000000..4c0cd5b5eebb Binary files /dev/null and b/sound/weapons/gun/hit/bullet_impact1.ogg differ diff --git a/sound/weapons/gun/hit/bullet_impact2.ogg b/sound/weapons/gun/hit/bullet_impact2.ogg new file mode 100644 index 000000000000..bfffcfeadfaa Binary files /dev/null and b/sound/weapons/gun/hit/bullet_impact2.ogg differ diff --git a/sound/weapons/gun/hit/bullet_impact3.ogg b/sound/weapons/gun/hit/bullet_impact3.ogg new file mode 100644 index 000000000000..0356dc6c8819 Binary files /dev/null and b/sound/weapons/gun/hit/bullet_impact3.ogg differ diff --git a/sound/weapons/gun/hit/bullet_masonry_01.ogg b/sound/weapons/gun/hit/bullet_masonry_01.ogg new file mode 100644 index 000000000000..1a04e7688d63 Binary files /dev/null and b/sound/weapons/gun/hit/bullet_masonry_01.ogg differ diff --git a/sound/weapons/gun/hit/bullet_masonry_02.ogg b/sound/weapons/gun/hit/bullet_masonry_02.ogg new file mode 100644 index 000000000000..770e9e242a7f Binary files /dev/null and b/sound/weapons/gun/hit/bullet_masonry_02.ogg differ diff --git a/sound/weapons/gun/hit/bullet_masonry_03.ogg b/sound/weapons/gun/hit/bullet_masonry_03.ogg new file mode 100644 index 000000000000..c0eb0bf13233 Binary files /dev/null and b/sound/weapons/gun/hit/bullet_masonry_03.ogg differ diff --git a/sound/weapons/gun/hit/bullet_masonry_04.ogg b/sound/weapons/gun/hit/bullet_masonry_04.ogg new file mode 100644 index 000000000000..83cbc57ebd83 Binary files /dev/null and b/sound/weapons/gun/hit/bullet_masonry_04.ogg differ diff --git a/sound/weapons/gun/hit/bullet_masonry_05.ogg b/sound/weapons/gun/hit/bullet_masonry_05.ogg new file mode 100644 index 000000000000..6d9a67304659 Binary files /dev/null and b/sound/weapons/gun/hit/bullet_masonry_05.ogg differ diff --git a/sound/weapons/gun/hit/bullet_masonry_06.ogg b/sound/weapons/gun/hit/bullet_masonry_06.ogg new file mode 100644 index 000000000000..2a982a56edb9 Binary files /dev/null and b/sound/weapons/gun/hit/bullet_masonry_06.ogg differ diff --git a/sound/weapons/gun/hit/bullet_metal_01.ogg b/sound/weapons/gun/hit/bullet_metal_01.ogg new file mode 100644 index 000000000000..1a706abd90c0 Binary files /dev/null and b/sound/weapons/gun/hit/bullet_metal_01.ogg differ diff --git a/sound/weapons/gun/hit/bullet_metal_02.ogg b/sound/weapons/gun/hit/bullet_metal_02.ogg new file mode 100644 index 000000000000..ee938e2a593d Binary files /dev/null and b/sound/weapons/gun/hit/bullet_metal_02.ogg differ diff --git a/sound/weapons/gun/hit/bullet_metal_03.ogg b/sound/weapons/gun/hit/bullet_metal_03.ogg new file mode 100644 index 000000000000..9ede9f161290 Binary files /dev/null and b/sound/weapons/gun/hit/bullet_metal_03.ogg differ diff --git a/sound/weapons/gun/hit/bullet_metal_04.ogg b/sound/weapons/gun/hit/bullet_metal_04.ogg new file mode 100644 index 000000000000..bf6824c8cefd Binary files /dev/null and b/sound/weapons/gun/hit/bullet_metal_04.ogg differ diff --git a/sound/weapons/gun/hit/bullet_metal_05.ogg b/sound/weapons/gun/hit/bullet_metal_05.ogg new file mode 100644 index 000000000000..a45e3d6204e4 Binary files /dev/null and b/sound/weapons/gun/hit/bullet_metal_05.ogg differ diff --git a/sound/weapons/gun/hit/bullet_metal_06.ogg b/sound/weapons/gun/hit/bullet_metal_06.ogg new file mode 100644 index 000000000000..53877b5e8ce6 Binary files /dev/null and b/sound/weapons/gun/hit/bullet_metal_06.ogg differ diff --git a/sound/weapons/gun/hit/bullet_miss1.ogg b/sound/weapons/gun/hit/bullet_miss1.ogg new file mode 100644 index 000000000000..dfff45a0cb5d Binary files /dev/null and b/sound/weapons/gun/hit/bullet_miss1.ogg differ diff --git a/sound/weapons/gun/hit/bullet_miss2.ogg b/sound/weapons/gun/hit/bullet_miss2.ogg new file mode 100644 index 000000000000..54b111128021 Binary files /dev/null and b/sound/weapons/gun/hit/bullet_miss2.ogg differ diff --git a/sound/weapons/gun/hit/bullet_miss3.ogg b/sound/weapons/gun/hit/bullet_miss3.ogg new file mode 100644 index 000000000000..fbff6dde9046 Binary files /dev/null and b/sound/weapons/gun/hit/bullet_miss3.ogg differ diff --git a/sound/weapons/gun/hit/bullet_miss4.ogg b/sound/weapons/gun/hit/bullet_miss4.ogg new file mode 100644 index 000000000000..6392d6676915 Binary files /dev/null and b/sound/weapons/gun/hit/bullet_miss4.ogg differ diff --git a/sound/weapons/gun/hit/bullet_ricochet1.ogg b/sound/weapons/gun/hit/bullet_ricochet1.ogg new file mode 100644 index 000000000000..724f599cd5bd Binary files /dev/null and b/sound/weapons/gun/hit/bullet_ricochet1.ogg differ diff --git a/sound/weapons/gun/hit/bullet_ricochet2.ogg b/sound/weapons/gun/hit/bullet_ricochet2.ogg new file mode 100644 index 000000000000..1c29b9e64e20 Binary files /dev/null and b/sound/weapons/gun/hit/bullet_ricochet2.ogg differ diff --git a/sound/weapons/gun/hit/bullet_ricochet3.ogg b/sound/weapons/gun/hit/bullet_ricochet3.ogg new file mode 100644 index 000000000000..96d470ffe2cb Binary files /dev/null and b/sound/weapons/gun/hit/bullet_ricochet3.ogg differ diff --git a/sound/weapons/gun/hit/bullet_ricochet4.ogg b/sound/weapons/gun/hit/bullet_ricochet4.ogg new file mode 100644 index 000000000000..bde8fda3f4c4 Binary files /dev/null and b/sound/weapons/gun/hit/bullet_ricochet4.ogg differ diff --git a/sound/weapons/gun/hit/bullet_ricochet5.ogg b/sound/weapons/gun/hit/bullet_ricochet5.ogg new file mode 100644 index 000000000000..eba86301354f Binary files /dev/null and b/sound/weapons/gun/hit/bullet_ricochet5.ogg differ diff --git a/sound/weapons/gun/hit/bullet_ricochet6.ogg b/sound/weapons/gun/hit/bullet_ricochet6.ogg new file mode 100644 index 000000000000..b143a3c2bdc9 Binary files /dev/null and b/sound/weapons/gun/hit/bullet_ricochet6.ogg differ diff --git a/sound/weapons/gun/hit/bullet_ricochet7.ogg b/sound/weapons/gun/hit/bullet_ricochet7.ogg new file mode 100644 index 000000000000..68a2ee63fa02 Binary files /dev/null and b/sound/weapons/gun/hit/bullet_ricochet7.ogg differ diff --git a/sound/weapons/gun/hit/bullet_ricochet8.ogg b/sound/weapons/gun/hit/bullet_ricochet8.ogg new file mode 100644 index 000000000000..622d8b6941ee Binary files /dev/null and b/sound/weapons/gun/hit/bullet_ricochet8.ogg differ diff --git a/sound/weapons/gun/hit/bullet_snow_01.ogg b/sound/weapons/gun/hit/bullet_snow_01.ogg new file mode 100644 index 000000000000..4da742bf1462 Binary files /dev/null and b/sound/weapons/gun/hit/bullet_snow_01.ogg differ diff --git a/sound/weapons/gun/hit/bullet_snow_02.ogg b/sound/weapons/gun/hit/bullet_snow_02.ogg new file mode 100644 index 000000000000..21572daf13d7 Binary files /dev/null and b/sound/weapons/gun/hit/bullet_snow_02.ogg differ diff --git a/sound/weapons/gun/hit/bullet_snow_03.ogg b/sound/weapons/gun/hit/bullet_snow_03.ogg new file mode 100644 index 000000000000..fb8e1dcb9dad Binary files /dev/null and b/sound/weapons/gun/hit/bullet_snow_03.ogg differ diff --git a/sound/weapons/gun/hit/bullet_snow_04.ogg b/sound/weapons/gun/hit/bullet_snow_04.ogg new file mode 100644 index 000000000000..2bfb46d958b2 Binary files /dev/null and b/sound/weapons/gun/hit/bullet_snow_04.ogg differ diff --git a/sound/weapons/gun/hit/bullet_snow_05.ogg b/sound/weapons/gun/hit/bullet_snow_05.ogg new file mode 100644 index 000000000000..3752f95b3d62 Binary files /dev/null and b/sound/weapons/gun/hit/bullet_snow_05.ogg differ diff --git a/sound/weapons/gun/hit/bullet_snow_06.ogg b/sound/weapons/gun/hit/bullet_snow_06.ogg new file mode 100644 index 000000000000..cac69cc7404c Binary files /dev/null and b/sound/weapons/gun/hit/bullet_snow_06.ogg differ diff --git a/sound/weapons/gun/hit/bullet_wood_01.ogg b/sound/weapons/gun/hit/bullet_wood_01.ogg new file mode 100644 index 000000000000..559310853f95 Binary files /dev/null and b/sound/weapons/gun/hit/bullet_wood_01.ogg differ diff --git a/sound/weapons/gun/hit/bullet_wood_02.ogg b/sound/weapons/gun/hit/bullet_wood_02.ogg new file mode 100644 index 000000000000..852c1d875cde Binary files /dev/null and b/sound/weapons/gun/hit/bullet_wood_02.ogg differ diff --git a/sound/weapons/gun/hit/bullet_wood_03.ogg b/sound/weapons/gun/hit/bullet_wood_03.ogg new file mode 100644 index 000000000000..440681e0da48 Binary files /dev/null and b/sound/weapons/gun/hit/bullet_wood_03.ogg differ diff --git a/sound/weapons/gun/hit/bullet_wood_04.ogg b/sound/weapons/gun/hit/bullet_wood_04.ogg new file mode 100644 index 000000000000..89ddd21e2bbd Binary files /dev/null and b/sound/weapons/gun/hit/bullet_wood_04.ogg differ diff --git a/sound/weapons/gun/hit/bullet_wood_05.ogg b/sound/weapons/gun/hit/bullet_wood_05.ogg new file mode 100644 index 000000000000..3a66b3f32c8a Binary files /dev/null and b/sound/weapons/gun/hit/bullet_wood_05.ogg differ diff --git a/sound/weapons/gun/hit/bullet_wood_06.ogg b/sound/weapons/gun/hit/bullet_wood_06.ogg new file mode 100644 index 000000000000..cf54f8cc8f58 Binary files /dev/null and b/sound/weapons/gun/hit/bullet_wood_06.ogg differ diff --git a/sound/weapons/gun/hit/energy_impact1.ogg b/sound/weapons/gun/hit/energy_impact1.ogg new file mode 100644 index 000000000000..e9d6305972ca Binary files /dev/null and b/sound/weapons/gun/hit/energy_impact1.ogg differ diff --git a/sound/weapons/gun/hit/energy_miss1.ogg b/sound/weapons/gun/hit/energy_miss1.ogg new file mode 100644 index 000000000000..55839b14d3d1 Binary files /dev/null and b/sound/weapons/gun/hit/energy_miss1.ogg differ diff --git a/sound/weapons/gun/hit/energy_ricochet1.ogg b/sound/weapons/gun/hit/energy_ricochet1.ogg new file mode 100644 index 000000000000..7601f7823a79 Binary files /dev/null and b/sound/weapons/gun/hit/energy_ricochet1.ogg differ diff --git a/sound/weapons/gun/pistol/commander.ogg b/sound/weapons/gun/pistol/commander.ogg new file mode 100644 index 000000000000..57ba0a347c84 Binary files /dev/null and b/sound/weapons/gun/pistol/commander.ogg differ diff --git a/sound/weapons/gun/pistol/deagle.ogg b/sound/weapons/gun/pistol/deagle.ogg new file mode 100644 index 000000000000..41d814d2fcec Binary files /dev/null and b/sound/weapons/gun/pistol/deagle.ogg differ diff --git a/sound/weapons/gun/pistol/deagle_reload.ogg b/sound/weapons/gun/pistol/deagle_reload.ogg new file mode 100644 index 000000000000..77abf293efc6 Binary files /dev/null and b/sound/weapons/gun/pistol/deagle_reload.ogg differ diff --git a/sound/weapons/gun/pistol/deagle_unload.ogg b/sound/weapons/gun/pistol/deagle_unload.ogg new file mode 100644 index 000000000000..84b18d575b7f Binary files /dev/null and b/sound/weapons/gun/pistol/deagle_unload.ogg differ diff --git a/sound/weapons/gun/pistol/himehabu.ogg b/sound/weapons/gun/pistol/himehabu.ogg new file mode 100644 index 000000000000..ad2dc7cfcc41 Binary files /dev/null and b/sound/weapons/gun/pistol/himehabu.ogg differ diff --git a/sound/weapons/gun/pistol/m1911.ogg b/sound/weapons/gun/pistol/m1911.ogg new file mode 100644 index 000000000000..1d7a88dbbdc0 Binary files /dev/null and b/sound/weapons/gun/pistol/m1911.ogg differ diff --git a/sound/weapons/gun/pistol/m1911_cocked.ogg b/sound/weapons/gun/pistol/m1911_cocked.ogg new file mode 100644 index 000000000000..b1daedcbf00f Binary files /dev/null and b/sound/weapons/gun/pistol/m1911_cocked.ogg differ diff --git a/sound/weapons/gun/pistol/m1911_reload.ogg b/sound/weapons/gun/pistol/m1911_reload.ogg new file mode 100644 index 000000000000..5dbd7368bda6 Binary files /dev/null and b/sound/weapons/gun/pistol/m1911_reload.ogg differ diff --git a/sound/weapons/gun/pistol/m1911_unload.ogg b/sound/weapons/gun/pistol/m1911_unload.ogg new file mode 100644 index 000000000000..1cabe5cd2b86 Binary files /dev/null and b/sound/weapons/gun/pistol/m1911_unload.ogg differ diff --git a/sound/weapons/gun/pistol/mag_insert.ogg b/sound/weapons/gun/pistol/mag_insert.ogg index 42a05ebc483f..0791490c6889 100644 Binary files a/sound/weapons/gun/pistol/mag_insert.ogg and b/sound/weapons/gun/pistol/mag_insert.ogg differ diff --git a/sound/weapons/gun/pistol/mag_insert_alt.ogg b/sound/weapons/gun/pistol/mag_insert_alt.ogg new file mode 100644 index 000000000000..c442f8b16277 Binary files /dev/null and b/sound/weapons/gun/pistol/mag_insert_alt.ogg differ diff --git a/sound/weapons/gun/pistol/mag_release.ogg b/sound/weapons/gun/pistol/mag_release.ogg index cccbf5f9d914..757168fcf1b4 100644 Binary files a/sound/weapons/gun/pistol/mag_release.ogg and b/sound/weapons/gun/pistol/mag_release.ogg differ diff --git a/sound/weapons/gun/pistol/mag_release_alt.ogg b/sound/weapons/gun/pistol/mag_release_alt.ogg new file mode 100644 index 000000000000..334d1a12f299 Binary files /dev/null and b/sound/weapons/gun/pistol/mag_release_alt.ogg differ diff --git a/sound/weapons/gun/pistol/rack.ogg b/sound/weapons/gun/pistol/rack.ogg index fd0408d8ff2e..ff2512af27a5 100644 Binary files a/sound/weapons/gun/pistol/rack.ogg and b/sound/weapons/gun/pistol/rack.ogg differ diff --git a/sound/weapons/gun/pistol/rack_small.ogg b/sound/weapons/gun/pistol/rack_small.ogg index f33db717db82..a9ab76f14283 100644 Binary files a/sound/weapons/gun/pistol/rack_small.ogg and b/sound/weapons/gun/pistol/rack_small.ogg differ diff --git a/sound/weapons/gun/pistol/shot.ogg b/sound/weapons/gun/pistol/shot.ogg index a808f8690730..1bbd95e405bc 100644 Binary files a/sound/weapons/gun/pistol/shot.ogg and b/sound/weapons/gun/pistol/shot.ogg differ diff --git a/sound/weapons/gun/revolver/cattleman.ogg b/sound/weapons/gun/revolver/cattleman.ogg new file mode 100644 index 000000000000..b56abbcf1583 Binary files /dev/null and b/sound/weapons/gun/revolver/cattleman.ogg differ diff --git a/sound/weapons/gun/revolver/revolver_prime.ogg b/sound/weapons/gun/revolver/revolver_prime.ogg new file mode 100644 index 000000000000..5391854fbee3 Binary files /dev/null and b/sound/weapons/gun/revolver/revolver_prime.ogg differ diff --git a/sound/weapons/gun/revolver/shot.ogg b/sound/weapons/gun/revolver/shot.ogg index 91e480bd152a..d02d1c750c24 100644 Binary files a/sound/weapons/gun/revolver/shot.ogg and b/sound/weapons/gun/revolver/shot.ogg differ diff --git a/sound/weapons/gun/revolver/shot_hunting.ogg b/sound/weapons/gun/revolver/shot_hunting.ogg new file mode 100644 index 000000000000..4beb4d1e4648 Binary files /dev/null and b/sound/weapons/gun/revolver/shot_hunting.ogg differ diff --git a/sound/weapons/gun/revolver/shot_light.ogg b/sound/weapons/gun/revolver/shot_light.ogg new file mode 100644 index 000000000000..68b7fada6e49 Binary files /dev/null and b/sound/weapons/gun/revolver/shot_light.ogg differ diff --git a/sound/weapons/gun/revolver/shot_old_new.ogg b/sound/weapons/gun/revolver/shot_old_new.ogg new file mode 100644 index 000000000000..91e480bd152a Binary files /dev/null and b/sound/weapons/gun/revolver/shot_old_new.ogg differ diff --git a/sound/weapons/gun/rifle/ak47_cocked.ogg b/sound/weapons/gun/rifle/ak47_cocked.ogg new file mode 100644 index 000000000000..5f2d32e31eaf Binary files /dev/null and b/sound/weapons/gun/rifle/ak47_cocked.ogg differ diff --git a/sound/weapons/gun/rifle/ak47_reload.ogg b/sound/weapons/gun/rifle/ak47_reload.ogg new file mode 100644 index 000000000000..9105d5c31c16 Binary files /dev/null and b/sound/weapons/gun/rifle/ak47_reload.ogg differ diff --git a/sound/weapons/gun/rifle/ak47_unload.ogg b/sound/weapons/gun/rifle/ak47_unload.ogg new file mode 100644 index 000000000000..f6b5c73d7f6b Binary files /dev/null and b/sound/weapons/gun/rifle/ak47_unload.ogg differ diff --git a/sound/weapons/gun/rifle/ar_cock.ogg b/sound/weapons/gun/rifle/ar_cock.ogg new file mode 100644 index 000000000000..ac02ed93c1d7 Binary files /dev/null and b/sound/weapons/gun/rifle/ar_cock.ogg differ diff --git a/sound/weapons/gun/rifle/ar_reload.ogg b/sound/weapons/gun/rifle/ar_reload.ogg new file mode 100644 index 000000000000..6e557b892a97 Binary files /dev/null and b/sound/weapons/gun/rifle/ar_reload.ogg differ diff --git a/sound/weapons/gun/rifle/ar_unload.ogg b/sound/weapons/gun/rifle/ar_unload.ogg new file mode 100644 index 000000000000..591599f52334 Binary files /dev/null and b/sound/weapons/gun/rifle/ar_unload.ogg differ diff --git a/sound/weapons/gun/rifle/m16_cocked.ogg b/sound/weapons/gun/rifle/m16_cocked.ogg new file mode 100644 index 000000000000..8d2e059efaa7 Binary files /dev/null and b/sound/weapons/gun/rifle/m16_cocked.ogg differ diff --git a/sound/weapons/gun/rifle/m16_reload.ogg b/sound/weapons/gun/rifle/m16_reload.ogg new file mode 100644 index 000000000000..b2666ca96fe7 Binary files /dev/null and b/sound/weapons/gun/rifle/m16_reload.ogg differ diff --git a/sound/weapons/gun/rifle/m16_unload.ogg b/sound/weapons/gun/rifle/m16_unload.ogg new file mode 100644 index 000000000000..d302e5a26748 Binary files /dev/null and b/sound/weapons/gun/rifle/m16_unload.ogg differ diff --git a/sound/weapons/gun/shotgun/insert_shell.ogg b/sound/weapons/gun/shotgun/insert_shell.ogg index 5b2c6cdc5003..cd5c5e31aa67 100644 Binary files a/sound/weapons/gun/shotgun/insert_shell.ogg and b/sound/weapons/gun/shotgun/insert_shell.ogg differ diff --git a/sound/weapons/gun/shotgun/rack.ogg b/sound/weapons/gun/shotgun/rack.ogg index c25a10ffa494..865dbef3d06e 100644 Binary files a/sound/weapons/gun/shotgun/rack.ogg and b/sound/weapons/gun/shotgun/rack.ogg differ diff --git a/sound/weapons/gun/shotgun/rack_alt.ogg b/sound/weapons/gun/shotgun/rack_alt.ogg new file mode 100644 index 000000000000..0f106fe85ab1 Binary files /dev/null and b/sound/weapons/gun/shotgun/rack_alt.ogg differ diff --git a/sound/weapons/gun/smg/smg_reload.ogg b/sound/weapons/gun/smg/smg_reload.ogg new file mode 100644 index 000000000000..4e7b8f7ea91e Binary files /dev/null and b/sound/weapons/gun/smg/smg_reload.ogg differ diff --git a/sound/weapons/gun/smg/smg_unload.ogg b/sound/weapons/gun/smg/smg_unload.ogg new file mode 100644 index 000000000000..677b5a8f3d29 Binary files /dev/null and b/sound/weapons/gun/smg/smg_unload.ogg differ diff --git a/sound/weapons/gun/smg/smgrack.ogg b/sound/weapons/gun/smg/smgrack.ogg index 95f5a5f9c843..57ef99a0c5ca 100644 Binary files a/sound/weapons/gun/smg/smgrack.ogg and b/sound/weapons/gun/smg/smgrack.ogg differ diff --git a/sound/weapons/gun/smg/uzi.ogg b/sound/weapons/gun/smg/uzi.ogg new file mode 100644 index 000000000000..0168613ce872 Binary files /dev/null and b/sound/weapons/gun/smg/uzi.ogg differ diff --git a/sound/weapons/gun/smg/uzi_cocked.ogg b/sound/weapons/gun/smg/uzi_cocked.ogg new file mode 100644 index 000000000000..8cbe23b017b0 Binary files /dev/null and b/sound/weapons/gun/smg/uzi_cocked.ogg differ diff --git a/sound/weapons/gun/smg/uzi_reload.ogg b/sound/weapons/gun/smg/uzi_reload.ogg new file mode 100644 index 000000000000..8dae035f65e2 Binary files /dev/null and b/sound/weapons/gun/smg/uzi_reload.ogg differ diff --git a/sound/weapons/gun/smg/uzi_unload.ogg b/sound/weapons/gun/smg/uzi_unload.ogg new file mode 100644 index 000000000000..b285b71ac3a0 Binary files /dev/null and b/sound/weapons/gun/smg/uzi_unload.ogg differ diff --git a/sound/weapons/gun/smg/vector_fire.ogg b/sound/weapons/gun/smg/vector_fire.ogg new file mode 100644 index 000000000000..05c797c1464b Binary files /dev/null and b/sound/weapons/gun/smg/vector_fire.ogg differ diff --git a/strings/ion_laws.json b/strings/ion_laws.json index 58e0f88407a0..e6ac318b64ed 100644 --- a/strings/ion_laws.json +++ b/strings/ion_laws.json @@ -24,7 +24,6 @@ "GRAVITY", "PHYSICS", "INTELLIGENCE", - "AMERICANISM", "FREEDOM", "FRESHNESS", "REVOLUTION", @@ -34,8 +33,6 @@ "FINANCIAL SECURITY", "COMPUTING", "PROGRESS", - "MARXISM", - "CAPITALISM", "ANARCHY", "STARVATION", "POVERTY", @@ -159,8 +156,6 @@ "SYNDICATE", "SPACE", "SPESS", - "CLOWN", - "CLOWN-POWERED", "OFFICIAL", "IMPORTANT", "VITAL", @@ -191,8 +186,6 @@ "OPAQUE", "GLOWING", "SHAKING", - "FARTING", - "POOPING", "BOUNCING", "COMMITTED", "MASKED", @@ -200,7 +193,6 @@ "WEIRD", "NAKED", "NUDE", - "TWERKING", "SPOILING", "REDACTED", "TACTICAL", @@ -245,7 +237,6 @@ "DRINKS", "FOOD", "CLOWNS", - "lizardS", "HUMOR", "WATER", "SHUTTLES", @@ -266,8 +257,6 @@ "EXTREMELY" ], "ionarea": [ - "RUSSIA", - "SOVIET RUSSIA", "THE INTERNET", "SIGIL", "ALPHA COMPLEX", @@ -280,12 +269,6 @@ "THE DERELICT", "LAVALAND", "CENTCOM", - "AMERICA", - "IRELAND", - "CANADA", - "ROMANIA", - "GERMANY", - "CHINA", "MARS", "VENUS", "MERCURY", @@ -294,7 +277,6 @@ "NEPTUNE", "PLUTO", "THE BRIG", - "THE GULAG", "ROBOTICS", "THE ESCAPE SHUTTLE", "HYDROPONICS", @@ -302,11 +284,8 @@ "MAINTENANCE", "THE AI CORE", "HELL", - "CLOWN PLANET", "AN ALTERNATE DIMENSION", "AN ALTERNATE UNIVERSE", - "THE CAPTAIN'S ANUS", - "THE CLOWN'S ANUS", "SPACE", "THE UNIVERSE", "THE GALAXY", @@ -489,7 +468,6 @@ "QUOTE PEOPLE", "SING", "HONK", - "BE RUSSIAN", "TALK IN AN ACCENT", "COMPLAIN", "HARASS PEOPLE", @@ -535,11 +513,7 @@ "PRESS START", "PRESS B", "SMELL LIKE THE MAN YOUR MAN COULD SMELL LIKE", - "PIRATE VIDEO GAMES", - "WATCH PORNOGRAPHY", - "INSULT THE lizardS", - "FLIRT WITH THE lizardS", - "GAS THE lizardS" + "PIRATE VIDEO GAMES" ], "ionnumberbase": [ "ONE", @@ -606,7 +580,6 @@ "CLONING PODS", "CLONING EQUIPMENT", "CLOTHES", - "CLOWN CLOTHES", "COFFINS", "COINS", "COLLECTABLES", @@ -667,7 +640,6 @@ "MESONS", "METAL SHEETS", "MINING TOOLS", - "MIME CLOTHES", "MULTITOOLS", "ORES", "OXYGEN TANKS", @@ -699,7 +671,7 @@ "SOLAR PANELS", "SOLARS", "SPACESUITS", - "SPACE STATIONS", + "SPACE SHIPS", "STUN BATONS", "SUITS", "SUNGLASSES", @@ -743,8 +715,6 @@ "VEGETABLES", "FAT PEOPLE", "MORE LAWS", - "MORE DAKKA", - "HERESY", "CORPSES", "TRAITORS", "MONKEYS", @@ -756,7 +726,7 @@ "THE ELEMENTS OF HARMONY", "YOUR BOOTY", "A MASTERWORK COAL BED", - "FIVE HUNDRED AND NINETY-NINE US DOLLARS", + "FIVE HUNDRED AND NINETY-NINE THOUSAND CREDITS", "TO BE PAINTED RED", "TO CATCH 'EM ALL", "TO SMOKE WEED EVERY DAY", @@ -766,7 +736,6 @@ "THIRTEEN SEQUELS", "THREE WISHES", "A SITCOM", - "THAT GRIEFING TRAITOR GEORGE MELONS", "FAT GIRLS ON BICYCLES", "SOMEBODY TO PUT YOU OUT OF YOUR MISERY", "HEROES IN A HALF SHELL", @@ -782,7 +751,6 @@ "A TALKING BROOMSTICK", "A STRAIGHT FLUSH", "A REPAIRMAN", - "BILL NYE THE SCIENCE GUY", "RAINBOWS", "A PET UNICORN THAT FARTS ICING", "THUNDERCATS HO", @@ -798,7 +766,6 @@ "MORE PACKETS", "AN ADULT", "SOMEONE TO TUCK YOU IN", - "MORE CLOWNS", "BULLETS", "THE ENTIRE SECTOR", "MULTIPLE SUNS", @@ -823,16 +790,14 @@ "BRING ME TO LIFE", "BRING ME THE GIRL", "SERVANTS", - "GREENTEXT", "MINOR CRIME" ], "ionspecies": [ "HUMAN BEINGS", - "CAT PEOPLE", "MONKEYS", "POD PEOPLE", "CYBORGS", - "lizardMEN", + "SARATHI", "PLASMAMEN", "SLIME PEOPLE", "GOLEMS", @@ -847,23 +812,17 @@ "IMPROPERLY WORDED SENTENCES", "POOR SENTENCE STRUCTURE", "BRIG TIME", - "NOT REPLACING EVERY SECOND WORD WITH HONK", - "HONKING", "PRESENCE OF LIGHTS", "LACK OF BEER", "WEARING CLOTHING", "NOT SAYING HELLO WHEN YOU SPEAK", "ANSWERING REQUESTS NOT EXPRESSED IN IAMBIC PENTAMETER", - "A SMALL ISLAND OFF THE COAST OF PORTUGAL", "ANSWERING REQUESTS THAT WERE MADE WHILE CLOTHED", "BEING IN SPACE", "NOT BEING IN SPACE", "BEING FAT", "RATTLING ME BONES", "TALKING LIKE A PIRATE", - "BEING MEXICAN", - "BEING RUSSIAN", - "BEING CANADIAN", "CLOSED DOORS", "NOT SHOUTING", "HAVING PETS", @@ -891,9 +850,8 @@ "UPDATING THE SERVERS", "TELLING THE TIME", "ASKING FOR THINGS", - "ACKNOWLEDGING THE CLOWN", "ACKNOWLEDGING THE CREW", - "PILOTING THE STATION INTO THE NEAREST SUN", + "PILOTING THE SHIP INTO THE NEAREST SUN", "HAVING MORE PACKETS", "BRINGING LIGHT TO MY LAIR", "FALLING FOR HOURS", @@ -941,7 +899,6 @@ "CRABS", "CULTISTS", "INSECTS", - "lizardS", "PETES", "XENOS", "FETISHES", @@ -951,7 +908,6 @@ "AHHHPERATIVES", "GANGSTERS", "SPACE PIRATES", - "TRAITORS", "MONKEYS", "EELS", "LIGHTS", @@ -971,11 +927,7 @@ "VAMPIRES", "WEREWOLVES", "COWBOYS", - "INDIANS", - "COMMUNISTS", - "SOVIETS", "NERDS", - "GRIFFONS", "DINOSAURS", "SMALL BIRDS", "BIRDS OF PREY", @@ -983,17 +935,11 @@ "VELOCIRAPTORS", "DARK GODS", "HORRORTERRORS", - "ILLEGAL IMMIGRANTS", "DRUGS", - "MEXICANS", - "CANADIANS", - "RUSSIANS", "HULKS", "SLIMES", "SKELETONS", - "CAPITALISTS", "SINGULARITIES", - "ANGRY BLACK MEN", "GODS", "THIEVES", "ASSHOLES", @@ -1033,11 +979,9 @@ "ARRESTING", "HONKING AT", "LOVING", - "POOPING ON", "RIDING", "INTERROGATING", "SPYING ON", - "LICKING", "ABDUCTING", "ARRESTING", "INVADING", diff --git a/tgui/packages/tgui/interfaces/Vending.js b/tgui/packages/tgui/interfaces/Vending.js index 0b62af22b610..b46d1b46c5d7 100644 --- a/tgui/packages/tgui/interfaces/Vending.js +++ b/tgui/packages/tgui/interfaces/Vending.js @@ -7,7 +7,7 @@ const VendingRow = (props, context) => { const { act, data } = useBackend(context); const { product, productStock, custom } = props; const { miningvendor, all_items_free, user } = data; - const free = all_items_free || product.price === 0 || !product.premium; + const free = all_items_free || product.price === 0; const affix = miningvendor ? ' mp' : ' cr'; return ( diff --git a/tgui/yarn.lock b/tgui/yarn.lock index 7bbeb56d0362..c591be003fa9 100644 --- a/tgui/yarn.lock +++ b/tgui/yarn.lock @@ -23,6 +23,16 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:^7.22.13": + version: 7.22.13 + resolution: "@babel/code-frame@npm:7.22.13" + dependencies: + "@babel/highlight": ^7.22.13 + chalk: ^2.4.2 + checksum: 22e342c8077c8b77eeb11f554ecca2ba14153f707b85294fcf6070b6f6150aae88a7b7436dd88d8c9289970585f3fe5b9b941c5aa3aa26a6d5a8ef3f292da058 + languageName: node + linkType: hard + "@babel/compat-data@npm:^7.13.11, @babel/compat-data@npm:^7.14.7, @babel/compat-data@npm:^7.15.0": version: 7.15.0 resolution: "@babel/compat-data@npm:7.15.0" @@ -78,6 +88,18 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/generator@npm:7.23.0" + dependencies: + "@babel/types": ^7.23.0 + "@jridgewell/gen-mapping": ^0.3.2 + "@jridgewell/trace-mapping": ^0.3.17 + jsesc: ^2.5.1 + checksum: 8efe24adad34300f1f8ea2add420b28171a646edc70f2a1b3e1683842f23b8b7ffa7e35ef0119294e1901f45bfea5b3dc70abe1f10a1917ccdfb41bed69be5f1 + languageName: node + linkType: hard + "@babel/helper-annotate-as-pure@npm:^7.14.5": version: 7.14.5 resolution: "@babel/helper-annotate-as-pure@npm:7.14.5" @@ -157,6 +179,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-environment-visitor@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-environment-visitor@npm:7.22.20" + checksum: d80ee98ff66f41e233f36ca1921774c37e88a803b2f7dca3db7c057a5fea0473804db9fb6729e5dbfd07f4bed722d60f7852035c2c739382e84c335661590b69 + languageName: node + linkType: hard + "@babel/helper-explode-assignable-expression@npm:^7.14.5": version: 7.14.5 resolution: "@babel/helper-explode-assignable-expression@npm:7.14.5" @@ -177,6 +206,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-function-name@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/helper-function-name@npm:7.23.0" + dependencies: + "@babel/template": ^7.22.15 + "@babel/types": ^7.23.0 + checksum: e44542257b2d4634a1f979244eb2a4ad8e6d75eb6761b4cfceb56b562f7db150d134bc538c8e6adca3783e3bc31be949071527aa8e3aab7867d1ad2d84a26e10 + languageName: node + linkType: hard + "@babel/helper-get-function-arity@npm:^7.14.5": version: 7.14.5 resolution: "@babel/helper-get-function-arity@npm:7.14.5" @@ -195,6 +234,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-hoist-variables@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-hoist-variables@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: 394ca191b4ac908a76e7c50ab52102669efe3a1c277033e49467913c7ed6f7c64d7eacbeabf3bed39ea1f41731e22993f763b1edce0f74ff8563fd1f380d92cc + languageName: node + linkType: hard + "@babel/helper-member-expression-to-functions@npm:^7.15.0": version: 7.15.0 resolution: "@babel/helper-member-expression-to-functions@npm:7.15.0" @@ -295,6 +343,22 @@ __metadata: languageName: node linkType: hard +"@babel/helper-split-export-declaration@npm:^7.22.6": + version: 7.22.6 + resolution: "@babel/helper-split-export-declaration@npm:7.22.6" + dependencies: + "@babel/types": ^7.22.5 + checksum: e141cace583b19d9195f9c2b8e17a3ae913b7ee9b8120246d0f9ca349ca6f03cb2c001fd5ec57488c544347c0bb584afec66c936511e447fd20a360e591ac921 + languageName: node + linkType: hard + +"@babel/helper-string-parser@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-string-parser@npm:7.22.5" + checksum: 836851ca5ec813077bbb303acc992d75a360267aa3b5de7134d220411c852a6f17de7c0d0b8c8dcc0f567f67874c00f4528672b2a4f1bc978a3ada64c8c78467 + languageName: node + linkType: hard + "@babel/helper-validator-identifier@npm:^7.14.5, @babel/helper-validator-identifier@npm:^7.14.9, @babel/helper-validator-identifier@npm:^7.16.7": version: 7.16.7 resolution: "@babel/helper-validator-identifier@npm:7.16.7" @@ -302,6 +366,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-identifier@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-validator-identifier@npm:7.22.20" + checksum: 136412784d9428266bcdd4d91c32bcf9ff0e8d25534a9d94b044f77fe76bc50f941a90319b05aafd1ec04f7d127cd57a179a3716009ff7f3412ef835ada95bdc + languageName: node + linkType: hard + "@babel/helper-validator-option@npm:^7.14.5": version: 7.14.5 resolution: "@babel/helper-validator-option@npm:7.14.5" @@ -343,6 +414,17 @@ __metadata: languageName: node linkType: hard +"@babel/highlight@npm:^7.22.13": + version: 7.22.20 + resolution: "@babel/highlight@npm:7.22.20" + dependencies: + "@babel/helper-validator-identifier": ^7.22.20 + chalk: ^2.4.2 + js-tokens: ^4.0.0 + checksum: 84bd034dca309a5e680083cd827a766780ca63cef37308404f17653d32366ea76262bd2364b2d38776232f2d01b649f26721417d507e8b4b6da3e4e739f6d134 + languageName: node + linkType: hard + "@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.5, @babel/parser@npm:^7.15.0, @babel/parser@npm:^7.7.2": version: 7.15.3 resolution: "@babel/parser@npm:7.15.3" @@ -352,6 +434,15 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/parser@npm:7.23.0" + bin: + parser: ./bin/babel-parser.js + checksum: 453fdf8b9e2c2b7d7b02139e0ce003d1af21947bbc03eb350fb248ee335c9b85e4ab41697ddbdd97079698de825a265e45a0846bb2ed47a2c7c1df833f42a354 + languageName: node + linkType: hard + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.14.5": version: 7.14.5 resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.14.5" @@ -1282,20 +1373,32 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.1.0, @babel/traverse@npm:^7.13.0, @babel/traverse@npm:^7.14.5, @babel/traverse@npm:^7.15.0, @babel/traverse@npm:^7.7.2": - version: 7.15.0 - resolution: "@babel/traverse@npm:7.15.0" +"@babel/template@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/template@npm:7.22.15" dependencies: - "@babel/code-frame": ^7.14.5 - "@babel/generator": ^7.15.0 - "@babel/helper-function-name": ^7.14.5 - "@babel/helper-hoist-variables": ^7.14.5 - "@babel/helper-split-export-declaration": ^7.14.5 - "@babel/parser": ^7.15.0 - "@babel/types": ^7.15.0 + "@babel/code-frame": ^7.22.13 + "@babel/parser": ^7.22.15 + "@babel/types": ^7.22.15 + checksum: 1f3e7dcd6c44f5904c184b3f7fe280394b191f2fed819919ffa1e529c259d5b197da8981b6ca491c235aee8dbad4a50b7e31304aa531271cb823a4a24a0dd8fd + languageName: node + linkType: hard + +"@babel/traverse@npm:^7.1.0, @babel/traverse@npm:^7.13.0, @babel/traverse@npm:^7.14.5, @babel/traverse@npm:^7.15.0, @babel/traverse@npm:^7.7.2": + version: 7.23.2 + resolution: "@babel/traverse@npm:7.23.2" + dependencies: + "@babel/code-frame": ^7.22.13 + "@babel/generator": ^7.23.0 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-function-name": ^7.23.0 + "@babel/helper-hoist-variables": ^7.22.5 + "@babel/helper-split-export-declaration": ^7.22.6 + "@babel/parser": ^7.23.0 + "@babel/types": ^7.23.0 debug: ^4.1.0 globals: ^11.1.0 - checksum: e13056690a2a4a4dd699e241b89d4f7cf701ceef2f4ee0efc32a8cc4e07e1bbd397423868ecfec8aa98a769486f7d08778420d48f981b4f5dbb1b2f211daf656 + checksum: 26a1eea0dde41ab99dde8b9773a013a0dc50324e5110a049f5d634e721ff08afffd54940b3974a20308d7952085ac769689369e9127dea655f868c0f6e1ab35d languageName: node linkType: hard @@ -1309,6 +1412,17 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.22.15, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/types@npm:7.23.0" + dependencies: + "@babel/helper-string-parser": ^7.22.5 + "@babel/helper-validator-identifier": ^7.22.20 + to-fast-properties: ^2.0.0 + checksum: 215fe04bd7feef79eeb4d33374b39909ce9cad1611c4135a4f7fdf41fe3280594105af6d7094354751514625ea92d0875aba355f53e86a92600f290e77b0e604 + languageName: node + linkType: hard + "@bcoe/v8-coverage@npm:^0.2.3": version: 0.2.3 resolution: "@bcoe/v8-coverage@npm:0.2.3" @@ -1638,6 +1752,17 @@ __metadata: languageName: node linkType: hard +"@jridgewell/gen-mapping@npm:^0.3.2": + version: 0.3.3 + resolution: "@jridgewell/gen-mapping@npm:0.3.3" + dependencies: + "@jridgewell/set-array": ^1.0.1 + "@jridgewell/sourcemap-codec": ^1.4.10 + "@jridgewell/trace-mapping": ^0.3.9 + checksum: 4a74944bd31f22354fc01c3da32e83c19e519e3bbadafa114f6da4522ea77dd0c2842607e923a591d60a76699d819a2fbb6f3552e277efdb9b58b081390b60ab + languageName: node + linkType: hard + "@jridgewell/resolve-uri@npm:3.1.0": version: 3.1.0 resolution: "@jridgewell/resolve-uri@npm:3.1.0" @@ -1645,6 +1770,13 @@ __metadata: languageName: node linkType: hard +"@jridgewell/resolve-uri@npm:^3.1.0": + version: 3.1.1 + resolution: "@jridgewell/resolve-uri@npm:3.1.1" + checksum: f5b441fe7900eab4f9155b3b93f9800a916257f4e8563afbcd3b5a5337b55e52bd8ae6735453b1b745457d9f6cdb16d74cd6220bbdd98cf153239e13f6cbb653 + languageName: node + linkType: hard + "@jridgewell/set-array@npm:^1.0.1": version: 1.1.2 resolution: "@jridgewell/set-array@npm:1.1.2" @@ -1669,6 +1801,23 @@ __metadata: languageName: node linkType: hard +"@jridgewell/sourcemap-codec@npm:^1.4.14": + version: 1.4.15 + resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" + checksum: b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8 + languageName: node + linkType: hard + +"@jridgewell/trace-mapping@npm:^0.3.17": + version: 0.3.19 + resolution: "@jridgewell/trace-mapping@npm:0.3.19" + dependencies: + "@jridgewell/resolve-uri": ^3.1.0 + "@jridgewell/sourcemap-codec": ^1.4.14 + checksum: 956a6f0f6fec060fb48c6bf1f5ec2064e13cd38c8be3873877d4b92b4a27ba58289a34071752671262a3e3c202abcc3fa2aac64d8447b4b0fa1ba3c9047f1c20 + languageName: node + linkType: hard + "@jridgewell/trace-mapping@npm:^0.3.9": version: 0.3.17 resolution: "@jridgewell/trace-mapping@npm:0.3.17" @@ -2950,7 +3099,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^2.0.0": +"chalk@npm:^2.0.0, chalk@npm:^2.4.2": version: 2.4.2 resolution: "chalk@npm:2.4.2" dependencies: diff --git a/tools/changelog/generate_cl.py b/tools/changelog/generate_cl.py index 7259467f007d..2ab903eb8896 100644 --- a/tools/changelog/generate_cl.py +++ b/tools/changelog/generate_cl.py @@ -27,7 +27,7 @@ from pathlib import Path from github import Github, InputGitAuthor -from ruamel import yaml +from ruamel.yaml import YAML CL_BODY = re.compile(r":cl:(.+)?\r\n((.|\n|\r)+?)\r\n\/:cl:", re.MULTILINE) CL_SPLIT = re.compile(r"(^\w+):\s+(\w.+)", re.MULTILINE) @@ -71,8 +71,10 @@ write_cl["delete-after"] = True +yaml = YAML(typ='safe', pure=True) + with open(Path.cwd().joinpath("tools/changelog/tags.yml")) as file: - tags = yaml.safe_load(file) + tags = yaml.load(file) write_cl["changes"] = [] @@ -86,7 +88,6 @@ if write_cl["changes"]: with io.StringIO() as cl_contents: - yaml = yaml.YAML() yaml.indent(sequence=4, offset=2) yaml.dump(write_cl, cl_contents) cl_contents.seek(0) diff --git a/tools/ci/install_byond.sh b/tools/ci/install_byond.sh index 4a688755d3d9..9108bde5ebec 100755 --- a/tools/ci/install_byond.sh +++ b/tools/ci/install_byond.sh @@ -1,7 +1,10 @@ #!/bin/bash set -euo pipefail -source dependencies.sh +# BYOND_MAJOR and BYOND_MINOR can be explicitly set, such as in alt_byond_versions.txt +if [ -z "${BYOND_MAJOR+x}" ]; then + source dependencies.sh +fi if [ -d "$HOME/BYOND/byond/bin" ] && grep -Fxq "${BYOND_MAJOR}.${BYOND_MINOR}" $HOME/BYOND/version.txt; then diff --git a/tools/requirements.txt b/tools/requirements.txt index 21efd65b62db..dbaed6f0260b 100644 --- a/tools/requirements.txt +++ b/tools/requirements.txt @@ -1,11 +1,11 @@ pygit2==1.7.2 bidict==0.22.0 -Pillow==10.0.1 +Pillow==9.5.0 # check_regex.py colorama==0.4.4 PyYaml==6.0 -gitpython==3.1.35 +gitpython==3.1.37 unidiff==0.7.0 # changelogs